Учитывая следующую грамматику EBNF (найденную в википедии для PL / 0), какому выражению предшествует ключевое слово "ODD"? Я хотел бы реализовать простой язык в качестве небольшого проекта, но я не могу понять, что это значит. Кто-нибудь раньше занимался этим или мог интерпретировать, что такое странное выражение, чтобы я мог правильно написать компилятор для языка?
program = block "." .
block = [ "const" ident "=" number {"," ident "=" number} ";"]
[ "var" ident {"," ident} ";"]
{ "procedure" ident ";" block ";" } statement .
statement = [ ident ":=" expression | "call" ident |
"begin" statement {";" statement } "end" |
"if" condition "then" statement |
"while" condition "do" statement ].
condition = "odd" expression |
expression ("="|"#"|"<"|"<="|">"|">=") expression .
expression = [ "+"|"-"] term { ("+"|"-") term}.
term = factor {("*"|"/") factor}.
factor = ident | number | "(" expression ")".