Лекции по построению компилятора на Pascal

       

ПРОБЕЛ


Раньше мы также работали с вложенными пробелами, используя две подпрограммы  IsWhite  и  SkipWhite. Удостоверьтесь, что эти подпрограммы есть в вашей текущей версии Cradle и добавьте строку:

     SkipWhite;

в конец GetName и GetNum.

Теперь давайте определим новую процедуру:

{--------------------------------------------------------------}

{ Lexical Scanner }

Function Scan: string;

begin

   if IsAlpha(Look) then

      Scan := GetName

   else if IsDigit(Look) then

      Scan := GetNum

   else begin

      Scan := Look;

      GetChar;

   end;

   SkipWhite;

end;

{--------------------------------------------------------------}

Мы можем вызвать ее из новой основной программы:

{--------------------------------------------------------------}

{ Main Program }

begin

   Init;

   repeat

      Token := Scan;

      writeln(Token);

   until Token = CR;

end.

{--------------------------------------------------------------}

 (Вы должны добавить описание строки Token в начало программы. Сделайте ее любой удобной длины, скажем 16 символов).

Теперь запустите программу. Заметьте, что входная строка действительно разделяется на отдельные токены.



Содержание раздела