Модуль =
MODULE Имя ";"
[Импорт]
[ПослОбъявл]
[BEGIN
ПослОператоров]
END Имя ".".
Импорт =
IMPORT Имя {"," Имя} ";".
ПослОбъявл =
{CONST
{ОбъявлКонст ";"}
|VAR
{ОбъявлПерем ";"} }.
ОбъявлКонст = Имя "=" КонстВыраж.
ОбъявлПерем = Имя {"," Имя} ":" Тип.
Тип = Имя.
ПослОператоров =
Оператор {";"
Оператор }.
Оператор = [
Переменная ":=" Выраж
|[Имя "."] Имя ["(" [Параметр {"," Параметр}] ")"]
|IF Выраж THEN
ПослОператоров
{ELSIF Выраж THEN
ПослОператоров
{ELSE
ПослОператоров
END
|WHILE Выраж DO
ПослОператоров
END
].
Параметр = Переменная | Выраж.
Переменная = Имя.
КонстВыраж = ["+" | "-"] (Число | Имя).
Выраж = ПростоеВыраж [Отношение ПростоеВыраж].
ПростоеВыраж = ["+" | "-"] Слагаемое {ОперСлож Слагаемое}.
Слагаемое = Множитель {ОперУмн Множитель}.
Множитель =
Имя ["(" Выраж | Тип ")"]
| Число
| "(" Выраж ")".
Отношение = "=" | "#" | "<" | "<=" | ">" | ">=".
ОперСлож = "+" | "-".
ОперУмн = "*" | DIV | MOD.
Имя = буква {буква | цифра}.
Число = цифра {цифра}.