/*
- * Copyright (C) 2012, 2013
+ * Copyright (C) 2012, 2013, 2014
* Wolfgang Bumiller
* Dale Weiler
*
ast_expression *(*intrin)(intrin_t *);
const char *name;
const char *alias;
+ size_t args;
} intrin_func_t;
struct intrin_s {
- intrin_func_t *intrinsics; /* vector<intrin_func_t> */
+ intrin_func_t *intrinsics; /* vector<intrin_func_t> */
+ ast_expression **generated; /* vector<ast_expression*> */
parser_t *parser;
fold_t *fold;
};
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);