Puma Reference Manual Puma::CSemDatabase Class Reference



Puma::CSemDatabase Class Reference

Semantic information database. More...

#include <Puma/CSemDatabase.h>

List of all members.

Public Types

typedef set< CObjectInfo * > ObjectSet

Public Member Functions

 CSemDatabase (CProject &prj, int size=997)
 Constructor.
virtual ~CSemDatabase ()
 Destructor.
ObjectSetObjects ()
 Get the set of all semantic objects.
unsigned ObjectInfos () const
 Get the number of semantic objects.
unsigned ClassInfos () const
 Get the number of semantic objects for classes.
unsigned UnionInfos () const
 Get the number of semantic objects for unions.
unsigned EnumInfos () const
 Get the number of semantic objects for enumerations.
unsigned TypedefInfos () const
 Get the number of semantic objects for typedefs.
unsigned FunctionInfos () const
 Get the number of semantic objects for functions.
unsigned FileInfos () const
 Get the number of semantic objects for translation units (file scope).
CObjectInfoObjectInfo (unsigned n) const
 Get the n-th semantic object.
CClassInfoClassInfo (unsigned n) const
 Get the n-th semantic object for classes.
CUnionInfoUnionInfo (unsigned n) const
 Get the n-th semantic object for unions.
CEnumInfoEnumInfo (unsigned n) const
 Get the n-th semantic object for enumerations.
CTypedefInfoTypedefInfo (unsigned n) const
 Get the n-th semantic object for typedefs.
CFunctionInfoFunctionInfo (unsigned n) const
 Get the n-th semantic object for functions.
CFileInfoFileInfo (unsigned n) const
 Get the n-th semantic object for translation units (file scope).
CObjectInfoObjectInfo (Token *pos) const
 Get the semantic object for the entity at the given source code position (token).
CObjectInfoObjectInfo (CT_Token *pos) const
 Get the semantic object for the entity at the given source code position (token).
CArgumentInfonewArgument ()
CAttributeInfonewAttribute ()
CBaseClassInfonewBaseClass ()
CClassInfonewClass ()
CClassInstancenewClassInstance ()
CEnumInfonewEnum ()
CEnumeratorInfonewEnumerator ()
CFunctionInfonewFunction ()
CFctInstancenewFctInstance ()
CLabelInfonewLabel ()
CLocalScopenewLocalScope ()
CMemberAliasInfonewMemberAlias ()
CNamespaceInfonewNamespace ()
CTemplateInfonewTemplate ()
CTemplateParamInfonewTemplateParam ()
CTypedefInfonewTypedef ()
CUnionInfonewUnion ()
CUnionInstancenewUnionInstance ()
CUsingInfonewUsing ()
CFileInfonewFile ()
void Insert (CObjectInfo *info)
 Insert a new semantic object into the database.
void Remove (CObjectInfo *info)
 Remove the given semantic object from the database.
CFunctionInfoBuiltinOperator (const char *name, int tok, CTypeInfo *rtype, CTypeInfo *t0, CTypeInfo *t1)
 Get the semantic object for the given built-in operator.
void Dump (ostream &out, int depth=0, bool dump_builtins=true) const
 Dump the contents of the database.
CProjectProject () const
 Get the project information.

Detailed Description

Semantic information database.

Contains all semantic objects created during the semantic analysis for one translation unit.


Member Typedef Documentation


Constructor & Destructor Documentation

Puma::CSemDatabase::CSemDatabase ( CProject prj,
int  size = 997 
) [inline]

Constructor.

Parameters:
prjThe project information.
sizeInitial size of the database (not yet used!).
virtual Puma::CSemDatabase::~CSemDatabase ( ) [virtual]

Destructor.

Destroys all semantic information objects in the database.


Member Function Documentation

CFunctionInfo* Puma::CSemDatabase::BuiltinOperator ( const char *  name,
int  tok,
CTypeInfo rtype,
CTypeInfo t0,
CTypeInfo t1 
)

Get the semantic object for the given built-in operator.

Parameters:
nameThe operator name/symbol.
tokThe operator token type.
rtypeThe result type of the operator.
t0Type of the first operand.
t1Type of the second operand, or NULL if only one operand.
CClassInfo * Puma::CSemDatabase::ClassInfo ( unsigned  n) const [inline]

Get the n-th semantic object for classes.

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.
unsigned Puma::CSemDatabase::ClassInfos ( ) const [inline]

Get the number of semantic objects for classes.

void Puma::CSemDatabase::Dump ( ostream &  out,
int  depth = 0,
bool  dump_builtins = true 
) const

Dump the contents of the database.

The dump is indented as tree corresponding to the nesting of the semantic objects.

Parameters:
outThe output stream.
depthThe maximum indentation depth (0 means infinite).
dump_builtinsDump or ignore builtin function, types and objects.
CEnumInfo * Puma::CSemDatabase::EnumInfo ( unsigned  n) const [inline]

Get the n-th semantic object for enumerations.

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.
unsigned Puma::CSemDatabase::EnumInfos ( ) const [inline]

Get the number of semantic objects for enumerations.

CFileInfo * Puma::CSemDatabase::FileInfo ( unsigned  n) const [inline]

Get the n-th semantic object for translation units (file scope).

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.
unsigned Puma::CSemDatabase::FileInfos ( ) const [inline]

Get the number of semantic objects for translation units (file scope).

CFunctionInfo * Puma::CSemDatabase::FunctionInfo ( unsigned  n) const [inline]

Get the n-th semantic object for functions.

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.
unsigned Puma::CSemDatabase::FunctionInfos ( ) const [inline]

Get the number of semantic objects for functions.

Insert a new semantic object into the database.

Parameters:
infoThe semantic object.

Get the n-th semantic object.

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.

Get the semantic object for the entity at the given source code position (token).

Parameters:
posThe token of the entity.
Returns:
The semantic object or NULL.

Get the semantic object for the entity at the given source code position (token).

Parameters:
posThe token of the entity.
Returns:
The semantic object or NULL.
unsigned Puma::CSemDatabase::ObjectInfos ( ) const [inline]

Get the number of semantic objects.

Get the set of all semantic objects.

CProject * Puma::CSemDatabase::Project ( ) const [inline]

Get the project information.

Remove the given semantic object from the database.

Parameters:
infoThe semantic object.
CTypedefInfo * Puma::CSemDatabase::TypedefInfo ( unsigned  n) const [inline]

Get the n-th semantic object for typedefs.

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.
unsigned Puma::CSemDatabase::TypedefInfos ( ) const [inline]

Get the number of semantic objects for typedefs.

CUnionInfo * Puma::CSemDatabase::UnionInfo ( unsigned  n) const [inline]

Get the n-th semantic object for unions.

Parameters:
nThe index of the object.
Returns:
The object or NULL if n is invalid.
unsigned Puma::CSemDatabase::UnionInfos ( ) const [inline]

Get the number of semantic objects for unions.