Cthulhu  0.2.10
Cthulhu compiler collection
broker.c File Reference
#include "cthulhu/broker/broker.h"
#include "base/log.h"
#include "cthulhu/broker/scan.h"
#include "cthulhu/events/events.h"
#include "arena/arena.h"
#include "base/panic.h"
#include "base/util.h"
#include "cthulhu/tree/tree.h"
#include "interop/compile.h"
#include "notify/notify.h"
#include "scan/node.h"
#include "std/map.h"
#include "std/vector.h"
#include "cthulhu/broker/broker.inc"
Include dependency graph for broker.c:

Go to the source code of this file.

Data Structures

struct  broker_t
 

Macros

#define OPT_EXEC(fn, ...)   do { if (fn != NULL) fn(__VA_ARGS__); } while (0)
 
#define BROKER_PASS(ID, STR)   [ID] = (STR),
 
#define FILE_LAYOUT(ID, STR)   [ID] = (STR),
 

Functions

STA_DECL broker_tbroker_new (const frontend_t *frontend, arena_t *arena)
 
STA_DECL language_runtime_tbroker_add_language (broker_t *broker, const language_t *lang)
 
STA_DECL plugin_runtime_tbroker_add_plugin (broker_t *broker, const plugin_t *plugin)
 
STA_DECL target_runtime_tbroker_add_target (broker_t *broker, const target_t *target)
 
STA_DECL void broker_init (broker_t *broker)
 
STA_DECL void broker_deinit (broker_t *broker)
 
STA_DECL logger_tbroker_get_logger (broker_t *broker)
 
STA_DECL const node_tbroker_get_node (broker_t *broker)
 
STA_DECL arena_tbroker_get_arena (broker_t *broker)
 
STA_DECL vector_tbroker_get_modules (broker_t *broker)
 get all the modules in the broker this does not include the root module More...
 
STA_DECL void broker_parse (language_runtime_t *runtime, io_t *io)
 
STA_DECL void broker_run_pass (broker_t *broker, broker_pass_t pass)
 
STA_DECL void broker_resolve (broker_t *broker)
 
STA_DECL void lang_add_unit (language_runtime_t *runtime, unit_id_t id, const node_t *node, void *ast, const size_t *decls, size_t length)
 all runtime apis More...
 
compile_unit_tlang_get_unit (language_runtime_t *runtime, unit_id_t id)
 
STA_DECL void * unit_get_ast (compile_unit_t *unit)
 
STA_DECL void unit_update (compile_unit_t *unit, void *ast, tree_t *tree)
 
STA_DECL text_view_t build_unit_id (const vector_t *parts, arena_t *arena)
 
STA_DECL void target_emit_tree (target_runtime_t *runtime, const tree_t *tree, target_emit_t *emit)
 all plugin apis More...
 
STA_DECL emit_result_t target_emit_ssa (target_runtime_t *runtime, const ssa_result_t *ssa, target_emit_t *emit)
 
STA_DECL const char * broker_pass_name (broker_pass_t pass)
 extra stuff More...
 
STA_DECL const char * file_layout_name (file_layout_t layout)
 

Macro Definition Documentation

◆ BROKER_PASS

#define BROKER_PASS (   ID,
  STR 
)    [ID] = (STR),

◆ FILE_LAYOUT

#define FILE_LAYOUT (   ID,
  STR 
)    [ID] = (STR),

◆ OPT_EXEC

#define OPT_EXEC (   fn,
  ... 
)    do { if (fn != NULL) fn(__VA_ARGS__); } while (0)

Definition at line 57 of file broker.c.