| program | ::= | processes |
| processes | ::= | process |
| | | processes process | |
| process | ::= | 'Process' vardec { stmt } |
| expr | ::= | const |
| | | expr '+' expr | |
| | | expr '-' expr | |
| | | expr '*' expr | |
| | | expr '/' expr | |
| | | '('expr')' | |
| ... | ||
| stmt | ::= | varref ':=' expr |
| | | ASSERT expr | |
| | | stmt ';' stmt | |
| | | '{' stmt '}' | |
| | | stop | |
| | | IF options FI | |
| | | DO options OD | |
| | | BREAK | |
| options | ::= | option |
| | | option options | |
| option | ::= | '::' cond '->' stmt |