tree-sitter/test/fixtures/test_grammars/precedence_on_token/grammar.json
2019-01-11 17:26:45 -08:00

100 lines
1.8 KiB
JSON

{
"name": "precedence_on_token",
"extras": [
{"type": "SYMBOL", "name": "comment"},
{"type": "PATTERN", "value": "\\s"}
],
"rules": {
"program": {
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "regex"
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "SYMBOL",
"name": "slash"
}
]
}
},
"comment": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "//.*|/\\*[^*]*\\*/"
}
}
},
"string": {
"type": "SEQ",
"members": [
{"type": "STRING", "value": "\""},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 2,
"content": {
"type": "PATTERN",
"value": "[^\"\n\\\\]+"
}
}
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{"type": "STRING", "value": "\""}
]
},
"escape_sequence": {
"type": "PATTERN",
"value": "\\\\."
},
"regex": {
"type": "PATTERN",
"value": "/[^/\n]+/[a-z]*"
},
"identifier": {
"type": "PATTERN",
"value": "[a-z]\\w*"
},
"slash": {
"type": "STRING",
"value": "/"
}
}
}