)]}'
{
  "commit": "b01fd533fef78b088674bad73267b89bea98e904",
  "tree": "de68ee97cc624f412d3e357db0d45eb98227207d",
  "parents": [
    "28264269de9ff88d9ee7110fc56ac2d2db275bec"
  ],
  "author": {
    "name": "Pablo Galindo Salgado",
    "email": "Pablogsal@gmail.com",
    "time": "Sun Sep 05 13:58:52 2021"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sun Sep 05 13:58:52 2021"
  },
  "message": "Extract visitors from the grammar nodes and call makers in the peg generator (GH-28172)\n\nSimplify the peg generator logic by extracting as much visitors as possible to disentangle the flow and separate concerns.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "71b0fdc56465bf224550db8c06d17bac55060b42",
      "old_mode": 33188,
      "old_path": "Lib/test/test_peg_generator/test_pegen.py",
      "new_id": "99c75f09aa1f7cecfc737c4129c8f805f5ffd7ab",
      "new_mode": 33188,
      "new_path": "Lib/test/test_peg_generator/test_pegen.py"
    },
    {
      "type": "modify",
      "old_id": "87227b7f2f7078059f7c5734d1e27eaaf2747e3d",
      "old_mode": 33188,
      "old_path": "Parser/parser.c",
      "new_id": "3cea370c5ad2d0afc8f110f40560aeebb6c4b0c6",
      "new_mode": 33188,
      "new_path": "Parser/parser.c"
    },
    {
      "type": "modify",
      "old_id": "a12fe787f427db146f98e2311d4dcb79025335e6",
      "old_mode": 33261,
      "old_path": "Tools/peg_generator/pegen/__main__.py",
      "new_id": "2910d6ccf1c694f799a607db432c9180e34d5a56",
      "new_mode": 33261,
      "new_path": "Tools/peg_generator/pegen/__main__.py"
    },
    {
      "type": "modify",
      "old_id": "6f0a091ff47bd095a328403484d4d59519143138",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/build.py",
      "new_id": "bf01078ff0b4a0cd3ddf2489421beb107661c1ce",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/build.py"
    },
    {
      "type": "modify",
      "old_id": "e928fd3de1704f46997d7792191093f3f86cec92",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/c_generator.py",
      "new_id": "d15e91098dfe9cff5a9e831285dfe811bfd467e2",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/c_generator.py"
    },
    {
      "type": "modify",
      "old_id": "50ced22c2a5cf2cb981b621016cb3760de1333e7",
      "old_mode": 33261,
      "old_path": "Tools/peg_generator/pegen/first_sets.py",
      "new_id": "611ef514d09bdae34bb2bf5c05594be25f8d9e0e",
      "new_mode": 33261,
      "new_path": "Tools/peg_generator/pegen/first_sets.py"
    },
    {
      "type": "modify",
      "old_id": "66fd5b329a51363fcb98d39db5f44c6ee5de1347",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/grammar.py",
      "new_id": "fa47b98201c0fd423b05eac9f59b00edc0a3fb54",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/grammar.py"
    },
    {
      "type": "modify",
      "old_id": "7362ec5fa0f4dec3b793c180fcfb0d1e69c7be44",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/grammar_visualizer.py",
      "new_id": "ab5c6364f639083c46499a973483cadf81e50bb7",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/grammar_visualizer.py"
    },
    {
      "type": "modify",
      "old_id": "6a07f6e8b7bfe327fcb47ca7dd724591828937d7",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/keywordgen.py",
      "new_id": "35a5e1a229cdec0a88a46e4bc82dcddcdda13fd5",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/keywordgen.py"
    },
    {
      "type": "modify",
      "old_id": "33ecee1ed441f9834219ed7cc9d0d14bef9ca892",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/parser_generator.py",
      "new_id": "f2105d8faa273ae1ee47fe95b5f68130b21b7a72",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/parser_generator.py"
    },
    {
      "type": "modify",
      "old_id": "201bf2baa805ff24288461cb412cafc18871b402",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/python_generator.py",
      "new_id": "7aa730ae1c95342c9a97de63b5513b8e09dc7f99",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/python_generator.py"
    },
    {
      "type": "modify",
      "old_id": "e0928a4af701d84e6633a61455deba09deb89d33",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/testutil.py",
      "new_id": "8e5dbc5cdbb33999f928a1d3896f0556a7836380",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/testutil.py"
    },
    {
      "type": "modify",
      "old_id": "e7d6980d8b2dda1234a5934767d7c74102e73094",
      "old_mode": 33188,
      "old_path": "Tools/peg_generator/pegen/validator.py",
      "new_id": "c48a01eedf5d5c2608f9b517e5e8f871e8c5b8c3",
      "new_mode": 33188,
      "new_path": "Tools/peg_generator/pegen/validator.py"
    }
  ]
}
