PUMA Library Reference Manual
Puma::CT_OperatorName Class Reference

#include <Puma/CTree.h>

+ Inheritance diagram for Puma::CT_OperatorName:

Description

Tree node representing the name of an overloaded operator.

Example:

operator==

Public Types

enum  {
  FCT_CALL = -100 ,
  SUBSCRIPT ,
  NEW_ARRAY ,
  DEL_ARRAY
}
 Complex operator types. More...
 
- Public Types inherited from Puma::CT_List
enum  {
  OPEN = 1 ,
  CLOSE = 2 ,
  OPEN_CLOSE = 3 ,
  SEPARATORS = 4 ,
  FORCE_EMPTY = 8 ,
  END_SEP = 16 ,
  NO_LAST_SEP = 32 ,
  INTRO = 64
}
 List properties. More...
 

Public Member Functions

 CT_OperatorName (CTree *op)
 Constructor. More...
 
 CT_OperatorName (CTree *f, CTree *op, CTree *o, CTree *c)
 Constructor. More...
 
const char * NodeName () const
 Get the name of the node. More...
 
int Operator () const
 Get the operator type (either the token type or one of the complex operator types). More...
 
void * operator new (size_t)
 Own new operator reusing memory. More...
 
void operator delete (void *)
 Own delete operator. More...
 
- Public Member Functions inherited from Puma::CT_SpecialName
 ~CT_SpecialName ()
 Destructor. More...
 
const char * Text () const
 Get the string containing the name. More...
 
void Name (const char *n)
 Set the name. More...
 
void * operator new (size_t)
 Own new operator reusing memory. More...
 
void operator delete (void *)
 Own delete operator. More...
 
- Public Member Functions inherited from Puma::CT_SimpleName
 CT_SimpleName (CTree *n)
 Constructor. More...
 
virtual void print (std::ostream &os) const
 Print the name on the given stream. More...
 
virtual CT_SimpleName * Name () const
 Get this. More...
 
CTypeInfo * Type () const
 Get the type of the entity represented by the name. More...
 
CExprValue * Value () const
 Get the value of the entity represented by the name. More...
 
CSemValue * SemValue () const
 Get the sematic value information of the name. More...
 
CSemObject * SemObject () const
 Get the sematic information about the name. More...
 
virtual CT_SimpleName * IsSimpleName ()
 Get this. More...
 
void * operator new (size_t)
 Own new operator reusing memory. More...
 
void operator delete (void *)
 Own delete operator. More...
 
- Public Member Functions inherited from Puma::CT_List
CT_List * IsList ()
 Get a pointer to this CT_List. More...
 
int Entries () const
 Get the number of list entries. More...
 
CTree * Entry (int n) const
 Get the n-th list entry. More...
 
int Sons () const
 Get the number of sons. More...
 
CTree * Son (int n) const
 Get the n-th son. More...
 
int Index (CTree *son)
 Get the index of the given son, or -1 if not found. More...
 
int GetProperties () const
 Get the list properties. More...
 
void AddProperties (int p)
 Add a list property. More...
 
void AddSon (CTree *s)
 Add a son. More...
 
void PrefixSon (CTree *s)
 Prepend a son. More...
 
void InsertSon (CTree *before, CTree *son)
 Insert a son before another son. More...
 
void ReplaceSon (CTree *old_son, CTree *new_son)
 Replace a son. More...
 
void RemoveSon (CTree *son)
 Remove a son. More...
 
void InsertSon (int idx, CTree *s)
 Insert a son at the given index. More...
 
void ReplaceSon (int idx, CTree *s)
 Replace the son at the given index. More...
 
void RemoveSon (int idx)
 Remove the son at the given index. More...
 
- Public Member Functions inherited from Puma::CTree
virtual ~CTree ()
 Destructor. More...
 
virtual Token * token () const
 Get the first token of the syntactic construct represented by this sub-tree. More...
 
virtual Token * end_token () const
 Get the last token of the syntactic construct represented by this sub-tree. More...
 
virtual CT_Token * token_node () const
 Get the CT_Token node of the first token of the syntactic construct represented by this sub-tree. More...
 
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. More...
 
virtual CTree * Parent () const
 Get the parent node. More...
 
virtual CSemScope * SemScope () const
 Get the scope opened by the node. More...
 
virtual CT_String * IsString ()
 Get a pointer to CT_String if the current node represents a string. More...
 
virtual CT_Declarator * IsDeclarator ()
 Get a pointer to CT_Declarator if the current node represents a declarator. More...
 
virtual CT_Statement * IsStatement ()
 Get a pointer to CT_Statement if the current node represents a statement. More...
 
virtual CT_Expression * IsExpression ()
 Get a pointer to CT_Expression if the current node represents a expression. More...
 
virtual CT_Decl * IsDeclaration ()
 Get a pointer to CT_Decl if the current node represents a declaration. More...
 
virtual CT_Call * IsCall ()
 Get a pointer to CT_Call if the current node represents a call expression. More...
 
virtual CT_DelayedParse * IsDelayedParse ()
 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...
 
- Public Member Functions inherited from Puma::Printable
virtual ~Printable ()
 Destructor. More...
 
- Public Member Functions inherited from Puma::CSemValue
 CSemValue ()
 Constructor. More...
 
virtual ~CSemValue ()
 Destructor. More...
 
void setValue (CExprValue *v)
 Set the semantic value information object. More...
 
void setValueRef (CExprValue *v)
 Set the semantic value information object as reference. More...
 
void setType (CTypeInfo *t)
 Set the type information object. More...
 
void setTypeRef (CTypeInfo *t)
 Set the type information object as reference. More...
 
CExprValue * getValue ()
 Get the semantic information about the value. More...
 
CTypeInfo * getType ()
 Get the type of the value. More...
 
- Public Member Functions inherited from Puma::CSemObject
 CSemObject ()
 Constructor. More...
 
void Object (CObjectInfo *o)
 Set the semantic information object for the entity. More...
 
CObjectInfo * Object () const
 Get the semantic information object. More...
 

Static Public Member Functions

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

Additional Inherited Members

- Static Public Attributes inherited from Puma::CTree
static int alloc
 
static int release
 
- Protected Member Functions inherited from Puma::CT_SpecialName
 CT_SpecialName (int size=1)
 Constructor. More...
 
- Protected Member Functions inherited from Puma::CT_SimpleName
 CT_SimpleName (int size)
 Constructor. More...
 
 CT_SimpleName (int size, int properties)
 Constructor. More...
 
- Protected Member Functions inherited from Puma::CT_List
 CT_List (int size=5, int incr=5, int props=0)
 Constructor. More...
 
- 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. 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...
 
- Protected Attributes inherited from Puma::CSemValue
CExprValue * value
 The semantic value information object. More...
 
CTypeInfo * type
 The type information object. More...
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Complex operator types.

Enumerator
FCT_CALL 
SUBSCRIPT 

Function call operator, i.e.

().

NEW_ARRAY 

Array subscript operator, i.e.

[].

DEL_ARRAY 

New array operator, i.e.

new[]. Delete array operator, i.e. delete[].

Constructor & Destructor Documentation

◆ CT_OperatorName() [1/2]

Puma::CT_OperatorName::CT_OperatorName ( CTree *  op)

Constructor.

Parameters
opThe token containing the operator.

◆ CT_OperatorName() [2/2]

Puma::CT_OperatorName::CT_OperatorName ( CTree *  f,
CTree *  op,
CTree *  o,
CTree *  c 
)

Constructor.

Parameters
fThe operator function keyword 'operator'.
opThe token containing the operator.
oThe token of '[' or '('.
cThe token of ']' or ')'.

Member Function Documentation

◆ NodeId()

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

Get the identifier for this node type.

Can be compared with NodeName().

◆ NodeName()

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

Get the name of the node.

Can be compared with NodeId().

Reimplemented from Puma::CT_SimpleName.

◆ Operator()

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

Get the operator type (either the token type or one of the complex operator types).

◆ operator delete()

void Puma::CT_OperatorName::operator delete ( void *  )

Own delete operator.

◆ operator new()

void* Puma::CT_OperatorName::operator new ( size_t  )

Own new operator reusing memory.