bc: remove redundant error checks in bc_parse_print()

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2018-12-08 23:36:28 +01:00
parent 5f1b90b91a
commit ebc41c9d94

View File

@ -4097,7 +4097,7 @@ static BcStatus bc_parse_print(BcParse *p)
{ {
BcStatus s; BcStatus s;
BcLexType type; BcLexType type;
bool comma = false; bool comma;
s = bc_lex_next(&p->l); s = bc_lex_next(&p->l);
if (s) return s; if (s) return s;
@ -4107,24 +4107,26 @@ static BcStatus bc_parse_print(BcParse *p)
if (type == BC_LEX_SCOLON || type == BC_LEX_NLINE) if (type == BC_LEX_SCOLON || type == BC_LEX_NLINE)
return bc_error("bad print statement"); return bc_error("bad print statement");
while (!s && type != BC_LEX_SCOLON && type != BC_LEX_NLINE) { comma = false;
while (type != BC_LEX_SCOLON && type != BC_LEX_NLINE) {
if (type == BC_LEX_STR) if (type == BC_LEX_STR) {
s = bc_parse_string(p, BC_INST_PRINT_POP); s = bc_parse_string(p, BC_INST_PRINT_POP);
else { if (s) return s;
} else {
s = bc_parse_expr(p, 0, bc_parse_next_print); s = bc_parse_expr(p, 0, bc_parse_next_print);
if (s) return s; if (s) return s;
bc_parse_push(p, BC_INST_PRINT_POP); bc_parse_push(p, BC_INST_PRINT_POP);
} }
if (s) return s;
comma = p->l.t.t == BC_LEX_COMMA; comma = p->l.t.t == BC_LEX_COMMA;
if (comma) s = bc_lex_next(&p->l); if (comma) {
s = bc_lex_next(&p->l);
if (s) return s;
}
type = p->l.t.t; type = p->l.t.t;
} }
if (s) return s;
if (comma) return bc_error_bad_token(); if (comma) return bc_error_bad_token();
return bc_lex_next(&p->l); return bc_lex_next(&p->l);