Синтаксис языка "О"

Назад

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