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 | ||
type | : | m_atom_type | ||
u_expr | ::= | sub_expr | : | expr |
op | : | operand | ||
type | : | m_atom_type | ||
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 |
val | : | constval | ||
type | : | m_atom_type | ||
chandec | ::= | chan | : | channel |
type | : | m_chan | ||
variable | ::= | name | : | string |
type | : | m_atom_type |
||
channel | ::= | name | : | string |
type | : | m_chan | ||
constval | ::= | val | : | Object |
type | : | m_atom_type | ||
m_type | ::= | m_atom_type | ||
| | m_chan | |||
m_atom_type | ::= | m_int | ||
| | m_bool | |||
position | ::= | x | : | float |
y | : | float |