%{ open Ast %} %token KWD_FN %token IDENT %start program %% program: | decls=decl* { decls } decl: | func=func { DeclFunc func } func: | KWD_FN name=IDENT { { name = name } }