Changed statement kinds
This commit is contained in:
@@ -29,10 +29,10 @@ shared_ptr<llvm::Module> ModuleBuilder::getModule() {
|
|||||||
|
|
||||||
void ModuleBuilder::buildStatement(shared_ptr<Statement> statement) {
|
void ModuleBuilder::buildStatement(shared_ptr<Statement> statement) {
|
||||||
switch (statement->getKind()) {
|
switch (statement->getKind()) {
|
||||||
case StatementKind::FUNCTION_DECLARATION:
|
case StatementKind::FUNCTION:
|
||||||
buildFunctionDeclaration(dynamic_pointer_cast<StatementFunction>(statement));
|
buildFunctionDeclaration(dynamic_pointer_cast<StatementFunction>(statement));
|
||||||
break;
|
break;
|
||||||
case StatementKind::VAR_DECLARATION:
|
case StatementKind::VARIABLE:
|
||||||
buildVarDeclaration(dynamic_pointer_cast<StatementVariable>(statement));
|
buildVarDeclaration(dynamic_pointer_cast<StatementVariable>(statement));
|
||||||
break;
|
break;
|
||||||
case StatementKind::BLOCK:
|
case StatementKind::BLOCK:
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
#include "Parser/Statement/StatementExpression.h"
|
#include "Parser/Statement/StatementExpression.h"
|
||||||
#include "Parser/Statement/StatementBlock.h"
|
#include "Parser/Statement/StatementBlock.h"
|
||||||
|
#include "Parser/Statement/StatementReturn.h"
|
||||||
#include "Parser/Statement/StatementFunction.h"
|
#include "Parser/Statement/StatementFunction.h"
|
||||||
#include "Parser/Statement/StatementVariable.h"
|
#include "Parser/Statement/StatementVariable.h"
|
||||||
#include "Parser/Statement/StatementReturn.h"
|
|
||||||
#include "Parser/Statement/StatementMetaExternFunction.h"
|
#include "Parser/Statement/StatementMetaExternFunction.h"
|
||||||
#include "Parser/Statement/StatementInvalid.h"
|
#include "Parser/Statement/StatementInvalid.h"
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
#include "Expression.h"
|
#include "Expression.h"
|
||||||
#include "Parser/Statement/Statement.h"
|
#include "Parser/Statement/Statement.h"
|
||||||
|
|
||||||
|
class StatementInvalid;
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
class Parser {
|
class Parser {
|
||||||
|
|||||||
@@ -5,21 +5,14 @@
|
|||||||
|
|
||||||
#include "Types.h"
|
#include "Types.h"
|
||||||
|
|
||||||
class Expression;
|
|
||||||
class Statement;
|
|
||||||
class StatementBlock;
|
|
||||||
class StatementReturn;
|
|
||||||
class StatementExpression;
|
|
||||||
class StatementInvalid;
|
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
enum class StatementKind {
|
enum class StatementKind {
|
||||||
FUNCTION_DECLARATION,
|
EXPRESSION,
|
||||||
VAR_DECLARATION,
|
|
||||||
BLOCK,
|
BLOCK,
|
||||||
RETURN,
|
RETURN,
|
||||||
EXPRESSION,
|
FUNCTION,
|
||||||
|
VARIABLE,
|
||||||
META_EXTERN_FUNCTION,
|
META_EXTERN_FUNCTION,
|
||||||
INVALID
|
INVALID
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
#include "Parser/Statement/Statement.h"
|
#include "Parser/Statement/Statement.h"
|
||||||
|
|
||||||
|
class StatementExpression;
|
||||||
|
|
||||||
class StatementBlock: public Statement {
|
class StatementBlock: public Statement {
|
||||||
private:
|
private:
|
||||||
vector<shared_ptr<Statement>> statements;
|
vector<shared_ptr<Statement>> statements;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ static string valueTypeToString(ValueType valueType) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
StatementFunction::StatementFunction(string name, vector<pair<string, ValueType>> arguments, ValueType returnValueType, shared_ptr<StatementBlock> statementBlock):
|
StatementFunction::StatementFunction(string name, vector<pair<string, ValueType>> arguments, ValueType returnValueType, shared_ptr<StatementBlock> statementBlock):
|
||||||
Statement(StatementKind::FUNCTION_DECLARATION), name(name), arguments(arguments), returnValueType(returnValueType), statementBlock(statementBlock) { }
|
Statement(StatementKind::FUNCTION), name(name), arguments(arguments), returnValueType(returnValueType), statementBlock(statementBlock) { }
|
||||||
|
|
||||||
string StatementFunction::getName() {
|
string StatementFunction::getName() {
|
||||||
return name;
|
return name;
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ static string valueTypeToString(ValueType valueType) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
StatementVariable::StatementVariable(string name, ValueType valueType, shared_ptr<Expression> expression):
|
StatementVariable::StatementVariable(string name, ValueType valueType, shared_ptr<Expression> expression):
|
||||||
Statement(StatementKind::VAR_DECLARATION), name(name), valueType(valueType), expression(expression) { }
|
Statement(StatementKind::VARIABLE), name(name), valueType(valueType), expression(expression) { }
|
||||||
|
|
||||||
string StatementVariable::getName() {
|
string StatementVariable::getName() {
|
||||||
return name;
|
return name;
|
||||||
|
|||||||
Reference in New Issue
Block a user