<?SBNF-www.vishia.de version="1.0" encoding="iso-8859-1" ?>
$xmlns:topics="http://www.vishia.de/2006/Topics".
$xmlns:xhtml="http://www.w3.org/1999/xhtml".
$inputEncodingKeyword="encoding".
$comment=(?...?).
$endlineComment=\#\#.
StateMachine::=
{
===State <state>
| === set <variable> ;
}
=== end \e.
variable::= <$?name> = [<""?value>|<*;?value>].
stateStructure::={ + <CompositeState> }.
state::=<$?@stateName> [ [: | in] <$?enclState>[\.<$?parallelState>] ] ===
<* |\.|===|\?\?|\?!|\?+?shortdescription><* |===|\?\?|\?!|\?+?description> ##description not started with ? contains a
short description.
[{ \? <description> }]
[ ===const: <constDef> ]
[ ===entry: <action?entry> ]
[ ===exit: <action?exit> ]
[{ ===trans <trans> }]
[ ===action-in-state: <action?instate> ]
.
SimpleState::= <$?@stateName> [ [: | in] <$?enclState> ]
[{ \? <description> }]
.
CompositeState::= <$?@stateName> [ [: | in] <$?enclState> ]
[\? <description>]
\{ { [ \|\| <CompositeState?ParallelState> |+ <CompositeState> | + <SimpleState> |] } \}.
description::=<?>
! <* |\?\.?tododescription> \?\. ##?! TODO ?.
|+ <* |\?\.?additionaldescription> \?\. ##?+ additional ?.
|\? <* |\?\.?description> \?\. ##?? some lines ?.
|- <*\n?description>. ##?- to endline \n
action::= [{ \?<description>}] <* |===?code>.
trans::= [:| ==\>{ <$?dstState> ? , }] <evCond> [ ==\> { <$?dstState> ? , } ] [;]
<* |===|\?\?|\?!|\?+?description> ##description not started with ? .
[{ \?<description> }]
[ ===action:<* |===|(c)?code> ]
[ @action:<* |===|(c)|@?code> ]
[ [(c)|@subcond:] { <subCondition> ? [(c)|@subcond:] }]
.
subCondition::= [ ==\> { <$?dstState> ? , } |<* |==\>|(c)|@subcond?cond> ==\> { <$?dstState> ? , }] ;
[@cond: <* |\?\?|@|===|(c)|@subcond?cond>]
[{ \? <description> }]
[ @action:<* |===|(c)|@?code> ]
.
evCond::=<?> [ tm(<*)?time> ) | \[ <*\]?cond> \] | @cond:<* |==\>|;|\?\?|@?cond> | <* |\[|==\>|(\?)?event> ] [ \[
<*\]?cond> \]].
constDef::={
[{ \? <description> }]
[ @ident: <$?ident> ]
[ @code: <* |===|@?code> ]
}.
##dstState::= <$?@name>.