check for end of input on every increment of the cursor
parent
f21b8c360e
commit
4b0f5cfd77
17
json11.cpp
17
json11.cpp
|
@ -373,22 +373,35 @@ struct JsonParser {
|
|||
bool comment_found = false;
|
||||
if (str[i] == '/') {
|
||||
i++;
|
||||
if (i == str.size())
|
||||
return fail("unexpected end of input inside comment", 0);
|
||||
if (str[i] == '/') { // inline comment
|
||||
i++;
|
||||
if (i == str.size())
|
||||
return fail("unexpected end of input inside inline comment", 0);
|
||||
// advance until next line
|
||||
while (str[i] != '\n')
|
||||
while (str[i] != '\n') {
|
||||
i++;
|
||||
if (i == str.size())
|
||||
return fail("unexpected end of input inside inline comment", 0);
|
||||
}
|
||||
comment_found = true;
|
||||
}
|
||||
else if (str[i] == '*') { // multiline comment
|
||||
i++;
|
||||
if (i == str.size())
|
||||
return fail("unexpected end of input inside multi-line comment", 0);
|
||||
// advance until closing tokens
|
||||
while (!(str[i] == '*' && str[i+1] == '/')) {
|
||||
i++;
|
||||
if (i == str.size())
|
||||
return fail(
|
||||
"unexpected end of input inside multi-line comment", 0);
|
||||
i++;}
|
||||
}
|
||||
i += 2;
|
||||
if (i == str.size())
|
||||
return fail(
|
||||
"unexpected end of input inside multi-line comment", 0);
|
||||
comment_found = true;
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue