mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2024-11-24 04:41:25 +00:00
This is easier
This commit is contained in:
parent
202fc67f93
commit
0c58509417
1 changed files with 6 additions and 16 deletions
20
parser.c
20
parser.c
|
@ -1041,22 +1041,12 @@ static bool parser_sy_apply_operator(parser_t *parser, shunt *sy)
|
|||
* whole process ends up becoming:
|
||||
* (LHS | RHS) & (-1 - (LHS & RHS))
|
||||
*/
|
||||
#define TRY_TYPE(I) \
|
||||
if (exprs[(I)]->vtype != TYPE_FLOAT) { \
|
||||
ast_type_to_string(exprs[(I)], ty1, sizeof(ty1)); \
|
||||
compile_error ( \
|
||||
ast_ctx(exprs[(I)]), \
|
||||
"invalid type `%s` for bit-xor in %s", \
|
||||
ty1, \
|
||||
((I) == 0) \
|
||||
? "left-hand-side of expression" \
|
||||
: "right-hand-side of expression" \
|
||||
); \
|
||||
return false; \
|
||||
if (NotSameType(TYPE_FLOAT)) {
|
||||
compile_error(ctx, "invalid types used in expression: cannot perform bit operations between types %s and %s",
|
||||
type_name[exprs[0]->vtype],
|
||||
type_name[exprs[1]->vtype]);
|
||||
return false;
|
||||
}
|
||||
TRY_TYPE(0)
|
||||
TRY_TYPE(1)
|
||||
#undef TRY_TYPE
|
||||
|
||||
if(CanConstFold(exprs[0], exprs[1])) {
|
||||
out = (ast_expression*)parser_const_float(parser, (float)((qcint)(ConstF(0)) ^ ((qcint)(ConstF(1)))));
|
||||
|
|
Loading…
Reference in a new issue