Puma Reference Manual Puma::CCSemExpr Class Reference



Puma::CCSemExpr Class Reference

#include <CCSemExpr.h>

Public Member Functions

 CCSemExpr (ErrorSink &, CStructure *scope)
 
CTypeInfo * resolveExpr (CTree *expr, CTree *base=(CTree *) 0)
 
CTypeInfo * resolveInit (CTree *node, CTree *base)
 
void configure (Config &)
 
bool isDependent () const
 
CTypeInfo * resolve (CTree *, CTree *)
 
CTypeInfo * resolve (CT_Expression *, CTree *)
 
CTypeInfo * resolve (CT_CallExpr *, CTree *)
 
CTypeInfo * resolve (CT_MembPtrExpr *, CTree *)
 
CTypeInfo * resolve (CT_SimpleName *, CTree *)
 
CTypeInfo * resolve (CT_BinaryExpr *, CTree *)
 
CTypeInfo * resolve (CT_UnaryExpr *, CTree *)
 
CTypeInfo * resolve (CT_PostfixExpr *, CTree *)
 
CTypeInfo * resolve (CT_ConstructExpr *, CTree *)
 
CTypeInfo * resolve (CT_CmpdLiteral *, CTree *)
 
CTypeInfo * resolve (CT_NewExpr *, CTree *)
 
CTypeInfo * resolve (CT_DeleteExpr *, CTree *)
 
CTypeInfo * resolve (CT_IfThenExpr *, CTree *)
 
CTypeInfo * resolve (CT_DerefExpr *, CTree *)
 
CTypeInfo * resolve (CT_AddrExpr *, CTree *)
 
CTypeInfo * resolve (CT_CastExpr *, CTree *)
 
CTypeInfo * resolve (CT_DynamicCast *, CTree *)
 
CTypeInfo * resolve (CT_StaticCast *, CTree *)
 
CTypeInfo * resolve (CT_ReintCast *, CTree *)
 
CTypeInfo * resolve (CT_ConstCast *, CTree *)
 
CTypeInfo * resolve (CT_TypeidExpr *, CTree *)
 
CTypeInfo * resolve (CT_ThrowExpr *, CTree *)
 
CTypeInfo * resolve (CT_SizeofExpr *, CTree *)
 
CTypeInfo * resolve (CT_AlignofExpr *, CTree *)
 
CTypeInfo * resolve (CT_TypeTraitExpr *, CTree *)
 
CTypeInfo * resolve (CT_OffsetofExpr *, CTree *)
 
CTypeInfo * resolve (CT_IndexExpr *, CTree *)
 
CTypeInfo * resolve (CT_BracedExpr *, CTree *)
 
CTypeInfo * resolve (CT_Bool *, CTree *)
 
CTypeInfo * resolve (CT_Character *, CTree *)
 
CTypeInfo * resolve (CT_WideCharacter *, CTree *)
 
CTypeInfo * resolve (CT_String *, CTree *)
 
CTypeInfo * resolve (CT_WideString *, CTree *)
 
CTypeInfo * resolve (CT_Integer *, CTree *)
 
CTypeInfo * resolve (CT_Float *, CTree *)
 

Static Public Member Functions

static bool isLvalue (CTree *)
 
static bool isRvalue (CTree *)
 
static bool isModifiable (CTypeInfo *, unsigned long=0)
 
static bool isAddrExpr (CTree *)
 
static bool isConstIntExpr (CTree *)
 
static bool isConstExpr (CTree *)
 
static bool isConstIntegralExpr (CTree *)
 
static CTypeInfo * usualArithmeticConv (CTree *, CTree *)
 
static CTypeInfo * convLvalueToRvalue (CTree *, CTree *=(CTree *) 0)
 
static CTypeInfo * castToType (CTypeInfo *, CTree *, bool=true)
 
static CTypeInfo * intPromotion (CTree *)
 
static CObjectInfo * findObject (CTree *)
 
static bool sameOrBaseClass (CRecord *, CRecord *)
 
static bool baseClass (CClassInfo *, CClassInfo *)
 
static bool isDependent (CTree *)
 

Protected Member Functions

CTypeInfo * binary_ass (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_comma (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_log (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_bit (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_equ (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_rel (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_shift (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_add (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_mul (CT_BinaryExpr *, CTree *)
 
CTypeInfo * binary_ptm (CT_BinaryExpr *, CTree *)
 
void apply_binary_op (CTree *, int)
 
CTypeInfo * overloadedOperator (CTree *, CTree *, const char *, int, CTree *, CTree *=0)
 
void overflow (CTree *, int, bool &) const
 
int scanCharacter (CTree *, LONG_LONG &) const
 
LONG_LONG nextCharacter (const char *&, bool &) const
 
bool depBaseClass () const
 
CTree * baseTree (CTree *) const
 
bool isDependent (CTree *, bool)
 
bool resetDependent ()
 
bool isClassOrEnum (CTypeInfo *) const
 
bool sameUnqualBaseType (CTypeInfo *, CTypeInfo *) const
 
bool checkDeclsFound (CTree *, CCNameLookup &) const
 
void passOnConstant (CTree *, CTypeInfo *) const
 
bool validOvlFctSet (CTree *, const char *, const char *, CCOverloading &)
 
void builtinOpExpr (CTree *, CTree *, const char *, int, CTypeInfo *, CTypeInfo *, CTypeInfo *=0) const
 
bool lookupBuiltin (CT_SimpleName *sn, CCNameLookup &nl)
 

Protected Attributes

ErrorSink & err
 
CStructure * current_scope
 
CT_CallExpr * fct_call
 
bool dependent_args
 
bool dependent
 

Constructor & Destructor Documentation

Puma::CCSemExpr::CCSemExpr ( ErrorSink &  e,
CStructure *  scope 
)
inline

Member Function Documentation

void Puma::CCSemExpr::apply_binary_op ( CTree *  ,
int   
)
protected
static bool Puma::CCSemExpr::baseClass ( CClassInfo *  ,
CClassInfo *   
)
static
CTree* Puma::CCSemExpr::baseTree ( CTree *  ) const
protected
CTypeInfo* Puma::CCSemExpr::binary_add ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_ass ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_bit ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_comma ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_equ ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_log ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_mul ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_ptm ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_rel ( CT_BinaryExpr *  ,
CTree *   
)
protected
CTypeInfo* Puma::CCSemExpr::binary_shift ( CT_BinaryExpr *  ,
CTree *   
)
protected
void Puma::CCSemExpr::builtinOpExpr ( CTree *  ,
CTree *  ,
const char *  ,
int  ,
CTypeInfo *  ,
CTypeInfo *  ,
CTypeInfo *  = 0 
) const
protected
static CTypeInfo* Puma::CCSemExpr::castToType ( CTypeInfo *  ,
CTree *  ,
bool  = true 
)
static
bool Puma::CCSemExpr::checkDeclsFound ( CTree *  ,
CCNameLookup &   
) const
protected
void Puma::CCSemExpr::configure ( Config &  )
inline
static CTypeInfo* Puma::CCSemExpr::convLvalueToRvalue ( CTree *  ,
CTree *  = (CTree *) 0 
)
static
bool Puma::CCSemExpr::depBaseClass ( ) const
protected
static CObjectInfo* Puma::CCSemExpr::findObject ( CTree *  )
static
static CTypeInfo* Puma::CCSemExpr::intPromotion ( CTree *  )
static
static bool Puma::CCSemExpr::isAddrExpr ( CTree *  )
static
bool Puma::CCSemExpr::isClassOrEnum ( CTypeInfo *  ) const
protected
static bool Puma::CCSemExpr::isConstExpr ( CTree *  )
static
static bool Puma::CCSemExpr::isConstIntegralExpr ( CTree *  )
static
static bool Puma::CCSemExpr::isConstIntExpr ( CTree *  )
static
bool Puma::CCSemExpr::isDependent ( ) const
inline
static bool Puma::CCSemExpr::isDependent ( CTree *  )
static
bool Puma::CCSemExpr::isDependent ( CTree *  ,
bool   
)
protected
static bool Puma::CCSemExpr::isLvalue ( CTree *  )
static
static bool Puma::CCSemExpr::isModifiable ( CTypeInfo *  ,
unsigned  long = 0 
)
static
static bool Puma::CCSemExpr::isRvalue ( CTree *  )
static
bool Puma::CCSemExpr::lookupBuiltin ( CT_SimpleName *  sn,
CCNameLookup &  nl 
)
protected
LONG_LONG Puma::CCSemExpr::nextCharacter ( const char *&  ,
bool &   
) const
protected
void Puma::CCSemExpr::overflow ( CTree *  ,
int  ,
bool &   
) const
protected
CTypeInfo* Puma::CCSemExpr::overloadedOperator ( CTree *  ,
CTree *  ,
const char *  ,
int  ,
CTree *  ,
CTree *  = 0 
)
protected
void Puma::CCSemExpr::passOnConstant ( CTree *  ,
CTypeInfo *   
) const
protected
bool Puma::CCSemExpr::resetDependent ( )
protected
CTypeInfo* Puma::CCSemExpr::resolve ( CTree *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_Expression *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_CallExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_MembPtrExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_SimpleName *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_BinaryExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_UnaryExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_PostfixExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_ConstructExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_CmpdLiteral *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_NewExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_DeleteExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_IfThenExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_DerefExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_AddrExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_CastExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_DynamicCast *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_StaticCast *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_ReintCast *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_ConstCast *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_TypeidExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_ThrowExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_SizeofExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_AlignofExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_TypeTraitExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_OffsetofExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_IndexExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_BracedExpr *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_Bool *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_Character *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_WideCharacter *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_String *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_WideString *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_Integer *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolve ( CT_Float *  ,
CTree *   
)
CTypeInfo* Puma::CCSemExpr::resolveExpr ( CTree *  expr,
CTree *  base = (CTree *) 0 
)
CTypeInfo* Puma::CCSemExpr::resolveInit ( CTree *  node,
CTree *  base 
)
static bool Puma::CCSemExpr::sameOrBaseClass ( CRecord *  ,
CRecord *   
)
static
bool Puma::CCSemExpr::sameUnqualBaseType ( CTypeInfo *  ,
CTypeInfo *   
) const
protected
int Puma::CCSemExpr::scanCharacter ( CTree *  ,
LONG_LONG &   
) const
protected
static CTypeInfo* Puma::CCSemExpr::usualArithmeticConv ( CTree *  ,
CTree *   
)
static
bool Puma::CCSemExpr::validOvlFctSet ( CTree *  ,
const char *  ,
const char *  ,
CCOverloading &   
)
protected

Member Data Documentation

CStructure* Puma::CCSemExpr::current_scope
protected
bool Puma::CCSemExpr::dependent
protected
bool Puma::CCSemExpr::dependent_args
protected
ErrorSink& Puma::CCSemExpr::err
protected
CT_CallExpr* Puma::CCSemExpr::fct_call
protected



Puma Reference Manual. Created on Fri Aug 28 2015.