X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=parser.c;h=c6819223cb279d4233ff8af9db6de883d31469ca;hp=14cf583647c0a79362691193440f75b0d8761572;hb=ff63e5bd73e012905568db0fcd3a702fc7f32119;hpb=68ca2c496298573553f0cf98d2cf556c25b591ee diff --git a/parser.c b/parser.c index 14cf583..c681922 100644 --- a/parser.c +++ b/parser.c @@ -266,6 +266,7 @@ static ast_value* parser_const_string(parser_t *parser, const char *str, bool do char name[32]; util_snprintf(name, sizeof(name), "dotranslate_%lu", (unsigned long)(parser->translated++)); ast_value_set_name(out, name); + out->expression.flags |= AST_FLAG_INCLUDE_DEF; } return out; } @@ -279,6 +280,7 @@ static ast_value* parser_const_string(parser_t *parser, const char *str, bool do char name[32]; util_snprintf(name, sizeof(name), "dotranslate_%lu", (unsigned long)(parser->translated++)); out = ast_value_new(parser_ctx(parser), name, TYPE_STRING); + out->expression.flags |= AST_FLAG_INCLUDE_DEF; } else out = ast_value_new(parser_ctx(parser), "#IMMEDIATE", TYPE_STRING); out->cvq = CV_CONST; @@ -5689,7 +5691,9 @@ skipvar: /* we only want the integral part anyways */ builtin_num = integral; - } else if (parser->tok != TOKEN_INTCONST) { + } else if (parser->tok == TOKEN_INTCONST) { + builtin_num = parser_token(parser)->constval.i; + } else { parseerror(parser, "builtin number must be a compile time constant"); break; } @@ -5709,9 +5713,7 @@ skipvar: } vec_push(parser->functions, func); - func->builtin = -((OPTS_FLAG(EXPRESSIONS_FOR_BUILTINS)) - ? builtin_num - : parser_token(parser)->constval.i) - 1; + func->builtin = -builtin_num-1; } if (OPTS_FLAG(EXPRESSIONS_FOR_BUILTINS)