PUMA Library Reference Manual
Loading...
Searching...
No Matches
Puma::CCSemExpr Class Reference

#include <CCSemExpr.h>

Public Member Functions

 CCSemExpr (ErrorSink &, CStructure *scope)
 
CTypeInforesolveExpr (CTree *expr, CTree *base=(CTree *) 0)
 
CTypeInforesolveInit (CTree *node, CTree *base)
 
void configure (Config &)
 
bool isDependent () const
 
CTypeInforesolve (CTree *, CTree *)
 
CTypeInforesolve (CT_Expression *, CTree *)
 
CTypeInforesolve (CT_CallExpr *, CTree *)
 
CTypeInforesolve (CT_MembPtrExpr *, CTree *)
 
CTypeInforesolve (CT_SimpleName *, CTree *)
 
CTypeInforesolve (CT_BinaryExpr *, CTree *)
 
CTypeInforesolve (CT_UnaryExpr *, CTree *)
 
CTypeInforesolve (CT_PostfixExpr *, CTree *)
 
CTypeInforesolve (CT_ConstructExpr *, CTree *)
 
CTypeInforesolve (CT_CmpdLiteral *, CTree *)
 
CTypeInforesolve (CT_NewExpr *, CTree *)
 
CTypeInforesolve (CT_DeleteExpr *, CTree *)
 
CTypeInforesolve (CT_IfThenExpr *, CTree *)
 
CTypeInforesolve (CT_DerefExpr *, CTree *)
 
CTypeInforesolve (CT_AddrExpr *, CTree *)
 
CTypeInforesolve (CT_CastExpr *, CTree *)
 
CTypeInforesolve (CT_DynamicCast *, CTree *)
 
CTypeInforesolve (CT_StaticCast *, CTree *)
 
CTypeInforesolve (CT_ReintCast *, CTree *)
 
CTypeInforesolve (CT_ConstCast *, CTree *)
 
CTypeInforesolve (CT_TypeidExpr *, CTree *)
 
CTypeInforesolve (CT_ThrowExpr *, CTree *)
 
CTypeInforesolve (CT_SizeofExpr *, CTree *)
 
CTypeInforesolve (CT_AlignofExpr *, CTree *)
 
CTypeInforesolve (CT_TypeTraitExpr *, CTree *)
 
CTypeInforesolve (CT_OffsetofExpr *, CTree *)
 
CTypeInforesolve (CT_IndexExpr *, CTree *)
 
CTypeInforesolve (CT_BracedExpr *, CTree *)
 
CTypeInforesolve (CT_Bool *, CTree *)
 
CTypeInforesolve (CT_Character *, CTree *)
 
CTypeInforesolve (CT_WideCharacter *, CTree *)
 
CTypeInforesolve (CT_String *, CTree *)
 
CTypeInforesolve (CT_WideString *, CTree *)
 
CTypeInforesolve (CT_Integer *, CTree *)
 
CTypeInforesolve (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 CTypeInfousualArithmeticConv (CTree *, CTree *)
 
static CTypeInfoconvLvalueToRvalue (CTree *, CTree *=(CTree *) 0)
 
static CTypeInfocastToType (CTypeInfo *, CTree *, bool=true)
 
static CTypeInfointPromotion (CTree *)
 
static CObjectInfofindObject (CTree *)
 
static bool sameOrBaseClass (CRecord *, CRecord *)
 
static bool baseClass (CClassInfo *, CClassInfo *)
 
static bool isDependent (CTree *)
 

Protected Member Functions

CTypeInfobinary_ass (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_comma (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_log (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_bit (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_equ (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_rel (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_shift (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_add (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_mul (CT_BinaryExpr *, CTree *)
 
CTypeInfobinary_ptm (CT_BinaryExpr *, CTree *)
 
void apply_binary_op (CTree *, int)
 
CTypeInfooverloadedOperator (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
 
CTreebaseTree (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

ErrorSinkerr
 
CStructurecurrent_scope
 
CT_CallExprfct_call
 
bool dependent_args
 
bool dependent
 

Constructor & Destructor Documentation

◆ CCSemExpr()

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

Member Function Documentation

◆ apply_binary_op()

void Puma::CCSemExpr::apply_binary_op ( CTree * ,
int  )
protected

◆ baseClass()

static bool Puma::CCSemExpr::baseClass ( CClassInfo * ,
CClassInfo *  )
static

◆ baseTree()

CTree * Puma::CCSemExpr::baseTree ( CTree * ) const
protected

◆ binary_add()

CTypeInfo * Puma::CCSemExpr::binary_add ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_ass()

CTypeInfo * Puma::CCSemExpr::binary_ass ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_bit()

CTypeInfo * Puma::CCSemExpr::binary_bit ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_comma()

CTypeInfo * Puma::CCSemExpr::binary_comma ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_equ()

CTypeInfo * Puma::CCSemExpr::binary_equ ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_log()

CTypeInfo * Puma::CCSemExpr::binary_log ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_mul()

CTypeInfo * Puma::CCSemExpr::binary_mul ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_ptm()

CTypeInfo * Puma::CCSemExpr::binary_ptm ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_rel()

CTypeInfo * Puma::CCSemExpr::binary_rel ( CT_BinaryExpr * ,
CTree *  )
protected

◆ binary_shift()

CTypeInfo * Puma::CCSemExpr::binary_shift ( CT_BinaryExpr * ,
CTree *  )
protected

◆ builtinOpExpr()

void Puma::CCSemExpr::builtinOpExpr ( CTree * ,
CTree * ,
const char * ,
int ,
CTypeInfo * ,
CTypeInfo * ,
CTypeInfo * = 0 ) const
protected

◆ castToType()

static CTypeInfo * Puma::CCSemExpr::castToType ( CTypeInfo * ,
CTree * ,
bool = true )
static

◆ checkDeclsFound()

bool Puma::CCSemExpr::checkDeclsFound ( CTree * ,
CCNameLookup &  ) const
protected

◆ configure()

void Puma::CCSemExpr::configure ( Config & )
inline

◆ convLvalueToRvalue()

static CTypeInfo * Puma::CCSemExpr::convLvalueToRvalue ( CTree * ,
CTree * = (CTree *) 0 )
static

◆ depBaseClass()

bool Puma::CCSemExpr::depBaseClass ( ) const
protected

◆ findObject()

static CObjectInfo * Puma::CCSemExpr::findObject ( CTree * )
static

◆ intPromotion()

static CTypeInfo * Puma::CCSemExpr::intPromotion ( CTree * )
static

◆ isAddrExpr()

static bool Puma::CCSemExpr::isAddrExpr ( CTree * )
static

◆ isClassOrEnum()

bool Puma::CCSemExpr::isClassOrEnum ( CTypeInfo * ) const
protected

◆ isConstExpr()

static bool Puma::CCSemExpr::isConstExpr ( CTree * )
static

◆ isConstIntegralExpr()

static bool Puma::CCSemExpr::isConstIntegralExpr ( CTree * )
static

◆ isConstIntExpr()

static bool Puma::CCSemExpr::isConstIntExpr ( CTree * )
static

◆ isDependent() [1/3]

bool Puma::CCSemExpr::isDependent ( ) const
inline

◆ isDependent() [2/3]

static bool Puma::CCSemExpr::isDependent ( CTree * )
static

◆ isDependent() [3/3]

bool Puma::CCSemExpr::isDependent ( CTree * ,
bool  )
protected

◆ isLvalue()

static bool Puma::CCSemExpr::isLvalue ( CTree * )
static

◆ isModifiable()

static bool Puma::CCSemExpr::isModifiable ( CTypeInfo * ,
unsigned long = 0 )
static

◆ isRvalue()

static bool Puma::CCSemExpr::isRvalue ( CTree * )
static

◆ lookupBuiltin()

bool Puma::CCSemExpr::lookupBuiltin ( CT_SimpleName * sn,
CCNameLookup & nl )
protected

◆ nextCharacter()

LONG_LONG Puma::CCSemExpr::nextCharacter ( const char *& ,
bool &  ) const
protected

◆ overflow()

void Puma::CCSemExpr::overflow ( CTree * ,
int ,
bool &  ) const
protected

◆ overloadedOperator()

CTypeInfo * Puma::CCSemExpr::overloadedOperator ( CTree * ,
CTree * ,
const char * ,
int ,
CTree * ,
CTree * = 0 )
protected

◆ passOnConstant()

void Puma::CCSemExpr::passOnConstant ( CTree * ,
CTypeInfo *  ) const
protected

◆ resetDependent()

bool Puma::CCSemExpr::resetDependent ( )
protected

◆ resolve() [1/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_AddrExpr * ,
CTree *  )

◆ resolve() [2/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_AlignofExpr * ,
CTree *  )

◆ resolve() [3/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_BinaryExpr * ,
CTree *  )

◆ resolve() [4/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_Bool * ,
CTree *  )

◆ resolve() [5/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_BracedExpr * ,
CTree *  )

◆ resolve() [6/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_CallExpr * ,
CTree *  )

◆ resolve() [7/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_CastExpr * ,
CTree *  )

◆ resolve() [8/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_Character * ,
CTree *  )

◆ resolve() [9/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_CmpdLiteral * ,
CTree *  )

◆ resolve() [10/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_ConstCast * ,
CTree *  )

◆ resolve() [11/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_ConstructExpr * ,
CTree *  )

◆ resolve() [12/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_DeleteExpr * ,
CTree *  )

◆ resolve() [13/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_DerefExpr * ,
CTree *  )

◆ resolve() [14/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_DynamicCast * ,
CTree *  )

◆ resolve() [15/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_Expression * ,
CTree *  )

◆ resolve() [16/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_Float * ,
CTree *  )

◆ resolve() [17/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_IfThenExpr * ,
CTree *  )

◆ resolve() [18/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_IndexExpr * ,
CTree *  )

◆ resolve() [19/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_Integer * ,
CTree *  )

◆ resolve() [20/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_MembPtrExpr * ,
CTree *  )

◆ resolve() [21/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_NewExpr * ,
CTree *  )

◆ resolve() [22/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_OffsetofExpr * ,
CTree *  )

◆ resolve() [23/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_PostfixExpr * ,
CTree *  )

◆ resolve() [24/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_ReintCast * ,
CTree *  )

◆ resolve() [25/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_SimpleName * ,
CTree *  )

◆ resolve() [26/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_SizeofExpr * ,
CTree *  )

◆ resolve() [27/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_StaticCast * ,
CTree *  )

◆ resolve() [28/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_String * ,
CTree *  )

◆ resolve() [29/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_ThrowExpr * ,
CTree *  )

◆ resolve() [30/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_TypeidExpr * ,
CTree *  )

◆ resolve() [31/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_TypeTraitExpr * ,
CTree *  )

◆ resolve() [32/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_UnaryExpr * ,
CTree *  )

◆ resolve() [33/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_WideCharacter * ,
CTree *  )

◆ resolve() [34/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CT_WideString * ,
CTree *  )

◆ resolve() [35/35]

CTypeInfo * Puma::CCSemExpr::resolve ( CTree * ,
CTree *  )

◆ resolveExpr()

CTypeInfo * Puma::CCSemExpr::resolveExpr ( CTree * expr,
CTree * base = (CTree *) 0 )

◆ resolveInit()

CTypeInfo * Puma::CCSemExpr::resolveInit ( CTree * node,
CTree * base )

◆ sameOrBaseClass()

static bool Puma::CCSemExpr::sameOrBaseClass ( CRecord * ,
CRecord *  )
static

◆ sameUnqualBaseType()

bool Puma::CCSemExpr::sameUnqualBaseType ( CTypeInfo * ,
CTypeInfo *  ) const
protected

◆ scanCharacter()

int Puma::CCSemExpr::scanCharacter ( CTree * ,
LONG_LONG &  ) const
protected

◆ usualArithmeticConv()

static CTypeInfo * Puma::CCSemExpr::usualArithmeticConv ( CTree * ,
CTree *  )
static

◆ validOvlFctSet()

bool Puma::CCSemExpr::validOvlFctSet ( CTree * ,
const char * ,
const char * ,
CCOverloading &  )
protected

Member Data Documentation

◆ current_scope

CStructure* Puma::CCSemExpr::current_scope
protected

◆ dependent

bool Puma::CCSemExpr::dependent
protected

◆ dependent_args

bool Puma::CCSemExpr::dependent_args
protected

◆ err

ErrorSink& Puma::CCSemExpr::err
protected

◆ fct_call

CT_CallExpr* Puma::CCSemExpr::fct_call
protected