Puma Reference Manual Puma::CCSemantic Class Reference



Puma::CCSemantic Class Reference

#include <CCSemantic.h>

Inheritance diagram for Puma::CCSemantic:
Inheritance graph

Public Types

enum  MemberAccessOperator {
  MAO_NONE = 0,
  MAO_PTS,
  MAO_DOT
}
 

Public Member Functions

 CCSemantic (CCSyntax &, CCBuilder &)
 
void init (CSemDatabase &, Unit &)
 Initialize the semantic analysis. More...
 
void init (CSemDatabase &, Unit &, CStructure *, bool, bool, CCInstantiation *)
 
CCInstantiation * Instantiation () const
 
virtual CTree * access_spec ()
 
virtual CTree * typedef_name ()
 
virtual CTree * class_name ()
 
virtual CTree * enum_name ()
 
virtual CTree * condition ()
 
virtual CTree * colon_colon ()
 
virtual CTree * decl_spec_seq1 ()
 
virtual CTree * nested_name_spec ()
 
virtual CTree * nested_name_spec1 ()
 
virtual CTree * valid_id_expr ()
 
virtual CTree * postfix_expr1 ()
 
virtual CTree * postfix_expr2 ()
 
virtual CTree * pseudo_dtor_name ()
 
virtual CTree * simple_type_spec ()
 
virtual CTree * direct_new_declarator ()
 
virtual CTree * class_spec_err ()
 
virtual CTree * member_decl1 ()
 
virtual CTree * member_declarator_err ()
 
virtual void declarator_id (bool)
 
virtual CTree * finish_init_declarator ()
 
virtual CTree * obj_decl (CTree *)
 
virtual bool implicit_int ()
 
virtual CTree * init_declarator ()
 
virtual CTree * const_expr ()
 
virtual CTree * enumerator_def ()
 
virtual CTree * pure_spec ()
 
virtual CTree * const_init ()
 
virtual CTree * template_param ()
 
virtual CTree * class_spec ()
 
virtual CTree * ctor_init ()
 
virtual CTree * handler ()
 
virtual CTree * exception_spec ()
 
virtual CTree * introduce_orig_ns ()
 
virtual CTree * introduce_ns_extension ()
 
virtual CTree * introduce_unnamed_ns ()
 
virtual CTree * introduce_ns_alias ()
 
virtual CTree * namespace_def ()
 
virtual CTree * original_ns_name ()
 
virtual CTree * namespace_alias ()
 
virtual CTree * using_directive ()
 
virtual CTree * using_decl ()
 
virtual CTree * access_decl (CTree *=0)
 
virtual CTree * introduce_type_param ()
 
virtual CTree * introduce_non_type_param ()
 
virtual CTree * introduce_template_instance ()
 
virtual CTree * template_param_list ()
 
virtual CTree * template_decl ()
 
virtual CTree * template_name (bool class_only=false)
 
virtual CTree * template_key ()
 
virtual CTree * explicit_instantiation ()
 
virtual CTree * explicit_specialization ()
 
virtual CTree * introduce_enum ()
 
virtual CTree * introduce_enumerator ()
 
virtual CTree * introduce_object (CTree *=0)
 
virtual CTree * introduce_named_type ()
 
virtual CTree * introduce_function ()
 
virtual CTree * introduce_parameter ()
 
virtual CTree * introduce_class ()
 
virtual CTree * introduce_member ()
 
virtual CTree * introduce_tag ()
 
virtual CTree * introduce_exception ()
 
void enter_param_decl_clause ()
 Enter a function parameter declaration clause. More...
 
void enter_template_param_list (Syntax::State)
 
void enter_base_spec ()
 
void enter_class_def ()
 
void enter_template_decl ()
 
void enter_member_access (MemberAccessOperator)
 
void enter_postfix_expr ()
 
void enter_exception_spec ()
 
void enter_template_arg_list (Syntax::State)
 
void enter_conv_type_id ()
 
void enter_entity_name (bool v=true)
 
void enter_nested_name ()
 
bool enter_expr ()
 
void enter_extern_decl (bool block_decl)
 
void leave_param_decl_clause ()
 Leave a function parameter declaration clause. More...
 
void leave_template_param_list ()
 
void leave_base_spec ()
 
void leave_class_def (bool reject=false)
 
void leave_member_access ()
 
void leave_postfix_expr ()
 
void leave_exception_spec ()
 
void leave_template_arg_list ()
 
void leave_conv_type_id ()
 
void leave_entity_name ()
 
void leave_nested_name ()
 
bool leave_expr ()
 
void leave_extern_decl ()
 
bool in_base_spec () const
 
bool in_class_def () const
 
bool in_conv_type_id () const
 
bool in_nested_name () const
 
bool in_expr () const
 
bool in_extern_decl () const
 
bool is_entity_name () const
 
Syntax::State in_template_param_list () const
 
Syntax::State in_template_arg_list () const
 
virtual CProtection::Type protection () const
 
bool non_project_loc ()
 
bool non_primary_loc ()
 
bool skip_tpl_fct_bodies () const
 
bool reset_search_scope (bool=false)
 
CStructure * array_delim (CStructure *=0)
 
CStructure * conv_fct_id (CStructure *=0)
 
CTree * postfix_expr ()
 
virtual void parse_delayed (bool(CCSyntax::*)(), CTree *)
 
virtual CTree * add_base_classes ()
 
- Public Member Functions inherited from Puma::CSemantic
 CSemantic (CSyntax &, CBuilder &)
 
void configure (Config &)
 Configure the semantic analysis. More...
 
virtual CTree * id_expr ()
 
virtual CTree * abst_declarator ()
 
virtual CTree * direct_abst_declarator ()
 
virtual CTree * param_decl_clause ()
 
virtual CTree * finish_fct_def ()
 
virtual CTree * arg_decl_seq ()
 
virtual CTree * decl_spec_seq_err ()
 
virtual CTree * declare_parameter ()
 
virtual CTree * identifier_list ()
 
virtual bool finish_param_check (bool)
 
virtual CTree * begin_decl ()
 
virtual CTree * array_delim ()
 
virtual CTree * trans_unit ()
 
virtual CTree * cmpd_stmt ()
 
virtual CTree * select_stmt ()
 
virtual CTree * iter_stmt ()
 
virtual void introduce_label (CTree *&)
 
void enter_arg_decl_seq ()
 
void leave_arg_decl_seq ()
 
void begin_param_check ()
 
bool in_arg_decl_seq () const
 
bool decl_spec_seq ()
 
bool empty_decl_spec_seq ()
 
void reenter_class_scope ()
 
void enter_scope (CStructure *scp)
 Enter the given scope. More...
 
void reenter_scope (CStructure *scp)
 Reenter the given scope. More...
 
void leave_scopes ()
 Leave all scopes entered up to the current scope. More...
 
- Public Member Functions inherited from Puma::Semantic
void error_sink (ErrorSink &e)
 Set the error output stream object. More...
 
void undo (CTree *tree)
 Undo the declaration analysis of the given syntax tree node. More...
 
CTree * PrivateName ()
 Create a new anonymous (private) name. More...
 
void save_state ()
 Save the current semantic analysis state. More...
 
void forget_state ()
 Discard the saved semantic analysis state. More...
 
void restore_state ()
 Restore the saved semantic analysis state. More...
 
CFileInfo * getFile ()
 Get the root node of the semantic tree. More...
 
void enter_local_scope ()
 Enter a local scope. More...
 
bool in_param_decl_clause ()
 Check if in the declaration of a function parameter clause. More...
 
void finish_decl ()
 Finish the analysis of the current declaration. More...
 
void finish_declarator ()
 Finish the analysis of the current declarator. More...
 
- Public Member Functions inherited from Puma::PtrStack< CObjectInfo >
 PtrStack (long=8192, long=8192)
 
virtual ~PtrStack ()
 
void Push (const CObjectInfo *)
 
void Pop ()
 
CObjectInfo * Top () const
 
long Length () const
 
CObjectInfo * Get (long) const
 
void New ()
 
void Forget ()
 
void Reject ()
 
void Destroy ()
 
long Stacks () const
 
void Reset ()
 

Public Attributes

CStructure * search_scope
 
CStructure * last_search_scope
 
CStructure * last_scope
 
bool dep_nested_name
 
const Token * tok
 
CStructure * scope
 
bool nested
 
bool nested_name
 
bool base_spec
 

Protected Member Functions

virtual CCBuilder & builder () const
 
virtual CCSyntax & syntax () const
 
virtual void Delete ()
 Delete the top item on the semantic stack. More...
 
CTree * createDelayedParse (bool(CCSyntax::*)(), CTree *)
 
void parseDelayed ()
 
void instantiateDelayed (CT_DelayedParse *, CTree *)
 
void enter_scope (CStructure *)
 Enter the given scope. More...
 
void deleteContainer (int)
 
void setQualName (CObjectInfo *, CObjectInfo *) const
 
CStructure * getQualifiedScope (CStructure *scope) const
 
CTypeInfo * resolveExpr (CTree *, CTree *=(CTree *) 0) const
 
void calculateAddress (CTree *) const
 
CObjectInfo * getLastResolvedName (CT_SimpleName *) const
 
CStructure * getNameScope (CT_SimpleName *, bool=true) const
 
CStructure * getScope (CObjectInfo *obj) const
 
CStructure * getFriendScope (bool skip_tpl_scope=false) const
 
CStructure * getNonTplScope (bool consider_instance_scope=false) const
 
CClassInfo * getOutermostIncompleteParsedRecord ()
 
Token * getCloseCurly ()
 
void qualifiedScopeName (CT_SimpleName *, std::ostringstream &) const
 
bool isQualName (CT_SimpleName *) const
 
bool realTypedef (CObjectInfo *) const
 
bool equalType (CTypeInfo *, CTypeInfo *, bool=true) const
 
void lookupName (const Token *, CStructure *, bool)
 
bool isClassOrEnum (CObjectInfo *) const
 
bool inTemplateDecl (CScopeInfo *scope) const
 
void introduceTemplate (CObjectInfo *, CTemplateInfo *, bool is_friend=false)
 
void setTemplateScope (CCNameLookup &, CObjectInfo *, CTypeInfo *, CTemplateInfo *, bool)
 
bool isSpecialization (CTree *) const
 
void setSpecializationName (CTree *, CTemplateInfo *) const
 
bool matchArguments (CT_TemplateName *n1, CT_TemplateName *n2) const
 
CLinkage::Type determine_linkage (CSemDeclSpecs *, SemObjType, CObjectInfo *=(CObjectInfo *) 0) const
 
CStorage::Type determine_storage_class (CSemDeclSpecs *) const
 
void setLanguage (CObjectInfo *) const
 
void setProtection (CObjectInfo *) const
 
void linkFctDecls (CCNameLookup &, CObjectInfo *) const
 
void linkCtorDecls (CObjectInfo *) const
 
void addImplicitThisObject (CFunctionInfo *, CTypeInfo *, CTree *)
 
void declareNamespaceStd ()
 
void declareImplicitFcts ()
 
void declareSpecialMembers ()
 
CFunctionInfo * createMethod (const char *, CRecord *, CTypeInfo *)
 
bool isRefToClass (CTypeInfo *, CRecord *) const
 
bool isBaseClass (CClassInfo *, CClassInfo *) const
 
void addBaseClasses (CClassInfo *, CT_ClassDef *)
 
void addBaseClass (CClassInfo *, CT_BaseSpec *)
 
virtual bool check_function_lookup (CCNameLookup &, CStructure *, CSemDeclSpecs *, CCSemDeclarator &, CTree *, bool)
 
virtual bool check_member_lookup (CCNameLookup &, CStructure *, CSemDeclSpecs *, CCSemDeclarator &, CTree *, bool &, bool)
 
virtual bool check_object_lookup (CCNameLookup &, CStructure *, CSemDeclSpecs *, CCSemDeclarator &, CTree *, bool &, CObjectInfo *&)
 
- Protected Member Functions inherited from Puma::CSemantic
void declareImplicitFcts ()
 
CObjectInfo * lookup (const char *, SemObjType, bool=false) const
 
CObjectInfo * lookup (CT_SimpleName *, SemObjType, bool=false) const
 
CObjectInfo * lookup (const char *, CStructure *, SemObjType, bool) const
 
CObjectInfo * lookupBuiltin (const char *name) const
 
CLinkage::Type determine_linkage (CSemDeclSpecs *, SemObjType, CObjectInfo *=(CObjectInfo *) 0) const
 
CStorage::Type determine_storage_class (CSemDeclSpecs *, SemObjType, CLinkage::Type) const
 
bool typeMatch (CTypeInfo *, CTypeInfo *) const
 
CStructure * findParent () const
 
void setSpecifiers (CObjectInfo *, CSemDeclSpecs *) const
 
bool isRedefiningTypedef (CObjectInfo *, int obj_type) const
 
bool isRedefinedFunction (CFunctionInfo *) const
 
CAttributeInfo * createAttribute (const char *, CStructure *, CTypeInfo *, bool=false)
 
CTypedefInfo * createTypedef (const char *, CStructure *, CTypeInfo *)
 
void createParameter (CFunctionInfo *, CTypeInfo *)
 
CFunctionInfo * createFunction (const char *, CStructure *, CTypeInfo *)
 
CTypeInfo * resolveExpr (CTree *expr, CTree *base) const
 
- Protected Member Functions inherited from Puma::Semantic
 Semantic ()
 Constructor. More...
 
virtual ~Semantic ()
 Destructor. More...
 
void common_settings (CObjectInfo *info, CTree *tree)
 Apply command settings on the given semantic object. More...
 
void common_settings (CObjectInfo *info, CTree *tree, CSemDeclarator *d)
 Apply command settings on the given semantic object. More...
 
void Push (CObjectInfo *info)
 Push the given semantic information object on the semantic stack. More...
 
bool in_decl () const
 Check if currently analysing a declaration. More...
 
void decl_begin (CSemDeclSpecs *ds)
 Begin analysing a declaration. More...
 
void decl_end ()
 Finish analysing a declaration. More...
 
void decl_specs_begin (CT_DeclSpecSeq *dss)
 Begin analysing a declaration specifier sequence. More...
 
void decl_specs_end ()
 Finish analysing a declaration specifier sequence. More...
 
CSemDeclSpecs * sem_decl_specs () const
 Get the semantic information for the currently analysed declaration specifier sequence. More...
 
CT_DeclSpecSeq * decl_specs () const
 Get the currently analysed declaration specifier sequence. More...
 
- Protected Member Functions inherited from Puma::PtrStack< CObjectInfo >
virtual void Remove ()
 

Protected Attributes

CRecord * _outermost_class_def
 
Stack< bool > _in_base_spec
 
Stack< bool > _in_nested_name
 
Stack< bool > _in_conv_type_id
 
Stack< const char * > _in_extern_decl
 
Stack< CProtection::Type > _protection
 
CCNameLookup shared_nl
 
struct {
   const Token *   tok
 
   CStructure *   scope
 
   bool   nested
 
   bool   nested_name
 
   bool   base_spec
 
} last_token_nl
 
Stack< Syntax::State > _in_template_arg_list
 
Stack< Syntax::State > _in_template_param_list
 
Stack< bool > parsing_entity_name
 
Stack< bool > _in_expr
 
Stack< CTree * > _postfix_expr
 
Stack< MemberAccessOperator > _in_memb_access_expr
 
bool expect_template
 
bool parsing_fct_inst
 
bool parsing_class_inst
 
bool real_inst
 
CCInstantiation * tpl_inst
 
Unit * _last_unit
 
bool _last_body_skipped
 
- Protected Attributes inherited from Puma::CSemantic
bool in_arg_decl
 
bool _in_arg_decl_seq
 
bool is_type_name
 
bool support_implicit_int
 
PtrStack< CStructure > non_record_scopes
 
- Protected Attributes inherited from Puma::Semantic
CSemDatabase * _db
 Database of all semantic objects of the semantic tree. More...
 
CFileInfo * _file
 Top level semantic object representing the file scope. More...
 
ErrorSink * _err
 Error output stream. More...
 
long _Anonymous
 Counter for generating anonymous (private) names. More...
 
CEnumInfo * current_enum
 The current enumeration, if inside the definition of an enumeration. More...
 
CStructure * current_fct
 The current function, if inside the definition of a function. More...
 
CStructure * current_scope
 The current scope. More...
 
BCStack< CSemDeclSpecs *, 256 > _sem_decl_specs
 Stack for the type analysis of declarations. More...
 
BCStack< CT_DeclSpecSeq *, 256 > _decl_specs
 Stack for collecting declaration specifiers. More...
 
BCStack< bool, 256 > _in_param_decl_clause
 Stack for the state of analysing a function parameter list. More...
 
BCStack< bool, 256 > _in_decl
 Stack for the state of analysing a declaration. More...
 

Additional Inherited Members

- Protected Types inherited from Puma::CSemantic
enum  SemObjType {
  CLASS,
  UNION,
  ENUM,
  TYPEDEF,
  FCT,
  ATTRIB,
  ARG,
  TAG,
  NON_TAG,
  ANY
}
 

Member Enumeration Documentation

Enumerator
MAO_NONE 
MAO_PTS 
MAO_DOT 

Constructor & Destructor Documentation

Puma::CCSemantic::CCSemantic ( CCSyntax &  ,
CCBuilder &   
)

Member Function Documentation

virtual CTree* Puma::CCSemantic::access_decl ( CTree *  = 0)
virtual
virtual CTree* Puma::CCSemantic::access_spec ( )
virtual
virtual CTree* Puma::CCSemantic::add_base_classes ( )
virtual
void Puma::CCSemantic::addBaseClass ( CClassInfo *  ,
CT_BaseSpec *   
)
protected
void Puma::CCSemantic::addBaseClasses ( CClassInfo *  ,
CT_ClassDef *   
)
protected
void Puma::CCSemantic::addImplicitThisObject ( CFunctionInfo *  ,
CTypeInfo *  ,
CTree *   
)
protected
CStructure* Puma::CCSemantic::array_delim ( CStructure *  = 0)
CCBuilder & Puma::CCSemantic::builder ( ) const
inlineprotectedvirtual

Reimplemented from Puma::CSemantic.

Reimplemented in Puma::InstantiationSemantic.

void Puma::CCSemantic::calculateAddress ( CTree *  ) const
protected
virtual bool Puma::CCSemantic::check_function_lookup ( CCNameLookup &  ,
CStructure *  ,
CSemDeclSpecs *  ,
CCSemDeclarator &  ,
CTree *  ,
bool   
)
protectedvirtual
virtual bool Puma::CCSemantic::check_member_lookup ( CCNameLookup &  ,
CStructure *  ,
CSemDeclSpecs *  ,
CCSemDeclarator &  ,
CTree *  ,
bool &  ,
bool   
)
protectedvirtual
virtual bool Puma::CCSemantic::check_object_lookup ( CCNameLookup &  ,
CStructure *  ,
CSemDeclSpecs *  ,
CCSemDeclarator &  ,
CTree *  ,
bool &  ,
CObjectInfo *&   
)
protectedvirtual
virtual CTree* Puma::CCSemantic::class_name ( )
virtual
virtual CTree* Puma::CCSemantic::class_spec ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::class_spec_err ( )
virtual
virtual CTree* Puma::CCSemantic::colon_colon ( )
virtual
virtual CTree* Puma::CCSemantic::condition ( )
virtual
virtual CTree* Puma::CCSemantic::const_expr ( )
virtual
virtual CTree* Puma::CCSemantic::const_init ( )
virtual
CStructure* Puma::CCSemantic::conv_fct_id ( CStructure *  = 0)
CTree* Puma::CCSemantic::createDelayedParse ( bool(CCSyntax::*)()  ,
CTree *   
)
protected
CFunctionInfo* Puma::CCSemantic::createMethod ( const char *  ,
CRecord *  ,
CTypeInfo *   
)
protected
virtual CTree* Puma::CCSemantic::ctor_init ( )
virtual
virtual CTree* Puma::CCSemantic::decl_spec_seq1 ( )
virtual

Reimplemented from Puma::CSemantic.

virtual void Puma::CCSemantic::declarator_id ( bool  )
virtual
void Puma::CCSemantic::declareImplicitFcts ( )
protected
void Puma::CCSemantic::declareNamespaceStd ( )
protected
void Puma::CCSemantic::declareSpecialMembers ( )
protected
virtual void Puma::CCSemantic::Delete ( )
protectedvirtual

Delete the top item on the semantic stack.

To be implemented by derived classes.

Reimplemented from Puma::CSemantic.

void Puma::CCSemantic::deleteContainer ( int  )
protected
CLinkage::Type Puma::CCSemantic::determine_linkage ( CSemDeclSpecs *  ,
SemObjType  ,
CObjectInfo *  = (CObjectInfo *) 0 
) const
protected
CStorage::Type Puma::CCSemantic::determine_storage_class ( CSemDeclSpecs *  ) const
protected
virtual CTree* Puma::CCSemantic::direct_new_declarator ( )
virtual
void Puma::CCSemantic::enter_base_spec ( )
inline
void Puma::CCSemantic::enter_class_def ( )
void Puma::CCSemantic::enter_conv_type_id ( )
inline
void Puma::CCSemantic::enter_entity_name ( bool  v = true)
inline
void Puma::CCSemantic::enter_exception_spec ( )
bool Puma::CCSemantic::enter_expr ( )
inline
void Puma::CCSemantic::enter_extern_decl ( bool  block_decl)
void Puma::CCSemantic::enter_member_access ( MemberAccessOperator  mao)
inline
void Puma::CCSemantic::enter_nested_name ( )
inline
void Puma::CCSemantic::enter_param_decl_clause ( )
virtual

Enter a function parameter declaration clause.

Reimplemented from Puma::Semantic.

void Puma::CCSemantic::enter_postfix_expr ( )
inline
void Puma::CCSemantic::enter_scope ( CStructure *  scope)
protectedvirtual

Enter the given scope.

Sets the parent of the entered scope to the current scope.

Parameters
scopeThe scope to enter.

Reimplemented from Puma::Semantic.

void Puma::CCSemantic::enter_template_arg_list ( Syntax::State  state)
inline
void Puma::CCSemantic::enter_template_decl ( )
void Puma::CCSemantic::enter_template_param_list ( Syntax::State  )
virtual CTree* Puma::CCSemantic::enum_name ( )
virtual
virtual CTree* Puma::CCSemantic::enumerator_def ( )
virtual

Reimplemented from Puma::CSemantic.

bool Puma::CCSemantic::equalType ( CTypeInfo *  ,
CTypeInfo *  ,
bool  = true 
) const
protected
virtual CTree* Puma::CCSemantic::exception_spec ( )
virtual
virtual CTree* Puma::CCSemantic::explicit_instantiation ( )
virtual
virtual CTree* Puma::CCSemantic::explicit_specialization ( )
virtual
virtual CTree* Puma::CCSemantic::finish_init_declarator ( )
virtual
Token* Puma::CCSemantic::getCloseCurly ( )
protected
CStructure* Puma::CCSemantic::getFriendScope ( bool  skip_tpl_scope = false) const
protected
CObjectInfo* Puma::CCSemantic::getLastResolvedName ( CT_SimpleName *  ) const
protected
CStructure* Puma::CCSemantic::getNameScope ( CT_SimpleName *  ,
bool  = true 
) const
protected
CStructure* Puma::CCSemantic::getNonTplScope ( bool  consider_instance_scope = false) const
protected
CClassInfo* Puma::CCSemantic::getOutermostIncompleteParsedRecord ( )
protected
CStructure* Puma::CCSemantic::getQualifiedScope ( CStructure *  scope) const
protected
CStructure* Puma::CCSemantic::getScope ( CObjectInfo *  obj) const
protected
virtual CTree* Puma::CCSemantic::handler ( )
virtual
virtual bool Puma::CCSemantic::implicit_int ( )
virtual

Reimplemented from Puma::CSemantic.

bool Puma::CCSemantic::in_base_spec ( ) const
inline
bool Puma::CCSemantic::in_class_def ( ) const
inline
bool Puma::CCSemantic::in_conv_type_id ( ) const
inline
bool Puma::CCSemantic::in_expr ( ) const
inline
bool Puma::CCSemantic::in_extern_decl ( ) const
inline
bool Puma::CCSemantic::in_nested_name ( ) const
inline
Syntax::State Puma::CCSemantic::in_template_arg_list ( ) const
inline
Syntax::State Puma::CCSemantic::in_template_param_list ( ) const
inline
void Puma::CCSemantic::init ( CSemDatabase &  db,
Unit &  file 
)
virtual

Initialize the semantic analysis.

Parameters
dbThe semantic object database.
fileThe input file.

Reimplemented from Puma::CSemantic.

void Puma::CCSemantic::init ( CSemDatabase &  ,
Unit &  ,
CStructure *  ,
bool  ,
bool  ,
CCInstantiation *   
)
virtual CTree* Puma::CCSemantic::init_declarator ( )
virtual

Reimplemented from Puma::CSemantic.

void Puma::CCSemantic::instantiateDelayed ( CT_DelayedParse *  ,
CTree *   
)
protected
CCInstantiation * Puma::CCSemantic::Instantiation ( ) const
inline
bool Puma::CCSemantic::inTemplateDecl ( CScopeInfo *  scope) const
protected
virtual CTree* Puma::CCSemantic::introduce_class ( )
virtual

Reimplemented from Puma::CSemantic.

Reimplemented in Puma::InstantiationSemantic.

virtual CTree* Puma::CCSemantic::introduce_enum ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::introduce_enumerator ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::introduce_exception ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_function ( )
virtual

Reimplemented from Puma::CSemantic.

Reimplemented in Puma::InstantiationSemantic.

virtual CTree* Puma::CCSemantic::introduce_member ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::introduce_named_type ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::introduce_non_type_param ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_ns_alias ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_ns_extension ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_object ( CTree *  = 0)
virtual

Reimplemented from Puma::CSemantic.

Reimplemented in Puma::InstantiationSemantic.

virtual CTree* Puma::CCSemantic::introduce_orig_ns ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_parameter ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::introduce_tag ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::introduce_template_instance ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_type_param ( )
virtual
virtual CTree* Puma::CCSemantic::introduce_unnamed_ns ( )
virtual
void Puma::CCSemantic::introduceTemplate ( CObjectInfo *  ,
CTemplateInfo *  ,
bool  is_friend = false 
)
protected
bool Puma::CCSemantic::is_entity_name ( ) const
inline
bool Puma::CCSemantic::isBaseClass ( CClassInfo *  ,
CClassInfo *   
) const
protected
bool Puma::CCSemantic::isClassOrEnum ( CObjectInfo *  ) const
protected
bool Puma::CCSemantic::isQualName ( CT_SimpleName *  ) const
protected
bool Puma::CCSemantic::isRefToClass ( CTypeInfo *  ,
CRecord *   
) const
protected
bool Puma::CCSemantic::isSpecialization ( CTree *  ) const
protected
void Puma::CCSemantic::leave_base_spec ( )
inline
void Puma::CCSemantic::leave_class_def ( bool  reject = false)
void Puma::CCSemantic::leave_conv_type_id ( )
inline
void Puma::CCSemantic::leave_entity_name ( )
inline
void Puma::CCSemantic::leave_exception_spec ( )
bool Puma::CCSemantic::leave_expr ( )
inline
void Puma::CCSemantic::leave_extern_decl ( )
inline
void Puma::CCSemantic::leave_member_access ( )
inline
void Puma::CCSemantic::leave_nested_name ( )
inline
void Puma::CCSemantic::leave_param_decl_clause ( )
virtual

Leave a function parameter declaration clause.

Reimplemented from Puma::Semantic.

void Puma::CCSemantic::leave_postfix_expr ( )
inline
void Puma::CCSemantic::leave_template_arg_list ( )
inline
void Puma::CCSemantic::leave_template_param_list ( )
inline
void Puma::CCSemantic::linkCtorDecls ( CObjectInfo *  ) const
protected
void Puma::CCSemantic::linkFctDecls ( CCNameLookup &  ,
CObjectInfo *   
) const
protected
void Puma::CCSemantic::lookupName ( const Token *  ,
CStructure *  ,
bool   
)
protected
bool Puma::CCSemantic::matchArguments ( CT_TemplateName *  n1,
CT_TemplateName *  n2 
) const
protected
virtual CTree* Puma::CCSemantic::member_decl1 ( )
virtual
virtual CTree* Puma::CCSemantic::member_declarator_err ( )
virtual
virtual CTree* Puma::CCSemantic::namespace_alias ( )
virtual
virtual CTree* Puma::CCSemantic::namespace_def ( )
virtual
virtual CTree* Puma::CCSemantic::nested_name_spec ( )
virtual
virtual CTree* Puma::CCSemantic::nested_name_spec1 ( )
virtual
bool Puma::CCSemantic::non_primary_loc ( )
bool Puma::CCSemantic::non_project_loc ( )
virtual CTree* Puma::CCSemantic::obj_decl ( CTree *  )
virtual
virtual CTree* Puma::CCSemantic::original_ns_name ( )
virtual
virtual void Puma::CCSemantic::parse_delayed ( bool(CCSyntax::*)()  ,
CTree *   
)
virtual

Reimplemented in Puma::InstantiationSemantic.

void Puma::CCSemantic::parseDelayed ( )
protected
CTree* Puma::CCSemantic::postfix_expr ( )
virtual CTree* Puma::CCSemantic::postfix_expr1 ( )
virtual
virtual CTree* Puma::CCSemantic::postfix_expr2 ( )
virtual
CProtection::Type Puma::CCSemantic::protection ( ) const
inlinevirtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::pseudo_dtor_name ( )
virtual
virtual CTree* Puma::CCSemantic::pure_spec ( )
virtual
void Puma::CCSemantic::qualifiedScopeName ( CT_SimpleName *  ,
std::ostringstream &   
) const
protected
bool Puma::CCSemantic::realTypedef ( CObjectInfo *  ) const
protected
bool Puma::CCSemantic::reset_search_scope ( bool  = false)
CTypeInfo* Puma::CCSemantic::resolveExpr ( CTree *  ,
CTree *  = (CTree *) 0 
) const
protected
void Puma::CCSemantic::setLanguage ( CObjectInfo *  ) const
protected
void Puma::CCSemantic::setProtection ( CObjectInfo *  info) const
inlineprotected
void Puma::CCSemantic::setQualName ( CObjectInfo *  ,
CObjectInfo *   
) const
protected
void Puma::CCSemantic::setSpecializationName ( CTree *  ,
CTemplateInfo *   
) const
protected
void Puma::CCSemantic::setTemplateScope ( CCNameLookup &  ,
CObjectInfo *  ,
CTypeInfo *  ,
CTemplateInfo *  ,
bool   
)
protected
virtual CTree* Puma::CCSemantic::simple_type_spec ( )
virtual
bool Puma::CCSemantic::skip_tpl_fct_bodies ( ) const
CCSyntax & Puma::CCSemantic::syntax ( ) const
inlineprotectedvirtual

Reimplemented from Puma::CSemantic.

Reimplemented in Puma::InstantiationSemantic.

virtual CTree* Puma::CCSemantic::template_decl ( )
virtual
virtual CTree* Puma::CCSemantic::template_key ( )
virtual
virtual CTree* Puma::CCSemantic::template_name ( bool  class_only = false)
virtual
virtual CTree* Puma::CCSemantic::template_param ( )
virtual
virtual CTree* Puma::CCSemantic::template_param_list ( )
virtual
virtual CTree* Puma::CCSemantic::typedef_name ( )
virtual

Reimplemented from Puma::CSemantic.

virtual CTree* Puma::CCSemantic::using_decl ( )
virtual
virtual CTree* Puma::CCSemantic::using_directive ( )
virtual
virtual CTree* Puma::CCSemantic::valid_id_expr ( )
virtual

Member Data Documentation

Stack<bool> Puma::CCSemantic::_in_base_spec
protected
Stack<bool> Puma::CCSemantic::_in_conv_type_id
protected
Stack<bool> Puma::CCSemantic::_in_expr
protected
Stack<const char*> Puma::CCSemantic::_in_extern_decl
protected
Stack<MemberAccessOperator> Puma::CCSemantic::_in_memb_access_expr
protected
Stack<bool> Puma::CCSemantic::_in_nested_name
protected
Stack<Syntax::State> Puma::CCSemantic::_in_template_arg_list
protected
Stack<Syntax::State> Puma::CCSemantic::_in_template_param_list
protected
bool Puma::CCSemantic::_last_body_skipped
protected
Unit* Puma::CCSemantic::_last_unit
protected
CRecord* Puma::CCSemantic::_outermost_class_def
protected
Stack<CTree*> Puma::CCSemantic::_postfix_expr
protected
Stack<CProtection::Type> Puma::CCSemantic::_protection
protected
bool Puma::CCSemantic::base_spec
bool Puma::CCSemantic::dep_nested_name
bool Puma::CCSemantic::expect_template
protected
CStructure* Puma::CCSemantic::last_scope
CStructure* Puma::CCSemantic::last_search_scope
struct { ... } Puma::CCSemantic::last_token_nl
bool Puma::CCSemantic::nested
bool Puma::CCSemantic::nested_name
bool Puma::CCSemantic::parsing_class_inst
protected
Stack<bool> Puma::CCSemantic::parsing_entity_name
protected
bool Puma::CCSemantic::parsing_fct_inst
protected
bool Puma::CCSemantic::real_inst
protected
CStructure* Puma::CCSemantic::scope
CStructure* Puma::CCSemantic::search_scope
CCNameLookup Puma::CCSemantic::shared_nl
protected
const Token* Puma::CCSemantic::tok
CCInstantiation* Puma::CCSemantic::tpl_inst
protected



Puma Reference Manual. Created on Fri Aug 28 2015.