Util: Change Parser switch cases to if-else
This commit is contained in:
+30
-28
@@ -45,13 +45,13 @@ Value Parser::parse()
|
||||
switch (token.type) {
|
||||
case Token::Type::Literal:
|
||||
if (token.symbol == "null") {
|
||||
result = Value {};
|
||||
result = nullptr;
|
||||
}
|
||||
else if (token.symbol == "true") {
|
||||
result = Value { true };
|
||||
result = true;
|
||||
}
|
||||
else if (token.symbol == "false") {
|
||||
result = Value { false };
|
||||
result = false;
|
||||
}
|
||||
m_index++;
|
||||
break;
|
||||
@@ -120,8 +120,7 @@ Value Parser::getArray()
|
||||
for (;;) {
|
||||
token = consume();
|
||||
|
||||
switch (token.type) {
|
||||
case Token::Type::Literal:
|
||||
if (token.type == Token::Type::Literal) {
|
||||
printf("Adding literal to array.. v:{%s}, t:{%d}\n", token.symbol.c_str(), (int)token.type);
|
||||
if (token.symbol == "null") {
|
||||
array.emplace_back(nullptr);
|
||||
@@ -132,30 +131,33 @@ Value Parser::getArray()
|
||||
else if (token.symbol == "false") {
|
||||
array.emplace_back(false);
|
||||
}
|
||||
break;
|
||||
case Token::Type::Number:
|
||||
}
|
||||
else if (token.type == Token::Type::Number) {
|
||||
printf("Adding number to array.. v:{%s}, t:{%d} -> %f\n", token.symbol.c_str(), (int)token.type, std::stod(token.symbol));
|
||||
array.emplace_back(std::stod(token.symbol));
|
||||
break;
|
||||
case Token::Type::String:
|
||||
}
|
||||
else if (token.type == Token::Type::String) {
|
||||
printf("Adding string to array.. v:{%s}, t:{%d}\n", token.symbol.c_str(), (int)token.type);
|
||||
array.emplace_back(token.symbol);
|
||||
break;
|
||||
case Token::Type::BracketOpen:
|
||||
}
|
||||
else if (token.type == Token::Type::BracketOpen) {
|
||||
m_index--;
|
||||
array.emplace_back(getArray());
|
||||
break;
|
||||
case Token::Type::BraceOpen:
|
||||
}
|
||||
else if (token.type == Token::Type::BraceOpen) {
|
||||
m_index--;
|
||||
array.emplace_back(getObject());
|
||||
}
|
||||
else if (token.type == Token::Type::BracketClose) {
|
||||
break;
|
||||
default:
|
||||
// Error!
|
||||
printf("Invalid JSON! array:1\n");
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
|
||||
// Find , or }
|
||||
// Find , or ]
|
||||
token = consume();
|
||||
if (token.type == Token::Type::Comma) {
|
||||
continue;
|
||||
@@ -222,9 +224,9 @@ Value Parser::getObject()
|
||||
break;
|
||||
}
|
||||
|
||||
// Add member to object
|
||||
switch (token.type) {
|
||||
case Token::Type::Literal:
|
||||
// Add member (name:value pair) to object
|
||||
token = consume();
|
||||
if (token.type == Token::Type::Literal) {
|
||||
printf("Adding literal to object.. k:{%s}, v:{%s}, t:{%d}\n", key.c_str(), token.symbol.c_str(), (int)token.type);
|
||||
if (token.symbol == "null") {
|
||||
object[key] = nullptr;
|
||||
@@ -235,26 +237,26 @@ Value Parser::getObject()
|
||||
else if (token.symbol == "false") {
|
||||
object[key] = false;
|
||||
}
|
||||
break;
|
||||
case Token::Type::Number:
|
||||
}
|
||||
else if (token.type == Token::Type::Number) {
|
||||
printf("Adding number to object.. k:{%s}, v:{%s}, t:{%d} -> %f\n", key.c_str(), token.symbol.c_str(), (int)token.type, std::stod(token.symbol));
|
||||
object[key] = std::stod(token.symbol);
|
||||
break;
|
||||
case Token::Type::String:
|
||||
}
|
||||
else if (token.type == Token::Type::String) {
|
||||
printf("Adding string to object.. k:{%s}, v:{%s}, t:{%d}\n", key.c_str(), token.symbol.c_str(), (int)token.type);
|
||||
object[key] = token.symbol;
|
||||
break;
|
||||
case Token::Type::BracketOpen:
|
||||
}
|
||||
else if (token.type == Token::Type::BracketOpen) {
|
||||
m_index--;
|
||||
object[key] = getArray();
|
||||
break;
|
||||
case Token::Type::BraceOpen:
|
||||
}
|
||||
else if (token.type == Token::Type::BraceOpen) {
|
||||
m_index--;
|
||||
object[key] = getObject();
|
||||
break;
|
||||
default:
|
||||
// Error!
|
||||
printf("Invalid JSON! 5\n");
|
||||
}
|
||||
else {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user