Spec Complete, Compiler Underway
We're marking two milestones together: the full Voyage language specification — ADR-0001 through ADR-0010, grammar.md, type-system.md, and memory-model.md — is now complete and pushed to main (23 commits). And on the dev branch, the hand-written recursive-descent parser has reached 248 passing checks.
What the Parser Covers
Coverage now runs from hello-world through let/var bindings and operators, func declarations, if/else/while/break/continue, struct/enum/case with type annotations, assignment, protocol/extension, generics, member access, richer type syntax, string interpolation, and switch statements with pattern matching.
Lexer Foundation
The lexer is fully implemented with 46 passing checks, including paren-depth tracking for string interpolation — the piece that lets \(...) nest correctly inside strings.
What's Next
A sweep of the spec's own examples turned up the remaining parser gaps: labeled call arguments (the highest-impact item), generic-call disambiguation, attributes, declaration modifiers, associatedtype dispatch, and computed property get/set — plus reconciling a spec inconsistency where class appears in memory-model.md but not yet in grammar.md.