summaryrefslogtreecommitdiff
path: root/src/parser.mly
diff options
context:
space:
mode:
authorBrian Campbell2017-09-28 11:34:22 +0100
committerBrian Campbell2017-09-28 11:34:22 +0100
commit1bd35a0934582ff08be0b99280b8d7080cbca4d1 (patch)
tree276e8d13cffdfc9c0ff2771e534795559d86be61 /src/parser.mly
parentb5969ea7ca7de19ea2b96c48b1765e2c51e5d2af (diff)
parent381a3967ebd9269082b452669f507787decf28b0 (diff)
Merge branch 'experiments' into mono-experiments
Diffstat (limited to 'src/parser.mly')
-rw-r--r--src/parser.mly3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/parser.mly b/src/parser.mly
index 5413ac0d..0c3dbb03 100644
--- a/src/parser.mly
+++ b/src/parser.mly
@@ -133,6 +133,7 @@ let make_vector_sugar order_set is_inc typ typ1 =
%token Pure Rec Register Return Scattered Sizeof Struct Switch Then True TwoStarStar Type TYPE Typedef
%token Undefined Union With When Val Constraint Try Catch Throw
%token Barr Depend Rreg Wreg Rmem Rmemt Wmem Wmv Wmvt Eamem Exmem Undef Unspec Nondet Escape
+%token While Do Repeat Until
/* Avoid shift/reduce conflict - see right_atomic_exp rule */
@@ -689,6 +690,8 @@ right_atomic_exp:
then ATyp_aux(ATyp_inc,(locn 6 6))
else ATyp_aux(ATyp_dec,(locn 6 6)) in
eloc (E_for($3,$5,$7,step,ord,$9)) }
+ | While exp Do exp
+ { eloc (E_loop (While, $2, $4)) }
| letbind In exp
{ eloc (E_let($1,$3)) }