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: