A statement is one of three kinds:

  • assignment
  • event raising
  • operation call


The language has the following assignment operators:

simple assignment =
multiply and assign *=
divide and assign /=
calculate modulo and assign %=
add and assign +=
subtract and assign -=
bitshift left and assign <<=
bitshift right and assign >>=
bitwise AND and assign &=
bitwise XOR and assign ^=
bitwise OR and assign |=

Raising an event

An event is raised by using the keyword raise, followed by the event name, e. g. raise incoming_call. If the event is an interface event, the name of the interface must be prepended, using dot notation.


interface intrfc:
  out event ev

Usage in the statechart:

always / raise intrfc.ev

See also sections "Declaring events" and "Raising and processing an event".

Calling an operation

An operation is called similarly to other programming languages using the operation name and passing actual parameter values in parenthesis and separated by comma. The parameters can be expressions. The parenthesis can be omitted when no parameters are passed. Please see section "Operations" for an example.