24 lines
655 B
Markdown
24 lines
655 B
Markdown
program = block "."
|
|
|
|
block = ["const" ident "=" number {"," ident "=" number} ";"]
|
|
["var" ident {"," ident} ";"]
|
|
{ "procedure" ident ";" block ";" }
|
|
statement .
|
|
|
|
statement = [ ident ":=" expression
|
|
| "call" ident
|
|
| "?" ident
|
|
| "!" expression
|
|
| "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 ")" .
|