diff options
| author | Brian Campbell | 2017-12-07 11:10:50 +0000 |
|---|---|---|
| committer | Brian Campbell | 2017-12-07 11:10:50 +0000 |
| commit | 691efa994a72d0e9cdbcdfcc4d6a9b1976d91e2b (patch) | |
| tree | 5f5a31d4d6632e1283c3916b403de6adacc3e701 /src/parser.mly | |
| parent | e36e7e0e5068abc31b69831d98138ee5d1e541da (diff) | |
Resolve function clause guard parsing ambiguity by requiring parentheses
Diffstat (limited to 'src/parser.mly')
| -rw-r--r-- | src/parser.mly | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/parser.mly b/src/parser.mly index 755c2cc7..5e4a2cad 100644 --- a/src/parser.mly +++ b/src/parser.mly @@ -869,6 +869,8 @@ eq_exp: | at_exp { $1 } /* XXX check for consistency */ + | eq_exp Eq at_exp + { eloc (E_app_infix($1,Id_aux(Id($2), locn 2 2), $3)) } | eq_exp EqEq at_exp { eloc (E_app_infix($1,Id_aux(Id($2), locn 2 2), $3)) } | eq_exp ExclEq at_exp @@ -905,6 +907,8 @@ eq_exp: eq_right_atomic_exp: | at_right_atomic_exp { $1 } + | eq_exp Eq at_right_atomic_exp + { eloc (E_app_infix($1,Id_aux(Id($2), locn 2 2), $3)) } | eq_exp EqEq at_right_atomic_exp { eloc (E_app_infix($1,Id_aux(Id($2), locn 2 2), $3)) } | eq_exp ExclEq at_right_atomic_exp @@ -1017,8 +1021,8 @@ letbind: patsexp_funcl: | atomic_pat Eq exp { peloc (Pat_exp($1,$3)) } - | atomic_pat When exp Eq exp - { peloc (Pat_when ($1, $3, $5)) } + | Lparen atomic_pat When exp Rparen Eq exp + { peloc (Pat_when ($2, $4, $7)) } funcl: | id patsexp_funcl |
