FunctionDefinition plus use more stuff in the grammar

This commit is contained in:
Markus Hauschild
2013-06-01 02:50:47 +02:00
parent 5c011f3ac4
commit e2dcf5f507
5 changed files with 78 additions and 18 deletions

View File

@@ -4,14 +4,15 @@
#include "AssignmentExpression.h"
#include "BinOp.h"
#include "ConstantExpression.h"
#include "ExpressionStatement.h"
#include "FunctionDefinition.h"
#include "IfStatement.h"
#include "ParameterList.h"
#include "ReturnStatement.h"
#include "Scope.h"
#include "StatementList.h"
#include "ValueList.h"
#include "VariableDefinition.h"
#include "ExpressionStatement.h"
#include "ReturnStatement.h"
class ASTVisitor {
@@ -23,13 +24,14 @@ public:
virtual void visit(BinOp* e) = 0;
virtual void visit(ConstantExpression* e) = 0;
virtual void visit(ExpressionStatement* e) = 0;
virtual void visit(FunctionDefinition* e) = 0;
virtual void visit(IfStatement* e) = 0;
virtual void visit(ParameterList* e) = 0;
virtual void visit(Scope* e) = 0;
virtual void visit(StatementList* e) = 0;
virtual void visit(ReturnStatement* e) = 0;
virtual void visit(Scope* e) = 0;
virtual void visit(StatementList* e) = 0;
virtual void visit(ValueList* e) = 0;
virtual void visit(VariableDefinition* e) = 0;
virtual void visit(ReturnStatement* e) = 0;
};
#endif // ASTVISITOR_H

View File

@@ -0,0 +1,28 @@
#ifndef FUNCTIONDEFINITION_H
#define FUNCTIONDEFINITION_H
#include "AST/ASTElement.h"
#include "AST/ParameterList.h"
#include "AST/StatementList.h"
#include "AST/Type.h"
#include <string>
class FunctionDefinition : public ASTElement {
public:
FunctionDefinition(Type *type, std::string name, ParameterList* params, StatementList* sl);
virtual ~FunctionDefinition();
virtual void accept(ASTVisitor* visitor);
Type* getType();
std::string getName();
ParameterList* getParams();
StatementList* getSl();
private:
Type* type_;
std::string name_;
ParameterList* params_;
StatementList* sl_;
};
#endif // FUNCTIONDEFINITION_H