{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "query",
"rules": {
"program": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "definition"
}
},
"definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "named_node"
},
{
"type": "SYMBOL",
"name": "anonymous_node"
},
{
"type": "SYMBOL",
"name": "missing_node"
},
{
"type": "SYMBOL",
"name": "grouping"
},
{
"type": "SYMBOL",
"name": "predicate"
},
{
"type": "SYMBOL",
"name": "list"
},
{
"type": "SYMBOL",
"name": "field_definition"
}
]
},
"_group_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "definition"
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_group_expression"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_group_expression"
}
]
}
}
]
},
"_named_node_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "definition"
},
{
"type": "SYMBOL",
"name": "negated_field"
},
{
"type": "PREC_LEFT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_named_node_expression"
},
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "_named_node_expression"
}
]
}
}
]
},
"escape_sequence": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "PATTERN",
"value": "."
}
]
}
},
"quantifier": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "*"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "STRING",
"value": "?"
}
]
},
"identifier": {
"type": "PATTERN",
"value": "[a-zA-Z0-9\\-_][a-zA-Z0-9.\\-_]*"
},
"_immediate_identifier": {
"type": "ALIAS",
"content": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PATTERN",
"value": "[a-zA-Z0-9\\-_][a-zA-Z0-9.\\-_]*"
}
},
"named": true,
"value": "identifier"
},
"_node_identifier": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "PREC",
"value": 1,
"content": {
"type": "STRING",
"value": "_"
}
}
]
},
"capture": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "@"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_immediate_identifier"
}
}
]
},
"string": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_content"
},
{
"type": "BLANK"
}
]
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "\""
}
}
]
},
"_immediate_string": {
"type": "SEQ",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "\""
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string_content"
},
{
"type": "BLANK"
}
]
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "\""
}
}
]
},
"string_content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "[^\"\\\\\\n]+"
}
}
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
"parameters": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "capture"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
},
"comment": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ";"
},
{
"type": "PATTERN",
"value": ".*"
}
]
}
}
},
"list": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "definition"
}
},
{
"type": "STRING",
"value": "]"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "capture"
},
{
"type": "FIELD",
"name": "quantifier",
"content": {
"type": "SYMBOL",
"name": "quantifier"
}
}
]
}
}
]
},
"grouping": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_group_expression"
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "BLANK"
}
]
}
]
}
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "capture"
},
{
"type": "FIELD",
"name": "quantifier",
"content": {
"type": "SYMBOL",
"name": "quantifier"
}
}
]
}
}
]
},
"missing_node": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "STRING",
"value": "MISSING"
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "string"
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "capture"
},
{
"type": "FIELD",
"name": "quantifier",
"content": {
"type": "SYMBOL",
"name": "quantifier"
}
}
]
}
}
]
},
"anonymous_node": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "STRING",
"value": "_"
}
]
}
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "capture"
},
{
"type": "FIELD",
"name": "quantifier",
"content": {
"type": "SYMBOL",
"name": "quantifier"
}
}
]
}
}
]
},
"named_node": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_node_identifier"
}
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "supertype",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "/"
}
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_immediate_identifier"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_immediate_string"
},
"named": true,
"value": "string"
}
]
}
}
]
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "_named_node_expression"
}
},
{
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_named_node_expression"
}
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_named_node_expression"
},
{
"type": "STRING",
"value": "."
}
]
}
]
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "capture"
},
{
"type": "FIELD",
"name": "quantifier",
"content": {
"type": "SYMBOL",
"name": "quantifier"
}
}
]
}
}
]
},
"_field_name": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": ":"
}
]
},
"field_definition": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "_field_name"
}
},
{
"type": "SYMBOL",
"name": "definition"
}
]
},
"negated_field": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"predicate": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "STRING",
"value": "."
}
]
},
{
"type": "SYMBOL",
"name": "_immediate_identifier"
},
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "predicate_type"
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "parameters"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"predicate_type": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "?"
},
{
"type": "STRING",
"value": "!"
}
]
}
}
},
"extras": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "\\s+"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": [
"definition"
],
"reserved": {}
}