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_; +}