|
Lime Parser Generator 0.1.0
Runtime-extensible LALR(1) parser with SIMD tokenization and LLVM JIT
|
Scan modifications for conflicts. More...
Functions | |
| bool | detect_conflicts (const struct GrammarModification *mods, uint32_t nmods, ConflictSet *cs) |
| Scan modifications for conflicts. | |
| uint32_t | resolve_conflicts (ConflictSet *cs, const struct GrammarModification *mods, uint32_t nmods, struct ExtensionRegistry *registry) |
| Attempt to resolve conflicts via extension callbacks. | |
Scan modifications for conflicts.
| bool detect_conflicts | ( | const struct GrammarModification * | mods, |
| uint32_t | nmods, | ||
| ConflictSet * | cs | ||
| ) |
#include <include/conflict.h>
Scan modifications for conflicts.
Checks for:
Automaton-level conflicts (shift/reduce, reduce/reduce) are detected later during rebuild_automaton() and added to the conflict set then.
| mods | Array of grammar modifications to check. |
| nmods | Number of modifications. |
| cs | Conflict set to populate (must be pre-created). |
| true | At least one conflict was detected. |
| false | No conflicts found. |
| uint32_t resolve_conflicts | ( | ConflictSet * | cs, |
| const struct GrammarModification * | mods, | ||
| uint32_t | nmods, | ||
| struct ExtensionRegistry * | registry | ||
| ) |
#include <include/conflict.h>
Attempt to resolve conflicts via extension callbacks.
Calls each extension's on_conflict callback for the conflicts that involve its modifications. Marks conflicts as resolved when a callback provides a resolution.
| cs | Conflict set with detected conflicts. |
| mods | The modifications array (for building ConflictInfo). |
| nmods | Number of modifications. |
| registry | Extension registry (for looking up callbacks). |