135 lines
2.9 KiB
JSON
135 lines
2.9 KiB
JSON
{
|
|
"name": "precedence_on_subsequence",
|
|
|
|
"extras": [
|
|
{"type": "PATTERN", "value": "\\s"}
|
|
],
|
|
|
|
"rules": {
|
|
"expression": {
|
|
"type": "PREC_LEFT",
|
|
"value": 0,
|
|
"content": {
|
|
"type": "CHOICE",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "function_call"},
|
|
{"type": "SYMBOL", "name": "identifier"},
|
|
{"type": "SYMBOL", "name": "scope_resolution"}
|
|
]
|
|
}
|
|
},
|
|
|
|
"function_call": {
|
|
"type": "CHOICE",
|
|
"members": [
|
|
{
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "identifier"},
|
|
{"type": "SYMBOL", "name": "expression"}
|
|
]
|
|
},
|
|
|
|
{
|
|
"type": "PREC",
|
|
"value": 1,
|
|
"content": {
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "identifier"},
|
|
{"type": "SYMBOL", "name": "block"}
|
|
]
|
|
}
|
|
},
|
|
|
|
{
|
|
"type": "PREC",
|
|
"value": -1,
|
|
"content": {
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "identifier"},
|
|
{"type": "SYMBOL", "name": "do_block"}
|
|
]
|
|
}
|
|
},
|
|
|
|
{
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "identifier"},
|
|
{
|
|
"type": "PREC",
|
|
"value": 1,
|
|
"content": {
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "expression"},
|
|
{"type": "SYMBOL", "name": "block"}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
},
|
|
|
|
{
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "identifier"},
|
|
{
|
|
"type": "PREC",
|
|
"value": -1,
|
|
"content": {
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "expression"},
|
|
{"type": "SYMBOL", "name": "do_block"}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
|
|
"scope_resolution": {
|
|
"type": "PREC_LEFT",
|
|
"value": 1,
|
|
"content": {
|
|
"type": "CHOICE",
|
|
"members": [
|
|
{
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "SYMBOL", "name": "expression"},
|
|
{"type": "STRING", "value": "::"},
|
|
{"type": "SYMBOL", "name": "expression"}
|
|
]
|
|
},
|
|
{
|
|
"type": "SEQ",
|
|
"members": [
|
|
{"type": "STRING", "value": "::"},
|
|
{"type": "SYMBOL", "name": "expression"}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
|
|
"block": {
|
|
"type": "STRING",
|
|
"value": "{}"
|
|
},
|
|
|
|
"do_block": {
|
|
"type": "STRING",
|
|
"value": "do end"
|
|
},
|
|
|
|
"identifier": {
|
|
"type": "PATTERN",
|
|
"value": "[a-zA-Z]+"
|
|
}
|
|
}
|
|
}
|