|
@@ -1265,8 +1265,13 @@ and expr_next e1 = parser
|
|
|
make_binop OpGte e1 (secure_expr s)
|
|
|
| [< e2 = secure_expr >] ->
|
|
|
make_binop OpGt e1 e2)
|
|
|
- | [< '(Binop op,_); e2 = expr >] ->
|
|
|
- make_binop op e1 e2
|
|
|
+ | [< '(Binop op,_); s >] ->
|
|
|
+ (try
|
|
|
+ (match s with parser
|
|
|
+ | [< e2 = expr >] -> make_binop op e1 e2
|
|
|
+ | [< >] -> serror())
|
|
|
+ with Display e2 ->
|
|
|
+ raise (Display (make_binop op e1 e2)))
|
|
|
| [< '(Unop op,p) when is_postfix e1 op; s >] ->
|
|
|
expr_next (EUnop (op,Postfix,e1), punion (pos e1) p) s
|
|
|
| [< '(Question,_); e2 = expr; '(DblDot,_); e3 = expr >] ->
|