diff --git a/flap/src/hopix/hopixParser.mly b/flap/src/hopix/hopixParser.mly index cd1cec1..80e38e5 100644 --- a/flap/src/hopix/hopixParser.mly +++ b/flap/src/hopix/hopixParser.mly @@ -167,9 +167,14 @@ simple_pattern: PWildcard } /* N-uplets ou parenthésage */ -| LPAREN p=optionlist(separated_nonempty_list(COMMA, located(pattern))) RPAREN { - PTuple(p) - } +| LPAREN RPAREN { + PTuple([]) +} +| l=pattern_list { + match l with | [alone] -> Position.value alone | _ -> PTuple(l) +} + + /* Annotation de type */ | p=located(simple_pattern) COLON ty=located(ty) { PTypeAnnotation(p, ty) @@ -341,7 +346,7 @@ expression: Define(vd, e) } /* Fonction anonyme */ -| BACKSLASH p=located(pattern) ARROW e=located(expression) { +| BACKSLASH p=located(pattern) ARROW e=located(expression){ Fun(FunctionDefinition(p, e)) } /* Application */