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

#include <IncludeStatement.h>

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

Public Types

enum class  IncludeKeyword { INCLUDE , INCLUDE_ONCE }
 
enum class  IncludeType { STATIC , DYNAMIC }
 
enum class  PathType { ANGLEBRACKET , QUOTED }
 

Public Member Functions

constexpr AST::NodeType getType () const override
 
const AST::Token< IncludeKeyword > & KEYWORD () const
 
void setKeyword (const AST::Token< IncludeKeyword > &keyword)
 
const AST::Token< IncludeType > & TYPE () const
 
void setType (const AST::Token< IncludeType > &type)
 
const PathTypePATHTYPE () const
 
void setPathType (const PathType &pathtype)
 
const AST::Token< std::string > & PATH () const
 
void setPath (const AST::Token< std::string > &path)
 
const std::optional< AST::Token< std::string > > & ASPATH () const
 
void setAsPath (const AST::Token< std::string > &aspath)
 
void clearAsPath ()
 
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::IncludeStatement
 

Protected Attributes

AST::Token< IncludeKeywordm_KEYWORD
 
AST::Token< IncludeTypem_TYPE
 
PathType m_PATHTYPE
 
AST::Token< std::string > m_PATH
 
std::optional< AST::Token< std::string > > m_ASPATH
 
- Protected Attributes inherited from AST::ASTNode
std::vector< std::shared_ptr< ASTNode > > children
 
AST::FilePosition position
 
AST::FilePosition end_position
 

Member Enumeration Documentation

◆ IncludeKeyword

Enumerator
INCLUDE 
INCLUDE_ONCE 

◆ IncludeType

Enumerator
STATIC 
DYNAMIC 

◆ PathType

Enumerator
ANGLEBRACKET 
QUOTED 

Member Function Documentation

◆ ASPATH()

const std::optional< AST::Token< std::string > > & AST::IncludeStatement::ASPATH ( ) const
inline

◆ clearAsPath()

void AST::IncludeStatement::clearAsPath ( )
inline

◆ getType()

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

Implements AST::ASTNode.

◆ KEYWORD()

const AST::Token< IncludeKeyword > & AST::IncludeStatement::KEYWORD ( ) const
inline

◆ PATH()

const AST::Token< std::string > & AST::IncludeStatement::PATH ( ) const
inline

◆ PATHTYPE()

const PathType & AST::IncludeStatement::PATHTYPE ( ) const
inline

◆ prettyPrint()

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

Implements AST::ASTNode.

◆ setAsPath()

void AST::IncludeStatement::setAsPath ( const AST::Token< std::string > &  aspath)
inline

◆ setKeyword()

void AST::IncludeStatement::setKeyword ( const AST::Token< IncludeKeyword > &  keyword)
inline

◆ setPath()

void AST::IncludeStatement::setPath ( const AST::Token< std::string > &  path)
inline

◆ setPathType()

void AST::IncludeStatement::setPathType ( const PathType pathtype)
inline

◆ setType()

void AST::IncludeStatement::setType ( const AST::Token< IncludeType > &  type)
inline

◆ TYPE()

const AST::Token< IncludeType > & AST::IncludeStatement::TYPE ( ) const
inline

Member Data Documentation

◆ m_ASPATH

std::optional<AST::Token<std::string> > AST::IncludeStatement::m_ASPATH
protected

◆ m_KEYWORD

AST::Token<IncludeKeyword> AST::IncludeStatement::m_KEYWORD
protected

◆ m_PATH

AST::Token<std::string> AST::IncludeStatement::m_PATH
protected

◆ m_PATHTYPE

PathType AST::IncludeStatement::m_PATHTYPE
protected

◆ m_TYPE

AST::Token<IncludeType> AST::IncludeStatement::m_TYPE
protected

◆ static_type

constexpr AST::NodeType AST::IncludeStatement::static_type = AST::NodeType::IncludeStatement
staticconstexpr

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