|
| InstantiationSemantic (InstantiationSyntax &, InstantiationBuilder &) |
|
void | parse_delayed (bool(CCSyntax::*rule)(), CTree *tree) |
|
CTree * | non_type_param_without_init () |
|
CTree * | introduce_function () |
|
CTree * | introduce_class () |
|
CTree * | introduce_object (CTree *=0) |
|
bool | is_class_name () |
|
bool | is_enum_name () |
|
bool | is_typedef_name () |
|
bool | is_template_name () |
|
bool | is_class_template_name () |
|
bool | is_namespace_name () |
|
bool | is_this_specialization () |
|
bool | is_this_instance () |
|
void | set_this_instance () |
|
| 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_named_type () |
|
virtual CTree * | introduce_parameter () |
|
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 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 | enter_scope (CStructure *scp) |
| Enter the given 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 size=8192, long incr=8192) |
| Construct a new layered stack.
|
|
virtual | ~PtrStack () |
| Destructor.
|
|
void | Push (const CObjectInfo *item) |
| Add a new item on the top of the current layer.
|
|
void | Pop () |
| Remove the top item from the current layer.
|
|
CObjectInfo * | Top () const |
| Get the top item from the current layer.
|
|
long | Length () const |
| Get the number of items added to the current layer.
|
|
CObjectInfo * | Get (long n) const |
| Get the n-th item on the current layer.
|
|
void | New () |
| Create a new layer.
|
|
void | Forget () |
| Remove the top layer and add its items to the underlying layer.
|
|
void | Reject () |
| Remove the top layer.
|
|
void | Destroy () |
| Remove the top layer and delete its items.
|
|
long | Stacks () const |
| Get the number of layers.
|
|
void | Reset () |
| Remove all layers.
|
|
|
virtual InstantiationBuilder & | builder () const |
|
virtual InstantiationSyntax & | 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 *&) |
|
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 |
|
| 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 () |
| Remove the top item of the current layer.
|
|