Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/miloyip/rapidjson.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Stiles <johnstiles@gmail.com>2017-03-13 17:40:51 +0300
committerJohn Stiles <johnstiles@gmail.com>2017-03-13 17:40:51 +0300
commitbf19c1a0beafa6a118b1c242d16d0c0cfe0296e2 (patch)
treedeea594d64cc924995d46e7b9f4339885a37fc20
parente7fd707698334b17d698be6c741990027e4f1378 (diff)
Remove switch
GCC and Clang cannot agree on what constitutes a good switch statement.
-rw-r--r--example/lookaheadparser/lookaheadparser.cpp61
1 files changed, 22 insertions, 39 deletions
diff --git a/example/lookaheadparser/lookaheadparser.cpp b/example/lookaheadparser/lookaheadparser.cpp
index 4d8e13f7..29d92994 100644
--- a/example/lookaheadparser/lookaheadparser.cpp
+++ b/example/lookaheadparser/lookaheadparser.cpp
@@ -139,50 +139,33 @@ bool LookaheadParser::EnterArray() {
}
const char* LookaheadParser::NextObjectKey() {
- switch (st_) {
- case kHasKey: {
- const char* result = v_.GetString();
- ParseNext();
- return result;
- }
-
- case kExitingObject:
- ParseNext();
- return 0;
-
- case kError:
- case kHasNull:
- case kHasBool:
- case kHasNumber:
- case kHasString:
- case kEnteringObject:
- case kEnteringArray:
- case kExitingArray:
- st_ = kError;
- return 0;
+ if (st_ == kHasKey) {
+ const char* result = v_.GetString();
+ ParseNext();
+ return result;
+ }
+
+ if (st_ == kExitingObject) {
+ ParseNext();
+ return 0;
}
+
+ st_ = kError;
+ return 0;
}
bool LookaheadParser::NextArrayValue() {
- switch (st_) {
- case kExitingArray:
- ParseNext();
- return false;
-
- case kError:
- case kExitingObject:
- case kHasKey:
- st_ = kError;
- return false;
-
- case kHasNull:
- case kHasBool:
- case kHasNumber:
- case kHasString:
- case kEnteringObject:
- case kEnteringArray:
- return true;
+ if (st_ == kExitingArray) {
+ ParseNext();
+ return false;
+ }
+
+ if (st_ == kError || st_ == kExitingObject || st_ == kHasKey) {
+ st_ = kError;
+ return false;
}
+
+ return true;
}
int LookaheadParser::GetInt() {