tree-sitter-cmake/src/grammar.json

750 lines
14 KiB
JSON
Raw Normal View History

2021-04-10 10:29:19 -04:00
{
"name": "cmake",
2021-04-10 10:29:19 -04:00
"rules": {
"source_file": {
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "command_invocation"
}
},
"line_ending": {
"type": "SYMBOL",
"name": "newline"
},
2021-04-10 15:55:47 -04:00
"seperation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "space"
},
{
"type": "SYMBOL",
"name": "line_ending"
}
]
},
2021-04-10 10:29:19 -04:00
"space": {
"type": "PATTERN",
"value": "[ \\t]+"
},
"newline": {
"type": "PATTERN",
"value": "\\n"
},
"identifier": {
"type": "PATTERN",
"value": "[A-Za-z_][A-Za-z0-9_]*"
},
"integer": {
"type": "PATTERN",
"value": "[+-]*\\d+"
},
"escape_sequence": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_escape_identity"
},
{
"type": "SYMBOL",
"name": "_escape_encoded"
},
{
"type": "SYMBOL",
"name": "_escape_semicolon"
}
]
},
"_escape_identity": {
"type": "PATTERN",
"value": "\\\\[^A-Za-z0-9;]"
},
"_escape_encoded": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "\\t"
},
{
"type": "STRING",
"value": "\\r"
},
{
"type": "STRING",
"value": "\\n"
}
]
},
"_escape_semicolon": {
"type": "STRING",
"value": ";"
},
"variable": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[a-zA-Z0-9/_.+-]"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
}
},
"variable_ref": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "normal_var"
},
{
"type": "SYMBOL",
"name": "env_var"
},
{
"type": "SYMBOL",
"name": "cache_var"
}
]
},
"normal_var": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "${"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": "}"
}
]
},
"env_var": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$ENV{"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": "}"
}
]
},
"cache_var": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$CACHE{"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": "}"
}
]
},
2021-04-10 10:29:19 -04:00
"argument": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
2021-04-11 09:48:26 -04:00
"name": "bracket_argument"
2021-04-10 15:55:47 -04:00
},
2021-04-11 11:27:20 -04:00
{
"type": "SYMBOL",
"name": "quoted_argument"
},
2021-04-10 15:55:47 -04:00
{
"type": "SYMBOL",
2021-04-11 09:48:26 -04:00
"name": "unquoted_argument"
2021-04-10 10:29:19 -04:00
}
]
},
2021-04-10 15:55:47 -04:00
"bracket_argument": {
"type": "SEQ",
2021-04-10 10:29:19 -04:00
"members": [
{
"type": "SYMBOL",
2021-04-10 19:10:37 -04:00
"name": "_bracket_open"
2021-04-10 15:55:47 -04:00
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "bracket_content"
2021-04-10 15:55:47 -04:00
},
{
"type": "BLANK"
}
]
2021-04-10 10:29:19 -04:00
},
{
"type": "SYMBOL",
2021-04-10 19:10:37 -04:00
"name": "_bracket_close"
2021-04-10 15:55:47 -04:00
}
]
},
2021-04-10 19:10:37 -04:00
"_bracket_open": {
2021-04-10 15:55:47 -04:00
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "STRING",
"value": "="
}
},
{
"type": "STRING",
"value": "["
}
]
},
"bracket_content": {
2021-04-10 15:55:47 -04:00
"type": "REPEAT1",
"content": {
"type": "PATTERN",
"value": "[^\\]]"
}
},
2021-04-10 19:10:37 -04:00
"_bracket_close": {
2021-04-10 15:55:47 -04:00
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "]"
},
{
"type": "REPEAT",
"content": {
"type": "STRING",
"value": "="
}
},
{
"type": "STRING",
"value": "]"
2021-04-10 10:29:19 -04:00
}
]
},
2021-04-11 11:27:20 -04:00
"quoted_argument": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "CHOICE",
2021-04-11 11:27:20 -04:00
"members": [
{
"type": "SYMBOL",
"name": "quoted_element"
2021-04-11 11:27:20 -04:00
},
{
"type": "BLANK"
2021-04-11 11:27:20 -04:00
}
]
},
{
"type": "STRING",
"value": "\""
2021-04-11 11:27:20 -04:00
}
]
},
"quoted_element": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_ref"
},
{
"type": "PATTERN",
"value": "[^\\\\\"]"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\\"
},
{
"type": "SYMBOL",
"name": "newline"
}
]
}
]
}
},
2021-04-11 09:48:26 -04:00
"unquoted_argument": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable_ref"
},
2021-04-11 09:48:26 -04:00
{
"type": "PATTERN",
"value": "[^ ()#\\\"\\\\]"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
}
]
}
},
2021-04-10 10:29:19 -04:00
"arguments": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_seperated_arguments"
}
}
]
},
"_seperated_arguments": {
"type": "PREC_LEFT",
2021-04-10 15:55:47 -04:00
"value": 0,
2021-04-10 10:29:19 -04:00
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "BLANK"
}
]
}
]
}
},
"foreach_loop": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "space"
}
},
{
"type": "STRING",
"value": "foreach"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "foreach_items"
},
{
"type": "SYMBOL",
"name": "foreach_range"
},
{
"type": "SYMBOL",
"name": "foreach_lists_items"
},
{
"type": "SYMBOL",
"name": "foreach_zip_lists"
}
]
},
{
"type": "STRING",
"value": ")"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "command_invocation"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "space"
}
},
{
"type": "STRING",
"value": "endforeach"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"foreach_items": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "loop_var",
"content": {
"type": "SYMBOL",
"name": "variable"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "arguments"
},
{
"type": "BLANK"
}
]
}
]
},
"foreach_lists_items": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "b"
}
]
},
"foreach_zip_lists": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "c"
}
]
},
"foreach_range": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "foreach_range_stop"
},
{
"type": "SYMBOL",
"name": "foreach_range_full"
}
]
},
"foreach_range_stop": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "loop_var",
"content": {
"type": "SYMBOL",
"name": "variable"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "STRING",
"value": "RANGE"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "FIELD",
"name": "stop",
"content": {
"type": "SYMBOL",
"name": "integer"
}
}
]
},
"foreach_range_full": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "loop_var",
"content": {
"type": "SYMBOL",
"name": "variable"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "STRING",
"value": "RANGE"
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "FIELD",
"name": "start",
"content": {
"type": "SYMBOL",
"name": "integer"
}
},
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "FIELD",
"name": "stop",
"content": {
"type": "SYMBOL",
"name": "integer"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "FIELD",
"name": "step",
"content": {
"type": "SYMBOL",
"name": "integer"
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"normal_command": {
2021-04-10 10:29:19 -04:00
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "space"
}
},
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "space"
2021-04-10 10:29:19 -04:00
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "seperation"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
"command_invocation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "normal_command"
},
{
"type": "SYMBOL",
"name": "foreach_loop"
}
]
2021-04-10 10:29:19 -04:00
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}