Core of the compiler, manages languages, plugins, and targets.
More...
|
typedef text_view_t | unit_id_t |
| the name of a module to represent the name java.lang use `CT_TEXT_VIEW("java\0lang") More...
|
|
typedef void(* | language_pass_t) (language_runtime_t *runtime, compile_unit_t *unit) |
| a language compilation pass More...
|
|
typedef void(* | language_create_t) (language_runtime_t *runtime, tree_t *root) |
| initialize the root module More...
|
|
typedef void(* | language_destroy_t) (language_runtime_t *runtime) |
|
typedef void(* | language_preparse_t) (language_runtime_t *runtime, void *context) |
|
typedef void(* | language_postparse_t) (language_runtime_t *runtime, scan_t *scan, void *ast) |
|
typedef char *(* | lang_repr_tree_t) (tree_t *tree, arena_t *arena) |
| convert a tree node to a string More...
|
|
typedef void(* | plugin_create_t) (plugin_runtime_t *runtime) |
|
typedef void(* | plugin_destroy_t) (plugin_runtime_t *runtime) |
|
typedef void(* | target_create_t) (target_runtime_t *runtime) |
|
typedef void(* | target_destroy_t) (target_runtime_t *runtime) |
|
typedef void(* | target_tree_t) (target_runtime_t *runtime, const tree_t *tree, target_emit_t *emit) |
| tree output generation More...
|
|
typedef emit_result_t(* | target_ssa_t) (target_runtime_t *runtime, const ssa_result_t *ssa, target_emit_t *emit) |
| ssa output generation More...
|
|
|
CT_BROKER_API broker_t * | broker_new (const frontend_t *frontend, arena_t *arena) |
|
CT_BROKER_API language_runtime_t * | broker_add_language (broker_t *broker, const language_t *lang) |
|
CT_BROKER_API plugin_runtime_t * | broker_add_plugin (broker_t *broker, const plugin_t *plugin) |
|
CT_BROKER_API target_runtime_t * | broker_add_target (broker_t *broker, const target_t *target) |
|
CT_BROKER_API void | broker_init (broker_t *broker) |
|
CT_BROKER_API void | broker_deinit (broker_t *broker) |
|
CT_BROKER_API compile_unit_t * | broker_get_unit (broker_t *broker, unit_id_t id) |
|
CT_BROKER_API void | broker_parse (language_runtime_t *runtime, io_t *io) |
|
CT_BROKER_API void | broker_run_pass (broker_t *broker, broker_pass_t pass) |
|
CT_BROKER_API void | broker_resolve (broker_t *broker) |
|
CT_BROKER_API logger_t * | broker_get_logger (broker_t *broker) |
|
CT_BROKER_API const node_t * | broker_get_node (broker_t *broker) |
|
CT_BROKER_API arena_t * | broker_get_arena (broker_t *broker) |
|
CT_BROKER_API vector_t * | broker_get_modules (broker_t *broker) |
| get all the modules in the broker this does not include the root module More...
|
|
CT_BROKER_API void | lang_add_unit (language_runtime_t *runtime, unit_id_t id, const node_t *node, void *ast, const size_t *sizes, size_t count) |
| all runtime apis More...
|
|
CT_BROKER_API compile_unit_t * | lang_get_unit (language_runtime_t *runtime, unit_id_t id) |
|
CT_BROKER_API void | unit_update (compile_unit_t *unit, void *ast, tree_t *tree) |
|
CT_BROKER_API void * | unit_get_ast (compile_unit_t *unit) |
|
CT_BROKER_API text_view_t | build_unit_id (const vector_t *parts, arena_t *arena) |
|
CT_BROKER_API void | target_emit_tree (target_runtime_t *runtime, const tree_t *tree, target_emit_t *emit) |
| all plugin apis More...
|
|
CT_BROKER_API emit_result_t | target_emit_ssa (target_runtime_t *runtime, const ssa_result_t *ssa, target_emit_t *emit) |
|
CT_CONSTFN CT_BROKER_API const char * | broker_pass_name (broker_pass_t pass) |
| extra stuff More...
|
|
CT_CONSTFN CT_CONSTFN CT_BROKER_API const char * | file_layout_name (file_layout_t layout) |
|
Core of the compiler, manages languages, plugins, and targets.
◆ CT_LANG_EXTS
#define CT_LANG_EXTS |
( |
|
... | ) |
{ __VA_ARGS__, NULL } |
◆ lang_repr_tree_t
convert a tree node to a string
Definition at line 139 of file broker.h.
◆ language_create_t
initialize the root module
Definition at line 117 of file broker.h.
◆ language_destroy_t
◆ language_pass_t
a language compilation pass
Definition at line 114 of file broker.h.
◆ language_postparse_t
◆ language_preparse_t
◆ plugin_create_t
◆ plugin_destroy_t
◆ target_create_t
◆ target_destroy_t
◆ target_ssa_t
ssa output generation
Definition at line 228 of file broker.h.
◆ target_tree_t
tree output generation
Definition at line 220 of file broker.h.
◆ unit_id_t
the name of a module to represent the name java.lang
use `CT_TEXT_VIEW("java\0lang")
Definition at line 53 of file broker.h.
◆ broker_arena_t
◆ broker_event_t
plugin events generated by the broker
Definition at line 73 of file broker.h.
◆ broker_pass_t
◆ broker_stage_t
stages of compilation
Definition at line 64 of file broker.h.
◆ file_layout_t
output folder structure
Enumerator |
---|
eFileLayoutCount | |
eFileLayoutCount | |
Definition at line 90 of file broker.h.
◆ broker_add_language()
◆ broker_add_plugin()
◆ broker_add_target()
◆ broker_deinit()
CT_BROKER_API void broker_deinit |
( |
broker_t * |
broker | ) |
|
◆ broker_get_arena()
◆ broker_get_logger()
◆ broker_get_modules()
get all the modules in the broker this does not include the root module
Definition at line 362 of file broker.c.
◆ broker_get_node()
◆ broker_get_unit()
◆ broker_init()
CT_BROKER_API void broker_init |
( |
broker_t * |
broker | ) |
|
◆ broker_new()
broker api should only really be called by the frontend
broker api
Definition at line 130 of file broker.c.
◆ broker_parse()
◆ broker_pass_name()
◆ broker_resolve()
CT_BROKER_API void broker_resolve |
( |
broker_t * |
broker | ) |
|
◆ broker_run_pass()
◆ build_unit_id()
◆ file_layout_name()
◆ lang_add_unit()
all runtime apis
translation unit api
Definition at line 462 of file broker.c.
◆ lang_get_unit()
◆ target_emit_ssa()
◆ target_emit_tree()
all plugin apis
all target apis
Definition at line 566 of file broker.c.
◆ unit_get_ast()
◆ unit_update()