diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-20 13:11:19 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-20 13:11:19 +0000 |
commit | af8b76d0a83813b3cebac7468db4bd64e534c235 (patch) | |
tree | e387cec775526f4b0eaea5ab333baf0ae5afdb0b /c_compiler/include/expression.hpp | |
parent | b0caad48b1a2c90a03f5d130a50f3fdee1c097a5 (diff) | |
download | Compiler-af8b76d0a83813b3cebac7468db4bd64e534c235.tar.gz Compiler-af8b76d0a83813b3cebac7468db4bd64e534c235.zip |
global vars work and changing to printf
Diffstat (limited to 'c_compiler/include/expression.hpp')
-rw-r--r-- | c_compiler/include/expression.hpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/c_compiler/include/expression.hpp b/c_compiler/include/expression.hpp index 313d678..1563211 100644 --- a/c_compiler/include/expression.hpp +++ b/c_compiler/include/expression.hpp @@ -22,6 +22,7 @@ private: public: virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const = 0; + virtual int constantFold() const; virtual void print() const; virtual void printXml() const; virtual void countArguments(unsigned& argument_count) const; @@ -46,7 +47,7 @@ public: OperationExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const = 0; - + virtual int constantFold() const; virtual void expressionDepth(unsigned& depth_count) const; void evaluateExpression(VariableStackBindings bindings, unsigned& label_count) const; }; @@ -117,6 +118,7 @@ public: AdditiveExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -129,6 +131,7 @@ public: MultiplicativeExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -140,6 +143,7 @@ public: ShiftExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -151,6 +155,7 @@ public: RelationalExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -162,6 +167,7 @@ public: EqualityExpression(Expression* lhs, const std::string& _operator, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -171,6 +177,7 @@ public: AndExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -180,6 +187,7 @@ public: ExclusiveOrExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -189,6 +197,7 @@ public: InclusiveOrExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -198,6 +207,7 @@ public: LogicalAndExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -207,6 +217,7 @@ public: LogicalOrExpression(Expression* lhs, Expression* rhs); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; @@ -255,6 +266,7 @@ public: Constant(const int32_t& constant); virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const; + virtual int constantFold() const; }; |