[
  {
    "type": "attr_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "attribute",
          "named": true
        }
      ]
    }
  },
  {
    "type": "attr_stmt",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "attr_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "attribute",
    "named": true,
    "fields": {
      "name": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "id",
            "named": true
          }
        ]
      },
      "value": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "id",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "block",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "stmt_list",
          "named": true
        }
      ]
    }
  },
  {
    "type": "edge_stmt",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "attr_list",
          "named": true
        },
        {
          "type": "edgeop",
          "named": true
        },
        {
          "type": "node_id",
          "named": true
        },
        {
          "type": "subgraph",
          "named": true
        }
      ]
    }
  },
  {
    "type": "edgeop",
    "named": true,
    "fields": {}
  },
  {
    "type": "html_internal",
    "named": true,
    "fields": {}
  },
  {
    "type": "html_string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "html_internal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "id",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "html_string",
          "named": true
        },
        {
          "type": "identifier",
          "named": true
        },
        {
          "type": "number_literal",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        },
        {
          "type": "string_literal",
          "named": true
        }
      ]
    }
  },
  {
    "type": "node_id",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "id",
          "named": true
        },
        {
          "type": "port",
          "named": true
        }
      ]
    }
  },
  {
    "type": "node_stmt",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "attr_list",
          "named": true
        },
        {
          "type": "node_id",
          "named": true
        }
      ]
    }
  },
  {
    "type": "port",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "id",
          "named": true
        },
        {
          "type": "operator",
          "named": true
        }
      ]
    }
  },
  {
    "type": "preproc",
    "named": true,
    "extra": true,
    "fields": {}
  },
  {
    "type": "source_file",
    "named": true,
    "root": true,
    "fields": {
      "block": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "id": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "id",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "stmt_list",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "attr_stmt",
          "named": true
        },
        {
          "type": "attribute",
          "named": true
        },
        {
          "type": "edge_stmt",
          "named": true
        },
        {
          "type": "node_stmt",
          "named": true
        },
        {
          "type": "subgraph",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string_literal",
    "named": true,
    "fields": {}
  },
  {
    "type": "subgraph",
    "named": true,
    "fields": {
      "block": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "block",
            "named": true
          }
        ]
      },
      "id": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "id",
            "named": true
          }
        ]
      }
    }
  },
  {
    "type": "\"",
    "named": false
  },
  {
    "type": "#",
    "named": false
  },
  {
    "type": ",",
    "named": false
  },
  {
    "type": "--",
    "named": false
  },
  {
    "type": "->",
    "named": false
  },
  {
    "type": ";",
    "named": false
  },
  {
    "type": "<",
    "named": false
  },
  {
    "type": ">",
    "named": false
  },
  {
    "type": "[",
    "named": false
  },
  {
    "type": "]",
    "named": false
  },
  {
    "type": "comment",
    "named": true,
    "extra": true
  },
  {
    "type": "digraph",
    "named": false
  },
  {
    "type": "edge",
    "named": false
  },
  {
    "type": "graph",
    "named": false
  },
  {
    "type": "identifier",
    "named": true
  },
  {
    "type": "node",
    "named": false
  },
  {
    "type": "number_literal",
    "named": true
  },
  {
    "type": "operator",
    "named": true
  },
  {
    "type": "strict",
    "named": false
  },
  {
    "type": "subgraph",
    "named": false
  },
  {
    "type": "{",
    "named": false
  },
  {
    "type": "}",
    "named": false
  }
]