toolchain: banner purge + WHY-only comment sweep (rule 8)
selfhost/, cmd/, internal/ join the tree-wide sweep: every section banner dies (91 selfhost + the cmd C-style dividers -> 0); narration and stale contracts deleted (pre-#22 bundler notes, retired single-PT_LOAD and no-archive claims, superseded ABI tables); every ref/harec/qbe cite, task cite, encoding/ELF contract, and rule-10 twin pointer kept; lost lifetime/rationale lines restored where the sweep over-cut (elf_globals ownership, kwtab linear-scan). Comment- only proven: all five wwstage tool binaries byte-identical across the sweep; test-commit, test-byteid (161+1399, 0 pinned-divergent), and test-bootstrap (fixed point + 991-995 byte-id) all exit 0. The read-through banked 66 latent-bug leads (checkpoint).
This commit is contained in:
@@ -1,16 +1,4 @@
|
||||
/*
|
||||
* lex.c — hand-rolled DFA. UTF-8 source, ASCII operators.
|
||||
*
|
||||
* Comments: //... and (slash-star ... star-slash). Both stripped.
|
||||
* Whitespace: space, tab, CR, NL.
|
||||
* Identifiers: [A-Za-z_][A-Za-z0-9_]* — also matches keywords; we
|
||||
* look up the kw table after lexing the run.
|
||||
* Integer: 0x[0-9a-fA-F_]+, 0o[0-7_]+, 0b[01_]+, [0-9][0-9_]*
|
||||
* Float: [0-9]+'.'[0-9]+([eE][+-]?[0-9]+)?
|
||||
* Rune: 'x' with C-like escapes
|
||||
* String: "..." with C-like escapes
|
||||
* Operators: longest match.
|
||||
*
|
||||
* No automatic semicolon insertion (Hare rule). The lexer only emits
|
||||
* what is in the source; the parser is responsible for non-empty rules.
|
||||
*/
|
||||
@@ -81,7 +69,6 @@ ishex(int c)
|
||||
(c >= 'A' && c <= 'F');
|
||||
}
|
||||
|
||||
/* skip whitespace and comments. returns 0 on EOF, else 1. */
|
||||
static int
|
||||
skipws(Lex *l)
|
||||
{
|
||||
@@ -94,7 +81,7 @@ skipws(Lex *l)
|
||||
continue;
|
||||
}
|
||||
if (c == '/' && lpeek(l, 1) == '/') {
|
||||
lget(l); lget(l); /* consume '//' */
|
||||
lget(l); lget(l);
|
||||
/* #16 option-B: the driver emits `//ww:module-reset`
|
||||
* before a package-less file's bytes; recognize the
|
||||
* whole-line directive (without consuming differently)
|
||||
@@ -379,10 +366,7 @@ lexnum(Lex *l, Pos start)
|
||||
}
|
||||
}
|
||||
|
||||
/* Typed suffix: i8/i16/i32/i64, u8/u16/u32/u64, f32/f64.
|
||||
* Must be glued (no whitespace) to the digits. We grab the
|
||||
* adjacent identifier-like run and accept it only if it's one
|
||||
* of the recognised type names. */
|
||||
/* A typed suffix must be glued (no whitespace) to the digits. */
|
||||
if (isidstart(lpeek(l, 0))) {
|
||||
u64 sb = l->pos;
|
||||
while (isidcont(lpeek(l, 0))) lget(l);
|
||||
|
||||
Reference in New Issue
Block a user