diff --git a/src/headers/parsing/ParseComponents.hpp b/src/headers/parsing/ParseComponents.hpp index 9770e0f..d385c1e 100644 --- a/src/headers/parsing/ParseComponents.hpp +++ b/src/headers/parsing/ParseComponents.hpp @@ -11,7 +11,7 @@ class ParseComponent {}; struct ParseTree: public ParseComponent { private: - unsigned int compCount = 0; + mutable unsigned int compCount = 0; protected: vector subComponents; public: @@ -20,6 +20,8 @@ public: void add(const ParseComponent& component) { subComponents.push_back(component); ++compCount; }; void addAll(const vector& components) { for (const auto& comp: components) add(comp); } void operator<<(const ParseComponent& component) { this->add(component); } + explicit ParseTree(const ParseComponent& element): subComponents() { *this << element; } + ParseTree(const initializer_list& elements): subComponents() { addAll(elements); } ParseTree(): subComponents() {}; ~ParseTree() = default; };