UtyStmt Type
This data type implements untyped statements as generated by the parser. Each untyped statement stores also the line number where it has been parsed from for means of error reporting (if the type-checking should fail). In addition to the typical statements that also appear as Quartz statements, there some further statements that are eliminated by the type-checker:
- UtyNothing,UtyAction,UtyPause,UtyConditional,UtySequence,UtyDoWhile, and UtyWhileDo should be self-explaining.
- UtySyncParAnd(ln,S1,S2) is a synchronuous parallel execution of S1 and S2 that is active if both S1 and S2 are active.
- UtySyncParOr(ln,S1,S2) is a synchronuous parallel execution of S1 and S2 that is active if at least one of S1 and S2 is active.
- UtySuspend,UtySuspendW,UtySuspendI,UtySuspendWI are suspension statements, where weak and immediate variants are suffixed by W and I, respectively.
- UtyAbort,UtyAbortW,UtyAbortI,UtyAbortWI are abortion statements, where weak and immediate variants are suffixed by W and I, respectively.
- UtyDuring,UtyDuringF,UtyDuringI,UtyDuringIF are the four variants of during statement. Note that during(S1,S2) executes the instantaneous statement S2 in each macro step where S1 executes. The four variants differ in that they include the initial and final steps also indicated by the I and F suffixes.
- UtyLetDec(ln,[(x1,e1);...;(xN,eN)],S) declares local variables xi that are identified with expressions ei in the statement S.
- UtyLocDec(ln,[(x1,d1);...;(xN,dN)],S) declares local variables xi having declaration di for statement S.
- UtyModuleCall(ln,i,m,argL) is a module call to module m with argument list argL, and the name of this call is i (i and m are indices of the NameTable).
- UtyContFlow(ln,w1,w2,S,sigma) is a flow statement to define the continuous evolution of a hybrid system via the actions in S until the condition sigma holds (which terminates the continuous phase).
- UtyGen* are generic statements that are given a triple (ln,generic,S), where generic is a tuple (xn,min,max). The meaning is that first instances [Smin;...;Smax] are generated by replacing variable xn in S by the nat constants min;...;max, and these statements are combined as a sequence, synchronous parallel, etc. according to the operator.
- UtyCaseStmt(ln,[(b1,S1);...;(bN,SN)],S) represents a case statement that executes Si when bi holds, and S if none of the Si holds. It only executes the first Si whose bi is true.
- UtyAsyncParOr(ln,S1,S2) implements an asynchronous parallel execution that executes either one step of S1, or one step of S2 or steps of both S1 and S2 in common. The statement is active as long as one of the two statements is active.
- UtyAsyncParAnd(ln,S1,S2) implements an asynchronous parallel execution that executes either one step of S1, or one step of S2 or steps of both S1 and S2 in common. The statement is active as long as both of the two statements are active.
- UtyInterleaveOr(ln,S1,S2) implements an interleaved parallel execution that executes either one step of S1 or one step of S2. The statement is active as long as one of the two statements are active.
- UtyInterleaveAnd(ln,S1,S2) implements an interleaved parallel execution that executes either one step of S1 or one step of S2. The statement is active as long as both of the two statements are active.
- UtyChoice(ln,S1,S2) nondeterministically (and dynamically) chooses that executes Si when bi holds, and S if none of the Si holds. It only between S1 and S2.
- UtyGenContFlow(ln,rl,cl,actL,sigma) is a generic flow statement with action list actL and optional release condition sigma. Note that only the action list is unrolled, and packed into a flow statement having the same rl,cl, and sigma.
- UtyHalt is Esterel's halt statement.
- UtyLoop(ln,S) infinitely often repeats the execution of S.
- UtyLoopEach and UtyEveryDo are Esterel's loop S each(b) and every-loop.
- UtyAwait and UtyAwaitI are the await statements that stop the control and wait until the given condition holds. The immediate form is UtyAwaitI. Both statements therefore define a new control flow location.
- UtyAlways(ln,qn,S) abbreviates UtyLoop(ln,UtySequence(ln,UtyPause(ln,qn),S))
- UtyAlwaysI(ln,qn,S) abbreviates UtyLoop(ln,UtySequence(ln,S,UtyPause(ln,qn)))
Union cases
Union case | Description |
|
|
Instance members
Instance member | Description |
Full Usage:
this.IsUtyAbort
Returns: bool
|
|
Full Usage:
this.IsUtyAbortI
Returns: bool
|
|
Full Usage:
this.IsUtyAbortW
Returns: bool
|
|
Full Usage:
this.IsUtyAbortWI
Returns: bool
|
|
Full Usage:
this.IsUtyAction
Returns: bool
|
|
Full Usage:
this.IsUtyAlways
Returns: bool
|
|
Full Usage:
this.IsUtyAlwaysI
Returns: bool
|
|
Full Usage:
this.IsUtyAsyncParAnd
Returns: bool
|
|
Full Usage:
this.IsUtyAsyncParOr
Returns: bool
|
|
Full Usage:
this.IsUtyAwait
Returns: bool
|
|
Full Usage:
this.IsUtyAwaitI
Returns: bool
|
|
Full Usage:
this.IsUtyCaseStmt
Returns: bool
|
|
Full Usage:
this.IsUtyChoice
Returns: bool
|
|
Full Usage:
this.IsUtyConditional
Returns: bool
|
|
Full Usage:
this.IsUtyContFlow
Returns: bool
|
|
Full Usage:
this.IsUtyDoWhile
Returns: bool
|
|
Full Usage:
this.IsUtyDuring
Returns: bool
|
|
Full Usage:
this.IsUtyDuringF
Returns: bool
|
|
Full Usage:
this.IsUtyDuringI
Returns: bool
|
|
Full Usage:
this.IsUtyDuringIF
Returns: bool
|
|
Full Usage:
this.IsUtyEveryDo
Returns: bool
|
|
Full Usage:
this.IsUtyGenAsyncParAnd
Returns: bool
|
|
Full Usage:
this.IsUtyGenAsyncParOr
Returns: bool
|
|
Full Usage:
this.IsUtyGenChoice
Returns: bool
|
|
Full Usage:
this.IsUtyGenContFlow
Returns: bool
|
|
Full Usage:
this.IsUtyGenInterleaveAnd
Returns: bool
|
|
Full Usage:
this.IsUtyGenInterleaveOr
Returns: bool
|
|
Full Usage:
this.IsUtyGenSequence
Returns: bool
|
|
Full Usage:
this.IsUtyGenSyncParAnd
Returns: bool
|
|
Full Usage:
this.IsUtyGenSyncParOr
Returns: bool
|
|
Full Usage:
this.IsUtyHalt
Returns: bool
|
|
Full Usage:
this.IsUtyInterleaveAnd
Returns: bool
|
|
Full Usage:
this.IsUtyInterleaveOr
Returns: bool
|
|
Full Usage:
this.IsUtyLetDec
Returns: bool
|
|
Full Usage:
this.IsUtyLocDec
Returns: bool
|
|
Full Usage:
this.IsUtyLoop
Returns: bool
|
|
Full Usage:
this.IsUtyLoopEach
Returns: bool
|
|
Full Usage:
this.IsUtyModuleCall
Returns: bool
|
|
Full Usage:
this.IsUtyNothing
Returns: bool
|
|
Full Usage:
this.IsUtyPause
Returns: bool
|
|
Full Usage:
this.IsUtySequence
Returns: bool
|
|
Full Usage:
this.IsUtySuspend
Returns: bool
|
|
Full Usage:
this.IsUtySuspendI
Returns: bool
|
|
Full Usage:
this.IsUtySuspendW
Returns: bool
|
|
Full Usage:
this.IsUtySuspendWI
Returns: bool
|
|
Full Usage:
this.IsUtySyncParAnd
Returns: bool
|
|
Full Usage:
this.IsUtySyncParOr
Returns: bool
|
|
Full Usage:
this.IsUtyWhileDo
Returns: bool
|
|