bc: optimize zbc_lex_string()
function old new delta zbc_lex_next 2359 2353 -6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
ef271da33f
commit
07597cd35d
@ -2986,17 +2986,22 @@ static BC_STATUS zbc_lex_identifier(BcLex *l)
|
|||||||
|
|
||||||
static BC_STATUS zbc_lex_string(BcLex *l)
|
static BC_STATUS zbc_lex_string(BcLex *l)
|
||||||
{
|
{
|
||||||
size_t len, nls = 0, i = l->i;
|
size_t len, nls, i;
|
||||||
char c;
|
|
||||||
|
|
||||||
l->t.t = BC_LEX_STR;
|
l->t.t = BC_LEX_STR;
|
||||||
|
|
||||||
for (c = l->buf[i]; c != '\0' && c != '"'; c = l->buf[++i])
|
nls = 0;
|
||||||
|
i = l->i;
|
||||||
|
for (;;) {
|
||||||
|
char c = l->buf[i];
|
||||||
|
if (c == '\0') {
|
||||||
|
l->i = i;
|
||||||
|
RETURN_STATUS(bc_error("string end could not be found"));
|
||||||
|
}
|
||||||
|
if (c == '"')
|
||||||
|
break;
|
||||||
nls += (c == '\n');
|
nls += (c == '\n');
|
||||||
|
i++;
|
||||||
if (c == '\0') {
|
|
||||||
l->i = i;
|
|
||||||
RETURN_STATUS(bc_error("string end could not be found"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
len = i - l->i;
|
len = i - l->i;
|
||||||
|
Loading…
Reference in New Issue
Block a user