schala/Grammar
2017-09-19 22:10:52 -07:00

22 lines
429 B
Plaintext

<program> := <statements> EOF
<statements> := <statement>
| <statement> SEP <statements>
<statement> := let <id> = <expr>
| <expr>
<expr> := if <expr> then <statements> end
| if <expr> then <statements> else <statements> end
| while <expr> SEP <statements> end
| ( <expr> )
| <simple_expr>
<simple_expr> := <id>
| <number>
| <string>