|
CT_TREE_API tree_t * | tree_error (const node_t *node, const diagnostic_t *diagnostic, const char *message,...) |
|
CT_TREE_API tree_t * | tree_raise (const node_t *node, logger_t *reports, const diagnostic_t *diagnostic, const char *message,...) |
|
CT_TREE_API void | tree_report (logger_t *reports, const tree_t *error) |
|
CT_TREE_API tree_t * | tree_type_empty (const node_t *node, const char *name) |
| create an empty type, this is a type that has no values and can never be created in a well defined program More...
|
|
CT_TREE_API tree_t * | tree_type_unit (const node_t *node, const char *name) |
| create a unit type, this is a type that has only one value. equivilent to void More...
|
|
CT_TREE_API tree_t * | tree_type_bool (const node_t *node, const char *name) |
| create a bool type, this is a type that has only two values, true and false More...
|
|
CT_TREE_API tree_t * | tree_type_opaque (const node_t *node, const char *name) |
| create an opaque pointer type More...
|
|
CT_TREE_API tree_t * | tree_type_digit (const node_t *node, const char *name, digit_t digit, sign_t sign) |
| create a digit type More...
|
|
CT_TREE_API tree_t * | tree_type_closure (const node_t *node, const char *name, const tree_t *result, const vector_t *params, tree_arity_t arity) |
| create a function pointer type More...
|
|
CT_TREE_API tree_t * | tree_type_pointer (const node_t *node, const char *name, const tree_t *pointer, size_t length) |
| create a pointer type More...
|
|
CT_TREE_API tree_t * | tree_type_reference (const node_t *node, const char *name, const tree_t *reference) |
| create a reference type More...
|
|
CT_TREE_API tree_t * | tree_type_array (const node_t *node, const char *name, const tree_t *array, size_t length) |
| create a new array type More...
|
|
CT_TREE_API tree_t * | tree_expr_empty (const node_t *node, const tree_t *type) |
|
CT_TREE_API tree_t * | tree_expr_unit (const node_t *node, const tree_t *type) |
|
CT_TREE_API tree_t * | tree_expr_bool (const node_t *node, const tree_t *type, bool value) |
|
CT_TREE_API tree_t * | tree_expr_digit (const node_t *node, const tree_t *type, const mpz_t value) |
|
CT_TREE_API tree_t * | tree_expr_digit_int (const node_t *node, const tree_t *type, int value) |
|
CT_TREE_API tree_t * | tree_expr_string (const node_t *node, const tree_t *type, const char *value, size_t length) |
| create a string expression More...
|
|
CT_TREE_API tree_t * | tree_expr_cast (const node_t *node, const tree_t *type, const tree_t *expr, tree_cast_t cast) |
| create a cast expression More...
|
|
CT_TREE_API tree_t * | tree_expr_load (const node_t *node, tree_t *expr) |
| load a value from a pointer or storage More...
|
|
CT_TREE_API tree_t * | tree_expr_address (const node_t *node, tree_t *expr) |
| create a reference to an object More...
|
|
CT_TREE_API tree_t * | tree_expr_unary (const node_t *node, unary_t unary, tree_t *expr) |
|
CT_TREE_API tree_t * | tree_expr_binary (const node_t *node, const tree_t *type, binary_t binary, const tree_t *lhs, const tree_t *rhs) |
|
CT_TREE_API tree_t * | tree_expr_compare (const node_t *node, const tree_t *type, compare_t compare, const tree_t *lhs, const tree_t *rhs) |
|
CT_TREE_API tree_t * | tree_expr_field (const node_t *node, const tree_t *type, tree_t *object, tree_t *field) |
|
CT_TREE_API tree_t * | tree_expr_offset (const node_t *node, const tree_t *type, tree_t *object, tree_t *offset) |
|
CT_TREE_API tree_t * | tree_expr_call (const node_t *node, const tree_t *callee, const vector_t *args) |
|
CT_TREE_API tree_t * | tree_stmt_block (const node_t *node, const vector_t *stmts) |
| create a block statement More...
|
|
CT_TREE_API tree_t * | tree_stmt_return (const node_t *node, const tree_t *value) |
| create a return statement More...
|
|
CT_TREE_API tree_t * | tree_stmt_assign (const node_t *node, tree_t *dst, const tree_t *src) |
|
CT_TREE_API tree_t * | tree_stmt_init (const node_t *node, tree_t *dst, tree_t *src) |
|
CT_TREE_API tree_t * | tree_stmt_loop (const node_t *node, tree_t *cond, tree_t *body, tree_t *other) |
|
CT_TREE_API tree_t * | tree_stmt_branch (const node_t *node, tree_t *cond, tree_t *then, tree_t *other) |
|
CT_TREE_API tree_t * | tree_stmt_jump (const node_t *node, tree_t *label, tree_jump_t jump) |
|
CT_TREE_API tree_t * | tree_resolve (tree_cookie_t *cookie, const tree_t *decl) |
|
CT_TREE_API tree_t * | tree_resolve_type (tree_cookie_t *cookie, const tree_t *decl) |
|
CT_TREE_API tree_t * | tree_open_decl (const node_t *node, const char *name, tree_resolve_info_t resolve) |
|
CT_TREE_API void | tree_close_decl (tree_t *self, const tree_t *other) |
|
CT_TREE_API tree_t * | tree_decl_global (const node_t *node, const char *name, tree_storage_t storage, const tree_t *type, tree_t *initial) |
|
CT_TREE_API tree_t * | tree_open_global (const node_t *node, const char *name, const tree_t *type, tree_resolve_info_t resolve) |
|
CT_TREE_API void | tree_close_global (tree_t *self, tree_t *value) |
|
CT_TREE_API tree_t * | tree_decl_function (const node_t *node, const char *name, const tree_t *signature, const vector_t *params, vector_t *locals, tree_t *body) |
|
CT_TREE_API tree_t * | tree_open_function (const node_t *node, const char *name, const tree_t *signature, tree_resolve_info_t resolve) |
|
CT_TREE_API void | tree_close_function (tree_t *self, tree_t *body) |
|
CT_TREE_API tree_t * | tree_decl_struct (const node_t *node, const char *name, vector_t *fields) |
|
CT_TREE_API tree_t * | tree_open_struct (const node_t *node, const char *name, tree_resolve_info_t resolve) |
|
CT_TREE_API void | tree_close_struct (tree_t *self, vector_t *fields) |
|
CT_TREE_API tree_t * | tree_decl_union (const node_t *node, const char *name, vector_t *fields) |
|
CT_TREE_API tree_t * | tree_open_union (const node_t *node, const char *name, tree_resolve_info_t resolve) |
|
CT_TREE_API void | tree_close_union (tree_t *self, vector_t *fields) |
|
CT_TREE_API tree_t * | tree_decl_enum (const node_t *node, const char *name, const tree_t *underlying, vector_t *fields, tree_t *default_case) |
|
CT_TREE_API tree_t * | tree_open_enum (const node_t *node, const char *name, tree_resolve_info_t resolve) |
|
CT_TREE_API void | tree_close_enum (tree_t *self, const tree_t *underlying, vector_t *fields, tree_t *default_case) |
|
CT_TREE_API tree_t * | tree_decl_param (const node_t *node, const char *name, const tree_t *type) |
|
CT_TREE_API tree_t * | tree_decl_field (const node_t *node, const char *name, const tree_t *type) |
|
CT_TREE_API tree_t * | tree_decl_local (const node_t *node, const char *name, tree_storage_t storage, const tree_t *type) |
|
CT_TREE_API tree_t * | tree_decl_case (const node_t *node, const char *name, const tree_t *type, tree_t *expr) |
|
CT_TREE_API void | tree_add_local (tree_t *self, tree_t *decl) |
|
CT_TREE_API void | tree_add_enum (tree_t *self, tree_t *decl) |
|
CT_TREE_API void | tree_set_attrib (tree_t *self, const tree_attribs_t *attrib) |
|
CT_TREE_API void | tree_set_type (tree_t *self, const tree_t *type) |
|
CT_TREE_API tree_t * | tree_alias (const tree_t *tree, const char *name) |
|
CT_TREE_API tree_t * | tree_type_alias (const node_t *node, const char *name, const tree_t *type, tree_quals_t quals) |
|
CT_TREE_API const tree_t * | tree_follow_type (const tree_t *type) |
|
CT_TREE_API tree_t * | tree_module_root (logger_t *reports, tree_cookie_t *cookie, const node_t *node, const char *name, size_t decls, const size_t *sizes, arena_t *arena) |
|
CT_TREE_API tree_t * | tree_module (tree_t *parent, const node_t *node, const char *name, size_t decls, const size_t *sizes) |
| create a new module More...
|
|
CT_TREE_API void * | tree_module_get (tree_t *self, size_t tag, const char *name) |
| recursively search for a declaration in a module More...
|
|
CT_TREE_API void * | tree_module_find (tree_t *sema, size_t tag, const char *name, tree_t **module) |
| search for a declaration in a module also returns the module that the declaration was found in More...
|
|
CT_TREE_API void * | tree_module_set (tree_t *self, size_t tag, const char *name, void *value) |
| set a declaration in the current module More...
|
|
CT_TREE_API map_t * | tree_module_tag (const tree_t *self, size_t tag) |
|
CT_TREE_API tree_cookie_t * | tree_get_cookie (tree_t *sema) |
| return a resolution cookie More...
|
|
enum | tree_kind_t { eTreeTotal
} |
| all tree node types More...
|
|
enum | tree_quals_t |
| all type qualifiers More...
|
|
enum | binary_t { eBinaryTotal
} |
| all binary operators More...
|
|
enum | compare_t { eCompareTotal
} |
| all comparison operators More...
|
|
enum | unary_t { eUnaryTotal
} |
| all unary operators More...
|
|
enum | tree_cast_t { eCastTotal
} |
| all casts More...
|
|
enum | tree_arity_t { eArityTotal
} |
| all arities More...
|
|
enum | tree_linkage_t { eLinkTotal
} |
| the linkage of a declaration More...
|
|
enum | tree_jump_t { eJumpTotal
} |
| the type of jump More...
|
|
enum | tree_visibility_t { eVisibileTotal
} |
| symbol visibility More...
|
|
enum | digit_t { eDigitTotal
} |
| digit width More...
|
|
enum | sign_t { eSignTotal
} |
| integer sign More...
|
|
enum | eval_model_t |
| tree evaluation model More...
|
|
CT_TREE_API const char * | unary_name (unary_t op) |
| get the pretty name of a unary operator More...
|
|
CT_TREE_API const char * | binary_name (binary_t op) |
| get the pretty name of a binary operator More...
|
|
CT_TREE_API const char * | compare_name (compare_t op) |
| get the pretty name of a comparison operator More...
|
|
CT_TREE_API const char * | unary_symbol (unary_t op) |
| get the C symbol of a unary operator More...
|
|
CT_TREE_API const char * | binary_symbol (binary_t op) |
| get the C symbol of a binary operator More...
|
|
CT_TREE_API const char * | compare_symbol (compare_t op) |
| get the C symbol of a comparison operator More...
|
|
CT_TREE_API const char * | sign_name (sign_t sign) |
| get the pretty name of a integer sign More...
|
|
CT_TREE_API const char * | digit_name (digit_t digit) |
| get the pretty name of a digit More...
|
|
CT_TREE_API const char * | quals_string (tree_quals_t quals) |
| get the name of a set of qualifiers More...
|
|
CT_TREE_API const char * | linkage_string (tree_linkage_t link) |
| get the name of a linkage More...
|
|
CT_TREE_API const char * | visibility_string (tree_visibility_t vis) |
| get the name of visibility More...
|
|
Tree intermediate form generated by language drivers.