pgf2json 0.2.1

This crate is an Application Programming Interface to load and interpret grammars compiled in Portable Grammar Format (PGF). The PGF format is produced as a final output from the GF compiler. The library provides methods for generating JSON output of a correctly formed PGF file. The API is meant to be used for embedding GF grammars in Rust programs.
Documentation
{
  "abstract": {
    "funs": {
      "apple": {
        "args": [],
        "cat": "N"
      },
      "banana": {
        "args": [],
        "cat": "N"
      },
      "eat": {
        "args": [
          "N"
        ],
        "cat": "Utt"
      }
    },
    "name": "Zero",
    "startcat": "String"
  },
  "concretes": {
    "ZeroEng": {
      "categories": {},
      "ccats": [
        {
          "id": 0,
          "productions": [
            {
              "args": [
                {
                  "fid": 1,
                  "hypos": [
                    2,
                    0
                  ],
                  "type": "PArg"
                }
              ],
              "fid": 4,
              "type": "Apply"
            }
          ]
        },
        {
          "id": 1,
          "productions": [
            {
              "arg": 3,
              "type": "Coerce"
            }
          ]
        }
      ],
      "flags": {},
      "functions": [
        {
          "lins": [
            1
          ],
          "name": "'lindef N'"
        },
        {
          "lins": [
            0
          ],
          "name": "'lindef N'"
        },
        {
          "lins": [
            1
          ],
          "name": "'lindef Utt'"
        },
        {
          "lins": [
            0
          ],
          "name": "'lindef Utt'"
        },
        {
          "lins": [
            2
          ],
          "name": "'apple'"
        },
        {
          "lins": [
            3
          ],
          "name": "'banana'"
        },
        {
          "lins": [
            4
          ],
          "name": "'eat'"
        }
      ],
      "lindefs": [],
      "linrefs": [],
      "printnames": [],
      "productions": {
        "0": [
          {
            "args": [],
            "fid": 4,
            "type": "Apply"
          },
          {
            "args": [],
            "fid": 5,
            "type": "Apply"
          }
        ],
        "1": [
          {
            "args": [
              {
                "fid": 0,
                "hypos": [],
                "type": "PArg"
              }
            ],
            "fid": 6,
            "type": "Apply"
          }
        ]
      },
      "sequences": [
        [
          {
            "args": [
              0,
              0
            ],
            "type": "SymCat"
          }
        ],
        [
          {
            "args": [
              0,
              0
            ],
            "type": "SymLit"
          }
        ],
        [
          {
            "args": [
              "apple"
            ],
            "type": "SymKS"
          }
        ],
        [
          {
            "args": [
              "banana"
            ],
            "type": "SymKS"
          }
        ],
        [
          {
            "args": [
              "eat"
            ],
            "type": "SymKS"
          },
          {
            "args": [
              [
                {
                  "args": [
                    "a"
                  ],
                  "type": "SymKS"
                }
              ],
              [
                {
                  "args": [
                    [
                      {
                        "args": [
                          "an"
                        ],
                        "type": "SymKS"
                      }
                    ],
                    [
                      "a",
                      "e",
                      "i",
                      "o"
                    ]
                  ],
                  "type": "Alt"
                }
              ]
            ],
            "type": "SymKP"
          },
          {
            "args": [
              0,
              0
            ],
            "type": "SymCat"
          }
        ]
      ],
      "totalfids": 0
    }
  }
}