MicroModelicaCCompiler
4.5.3
|
Go to the documentation of this file.
25 #include "../util/ast_util.hpp"
28 const char *
BinOpTypeName[] = {
" or ",
" and ",
"<",
"<=",
">",
">=",
"<>",
"==",
"+",
".+",
"-",
".-",
"/",
"./",
"*",
".*",
"^",
".^"};
72 stringstream ret(stringstream::out);
75 AST_Expression_BinOp b =
left()->getAsBinOp();
77 ret <<
"(" <<
left() <<
")";
86 AST_Expression_BinOp b =
right()->getAsBinOp();
88 ret <<
"(" <<
right() <<
")";
108 stringstream ret(stringstream::out);
121 stringstream ret(stringstream::out);
133 stringstream ret(stringstream::out);
134 ret <<
"\"" <<
_s <<
"\"";
150 stringstream ret(stringstream::out);
151 ret << (
_b ?
"true" :
"false");
165 stringstream ret(stringstream::out);
166 ret <<
"der(" << *
_el->front() <<
")";
180 stringstream ret(stringstream::out);
181 ret <<
"(-" <<
_e <<
")";
195 stringstream ret(stringstream::out);
196 ret <<
"not " <<
exp();
208 : _name(name), _args(args), _output_args(output_args)
223 AST_ExpressionListIterator it;
224 ret <<
name() <<
"(";
229 ret << (i < size ?
"," :
"");
244 stringstream ret(stringstream::out);
258 stringstream ret(stringstream::out);
274 AST_StringListIterator it;
275 AST_ExpressionListListIterator exp_it =
indexes()->begin();
276 AST_ExpressionListIterator exp_it2;
277 int size =
names()->size(), i = 0;
278 foreach (it,
names()) {
288 ret << (i < size ?
"." :
"");
315 AST_StringListIterator it;
316 foreach (it,
names()) {
329 AST_ExpressionListListIterator it;
332 AST_ExpressionListIterator elit;
345 : _cond(cond), _then(then), _else_exp(else_exp), _elseif_list(elseif_list)
374 ret <<
" elseif " <<
_cond <<
" then " <<
_then;
381 AST_ExpressionListIterator it;
403 AST_ExpressionListIterator it;
406 int size =
_list->size(), i = 0;
407 foreach (it,
_list) {
410 ret << (i == size ?
"" :
",");
426 AST_ExpressionListIterator it;
428 int size =
_list->size(), i = 0;
429 foreach (it,
_list) {
432 ret << (i == size ?
"" :
":");
AST_Expression_Brace_(AST_ExpressionList args)
AST_Expression_Real_(double d)
GET_AS_IMP(Expression, BinOp)
void prepend(AST_String, AST_ExpressionList)
AST_StringList names() const
void AST_ListPrint(list< T1 > *l1, ostream &ret, string sec_name="", string separator=" ", string opener="", string closer="", bool block=false)
ExpressionType expressionType()
list< T1 > * AST_ListPrepend(list< T1 > *l, T1 e)
AST_Expression expression()
AST_Expression_String_(string s)
virtual ExpressionType expressionType()
AST_Expression_ArrayIndex_(AST_Expression exp, int size)
AST_ExpressionListList indexes() const
ExpressionType expressionType()
ExpressionType expressionType()
AST_Expression then() const
BinOpType binopType() const
AST_Expression_BinOp_(AST_Expression e1, AST_Expression e2, BinOpType t)
ExpressionType expressionType()
ExpressionType expressionType()
AST_Expression_Derivative_(AST_ExpressionList el)
CLASSP_PRINTER_IMP(AST_Expression_ComponentReference)
AST_StringList newAST_StringList()
ExpressionType expressionType()
AST_ExpressionList _ranges
AST_ExpressionListList _indexes
AST_Expression exp() const
AST_ExpressionList _elseif_list
AST_Expression_Bracket_(AST_ExpressionList ranges)
AST_Expression expression()
AST_Expression_Output_(AST_ExpressionList)
ExpressionType expressionType()
AST_ExpressionList _output_args
void accept(AST_Visitor *visitor)
virtual ExpressionType expressionType()
AST_ExpressionList arguments() const
AST_ExpressionListList newAST_ExpressionListList()
ExpressionType expressionType()
AST_Expression exp() const
list< T1 > * AST_ListAppend(list< T1 > *l, T1 e)
AST_ExpressionList arguments() const
ExpressionType expressionType()
AST_ExpressionList ranges()
ExpressionType expressionType()
AST_Expression_If_ElseIf getAsElseIf()
ExpressionType expressionType()
AST_ExpressionList expressionList()
const char * BinOpTypeName[]
AST_Expression condition()
virtual ~AST_Expression_()
AST_Expression_If_(AST_Expression cond, AST_Expression then, AST_Expression else_exp, AST_ExpressionList elseif_list)
AST_Expression_BooleanNot_(AST_Expression e)
T1 AST_ListFirst(list< T1 > *l)
ExpressionType expressionType()
ExpressionType expressionType()
AST_ExpressionList arguments()
AST_Expression_Call_(AST_String name, AST_ExpressionList args)
AST_Expression_ComponentReference_()
ExpressionType expressionType()
AST_Expression_Integer_(AST_Integer i)
AST_ExpressionList arguments() const
virtual void visit(AST_Class x)=0
ExpressionType expressionType()
AST_Expression_If_ElseIf_(AST_Expression, AST_Expression)
AST_Expression_CallArgs_(AST_ExpressionList args)
AST_Expression_UMinus_(AST_Expression e)
AST_ExpressionList elseif_list() const
AST_Expression_NamedArgument_(AST_String name, AST_Expression exp)
AST_Expression left() const
AST_Expression condition() const
AST_Expression_Boolean_(bool b)
CLASS_PRINTER_IMP(AST_Expression)
AST_ExpressionList expressionList()
ExpressionType expressionType()
AST_ExpressionList outputArguments() const
ExpressionType expressionType()
AST_ExpressionList newAST_ExpressionList(AST_Expression e)
AST_ExpressionList firstIndex()
ExpressionType expressionType()
AST_Expression else_exp() const
ExpressionType expressionType()
void append(AST_String, AST_ExpressionList)
#define current_element(it)
AST_Expression_Range_(AST_ExpressionList)
ExpressionType expressionType()
ExpressionType expressionType()
AST_Expression right() const