UnitStruct

final class UnitStruct extends ControlStruct

Fields

body

protected TapList<ControlStruct> body

Constructors

UnitStruct

protected UnitStruct(Unit unit, boolean isInterface)

Methods

addControlStruct

protected void addControlStruct(ControlStruct struct, FGArrow arrow)

dump

public void dump(int indent)

findUsedLabels

protected void findUsedLabels()

set usedLabels.

generateForwardTree

protected void generateForwardTree()

generateParameterList

protected void generateParameterList()

generateTree

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

(Recursive) final regeneration of the structured Tree.

getBlock

protected ControlStruct getBlock(Block block)

insertLetStructure

protected void insertLetStructure()

(Recursive) Inserts Let structures into the tree of ControlStruct’s to reflect nested local SymbolTable’s and also nested local parallel controls (e.g. OMP).

preGenerateForwardTree

protected void preGenerateForwardTree()

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

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.

setTraceThisUnit

protected void setTraceThisUnit(boolean traceThisUnit)

toString

public String toString()