PUMA Library Reference Manual
Loading...
Searching...
No Matches
Puma::CT_TypeTraitExpr Class Reference

#include <Puma/CTree.h>

+ Inheritance diagram for Puma::CT_TypeTraitExpr:

Description

Tree node representing an type trait expression.

Example:

__is_enum(E)

Public Member Functions

 CT_TypeTraitExpr (CTree *k, CTree *o, CTree *t, CTree *c)
 Constructor.
 
 CT_TypeTraitExpr (CTree *k, CTree *o, CTree *t1, CTree *cc, CTree *t2, CTree *c)
 Constructor.
 
const char * NodeName () const
 Get the name of the node.
 
int Sons () const
 Get the number of sons.
 
CTree * Son (int n) const
 Get the n-th son.
 
void ReplaceSon (CTree *old_son, CTree *new_son)
 Replace a son.
 
int Operator () const
 Get the type trait operator.
 
CT_NamedType * FirstType () const
 Get the first type.
 
CT_NamedType * SecondType () const
 Get the second type.
 
- Public Member Functions inherited from Puma::CT_Expression
 CT_Expression ()
 Constructor.
 
CTypeInfo * Type () const
 Get the type of the expression.
 
CExprValue * Value () const
 Get the value of the expression.
 
CSemValue * SemValue () const
 Get the semantic value information of the expression.
 
virtual CT_Expression * IsExpression ()
 Get this.
 
- Public Member Functions inherited from Puma::CTree
virtual ~CTree ()
 Destructor.
 
virtual Token * token () const
 Get the first token of the syntactic construct represented by this sub-tree.
 
virtual Token * end_token () const
 Get the last token of the syntactic construct represented by this sub-tree.
 
virtual CT_Token * token_node () const
 Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree.
 
virtual CT_Token * end_token_node () const
 Get the CT_Token node of the last token of the syntactic construct represented by this sub-tree.
 
virtual CTree * Parent () const
 Get the parent node.
 
virtual CSemScope * SemScope () const
 Get the scope opened by the node.
 
virtual CSemObject * SemObject () const
 Get the semantic information of the node.
 
virtual CT_SimpleName * IsSimpleName ()
 Get a pointer to CT_SimpleName if the current node represents a name.
 
virtual CT_String * IsString ()
 Get a pointer to CT_String if the current node represents a string.
 
virtual CT_Declarator * IsDeclarator ()
 Get a pointer to CT_Declarator if the current node represents a declarator.
 
virtual CT_Statement * IsStatement ()
 Get a pointer to CT_Statement if the current node represents a statement.
 
virtual CT_Decl * IsDeclaration ()
 Get a pointer to CT_Decl if the current node represents a declaration.
 
virtual CT_Call * IsCall ()
 Get a pointer to CT_Call if the current node represents a call expression.
 
virtual CT_List * IsList ()
 Get a pointer to CT_List if the current node represents a list.
 
virtual CT_DelayedParse * IsDelayedParse ()
 Get a pointer to CT_DelayedParse if the current node represents a delayed code fragment.
 
bool HasValueNull () const
 Return true if the tree has the constant value 0.
 
- Public Member Functions inherited from Puma::CSemValue
 CSemValue ()
 Constructor.
 
virtual ~CSemValue ()
 Destructor.
 
void setValue (CExprValue *v)
 Set the semantic value information object.
 
void setValueRef (CExprValue *v)
 Set the semantic value information object as reference.
 
void setType (CTypeInfo *t)
 Set the type information object.
 
void setTypeRef (CTypeInfo *t)
 Set the type information object as reference.
 
CExprValue * getValue ()
 Get the semantic information about the value.
 
CTypeInfo * getType ()
 Get the type of the value.
 

Static Public Member Functions

static const char * NodeId ()
 Get the identifier for this node type.
 
- Static Public Member Functions inherited from Puma::CT_Expression
static const char * NodeId ()
 Get the identifier for this node type.
 

Additional Inherited Members

- Static Public Attributes inherited from Puma::CTree
static int alloc
 
static int release
 
- Protected Member Functions inherited from Puma::CTree
CTree * Son (CTree *const *sons, int len, int n) const
 Get the n-th son from given sons array.
 
int Sons (CTree *const *sons, int len) const
 Get the number of sons in the given sons array.
 
void ReplaceSon (CTree **sons, int len, CTree *old_son, CTree *new_son)
 Replace a son.
 
void ReplaceSon (CTree *&son, CTree *old_son, CTree *new_son)
 Replace a son if it equals the given son.
 
void AddSon (CTree *&son, CTree *new_son)
 Add a new son.
 
void SetParent (const CTree *parent)
 Set the parent tree node.
 
void SetParent (CTree *node, const CTree *parent)
 Set the parent tree node of the given tree node.
 
 CTree ()
 Default constructor.
 
- Protected Attributes inherited from Puma::CSemValue
CExprValue * value
 The semantic value information object.
 
CTypeInfo * type
 The type information object.
 

Constructor & Destructor Documentation

◆ CT_TypeTraitExpr() [1/2]

Puma::CT_TypeTraitExpr::CT_TypeTraitExpr ( CTree *  k,
CTree *  o,
CTree *  t,
CTree *  c 
)
inline

Constructor.

Parameters
kThe type trait keyword.
oLeft parenthesis around the type name.
tThe type from which to get the trait.
cRight parenthesis around the type name.

◆ CT_TypeTraitExpr() [2/2]

Puma::CT_TypeTraitExpr::CT_TypeTraitExpr ( CTree *  k,
CTree *  o,
CTree *  t1,
CTree *  cc,
CTree *  t2,
CTree *  c 
)
inline

Constructor.

Parameters
kThe type trait keyword.
oLeft parenthesis around the type name.
t1The first type from which to get the trait.
ccThe comma between the types.
t2The second type from which to get the trait.
cRight parenthesis around the type name.

Member Function Documentation

◆ FirstType()

CT_NamedType * Puma::CT_TypeTraitExpr::FirstType ( ) const
inline

Get the first type.

◆ NodeId()

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

Get the identifier for this node type.

Can be compared with NodeName().

◆ NodeName()

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

Get the name of the node.

Can be compared with NodeId().

Reimplemented from Puma::CT_Expression.

◆ Operator()

int Puma::CT_TypeTraitExpr::Operator ( ) const
inline

Get the type trait operator.

◆ ReplaceSon()

void Puma::CT_TypeTraitExpr::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.

◆ SecondType()

CT_NamedType * Puma::CT_TypeTraitExpr::SecondType ( ) const
inline

Get the second type.

◆ Son()

CTree * Puma::CT_TypeTraitExpr::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_TypeTraitExpr::Sons ( ) const
inlinevirtual

Get the number of sons.

Reimplemented from Puma::CT_Expression.