Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
Loading...
Searching...
No Matches
Plugin Validation and Introspection Utilities

Validate plugin structs and query capabilities. More...

Functions

char * lime_plugin_capabilities_string (uint32_t caps, char *buf, size_t buflen)
 Format a capability bitmask as a comma-separated string of names.
 
const char * lime_plugin_capability_name (LimePluginCaps cap)
 Return a human-readable name for a single capability flag.
 
void lime_plugin_dump (const LimeParserPlugin *plugin, FILE *out)
 Print a diagnostic summary of a plugin to a file stream.
 
bool lime_plugin_has_all_capabilities (const LimeParserPlugin *plugin, uint32_t required_caps)
 Check if a plugin has all of the specified capabilities.
 
bool lime_plugin_has_capability (const LimeParserPlugin *plugin, LimePluginCaps cap)
 Check if a plugin has a specific capability.
 
ParserManagerStatus lime_plugin_validate (const LimeParserPlugin *plugin)
 Validate that a plugin struct has all required callbacks and a compatible ABI version.
 

Detailed Description

Validate plugin structs and query capabilities.

Function Documentation

◆ lime_plugin_capabilities_string()

char * lime_plugin_capabilities_string ( uint32_t  caps,
char *  buf,
size_t  buflen 
)

#include <include/parser_manager.h>

Format a capability bitmask as a comma-separated string of names.

Parameters
capsBitmask of capabilities.
bufOutput buffer.
buflenSize of buf in bytes.
Returns
buf for convenience.

◆ lime_plugin_capability_name()

const char * lime_plugin_capability_name ( LimePluginCaps  cap)

#include <include/parser_manager.h>

Return a human-readable name for a single capability flag.

Parameters
capCapability flag to name.
Returns
Static string like "SNAPSHOT", "EXTENSIBLE", etc., or "unknown" for unrecognized flags.

◆ lime_plugin_dump()

void lime_plugin_dump ( const LimeParserPlugin plugin,
FILE *  out 
)

#include <include/parser_manager.h>

Print a diagnostic summary of a plugin to a file stream.

Includes name, version, ABI, capabilities, and callback presence.

Parameters
pluginPlugin to describe.
outOutput stream (e.g., stdout or stderr).

◆ lime_plugin_has_all_capabilities()

bool lime_plugin_has_all_capabilities ( const LimeParserPlugin plugin,
uint32_t  required_caps 
)

#include <include/parser_manager.h>

Check if a plugin has all of the specified capabilities.

Parameters
pluginPlugin to check.
required_capsBitmask of required capabilities (bitwise AND test).
Return values
trueThe plugin has every capability in required_caps.
falseAt least one required capability is missing.

◆ lime_plugin_has_capability()

bool lime_plugin_has_capability ( const LimeParserPlugin plugin,
LimePluginCaps  cap 
)

#include <include/parser_manager.h>

Check if a plugin has a specific capability.

Parameters
pluginPlugin to check.
capCapability flag to test.
Return values
trueThe plugin advertises cap.
falseThe plugin does not have cap.

◆ lime_plugin_validate()

ParserManagerStatus lime_plugin_validate ( const LimeParserPlugin plugin)

#include <include/parser_manager.h>

Validate that a plugin struct has all required callbacks and a compatible ABI version.

Parameters
pluginPlugin struct to validate.
Returns
PM_OK on success, or an error code describing the first problem found.