Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
Loading...
Searching...
No Matches
GrammarExtensionMetadata Struct Reference

Metadata describing a grammar extension participant in the execution pipeline. More...

#include <execution_policy.h>

Data Fields

float conflict_threshold
 Conflict threshold.
 
const char **const char ** conflicts_with
 Dependencies.
 
uint32_t extension_id
 Extension ID from the registry.
 
struct GrammarModification * modifications
 Grammar modifications (may be NULL if provided later via load).
 
uint32_t nmodifications
 Number of entries in the modifications array.
 
uint32_t priority
 Higher = more preferred.
 
bool(* should_execute )(const struct GrammarExtensionMetadata *self, const struct StrategyResult *strategy_result)
 Optional callback for EXEC_CONDITIONAL policy.
 
void * user_data
 Extension-specific data.
 
Identity
const char * name
 Extension name (borrowed pointer)
 
const char * version
 Semver string (required)
 
Disambiguation
DisambiguationStrategy strategy
 How to resolve ambiguities.
 
int priority
 Priority for DISAMBIG_PRIORITY (higher wins)
 
Execution
ExecutionPolicy policy
 How to apply modifications.
 
Oracle
OracleCallback oracle
 Callback for DISAMBIG_ORACLE (may be NULL)
 

Detailed Description

Metadata describing a grammar extension participant in the execution pipeline.

Rich metadata for a grammar extension.

Bridges the extension registry and the execution policy engine, associating an extension ID with a parser instance and optional execution callbacks.

Passed to extension_registry_register(); the registry copies all strings and arrays internally.

Definition at line 68 of file execution_policy.h.

Field Documentation

◆ conflict_threshold

float GrammarExtensionMetadata::conflict_threshold

Conflict threshold.

Fraction [0.0, 1.0] of modifications that may conflict before the extension is rejected outright. 0.0 means no conflicts tolerated; 1.0 means all conflicts are tolerable.

Definition at line 169 of file extension_registry.h.

◆ conflicts_with

const char** const char** GrammarExtensionMetadata::conflicts_with

Dependencies.

NULL-terminated array of extension names that must be registered before this extension can be activated.

Conflicts.

NULL-terminated array of extension names that are incompatible with this extension.

Definition at line 185 of file extension_registry.h.

◆ extension_id

uint32_t GrammarExtensionMetadata::extension_id

Extension ID from the registry.

Definition at line 69 of file execution_policy.h.

◆ modifications

struct GrammarModification* GrammarExtensionMetadata::modifications

Grammar modifications (may be NULL if provided later via load).

Definition at line 190 of file extension_registry.h.

◆ name

const char * GrammarExtensionMetadata::name

Extension name (borrowed pointer)

Unique extension name (required)

Definition at line 70 of file execution_policy.h.

◆ nmodifications

uint32_t GrammarExtensionMetadata::nmodifications

Number of entries in the modifications array.

Definition at line 193 of file extension_registry.h.

◆ oracle

OracleCallback GrammarExtensionMetadata::oracle

Callback for DISAMBIG_ORACLE (may be NULL)

Definition at line 159 of file extension_registry.h.

◆ policy

ExecutionPolicy GrammarExtensionMetadata::policy

How to apply modifications.

Definition at line 154 of file extension_registry.h.

◆ priority [1/2]

uint32_t GrammarExtensionMetadata::priority

Higher = more preferred.

Definition at line 71 of file execution_policy.h.

◆ priority [2/2]

int GrammarExtensionMetadata::priority

Priority for DISAMBIG_PRIORITY (higher wins)

Definition at line 149 of file extension_registry.h.

◆ should_execute

bool(* GrammarExtensionMetadata::should_execute) (const struct GrammarExtensionMetadata *self, const struct StrategyResult *strategy_result)

Optional callback for EXEC_CONDITIONAL policy.

Returns true if this extension's semantic actions should execute given the current disambiguation result.

Parameters
selfThis metadata struct.
strategy_resultThe full StrategyResult from disambiguation.
Return values
trueExecute this extension's actions.
falseSkip this extension.
Note
May be NULL (treated as "always execute").

Definition at line 87 of file execution_policy.h.

◆ strategy

DisambiguationStrategy GrammarExtensionMetadata::strategy

How to resolve ambiguities.

Definition at line 148 of file extension_registry.h.

◆ user_data

void* GrammarExtensionMetadata::user_data

Extension-specific data.

Definition at line 72 of file execution_policy.h.

◆ version

const char* GrammarExtensionMetadata::version

Semver string (required)

Definition at line 143 of file extension_registry.h.


The documentation for this struct was generated from the following files: