]];
constructor: [ [ name = IDENT; SYMBOL ":"; typ = term -> (name, typ) ] ];
binder_vars: [
- [ vars = LIST1 IDENT SEP SYMBOL ",";
+ [ vars = [ l = LIST1 IDENT SEP SYMBOL "," -> l | SYMBOL "_" -> ["_"]];
typ = OPT [ SYMBOL ":"; t = term -> t ] -> (vars, typ)
- | PAREN "("; vars = LIST1 IDENT SEP SYMBOL ",";
- typ = OPT [ SYMBOL ":"; t = term -> t ]; PAREN ")" -> (vars, typ)
+ | PAREN "(";
+ vars = [ l = LIST1 IDENT SEP SYMBOL "," -> l | SYMBOL "_" -> ["_"]];
+ typ = OPT [ SYMBOL ":"; t = term -> t ];
+ PAREN ")" -> (vars, typ)
]
];
term0: [ [ t = term; EOI -> return_term loc t ] ];