19#define PRETTYPRINT_INDENTATION_AMOUNT 4
31 std::vector<std::shared_ptr<ASTNode>>
children;
40 void addChild(
const std::shared_ptr<ASTNode>& child);
41 void addChildren(
const std::vector<std::shared_ptr<ASTNode>>& childs);
42 const std::vector<std::shared_ptr<ASTNode>>&
getChildren()
const;
53 std::shared_ptr<ASTNode>
getChildAt(
size_t index)
const;
61 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:29
void setEndPosition(const AST::FilePosition &pos)
Definition ASTNode.cpp:89
virtual constexpr AST::NodeType getType() const =0
void clearChildren()
Definition ASTNode.cpp:144
const AST::FilePosition & getPosition() const
Definition ASTNode.cpp:85
AST::FilePosition position
Definition ASTNode.h:32
const std::vector< std::shared_ptr< ASTNode > > & getChildren() const
Definition ASTNode.cpp:72
std::shared_ptr< ASTNode > getLastChild() const
Definition ASTNode.cpp:128
virtual std::ostream & prettyPrint(std::ostream &os, int indentation_level=0) const =0
AST::FilePosition end_position
Definition ASTNode.h:33
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:44
std::shared_ptr< ASTNode > getChildAt(size_t index) const
Definition ASTNode.cpp:114
size_t getChildrenCount() const
Definition ASTNode.cpp:135
std::shared_ptr< ASTNode > getFirstChild() const
Definition ASTNode.cpp:121
std::vector< std::shared_ptr< ASTNode > > children
Definition ASTNode.h:31
uint32_t getCharPositionInLine() const
Definition ASTNode.cpp:110
friend std::ostream & operator<<(std::ostream &os, const ASTNode &node)
Definition ASTNode.h:62
void setPosition(const AST::FilePosition &pos)
Definition ASTNode.cpp:76
void clear()
Definition ASTNode.cpp:139
const AST::FilePosition & getEndPosition() const
Definition ASTNode.cpp:98
void addChild(const std::shared_ptr< ASTNode > &child)
Add a child node to this AST node. This function also:
Definition ASTNode.cpp:21
uint32_t getLine() const
Definition ASTNode.cpp:106
Definition AccessModifier.h:9
NodeType
Definition NodeTypes.h:10