X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fgmqcc.git;a=blobdiff_plain;f=parser.h;h=0396a7e17b3af01ac8e1fdf1f1004a18c8bbed57;hp=c34d39baba108d68808873630651d5230a3cbaaf;hb=b1016c7f48c9d9e499351ad3a7c84db71325b81d;hpb=c2cf41baf95c7a45789e4c73202928baf9e9b650 diff --git a/parser.h b/parser.h index c34d39b..0396a7e 100644 --- a/parser.h +++ b/parser.h @@ -47,7 +47,8 @@ typedef struct { } intrin_func_t; struct intrin_s { - intrin_func_t *intrinsics; /* vector */ + intrin_func_t *intrinsics; /* vector */ + ast_expression **generated; /* vector */ parser_t *parser; fold_t *fold; }; @@ -133,7 +134,9 @@ bool fold_generate (fold_t *, ir_builder *); ast_expression *fold_op (fold_t *, const oper_info *, ast_expression **); ast_expression *fold_intrin (fold_t *, const char *, ast_expression **); -int fold_cond (ir_value *, ast_function *, ast_ifthen *); +ast_expression *fold_binary (lex_ctx_t ctx, int, ast_expression *, ast_expression *); +int fold_cond_ifthen (ir_value *, ast_function *, ast_ifthen *); +int fold_cond_ternary (ir_value *, ast_function *, ast_ternary *); /* intrin.c */ intrin_t *intrin_init (parser_t *parser);