{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "jjdescription",
"rules": {
"document": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "scissors"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "text"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
},
"change": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "A"
},
{
"type": "STRING",
"value": "M"
},
{
"type": "STRING",
"value": "D"
},
{
"type": "STRING",
"value": "C"
},
{
"type": "STRING",
"value": "R"
}
]
}
},
{
"type": "STRING",
"value": " "
},
{
"type": "SYMBOL",
"name": "filepath"
}
]
},
"filepath": {
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
"scissors": {
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "JJ: ignore-rest\\r?\\n"
},
"named": true,
"value": "comment"
},
{
"type": "ALIAS",
"content": {
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
}
},
"named": true,
"value": "scissors_inner"
},
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "JJ: describe "
},
{
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
{
"type": "PATTERN",
"value": "\\r?\\n"
}
]
},
{
"type": "STRING",
"value": "\u0000"
}
]
},
"named": true,
"value": "comment"
}
]
},
"comment": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "JJ:"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_text_comment"
},
{
"type": "SYMBOL",
"name": "_change_comment"
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"_change_comment": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[\\f\\v ]+"
},
{
"type": "SYMBOL",
"name": "change"
}
]
},
"_text_comment": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[\\f\\v ]+"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[^AMD ]"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
"named": true,
"value": "comment_text"
}
]
},
"text": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^J]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "J"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^J]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "JJ"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^:]"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\\r\\n]+?"
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"extras": [],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}