{
"$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": {}
}