File indexing completed on 2026-05-10 08:48:12
0001 #ifndef ISL_AST_TYPE_H
0002 #define ISL_AST_TYPE_H
0003
0004 #include <isl/list.h>
0005
0006 #if defined(__cplusplus)
0007 extern "C" {
0008 #endif
0009
0010 struct __isl_export isl_ast_expr;
0011 typedef struct isl_ast_expr isl_ast_expr;
0012
0013 struct __isl_export isl_ast_node;
0014 typedef struct isl_ast_node isl_ast_node;
0015
0016 enum isl_ast_expr_op_type {
0017 isl_ast_expr_op_error = -1,
0018 isl_ast_expr_op_and,
0019 isl_ast_expr_op_and_then,
0020 isl_ast_expr_op_or,
0021 isl_ast_expr_op_or_else,
0022 isl_ast_expr_op_max,
0023 isl_ast_expr_op_min,
0024 isl_ast_expr_op_minus,
0025 isl_ast_expr_op_add,
0026 isl_ast_expr_op_sub,
0027 isl_ast_expr_op_mul,
0028 isl_ast_expr_op_div,
0029 isl_ast_expr_op_fdiv_q,
0030 isl_ast_expr_op_pdiv_q,
0031 isl_ast_expr_op_pdiv_r,
0032 isl_ast_expr_op_zdiv_r,
0033 isl_ast_expr_op_cond,
0034 isl_ast_expr_op_select,
0035 isl_ast_expr_op_eq,
0036 isl_ast_expr_op_le,
0037 isl_ast_expr_op_lt,
0038 isl_ast_expr_op_ge,
0039 isl_ast_expr_op_gt,
0040 isl_ast_expr_op_call,
0041 isl_ast_expr_op_access,
0042 isl_ast_expr_op_member,
0043 isl_ast_expr_op_address_of
0044 };
0045
0046 #define isl_ast_op_type isl_ast_expr_op_type
0047 #define isl_ast_op_error isl_ast_expr_op_error
0048 #define isl_ast_op_and isl_ast_expr_op_and
0049 #define isl_ast_op_and_then isl_ast_expr_op_and_then
0050 #define isl_ast_op_or isl_ast_expr_op_or
0051 #define isl_ast_op_or_else isl_ast_expr_op_or_else
0052 #define isl_ast_op_max isl_ast_expr_op_max
0053 #define isl_ast_op_min isl_ast_expr_op_min
0054 #define isl_ast_op_minus isl_ast_expr_op_minus
0055 #define isl_ast_op_add isl_ast_expr_op_add
0056 #define isl_ast_op_sub isl_ast_expr_op_sub
0057 #define isl_ast_op_mul isl_ast_expr_op_mul
0058 #define isl_ast_op_div isl_ast_expr_op_div
0059 #define isl_ast_op_fdiv_q isl_ast_expr_op_fdiv_q
0060 #define isl_ast_op_pdiv_q isl_ast_expr_op_pdiv_q
0061 #define isl_ast_op_pdiv_r isl_ast_expr_op_pdiv_r
0062 #define isl_ast_op_zdiv_r isl_ast_expr_op_zdiv_r
0063 #define isl_ast_op_cond isl_ast_expr_op_cond
0064 #define isl_ast_op_select isl_ast_expr_op_select
0065 #define isl_ast_op_eq isl_ast_expr_op_eq
0066 #define isl_ast_op_le isl_ast_expr_op_le
0067 #define isl_ast_op_lt isl_ast_expr_op_lt
0068 #define isl_ast_op_ge isl_ast_expr_op_ge
0069 #define isl_ast_op_gt isl_ast_expr_op_gt
0070 #define isl_ast_op_call isl_ast_expr_op_call
0071 #define isl_ast_op_access isl_ast_expr_op_access
0072 #define isl_ast_op_member isl_ast_expr_op_member
0073 #define isl_ast_op_address_of isl_ast_expr_op_address_of
0074
0075 enum isl_ast_expr_type {
0076 isl_ast_expr_error = -1,
0077 isl_ast_expr_op,
0078 isl_ast_expr_id,
0079 isl_ast_expr_int
0080 };
0081
0082 enum isl_ast_node_type {
0083 isl_ast_node_error = -1,
0084 isl_ast_node_for = 1,
0085 isl_ast_node_if,
0086 isl_ast_node_block,
0087 isl_ast_node_mark,
0088 isl_ast_node_user
0089 };
0090
0091 enum isl_ast_loop_type {
0092 isl_ast_loop_error = -1,
0093 isl_ast_loop_default = 0,
0094 isl_ast_loop_atomic,
0095 isl_ast_loop_unroll,
0096 isl_ast_loop_separate
0097 };
0098
0099 struct isl_ast_print_options;
0100 typedef struct isl_ast_print_options isl_ast_print_options;
0101
0102 ISL_DECLARE_LIST_TYPE(ast_expr)
0103 ISL_DECLARE_EXPORTED_LIST_TYPE(ast_node)
0104
0105 #if defined(__cplusplus)
0106 }
0107 #endif
0108
0109 #endif