MicroModelicaCCompiler  4.5.3
MicroModelica::IR::Expression Class Reference

#include <expression.hpp>

Public Member Functions

 Expression ()
 
 Expression (AST_Expression exp, int order=0)
 
 ~Expression ()=default
 
std::string print () const
 
AST_Expression expression () const
 
bool isReference () const
 
std::string usage () const
 
std::string dimVariables (bool range_idxs=false) const
 
bool isEmpty () const
 
bool isValid () const
 
Option< Util::Variablereference () const
 
bool isScalar () const
 
list< Expressionindexes () const
 
bool operator< (const Expression &other) const
 
std::multimap< std::string, int > usedVariables () const
 
bool autonomous () const
 

Static Public Member Functions

static Expression generate (std::string var_name, std::vector< std::string > indices)
 

Protected Member Functions

std::vector< ExpressionusageExps () const
 

Private Attributes

AST_Expression _exp
 
int _order
 

Friends

std::ostream & operator<< (std::ostream &out, const Expression &s)
 

Detailed Description

Definition at line 64 of file expression.hpp.

Constructor & Destructor Documentation

◆ Expression() [1/2]

MicroModelica::IR::Expression::Expression ( )

Definition at line 59 of file expression.cpp.

◆ Expression() [2/2]

MicroModelica::IR::Expression::Expression ( AST_Expression  exp,
int  order = 0 
)

Definition at line 57 of file expression.cpp.

◆ ~Expression()

MicroModelica::IR::Expression::~Expression ( )
default

Member Function Documentation

◆ autonomous()

bool MicroModelica::IR::Expression::autonomous ( ) const

Definition at line 198 of file expression.cpp.

Referenced by MicroModelica::IR::Equation::initialize().

◆ dimVariables()

string MicroModelica::IR::Expression::dimVariables ( bool  range_idxs = false) const

Definition at line 114 of file expression.cpp.

References current_element.

◆ expression()

AST_Expression MicroModelica::IR::Expression::expression ( ) const
inline

◆ generate()

Expression MicroModelica::IR::Expression::generate ( std::string  var_name,
std::vector< std::string >  indices 
)
static

Definition at line 162 of file expression.cpp.

References print().

Referenced by MicroModelica::IR::JacGenerator::guard(), and MicroModelica::IR::JacGenerator::init().

Here is the call graph for this function:

◆ indexes()

list< Expression > MicroModelica::IR::Expression::indexes ( ) const

Definition at line 145 of file expression.cpp.

◆ isEmpty()

bool MicroModelica::IR::Expression::isEmpty ( ) const
inline

Definition at line 91 of file expression.hpp.

Referenced by MicroModelica::IR::operator<<().

◆ isReference()

bool MicroModelica::IR::Expression::isReference ( ) const

◆ isScalar()

bool MicroModelica::IR::Expression::isScalar ( ) const

◆ isValid()

bool MicroModelica::IR::Expression::isValid ( ) const
inline

Definition at line 92 of file expression.hpp.

Referenced by MicroModelica::IR::Equation::LHSVariable().

◆ operator<()

bool MicroModelica::IR::Expression::operator< ( const Expression other) const

Definition at line 183 of file expression.cpp.

◆ print()

string MicroModelica::IR::Expression::print ( ) const

Definition at line 61 of file expression.cpp.

Referenced by generate().

◆ reference()

◆ usage()

string MicroModelica::IR::Expression::usage ( ) const

Definition at line 101 of file expression.cpp.

Referenced by MicroModelica::IR::FunctionPrinter::div().

◆ usageExps()

vector< Expression > MicroModelica::IR::Expression::usageExps ( ) const
protected

Definition at line 129 of file expression.cpp.

References current_element.

◆ usedVariables()

std::multimap< std::string, int > MicroModelica::IR::Expression::usedVariables ( ) const

Definition at line 192 of file expression.cpp.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const Expression s 
)
friend

Definition at line 178 of file expression.cpp.

Member Data Documentation

◆ _exp

AST_Expression MicroModelica::IR::Expression::_exp
private

Definition at line 108 of file expression.hpp.

◆ _order

int MicroModelica::IR::Expression::_order
private

Definition at line 109 of file expression.hpp.


The documentation for this class was generated from the following files: