MicroModelicaCCompiler
4.5.3
|
Go to the documentation of this file.
25 #include "../util/ast_util.hpp"
52 stringstream ret(stringstream::out);
54 ret <<
"return" << endl;
64 stringstream ret(stringstream::out);
66 ret <<
"break" << endl;
82 stringstream ret(stringstream::out);
83 AST_ExpressionListIterator it;
86 ret <<
lhs() <<
":=" <<
exp() <<
";" << endl;
89 int size =
exp()->getAsCallArgs()->arguments()->size(), i = 0;
90 foreach (it,
exp()->getAsCallArgs()->arguments()) {
122 stringstream ret(stringstream::out);
123 AST_StatementListIterator it;
131 ret <<
"end for;" << endl;
144 : _cond(cond), _sts(sts), _else_list(else_st), _comm(c)
164 stringstream ret(stringstream::out);
165 AST_StatementListIterator it;
166 AST_Statement_ElseListIterator else_it;
169 ret <<
"when " <<
condition() <<
" then" << endl;
177 ret <<
"elsewhen " <<
current_element(else_it)->condition() <<
" then" << endl;
185 ret <<
"end when;" << endl;
201 stringstream ret(stringstream::out);
202 AST_StatementListIterator it;
204 ret <<
"while " <<
condition() <<
" loop" << endl;
210 ret <<
"end while;" << endl;
217 AST_StatementList false_st)
218 : _cond(cond), _true_st(true_st), _false_st(false_st), _else_list(else_list)
234 stringstream ret(stringstream::out);
235 AST_StatementListIterator it;
236 AST_Statement_ElseListIterator else_it;
238 ret <<
"if " <<
condition() <<
" then" << endl;
245 ret <<
"elseif " <<
current_element(else_it)->condition() <<
" then" << endl;
254 ret <<
"else" << endl;
261 ret <<
"end if;" << endl;
268 AST_ExpressionList args)
269 : _out_exps(out_exps), _func(func), _args(args), _function_name(func->print())
275 stringstream ret(stringstream::out);
276 AST_ExpressionListIterator it;
283 ret << (i < size ?
"," :
"");
293 ret << (i < size ?
"," :
"");
319 visitor->
visit(
this);
320 _cond->accept(visitor);
321 AST_StatementListIterator it;
void accept(AST_Visitor *visitor)
AST_Expression condition() const
AST_Statement_OutputAssigment_(AST_ExpressionList, AST_Expression_ComponentReference, AST_ExpressionList)
void AST_ListPrint(list< T1 > *l1, ostream &ret, string sec_name="", string separator=" ", string opener="", string closer="", bool block=false)
void accept(AST_Visitor *visitor)
void setExp(AST_Expression exp)
AST_ExpressionList arguments() const
std::string functionName()
virtual StatementType statementType()
AST_Statement_ElseList _else_list
AST_StatementList statements() const
AST_Comment comment() const
AST_StatementList _true_st
AST_Statement_ElseList else_if() const
virtual StatementType statementType()
AST_ExpressionList _out_exps
AST_StatementList statements() const
AST_Expression_ComponentReference function() const
AST_Statement_Else_(AST_Expression cond, AST_StatementList sts)
AST_Statement_While_(AST_Expression cond, AST_StatementList)
AST_Statement_ElseList _else_list
AST_Statement_When_(AST_Expression cond, AST_StatementList, AST_Statement_ElseList, AST_Comment)
virtual StatementType statementType()
AST_StatementList statements() const
GET_AS_IMP(Statement, While)
AST_Expression_ComponentReference _func
CLASS_PRINTER_IMP(AST_Statement)
AST_Expression condition() const
std::string _function_name
AST_ExpressionList out_expressions() const
AST_Expression_ComponentReference _lhs
virtual StatementType statementType()
AST_Expression exp() const
AST_Expression_ComponentReference lhs() const
AST_StatementList _false_st
void setLHS(AST_Expression_ComponentReference comp_ref)
virtual StatementType statementType()
virtual void visit(AST_Class x)=0
virtual StatementType statementType()
AST_Expression condition() const
AST_StatementList statements() const
AST_Expression condition() const
AST_StatementList else_statements() const
AST_Statement_Assign_(AST_Expression_ComponentReference cr, AST_Expression exp)
AST_ForIndexList forIndexList() const
AST_Statement_ElseList else_when() const
virtual void leave(AST_Class x)=0
AST_StatementList statements() const
AST_Statement_If_(AST_Expression cond, AST_StatementList true_st, AST_Statement_ElseList, AST_StatementList false_st)
AST_Statement_For_(AST_ForIndexList index, AST_StatementList)
#define current_element(it)
virtual StatementType statementType()
virtual StatementType statementType()