Averest


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

UtyAbort LineNr * UtyStmt * UtyExpr

Full Usage: UtyAbort LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtyAbortI LineNr * UtyStmt * UtyExpr

Full Usage: UtyAbortI LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtyAbortW LineNr * UtyStmt * UtyExpr

Full Usage: UtyAbortW LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtyAbortWI LineNr * UtyStmt * UtyExpr

Full Usage: UtyAbortWI LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtyAction LineNr * UtyAction

Full Usage: UtyAction LineNr * UtyAction

Parameters:

Item : LineNr * UtyAction

UtyAlways LineNr * QName * UtyStmt

Full Usage: UtyAlways LineNr * QName * UtyStmt

Parameters:

Item : LineNr * QName * UtyStmt

UtyAlwaysI LineNr * QName * UtyStmt

Full Usage: UtyAlwaysI LineNr * QName * UtyStmt

Parameters:

Item : LineNr * QName * UtyStmt

UtyAsyncParAnd LineNr * UtyStmt * UtyStmt

Full Usage: UtyAsyncParAnd LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyAsyncParOr LineNr * UtyStmt * UtyStmt

Full Usage: UtyAsyncParOr LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyAwait LineNr * QName * UtyExpr

Full Usage: UtyAwait LineNr * QName * UtyExpr

Parameters:

Item : LineNr * QName * UtyExpr

UtyAwaitI LineNr * QName * UtyExpr

Full Usage: UtyAwaitI LineNr * QName * UtyExpr

Parameters:

Item : LineNr * QName * UtyExpr

UtyCaseStmt LineNr * (UtyExpr * UtyStmt) list * UtyStmt

Full Usage: UtyCaseStmt LineNr * (UtyExpr * UtyStmt) list * UtyStmt

Parameters:

Item : LineNr * (UtyExpr * UtyStmt) list * UtyStmt

UtyChoice LineNr * UtyStmt * UtyStmt

Full Usage: UtyChoice LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyConditional LineNr * UtyExpr * UtyStmt * UtyStmt

Full Usage: UtyConditional LineNr * UtyExpr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyExpr * UtyStmt * UtyStmt

UtyContFlow LineNr * QName * QName * UtyAction list * UtyExpr option

Full Usage: UtyContFlow LineNr * QName * QName * UtyAction list * UtyExpr option

Parameters:

Item : LineNr * QName * QName * UtyAction list * UtyExpr option

UtyDoWhile LineNr * UtyStmt * UtyExpr

Full Usage: UtyDoWhile LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtyDuring LineNr * UtyStmt * UtyStmt

Full Usage: UtyDuring LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyDuringF LineNr * UtyStmt * UtyStmt

Full Usage: UtyDuringF LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyDuringI LineNr * UtyStmt * UtyStmt

Full Usage: UtyDuringI LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyDuringIF LineNr * UtyStmt * UtyStmt

Full Usage: UtyDuringIF LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyEveryDo LineNr * QName * QName * UtyExpr * UtyStmt

Full Usage: UtyEveryDo LineNr * QName * QName * UtyExpr * UtyStmt

Parameters:

Item : LineNr * QName * QName * UtyExpr * UtyStmt

UtyGenAsyncParAnd LineNr * Generic * UtyStmt

Full Usage: UtyGenAsyncParAnd LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenAsyncParOr LineNr * Generic * UtyStmt

Full Usage: UtyGenAsyncParOr LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenChoice LineNr * Generic * UtyStmt

Full Usage: UtyGenChoice LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenContFlow LineNr * QName * QName * Generic * UtyAction list * UtyExpr option

Full Usage: UtyGenContFlow LineNr * QName * QName * Generic * UtyAction list * UtyExpr option

Parameters:

Item : LineNr * QName * QName * Generic * UtyAction list * UtyExpr option

UtyGenInterleaveAnd LineNr * Generic * UtyStmt

Full Usage: UtyGenInterleaveAnd LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenInterleaveOr LineNr * Generic * UtyStmt

Full Usage: UtyGenInterleaveOr LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenSequence LineNr * Generic * UtyStmt

Full Usage: UtyGenSequence LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenSyncParAnd LineNr * Generic * UtyStmt

Full Usage: UtyGenSyncParAnd LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyGenSyncParOr LineNr * Generic * UtyStmt

Full Usage: UtyGenSyncParOr LineNr * Generic * UtyStmt

Parameters:

Item : LineNr * Generic * UtyStmt

UtyHalt LineNr * QName

Full Usage: UtyHalt LineNr * QName

Parameters:

Item : LineNr * QName

UtyInterleaveAnd LineNr * UtyStmt * UtyStmt

Full Usage: UtyInterleaveAnd LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyInterleaveOr LineNr * UtyStmt * UtyStmt

Full Usage: UtyInterleaveOr LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyLetDec LineNr * (QName * UtyExpr) list * UtyStmt

Full Usage: UtyLetDec LineNr * (QName * UtyExpr) list * UtyStmt

Parameters:

Item : LineNr * (QName * UtyExpr) list * UtyStmt

UtyLocDec LineNr * Interface * UtyStmt

Full Usage: UtyLocDec LineNr * Interface * UtyStmt

Parameters:

Item : LineNr * Interface * UtyStmt

UtyLoop LineNr * UtyStmt

Full Usage: UtyLoop LineNr * UtyStmt

Parameters:

Item : LineNr * UtyStmt

UtyLoopEach LineNr * QName * UtyExpr * UtyStmt

Full Usage: UtyLoopEach LineNr * QName * UtyExpr * UtyStmt

Parameters:

Item : LineNr * QName * UtyExpr * UtyStmt

UtyModuleCall LineNr * Index * Index * Arguments

Full Usage: UtyModuleCall LineNr * Index * Index * Arguments

Parameters:

Item : LineNr * Index * Index * Arguments

UtyNothing LineNr

Full Usage: UtyNothing LineNr

Parameters:

Item : LineNr

UtyPause LineNr * QName

Full Usage: UtyPause LineNr * QName

Parameters:

Item : LineNr * QName

UtySequence LineNr * UtyStmt * UtyStmt

Full Usage: UtySequence LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtySuspend LineNr * UtyStmt * UtyExpr

Full Usage: UtySuspend LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtySuspendI LineNr * QName * UtyStmt * UtyExpr

Full Usage: UtySuspendI LineNr * QName * UtyStmt * UtyExpr

Parameters:

Item : LineNr * QName * UtyStmt * UtyExpr

UtySuspendW LineNr * UtyStmt * UtyExpr

Full Usage: UtySuspendW LineNr * UtyStmt * UtyExpr

Parameters:

Item : LineNr * UtyStmt * UtyExpr

UtySuspendWI LineNr * QName * UtyStmt * UtyExpr

Full Usage: UtySuspendWI LineNr * QName * UtyStmt * UtyExpr

Parameters:

Item : LineNr * QName * UtyStmt * UtyExpr

UtySyncParAnd LineNr * UtyStmt * UtyStmt

Full Usage: UtySyncParAnd LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtySyncParOr LineNr * UtyStmt * UtyStmt

Full Usage: UtySyncParOr LineNr * UtyStmt * UtyStmt

Parameters:

Item : LineNr * UtyStmt * UtyStmt

UtyWhileDo LineNr * UtyExpr * UtyStmt

Full Usage: UtyWhileDo LineNr * UtyExpr * UtyStmt

Parameters:

Item : LineNr * UtyExpr * UtyStmt