100 :
Statement(), init(init), cond(cond), step(step), stat(_stat)
102 assert(_stat !=
nullptr);
141 string type =
symbol.getType()[0].getLabel(0);
142 return prefix +
"for (" +
symbol.getName() +
" : " 152 assert(_stat !=
nullptr);
167 return prefix +
"while(" +
cond.
toString()+
")\n" +prefix +
"{\n" 207 stats.push_back(stat);
212 return stats.begin();
222 return stats.begin();
232 assert(!
stats.empty());
255 std::string str =
"";
256 std::vector<Statement*>::const_iterator stats_itr;
257 for (stats_itr =
stats.begin(); stats_itr !=
stats.end(); ++ stats_itr)
259 str += (*stats_itr)->toString(prefix) +
"\n";
282 return prefix +
"switch(" +
cond.
toString() +
")\n" + prefix +
"{\n" 326 :
Statement(), cond(cond), trueCase(_true), falseCase(_false)
347 std::string str =prefix +
"if (" +
cond.
toString() +
")\n" 373 return prefix +
"break;";
393 return prefix +
"continue;";
430 return visitStatement(stat);
435 return visitStatement(stat);
440 return visitStatement(stat);
467 for (i = stat->
begin(); i != stat->
end(); i++)
469 result = (*i)->accept(
this);
476 return visitBlockStatement(stat);
481 return visitBlockStatement(stat);
486 return visitBlockStatement(stat);
504 return visitStatement(stat);
509 return visitStatement(stat);
514 return visitStatement(stat);
519 visitExpression(stat->
expr);
525 visitExpression(stat->
expr);
531 visitExpression(stat->
init);
532 visitExpression(stat->
cond);
533 visitExpression(stat->
step);
539 visitExpression(stat->
cond);
545 visitExpression(stat->
cond);
554 for (
size_t i = 0; i < vars.
getSize(); i++)
556 if (vars[i].getData())
559 visitExpression(((
variable_t *)vars[i].getData())->expr);
566 for (s = stat->
begin(); s != stat->
end(); ++s)
575 visitExpression(stat->
cond);
576 return visitBlockStatement(stat);
581 visitExpression(stat->
cond);
582 return visitBlockStatement(stat);
587 return visitBlockStatement(stat);
592 visitExpression(stat->
cond);
603 visitExpression(stat->
value);
620 std::set<symbol_t> &dependencies)
621 : dependencies(dependencies)
632 std::list<expression_t>& e)
ForStatement(expression_t, expression_t, expression_t, Statement *)
std::vector< Statement * >::const_iterator const_iterator
int32_t visitDefaultStatement(DefaultStatement *stat) override
int32_t visitBlockStatement(BlockStatement *stat) override
int32_t visitAssertStatement(AssertStatement *stat) override
ExprStatement(expression_t)
void visitExpression(expression_t) override
int32_t visitExprStatement(ExprStatement *stat) override
std::string toString(const std::string &prefix) const override
static map< int, string > expressions
virtual int32_t visitWhileStatement(WhileStatement *stat)=0
virtual int32_t visitExprStatement(ExprStatement *stat)=0
WhileStatement(expression_t, Statement *)
std::string toString(const std::string &prefix) const override
int32_t visitDoWhileStatement(DoWhileStatement *stat) override
DoWhileStatement(Statement *, expression_t)
int32_t visitDefaultStatement(DefaultStatement *stat) override
int32_t accept(StatementVisitor *visitor) override
int32_t visitContinueStatement(ContinueStatement *stat) override
int32_t visitBreakStatement(BreakStatement *stat) override
uint32_t getSize() const
Returns the number of symbols in this frame.
virtual int32_t visitCaseStatement(CaseStatement *stat)=0
const_iterator end() const
virtual int32_t visitBreakStatement(BreakStatement *stat)=0
int32_t visitDoWhileStatement(DoWhileStatement *stat) override
virtual int32_t visitAssertStatement(AssertStatement *stat)=0
std::string toString(const std::string &prefix) const override
int32_t accept(StatementVisitor *visitor) override
int32_t visitForStatement(ForStatement *stat) override
int32_t visitReturnStatement(ReturnStatement *stat) override
int32_t visitIfStatement(IfStatement *stat) override
int32_t accept(StatementVisitor *visitor) override
std::string toString(const std::string &prefix) const override
int32_t accept(StatementVisitor *visitor) override
int32_t visitIterationStatement(IterationStatement *stat) override
std::vector< Statement * >::iterator iterator
CollectDynamicExpressions(std::list< expression_t > &)
virtual int32_t visitIfStatement(IfStatement *stat)=0
~BlockStatement() override
int32_t visitSwitchStatement(SwitchStatement *stat) override
virtual int32_t visitReturnStatement(ReturnStatement *stat)=0
AssertStatement(expression_t)
virtual int32_t visitEmptyStatement(EmptyStatement *stat)=0
std::string toString(const std::string &prefix) const override
Statement class for the iterator loop-construction.
int32_t accept(StatementVisitor *visitor) override
int32_t visitIfStatement(IfStatement *stat) override
int32_t visitEmptyStatement(EmptyStatement *stat) override
int32_t visitReturnStatement(ReturnStatement *stat) override
virtual int32_t visitContinueStatement(ContinueStatement *stat)=0
void visitExpression(expression_t) override
virtual int32_t visitBlockStatement(BlockStatement *stat)=0
Base type for variables, clocks, etc.
SwitchStatement(frame_t, expression_t)
virtual int32_t visitIterationStatement(IterationStatement *stat)=0
static string symbol(const char *str)
Extracts the alpha-numerical symbol used for variable/type identifiers.
std::string toString(bool old=false) const
Returns a string representation of the expression.
std::string toString(const std::string &prefix) const override
int32_t accept(StatementVisitor *visitor) override
int32_t accept(StatementVisitor *visitor) override
int32_t visitSwitchStatement(SwitchStatement *stat) override
std::list< expression_t > & expressions
std::string toString(const std::string &prefix) const override
int32_t visitWhileStatement(WhileStatement *stat) override
const_iterator begin() const
CaseStatement(frame_t, expression_t)
IterationStatement(symbol_t, frame_t, Statement *)
int32_t accept(StatementVisitor *visitor) override
std::string toString(const std::string &prefix) const override
int32_t accept(StatementVisitor *visitor) override
void collectPossibleWrites(std::set< symbol_t > &) const
int32_t visitCaseStatement(CaseStatement *stat) override
std::set< symbol_t > & changes
std::vector< Statement * > stats
virtual int32_t visitForStatement(ForStatement *stat)=0
int32_t visitAssertStatement(AssertStatement *stat) override
int32_t visitBlockStatement(BlockStatement *stat) override
int32_t visitCaseStatement(CaseStatement *stat) override
std::string toString(const std::string &prefix) const override
std::set< symbol_t > & dependencies
void push_stat(Statement *stat)
std::string toString(const std::string &prefix) const override
A reference to an expression.
int32_t accept(StatementVisitor *visitor) override
DefaultStatement(frame_t)
std::string toString(const std::string &prefix) const override
bool hasDynamicSub() const
int32_t accept(StatementVisitor *visitor) override
int32_t accept(StatementVisitor *visitor) override
virtual int32_t visitStatement(Statement *stat)
virtual int32_t accept(StatementVisitor *visitor)=0
int32_t visitForStatement(ForStatement *stat) override
void visitExpression(expression_t) override
virtual int32_t visitSwitchStatement(SwitchStatement *stat)=0
int32_t accept(StatementVisitor *visitor) override
int32_t visitWhileStatement(WhileStatement *stat) override
CollectDependenciesVisitor(std::set< symbol_t > &)
virtual std::string toString(const std::string &prefix) const =0
std::string toString(const std::string &prefix) const override
IfStatement(expression_t, Statement *, Statement *falseStat=nullptr)
void collectPossibleReads(std::set< symbol_t > &, bool collectRandom=false) const
int32_t accept(StatementVisitor *visitor) override
virtual int32_t visitDoWhileStatement(DoWhileStatement *stat)=0
CollectChangesVisitor(std::set< symbol_t > &)
virtual int32_t visitDefaultStatement(DefaultStatement *stat)=0
std::string toString(const std::string &prefix) const override
int32_t accept(StatementVisitor *visitor) override
int32_t visitExprStatement(ExprStatement *stat) override
std::string toString(const std::string &prefix) const override