diff options
Diffstat (limited to 'c_compiler/include/expression.hpp')
-rw-r--r-- | c_compiler/include/expression.hpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/c_compiler/include/expression.hpp b/c_compiler/include/expression.hpp index 19d2c4f..9a22ce7 100644 --- a/c_compiler/include/expression.hpp +++ b/c_compiler/include/expression.hpp @@ -45,6 +45,8 @@ public: OperationExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const = 0; + + void evaluateExpression(VariableStackBindings bindings, unsigned& label_count) const; }; @@ -130,8 +132,10 @@ public: class ShiftExpression : public OperationExpression { +private: + std::string operator_; public: - ShiftExpression(Expression* lhs, Expression* rhs); + ShiftExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; }; @@ -139,8 +143,10 @@ public: class RelationalExpression : public OperationExpression { +private: + std::string operator_; public: - RelationalExpression(Expression* lhs, Expression* rhs); + RelationalExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; }; |