LSL tools: implement token model, lexer, source locations, and diagnostics #81
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Implement public token/symbol types, character sets, comments, source line management, lexer behavior, and parser diagnostics in native Rust.
Deliverables
Validation
Prerequisite
All global API/test gates and the foundational/world implementations needed by these extension crates are complete.
Project constraints
Implemented and pushed in commit
73cef10.This replaces the LSL lexer boundary with native Rust: mapped token/symbol/EOF and compatibility enumerator APIs; UTF-16 source positions; comment filtering, CR/LF normalization, #line handling, and raw-column tracking; portable validated ASCII/UTF-8/UTF-16 decoding; complete .NET Unicode category matching; bounded deterministic maximum-munch DFA execution; reserved-word remapping; structured diagnostics and recovery entry points; and idiomatic Rust iteration. It also adds API migration/position contracts, generated-shim coverage, a dedicated audit, and ubuntu-latest CI integration. Generator-owned NFA construction and table serialization are explicitly rejected rather than silently fabricated and will be implemented by issue #83.
Verification on the committed tree: