diff options
Diffstat (limited to 'c_compiler/include/expression.hpp')
-rw-r--r-- | c_compiler/include/expression.hpp | 43 |
1 files changed, 23 insertions, 20 deletions
diff --git a/c_compiler/include/expression.hpp b/c_compiler/include/expression.hpp index a4939a9..ae186d1 100644 --- a/c_compiler/include/expression.hpp +++ b/c_compiler/include/expression.hpp @@ -2,8 +2,11 @@ #define AST_EXPRESSION_HPP #include "node.hpp" +#include "bindings.hpp" +#include <cstdint> #include <memory> +#include <string> class Expression; @@ -13,79 +16,79 @@ typedef std::shared_ptr<Expression> ExpressionPtr; class Expression : public Node { public: - virtual VariableStackBindings printasm(VariableStackBindings bindings) const = 0; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const = 0; virtual void print() const; - virtual void printxml() const; - virtual int32_t getPostfixStackPosition(VariableStackBindings bindings) const; + virtual void printXml() const; + virtual int postfixStackPosition(VariableStackBindings bindings) const; }; class OperationExpression : public Expression { protected: - ExpressionPtr lhs; - ExpressionPtr rhs; + ExpressionPtr lhs_; + ExpressionPtr rhs_; public: - OperationExpression(Expression* _lhs, Expression* _rhs); + OperationExpression(Expression* lhs, Expression* rhs); - virtual VariableStackBindings printasm(VariableStackBindings bindings) const = 0; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const = 0; }; class AssignmentExpression : public OperationExpression { public: - AssignmentExpression(Expression* _lhs, Expression* _rhs); + AssignmentExpression(Expression* lhs, Expression* rhs); - virtual VariableStackBindings printasm(VariableStackBindings bindings) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; }; class AdditiveExpression : public OperationExpression { private: - std::string operation; + std::string operation_; public: - AdditiveExpression(Expression* _lhs, const std::string& _operation, Expression* _rhs); + AdditiveExpression(Expression* lhs, const std::string& operation, Expression* rhs); - virtual VariableStackBindings printasm(VariableStackBindings bindings) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; }; class MultiplicativeExpression : public OperationExpression { private: - std::string operation; + std::string operation_; public: - MultiplicativeExpression(Expression* _lhs, const std::string& _operation, Expression* _rhs); + MultiplicativeExpression(Expression* lhs, const std::string& operation, Expression* rhs); - virtual VariableStackBindings printasm(VariableStackBindings bindings) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; }; class Identifier : public Expression { private: - std::string m_id; + std::string id_; public: Identifier(const std::string& id); - virtual VariableStackBindings printasm(VariableStackBindings bindings) const; - virtual int32_t getPostfixStackPosition(VariableStackBindings bindings) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; + virtual int postfixStackPosition(VariableStackBindings bindings) const; }; class Constant : public Expression { private: - int32_t m_constant; + int32_t constant_; public: Constant(const int32_t& constant); - virtual VariableStackBindings printasm(VariableStackBindings bindings) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; }; |