@@ -507,68 +507,69 @@ and parse_stmts (ps:pstate) : Ast.stmt array =
507
507
508
508
| _ ->
509
509
let (lstmts, lval) = ctxt " stmt: lval" parse_lval ps in
510
- begin
511
- match peek ps with
510
+ let stmts =
511
+ match peek ps with
512
512
513
- SEMI -> (bump ps; lstmts )
513
+ SEMI -> (bump ps; [| |] )
514
514
515
- | EQ -> parse_init lval ps
515
+ | EQ -> parse_init lval ps
516
516
517
- | OPEQ binop_token ->
518
- bump ps;
519
- let (stmts, rhs) =
520
- ctxt " stmt: opeq rhs" parse_expr_atom ps
521
- in
522
- let binop =
523
- match binop_token with
524
- PLUS -> Ast. BINOP_add
525
- | MINUS -> Ast. BINOP_sub
526
- | STAR -> Ast. BINOP_mul
527
- | SLASH -> Ast. BINOP_div
528
- | PERCENT -> Ast. BINOP_mod
529
- | AND -> Ast. BINOP_and
530
- | OR -> Ast. BINOP_or
531
- | CARET -> Ast. BINOP_xor
532
- | LSL -> Ast. BINOP_lsl
533
- | LSR -> Ast. BINOP_lsr
534
- | ASR -> Ast. BINOP_asr
535
- | _ -> raise (err " unknown opeq token" ps)
536
- in
537
- expect ps SEMI ;
538
- spans ps stmts apos
539
- (Ast. STMT_copy_binop (lval, binop, rhs))
517
+ | OPEQ binop_token ->
518
+ bump ps;
519
+ let (stmts, rhs) =
520
+ ctxt " stmt: opeq rhs" parse_expr_atom ps
521
+ in
522
+ let binop =
523
+ match binop_token with
524
+ PLUS -> Ast. BINOP_add
525
+ | MINUS -> Ast. BINOP_sub
526
+ | STAR -> Ast. BINOP_mul
527
+ | SLASH -> Ast. BINOP_div
528
+ | PERCENT -> Ast. BINOP_mod
529
+ | AND -> Ast. BINOP_and
530
+ | OR -> Ast. BINOP_or
531
+ | CARET -> Ast. BINOP_xor
532
+ | LSL -> Ast. BINOP_lsl
533
+ | LSR -> Ast. BINOP_lsr
534
+ | ASR -> Ast. BINOP_asr
535
+ | _ -> raise (err " unknown opeq token" ps)
536
+ in
537
+ expect ps SEMI ;
538
+ spans ps stmts apos
539
+ (Ast. STMT_copy_binop (lval, binop, rhs))
540
540
541
- | LARROW ->
542
- bump ps;
543
- let (stmts, rhs) = ctxt " stmt: recv rhs" parse_lval ps in
544
- let _ = expect ps SEMI in
545
- spans ps stmts apos (Ast. STMT_recv (lval, rhs))
541
+ | LARROW ->
542
+ bump ps;
543
+ let (stmts, rhs) = ctxt " stmt: recv rhs" parse_lval ps in
544
+ let _ = expect ps SEMI in
545
+ spans ps stmts apos (Ast. STMT_recv (lval, rhs))
546
546
547
- | SEND ->
548
- bump ps;
549
- let (stmts, rhs) =
550
- ctxt " stmt: send rhs" parse_expr_atom ps
551
- in
552
- let _ = expect ps SEMI in
553
- let bpos = lexpos ps in
554
- let (src, copy) = match rhs with
555
- Ast. ATOM_lval lv -> (lv, [| |])
556
- | _ ->
557
- let (_, tmp, tempdecl) =
558
- build_tmp ps slot_auto apos bpos
559
- in
560
- let copy = span ps apos bpos
561
- (Ast. STMT_copy (tmp, Ast. EXPR_atom rhs)) in
562
- ((clone_lval ps tmp), [| tempdecl; copy |])
563
- in
564
- let send =
565
- span ps apos bpos
566
- (Ast. STMT_send (lval, src))
567
- in
568
- Array. concat [ stmts; copy; [| send |] ]
547
+ | SEND ->
548
+ bump ps;
549
+ let (stmts, rhs) =
550
+ ctxt " stmt: send rhs" parse_expr_atom ps
551
+ in
552
+ let _ = expect ps SEMI in
553
+ let bpos = lexpos ps in
554
+ let (src, copy) = match rhs with
555
+ Ast. ATOM_lval lv -> (lv, [| |])
556
+ | _ ->
557
+ let (_, tmp, tempdecl) =
558
+ build_tmp ps slot_auto apos bpos
559
+ in
560
+ let copy = span ps apos bpos
561
+ (Ast. STMT_copy (tmp, Ast. EXPR_atom rhs)) in
562
+ ((clone_lval ps tmp), [| tempdecl; copy |])
563
+ in
564
+ let send =
565
+ span ps apos bpos
566
+ (Ast. STMT_send (lval, src))
567
+ in
568
+ Array. concat [ stmts; copy; [| send |] ]
569
569
570
- | _ -> raise (unexpected ps)
571
- end
570
+ | _ -> raise (unexpected ps)
571
+ in
572
+ Array. append lstmts stmts
572
573
573
574
574
575
and parse_ty_param (iref :int ref ) (ps :pstate ) : Ast.ty_param identified =
0 commit comments