feat(asm): Phase A.0 — add kw_asm keyword + lex test

`asm` now lexes as a dedicated `kw_asm` keyword (Token.Tag + keyword map entry).
`volatile` and `clobbers` stay out of the global keyword table — they are
recognized contextually only inside an `asm { … }` body (PLAN-ASM Deviation 4).

- token.zig: kw_asm tag + `.{ "asm", .kw_asm }` map entry.
- lsp/server.zig: classifyToken exhaustive switch gained the .kw_asm arm
  (the new enum value forced coverage — intended tripwire).
- lexer.test.zig (new, wired into root.zig barrel): locks `asm`->kw_asm and
  `volatile`/`clobbers`->identifier.

Lock commit (behavior-locking passing test). zig build test green (445 unit).
This commit is contained in:
agra
2026-06-15 18:32:34 +03:00
parent c92d11e748
commit 3c9ecd0b42
5 changed files with 47 additions and 19 deletions

View File

@@ -1685,6 +1685,7 @@ pub const Server = struct {
.kw_callconv,
.kw_extern,
.kw_export,
.kw_asm,
.hash_run,
.hash_import,
.hash_insert,