tree-sitter-bp/src/grammar.json

1014 lines
22 KiB
JSON
Raw Normal View History

2024-04-07 20:59:34 +02:00
{
"name": "bp",
2024-04-07 20:59:34 +02:00
"rules": {
"source_file": {
2024-04-07 22:37:52 +02:00
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_definition"
}
},
"_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment"
2024-04-08 02:36:27 +02:00
},
{
"type": "SYMBOL",
"name": "module"
2024-04-07 22:37:52 +02:00
}
]
},
"comment": {
"type": "CHOICE",
2024-04-08 09:48:10 +02:00
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "(\\\\+(.|\\r?\\n)|[^\\\\\\n])*"
}
]
2024-04-08 09:48:10 +02:00
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"type": "STRING",
"value": "/"
}
]
2024-04-08 09:48:10 +02:00
}
]
},
2024-04-07 22:37:52 +02:00
"assignment": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
2024-04-08 03:13:43 +02:00
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "STRING",
"value": "+="
}
]
},
"named": true,
"value": "operator"
2024-04-07 22:37:52 +02:00
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
},
2024-04-08 02:36:27 +02:00
"module": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_old_module"
},
{
"type": "SYMBOL",
"name": "_new_module"
}
]
},
"_old_module": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "_colon_property"
}
},
"named": true,
"value": "property"
2024-04-08 02:36:27 +02:00
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "_colon_property"
}
},
"named": true,
"value": "property"
2024-04-08 02:36:27 +02:00
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"_new_module": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
2024-04-08 02:36:27 +02:00
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "_equal_property"
}
},
"named": true,
"value": "property"
2024-04-08 02:36:27 +02:00
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "_equal_property"
}
},
"named": true,
"value": "property"
2024-04-08 02:36:27 +02:00
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
2024-04-07 22:37:52 +02:00
"_expr": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
2024-04-08 00:39:47 +02:00
{
"type": "SYMBOL",
"name": "boolean_literal"
},
2024-04-07 22:37:52 +02:00
{
"type": "SYMBOL",
"name": "integer_literal"
},
{
"type": "SYMBOL",
"name": "_string_literal"
2024-04-08 00:24:14 +02:00
},
{
"type": "SYMBOL",
"name": "select_expression"
},
2024-04-08 00:24:14 +02:00
{
"type": "SYMBOL",
"name": "list_expression"
2024-04-08 00:36:21 +02:00
},
{
"type": "SYMBOL",
"name": "map_expression"
2024-04-08 03:12:22 +02:00
},
{
"type": "SYMBOL",
"name": "binary_expression"
2024-04-07 22:37:52 +02:00
}
]
},
"identifier": {
"type": "PATTERN",
"value": "[_\\p{XID_Start}][_\\p{XID_Continue}]*"
},
2024-04-08 00:39:47 +02:00
"boolean_literal": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "true"
},
{
"type": "STRING",
"value": "false"
}
]
},
2024-04-07 22:37:52 +02:00
"integer_literal": {
2024-04-07 23:49:15 +02:00
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "BLANK"
}
]
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
},
"_string_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "raw_string_literal"
},
{
"type": "SYMBOL",
"name": "interpreted_string_literal"
}
]
},
"raw_string_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "`"
},
{
"type": "PATTERN",
"value": "[^`]+"
},
{
"type": "STRING",
"value": "`"
}
]
}
},
"interpreted_string_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^\"\\n\\\\]+"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "\""
}
}
]
},
"escape_sequence": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[^xuU]"
},
{
"type": "PATTERN",
"value": "\\d{2,3}"
},
{
"type": "PATTERN",
"value": "x[0-9a-fA-F]{2,}"
},
{
"type": "PATTERN",
"value": "u[0-9a-fA-F]{4}"
},
{
"type": "PATTERN",
"value": "U[0-9a-fA-F]{8}"
}
]
}
]
}
2024-04-08 00:24:14 +02:00
},
"select_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "select"
},
{
"type": "STRING",
"value": "("
},
{
"type": "SYMBOL",
"name": "select_value"
},
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "select_cases"
},
{
"type": "STRING",
"value": ")"
}
]
},
"select_value": {
2024-04-23 17:43:10 +02:00
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_select_value"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_select_value"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_select_value"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"_select_value": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "name",
"content": {
2024-04-23 16:56:10 +02:00
"type": "SYMBOL",
"name": "identifier"
2024-04-08 02:25:09 +02:00
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "arguments",
2024-04-08 02:25:09 +02:00
"content": {
"type": "CHOICE",
2024-04-08 02:25:09 +02:00
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_string_literal"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_string_literal"
}
]
}
}
]
2024-04-08 02:25:09 +02:00
},
{
"type": "BLANK"
2024-04-08 02:25:09 +02:00
}
]
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"select_cases": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "select_case"
},
{
"type": "STRING",
"value": ","
}
]
}
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"select_case": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "pattern",
"content": {
2024-04-23 17:43:10 +02:00
"type": "SYMBOL",
"name": "select_pattern"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_case_value"
}
}
]
},
2024-04-23 17:43:10 +02:00
"select_pattern": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_select_pattern"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_select_pattern"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_select_pattern"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ")"
}
]
}
]
},
"_select_pattern": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_string_literal"
},
{
"type": "SYMBOL",
"name": "boolean_literal"
},
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "default"
},
"named": true,
"value": "default"
}
]
},
"_case_value": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "unset"
},
"named": true,
"value": "unset"
},
{
"type": "SYMBOL",
"name": "_expr"
}
]
},
2024-04-08 00:24:14 +02:00
"list_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
2024-04-08 02:46:43 +02:00
"type": "FIELD",
"name": "element",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
2024-04-08 00:24:14 +02:00
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
2024-04-08 02:46:43 +02:00
"type": "FIELD",
"name": "element",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
2024-04-08 00:24:14 +02:00
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
2024-04-08 00:36:21 +02:00
},
"map_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "_colon_property"
}
},
"named": true,
"value": "property"
2024-04-08 00:36:21 +02:00
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "ALIAS",
"content": {
"type": "FIELD",
"name": "property",
"content": {
"type": "SYMBOL",
"name": "_colon_property"
}
},
"named": true,
"value": "property"
2024-04-08 00:36:21 +02:00
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
2024-04-08 03:12:22 +02:00
"binary_expression": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
2024-04-08 03:13:43 +02:00
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "+"
},
"named": true,
"value": "operator"
2024-04-08 03:12:22 +02:00
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
}
},
2024-04-08 00:36:21 +02:00
"_colon_property": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "field",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
2024-04-08 02:36:27 +02:00
},
"_equal_property": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "field",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expr"
}
}
]
2024-04-07 20:59:34 +02:00
}
},
"extras": [
{
"type": "PATTERN",
2024-04-07 22:37:52 +02:00
"value": "\\s+"
2024-04-07 23:20:57 +02:00
},
{
"type": "SYMBOL",
"name": "comment"
2024-04-07 20:59:34 +02:00
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}