ювання:
= <оператор присвоювання>:=<змінна>:=<просте вираження>
1. Обчислюється вираз, що стоїть праворуч від знака присвоювання
2. У разі, якщо результат вийшов того ж типу, що й змінна, в неї заноситься нове значення, інакше результат перетворюється до заданого типу і заноситься в змінну
Кожна змінна, використовувана в програмі, повинна бути попередньо описана.
У програмі не можуть оголошуватися змінні з однаковим ім'ям.
Ім'я змінної не може збігатися з ключовими словами.
Оператор безумовного переходу goto .
<оператор безумовного переходу>:= goto <мітка>
Виконується перехід на мітку
Мітка повинна бути оголошена в розділі label , і зустрічатися в тілі програми один раз.
Умовний оператор if-then-else :
<умовний оператор>:= if <умова> then <оператор1> [ else <оператор2>]
Обчислюється значення логічного виразу і виконується в перехід на оператор2, якщо умова не виповнилося. Інакше виконується оператор1 і відбувається безумовний перехід на кінець оператора if-then-else .
Оператор введення read .
Робота програми припиняється, користувач повинен ввести з клавіатури значення, яке буде присвоєно змінної в дужках. Коли значення змінної буде введено, програма продовжить роботу.
Оператор виведення write .
Оператор write обчислює значення першого виразу в рядку виводу і виводить його на екран. Потім те ж саме виробляється з усіма подальшими висловлюваннями.
3. Лексичний аналізатор
.1 Опис типів лексем
Типи лексем, що виділяються лексичним аналізатором з програми на вхідній мові, визначаються вхідним мовою. Лексичний аналізатор виключає з тексту вихідної програми коментарі, незначущі прогалини, символи табуляції і переведення рядка і виділяє лексеми наступних типів:
ідентифікатори;
цілі беззнакові константи;
рядкові константи;
ключові слова вхідної мови;
однолітерние і двулітерние роздільники.
Співвідношення між токенами і лексемами для різних мовних конструкцій ілюструється наступною таблицею:
ТокенЛексемиЯзиковая конструкціяid count, indexІдентіфікатор scon Hello, World Рядок nat 0, 1, 3, 943Целое число без знака program, begin, end, label, const, var, type, integer, char, string, read, readln, write, writeln, goto, if, then, else, repeat, until, length, concat, replace, pos, StrChar, copy, Same, and, or, not program, begin, end, label, const, var, type, integer, char, string , read, readln, write, writeln, goto, if, then, else, repeat, until, length, concat, replace, pos, StrChar, copy, Same, and, or, notКлючевие слова program, begin, end, ...