e ::= n | (e) | x | ? | - e | e1 + e2 | e1 - e2 | e1 * e2
b ::= true | false | ! b | (b) | b and b | e = e | e == e | e < e | e <= e
block ::= stmt | stmt; block | { block }
stmt ::= x = e
| if b then block else block
| while b block
| choose { block | ... | block }
| ch?x
| ch!e
| stop
p ::= spawn id() block
Result: