Repository navigation
Changes
- Parse a string-argument attribute macro before a class member without recovery (#11, BrokkAi/bifrost-dev#6902). Examples are Botan's
BOTAN_DEPRECATED("...") XMSS_Parameters() = default;,ATTRIBUTE("use factory") explicit DL_Group(const char*);andDEPRECATED("old" "name") int legacy() { ... }. The macro becomes a leading(macro_modifier (identifier) (argument_list (string_literal)...))on the field declaration, inline method or constructor. With 0.24.7, export-class heads parse, so these members no longer went through whole-class recovery, and Bifrost lost the defaulted constructor. Only string arguments and a single macro are admitted, at dynamic precedence -3, so members that already parse keep their trees (MACRO_TYPE(Widget) member;). - Regenerate the parser and update package metadata to 0.24.8. Tree-sitter ABI 15 is unchanged.
6,789 C and C++ files (macOS SDK headers and libc++, Homebrew headers, Bifrost fixtures) were parsed under 0.24.7 and 0.24.8. 6,779 trees are identical, and none goes from error-free to erroneous. The 489 tests of brokk-bifrost-cpp and brokk-bifrost-cpp-analysis and the 152 C/C++ tests of Bifrost's suite_symbols pass against this grammar.
Verified publication
- Rust crate:
brokk-tree-sitter-cpp0.24.8 - Tag and published source commit:
f42dad9d9f36ab36e3ea6f54dc7ee97f49db4376 - Crate SHA-256:
f2e30d0312deaa1f5e5250b0bf0c92f7d0c62b96075a29cd708a64af60fccd1a - CI passed at this commit.
- Crate publication succeeded. I verified these independently:
- the registry archive checksum matches the index;
.cargo_vcs_info.jsonrecords the tagged commit;parser.c,scanner.c,grammar.json,node-types.jsonandgrammar.jsmatch the tag byte for byte;- the crate resolved from crates.io reproduces the expected trees of all 15 corpus cases added in 0.24.7 and 0.24.8.