BinOp -> BinOpExpression

This commit is contained in:
2013-06-01 03:18:46 +02:00
parent ec77b23a11
commit 0db0e3a14c
6 changed files with 39 additions and 39 deletions

View File

@@ -61,7 +61,7 @@ SET(SCULLY_SOURCE
src/AST/ASTElement.cpp src/AST/ASTElement.cpp
src/AST/ASTVisitor.cpp src/AST/ASTVisitor.cpp
src/AST/AssignmentExpression.cpp src/AST/AssignmentExpression.cpp
src/AST/BinOp.cpp src/AST/BinOpExpression.cpp
src/AST/ConstantExpression.cpp src/AST/ConstantExpression.cpp
src/AST/Expression.cpp src/AST/Expression.cpp
src/AST/ExpressionStatement.cpp src/AST/ExpressionStatement.cpp

View File

@@ -9,7 +9,7 @@
#include "AST/ASTElement.h" #include "AST/ASTElement.h"
#include "AST/AssignmentExpression.h" #include "AST/AssignmentExpression.h"
#include "AST/BinOp.h" #include "AST/BinOpExpression.h"
#include "AST/ConstantExpression.h" #include "AST/ConstantExpression.h"
#include "AST/Expression.h" #include "AST/Expression.h"
#include "AST/ExpressionStatement.h" #include "AST/ExpressionStatement.h"
@@ -89,12 +89,12 @@ statements(A) ::= statements(B) statement(C). { B->addStatement(C); A = B; }
%type expr {Expression*} %type expr {Expression*}
expr(A) ::= T_IDENTIFIER(ID) T_ASSIGN expr(E). { A = new AssignmentExpression(ID->getText(), E); } expr(A) ::= T_IDENTIFIER(ID) T_ASSIGN expr(E). { A = new AssignmentExpression(ID->getText(), E); }
expr(A) ::= expr(B) T_EQUALS expr(C). { A = new BinOp(B, "==", C); } expr(A) ::= expr(B) T_EQUALS expr(C). { A = new BinOpExpression(B, "==", C); }
expr(A) ::= expr(B) T_LESS expr(C). { A = new BinOp(B, "<", C); } expr(A) ::= expr(B) T_LESS expr(C). { A = new BinOpExpression(B, "<", C); }
expr(A) ::= expr(B) T_PLUS expr(C). { A = new BinOp(B, "+", C); } expr(A) ::= expr(B) T_PLUS expr(C). { A = new BinOpExpression(B, "+", C); }
expr(A) ::= expr(B) T_MINUS expr(C). { A = new BinOp(B, "-", C); } expr(A) ::= expr(B) T_MINUS expr(C). { A = new BinOpExpression(B, "-", C); }
expr(A) ::= expr(B) T_TIMES expr(C). { A = new BinOp(B, "*", C); } expr(A) ::= expr(B) T_TIMES expr(C). { A = new BinOpExpression(B, "*", C); }
expr(A) ::= expr(B) T_DIV expr(C). { A = new BinOp(B, "/", C); } expr(A) ::= expr(B) T_DIV expr(C). { A = new BinOpExpression(B, "/", C); }
expr(A) ::= T_CINT(I). { A = new ConstantExpression(I->getText()); } expr(A) ::= T_CINT(I). { A = new ConstantExpression(I->getText()); }
expr(A) ::= T_TRUE. { A = new ConstantExpression("true"); } expr(A) ::= T_TRUE. { A = new ConstantExpression("true"); }
expr(A) ::= T_FALSE. { A = new ConstantExpression("false"); } expr(A) ::= T_FALSE. { A = new ConstantExpression("false"); }

View File

@@ -2,7 +2,7 @@
#define ASTVISITOR_H #define ASTVISITOR_H
#include "AssignmentExpression.h" #include "AssignmentExpression.h"
#include "BinOp.h" #include "BinOpExpression.h"
#include "ConstantExpression.h" #include "ConstantExpression.h"
#include "ExpressionStatement.h" #include "ExpressionStatement.h"
#include "ForStatement.h" #include "ForStatement.h"
@@ -24,7 +24,7 @@ public:
virtual ~ASTVisitor(); virtual ~ASTVisitor();
virtual void visit(AssignmentExpression* e) = 0; virtual void visit(AssignmentExpression* e) = 0;
virtual void visit(BinOp* e) = 0; virtual void visit(BinOpExpression* e) = 0;
virtual void visit(ConstantExpression* e) = 0; virtual void visit(ConstantExpression* e) = 0;
virtual void visit(ExpressionStatement* e) = 0; virtual void visit(ExpressionStatement* e) = 0;
virtual void visit(ForStatement* e) = 0; virtual void visit(ForStatement* e) = 0;

View File

@@ -4,10 +4,10 @@
#include <string> #include <string>
#include "AST/Expression.h" #include "AST/Expression.h"
class BinOp : public Expression { class BinOpExpression : public Expression {
public: public:
BinOp(Expression* leftExp ,std::string op, Expression* rightExp); BinOpExpression(Expression* leftExp ,std::string op, Expression* rightExp);
virtual ~BinOp(); virtual ~BinOpExpression();
std::string getOp(); std::string getOp();
Expression* getLeftExp(); Expression* getLeftExp();

View File

@@ -1,26 +0,0 @@
#include "AST/BinOp.h"
#include "AST/ASTVisitor.h"
BinOp::BinOp(Expression *leftExp, std::string op, Expression *rightExp) :
leftExp_(leftExp), op_(op), rightExp_(rightExp) {
}
BinOp::~BinOp() {
//
}
std::string BinOp::getOp() {
return op_;
}
Expression* BinOp::getLeftExp() {
return leftExp_;
}
Expression* BinOp::getRightExp() {
return rightExp_;
}
void BinOp::accept(ASTVisitor* visitor) {
visitor->visit(this);
}

View File

@@ -0,0 +1,26 @@
#include "AST/BinOpExpression.h"
#include "AST/ASTVisitor.h"
BinOpExpression::BinOpExpression(Expression *leftExp, std::string op, Expression *rightExp) :
leftExp_(leftExp), op_(op), rightExp_(rightExp) {
}
BinOpExpression::~BinOpExpression() {
//
}
std::string BinOpExpression::getOp() {
return op_;
}
Expression* BinOpExpression::getLeftExp() {
return leftExp_;
}
Expression* BinOpExpression::getRightExp() {
return rightExp_;
}
void BinOpExpression::accept(ASTVisitor* visitor) {
visitor->visit(this);
}