retdec
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
retdec::demangler::borland::NodeArray Class Reference

Node for representation of arrays of nodes. More...

#include <node_array.h>

Inheritance diagram for retdec::demangler::borland::NodeArray:
Inheritance graph
[legend]
Collaboration diagram for retdec::demangler::borland::NodeArray:
Collaboration graph
[legend]

Public Member Functions

void addNode (std::shared_ptr< Node > node)
 Appends new node to array. More...
 
bool empty () const
 
size_t size ()
 
void printLeft (std::ostream &s) const override
 Prints text representaion of array. More...
 
std::shared_ptr< Nodeget (unsigned i) const
 
- Public Member Functions inherited from retdec::demangler::borland::Node
 Node (Kind kind, bool has_right_side=false)
 Abstract constructor for base node. More...
 
virtual ~Node ()=default
 
void print (std::ostream &s) const
 Prints left side of node. More...
 
std::string str () const
 
Kind kind () const
 
virtual void printRight (std::ostream &s) const
 Some nodes need special trailing characters. More...
 
bool hasRight ()
 

Static Public Member Functions

static std::shared_ptr< NodeArraycreate ()
 Creates shared pointer to new NodeArray object. More...
 

Protected Member Functions

 NodeArray ()
 Private constructor for NodeArray. Use create(). More...
 

Protected Attributes

std::vector< std::shared_ptr< Node > > _nodes
 
- Protected Attributes inherited from retdec::demangler::borland::Node
Kind _kind
 
bool _has_right
 

Additional Inherited Members

- Public Types inherited from retdec::demangler::borland::Node
enum class  Kind {
  KFunction , KFunctionType , KName , KNestedName ,
  KNodeArray , KNodeString , KTypeNode , KBuiltInType ,
  KPointerType , KIntegralType , KCharType , KFloatType ,
  KParentheses , KReferenceType , KRReferenceType , KNamedType ,
  KTemplateNode , KArrayNode , KConversionOperator
}
 

Detailed Description

Node for representation of arrays of nodes.

Constructor & Destructor Documentation

◆ NodeArray()

retdec::demangler::borland::NodeArray::NodeArray ( )
protected

Private constructor for NodeArray. Use create().

Member Function Documentation

◆ addNode()

void retdec::demangler::borland::NodeArray::addNode ( std::shared_ptr< Node node)

Appends new node to array.

Parameters
nodeNode to be added.

◆ create()

std::shared_ptr< NodeArray > retdec::demangler::borland::NodeArray::create ( )
static

Creates shared pointer to new NodeArray object.

Returns
Pointer to empty ArrayNode.

◆ empty()

bool retdec::demangler::borland::NodeArray::empty ( ) const
Returns
true if size of nodes is 0, false otherwise.

◆ get()

std::shared_ptr< Node > retdec::demangler::borland::NodeArray::get ( unsigned  i) const
Parameters
iIndex to get.
Returns
Node on index i or nullptr if i is greater than size.

◆ printLeft()

void retdec::demangler::borland::NodeArray::printLeft ( std::ostream &  s) const
overridevirtual

Prints text representaion of array.

Parameters
sOutput stream.

Implements retdec::demangler::borland::Node.

Reimplemented in retdec::demangler::borland::NodeString.

◆ size()

size_t retdec::demangler::borland::NodeArray::size ( )
Returns
Number of nodes in array.

Member Data Documentation

◆ _nodes

std::vector<std::shared_ptr<Node> > retdec::demangler::borland::NodeArray::_nodes
protected

The documentation for this class was generated from the following files: