diff options
author | John Stiles <johnstiles@gmail.com> | 2017-03-13 17:40:51 +0300 |
---|---|---|
committer | John Stiles <johnstiles@gmail.com> | 2017-03-13 17:40:51 +0300 |
commit | bf19c1a0beafa6a118b1c242d16d0c0cfe0296e2 (patch) | |
tree | deea594d64cc924995d46e7b9f4339885a37fc20 | |
parent | e7fd707698334b17d698be6c741990027e4f1378 (diff) |
Remove switch
GCC and Clang cannot agree on what constitutes a good switch statement.
-rw-r--r-- | example/lookaheadparser/lookaheadparser.cpp | 61 |
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() { |