#ifndef ISL_AST_TYPE_H #define ISL_AST_TYPE_H #include #if defined(__cplusplus) extern "C" { #endif struct __isl_export isl_ast_expr; typedef struct isl_ast_expr isl_ast_expr; struct __isl_export isl_ast_node; typedef struct isl_ast_node isl_ast_node; enum isl_ast_expr_op_type { isl_ast_expr_op_error = -1, isl_ast_expr_op_and, isl_ast_expr_op_and_then, isl_ast_expr_op_or, isl_ast_expr_op_or_else, isl_ast_expr_op_max, isl_ast_expr_op_min, isl_ast_expr_op_minus, isl_ast_expr_op_add, isl_ast_expr_op_sub, isl_ast_expr_op_mul, isl_ast_expr_op_div, isl_ast_expr_op_fdiv_q, /* Round towards -infty */ isl_ast_expr_op_pdiv_q, /* Dividend is non-negative */ isl_ast_expr_op_pdiv_r, /* Dividend is non-negative */ isl_ast_expr_op_zdiv_r, /* Result only compared against zero */ isl_ast_expr_op_cond, isl_ast_expr_op_select, isl_ast_expr_op_eq, isl_ast_expr_op_le, isl_ast_expr_op_lt, isl_ast_expr_op_ge, isl_ast_expr_op_gt, isl_ast_expr_op_call, isl_ast_expr_op_access, isl_ast_expr_op_member, isl_ast_expr_op_address_of }; #define isl_ast_op_type isl_ast_expr_op_type #define isl_ast_op_error isl_ast_expr_op_error #define isl_ast_op_and isl_ast_expr_op_and #define isl_ast_op_and_then isl_ast_expr_op_and_then #define isl_ast_op_or isl_ast_expr_op_or #define isl_ast_op_or_else isl_ast_expr_op_or_else #define isl_ast_op_max isl_ast_expr_op_max #define isl_ast_op_min isl_ast_expr_op_min #define isl_ast_op_minus isl_ast_expr_op_minus #define isl_ast_op_add isl_ast_expr_op_add #define isl_ast_op_sub isl_ast_expr_op_sub #define isl_ast_op_mul isl_ast_expr_op_mul #define isl_ast_op_div isl_ast_expr_op_div #define isl_ast_op_fdiv_q isl_ast_expr_op_fdiv_q #define isl_ast_op_pdiv_q isl_ast_expr_op_pdiv_q #define isl_ast_op_pdiv_r isl_ast_expr_op_pdiv_r #define isl_ast_op_zdiv_r isl_ast_expr_op_zdiv_r #define isl_ast_op_cond isl_ast_expr_op_cond #define isl_ast_op_select isl_ast_expr_op_select #define isl_ast_op_eq isl_ast_expr_op_eq #define isl_ast_op_le isl_ast_expr_op_le #define isl_ast_op_lt isl_ast_expr_op_lt #define isl_ast_op_ge isl_ast_expr_op_ge #define isl_ast_op_gt isl_ast_expr_op_gt #define isl_ast_op_call isl_ast_expr_op_call #define isl_ast_op_access isl_ast_expr_op_access #define isl_ast_op_member isl_ast_expr_op_member #define isl_ast_op_address_of isl_ast_expr_op_address_of enum isl_ast_expr_type { isl_ast_expr_error = -1, isl_ast_expr_op, isl_ast_expr_id, isl_ast_expr_int }; enum isl_ast_node_type { isl_ast_node_error = -1, isl_ast_node_for = 1, isl_ast_node_if, isl_ast_node_block, isl_ast_node_mark, isl_ast_node_user }; enum isl_ast_loop_type { isl_ast_loop_error = -1, isl_ast_loop_default = 0, isl_ast_loop_atomic, isl_ast_loop_unroll, isl_ast_loop_separate }; struct isl_ast_print_options; typedef struct isl_ast_print_options isl_ast_print_options; ISL_DECLARE_LIST_TYPE(ast_expr) ISL_DECLARE_EXPORTED_LIST_TYPE(ast_node) #if defined(__cplusplus) } #endif #endif