|
@@ -557,7 +557,11 @@ and expr = parser
|
|
| EUnop (Neg,Prefix,(EConst (Int i),pc)),p -> EConst (Int (neg i)),p
|
|
| EUnop (Neg,Prefix,(EConst (Int i),pc)),p -> EConst (Int (neg i)),p
|
|
| EUnop (Neg,Prefix,(EConst (Float j),pc)),p -> EConst (Float (neg j)),p
|
|
| EUnop (Neg,Prefix,(EConst (Float j),pc)),p -> EConst (Float (neg j)),p
|
|
| e -> e)
|
|
| e -> e)
|
|
- | [< '(Binop OpAdd,p1); e = expr >] -> e
|
|
|
|
|
|
+ | [< '(Binop OpAdd,p1); s >] ->
|
|
|
|
+ (match s with parser
|
|
|
|
+ | [< '(Const (Int i),p); e = expr_next (EConst (Int i),p) >] -> e
|
|
|
|
+ | [< '(Const (Float f),p); e = expr_next (EConst (Float f),p) >] -> e
|
|
|
|
+ | [< >] -> serror())
|
|
| [< '(Kwd For,p); '(POpen,_); name = any_ident; '(Kwd In,_); it = expr; '(PClose,_); s >] ->
|
|
| [< '(Kwd For,p); '(POpen,_); name = any_ident; '(Kwd In,_); it = expr; '(PClose,_); s >] ->
|
|
(try
|
|
(try
|
|
let e = expr s in
|
|
let e = expr s in
|