Fixes empty script returning segmentation fault

This commit is contained in:
2019-09-14 10:35:32 +02:00
parent 45d3bc690b
commit b462c1b873
3 changed files with 69 additions and 50 deletions

View File

@@ -16,7 +16,11 @@ namespace Porygon::Parser {
}
statements.push_back(this->ParseStatement(next));
}
return new ParsedScriptStatement(statements);
auto end = 0;
if (statements.size() > 0){
end = statements.back()->GetEndPosition();
}
return new ParsedScriptStatement(statements, 0, end);
}
inline const Token *Parser::Peek() {
@@ -123,7 +127,11 @@ namespace Porygon::Parser {
if (statements.empty()) {
return new ParsedBlockStatement(statements, start);
}
return new ParsedBlockStatement(statements);
auto end = 0;
if (statements.size() > 0){
end = statements.back()->GetEndPosition();
}
return new ParsedBlockStatement(statements, start, end - start);
}
ParsedStatement *Parser::ParseFunctionDeclaration(const Token *current) {