SgExpression is the base class for all the other expression classes.
Many statements contain expressions. Unlike the SgStatement class hierarchy, there is not a subclass for every expression operator type. Basic binary operators such as the standard arithmetic operators are identified only the integer variant returned by the SgExpression member function variant(). The expression nodes that have their own subclass do so because they have a special type of constructor or special fields. SgExpression is the base class for all the other expression classes. Every expression may have up to two operands (or subexpressions),the left hand side 'lhs()' and the right hand side 'rhs()'.Each expression has a type 'type()',may have a symbol 'symbol()',and has a unique identifier 'id()'.
SgExpression(int variant, SgExpression *lhs, SgExpression *rhs, SgSymbol *s, SgType *type)
SgExpression(int variant, SgExpression *lhs, SgExpression *rhs, SgSymbol *s)
SgExpression(int variant, char *str)
SgExpression(int variant)
SgExpression(PTR_LLND ll)
SgExpression(SgExpression &)
~SgExpression()
SgExpression* lhs()
SgExpression* rhs()
SgExpression* operand(int i)
int variant()
SgType* type()
SgSymbol* symbol()
int id()
SgExpression* nextInExprTable()
void setLhs(SgExpression &e)
void setLhs(SgExpression *e)
void setRhs(SgExpression &e)
void setRhs(SgExpression *e)
void setSymbol(SgSymbol &s)
void setSymbol(SgSymbol *s)
void setType(SgType &t)
void setType(SgType *t)
void setVariant(int v)
SgExpression& copy()
SgExpression* copyPtr()
char* unparse()
void sunparse(char *buffer)
void unparsestdout()
SgExpression* IsSymbolInExpression(SgSymbol &symbol)
void replaceSymbolByExpression(SgSymbol &symbol, SgExpression &expr)
SgSymbol* getVariableRefName()
SgExpression* symbRefs()
SgExpression* arrayRefs()
int linearRepresentation(int *coeff, SgSymbol **symb, int *cst, int size)
SgExpression* normalForm(int n, SgSymbol *s)
SgExpression* coefficient(SgSymbol &s)
int isInteger()
int valueInteger()
int valueInteger(int &result)
void replace(SgExpression & e)
friend SgExpression* operator + ( SgExpression *lhs, SgExpression &rhs)
friend SgExpression* operator * ( SgExpression *lhs, SgExpression &rhs)
friend SgExpression& operator + ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator - ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator * ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator / ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator % ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator <<( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator >>( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator < ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator > ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator <= ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator >= ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator & ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator | ( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator &&( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator ||( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator +=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator &=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator *=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator /=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator %=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator ^=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator <<=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& operator >>=( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgAssignOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgEqOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgNeqOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgExprListOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgRecRefOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgPointStOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgScopeOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgDDotOp( SgExpression &lhs, SgExpression &rhs)
friend SgExpression& SgBitNumbOp( SgExpression &lhs, SgExpression &rhs)
int numberOfAttributes()
int numberOfAttributes(int type)
void* attributeValue(int i)
int attributeType(int i)
void* attributeValue(int i, int type)
void* deleteAttribute(int i)
void addAttribute(int type, void *a, int size)
void addAttribute(int type)
void addAttribute(void *a, int size)
void addAttribute(SgAttribute *att)
Email contact: zgs@npac.syr.edu