diff options
Diffstat (limited to 'src/nodes.h')
-rw-r--r-- | src/nodes.h | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/nodes.h b/src/nodes.h index 9559722..95bf772 100644 --- a/src/nodes.h +++ b/src/nodes.h @@ -13,11 +13,10 @@ class Node { public: virtual ~Node() {}; - virtual double solve() const = 0; - virtual std::string print() const = 0; - - Node* leftChild; - Node* rightChild; + virtual double solve() const = 0; + virtual std::string print() const = 0; + virtual bool hasChildren() const; + virtual bool isParentOf(Node*const) const; }; @@ -25,15 +24,21 @@ class OperatorNode: public Node { public: explicit OperatorNode(TokenType); - TokenType token() const; + virtual double solve() const; + virtual std::string print() const; + virtual bool hasChildren() const; + virtual bool isParentOf(Node*const) const; - virtual double solve() const; - virtual std::string print() const; + TokenType token() const; + void setChildren(Node*const, Node*const); private: const TokenType operator_; + Node* right_; + Node* left_; + }; class OperandNode: public Node { |