Skip to content

Commit bf19c1a

Browse files
committed
Remove switch
GCC and Clang cannot agree on what constitutes a good switch statement.
1 parent e7fd707 commit bf19c1a

File tree

1 file changed

+22
-39
lines changed

1 file changed

+22
-39
lines changed

example/lookaheadparser/lookaheadparser.cpp

Lines changed: 22 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -139,50 +139,33 @@ bool LookaheadParser::EnterArray() {
139139
}
140140

141141
const char* LookaheadParser::NextObjectKey() {
142-
switch (st_) {
143-
case kHasKey: {
144-
const char* result = v_.GetString();
145-
ParseNext();
146-
return result;
147-
}
148-
149-
case kExitingObject:
150-
ParseNext();
151-
return 0;
152-
153-
case kError:
154-
case kHasNull:
155-
case kHasBool:
156-
case kHasNumber:
157-
case kHasString:
158-
case kEnteringObject:
159-
case kEnteringArray:
160-
case kExitingArray:
161-
st_ = kError;
162-
return 0;
142+
if (st_ == kHasKey) {
143+
const char* result = v_.GetString();
144+
ParseNext();
145+
return result;
146+
}
147+
148+
if (st_ == kExitingObject) {
149+
ParseNext();
150+
return 0;
163151
}
152+
153+
st_ = kError;
154+
return 0;
164155
}
165156

166157
bool LookaheadParser::NextArrayValue() {
167-
switch (st_) {
168-
case kExitingArray:
169-
ParseNext();
170-
return false;
171-
172-
case kError:
173-
case kExitingObject:
174-
case kHasKey:
175-
st_ = kError;
176-
return false;
177-
178-
case kHasNull:
179-
case kHasBool:
180-
case kHasNumber:
181-
case kHasString:
182-
case kEnteringObject:
183-
case kEnteringArray:
184-
return true;
158+
if (st_ == kExitingArray) {
159+
ParseNext();
160+
return false;
161+
}
162+
163+
if (st_ == kError || st_ == kExitingObject || st_ == kHasKey) {
164+
st_ = kError;
165+
return false;
185166
}
167+
168+
return true;
186169
}
187170

188171
int LookaheadParser::GetInt() {

0 commit comments

Comments
 (0)