diff --git a/docs/code-prettify/run_prettify.js b/docs/code-prettify/run_prettify.js index 50c1e17af..f812658de 100644 --- a/docs/code-prettify/run_prettify.js +++ b/docs/code-prettify/run_prettify.js @@ -428,8 +428,10 @@ var IN_GLOBAL_SCOPE = false; "drop," + "else," + "enter" + + "entry" + "enum," + "event," + + "exit," + "fatal," + "format," + "get," + diff --git a/docs/fpp-spec.html b/docs/fpp-spec.html index e85de42e0..2084679ea 100644 --- a/docs/fpp-spec.html +++ b/docs/fpp-spec.html @@ -555,53 +555,74 @@

The F Prime Prime (FPP) Language Specification, State Machines

  • 6.1.3. Examples
  • -
  • 6.2. Enter Expressions +
  • 6.2. Do Expressions
  • -
  • 6.3. Guard Definitions +
  • 6.3. Enter Expressions
  • -
  • 6.4. Initial Transition Specifiers +
  • 6.4. Guard Definitions
  • -
  • 6.5. Junction Definitions +
  • 6.5. Initial Transition Specifiers
  • -
  • 6.6. Signal Definitions +
  • 6.6. Junction Definitions
  • -
  • 6.7. State Definitions +
  • 6.7. Signal Definitions
  • -
  • 6.8. State Transition Specifiers +
  • 6.8. State Definitions +
  • +
  • 6.9. State Entry Specifiers + +
  • +
  • 6.10. State Exit Specifiers + +
  • +
  • 6.11. State Transition Specifiers +
  • @@ -3088,25 +3109,25 @@

    5.10.3. Examples

    state machine MonitorSm {
     
    -  signal Complete
    -  signal Drive
    -  signal Calibrate
    -  signal RTI
    -  signal Stop
    -  signal Fault
    -
    -  action init2
       action doCalibrate
    +  action init2
       action motorControl
       action reportFault
     
       guard calibrateReady
     
    +  signal Calibrate
    +  signal Complete
    +  signal Drive
    +  signal Fault
    +  signal RTI
    +  signal Stop
    +
       initial enter DeviceOn
     
       state DeviceOn {
     
    -    initial do init2 enter Initializing
    +    initial do { init2 } enter Initializing
     
         state Initializing {
           on Complete enter Idle
    @@ -3118,13 +3139,13 @@ 

    5.10.3. Examples

    } state Calibrating { - on RTI do doCalibrate - on Fault do reportFault enter Idle + on RTI do { doCalibrate } + on Fault do { reportFault } enter Idle on Complete enter Idle } state Driving { - on RTI do motorControl + on RTI do { motorControl } on Stop enter Idle } @@ -3870,7 +3891,62 @@

    6.1.3. Exam

    -

    6.2. Enter Expressions

    +

    6.2. Do Expressions

    +
    +

    An do expression specifies a list of actions as part of an +initial transition specifier, +a state transition specifier, +a state entry specifier, +a state exit specifier, +or +a junction definition.

    +
    +
    +

    6.2.1. Syntax

    +
    +

    do { action-sequence }

    +
    +
    +

    action-sequence is an +element sequence in +which each element is an identifier +and the terminating punctuation is a comma.

    +
    +
    +
    +

    6.2.2. Semantics

    +
    +

    Each identifier in the action sequence must +refer +to an +action definition.

    +
    +
    +
    +

    6.2.3. Examples

    +
    +
    +
    state machine Device {
    +
    +  action powerActuator
    +  action powerGyro
    +  action powerGimbal
    +
    +  state ON {
    +    entry do {
    +      powerActuator
    +      powerGyro
    +      powerGimbal
    +    }
    +  }
    +
    +}
    +
    +
    +
    +
    +
    +

    6.3. Enter Expressions

    An enter expression specifies a transition as part of an initial transition, @@ -3881,24 +3957,21 @@

    6.2. Enter Expression some action.

    -

    6.2.1. Syntax

    +

    6.3.1. Syntax

    -

    6.2.2. Semantics

    +

    6.3.2. Semantics

    1. -

      If present, the optional identifier after the keyword do must -refer -to an -action definition. -It specifies an action to perform when making the transition.

      +

      If present, the do-expression specifies the list of actions to be +performed when making the transition.

    2. The qualified identifier after the keyword enter must @@ -3913,24 +3986,21 @@

      6.2.2. Sema

    -

    6.2.3. Examples

    +

    6.3.3. Examples

    state machine Device {
     
    -  signal PowerOn
    -
    -  action getReady
    -
    -  guard initComplete
    -
    -  initial enter OFF
    +  action initDev1
    +  action initDev2
     
    -  state OFF {
    -    on PowerOn if initComplete do getReady enter ON
    -  }
    +  initial do {
    +    initDev1
    +    initDev2
    +  } \
    +  enter OFF
     
    -  state ON
    +  state OFF
     
     }
    @@ -3938,7 +4008,7 @@

    6.2.3. Examp

    -

    6.3. Guard Definitions

    +

    6.4. Guard Definitions

    A guard definition is part of a state machine definition. @@ -3951,7 +4021,7 @@

    6.3. Guard Definition or the branch of the junction is taken.

    -

    6.3.1. Syntax

    +

    6.4.1. Syntax

    guard identifier @@ -3962,7 +4032,7 @@

    6.3.1. Syntax<

    -

    6.3.2. Semantics

    +

    6.4.2. Semantics

    1. @@ -3979,7 +4049,7 @@

      6.3.2. Sema

    -

    6.3.3. Examples

    +

    6.4.3. Examples

    enum EnabledStatus { ENABLED, DISABLED }
    @@ -4007,7 +4077,7 @@ 

    6.3.3. Examp

    -

    6.4. Initial Transition Specifiers

    +

    6.5. Initial Transition Specifiers

    An initial transition specifier is part of a state machine definition @@ -4018,14 +4088,14 @@

    6.4. Init substates.

    -

    6.4.1. Syntax

    +

    6.5.1. Syntax

    -

    6.4.2. Semantics

    +

    6.5.2. Semantics

    The state definition or junction definition referred to in the enter expression must be a member of the same @@ -4034,12 +4104,13 @@

    -

    6.4.3. Examples

    +

    6.5.3. Examples

    state machine Device {
     
    -  action initDevices
    +  action initDev1
    +  action initDev2
     
       # When the state machine starts up, enter the ON state
       initial enter ON
    @@ -4047,7 +4118,11 @@ 

    state ON { # When entering the ON state, enter the POWERING_UP substate - initial do initDevices enter POWERING_UP + initial do { + initDev1 + initDev2 + } \ + enter POWERING_UP state POWERING_UP @@ -4059,7 +4134,7 @@

    -

    6.5. Junction Definitions

    +

    6.6. Junction Definitions

    A junction definition specifies a junction as part of a state machine definition @@ -4069,7 +4144,7 @@

    6.5. Junction Defi guard.

    -

    6.5.1. Syntax

    +

    6.6.1. Syntax

    junction identifier { @@ -4079,7 +4154,7 @@

    6.5.1. Synt

    -

    6.5.2. Semantics

    +

    6.6.2. Semantics

    1. @@ -4101,7 +4176,7 @@

      6.5.2. S

    -

    6.5.3. Examples

    +

    6.6.3. Examples

    state machine Device {
    @@ -4113,7 +4188,7 @@ 

    6.5.3. Ex junction J1 { if coldStart enter OFF \ - else do initPower enter ON + else do { initPower } enter ON } state OFF @@ -4126,7 +4201,7 @@

    6.5.3. Ex

    -

    6.6. Signal Definitions

    +

    6.7. Signal Definitions

    A signal definition is part of a state machine definition. @@ -4149,7 +4224,7 @@

    6.6. Signal Definiti for that state.

    -

    6.6.1. Syntax

    +

    6.7.1. Syntax

    signal identifier @@ -4160,7 +4235,7 @@

    6.6.1. Syntax

    -

    6.6.2. Semantics

    +

    6.7.2. Semantics

    1. @@ -4175,7 +4250,7 @@

      6.6.2. Sem

    -

    6.6.3. Examples

    +

    6.7.3. Examples

    struct FaultData {
    @@ -4200,7 +4275,7 @@ 

    6.6.3. Exam

    -

    6.7. State Definitions

    +

    6.8. State Definitions

    A state definition is part of a state machine definition @@ -4211,7 +4286,7 @@

    6.7. State Definition of states: S' is a substate of S.

    -

    6.7.1. Syntax

    +

    6.8.1. Syntax

    state identifier [ { state-definition-member-sequence } ]

    @@ -4237,11 +4312,17 @@

    6.7.1. Syntax<
  • A state transition specifier

  • +
  • +

    A state entry specifier

    +
  • +
  • +

    A state exit specifier

    +
  • -

    6.7.2. Semantics

    +

    6.8.2. Semantics

    1. @@ -4257,6 +4338,12 @@

      6.7.2. Sema I specifies the sub-state to enter on entry to the outer state.

    2. +

      M may not contain more than one state entry specifier.

      +
    3. +
    4. +

      M may not contain more than one state exit specifier.

      +
    5. +
    6. No two state transition specifiers that are members of M may refer to the same @@ -4274,49 +4361,149 @@

      6.7.2. Sema

    -

    6.7.3. Examples

    +

    6.8.3. Examples

    state machine MonitorSm {
     
    -  signal Complete
    -  signal Drive
    -  signal Calibrate
    -  signal RTI
    -  signal Stop
    -  signal Fault
    -
    -  action init2
       action doCalibrate
    +  action heaterOff
    +  action heaterOn
    +  action init1
    +  action init2
    +  action monitorOff
    +  action monitorOn
       action motorControl
       action reportFault
    +  action stopMotor
     
       guard calibrateReady
     
    +  signal Calibrate
    +  signal Complete
    +  signal Drive
    +  signal Fault
    +  signal RTI
    +  signal Stop
    +
       initial enter DEVICE_ON
     
       state DEVICE_ON {
     
    -    initial do init2 enter INITIALIZING
    +    initial do {
    +      init1
    +      init2
    +     } \
    +     enter INITIALIZING
     
         state INITIALIZING {
           on Complete enter IDLE
         }
     
         state IDLE {
    +      entry do {
    +        heaterOff
    +        monitorOff
    +      }
    +      exit do {
    +        heaterOn
    +        monitorOn
    +      }
           on Drive enter DRIVING
           on Calibrate if calibrateReady enter CALIBRATING
         }
     
         state CALIBRATING {
    -      on RTI do doCalibrate
    -      on Fault do reportFault enter Idle
    +      on RTI do { doCalibrate }
    +      on Fault do { reportFault } enter Idle
           on Complete enter IDLE
         }
     
         state DRIVING {
    -      on RTI do motorControl
    -      on Stop enter IDLE
    +      on RTI do { motorControl }
    +      on Stop do { stopMotor } enter IDLE
    +    }
    +
    +  }
    +
    +}
    +
    +
    +
    +
    +
    +

    6.9. State Entry Specifiers

    +
    +

    A state entry specifier is part of a +state definition. +It specifies the actions to take when entering the state.

    +
    +
    +

    6.9.1. Syntax

    +
    +

    entry do-expression

    +
    +
    +
    +

    6.9.2. Semantics

    +
    +

    The do expression must be valid.

    +
    +
    +
    +

    6.9.3. Examples

    +
    +
    +
    state machine Device {
    +
    +  action heaterOn
    +  action monitorOn
    +
    +  state RUNNING {
    +    entry do {
    +      heaterOn
    +      monitorOn
    +    }
    +
    +  }
    +
    +}
    +
    +
    +
    +
    +
    +

    6.10. State Exit Specifiers

    +
    +

    A state exit specifier is part of a +state definition. +It specifies the actions to take when exiting the state.

    +
    +
    +

    6.10.1. Syntax

    +
    +

    exit do-expression

    +
    +
    +
    +

    6.10.2. Semantics

    +
    +

    The do expression must be valid.

    +
    +
    +
    +

    6.10.3. Examples

    +
    +
    +
    state machine Device {
    +
    +  action heaterOff
    +  action monitorOff
    +
    +  state RUNNING {
    +    exit do {
    +      heaterOff
    +      monitorOff
         }
     
       }
    @@ -4327,14 +4514,14 @@ 

    6.7.3. Examp

    -

    6.8. State Transition Specifiers

    +

    6.11. State Transition Specifiers

    A state transition specifier is part of a state definition. It specifies a transition from the state in which it appears.

    -

    6.8.1. Syntax

    +

    6.11.1. Syntax

    on identifier [ @@ -4351,13 +4538,13 @@

    6.8.

    enter-expression

  • -

    do identifier

    +

    do-expression

  • -

    6.8.2. Semantics

    +

    6.11.2. Semantics

    1. @@ -4375,44 +4562,47 @@

      6 It specifies a guard for the transition.

    2. -

      The first form of the syntax specifies a target state and an optional action. -The enter expression must be valid. +

      The first form of the enter-or-do syntax specifies an optional +list of actions and a target state. +The do expression, if it appears, and the enter expression must be valid. The target state in the enter expression may be the same as the enclosing state; in this case the transition is called a self transition. When making a self transition, the state machine runs the code associated with exiting and then re-entering the state.

    3. -

      Second form of the syntax specifies an -internal transition, i.e., an action to take while remaining +

      Second form of the enter-or-do syntax specifies an +internal transition, i.e., a list of actions to take while remaining in the same state. When making an internal transition, the exit and re-entry code is not run. -The identifier after the keyword do must -refer -to an -action definition.

      +The do expression must be valid.

    -

    6.8.3. Examples

    +

    6.11.3. Examples

    state machine Device {
     
    -  signal RTI
    -  signal PowerOn
    -
       action performStuff
    -  action getReady
    +  action powerHeater
    +  action powerSensor
     
       guard initComplete
     
    +  signal PowerOn
    +  signal RTI
    +
       initial enter OFF
     
       state OFF {
    -    on PowerOn if initComplete do getReady enter ON
    +    on PowerOn if initComplete do {
    +      powerHeater
    +      powerSensor
    +    } \
    +    enter ON
       }
     
       state ON {
    @@ -9913,7 +10103,7 @@ 

    22.4. Translation Tools

    diff --git a/docs/fpp-users-guide.html b/docs/fpp-users-guide.html index d10c0b9c8..96e37e4fc 100644 --- a/docs/fpp-users-guide.html +++ b/docs/fpp-users-guide.html @@ -12293,7 +12293,7 @@

    diff --git a/docs/index.html b/docs/index.html index 07e30b8d1..5d3dd6e90 100644 --- a/docs/index.html +++ b/docs/index.html @@ -463,7 +463,7 @@

    F Prime Prime (FPP)

    diff --git a/docs/spec/Definitions/State-Machine-Definitions.adoc b/docs/spec/Definitions/State-Machine-Definitions.adoc index d2d0e99b8..1f82c7d00 100644 --- a/docs/spec/Definitions/State-Machine-Definitions.adoc +++ b/docs/spec/Definitions/State-Machine-Definitions.adoc @@ -236,25 +236,25 @@ with the following modifications: state machine MonitorSm { - signal Complete - signal Drive - signal Calibrate - signal RTI - signal Stop - signal Fault - - action init2 action doCalibrate + action init2 action motorControl action reportFault guard calibrateReady + signal Calibrate + signal Complete + signal Drive + signal Fault + signal RTI + signal Stop + initial enter DeviceOn state DeviceOn { - initial do init2 enter Initializing + initial do { init2 } enter Initializing state Initializing { on Complete enter Idle @@ -266,13 +266,13 @@ state machine MonitorSm { } state Calibrating { - on RTI do doCalibrate - on Fault do reportFault enter Idle + on RTI do { doCalibrate } + on Fault do { reportFault } enter Idle on Complete enter Idle } state Driving { - on RTI do motorControl + on RTI do { motorControl } on Stop enter Idle } diff --git a/docs/spec/State-Machine-Behavior-Elements/Do-Expressions.adoc b/docs/spec/State-Machine-Behavior-Elements/Do-Expressions.adoc new file mode 100644 index 000000000..d5cfae930 --- /dev/null +++ b/docs/spec/State-Machine-Behavior-Elements/Do-Expressions.adoc @@ -0,0 +1,46 @@ +=== Do Expressions + +An *do expression* specifies a list of actions as part of an +<>, +a <>, +a <>, +a <>, +or +a <>. + +==== Syntax + +`do` `{` _action-sequence_ `}` + +_action-sequence_ is an +<> in +which each element is an <> +and the terminating punctuation is a comma. + +==== Semantics + +Each identifier in the action sequence must +<> +to an +<>. + +==== Examples + +[source,fpp] +---- +state machine Device { + + action powerActuator + action powerGyro + action powerGimbal + + state ON { + entry do { + powerActuator + powerGyro + powerGimbal + } + } + +} +---- diff --git a/docs/spec/State-Machine-Behavior-Elements/Enter-Expressions.adoc b/docs/spec/State-Machine-Behavior-Elements/Enter-Expressions.adoc index 43b5ca93f..756d31385 100644 --- a/docs/spec/State-Machine-Behavior-Elements/Enter-Expressions.adoc +++ b/docs/spec/State-Machine-Behavior-Elements/Enter-Expressions.adoc @@ -11,17 +11,15 @@ some action. ==== Syntax _[_ -`do` <> +<> _]_ `enter` <> + ==== Semantics -. If present, the optional identifier after the keyword `do` must -<> -to an -<>. -It specifies an action to perform when making the transition. +. If present, the do-expression specifies the list of actions to be +performed when making the transition. . The qualified identifier after the keyword `enter` must <> @@ -37,19 +35,16 @@ It is the state or junction that is entered. ---- state machine Device { - signal PowerOn - - action getReady - - guard initComplete - - initial enter OFF + action initDev1 + action initDev2 - state OFF { - on PowerOn if initComplete do getReady enter ON - } + initial do { + initDev1 + initDev2 + } \ + enter OFF - state ON + state OFF } ---- diff --git a/docs/spec/State-Machine-Behavior-Elements/Initial-Transition-Specifiers.adoc b/docs/spec/State-Machine-Behavior-Elements/Initial-Transition-Specifiers.adoc index 61db8d1fe..36bcccf13 100644 --- a/docs/spec/State-Machine-Behavior-Elements/Initial-Transition-Specifiers.adoc +++ b/docs/spec/State-Machine-Behavior-Elements/Initial-Transition-Specifiers.adoc @@ -26,7 +26,8 @@ transition specifier appears. ---- state machine Device { - action initDevices + action initDev1 + action initDev2 # When the state machine starts up, enter the ON state initial enter ON @@ -34,7 +35,11 @@ state machine Device { state ON { # When entering the ON state, enter the POWERING_UP substate - initial do initDevices enter POWERING_UP + initial do { + initDev1 + initDev2 + } \ + enter POWERING_UP state POWERING_UP diff --git a/docs/spec/State-Machine-Behavior-Elements/Junction-Definitions.adoc b/docs/spec/State-Machine-Behavior-Elements/Junction-Definitions.adoc index f6cd743be..ad5552283 100644 --- a/docs/spec/State-Machine-Behavior-Elements/Junction-Definitions.adoc +++ b/docs/spec/State-Machine-Behavior-Elements/Junction-Definitions.adoc @@ -42,7 +42,7 @@ state machine Device { junction J1 { if coldStart enter OFF \ - else do initPower enter ON + else do { initPower } enter ON } state OFF diff --git a/docs/spec/State-Machine-Behavior-Elements/State-Definitions.adoc b/docs/spec/State-Machine-Behavior-Elements/State-Definitions.adoc index cd5744978..2644b4203 100644 --- a/docs/spec/State-Machine-Behavior-Elements/State-Definitions.adoc +++ b/docs/spec/State-Machine-Behavior-Elements/State-Definitions.adoc @@ -23,6 +23,8 @@ A state definition member is one of the following: * A <> * A <> * A <> +* A <> +* A <> ==== Semantics @@ -34,6 +36,10 @@ then it must obey the following rules: .. _M_ must contain exactly one initial transition specifier _I_. _I_ specifies the sub-state to enter on entry to the outer state. +.. _M_ may not contain more than one state entry specifier. + +.. _M_ may not contain more than one state exit specifier. + .. No two <> that are members of _M_ may <> to the same @@ -49,44 +55,62 @@ Otherwise it is called a *leaf state definition*. ---- state machine MonitorSm { - signal Complete - signal Drive - signal Calibrate - signal RTI - signal Stop - signal Fault - - action init2 action doCalibrate + action heaterOff + action heaterOn + action init1 + action init2 + action monitorOff + action monitorOn action motorControl action reportFault + action stopMotor guard calibrateReady + signal Calibrate + signal Complete + signal Drive + signal Fault + signal RTI + signal Stop + initial enter DEVICE_ON state DEVICE_ON { - initial do init2 enter INITIALIZING + initial do { + init1 + init2 + } \ + enter INITIALIZING state INITIALIZING { on Complete enter IDLE } state IDLE { + entry do { + heaterOff + monitorOff + } + exit do { + heaterOn + monitorOn + } on Drive enter DRIVING on Calibrate if calibrateReady enter CALIBRATING } state CALIBRATING { - on RTI do doCalibrate - on Fault do reportFault enter Idle + on RTI do { doCalibrate } + on Fault do { reportFault } enter Idle on Complete enter IDLE } state DRIVING { - on RTI do motorControl - on Stop enter IDLE + on RTI do { motorControl } + on Stop do { stopMotor } enter IDLE } } diff --git a/docs/spec/State-Machine-Behavior-Elements/State-Entry-Specifiers.adoc b/docs/spec/State-Machine-Behavior-Elements/State-Entry-Specifiers.adoc new file mode 100644 index 000000000..66c62c7c1 --- /dev/null +++ b/docs/spec/State-Machine-Behavior-Elements/State-Entry-Specifiers.adoc @@ -0,0 +1,33 @@ +=== State Entry Specifiers + +A *state entry specifier* is part of a +<>. +It specifies the actions to take when entering the state. + +==== Syntax + +`entry` <> + +==== Semantics + +The do expression must be valid. + +==== Examples + +[source,fpp] +---- +state machine Device { + + action heaterOn + action monitorOn + + state RUNNING { + entry do { + heaterOn + monitorOn + } + + } + +} +---- diff --git a/docs/spec/State-Machine-Behavior-Elements/State-Exit-Specifiers.adoc b/docs/spec/State-Machine-Behavior-Elements/State-Exit-Specifiers.adoc new file mode 100644 index 000000000..434c20fac --- /dev/null +++ b/docs/spec/State-Machine-Behavior-Elements/State-Exit-Specifiers.adoc @@ -0,0 +1,33 @@ +=== State Exit Specifiers + +A *state exit specifier* is part of a +<>. +It specifies the actions to take when exiting the state. + +==== Syntax + +`exit` <> + +==== Semantics + +The do expression must be valid. + +==== Examples + +[source,fpp] +---- +state machine Device { + + action heaterOff + action monitorOff + + state RUNNING { + exit do { + heaterOff + monitorOff + } + + } + +} +---- diff --git a/docs/spec/State-Machine-Behavior-Elements/State-Transition-Specifiers.adoc b/docs/spec/State-Machine-Behavior-Elements/State-Transition-Specifiers.adoc index 32c9c7dce..34d760cec 100644 --- a/docs/spec/State-Machine-Behavior-Elements/State-Transition-Specifiers.adoc +++ b/docs/spec/State-Machine-Behavior-Elements/State-Transition-Specifiers.adoc @@ -16,7 +16,7 @@ _enter-or-do_ is one of the following: . <> -. `do` <> +. <> ==== Semantics @@ -32,21 +32,19 @@ to a <>. It specifies a guard for the transition. -. The first form of the syntax specifies a target state and an optional action. -The enter expression must be valid. +. The first form of the _enter-or-do_ syntax specifies an optional +list of actions and a target state. +The do expression, if it appears, and the enter expression must be valid. The target state in the enter expression may be the same as the enclosing state; in this case the transition is called a *self transition*. When making a self transition, the state machine runs the code associated with exiting and then re-entering the state. -. Second form of the syntax specifies an -*internal transition*, i.e., an action to take while remaining +. Second form of the _enter-or-do_ syntax specifies an +*internal transition*, i.e., a list of actions to take while remaining in the same state. When making an internal transition, the exit and re-entry code is not run. -The identifier after the keyword `do` must -<> -to an -<>. +The do expression must be valid. ==== Examples @@ -54,18 +52,23 @@ to an ---- state machine Device { - signal RTI - signal PowerOn - action performStuff - action getReady + action powerHeater + action powerSensor guard initComplete + signal PowerOn + signal RTI + initial enter OFF state OFF { - on PowerOn if initComplete do getReady enter ON + on PowerOn if initComplete do { + powerHeater + powerSensor + } \ + enter ON } state ON { diff --git a/docs/spec/State-Machine-Behavior-Elements/defs.sh b/docs/spec/State-Machine-Behavior-Elements/defs.sh index 80575b2d4..3a38c6243 100644 --- a/docs/spec/State-Machine-Behavior-Elements/defs.sh +++ b/docs/spec/State-Machine-Behavior-Elements/defs.sh @@ -9,11 +9,14 @@ redo-ifchange defs.sh export FILES=" Introduction.adoc Action-Definitions.adoc +Do-Expressions.adoc Enter-Expressions.adoc Guard-Definitions.adoc Initial-Transition-Specifiers.adoc Junction-Definitions.adoc Signal-Definitions.adoc State-Definitions.adoc +State-Entry-Specifiers.adoc +State-Exit-Specifiers.adoc State-Transition-Specifiers.adoc "