diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-22 16:53:48 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-22 16:53:48 +0000 |
commit | 561b76bdebd584d03d4e451375777651a9d74017 (patch) | |
tree | fdab95e056a212a26b65a96ae2af894e8f42b82e /c_compiler/include | |
parent | f12ccd62ecf08774ce599a2e15d9042500d2760a (diff) | |
download | Compiler-561b76bdebd584d03d4e451375777651a9d74017.tar.gz Compiler-561b76bdebd584d03d4e451375777651a9d74017.zip |
Have to work on case
Diffstat (limited to 'c_compiler/include')
-rw-r--r-- | c_compiler/include/expression.hpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/c_compiler/include/expression.hpp b/c_compiler/include/expression.hpp index 21e5880..1377a22 100644 --- a/c_compiler/include/expression.hpp +++ b/c_compiler/include/expression.hpp @@ -30,6 +30,8 @@ public: virtual int postfixStackPosition(VariableStackBindings bindings) const; virtual void setPostfixExpression(Expression* postfix_expression); virtual std::string id() const; + virtual ExpressionPtr getLhs() const; + virtual ExpressionPtr getRhs() const; void linkExpression(Expression* next_expression); ExpressionPtr nextExpression() const; @@ -43,11 +45,14 @@ protected: ExpressionPtr rhs_; public: OperationExpression(Expression* lhs, Expression* rhs); + OperationExpression(ExpressionPtr lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const = 0; virtual int constantFold() const; virtual void expressionDepth(unsigned& depth_count) const; + virtual ExpressionPtr getLhs() const; + virtual ExpressionPtr getRhs() const; void evaluateExpression(VariableStackBindings bindings, unsigned& label_count) const; }; @@ -248,6 +253,7 @@ class AssignmentExpression : public OperationExpression { public: AssignmentExpression(Expression* lhs, Expression* rhs); + AssignmentExpression(ExpressionPtr lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; }; |