v0.20.8
Added — consumer-controllable forest parsing
Downstream consumers that generate a parser table with grammargen can now opt their own grammar into the GSS-forest GLR fast path without forking gotreesitter, via three surfaces:
Language.WantsForest— Go field; gob-serialized, so it's baked intoGenerateLanguageAndBloboutput and backward-compatible.grammargen.Grammar.WantsForest— Go flag on the grammar IR, plumbed onto the assembledLanguage."gotreesitter": { "wantsForest": true }ingrammar.json— declarative; read byImportGrammarJSONand mirrored back byExportGrammarJSONonly when set, so standard grammars' output is byte-unchanged.
Built-in languages keep their curated, byte-range parity-certified forest defaults (behavior unchanged). Consumer opt-in is at the consumer's responsibility — the forest's decline→production fallback still prevents hard failures on declined inputs, but a clean-but-different tree is the consumer's to own. ExtendGrammar inherits the flag from its base grammar.
Full Changelog: v0.20.7...v0.20.8