A plugin for a metaprogram. Fill in the procedures you care about and the compiler calls them: init once, message for every compiler message, finish at the end. workspace is the build it works on.
plugin: Metaprogram_Plugin;
plugin.message = (p: *Metaprogram_Plugin, message: *Message) {};
assert(plugin.init == null);Fields
- workspace: Workspace
- init: (p: *Metaprogram_Plugin, options: [] string) -> bool
- before_intercept: (p: *Metaprogram_Plugin, flags: *Intercept_Flags)
- add_source: (p: *Metaprogram_Plugin)
- message: (p: *Metaprogram_Plugin, message: *Message)
- finish: (p: *Metaprogram_Plugin)
- shutdown: (p: *Metaprogram_Plugin)
- log_help: (p: *Metaprogram_Plugin)
- communication_proc: (p: *Metaprogram_Plugin, key: string, value: string) -> bool