From bf19c1a0beafa6a118b1c242d16d0c0cfe0296e2 Mon Sep 17 00:00:00 2001 From: John Stiles Date: Mon, 13 Mar 2017 07:40:51 -0700 Subject: [PATCH] Remove switch GCC and Clang cannot agree on what constitutes a good switch statement. --- example/lookaheadparser/lookaheadparser.cpp | 61 ++++++++------------- 1 file changed, 22 insertions(+), 39 deletions(-) diff --git a/example/lookaheadparser/lookaheadparser.cpp b/example/lookaheadparser/lookaheadparser.cpp index 4d8e13f..29d9299 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() {