From 2022012d6514578bd53a91b3048d08cf8686e233 Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Mon, 26 Jan 2026 02:45:47 +0000 Subject: Improved documentation for header files in src/ and plugins/ --- plugins/zprep_plugin.h | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) (limited to 'plugins/zprep_plugin.h') diff --git a/plugins/zprep_plugin.h b/plugins/zprep_plugin.h index b51cffd..1cea813 100644 --- a/plugins/zprep_plugin.h +++ b/plugins/zprep_plugin.h @@ -5,26 +5,44 @@ #include #include -// The Host provides this API to the Plugin. +/** + * @brief Host API provided to plugins. + * + * Plugins use this structure to interact with the compiler/codegen environment. + */ typedef struct { // Context Information (Where are we?). - const char *filename; - int current_line; - FILE *out; // Inline output (expression context) - FILE *hoist_out; // Hoisted output (file scope / top level) + const char *filename; ///< Current file name being processed. + int current_line; ///< Current line number. + FILE *out; ///< Inline output stream (replaces the macro call). + FILE *hoist_out; ///< Hoisted output stream (writes to file scope/header). } ZApi; -// The Plugin Function Signature. -// Returns void. All output is done via 'api'. +/** + * @brief The Plugin Function Signature. + * + * Plugins must implement a function with this signature to handle transpilation. + * + * @param input_body The raw text content inside the plugin call. + * @param api Pointer to the host API structure. + */ typedef void (*ZPluginTranspileFn)(const char *input_body, const ZApi *api); +/** + * @brief Plugin definition structure. + */ typedef struct { - char name[32]; - ZPluginTranspileFn fn; + char name[32]; ///< Name of the plugin. + ZPluginTranspileFn fn; ///< Pointer to the transpilation function. } ZPlugin; +/** + * @brief Signature for the plugin entry point. + * + * Dynamic libraries must export a function named `z_init` matching this signature. + */ typedef ZPlugin *(*ZPluginInitFn)(void); #endif -- cgit v1.2.3