Util: Properly detect empty Tokens and multiple root elements
This commit is contained in:
@@ -36,17 +36,18 @@ Value Parser::parse()
|
|||||||
{
|
{
|
||||||
Value result;
|
Value result;
|
||||||
|
|
||||||
Token token;
|
if (m_tokens->size() == 0) {
|
||||||
while (m_index < m_tokens->size()) {
|
m_job->printErrorLine({}, "expecting token, not 'EOF'");
|
||||||
token = peek();
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
Token token = peek();
|
||||||
switch (token.type) {
|
switch (token.type) {
|
||||||
case Token::Type::Literal:
|
case Token::Type::Literal:
|
||||||
result = getLiteral();
|
result = getLiteral();
|
||||||
break;
|
break;
|
||||||
case Token::Type::Number:
|
case Token::Type::Number:
|
||||||
result = getNumber();
|
result = getNumber();
|
||||||
m_index++;
|
|
||||||
break;
|
break;
|
||||||
case Token::Type::String:
|
case Token::Type::String:
|
||||||
result = getString();
|
result = getString();
|
||||||
@@ -70,6 +71,9 @@ Value Parser::parse()
|
|||||||
m_index++;
|
m_index++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (m_index < m_tokens->size()) {
|
||||||
|
m_job->printErrorLine(peek(), "multiple root elements");
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
Reference in New Issue
Block a user