check for end of input on every increment of the cursor

mutable-v2
Antonio Cervone 2015-12-01 10:59:22 +01:00
parent f21b8c360e
commit 4b0f5cfd77
1 changed files with 15 additions and 2 deletions

View File

@ -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