Merge branch 'master' of git.tuxzone.org:woc2013

Conflicts:
	CMakeLists.txt
	inc/AST/ASTVisitor.h
This commit is contained in:
2013-06-01 02:18:58 +02:00
9 changed files with 151 additions and 51 deletions

View File

@@ -4,9 +4,11 @@
#include "AssignmentExpression.h"
#include "BinOp.h"
#include "ConstantExpression.h"
#include "VariableDefinition.h"
#include "IfStatement.h"
#include "ParameterList.h"
#include "StatementList.h"
#include "ValueList.h"
#include "VariableDefinition.h"
class ASTVisitor {
public:
@@ -16,7 +18,9 @@ public:
virtual void visit(AssignmentExpression* e) = 0;
virtual void visit(BinOp* e) = 0;
virtual void visit(ConstantExpression* e) = 0;
virtual void visit(IfStatement* e) = 0;
virtual void visit(ParameterList* e) = 0;
virtual void visit(ValueList* e) = 0;
virtual void visit(VariableDefinition* e) = 0;
virtual void visit(StatementList* e) = 0;
};

View File

@@ -4,19 +4,18 @@
#include "AST/Expression.h"
#include <string>
class AssignmentExpression : public Expression
{
class AssignmentExpression : public Expression {
public:
AssignmentExpression(std::string id, Expression* expr);
virtual ~AssignmentExpression();
AssignmentExpression(std::string id, Expression* expr);
virtual ~AssignmentExpression();
virtual void accept(ASTVisitor *visitor);
virtual void accept(ASTVisitor *visitor);
std::string getId();
Expression* getExpr();
std::string getId();
Expression* getExpr();
private:
std::string id_;
Expression* expr_;
std::string id_;
Expression* expr_;
};
#endif // ASSIGNMENTEXPRESSION_H

23
inc/AST/IfStatement.h Normal file
View File

@@ -0,0 +1,23 @@
#ifndef IFSTATEMENT_H
#define IFSTATEMENT_H
#include "AST/Expression.h"
#include "AST/Statement.h"
class IfStatement : public Statement
{
public:
IfStatement(Expression* cond, Statement* stmt);
virtual ~IfStatement();
virtual void accept(ASTVisitor *visitor);
Expression* getCond();
Statement* getStmt();
private:
Expression* cond_;
Statement* stmt_;
};
#endif // IFSTATEMENT_H

21
inc/AST/ValueList.h Normal file
View File

@@ -0,0 +1,21 @@
#ifndef VALUELIST_H
#define VALUELIST_H
#include "AST/ASTElement.h"
#include "AST/Expression.h"
#include <vector>
class ValueList : public ASTElement {
public:
ValueList();
~ValueList();
virtual void accept(ASTVisitor* visitor);
void addValue(Expression* expr);
std::vector<Expression*> getValues();
private:
std::vector<Expression*> values_;
};
#endif // VALUELIST_H