/ grammar.ebnf
grammar.ebnf
1 file = {decl} 2 3 list<item> = {item ","} [item] 4 5 decl = 6 | "fn" ident "(" list<(ident ty)> ")" ["->" ty] ":" indent {stmt} dedent 7 8 stmt = 9 | "let" ident [":" ty] "=" expr 10 | expr 11 12 expr = 13 | ident 14 | expr "(" list<expr> ")" 15 | "(" expr ")"