FunctionDefinition plus use more stuff in the grammar
This commit is contained in:
@@ -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
|
||||
|
||||
28
inc/AST/FunctionDefinition.h
Normal file
28
inc/AST/FunctionDefinition.h
Normal 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
|
||||
Reference in New Issue
Block a user