go: lex.sx — hex/octal/binary integer literals + underscores, +14 tests [consumes-lex]
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 29s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 29s
Adds prefixed integer forms per Go spec § Integer literals: 0x.. / 0X.. (hex), 0b.. / 0B.. (binary), 0o.. / 0O.. (octal), legacy 0123 octal also accepted. Underscores allowed between digits in any run; lexer is permissive (parser/types phase can enforce strict placement). Dispatch lives in gl-read-number! against the first 1-2 chars; hex digit run consumes lex-hex-digit? from lib/guest/lex.sx. Octal and binary use local gl-oct-digit?/gl-bin-digit? — narrow enough that promoting them to the kit is premature. lex 92/92. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -143,9 +143,10 @@ Progress-log line → push `origin/loops/go`.
|
||||
ident/int/string/rune/{break,continue,fallthrough,return}/{++,--,),],}}.
|
||||
- [ ] Float / imaginary literals
|
||||
- [ ] Raw string literals `` `...` ``
|
||||
- [ ] Hex/octal/binary integer literals (0x… 0o… 0b…) + underscores
|
||||
- [x] Hex/octal/binary integer literals (0x… 0o… 0b…) + underscores
|
||||
(legacy 0123 octal also accepted; consumes lex-hex-digit?)
|
||||
- [ ] Full operator set audit (47 distinct per Go spec)
|
||||
- **Acceptance:** lex/ suite at 50+ tests. Current: 78/78.
|
||||
- **Acceptance:** lex/ suite at 50+ tests. Current: 92/92.
|
||||
|
||||
### Phase 2 — Parser (`lib/go/parse.sx`) ⬜
|
||||
- Consume `lib/guest/core/pratt.sx` + `lib/guest/core/ast.sx`. Chisel notes
|
||||
@@ -404,6 +405,10 @@ _(none yet)_
|
||||
|
||||
_Newest first. Append one dated entry per commit._
|
||||
|
||||
- 2026-05-27 — Phase 1 cont.: prefixed integer literals (`0x..`, `0X..`,
|
||||
`0b..`, `0B..`, `0o..`, `0O..`, legacy `0123`) + underscore separators
|
||||
in any digit run. Dispatch in `gl-read-number!`; consumes
|
||||
`lex-hex-digit?` from the kit. +14 tests, lex 92/92. `[consumes-lex]`.
|
||||
- 2026-05-26 — Phase 1 first slice: `lib/go/lex.sx` tokenizer consuming
|
||||
`lib/guest/lex.sx` predicates. 25 keywords, ident/int/string/rune lits,
|
||||
line+block comments, common operators, automatic semicolon insertion per
|
||||
|
||||
Reference in New Issue
Block a user