<Программа> ::= <Объявление переменных> <Описание вычислений>
<Объявление переменных> ::= Integer <Список переменных>
<Список переменных> ::= <Идент>; | <Идент> , <Список переменных>
<Описание вычислений> ::= Begin <Список присваиваний> End
<Список присваиваний>::= <Присваивание> | <Присваивание> <Список присваиваний>
<Присваивание> ::= <Идент> := <Выражение> ;
<Выражение> ::= <Ун.оп.> <Подвыражение> | <Подвыражение>
<Подвыражение> :: = ( <Выражение> ) | <Операнд> | < Подвыражение > <Бин.оп.> <Подвыражение>
<Ун.оп.> ::= "-"
<Бин.оп.> ::= "-" | "+" | "*" | "/"
<Операнд> ::= <Идент> |
<Идент> ::= <Буква> <Идент> | <Буква>
<Константа> ::= <Цифра> <Константа> | <Цифра>
Название класса лексем | Пояснение |
---|---|
KWORD | Ключевые слова Integer, Begin, End |
IDENT | Идентификаторы (из строчных латинских букв) |
CONST | Константы (из цифр) |
DELIM | Разделители (, ; ( ) ) |
OPERH | Знаки арифметических операций высокого приоритета (* /) |
OPERL | Знаки арифметических операций низкого приоритета (+ -) |
ASGN | Знак присваивания (:=) |