README.md

tree-sitter-strata

This is Strata's presentation-only tree-sitter grammar. The compiler parser in strata-syntax is the sole syntax authority. No checker, compiler pass, or language-server semantic feature may infer meaning from this tree.

The conformance gate implements proposal D-066:

  • run the strata-syntax compiler parser test over its shared 13-file valid corpus (the CLI may add checks beyond parsing);
  • require tree-sitter to parse every compiler-accepted file without ERROR or MISSING;
  • run representative compiler-rejected files through both parsers;
  • require the presentation grammar to recover with an error for each case whose tolerance is must_error.

Run from this directory:

sh
1npm install
2npm test

tree-sitter-cli is pinned to 0.24.7. Set TREE_SITTER to an equivalent executable path when using an already-installed binary. Generated parser files are owned by this package and must be regenerated whenever grammar.js changes.

The shared valid corpus is intentionally not copied here. The harness reads it directly from ../crates/strata-syntax/tests/fixtures, ensuring compiler parser changes and presentation conformance travel together.

Current promotion status

The compiler authority gate passes all 13 shared fixtures. The presentation grammar currently parses five fixtures cleanly (arbiter, axi_noc, cdc_bridge, chi_readshared, and decode) and then has eight explicit promotion gaps recorded in test/expected-valid-gaps.json. All three representative invalid cases are compiler-rejected and produce tree-sitter ERROR or MISSING nodes.

This is a bounded shared-corpus promotion gate, not the eventual full D-066 oracle. The compiler mutation/fuzz corpus is not yet exported in a form this package can consume, so fuzz-corpus differential conformance remains Phase 1 work. The partial gate exits successfully only when the exact documented split holds: 5 clean / 8 gaps. A new failure, a stale corpus entry, or a newly clean fixture whose gap was not removed all fail the gate. This is a regression ratchet, not completion of the proposal's zero-gap acceptance rule.