From: Wolfgang (Blub) Bumiller Date: Tue, 14 Aug 2012 20:34:20 +0000 (+0200) Subject: get rid of more duplicate code X-Git-Tag: 0.1-rc1~284 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=9ed9a0c669cde318174bfbabf9db43d8795ca773;p=xonotic%2Fgmqcc.git get rid of more duplicate code --- diff --git a/parser.c b/parser.c index 6e72ba1..27e7f70 100644 --- a/parser.c +++ b/parser.c @@ -431,13 +431,9 @@ static bool parser_sy_pop(parser_t *parser, shunt *sy) return true; case opid1('+'): - if (exprs[0]->expression.vtype != exprs[1]->expression.vtype) { - parseerror(parser, "invalid types used in expression: cannot add type %s and %s", - type_name[exprs[0]->expression.vtype], - type_name[exprs[1]->expression.vtype]); - return false; - } - if (exprs[0]->expression.vtype != TYPE_VECTOR && exprs[0]->expression.vtype != TYPE_FLOAT) { + if (exprs[0]->expression.vtype != exprs[1]->expression.vtype || + (exprs[0]->expression.vtype != TYPE_VECTOR && exprs[0]->expression.vtype != TYPE_FLOAT) ) + { parseerror(parser, "invalid types used in expression: cannot add type %s and %s", type_name[exprs[0]->expression.vtype], type_name[exprs[1]->expression.vtype]); @@ -458,18 +454,14 @@ static bool parser_sy_pop(parser_t *parser, shunt *sy) }; break; case opid1('-'): - if (exprs[0]->expression.vtype != exprs[1]->expression.vtype) { + if (exprs[0]->expression.vtype != exprs[1]->expression.vtype || + (exprs[0]->expression.vtype != TYPE_VECTOR && exprs[0]->expression.vtype != TYPE_FLOAT) ) + { parseerror(parser, "invalid types used in expression: cannot subtract type %s from %s", type_name[exprs[1]->expression.vtype], type_name[exprs[0]->expression.vtype]); return false; } - if (exprs[0]->expression.vtype != TYPE_VECTOR && exprs[0]->expression.vtype != TYPE_FLOAT) { - parseerror(parser, "invalid types used in expression: cannot subtract type %s from %s", - type_name[exprs[0]->expression.vtype], - type_name[exprs[1]->expression.vtype]); - return false; - } switch (exprs[0]->expression.vtype) { case TYPE_FLOAT: out = (ast_expression*)ast_binary_new(ctx, INSTR_SUB_F, exprs[0], exprs[1]);