module

Obelisk::LexerComposition

Helper module for creating lexer compositions

Class methods

best_match(name : String, lexers : Array(Lexer)) : ComposedLexer

Create a confidence-based selector

Source
chain(name : String, lexers : Array(Lexer)) : ChainedLexer

Create a chained lexer that processes through multiple stages

Source
compose(name : String, lexers : Array(Lexer), strategy = CompositionStrategy::FirstMatch) : ComposedLexer

Create a composed lexer with multiple strategies

Source
fallback(name : String, lexers : Array(Lexer)) : ComposedLexer

Create a fallback lexer that tries lexers in order until one succeeds

Source
layer(name : String, lexers : Array(Lexer)) : ComposedLexer

Create a layered lexer with priority ordering

Source
merge(name : String, lexers : Array(Lexer)) : ComposedLexer

Create a merging lexer that combines tokens from multiple lexers

Source