Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 28s
Final Phase 2 sub-deliverable. go-parse now handles whole Go files:
- Empty source → nil
- Single top-level form → that form (backward-compatible with ~169
existing single-stmt / single-decl tests)
- Multiple forms → (list :file FORMS), the canonical Go file shape
Implementation: gp-parse-all loops gp-parse-top until eof, tolerating
ASI semis between forms, then returns based on form count.
End-to-end test set (asserts the top-level decl-tag sequence via a
new decl-tags helper, not the full AST tree — that'd be unwieldy):
- hello-world :package :import :func-decl
- recursive fibonacci :package :func-decl
- FizzBuzz :package :import :func-decl
- goroutine ping-pong :package :func-decl :func-decl
- struct + method :package :type-decl :method-decl :func-decl
- interface + method :package :type-decl :type-decl :method-decl
- defer + select + range :package :func-decl
Type-switch (`switch v := x.(type) { ... }`) is the one syntactic
shape still deferred from Phase 2; doesn't gate Phase 3.
**Phase 2 (parser) is complete.** parse 176/176, total 305/305. Next:
Phase 3 — bidirectional type checker. The sister-plan diary for
static-types-bidirectional already has the :field binding-group
insight; Phase 3 will add the synth/check shape that emerges.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
15 lines
494 B
JSON
15 lines
494 B
JSON
{
|
|
"language": "go",
|
|
"total_pass": 305,
|
|
"total": 305,
|
|
"suites": [
|
|
{"name":"lex","pass":129,"total":129,"status":"ok"},
|
|
{"name":"parse","pass":176,"total":176,"status":"ok"},
|
|
{"name":"types","pass":0,"total":0,"status":"pending"},
|
|
{"name":"eval","pass":0,"total":0,"status":"pending"},
|
|
{"name":"runtime","pass":0,"total":0,"status":"pending"},
|
|
{"name":"stdlib","pass":0,"total":0,"status":"pending"},
|
|
{"name":"e2e","pass":0,"total":0,"status":"pending"}
|
|
]
|
|
}
|