![]() |
PUMA Library Reference Manual
|
#include <Puma/CScopeInfo.h>
Inheritance diagram for Puma::CScopeInfo:Semantic information about a scope.
Several syntactic constructs have its own scope, such as class definitions, functions, and compound statements.
Public Member Functions | |
| ~CScopeInfo () | |
| Destructor. | |
| unsigned | Children () const |
| Get the number of child scopes (nested scopes). | |
| CScopeInfo * | Child (unsigned) const |
| Get the n-th child scope. | |
| CScopeInfo * | Parent () const |
| Get the parent scope of this scope. | |
| bool | isFile () const |
| Check if this is a file (file scope). | |
| bool | isNamespace () const |
| Check if this is namespace. | |
| bool | isRecord () const |
| Check if this is class or union. | |
| bool | isClass () const |
| Check if this is a class. | |
| bool | isUnion () const |
| Check if this is a union. | |
| bool | isFunction () const |
| Check if this is a function. | |
| bool | isMethod () const |
| Check if this is a class method. | |
| bool | isClassTemplate () const |
| Check if this is a class template. | |
| bool | isFctTemplate () const |
| Check if this is a function template. | |
| bool | isLocalScope () const |
| Check if this is a local scope. | |
| bool | isLocalRecord () const |
| Check if this is a local class or union. | |
| bool | isLocalClass () const |
| Check if this is a local class. | |
| bool | isLocalUnion () const |
| Check if this is a local union. | |
| bool | GlobalScope () const |
| Check if this is the global (file) scope. | |
| bool | insideTemplate () const |
| Check if this scope is inside a class or function template scope. | |
| bool | insideRecord () const |
| Check if this scope is inside a class or union scope. | |
| bool | insideClass () const |
| Check if this scope is inside a class scope. | |
| bool | insideUnion () const |
| Check if this scope is inside a union scope. | |
| bool | insideFunction () const |
| Check if this scope is inside a function scope. | |
| bool | insideMethod () const |
| Check if this scope is inside a class method scope. | |
| void | Parent (const CScopeInfo *scope) |
| Set the parent scope of this scope. | |
| void | addChild (CScopeInfo *scope) |
| Add a child scope to this scope. | |
| void | removeChild (const CScopeInfo *scope) |
| Remove a child scope. | |
| CLocalScope * | newLocalScope () |
| Create a new local scope information object. | |
| CFunctionInfo * | newFunction (bool inst=false) |
| Create a new function or function template instance semantic object. | |
| CClassInfo * | newClass (bool inst=false) |
| Create a new class or class template instance semantic object. | |
| CUnionInfo * | newUnion (bool inst=false) |
| Create a new union or union template instance semantic object. | |
| CNamespaceInfo * | newNamespace () |
| Create a new namespace semantic object. | |
| CTemplateInfo * | newTemplate () |
| Create a new template semantic object. | |
| void | deleteLocalScope (const CLocalScope *scope) |
| Delete the given local scope semantic object. | |
| void | deleteFunction (const CFunctionInfo *fct) |
| Delete the given function semantic object. | |
| void | deleteClass (const CClassInfo *c) |
| Delete the given class semantic object. | |
| void | deleteUnion (const CUnionInfo *u) |
| Delete the given union semantic object. | |
| void | deleteNamespace (const CNamespaceInfo *ns) |
| Delete the given namespace semantic object. | |
| void | deleteTemplate (const CTemplateInfo *tpl) |
| Delete the given template semantic object. | |
Public Member Functions inherited from Puma::CObjectInfo | |
| ~CObjectInfo () | |
| Destructor. | |
| bool | operator== (const CObjectInfo &) const |
| Compare the addresses of this object and all objects linked to this object with the address of the given object. | |
| bool | operator!= (const CObjectInfo &) const |
| Compare the addresses of this object and all objects linked to this object with the address of the given object. | |
| CObjectInfo * | ObjectInfo () const |
| Get a pointer to CObjectInfo for any semantic object type. | |
| CLabelInfo * | LabelInfo () const |
| Return a pointer to CLabelInfo if the entity is a label. | |
| CMemberAliasInfo * | MemberAliasInfo () const |
| Return a pointer to CMemberAliasInfo if the entity is a member alias. | |
| CBaseClassInfo * | BaseClassInfo () const |
| Return a pointer to CBaseClassInfo if the entity is a base class specifier. | |
| CUsingInfo * | UsingInfo () const |
| Return a pointer to CUsingInfo if the entity is a using-directive. | |
| CTypedefInfo * | TypedefInfo () const |
| Return a pointer to CTypedefInfo if the entity is a typedef. | |
| CArgumentInfo * | ArgumentInfo () const |
| Return a pointer to CArgumentInfo if the entity is a function parameter. | |
| CAttributeInfo * | AttributeInfo () const |
| Return a pointer to CAttributeInfo if the entity is an object or enumeration constant. | |
| CTemplateParamInfo * | TemplateParamInfo () const |
| Return a pointer to CTemplateParemInfo if the entity is a template parameter. | |
| CStructure * | Structure () const |
| Return a pointer to CStructure if the entity is a namespace, class, function, or any other construct that can contain other entities. | |
| CFileInfo * | FileInfo () const |
| Return a pointer to CFileInfo if this is the file scope. | |
| CRecord * | Record () const |
| Return a pointer to CRecord if the entity is a class or union. | |
| CLocalScope * | LocalScope () const |
| Return a pointer to CLocalScope if the entity is a local scope (block scope). | |
| CScopeInfo * | ScopeInfo () const |
| Return a pointer to CScopeInfo if the entity defines a scope. | |
| CClassInfo * | ClassInfo () const |
| Return a pointer to CClassInfo if the entity is a class. | |
| CUnionInfo * | UnionInfo () const |
| Return a pointer to CUnionInfo if the entity is a union. | |
| CEnumInfo * | EnumInfo () const |
| Return a pointer to CEnumInfo if the entity is an enumeration. | |
| CFunctionInfo * | FunctionInfo () const |
| Return a pointer to CFunctionInfo if the entity is a function, method, or overloaded operator. | |
| CNamespaceInfo * | NamespaceInfo () const |
| Return a pointer to CNamespaceInfo if the entity is a namespace. | |
| CEnumeratorInfo * | EnumeratorInfo () const |
| Return a pointer to CEnumeratorInfo if the entity is an enumeration constant. | |
| CTemplateInfo * | TemplateInfo () const |
| Return a pointer to CTemplateInfo if the entity is a template. | |
| CClassInstance * | ClassInstance () const |
| Return a pointer to CClassInstance if the entity is an instance of a class template. | |
| CFctInstance * | FctInstance () const |
| Return a pointer to CFctInstance if the entity is an instance of a function template. | |
| CUnionInstance * | UnionInstance () const |
| Return a pointer to CUnionInstance if the entity is an instance of a union template. | |
| CTemplateInfo * | Template () const |
| Return a pointer to CTemplateInfo if the entity is a template. | |
| CTemplateInstance * | TemplateInstance () const |
| Return a pointer to CTemplateInstance if the entity is an instance of a class or function template. | |
| CScopeInfo * | Scope () const |
| Get the scope in which the entity was declared. | |
| CStructure * | QualifiedScope () const |
| Get the scope of qualified names. | |
| CRecord * | ClassScope () const |
| Get the class containing the class member described by this object. | |
| CStructure * | AssignedScope () const |
| Get the scope of a friend class or function. | |
| ObjectId | Id () const |
| Get the type of this semantic object. | |
| const DString & | Name () const |
| Get the name of entity described by this semantic object. | |
| const char * | QualName (bool abs=false, bool tdef=false, bool unnamed=false) |
| Get the qualified name of the entity described by this semantic object. | |
| CObjectInfo * | DefObject () const |
| Get the semantic information object for the definition of an entity. | |
| CTypeInfo * | TypeInfo () const |
| Get the data type of the entity. | |
| CSourceInfo * | SourceInfo () const |
| Get the source file information. | |
| CSemDatabase * | ClassDB () const |
| Get the semantic information database object containing this semantic object. | |
| CSemDatabase * | SemDB () const |
| Get the semantic information database object containing this semantic object. | |
| CTree * | Tree () const |
| Get the syntax tree node for the entity described by this semantic object. | |
| CObjectInfo * | NextObject () const |
| Get the next semantic object linked with this object. | |
| CObjectInfo * | PrevObject () const |
| Get the previous semantic object linked with this object. | |
| CObjectInfo * | BaseObject () const |
| Get the semantic object for the base class entity this entity is overloading. | |
| CTree * | Init () const |
| Get the initializer of the entity. | |
| CProtection::Type | Protection () const |
| Get the member protection of the entity, if it is a class member. | |
| CLinkage::Type | Linkage () const |
| Get the linkage of the entity. | |
| CStorage::Type | Storage () const |
| Get the storage class of the entity. | |
| const CLanguage & | Language () const |
| Get the entity encoding language. | |
| CLanguage & | Language () |
| Get the entity encoding language. | |
| const CSpecifiers & | Specifiers () const |
| Get the declaration specifiers. | |
| bool | isType () const |
| Check if the entity is a type. | |
| bool | isObject () const |
| Check if the entity is an object. | |
| bool | isAnonymous () const |
| Check if the entity is anonymous (has no explicit name). | |
| bool | isTemplate () const |
| Check if the entity is a class or function template, or a template template parameter. | |
| bool | isTemplateInstance () const |
| Check if the entity is a class or function template instance. | |
| bool | isBuiltin () const |
| Check if the entity describes a built-in type or function. | |
| bool | isClassMember () const |
| Check if the entity is a method or data member of a class. | |
| bool | isVirtual () const |
| Check if the entity is declared virtual. | |
| bool | isStatic () const |
| Check if the entity is declared static. | |
| bool | isThreadLocal () const |
| Check if the entity is declared __thread. | |
| bool | isExtern () const |
| Check if the entity is declared extern. | |
| bool | isMutable () const |
| Check if the entity is declared mutable. | |
| bool | isRegister () const |
| Check if the entity is declared register. | |
| bool | isExplicit () const |
| Check if the entity is declared explicit. | |
| bool | isInline () const |
| Check if the entity is declared inline. | |
| bool | isAuto () const |
| Check if the entity is declared auto. | |
| bool | isRegistered (const CStructure *s) const |
| Check if the given semantic object is registered as being connected to this semantic object in any way. | |
| bool | isLocal () const |
| Check if the entity is local. | |
| void | Name (const char *s) |
| Set the name of the entity. | |
| void | Name (const DString &ds) |
| Set the name of the entity. | |
| void | TypeInfo (CTypeInfo *type) |
| Set the type of the entity. | |
| void | BaseObject (CObjectInfo *base) |
| Set the base class object for the entity this entity overloads. | |
| void | Protection (CProtection::Type p) |
| Set the member access protection of the entity. | |
| void | Linkage (CLinkage::Type l) |
| Set the linkage of the entity. | |
| void | Storage (CStorage::Type s) |
| Set the storage class of the entity. | |
| void | Specifiers (const CSpecifiers &) |
| Set the declaration specifiers. | |
| void | FileInfo (CFileInfo *finfo) |
| Set the source file information for the entity. | |
| void | Tree (CTree *tree) |
| Set the syntax tree node of the entity. | |
| void | ClassDB (CSemDatabase *db) |
| Set the semantic information database object containing this semantic object. | |
| void | SemDB (CSemDatabase *db) |
| Set the semantic information database object containing this semantic object. | |
| void | NextObject (CObjectInfo *obj) |
| Set the link to next semantic object. | |
| void | PrevObject (CObjectInfo *obj) |
| Set the link to next semantic object. | |
| void | Unlink () |
| Unlink this semantic object. | |
| void | Register (CStructure *s) |
| Register the given semantic object as being connected to this semantic object in any way. | |
| void | Unregister (CStructure *s) |
| Unregister the given semantic object as being connected to this semantic object in any way. | |
| void | isVirtual (bool v) |
| Set whether the entity was declared virtual. | |
| void | isStatic (bool v) |
| Set whether the entity was declared static. | |
| void | isThreadLocal (bool v) |
| Set whether the entity was declared __thread. | |
| void | isExtern (bool v) |
| Set whether the entity was declared extern. | |
| void | isMutable (bool v) |
| Set whether the entity was declared mutable. | |
| void | isRegister (bool v) |
| Set whether the entity was declared register. | |
| void | isExplicit (bool v) |
| Set whether the entity was declared explicit. | |
| void | isInline (bool v) |
| Set whether the entity was declared inline. | |
| void | isAuto (bool v) |
| Set whether the entity was declared auto. | |
| void | AssignedScope (CStructure *s) |
| Set the assigned scope of the entity. | |
Protected Member Functions | |
| CScopeInfo (ObjectId id) | |
| Constructor. | |
Protected Member Functions inherited from Puma::CObjectInfo | |
| CObjectInfo (ObjectId id) | |
| Constructor. | |
Additional Inherited Members | |
Public Types inherited from Puma::CObjectInfo | |
| enum | ObjectId { FILE_INFO , UNION_INFO , CLASS_INFO , BASECLASS_INFO , MEMBERALIAS_INFO , ENUM_INFO , TYPEDEF_INFO , FUNCTION_INFO , LABEL_INFO , ENUMERATOR_INFO , ATTRIBUTE_INFO , TEMPLATE_PARAM_INFO , TEMPLATE_INFO , CLASS_INSTANCE_INFO , UNION_INSTANCE_INFO , FCT_INSTANCE_INFO , ARGUMENT_INFO , LOCAL_INFO , NAMESPACE_INFO , USING_INFO } |
| Semantic information object types. More... | |
Protected Attributes inherited from Puma::CObjectInfo | |
| CStructure * | _QualScope |
| Qualified name scope. | |
| CStructure * | _AssignedScope |
| The scope of a friend class or function. | |
| Array< CStructure * > | _Registered |
| Set of semantic objects connected to this object in any way. | |
|
inlineprotected |
Constructor.
| id | The object type. |
| Puma::CScopeInfo::~CScopeInfo | ( | ) |
Destructor.
| void Puma::CScopeInfo::addChild | ( | CScopeInfo * | scope | ) |
Add a child scope to this scope.
| scope | The child scope. |
|
inline |
Get the n-th child scope.
| n | The index of the child scope. |
|
inline |
Get the number of child scopes (nested scopes).
| void Puma::CScopeInfo::deleteClass | ( | const CClassInfo * | c | ) |
Delete the given class semantic object.
| c | The class. |
| void Puma::CScopeInfo::deleteFunction | ( | const CFunctionInfo * | fct | ) |
Delete the given function semantic object.
| fct | The function. |
| void Puma::CScopeInfo::deleteLocalScope | ( | const CLocalScope * | scope | ) |
Delete the given local scope semantic object.
| scope | The local scope. |
| void Puma::CScopeInfo::deleteNamespace | ( | const CNamespaceInfo * | ns | ) |
Delete the given namespace semantic object.
| ns | The namespace. |
| void Puma::CScopeInfo::deleteTemplate | ( | const CTemplateInfo * | tpl | ) |
Delete the given template semantic object.
| tpl | The template. |
| void Puma::CScopeInfo::deleteUnion | ( | const CUnionInfo * | u | ) |
Delete the given union semantic object.
| u | The union. |
|
inline |
Check if this is the global (file) scope.
|
inline |
Check if this scope is inside a class scope.
|
inline |
Check if this scope is inside a function scope.
|
inline |
Check if this scope is inside a class method scope.
|
inline |
Check if this scope is inside a class or union scope.
|
inline |
Check if this scope is inside a class or function template scope.
|
inline |
Check if this scope is inside a union scope.
|
inline |
Check if this is a class.
| bool Puma::CScopeInfo::isClassTemplate | ( | ) | const |
Check if this is a class template.
| bool Puma::CScopeInfo::isFctTemplate | ( | ) | const |
Check if this is a function template.
|
inline |
Check if this is a file (file scope).
|
inline |
Check if this is a function.
|
inline |
Check if this is a local class.
|
inline |
Check if this is a local class or union.
|
inline |
Check if this is a local scope.
|
inline |
Check if this is a local union.
| bool Puma::CScopeInfo::isMethod | ( | ) | const |
Check if this is a class method.
|
inline |
Check if this is namespace.
|
inline |
Check if this is class or union.
|
inline |
Check if this is a union.
| CClassInfo * Puma::CScopeInfo::newClass | ( | bool | inst = false | ) |
Create a new class or class template instance semantic object.
| inst | true if to a class template instance. |
| CFunctionInfo * Puma::CScopeInfo::newFunction | ( | bool | inst = false | ) |
Create a new function or function template instance semantic object.
| inst | true if to a function template instance. |
| CLocalScope * Puma::CScopeInfo::newLocalScope | ( | ) |
Create a new local scope information object.
| CNamespaceInfo * Puma::CScopeInfo::newNamespace | ( | ) |
Create a new namespace semantic object.
| CTemplateInfo * Puma::CScopeInfo::newTemplate | ( | ) |
Create a new template semantic object.
| CUnionInfo * Puma::CScopeInfo::newUnion | ( | bool | inst = false | ) |
Create a new union or union template instance semantic object.
| inst | true if to a union template instance. |
|
inline |
Get the parent scope of this scope.
The top scope is the file scope.
| void Puma::CScopeInfo::Parent | ( | const CScopeInfo * | scope | ) |
Set the parent scope of this scope.
| scope | The parent scope. |
| void Puma::CScopeInfo::removeChild | ( | const CScopeInfo * | scope | ) |
Remove a child scope.
| scope | The child scope. |