Lexical Scanner
A LexicalScanner tracks all visible A_Lexers while compiling a module. It maintains an AtomicReferenceArray from Latin-1 codepoints (U+0000..U+00FF) to the A_Tuple of lexers whose filters passed for that codepoint. A separate ConcurrentHashMap tracks all remaining codepoints.
There is also a special instance that is reused for scanning module headers.
Author
Mark van Gulik
Properties
Functions
Link copied to clipboard
Add an A_Lexer. Update not just the current lexing information for this loader, but also the specified atom's bundle's method and the current module.
Link copied to clipboard
Ensure new A_Lexers are not added after this point. This is a safety measure.
Link copied to clipboard
fun getLexersForCodePointThen(lexingState: LexingState, codePoint: Int, continuation: (A_Tuple) -> Unit, onFailure: (Map<A_Lexer, Throwable>) -> Unit)