次の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 ")".