From c7c2012a626ef0247e955e96e23bd521f1129ebd Mon Sep 17 00:00:00 2001 From: vulder Date: Sat, 1 Jun 2013 01:10:55 +0200 Subject: [PATCH] adding AssignmentExpression --- CMakeLists.txt | 3 ++- inc/AST/ASTVisitor.h | 4 +++- inc/AST/AssignmentExpression.h | 22 ++++++++++++++++++++++ src/AST/AssignmentExpression.cpp | 22 ++++++++++++++++++++++ 4 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 inc/AST/AssignmentExpression.h create mode 100644 src/AST/AssignmentExpression.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index beae58f..6d41fd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,8 @@ SET(SCULLY_SOURCE src/AST/ASTElement.cpp src/AST/ASTVisitor.cpp - src/AST/ConstantExpression.cpp + src/AST/AssignmentExpression.cpp + src/AST/ConstantExpression.cpp src/AST/Expression.cpp src/AST/ParameterList.cpp src/AST/Statement.cpp diff --git a/inc/AST/ASTVisitor.h b/inc/AST/ASTVisitor.h index 00c27b2..efacfd0 100644 --- a/inc/AST/ASTVisitor.h +++ b/inc/AST/ASTVisitor.h @@ -1,6 +1,7 @@ #ifndef ASTVISITOR_H #define ASTVISITOR_H +#include "AssignmentExpression.h" #include "ConstantExpression.h" #include "VariableDefinition.h" #include "ParameterList.h" @@ -10,7 +11,8 @@ public: ASTVisitor(); virtual ~ASTVisitor(); - virtual void visit(ConstantExpression* e) = 0; + virtual void visit(AssignmentExpression* e) = 0; + virtual void visit(ConstantExpression* e) = 0; virtual void visit(ParameterList* e) = 0; virtual void visit(VariableDefinition* e) = 0; }; diff --git a/inc/AST/AssignmentExpression.h b/inc/AST/AssignmentExpression.h new file mode 100644 index 0000000..a910824 --- /dev/null +++ b/inc/AST/AssignmentExpression.h @@ -0,0 +1,22 @@ +#ifndef ASSIGNMENTEXPRESSION_H +#define ASSIGNMENTEXPRESSION_H + +#include "AST/Expression.h" +#include + +class AssignmentExpression : public Expression +{ +public: + AssignmentExpression(std::string id, Expression* expr); + virtual ~AssignmentExpression(); + + virtual void accept(ASTVisitor *visitor); + + std::string getId(); + Expression* getExpr(); +private: + std::string id_; + Expression* expr_; +}; + +#endif // ASSIGNMENTEXPRESSION_H diff --git a/src/AST/AssignmentExpression.cpp b/src/AST/AssignmentExpression.cpp new file mode 100644 index 0000000..4f5f2b8 --- /dev/null +++ b/src/AST/AssignmentExpression.cpp @@ -0,0 +1,22 @@ +#include "AST/AssignmentExpression.h" +#include "AST/ASTVisitor.h" + +AssignmentExpression::AssignmentExpression(std::string id, Expression *expr) +{ + // +} + +AssignmentExpression::~AssignmentExpression() { +} + +void AssignmentExpression::accept(ASTVisitor *visitor) { + visitor->visit(this); +} + +std::string AssignmentExpression::getId() { + return id_; +} + +Expression* AssignmentExpression::getExpr() { + return expr_; +}