Bash++
Bash++ compiler internal documentation
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
AST::ObjectReference Class Reference

#include <ObjectReference.h>

Inheritance diagram for AST::ObjectReference:
Inheritance graph
[legend]
Collaboration diagram for AST::ObjectReference:
Collaboration graph
[legend]

Public Member Functions

constexpr AST::NodeType getType () const override
 
void setIdentifier (const AST::Token< std::string > &identifier)
 
const AST::Token< std::string > & IDENTIFIER () const
 
void addIdentifier (const AST::Token< std::string > &identifier)
 
const std::vector< AST::Token< std::string > > & IDENTIFIERS () const
 
void setHasHashkey (bool has_hashkey)
 
bool hasHashkey () const
 
void setLvalue (bool lvalue)
 
bool isLvalue () const
 
void setSelfReference (bool self_reference)
 
bool isSelfReference () const
 
void setPointerDereference (bool ptr_dereference)
 
bool isPointerDereference () const
 
void setAddressOf (bool address_of)
 
bool isAddressOf () const
 
std::ostream & prettyPrint (std::ostream &os, int indentation_level=0) const override
 
- Public Member Functions inherited from AST::ASTNode
 ASTNode ()=default
 
void addChild (const std::shared_ptr< ASTNode > &child)
 Add a child node to this AST node. This function also:
 
void addChildren (const std::vector< std::shared_ptr< ASTNode > > &childs)
 Add a vector of child nodes to this AST node. This function also:
 
const std::vector< std::shared_ptr< ASTNode > > & getChildren () const
 
void setPosition (const AST::FilePosition &pos)
 
void setPosition (uint32_t line, uint32_t column)
 
const AST::FilePositiongetPosition () const
 
void setEndPosition (const AST::FilePosition &pos)
 
void setEndPosition (uint32_t line, uint32_t column)
 
const AST::FilePositiongetEndPosition () const
 
uint32_t getLine () const
 
uint32_t getCharPositionInLine () const
 
std::shared_ptr< ASTNodegetChildAt (size_t index) const
 
std::shared_ptr< ASTNodegetFirstChild () const
 
std::shared_ptr< ASTNodegetLastChild () const
 
size_t getChildrenCount () const
 
void clear ()
 
void clearChildren ()
 

Static Public Attributes

static constexpr AST::NodeType static_type = AST::NodeType::ObjectReference
 

Protected Attributes

AST::Token< std::string > m_IDENTIFIER
 
std::vector< AST::Token< std::string > > m_IDENTIFIERS
 
bool m_has_hashkey = false
 
bool m_lvalue = false
 
bool m_self_reference = false
 
bool m_ptr_dereference = false
 
bool m_address_of = false
 
- Protected Attributes inherited from AST::ASTNode
std::vector< std::shared_ptr< ASTNode > > children
 
AST::FilePosition position
 
AST::FilePosition end_position
 

Member Function Documentation

◆ addIdentifier()

void AST::ObjectReference::addIdentifier ( const AST::Token< std::string > &  identifier)
inline

◆ getType()

constexpr AST::NodeType AST::ObjectReference::getType ( ) const
inlineconstexproverridevirtual

Implements AST::ASTNode.

◆ hasHashkey()

bool AST::ObjectReference::hasHashkey ( ) const
inline

◆ IDENTIFIER()

const AST::Token< std::string > & AST::ObjectReference::IDENTIFIER ( ) const
inline

◆ IDENTIFIERS()

const std::vector< AST::Token< std::string > > & AST::ObjectReference::IDENTIFIERS ( ) const
inline

◆ isAddressOf()

bool AST::ObjectReference::isAddressOf ( ) const
inline

◆ isLvalue()

bool AST::ObjectReference::isLvalue ( ) const
inline

◆ isPointerDereference()

bool AST::ObjectReference::isPointerDereference ( ) const
inline

◆ isSelfReference()

bool AST::ObjectReference::isSelfReference ( ) const
inline

◆ prettyPrint()

std::ostream & AST::ObjectReference::prettyPrint ( std::ostream &  os,
int  indentation_level = 0 
) const
inlineoverridevirtual

Implements AST::ASTNode.

◆ setAddressOf()

void AST::ObjectReference::setAddressOf ( bool  address_of)
inline

◆ setHasHashkey()

void AST::ObjectReference::setHasHashkey ( bool  has_hashkey)
inline

◆ setIdentifier()

void AST::ObjectReference::setIdentifier ( const AST::Token< std::string > &  identifier)
inline

◆ setLvalue()

void AST::ObjectReference::setLvalue ( bool  lvalue)
inline

◆ setPointerDereference()

void AST::ObjectReference::setPointerDereference ( bool  ptr_dereference)
inline

◆ setSelfReference()

void AST::ObjectReference::setSelfReference ( bool  self_reference)
inline

Member Data Documentation

◆ m_address_of

bool AST::ObjectReference::m_address_of = false
protected

◆ m_has_hashkey

bool AST::ObjectReference::m_has_hashkey = false
protected

◆ m_IDENTIFIER

AST::Token<std::string> AST::ObjectReference::m_IDENTIFIER
protected

◆ m_IDENTIFIERS

std::vector<AST::Token<std::string> > AST::ObjectReference::m_IDENTIFIERS
protected

◆ m_lvalue

bool AST::ObjectReference::m_lvalue = false
protected

◆ m_ptr_dereference

bool AST::ObjectReference::m_ptr_dereference = false
protected

◆ m_self_reference

bool AST::ObjectReference::m_self_reference = false
protected

◆ static_type

constexpr AST::NodeType AST::ObjectReference::static_type = AST::NodeType::ObjectReference
staticconstexpr

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