Skip to content

brokk-tree-sitter-cpp 0.24.8

Latest

Choose a tag to compare

@DavidBakerEffendi DavidBakerEffendi released this 26 Oct 13:12
f42dad9

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*); and DEPRECATED("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-cpp 0.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.json records the tagged commit;
    • parser.c, scanner.c, grammar.json, node-types.json and grammar.js match 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.