![]() |
eRPC Generator (erpcgen)
Rev. 1.9.0
NXP Semiconductors
|
Homogeneous AST node class. More...
#include <AstNode.h>
Public Types | |
| typedef std::map< std::string, Value * > | attribute_map_t |
| typedef std::vector< AstNode * > | child_list_t |
| typedef child_list_t::iterator | iterator |
| typedef child_list_t::const_iterator | const_iterator |
Public Member Functions | |
| AstNode (const Token &token) | |
| This function is constructor of AstNode class. More... | |
| AstNode (Token &token, AstNode *parent) | |
| This function is constructor of AstNode class. More... | |
| AstNode (const AstNode &other) | |
| This function is copy constructor of AstNode class. More... | |
| AstNode & | operator= (const AstNode &other) |
| Assignment operator. More... | |
| virtual | ~AstNode () |
| This function is destructor of AstNode class. More... | |
| virtual AstNode * | clone () const |
| This function returns an exact duplicate of this object. More... | |
| virtual std::string | nodeName () const |
| This function returns name of this node. More... | |
| std::string | getDescription () const |
| This function returns string description of the node. More... | |
Token | |
| Token & | getToken () |
| This function returns token of this node. More... | |
| const Token & | getToken () const |
| This function returns constant token of this node. More... | |
| void | setToken (Token &token) |
| This function set token to this node. More... | |
| Value * | getTokenValue () |
| This function returns value of token of this node. More... | |
| std::string | getTokenString () |
| This function returns string representation of this node token value. More... | |
Parent | |
| AstNode * | getParent () const |
| This function returns pointer to parent node. More... | |
| void | setParent (AstNode *newParent) |
| This function set parent for this node. More... | |
Attribute | |
| size_t | attributeCount () const |
| This function returns count of node attributes. More... | |
| bool | hasAttribute (const std::string &name) const |
| This function find attribute in AstNode attributes. More... | |
| Value * | getAttribute (const std::string &name) |
| This function return attribute from AstNode attributes. More... | |
| void | setAttribute (const std::string &name, Value *node) |
| This function set attribute in AstNode attributes. More... | |
| void | removeAttribute (const std::string &name) |
| This function remove attribute from AstNode attributes. More... | |
| Value *& | operator[] (const std::string &name) |
| Square brackets. More... | |
Children | |
| void | appendChild (AstNode *node) |
| This function add given node to the end of children list for current AstNode. More... | |
| size_t | childCount () const |
| This function return count of children for current node. More... | |
| AstNode * | getChild (int index) const |
| This function return child node from node children. More... | |
| size_t | getIndexOfChild (AstNode *child) |
| This function return index of searched child node. More... | |
| size_t | getIndex () |
| This function return index of current node in parent's list of children. More... | |
| void | replaceChild (AstNode *original, AstNode *replacement) |
| This function replace child in AstNode tree. More... | |
| void | reverseExpr () |
| This function replace children location in AstNode tree. More... | |
| AstNode *& | operator[] (int index) |
| Square brackets. More... | |
| const AstNode * | operator[] (int index) const |
| Square brackets. More... | |
Child iterators | |
| iterator | begin () |
| iterator | end () |
| const_iterator | begin () const |
| const_iterator | end () const |
Protected Attributes | |
| Token | m_token |
| AstNode * | m_parent |
| attribute_map_t | m_attributes |
| child_list_t | m_children |
Homogeneous AST node class.
This class is meant to represent arbitrary AST nodes. Each node optionally has a Token object associated with it. It has an ordered list of child nodes and a pointer to its parent. Named attribute values can be set on a node. The attribute values are members of the Value class hierarchy of boxed types.
| typedef std::map<std::string, Value *> erpcgen::AstNode::attribute_map_t |
Map type of named attributes.
| typedef std::vector<AstNode *> erpcgen::AstNode::child_list_t |
Vector of AstNode children.
| typedef child_list_t::const_iterator erpcgen::AstNode::const_iterator |
Constant iterator of AstNode children vector.
| typedef child_list_t::iterator erpcgen::AstNode::iterator |
Iterator of AstNode children vector.
|
inline |
This function is constructor of AstNode class.
This function set parent AstNode variable for this object to nullptr and token variable for this object to given token.
| [in] | token | Constant reference to token. |
This function is constructor of AstNode class.
This function set parent AstNode variable for this object to given node and token variable for this object to given token.
| [in] | token | Pointer to given token. |
| [in] | parent | Pointer to given parent node. |
| AstNode::AstNode | ( | const AstNode & | other | ) |
This function is copy constructor of AstNode class.
This function copy data from given node to this object.
| [in] | other | Given node. |
|
virtual |
This function is destructor of AstNode class.
This function also call for children destructors.
| void AstNode::appendChild | ( | AstNode * | node | ) |
This function add given node to the end of children list for current AstNode.
If node is NULL then a NULL pointer is added to the children list. The list node's location is automatically updated after the node is added by a call to updateLocation().
| [in] | node | Child node for current AstNode. |
|
inline |
This function returns count of node attributes.
|
inline |
This function return count of children for current node.
|
inlinevirtual |
This function returns an exact duplicate of this object.
| Value * AstNode::getAttribute | ( | const std::string & | name | ) |
This function return attribute from AstNode attributes.
This function return attribute from giving name in AstNode attributes.
| [in] | name | Name for AstNode attribute. |
|
inline |
This function return child node from node children.
| [in] | index | Index of node child. |
| string AstNode::getDescription | ( | ) | const |
This function returns string description of the node.
| size_t AstNode::getIndex | ( | ) |
This function return index of current node in parent's list of children.
| size_t AstNode::getIndexOfChild | ( | AstNode * | child | ) |
This function return index of searched child node.
| [in] | child | Searched child node for current AstNode. |
| -1 | If child was not found. |
|
inline |
This function returns pointer to parent node.
|
inline |
|
inline |
This function returns constant token of this node.
|
inline |
This function returns string representation of this node token value.
|
inline |
This function returns value of token of this node.
| bool AstNode::hasAttribute | ( | const std::string & | name | ) | const |
This function find attribute in AstNode attributes.
This function find attribute from giving name in AstNode attributes.
| [in] | name | Name for AstNode attribute. |
|
inlinevirtual |
This function returns name of this node.
|
inline |
Square brackets.
This function return node attribute from attributes. Attribute is requested by given attribute name in square brackets.
| [in] | name | Name of searched attribute. |
|
inline |
Square brackets.
This function return node from this node children list. Attribute is requested by given attribute index number in square brackets.
| [in] | index | Index of searched child node. |
|
inline |
Square brackets.
This function return const node from this node children list. Attribute is requested by given attribute index number in square brackets.
| [in] | index | Index of searched child node. |
| void AstNode::removeAttribute | ( | const std::string & | name | ) |
This function remove attribute from AstNode attributes.
This function remove attribute from giving name in AstNode attributes.
| [in] | name | Name for AstNode attribute. |
This function replace child in AstNode tree.
This function replace original AstNode child with replacement.
| void AstNode::reverseExpr | ( | ) |
This function replace children location in AstNode tree.
This function move top of array AstNode node in AstNode tree to bottom of tree.
| void AstNode::setAttribute | ( | const std::string & | name, |
| Value * | node | ||
| ) |
This function set attribute in AstNode attributes.
This function set attribute for giving name and node in AstNode attributes.
|
inline |
This function set parent for this node.
| [in] | newParent | Pointer to given parent node. |
|
inline |
This function set token to this node.
| [in] | token | Pointer to given token. |
|
protected |
Map of named attributes.
|
protected |
Ordered list of children of this node.
|
protected |
Pointer to parent node of this object. May be NULL.
|
protected |
The token associated with this node.