gdscript-syntax — lexer + indentation pre-pass + lossless parser for GDScript.
Phase 1 fills this in: a logos lexer, a hand-written indentation pre-pass
(INDENT/DEDENT/NEWLINE), and a hand-written recursive-descent parser producing a
lossless [cstree] CST plus a typed AST, behind a Parser trait
(tree-sitter-gdscript is the differential test oracle, never the
grammar-of-record — see ADR-0002).
The crate "knows nothing about salsa or LSP" (rust-analyzer's syntax layer):
it is pure text → tree. It must build for wasm32 — no std::fs, no clocks, no
threads.