aboutsummaryrefslogtreecommitdiff
path: root/src/boot/fe
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/fe')
-rw-r--r--src/boot/fe/ast.ml5
-rw-r--r--src/boot/fe/item.ml13
2 files changed, 9 insertions, 9 deletions
diff --git a/src/boot/fe/ast.ml b/src/boot/fe/ast.ml
index 0b74da3c..31138a51 100644
--- a/src/boot/fe/ast.ml
+++ b/src/boot/fe/ast.ml
@@ -283,7 +283,7 @@ and stmt_for_each =
and stmt_for =
{
for_slot: (slot identified * ident);
- for_seq: ((stmt array) * lval);
+ for_seq: lval;
for_body: block;
}
@@ -1098,7 +1098,7 @@ and fmt_stmt_body (ff:Format.formatter) (s:stmt) : unit =
| STMT_for sfor ->
let (slot, ident) = sfor.for_slot in
- let (stmts, lval) = sfor.for_seq in
+ let lval = sfor.for_seq in
begin
fmt_obox ff;
fmt ff "for (";
@@ -1106,7 +1106,6 @@ and fmt_stmt_body (ff:Format.formatter) (s:stmt) : unit =
fmt ff " ";
fmt_ident ff ident;
fmt ff " in ";
- fmt_stmts ff stmts;
fmt_lval ff lval;
fmt ff ") ";
fmt_obr ff;
diff --git a/src/boot/fe/item.ml b/src/boot/fe/item.ml
index 5270e863..0b5efd67 100644
--- a/src/boot/fe/item.ml
+++ b/src/boot/fe/item.ml
@@ -369,17 +369,18 @@ and parse_stmts (ps:pstate) : Ast.stmt array =
let inner ps =
let slot = (parse_identified_slot_and_ident false ps) in
let _ = (expect ps IN) in
- let lval = (parse_lval ps) in
- (slot, lval) in
- let (slot, seq) =
+ (slot, (parse_lval ps))
+ in
+ let (slot, (stmts, lval)) =
ctxt "stmts: for head" (bracketed LPAREN RPAREN inner) ps
in
let body_block = ctxt "stmts: for body" parse_block ps in
let bpos = lexpos ps in
- [| span ps apos bpos
- (Ast.STMT_for
+ Array.append stmts
+ [| span ps apos bpos
+ (Ast.STMT_for
{ Ast.for_slot = slot;
- Ast.for_seq = seq;
+ Ast.for_seq = lval;
Ast.for_body = body_block; }) |]
end