bc: simplify bc_lex_comment()

function                                             old     new   delta
bc_lex_token                                        1369    1344     -25

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-12-03 19:12:29 +01:00
parent c1c2470f84
commit bc5ce66617

View File

@ -3090,24 +3090,27 @@ static BcStatus bc_lex_comment(BcLex *l)
{
size_t i, nls = 0;
const char *buf = l->buf;
bool end = false;
char c;
l->t.t = BC_LEX_WHITESPACE;
for (i = ++l->i; !end; i += !end) {
for (c = buf[i]; c != '*' && c != 0; c = buf[++i]) nls += (c == '\n');
if (c == 0 || buf[i + 1] == '\0') {
i = ++l->i;
for (;;) {
char c = buf[i];
check_star:
if (c == '*') {
c = buf[++i];
if (c == '/')
break;
goto check_star;
}
if (c == '\0') {
l->i = i;
return BC_STATUS_LEX_NO_COMMENT_END;
}
end = buf[i + 1] == '/';
nls += (c == '\n');
i++;
}
l->i = i + 2;
l->i = i + 1;
l->line += nls;
return BC_STATUS_SUCCESS;