Last modified 7 years ago Last modified on 2017-09-27 08:41:34

Base Ideas

(1) Namespaces

(1.1) Data Types

(2) Types

(3) Enums

(4) Signals

(5) Singletons

(6) Classes

(6.1) Finite State Machines

Finite State Machines are split into two section

  • Stateless Work
  • State Dependent Work

example

FSM
    ON START { ... }             // As the FSM starts up ... execute the lambda
    ON STOP  { ... }             // As the FSM is shut down
    ON STATE CHANGE { ... }      // Perfomed whenever the state changes
    ON RECEPTION { ... }         // Done on the reception of any signal
    ON UNRECOGNISED { ... }      // Done when a recieved signal is NOT acted upon
    ON ERROR { ... }             // Done when the ERROR exception is called
    ON signalIdent { ... }       // Done when a specific signal is received regardless of state

    INITIAL STATE firstState     // the initial state is prefixed with INITIAL 
                                 //     else the first defined state if none specified
        ON ENTRY { ... }         // Done when the state is entered
        ON EXIT  { ... }         // Done when the state is exited
        ON RECEPTION { ... }     // Done in this state as any signal is received
        ON UNRECOGNISED { ... }  // Done when in a specific state when a received signal is NOT acted upon
        ON ERROR { ... }         // Done when the ERROR exception is called in this state
        ON signalIdent { ... }   // Done when a specific signal is received regardless of stste

    STATE subsequentState
        ...                      // State augmentations as above

(7) Expression Syntax

(7.1) What about identifiers (Expression Syntax) ?

(7.2) Compile Time Type Checking

(8) Lambda Statements (Compound Statements)