22 #ifndef UTAP_STATEMENT_H
23 #define UTAP_STATEMENT_H
33 class StatementVisitor;
41 virtual std::string
toString(std::string prefix)
const = 0;
52 std::string
toString(std::string prefix)
const;
62 std::string
toString(std::string prefix)
const;
72 std::string
toString(std::string prefix)
const;
85 std::string
toString(std::string prefix)
const;
102 std::string
toString(std::string prefix)
const;
113 std::string
toString(std::string prefix)
const;
124 std::string
toString(std::string prefix)
const;
131 typedef std::vector<Statement *>::iterator
iterator;
145 const_iterator
begin()
const;
146 const_iterator
end()
const;
149 std::string
toString(std::string prefix)
const;
159 std::string
toString(std::string prefix)
const;
169 std::string
toString(std::string prefix)
const;
190 std::string
toString(std::string prefix)
const;
199 std::string
toString(std::string prefix)
const;
208 std::string
toString(std::string prefix)
const;
219 std::string
toString(std::string prefix)
const;
EmptyStatement()
Definition: statement.cpp:35
std::set< symbol_t > & dependencies
Definition: statement.h:296
virtual int32_t visitStatement(Statement *stat)
Definition: statement.cpp:423
expression_t cond
Definition: statement.h:79
virtual int32_t visitIfStatement(IfStatement *stat)
Definition: statement.cpp:590
BreakStatement()
Definition: statement.cpp:356
virtual int32_t visitBreakStatement(BreakStatement *stat)
Definition: statement.cpp:502
Definition: statement.h:180
virtual int32_t visitExprStatement(ExprStatement *stat)
Definition: statement.cpp:517
std::string toString(std::string prefix) const
Definition: statement.cpp:71
Definition: statement.h:301
virtual bool returns()
Definition: statement.cpp:110
Definition: statement.h:75
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:155
std::string toString(std::string prefix) const
Definition: statement.cpp:302
virtual int32_t visitSwitchStatement(SwitchStatement *stat)
Definition: statement.cpp:474
virtual bool returns()
Definition: statement.cpp:386
Statement * stat
Definition: statement.h:81
Definition: statement.h:193
virtual int32_t visitSwitchStatement(SwitchStatement *stat)
Definition: statement.cpp:573
virtual int32_t visitDefaultStatement(DefaultStatement *stat)
Definition: statement.cpp:484
CollectDependenciesVisitor(std::set< symbol_t > &)
Definition: statement.cpp:619
virtual void visitExpression(expression_t)
Definition: statement.cpp:638
A reference to a symbol.
Definition: symbols.h:107
Definition: statement.h:243
virtual int32_t visitForStatement(ForStatement *stat)=0
std::string toString(std::string prefix) const
Definition: statement.cpp:139
expression_t cond
Definition: statement.h:183
expression_t expr
Definition: statement.h:58
virtual int32_t visitForStatement(ForStatement *stat)
Definition: statement.cpp:529
std::string toString(std::string prefix) const
Definition: statement.cpp:50
virtual int32_t visitCaseStatement(CaseStatement *stat)=0
Statement class for the iterator loop-construction.
Definition: statement.h:91
virtual int32_t visitBlockStatement(BlockStatement *stat)
Definition: statement.cpp:549
Definition: statement.h:265
virtual int32_t visitDoWhileStatement(DoWhileStatement *stat)
Definition: statement.cpp:458
virtual bool returns()
Definition: statement.cpp:275
virtual int32_t visitAssertStatement(AssertStatement *stat)=0
Definition: statement.h:202
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:83
expression_t step
Definition: statement.h:80
Statement * trueCase
Definition: statement.h:184
Definition: statement.h:55
virtual int32_t visitContinueStatement(ContinueStatement *stat)=0
Definition: statement.h:222
virtual int32_t visitEmptyStatement(EmptyStatement *stat)=0
virtual int32_t visitDoWhileStatement(DoWhileStatement *stat)
Definition: statement.cpp:543
virtual int32_t visitEmptyStatement(EmptyStatement *stat)
Definition: statement.cpp:428
virtual bool returns()
Definition: statement.cpp:88
Definition: statement.h:152
virtual int32_t visitContinueStatement(ContinueStatement *stat)
Definition: statement.cpp:507
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:331
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:40
virtual int32_t visitSwitchStatement(SwitchStatement *stat)=0
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:178
Definition: statement.h:211
virtual bool returns()
Definition: statement.cpp:297
std::string toString(std::string prefix) const
Definition: statement.cpp:165
virtual int32_t visitDoWhileStatement(DoWhileStatement *stat)=0
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:243
virtual int32_t visitIfStatement(IfStatement *stat)=0
virtual int32_t visitCaseStatement(CaseStatement *stat)
Definition: statement.cpp:579
Definition: statement.h:105
virtual int32_t visitBlockStatement(BlockStatement *stat)=0
virtual bool returns()
Definition: statement.cpp:45
virtual int32_t visitIterationStatement(IterationStatement *stat)=0
expression_t init
Definition: statement.h:78
A reference to a frame.
Definition: symbols.h:183
virtual bool returns()
Definition: statement.cpp:66
expression_t cond
Definition: statement.h:165
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:270
virtual bool returns()
Definition: statement.cpp:160
virtual int32_t visitIfStatement(IfStatement *stat)
Definition: statement.cpp:489
virtual int32_t accept(StatementVisitor *visitor)=0
virtual ~StatementVisitor()
Definition: statement.h:225
std::string toString(std::string prefix) const
Definition: statement.cpp:418
expression_t cond
Definition: statement.h:108
Statement * pop_stat()
Definition: statement.cpp:236
virtual ~BlockStatement()
Definition: statement.cpp:199
virtual int32_t visitForStatement(ForStatement *stat)
Definition: statement.cpp:443
Definition: statement.h:127
virtual int32_t visitAssertStatement(AssertStatement *stat)
Definition: statement.cpp:438
std::string toString(std::string prefix) const
Definition: statement.cpp:115
Definition: statement.h:283
symbol_t symbol
Definition: statement.h:96
Definition: statement.h:35
Definition: statement.h:172
Definition: statement.h:65
Statement * back()
Definition: statement.cpp:230
frame_t getFrame()
Definition: statement.h:141
Statement * falseCase
Definition: statement.h:185
DoWhileStatement(Statement *, expression_t)
Definition: statement.cpp:171
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:408
expression_t expr
Definition: statement.h:68
const_iterator begin() const
Definition: statement.cpp:210
virtual bool returns()
Definition: statement.cpp:413
virtual bool returns()
Definition: statement.cpp:183
virtual int32_t visitBreakStatement(BreakStatement *stat)=0
virtual int32_t visitDefaultStatement(DefaultStatement *stat)
Definition: statement.cpp:585
Definition: statement.h:162
std::string toString(std::string prefix) const
Definition: statement.cpp:371
virtual bool returns()
Definition: statement.cpp:319
A reference to an expression.
Definition: expression.h:68
BlockStatement(frame_t)
Definition: statement.cpp:193
virtual bool returns()
Definition: statement.cpp:336
virtual bool returns()
Definition: statement.cpp:366
DefaultStatement(frame_t)
Definition: statement.cpp:308
ExprStatement(expression_t)
Definition: statement.cpp:55
expression_t cond
Definition: statement.h:120
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:361
virtual int32_t visitWhileStatement(WhileStatement *stat)
Definition: statement.cpp:453
frame_t getFrame()
Definition: statement.h:99
virtual int32_t visitExprStatement(ExprStatement *stat)
Definition: statement.cpp:433
std::string toString(std::string prefix) const
Definition: statement.cpp:345
expression_t value
Definition: statement.h:214
virtual int32_t visitCaseStatement(CaseStatement *stat)
Definition: statement.cpp:479
IterationStatement(symbol_t, frame_t, Statement *)
Definition: statement.cpp:122
ForStatement(expression_t, expression_t, expression_t, Statement *)
Definition: statement.cpp:98
CollectDynamicExpressions(std::list< expression_t > &)
Definition: statement.cpp:631
virtual int32_t visitReturnStatement(ReturnStatement *stat)
Definition: statement.cpp:601
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:61
std::set< symbol_t > & changes
Definition: statement.h:287
CaseStatement(frame_t, expression_t)
Definition: statement.cpp:286
Definition: statement.h:46
frame_t frame
Definition: statement.h:134
AssertStatement(expression_t)
Definition: statement.cpp:77
virtual void visitExpression(expression_t)=0
frame_t frame
Definition: statement.h:94
virtual int32_t visitDefaultStatement(DefaultStatement *stat)=0
std::string toString(std::string prefix) const
Definition: statement.cpp:391
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:105
virtual int32_t visitBlockStatement(BlockStatement *stat)
Definition: statement.cpp:463
CollectChangesVisitor(std::set< symbol_t > &)
Definition: statement.cpp:608
std::string toString(std::string prefix) const
Definition: statement.cpp:93
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:314
Statement * stat
Definition: statement.h:97
virtual std::string toString(std::string prefix) const =0
ContinueStatement()
Definition: statement.cpp:376
void push_stat(Statement *stat)
Definition: statement.cpp:204
Definition: statement.h:116
virtual int32_t visitReturnStatement(ReturnStatement *stat)=0
std::list< expression_t > & expressions
Definition: statement.h:305
virtual int32_t visitWhileStatement(WhileStatement *stat)=0
SwitchStatement(frame_t, expression_t)
Definition: statement.cpp:264
virtual int32_t visitWhileStatement(WhileStatement *stat)
Definition: statement.cpp:537
WhileStatement(expression_t, Statement *)
Definition: statement.cpp:148
ReturnStatement()
Definition: statement.cpp:396
virtual bool returns()
Definition: statement.cpp:134
std::vector< Statement * >::iterator iterator
Definition: statement.h:131
std::string toString(std::string prefix) const
Definition: statement.cpp:253
Statement * stat
Definition: statement.h:109
Definition: statement.h:292
Statement * stat
Definition: statement.h:119
virtual int32_t visitAssertStatement(AssertStatement *stat)
Definition: statement.cpp:523
IfStatement(expression_t, Statement *, Statement *falseStat=NULL)
Definition: statement.cpp:324
Statement()
Definition: statement.cpp:29
virtual bool returns()
Definition: statement.cpp:248
std::vector< Statement * >::const_iterator const_iterator
Definition: statement.h:130
virtual int32_t visitExprStatement(ExprStatement *stat)=0
virtual int32_t visitIterationStatement(IterationStatement *stat)
Definition: statement.cpp:448
virtual void visitExpression(expression_t)
Definition: statement.cpp:614
expression_t cond
Definition: statement.h:155
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:129
virtual ~Statement()
Definition: statement.h:38
const_iterator end() const
Definition: statement.cpp:215
std::vector< Statement * > stats
Definition: statement.h:133
virtual void visitExpression(expression_t)
Definition: statement.cpp:626
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:381
virtual int32_t accept(StatementVisitor *visitor)
Definition: statement.cpp:292
std::string toString(std::string prefix) const
Definition: statement.cpp:188
std::string toString(std::string prefix) const
Definition: statement.cpp:280
virtual int32_t visitReturnStatement(ReturnStatement *stat)
Definition: statement.cpp:512