Idea detail
context_sensitive_lexer_scaling
reqlan rq/language/syntax-edge-cases.rq:16
block
done
Summary
Context-sensitive token classification for structural / prose braces and top-level import keywords must remain linear in document size.
The lexer records brace-depth changes sparsely ( not per-character tables ) and looks them up in log time while tokenising, so workspace language-server initialization and editor re-lexes stay bounded.
Code fences are skipped during the brace scan so example braces cannot inflate work or desync depth.
Bounded work still assumes the lexer / parser * returns *; unbounded hangs are cut by parse_budget_timeout.
Attributes
Ancestor context
No ancestor chain recorded.
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| file_reference | ../../packages/language/src/reqlan-token-builder.ts | packages/language/src/reqlan-token-builder.ts | reqlan-token-builder.ts |
| file_reference | ../../packages/language/test/parsing.test.ts:parses a large import prelude without repeated full-document brace scans | packages/language/test/parsing.test.ts:parses a large import prelude without repeated full-document brace scans | ["../../packages/language/test/parsing.test.ts:parses a large import prelude without repeated full-document brace scans" |
| file_reference | ../../packages/language/test/parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure | packages/language/test/parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure | parsing.test.ts:treats fenced TypeScript braces as opaque for surrounding structure |
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| None | |||
| Kind | Idea | Path | Snippet |
|---|---|---|---|
| references | parse_budget_timeout | parse_budget_timeout |
Initialising graph…