MicroModelicaCCompiler
4.5.3
|
Go to the documentation of this file.
25 #include "../util/ast_util.hpp"
38 stringstream ret(stringstream::out);
40 ret <<
left() <<
" = " <<
right() <<
";" << endl;
49 : _left(left), _right(right), _comment(comment)
66 : _cr1(cr1), _cr2(cr2)
72 stringstream ret(stringstream::out);
74 ret <<
"connect(" <<
_cr1 <<
"," <<
_cr2 <<
");" << endl;
92 stringstream ret(stringstream::out);
94 ret <<
call() <<
";" << endl;
105 : _cond(cond), _eql(eql), _else(else_eq), _else_if(elseif)
123 stringstream ret(stringstream::out);
124 AST_EquationListIterator it;
125 AST_Equation_ElseListIterator else_it;
127 ret <<
"if (" <<
condition() <<
") then " << endl;
134 ret <<
"elseif " <<
current_element(else_it)->condition() <<
" then" << endl;
142 ret <<
"else" << endl;
149 ret <<
"end if;" << endl;
161 stringstream ret(stringstream::out);
163 AST_EquationListIterator it;
164 AST_ForIndexListIterator ind_it;
172 ret <<
"end for;" << endl;
195 if (f.
in_exp() !=
nullptr) {
196 os <<
" in " << f.
in_exp();
205 visitor->
visit(
this);
206 _in->accept(visitor);
212 : _cond(cond), _eql(eql), _else_when(elsewhen), _comment(c)
232 stringstream ret(stringstream::out);
234 AST_EquationListIterator it;
235 AST_Equation_ElseListIterator else_it;
237 ret <<
"when " <<
condition() <<
" then" << endl;
244 ret <<
"elsewhen " <<
current_element(else_it)->condition() <<
" then" << endl;
252 ret <<
"end when;" << endl;
270 visitor->
visit(
this);
271 _cond->accept(visitor);
272 AST_EquationListIterator _eqs_it;
273 foreach (_eqs_it,
_eqs) {
AST_Comment comment() const
AST_Comment comment() const
AST_Expression condition() const
void accept(AST_Visitor *visitor)
void accept(AST_Visitor *visitor)
void setLeft(AST_Expression)
void AST_ListPrint(list< T1 > *l1, ostream &ret, string sec_name="", string separator=" ", string opener="", string closer="", bool block=false)
EquationType equationType()
EquationType equationType()
AST_Expression_ComponentReference _cr2
AST_EquationList equationList() const
AST_Equation_ElseList equationElseIf() const
EquationType equationType()
AST_Equation_Connect_(AST_Expression_ComponentReference cr1, AST_Expression_ComponentReference cr2)
AST_ForIndex_(AST_String var, AST_Expression exp)
AST_Equation_Call_(AST_Expression e)
EquationType equationType()
AST_Expression call() const
AST_Equation_If_(AST_Expression cond, AST_EquationList eql, AST_Equation_ElseList elseif, AST_EquationList else_eq)
AST_EquationList equationElseList() const
GET_AS_IMP(Equation, Equality)
void setRight(AST_Expression)
AST_Equation_Else_(AST_Expression cond, AST_EquationList eqs)
AST_Expression_ComponentReference _cr1
AST_ForIndexList forIndexList() const
void setCondition(AST_Expression e)
void setCondition(AST_Expression c)
AST_Expression condition() const
AST_Expression_ComponentReference right()
AST_Equation_ElseList _else_if
CLASSP_PRINTER_IMP(AST_ForIndex)
AST_EquationList equationList() const
AST_EquationList equations() const
void setCondition(AST_Expression e)
AST_Equation_ElseList equationElseWhen() const
AST_Equation_When_(AST_Expression cond, AST_EquationList eql, AST_Equation_ElseList elsewhen, AST_Comment c)
void accept(AST_Visitor *visitor)
CLASS_PRINTER_IMP(AST_Equation)
AST_String variable() const
AST_Equation_ElseList _else_when
virtual EquationType equationType()
AST_Expression right() const
AST_EquationList equationList() const
virtual void visit(AST_Class x)=0
AST_Equation_For_(AST_ForIndexList ind, AST_EquationList eql)
AST_Expression condition() const
ostream & operator<<(ostream &os, const AST_ForIndex_ &f)
virtual EquationType equationType()
AST_Expression in_exp() const
AST_Equation_Equality_(AST_Expression left, AST_Expression right, AST_Comment comment)
AST_Expression left() const
#define current_element(it)
AST_Expression_ComponentReference left()