arborium-postscript 2.16.0

PostScript grammar for arborium (tree-sitter bindings)
Documentation
{
  "$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
  "name": "postscript",
  "rules": {
    "document": {
      "type": "REPEAT",
      "content": {
        "type": "CHOICE",
        "members": [
          {
            "type": "SYMBOL",
            "name": "document_structure_comment"
          },
          {
            "type": "SYMBOL",
            "name": "_element"
          }
        ]
      }
    },
    "_element": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SYMBOL",
          "name": "string"
        },
        {
          "type": "SYMBOL",
          "name": "numeric"
        },
        {
          "type": "SYMBOL",
          "name": "array"
        },
        {
          "type": "SYMBOL",
          "name": "procedure"
        },
        {
          "type": "SYMBOL",
          "name": "dictionary"
        },
        {
          "type": "SYMBOL",
          "name": "operator"
        },
        {
          "type": "SYMBOL",
          "name": "literal"
        }
      ]
    },
    "array": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "["
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_element"
          }
        },
        {
          "type": "STRING",
          "value": "]"
        }
      ]
    },
    "procedure": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "{"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_element"
          }
        },
        {
          "type": "STRING",
          "value": "}"
        }
      ]
    },
    "dictionary": {
      "type": "SEQ",
      "members": [
        {
          "type": "STRING",
          "value": "<<"
        },
        {
          "type": "REPEAT",
          "content": {
            "type": "SYMBOL",
            "name": "_element"
          }
        },
        {
          "type": "STRING",
          "value": ">>"
        }
      ]
    },
    "operator": {
      "type": "PATTERN",
      "value": "[!\"#$&'*+,\\-.0-9:;=?@A-Z^_`a-z|~]+"
    },
    "literal": {
      "type": "PATTERN",
      "value": "\\/\\/?[!\"#$&'*+,\\-.0-9:;=?@A-Z^_`a-z|~]+"
    },
    "string": {
      "type": "CHOICE",
      "members": [
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "("
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "CHOICE",
                "members": [
                  {
                    "type": "SYMBOL",
                    "name": "literal_string"
                  },
                  {
                    "type": "SYMBOL",
                    "name": "escape_sequence"
                  }
                ]
              }
            },
            {
              "type": "STRING",
              "value": ")"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "<"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "hexadecimal_string"
              }
            },
            {
              "type": "STRING",
              "value": ">"
            }
          ]
        },
        {
          "type": "SEQ",
          "members": [
            {
              "type": "STRING",
              "value": "<~"
            },
            {
              "type": "REPEAT",
              "content": {
                "type": "SYMBOL",
                "name": "base85_string"
              }
            },
            {
              "type": "STRING",
              "value": "~>"
            }
          ]
        }
      ]
    },
    "escape_sequence": {
      "type": "CHOICE",
      "members": [
        {
          "type": "PATTERN",
          "value": "\\\\[0-9]{1,3}"
        },
        {
          "type": "PATTERN",
          "value": "\\\\[^0-9]"
        }
      ]
    },
    "comment": {
      "type": "PATTERN",
      "value": "%.*"
    }
  },
  "extras": [
    {
      "type": "SYMBOL",
      "name": "comment"
    },
    {
      "type": "PATTERN",
      "value": "\\n"
    },
    {
      "type": "PATTERN",
      "value": "\\r"
    },
    {
      "type": "PATTERN",
      "value": "\\s"
    }
  ],
  "conflicts": [],
  "precedences": [],
  "externals": [
    {
      "type": "SYMBOL",
      "name": "document_structure_comment"
    },
    {
      "type": "SYMBOL",
      "name": "literal_string"
    },
    {
      "type": "SYMBOL",
      "name": "hexadecimal_string"
    },
    {
      "type": "SYMBOL",
      "name": "base85_string"
    },
    {
      "type": "SYMBOL",
      "name": "numeric"
    }
  ],
  "inline": [],
  "supertypes": [],
  "reserved": {}
}