... | ... | @@ -8,17 +8,17 @@ |
|
|
|
|
|
Здесь
|
|
|
|
|
|
` id - идентификатор`
|
|
|
` num - целое без знака`
|
|
|
` begin end cycle - ключевые слова`
|
|
|
` id - идентификатор`
|
|
|
` num - целое без знака`
|
|
|
` begin end cycle - ключевые слова`
|
|
|
|
|
|
#### Глобальные переменные, необходимые для работы лексического анализатора:
|
|
|
|
|
|
` fname: string; // Имя файла программы`
|
|
|
` LexRow,LexCol: integer; // Строка-столбец начала лексемы. Конец лексемы = LexCol+Length(LexText)`
|
|
|
` LexKind: Tok; // Тип лексемы `
|
|
|
` LexText: string; // Текст лексемы`
|
|
|
` LexValue: integer; // Целое значение, связанное с лексемой lexNum`
|
|
|
` fname: string; // Имя файла программы`
|
|
|
` LexRow,LexCol: integer; // Строка-столбец начала лексемы. Конец лексемы = LexCol+Length(LexText)`
|
|
|
` LexKind: Tok; // Тип лексемы `
|
|
|
` LexText: string; // Текст лексемы`
|
|
|
` LexValue: integer; // Целое значение, связанное с лексемой lexNum`
|
|
|
|
|
|
Тип Tok является перечислимым и содержит все возможные лексемы нашего языка, а также специальную лексему EOFF конца текста:
|
|
|
|
... | ... | @@ -26,11 +26,11 @@ |
|
|
|
|
|
#### Вспомогательные глобальные переменные, описанные в секции реализации модуля:
|
|
|
|
|
|
` ch: Char; // Текущий символ`
|
|
|
` f: text; // Текущий файл`
|
|
|
` row,col: integer; // Текущие строка и столбец в файле`
|
|
|
` KeywordsMap := new Dictionary`<string,TLex>`; // Словарь, сопоставляющий ключевым словам константы типа TLex. `
|
|
|
` // Инициализируется процедурой InitKeywords`
|
|
|
` ch: Char; // Текущий символ`
|
|
|
` f: text; // Текущий файл`
|
|
|
` row,col: integer; // Текущие строка и столбец в файле`
|
|
|
` KeywordsMap := new Dictionary`<string,TLex>`; // Словарь, сопоставляющий ключевым словам константы типа TLex. `
|
|
|
` // Инициализируется процедурой InitKeywords`
|
|
|
|
|
|
#### Процедура NextCh
|
|
|
|
... | ... | |