|
|
@@ -131,7 +131,7 @@ dimlist:
|
|
|
|
|
|
fun_body:
|
|
|
| llist(var_dec) local_fun_dec* statement* loption(return_statement)
|
|
|
- { VarDecs (List.rev $1) :: (LocalFuns $2) :: $3 @ $4 }
|
|
|
+ { VarDecs (List.rev $1) :: LocalFuns $2 :: ($3 @ $4) }
|
|
|
|
|
|
return_statement:
|
|
|
(* return statement: use location of return value *)
|
|
|
@@ -177,7 +177,7 @@ statement:
|
|
|
{ If (cond, Block body, loc $startpos $endpos) } %prec IF
|
|
|
|
|
|
| IF LPAREN c=expr RPAREN t=block ELSE f=block
|
|
|
- { IfElse (c, Block t, Block f, loc $startpos(c) $endpos(c)) } %prec ELSE
|
|
|
+ { IfElse (c, Block t, Block f, loc $startpos(c) $endpos(c)) } (* %prec ELSE *)
|
|
|
|
|
|
| WHILE LPAREN cond=expr RPAREN body=block
|
|
|
{ While (cond, Block body, loc $startpos(cond) $endpos(cond)) }
|