X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fparser.mly;h=c3148cae191b50a466fa4cf09ab48d2e7037c45d;hb=976bb1b35d77f3058df3c25c1e2a4767147d606b;hp=8b7d8a188e96cbf85805e406b0c25db81b2c3198;hpb=84972c63d0dbc5a0da05ae08a5b99a9ad81baadc;p=goals.git diff --git a/src/parser.mly b/src/parser.mly index 8b7d8a1..c3148ca 100644 --- a/src/parser.mly +++ b/src/parser.mly @@ -61,6 +61,7 @@ let do_include env loc filename optflag file = %token COMMA %token EQUALS %token EOF +%token FUNCTION %token GOAL %token ID %token INCLUDE @@ -108,6 +109,10 @@ stmt: let name, params = $1 in name, Ast.EGoalDefn ($loc, (params, [], [], Some $2)) } + | FUNCTION ID params_decl EQUALS CODE + { + $2, Ast.EFuncDefn ($loc, ($3, $5)) + } | TACTIC_KEYWORD TACTIC params_decl EQUALS CODE { $2, Ast.ETacticDefn ($loc, ($3, $5)) @@ -140,7 +145,7 @@ pattern_param: ; expr: - | ID params { Ast.ECallGoal ($loc, $1, $2) } + | ID params { Ast.ECall ($loc, $1, $2) } | ID { Ast.EVar ($loc, $1) } | TACTIC params { Ast.ETacticCtor ($loc, $1, $2) } | STRING { Ast.ESubsts ($loc, $1) }