schemas/tsq.json

[
  {
    "type": "alternation",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "choice",
          "named": true
        },
        {
          "type": "predicate",
          "named": true
        }
      ]
    }
  },
  {
    "type": "anonymous_leaf",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        }
      ]
    }
  },
  {
    "type": "child",
    "named": true,
    "fields": {
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "alternation",
            "named": true
          },
          {
            "type": "anonymous_leaf",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "named_node",
            "named": true
          },
          {
            "type": "wildcard_node",
            "named": true
          }
        ]
      },
      "quantifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "one_or_more",
            "named": true
          },
          {
            "type": "zero_or_more",
            "named": true
          },
          {
            "type": "zero_or_one",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "capture",
          "named": true
        },
        {
          "type": "field_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "choice",
    "named": true,
    "fields": {
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "alternation",
            "named": true
          },
          {
            "type": "anonymous_leaf",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "named_node",
            "named": true
          },
          {
            "type": "wildcard_node",
            "named": true
          }
        ]
      },
      "quantifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "one_or_more",
            "named": true
          },
          {
            "type": "zero_or_more",
            "named": true
          },
          {
            "type": "zero_or_one",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "capture",
          "named": true
        }
      ]
    }
  },
  {
    "type": "field_name",
    "named": true,
    "fields": {}
  },
  {
    "type": "group",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "predicate",
          "named": true
        }
      ]
    }
  },
  {
    "type": "named_node",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "anchor",
          "named": true
        },
        {
          "type": "child",
          "named": true
        },
        {
          "type": "negated_child",
          "named": true
        },
        {
          "type": "node_name",
          "named": true
        },
        {
          "type": "predicate",
          "named": true
        }
      ]
    }
  },
  {
    "type": "negated_child",
    "named": true,
    "fields": {},
    "children": {
      "multiple": false,
      "required": true,
      "types": [
        {
          "type": "field_name",
          "named": true
        }
      ]
    }
  },
  {
    "type": "node_name",
    "named": true,
    "fields": {}
  },
  {
    "type": "pattern",
    "named": true,
    "fields": {
      "pattern": {
        "multiple": false,
        "required": true,
        "types": [
          {
            "type": "alternation",
            "named": true
          },
          {
            "type": "anonymous_leaf",
            "named": true
          },
          {
            "type": "group",
            "named": true
          },
          {
            "type": "named_node",
            "named": true
          },
          {
            "type": "wildcard_node",
            "named": true
          }
        ]
      },
      "quantifier": {
        "multiple": false,
        "required": false,
        "types": [
          {
            "type": "one_or_more",
            "named": true
          },
          {
            "type": "zero_or_more",
            "named": true
          },
          {
            "type": "zero_or_one",
            "named": true
          }
        ]
      }
    },
    "children": {
      "multiple": false,
      "required": false,
      "types": [
        {
          "type": "capture",
          "named": true
        }
      ]
    }
  },
  {
    "type": "predicate",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": true,
      "types": [
        {
          "type": "capture",
          "named": true
        },
        {
          "type": "predicate_name",
          "named": true
        },
        {
          "type": "string",
          "named": true
        }
      ]
    }
  },
  {
    "type": "query",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "pattern",
          "named": true
        },
        {
          "type": "predicate",
          "named": true
        }
      ]
    }
  },
  {
    "type": "string",
    "named": true,
    "fields": {},
    "children": {
      "multiple": true,
      "required": false,
      "types": [
        {
          "type": "escape_sequence",
          "named": true
        }
      ]
    }
  },
  {
    "type": "wildcard_node",
    "named": true,
    "fields": {}
  },
  {
    "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": "anchor",
    "named": true
  },
  {
    "type": "capture",
    "named": true
  },
  {
    "type": "comment",
    "named": true
  },
  {
    "type": "escape_sequence",
    "named": true
  },
  {
    "type": "one_or_more",
    "named": true
  },
  {
    "type": "predicate_name",
    "named": true
  },
  {
    "type": "zero_or_more",
    "named": true
  },
  {
    "type": "zero_or_one",
    "named": true
  }
]