A statement is similar to that of any imperative programming language; it can change the memory state or the control flow. There are many kinds of statements.
abstract Statement : ExecutionObject
{
virtual list<Statement* owner> child_statements;
virtual list<VariableSymbol* reference> destination_vars;
};
| child_statements | Virtual list of statements (control flow objects) nested in this statement. |
| destination_vars | Virtual list of variables that have been written in this statement. |