%}
(* Tokens. *)
-%token <Ast.substs> CODE
+%token <Ast.code> CODE
%token COLON
%token COMMA
%token EQUALS
%token LEFT_PAREN
%token LET
%token OPTINCLUDE
+%token PURE
%token RETURNING
%token RIGHT_ARRAY
%token RIGHT_PAREN
let name, params = $1 in
name, Ast.EGoalDefn ($loc, (params, [], [], Some $2))
}
- | FUNCTION ID params_decl return_decl EQUALS CODE
+ | option(PURE) FUNCTION ID params_decl return_decl EQUALS CODE
{
- $2, Ast.EFuncDefn ($loc, ($3, $4, $6))
+ $3, Ast.EFuncDefn ($loc, ($4, $5, $1 <> None, $7))
}
| TACTIC_KEYWORD TACTIC params_decl EQUALS CODE
{
;
pattern:
| STRING { Ast.PTactic ($loc, "*file", [$1]) }
- | ID pattern_params { Ast.PTactic ($loc, $1, $2) }
+ | TACTIC pattern_params { Ast.PTactic ($loc, $1, $2) }
;
pattern_params:
| LEFT_PAREN separated_list(COMMA, pattern_param) RIGHT_PAREN { $2 }