/ 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 ")"