PUMA Library Reference Manual
Puma::CT_PrimDeclSpec Class Reference

#include <Puma/CTree.h>

+ Inheritance diagram for Puma::CT_PrimDeclSpec:

Description

Tree node representing a primitive declaration specifier.

Public Types

enum  Type {
  PDS_FRIEND,
  PDS_TYPEDEF,
  PDS_AUTO,
  PDS_REGISTER,
  PDS_STATIC,
  PDS_EXTERN,
  PDS_MUTABLE,
  PDS_INLINE,
  PDS_VIRTUAL,
  PDS_EXPLICIT,
  PDS_CONST,
  PDS_VOLATILE,
  PDS_RESTRICT,
  PDS_CHAR,
  PDS_WCHAR_T,
  PDS_BOOL,
  PDS_C_BOOL,
  PDS_SHORT,
  PDS_INT,
  PDS_LONG,
  PDS_SIGNED,
  PDS_UNSIGNED,
  PDS_FLOAT,
  PDS_DOUBLE,
  PDS_VOID,
  PDS_INT128,
  PDS_THREAD,
  PDS_UNKNOWN_T,
  PDS_CDECL,
  PDS_STDCALL,
  PDS_FASTCALL,
  PDS_INT64,
  PDS_UNKNOWN,
  PDS_NUM
}
 Declaration specifier types. More...
 

Public Member Functions

 CT_PrimDeclSpec (CT_Token *t)
 Constructor. More...
 
 CT_PrimDeclSpec (Type t)
 Constructor. More...
 
const char * NodeName () const
 Get the name of the node. More...
 
int Sons () const
 Get the number of sons. More...
 
CTreeSon (int n) const
 Get the n-th son. More...
 
const char * SpecText () const
 Get the textual representation of the declaration specifier. More...
 
Type SpecType () const
 Get the declaration specifier type. More...
 
void ReplaceSon (CTree *old_son, CTree *new_son)
 Replace a son. More...
 
- Public Member Functions inherited from Puma::CTree
virtual ~CTree ()
 Destructor. More...
 
virtual Tokentoken () const
 Get the first token of the syntactic construct represented by this sub-tree. More...
 
virtual Tokenend_token () const
 Get the last token of the syntactic construct represented by this sub-tree. More...
 
virtual CT_Tokentoken_node () const
 Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree. More...
 
virtual CT_Tokenend_token_node () const
 Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree. More...
 
virtual CTreeParent () const
 Get the parent node. More...
 
virtual CTypeInfoType () const
 Get the semantic type of the node. More...
 
virtual CExprValueValue () const
 Get the calculated value of the expression. More...
 
virtual CSemScopeSemScope () const
 Get the scope opened by the node. More...
 
virtual CSemValueSemValue () const
 Get the semantic value of the node. More...
 
virtual CSemObjectSemObject () const
 Get the semantic information of the node. More...
 
virtual CT_SimpleNameIsSimpleName ()
 Get a pointer to CT_SimpleName if the current node represents a name. More...
 
virtual CT_StringIsString ()
 Get a pointer to CT_String if the current node represents a string. More...
 
virtual CT_DeclaratorIsDeclarator ()
 Get a pointer to CT_Declarator if the current node represents a declarator. More...
 
virtual CT_StatementIsStatement ()
 Get a pointer to CT_Statement if the current node represents a statement. More...
 
virtual CT_ExpressionIsExpression ()
 Get a pointer to CT_Expression if the current node represents a expression. More...
 
virtual CT_DeclIsDeclaration ()
 Get a pointer to CT_Decl if the current node represents a declaration. More...
 
virtual CT_CallIsCall ()
 Get a pointer to CT_Call if the current node represents a call expression. More...
 
virtual CT_ListIsList ()
 Get a pointer to CT_List if the current node represents a list. More...
 
virtual CT_DelayedParseIsDelayedParse ()
 Get a pointer to CT_DelayedParse if the current node represents a delayed code fragment. More...
 
bool HasValueNull () const
 Return true if the tree has the constant value 0. More...
 

Static Public Member Functions

static const char * NodeId ()
 Get the identifier for this node type. More...
 

Static Public Attributes

static const int NumTypes = PDS_NUM
 Number of declaration specifier types. More...
 
- Static Public Attributes inherited from Puma::CTree
static int alloc
 
static int release
 

Additional Inherited Members

- Protected Member Functions inherited from Puma::CT_DeclSpec
 CT_DeclSpec ()
 Constructor. More...
 
- Protected Member Functions inherited from Puma::CTree
CTreeSon (CTree *const *sons, int len, int n) const
 Get the n-th son from given sons array. More...
 
int Sons (CTree *const *sons, int len) const
 Get the number of sons in the given sons array. More...
 
void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son)
 Replace a son. More...
 
void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son)
 Replace a son if it equals the given son. More...
 
void AddSon (CTree *&son, CTree *new_son)
 Add a new son. More...
 
void SetParent (const CTree *parent)
 Set the parent tree node. More...
 
void SetParent (CTree *node, const CTree *parent)
 Set the parent tree node of the given tree node. More...
 
 CTree ()
 Default constructor. More...
 

Member Enumeration Documentation

◆ Type

Declaration specifier types.

Enumerator
PDS_FRIEND 
PDS_TYPEDEF 

friend

PDS_AUTO 

typedef

PDS_REGISTER 

auto

PDS_STATIC 

register

PDS_EXTERN 

static

PDS_MUTABLE 

extern

PDS_INLINE 

mutable

PDS_VIRTUAL 

inline

PDS_EXPLICIT 

virtual

PDS_CONST 

explicit

PDS_VOLATILE 

const

PDS_RESTRICT 

volatile

PDS_CHAR 

restrict

PDS_WCHAR_T 

char

PDS_BOOL 

wchar_t

PDS_C_BOOL 

bool

PDS_SHORT 

_Bool

PDS_INT 

short

PDS_LONG 

int

PDS_SIGNED 

long

PDS_UNSIGNED 

signed

PDS_FLOAT 

unsigned

PDS_DOUBLE 

float

PDS_VOID 

double

PDS_INT128 

void

PDS_THREAD 

__int128

PDS_UNKNOWN_T 

__thread

PDS_CDECL 

unknown_t

PDS_STDCALL 

__cdecl

PDS_FASTCALL 

__stdcall

PDS_INT64 

__fastcall

PDS_UNKNOWN 

__int64

PDS_NUM 

Unknown declaration specifier.

Number of declaration specifier types.

Constructor & Destructor Documentation

◆ CT_PrimDeclSpec() [1/2]

Puma::CT_PrimDeclSpec::CT_PrimDeclSpec ( CT_Token t)
inline

Constructor.

Parameters
tThe token containing the declaration specifier.

◆ CT_PrimDeclSpec() [2/2]

Puma::CT_PrimDeclSpec::CT_PrimDeclSpec ( Type  t)
inline

Constructor.

Parameters
tThe declaration specifier type.

Member Function Documentation

◆ NodeId()

static const char* Puma::CT_PrimDeclSpec::NodeId ( )
static

Get the identifier for this node type.

Can be compared with NodeName().

◆ NodeName()

const char* Puma::CT_PrimDeclSpec::NodeName ( ) const
inlinevirtual

Get the name of the node.

Can be compared with NodeId().

Implements Puma::CTree.

◆ ReplaceSon()

void Puma::CT_PrimDeclSpec::ReplaceSon ( CTree old_son,
CTree new_son 
)
inlinevirtual

Replace a son.

Parameters
old_sonThe son to replace.
new_sonThe new son.

Reimplemented from Puma::CTree.

◆ Son()

CTree* Puma::CT_PrimDeclSpec::Son ( int  n) const
inlinevirtual

Get the n-th son.

Parameters
nThe index of the son.
Returns
The n-th son or NULL.

Reimplemented from Puma::CTree.

◆ Sons()

int Puma::CT_PrimDeclSpec::Sons ( ) const
inlinevirtual

Get the number of sons.

Implements Puma::CTree.

◆ SpecText()

const char* Puma::CT_PrimDeclSpec::SpecText ( ) const
inline

Get the textual representation of the declaration specifier.

Returns
The string representation or " ".

◆ SpecType()

Type Puma::CT_PrimDeclSpec::SpecType ( ) const
inline

Get the declaration specifier type.

Member Data Documentation

◆ NumTypes

const int Puma::CT_PrimDeclSpec::NumTypes = PDS_NUM
static

Number of declaration specifier types.