22 #ifndef STARK_TOOLS_BLOCK_H 23 #define STARK_TOOLS_BLOCK_H 25 #include "common/array.h" 31 struct ControlStructure;
67 void setFollower(
Block *follower);
68 void addPredecessor(
Block *predecessor);
69 Block *getTrueBranch()
const;
70 Block *getFalseBranch()
const;
71 Block *getFollower()
const;
87 void setInfiniteLoopStart(
bool infiniteLoopStart);
93 bool hasPredecessor(
Block *predecessor)
const;
94 bool hasSuccessor(
Block *successor)
const;
96 bool checkAllBranchesConverge(
Block *junction)
const;
107 uint16 getFirstCommandIndex()
const;
117 bool _infiniteLoopStart;
121 enum ControlStructureType {
126 ControlStructureType type;
128 bool invertedCondition;
140 #endif // STARK_TOOLS_BLOCK_H