Functions | |
expression_t () | |
expression_t (kind_t kind, const position_t &pos) | |
expression_t (const expression_t &e) | |
expression_t | clone () const |
expression_t | subst (symbol_t symbol, expression_t expr) const |
~expression_t () | |
kind_t | getKind () const |
const position_t & | getPosition () const |
size_t | getSize () const |
type_t | getType () const |
void | setType (type_t type) |
int32_t | getValue () const |
int32_t | getIndex () const |
synchronisation_t | getSync () const |
expression_t & | operator[] (uint32_t i) |
const expression_t | operator[] (uint32_t i) const |
expression_t & | get (uint32_t i) |
const expression_t & | get (uint32_t i) const |
bool | empty () const |
bool | equal (const expression_t &e) const |
Two expressions are identical iff all the sub expressions are identical and if the kind, value and symbol of the root are identical. | |
expression_t & | operator= (const expression_t &e) |
symbol_t | getSymbol () |
Returns the symbol of a variable reference. | |
const symbol_t | getSymbol () const |
void | getSymbols (std::set< symbol_t > &symbols) const |
bool | isReferenceTo (const std::set< symbol_t > &symbols) const |
Returns true if expr might be a reference to a symbol in the set. | |
bool | changesVariable (const std::set< symbol_t > &symbols) const |
bool | changesAnyVariable () const |
bool | dependsOn (const std::set< symbol_t > &symbols) const |
int | getPrecedence () const |
int | getPrecedence (kind_t kind) |
void | toString (bool old, char *&str, char *&end, int &size) const |
bool | operator< (const expression_t e) const |
bool | operator== (const expression_t e) const |
std::string | toString (bool old) const |
Returns a string representation of the expression. | |
void | collectPossibleWrites (set< symbol_t > &symbols) const |
void | collectPossibleReads (set< symbol_t > &symbols) const |
expression_t | createConstant (int32_t value, position_t pos) |
expression_t | createIdentifier (symbol_t symbol, position_t pos) |
expression_t | createNary (kind_t kind, const vector< expression_t > &sub, position_t pos, type_t type) |
expression_t | createUnary (kind_t kind, expression_t sub, position_t pos, type_t type) |
expression_t | createBinary (kind_t kind, expression_t left, expression_t right, position_t pos, type_t type) |
expression_t | createTernary (kind_t kind, expression_t e1, expression_t e2, expression_t e3, position_t pos, type_t type) |
expression_t | createDot (expression_t e, int32_t idx, position_t pos, type_t type) |
expression_t | createSync (expression_t e, synchronisation_t s, position_t pos) |
expression_t | createDeadlock (position_t pos) |
expression_t::expression_t | ( | ) |
expression_t::expression_t | ( | kind_t | kind, | |
const position_t & | pos | |||
) |
expression_t::expression_t | ( | const expression_t & | e | ) |
expression_t expression_t::clone | ( | ) | const |
expression_t expression_t::subst | ( | symbol_t | symbol, | |
expression_t | expr | |||
) | const |
expression_t::~expression_t | ( | ) |
kind_t expression_t::getKind | ( | ) | const |
const position_t& expression_t::getPosition | ( | ) | const |
size_t expression_t::getSize | ( | ) | const |
type_t expression_t::getType | ( | ) | const |
void expression_t::setType | ( | type_t | type | ) |
int32_t expression_t::getValue | ( | ) | const |
int32_t expression_t::getIndex | ( | ) | const |
synchronisation_t expression_t::getSync | ( | ) | const |
expression_t& expression_t::operator[] | ( | uint32_t | i | ) |
const expression_t expression_t::operator[] | ( | uint32_t | i | ) | const |
expression_t& expression_t::get | ( | uint32_t | i | ) |
const expression_t& expression_t::get | ( | uint32_t | i | ) | const |
bool expression_t::empty | ( | ) | const |
bool expression_t::equal | ( | const expression_t & | e | ) | const |
Two expressions are identical iff all the sub expressions are identical and if the kind, value and symbol of the root are identical.
expression_t& expression_t::operator= | ( | const expression_t & | e | ) |
symbol_t expression_t::getSymbol | ( | ) |
Returns the symbol of a variable reference.
The expression must be a left-hand side value. The symbol returned is the symbol of the variable the expression if resulting in a reference to. NOTE: In case of inline if, the symbol referenced by the 'true' part is returned.
const symbol_t expression_t::getSymbol | ( | ) | const |
void expression_t::getSymbols | ( | std::set< symbol_t > & | symbols | ) | const |
bool expression_t::isReferenceTo | ( | const std::set< symbol_t > & | symbols | ) | const |
Returns true if expr might be a reference to a symbol in the set.
bool expression_t::changesVariable | ( | const std::set< symbol_t > & | symbols | ) | const |
bool expression_t::changesAnyVariable | ( | ) | const |
bool expression_t::dependsOn | ( | const std::set< symbol_t > & | symbols | ) | const |
int expression_t::getPrecedence | ( | ) | const |
int expression_t::getPrecedence | ( | kind_t | kind | ) |
void expression_t::toString | ( | bool | old, | |
char *& | str, | |||
char *& | end, | |||
int & | size | |||
) | const |
bool expression_t::operator< | ( | const expression_t | e | ) | const |
bool expression_t::operator== | ( | const expression_t | e | ) | const |
std::string expression_t::toString | ( | bool | old | ) | const |
Returns a string representation of the expression.
The string returned must be deallocated with delete[]. Returns NULL is the expression is empty.
void expression_t::collectPossibleWrites | ( | set< symbol_t > & | symbols | ) | const |
void expression_t::collectPossibleReads | ( | set< symbol_t > & | symbols | ) | const |
expression_t expression_t::createConstant | ( | int32_t | value, | |
position_t | pos | |||
) |
expression_t expression_t::createIdentifier | ( | symbol_t | symbol, | |
position_t | pos | |||
) |
expression_t expression_t::createNary | ( | kind_t | kind, | |
const vector< expression_t > & | sub, | |||
position_t | pos, | |||
type_t | type | |||
) |
expression_t expression_t::createUnary | ( | kind_t | kind, | |
expression_t | sub, | |||
position_t | pos, | |||
type_t | type | |||
) |
expression_t expression_t::createBinary | ( | kind_t | kind, | |
expression_t | left, | |||
expression_t | right, | |||
position_t | pos, | |||
type_t | type | |||
) |
expression_t expression_t::createTernary | ( | kind_t | kind, | |
expression_t | e1, | |||
expression_t | e2, | |||
expression_t | e3, | |||
position_t | pos, | |||
type_t | type | |||
) |
expression_t expression_t::createDot | ( | expression_t | e, | |
int32_t | idx, | |||
position_t | pos, | |||
type_t | type | |||
) |
expression_t expression_t::createSync | ( | expression_t | e, | |
synchronisation_t | s, | |||
position_t | pos | |||
) |
expression_t expression_t::createDeadlock | ( | position_t | pos | ) |