)]}'
{
  "commit": "8bf55e1a7a6cd226ec6caea28b20da294e58219f",
  "tree": "7f186b93ad81035e2822ae27de260d206d1d1513",
  "parents": [
    "d4a0c385638da0b303d09f6d7a45680d5117f1d0"
  ],
  "author": {
    "name": "Christopher Anderson",
    "email": "nvll@users.noreply.github.com",
    "time": "Wed Aug 13 20:19:50 2025 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Aug 13 22:19:50 2025 -0500"
  },
  "message": "Generalize parsing and add handling for byte_string_literal and file_header (#23)\n\n* Add \u0027warn_on_unhandled_token\u0027 to Config\n\n- Add a new bool to control printing a warning if we don\u0027t recognize a\n  token durng parsing\n- Update the call hierarchy to pass a reference to a Config rather than\n  the KeyboardLayout alone.\n\n* Handle \u0027file_version\u0027\n\n* Add byte_string_literal and generalize more parsing\n\n- Adds support for byte_string_literal which is exposed by treesitter as\n  just text for the most part\n- Consolidate Node \u0026 Property since handling of their top-level token is\n  the same in the grammar from the perspective of being a parent with\n  some child nodes to traverse now that identifier handling was added in\n  a previous commit\n- Identifiers, string_literals, and unit-address can all now be handled\n  generically\n- Consolidated Zephyr syntax handling slightly",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b72c2705cad17fe43267b546e35cc76cf9f68f82",
      "old_mode": 33188,
      "old_path": "src/config/mod.rs",
      "new_id": "0d170f4529e002e2c74bbfb59ea73fda582a4736",
      "new_mode": 33188,
      "new_path": "src/config/mod.rs"
    },
    {
      "type": "modify",
      "old_id": "dc4df8c2693fb8acfad8eb60e7057eb0c24a272d",
      "old_mode": 33188,
      "old_path": "src/context.rs",
      "new_id": "1c8ee70b0ea35d30d2776cfc67372d2fd1b11055",
      "new_mode": 33188,
      "new_path": "src/context.rs"
    },
    {
      "type": "modify",
      "old_id": "f023eec6b12f6f41864dce9326fa5e7ae2736bad",
      "old_mode": 33188,
      "old_path": "src/main.rs",
      "new_id": "1ea0519966512000bb24b5c1d8d719657bf5a013",
      "new_mode": 33188,
      "new_path": "src/main.rs"
    },
    {
      "type": "modify",
      "old_id": "b928d15fb7848b95702b29cefb789cc083816124",
      "old_mode": 33188,
      "old_path": "src/printer.rs",
      "new_id": "291e65f9bc19032c196765f837427a53e8a0a192",
      "new_mode": 33188,
      "new_path": "src/printer.rs"
    },
    {
      "type": "modify",
      "old_id": "a8b86405c6c94a242b18d6656a1756471be535dd",
      "old_mode": 33188,
      "old_path": "src/test_utils/spec_helpers.rs",
      "new_id": "9c7ef8b204eb242b651d01cbeb2b27c51c776bcf",
      "new_mode": 33188,
      "new_path": "src/test_utils/spec_helpers.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "05c4a12886312e0ac1379b5bc7935a714ef5d9ef",
      "new_mode": 33188,
      "new_path": "tests/specs/byte_literals.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6f8e15d7f32c789e22033c382fac234c6d898746",
      "new_mode": 33188,
      "new_path": "tests/specs/headers.txt"
    }
  ]
}
