Public Member Functions |
| CCSemantic (CCSyntax &, CCBuilder &) |
void | init (CSemDatabase &, Unit &) |
| Initialize the semantic analysis.
|
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.
|
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.
|
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 () |
| CSemantic (CSyntax &, CBuilder &) |
void | configure (Config &) |
| Configure the semantic analysis.
|
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 | reenter_scope (CStructure *scp) |
| Reenter the given scope.
|
void | leave_scopes () |
| Leave all scopes entered up to the current scope.
|
void | error_sink (ErrorSink &e) |
| Set the error output stream object.
|
void | undo (CTree *tree) |
| Undo the declaration analysis of the given syntax tree node.
|
CTree * | PrivateName () |
| Create a new anonymous (private) name.
|
void | save_state () |
| Save the current semantic analysis state.
|
void | forget_state () |
| Discard the saved semantic analysis state.
|
void | restore_state () |
| Restore the saved semantic analysis state.
|
CFileInfo * | getFile () |
| Get the root node of the semantic tree.
|
void | enter_local_scope () |
| Enter a local scope.
|
bool | in_param_decl_clause () |
| Check if in the declaration of a function parameter clause.
|
void | finish_decl () |
| Finish the analysis of the current declaration.
|
void | finish_declarator () |
| Finish the analysis of the current declarator.
|
| 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 () |
Protected Member Functions |
virtual CCBuilder & | builder () const |
virtual CCSyntax & | syntax () const |
virtual void | Delete () |
| Delete the top item on the semantic stack.
|
CTree * | createDelayedParse (bool(CCSyntax::*)(), CTree *) |
void | parseDelayed () |
void | instantiateDelayed (CT_DelayedParse *, CTree *) |
void | enter_scope (CStructure *) |
| Enter the given scope.
|
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 *&) |
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 |
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 *) |
| Semantic () |
| Constructor.
|
virtual | ~Semantic () |
| Destructor.
|
void | common_settings (CObjectInfo *info, CTree *tree) |
| Apply command settings on the given semantic object.
|
void | common_settings (CObjectInfo *info, CTree *tree, CSemDeclarator *d) |
| Apply command settings on the given semantic object.
|
void | Push (CObjectInfo *info) |
| Push the given semantic information object on the semantic stack.
|
bool | in_decl () const |
| Check if currently analysing a declaration.
|
void | decl_begin (CSemDeclSpecs *ds) |
| Begin analysing a declaration.
|
void | decl_end () |
| Finish analysing a declaration.
|
void | decl_specs_begin (CT_DeclSpecSeq *dss) |
| Begin analysing a declaration specifier sequence.
|
void | decl_specs_end () |
| Finish analysing a declaration specifier sequence.
|
CSemDeclSpecs * | sem_decl_specs () const |
| Get the semantic information for the currently analysed declaration specifier sequence.
|
CT_DeclSpecSeq * | decl_specs () const |
| Get the currently analysed declaration specifier sequence.
|
virtual void | Remove () |