LoopStruct

final class LoopStruct extends ControlStruct

ControlStruct for explicit loop (do n ; do times; do while ; do until…).

Constructors

LoopStruct

protected LoopStruct(Block block)

Methods

addControlStruct

protected void addControlStruct(ControlStruct struct, FGArrow arrow)

dump

public void dump(int indent)

generateTree

protected void generateTree(boolean delayGoto, TapList<TapTriplet<Tree, Tree, Integer>> toFutureIncludes, TapList<Tree> fileUserHelpStrings)

(Recursive) final regeneration of the structured Tree.

insertLetStructure

protected void insertLetStructure()

(Recursive) Inserts Let structures into the tree of ControlStruct’s to reflect nested local SymbolTable’s.

preGenerateTree

protected TapList<FGArrow> preGenerateTree(TapList<FGArrow> naturalArrows, TapList<TapTriplet<Tree, Tree, Integer>> toFutureIncludes, TapList<Tree> fileUserHelpStrings, TapList<ControlStruct> enclosingStructs, boolean skipSubUnits)

(Recursive) preparation before tree regeneration. Labels the arrows that need explicit jumps, prepares the skeleton of the future Tree.

Returns

a TapList of FGArrow

propagateNaturalFlow

protected TapList<FGArrow> propagateNaturalFlow()

(Recursive) precomputation of the “naturalFlow: info: the TapList of FGArrow that would naturally flow out of this ControlStruct, i.e. without any additional explicit jump.

propagateNaturalNext

protected void propagateNaturalNext(Block naturalNext)

(Recursive) precomputation of the “naturalNext” info: the next Block reached by natural flow from each ControlStruct.

reorderBody

protected void reorderBody()

(Recursive) Orders the lists of control structures inside, following all available indications on position (here: controlStructBlock ranks…).

toString

public String toString()