18#define PRETTYPRINT_INDENTATION_AMOUNT 4
30 std::vector<std::shared_ptr<ASTNode>>
children;
39 void addChild(
const std::shared_ptr<ASTNode>& child);
40 void addChildren(
const std::vector<std::shared_ptr<ASTNode>>& childs);
41 const std::vector<std::shared_ptr<ASTNode>>&
getChildren()
const;
52 std::shared_ptr<ASTNode>
getChildAt(
size_t index)
const;
60 virtual std::ostream&
prettyPrint(std::ostream& os,
int indentation_level = 0)
const = 0;
The base class for all non-terminal nodes in the Bash++ AST. Each ASTNode contains information about ...
Definition ASTNode.h:28
void setEndPosition(const AST::FilePosition &pos)
Definition ASTNode.cpp:88
virtual constexpr AST::NodeType getType() const =0
void clearChildren()
Definition ASTNode.cpp:143
const AST::FilePosition & getPosition() const
Definition ASTNode.cpp:84
AST::FilePosition position
Definition ASTNode.h:31
const std::vector< std::shared_ptr< ASTNode > > & getChildren() const
Definition ASTNode.cpp:71
std::shared_ptr< ASTNode > getLastChild() const
Definition ASTNode.cpp:127
virtual std::ostream & prettyPrint(std::ostream &os, int indentation_level=0) const =0
AST::FilePosition end_position
Definition ASTNode.h:32
void addChildren(const std::vector< std::shared_ptr< ASTNode > > &childs)
Add a vector of child nodes to this AST node. This function also:
Definition ASTNode.cpp:43
std::shared_ptr< ASTNode > getChildAt(size_t index) const
Definition ASTNode.cpp:113
size_t getChildrenCount() const
Definition ASTNode.cpp:134
std::shared_ptr< ASTNode > getFirstChild() const
Definition ASTNode.cpp:120
std::vector< std::shared_ptr< ASTNode > > children
Definition ASTNode.h:30
uint32_t getCharPositionInLine() const
Definition ASTNode.cpp:109
friend std::ostream & operator<<(std::ostream &os, const ASTNode &node)
Definition ASTNode.h:61
void setPosition(const AST::FilePosition &pos)
Definition ASTNode.cpp:75
void clear()
Definition ASTNode.cpp:138
const AST::FilePosition & getEndPosition() const
Definition ASTNode.cpp:97
void addChild(const std::shared_ptr< ASTNode > &child)
Add a child node to this AST node. This function also:
Definition ASTNode.cpp:20
uint32_t getLine() const
Definition ASTNode.cpp:105
Definition AccessModifier.h:8
NodeType
Definition NodeTypes.h:9