<<
>>

Пробел

Раньше мы также работали с вложенными пробелами, используя две подпрограммы 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 символов).

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

<< | >>
Источник: Креншоу Джек. Давайте создадим компилятор!. 1999

Еще по теме Пробел:

  1. Ваши читатели
  2. СИНДРОМ КОРСАКОВСКИЙ
  3. 4. Применение гражданского законодательства по аналогии
  4. Правило воспроизводства событий и действий
  5. Упражнение ВЫЯВЛЕНИЕ «СВЯЩЕННЫХ КОРОВ»
  6. Правило воспроизводства событий и действий
  7. КОНФАБУЛЯЦИЯ
  8. Невозможно произвести измерения, не повлияв на его объект.
  9. 5.4. Отдельные нормы в составе нормативных правовых актов других отраслей
  10. Постановка цели
  11. ПСИХОЛОГИЧЕСКИЕ ОСНОВЫ СУДЕБНОГО ПРОЦЕССА (ПО УГОЛОВНЫМ ДЕЛАМ)
  12. 4. Отношения трудового права
  13. Необходимые шаги
  14. 3.11.3. Метод воскрешения старых снов
  15. 6. Договоры как форма гражданского законодательства