diff options
| author | Alasdair Armstrong | 2017-10-03 14:48:01 +0100 |
|---|---|---|
| committer | Alasdair Armstrong | 2017-10-03 14:48:01 +0100 |
| commit | 93ecc5f82d5b1308b58cbf47a0ec91ec64f43ca1 (patch) | |
| tree | 367e2f4f43a02c7ad96436ce86044def1df6d76a /src/pretty_print_sail.ml | |
| parent | 6cd54063f1fa6fa966eea2f7613ad5c720fff279 (diff) | |
Fixed some loop bugs for ASL parser
Diffstat (limited to 'src/pretty_print_sail.ml')
| -rw-r--r-- | src/pretty_print_sail.ml | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/pretty_print_sail.ml b/src/pretty_print_sail.ml index 2f38fe02..d69ce3ce 100644 --- a/src/pretty_print_sail.ml +++ b/src/pretty_print_sail.ml @@ -176,7 +176,7 @@ let doc_exp, doc_let = and starstar_exp ((E_aux(e,_)) as expr) = match e with | E_app_infix(l,(Id_aux(Id "**",_) as op),r) -> doc_op (doc_id op) (starstar_exp l) (app_exp r) - | E_if _ | E_for _ | E_let _ -> right_atomic_exp expr + | E_if _ | E_for _ | E_loop _ | E_let _ -> right_atomic_exp expr | _ -> app_exp expr and right_atomic_exp ((E_aux(e,_)) as expr) = match e with (* Special case: omit "else ()" when the else branch is empty. *) @@ -186,7 +186,11 @@ let doc_exp, doc_let = | E_if(c,t,e) -> string "if" ^^ space ^^ group (exp c) ^/^ string "then" ^^ space ^^ group (exp t) ^/^ - string "else" ^^ space ^^ group (exp e) + string "else" ^^ space ^^ group (exp e) + | E_loop (Until, c, e) -> + (string "repeat" + ^/^ exp e) + ^/^ (string "until" ^^ space ^^ atomic_exp c) | E_for(id,exp1,exp2,exp3,order,exp4) -> string "foreach" ^^ space ^^ group (parens ( @@ -301,7 +305,7 @@ let doc_exp, doc_let = (* adding parens and loop for lower precedence *) | E_app (_, _)|E_vector_access (_, _)|E_vector_subrange (_, _, _) | E_cons (_, _)|E_field (_, _)|E_assign (_, _) - | E_if _ | E_for _ | E_let _ + | E_if _ | E_for _ | E_loop _ | E_let _ | E_vector_append _ | E_app_infix (_, (* for every app_infix operator caught at a higher precedence, |
