|
Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
|
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) | |
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.
| 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.
| 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.
| uint32_t GrammarExtensionMetadata::extension_id |
Extension ID from the registry.
Definition at line 69 of file execution_policy.h.
| struct GrammarModification* GrammarExtensionMetadata::modifications |
Grammar modifications (may be NULL if provided later via load).
Definition at line 190 of file extension_registry.h.
| const char * GrammarExtensionMetadata::name |
Extension name (borrowed pointer)
Unique extension name (required)
Definition at line 70 of file execution_policy.h.
| uint32_t GrammarExtensionMetadata::nmodifications |
Number of entries in the modifications array.
Definition at line 193 of file extension_registry.h.
| OracleCallback GrammarExtensionMetadata::oracle |
Callback for DISAMBIG_ORACLE (may be NULL)
Definition at line 159 of file extension_registry.h.
| ExecutionPolicy GrammarExtensionMetadata::policy |
How to apply modifications.
Definition at line 154 of file extension_registry.h.
| uint32_t GrammarExtensionMetadata::priority |
Higher = more preferred.
Definition at line 71 of file execution_policy.h.
| int GrammarExtensionMetadata::priority |
Priority for DISAMBIG_PRIORITY (higher wins)
Definition at line 149 of file extension_registry.h.
| 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.
| self | This metadata struct. |
| strategy_result | The full StrategyResult from disambiguation. |
| true | Execute this extension's actions. |
| false | Skip this extension. |
Definition at line 87 of file execution_policy.h.
| DisambiguationStrategy GrammarExtensionMetadata::strategy |
How to resolve ambiguities.
Definition at line 148 of file extension_registry.h.
| void* GrammarExtensionMetadata::user_data |
Extension-specific data.
Definition at line 72 of file execution_policy.h.
| const char* GrammarExtensionMetadata::version |
Semver string (required)
Definition at line 143 of file extension_registry.h.