| program | ::= | chans | : | chandec list |
| procs | : | process list | ||
| process | ::= | vars | : | vardec list |
| steps | : | transition list | ||
| states | : | astate list | ||
| init | : | initstate | ||
| transition | ::= | source | : | astate |
| target | : | astate | ||
| lab | : | label | ||
| label | ::= | guard | : | expr |
| act | : | action | ||
| action | ::= | tau | ||
| | | input_action | |||
| | | output_action | |||
| | | assign_action | |||
| astate | ::= | initstate | ||
| | | state | |||
| state | ::= | name | : | string |
| assert | : | expr | ||
| pos | : | position | ||
| initstate | ::= | name | : | string |
| assert | : | expr | ||
| pos | : | position | ||
| expr | ::= | b_expr | ||
| | | u_expr | |||
| | | constval | |||
| | | variable | |||
| b_expr | : | left_expr | : | expr |
| right_expr | : | expr | ||
| op | : | operand | ||
| u_expr | : | sub_expr | : | expr |
| op | : | operand | ||
| operand | ::= | PLUS |MINUS |TIMES |DIV | (Operand als Konstanten in expr) | |
| | | AND |OR |NEG | |||
| | | LESS |GREATER |LEQ |GEQ | |||
| input_action | ::= | chan | : | channel |
| var | : | variable | ||
| | | ||||
| output_action | ::= | chan | : | channel |
| val | : | expr | ||
| assign_action | ::= | var | : | variable |
| | | val | : | expr | |
| vardec | ::= | var | : | variable |
| chandec | ::= | chan | : | channel |
| variable | ::= | name | : | string |
| channel | ::= | name | : | string |
| constval | ::= | val | : | Object |
| position | ::= | x | : | float |
| y | : | float |