graphlang 0.1.3

Terminal and graphical tool to create and explore graph grammars.
Documentation
{
  "start_graph": {
    "nodes": [
      {
        "id": 0,
        "label": "a"
      },
      {
        "id": 1,
        "label": "a"
      },
      {
        "id": 2,
        "label": "a"
      },
      {
        "id": 3,
        "label": "A"
      }
    ],
    "edges": [
      {
        "from": 0,
        "to": 1,
        "label": null
      },
      {
        "from": 1,
        "to": 2,
        "label": null
      },
      {
        "from": 0,
        "to": 3,
        "label": null
      },
      {
        "from": 1,
        "to": 3,
        "label": null
      },
      {
        "from": 2,
        "to": 3,
        "label": null
      }
    ]
  },
  "productions": {
    "finalize": {
      "lhs": {
        "nodes": [
          {
            "id": 0,
            "label": "a"
          },
          {
            "id": 1,
            "label": "a"
          },
          {
            "id": 2,
            "label": "a"
          },
          {
            "id": 3,
            "label": "A"
          }
        ],
        "edges": [
          {
            "from": 0,
            "to": 1,
            "label": null
          },
          {
            "from": 1,
            "to": 2,
            "label": null
          },
          {
            "from": 0,
            "to": 3,
            "label": null
          },
          {
            "from": 1,
            "to": 3,
            "label": null
          },
          {
            "from": 2,
            "to": 3,
            "label": null
          }
        ]
      },
      "int": {
        "nodes": [
          {
            "id": 0,
            "label": "a"
          },
          {
            "id": 1,
            "label": "a"
          },
          {
            "id": 2,
            "label": "a"
          }
        ],
        "edges": [
          {
            "from": 0,
            "to": 1,
            "label": null
          },
          {
            "from": 1,
            "to": 2,
            "label": null
          }
        ]
      },
      "rhs": {
        "nodes": [
          {
            "id": 0,
            "label": "a"
          },
          {
            "id": 1,
            "label": "a"
          },
          {
            "id": 2,
            "label": "a"
          },
          {
            "id": 3,
            "label": "a"
          },
          {
            "id": 4,
            "label": "a"
          },
          {
            "id": 5,
            "label": "a"
          }
        ],
        "edges": [
          {
            "from": 0,
            "to": 1,
            "label": null
          },
          {
            "from": 1,
            "to": 2,
            "label": null
          },
          {
            "from": 0,
            "to": 3,
            "label": null
          },
          {
            "from": 1,
            "to": 4,
            "label": null
          },
          {
            "from": 2,
            "to": 5,
            "label": null
          },
          {
            "from": 3,
            "to": 4,
            "label": null
          },
          {
            "from": 4,
            "to": 5,
            "label": null
          }
        ]
      }
    },
    "extend": {
      "lhs": {
        "nodes": [
          {
            "id": 0,
            "label": "a"
          },
          {
            "id": 1,
            "label": "a"
          },
          {
            "id": 2,
            "label": "a"
          },
          {
            "id": 3,
            "label": "A"
          }
        ],
        "edges": [
          {
            "from": 0,
            "to": 1,
            "label": null
          },
          {
            "from": 1,
            "to": 2,
            "label": null
          },
          {
            "from": 0,
            "to": 3,
            "label": null
          },
          {
            "from": 1,
            "to": 3,
            "label": null
          },
          {
            "from": 2,
            "to": 3,
            "label": null
          }
        ]
      },
      "int": {
        "nodes": [
          {
            "id": 0,
            "label": "a"
          },
          {
            "id": 1,
            "label": "a"
          },
          {
            "id": 2,
            "label": "a"
          }
        ],
        "edges": [
          {
            "from": 0,
            "to": 1,
            "label": null
          },
          {
            "from": 1,
            "to": 2,
            "label": null
          }
        ]
      },
      "rhs": {
        "nodes": [
          {
            "id": 0,
            "label": "a"
          },
          {
            "id": 1,
            "label": "a"
          },
          {
            "id": 2,
            "label": "a"
          },
          {
            "id": 3,
            "label": "a"
          },
          {
            "id": 4,
            "label": "a"
          },
          {
            "id": 5,
            "label": "a"
          },
          {
            "id": 6,
            "label": "A"
          }
        ],
        "edges": [
          {
            "from": 0,
            "to": 1,
            "label": null
          },
          {
            "from": 1,
            "to": 2,
            "label": null
          },
          {
            "from": 0,
            "to": 3,
            "label": null
          },
          {
            "from": 1,
            "to": 4,
            "label": null
          },
          {
            "from": 2,
            "to": 5,
            "label": null
          },
          {
            "from": 3,
            "to": 4,
            "label": null
          },
          {
            "from": 4,
            "to": 5,
            "label": null
          },
          {
            "from": 3,
            "to": 6,
            "label": null
          },
          {
            "from": 4,
            "to": 6,
            "label": null
          },
          {
            "from": 5,
            "to": 6,
            "label": null
          }
        ]
      }
    }
  },
  "terminal_nodes": [
    "a"
  ]
}