tree-sitter-cmake/src/grammar.json

646 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",
2021-06-07 18:02:13 -04:00
"name": "_command_invocation"
2021-04-10 10:29:19 -04:00
}
},
"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",
2021-06-16 15:37:14 -04:00
"value": "$ENV"
},
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "variable"
},
{
"type": "STRING",
"value": "}"
}
]
},
"cache_var": {
"type": "SEQ",
"members": [
{
"type": "STRING",
2021-06-16 15:37:14 -04:00
"value": "$CACHE"
},
{
"type": "STRING",
"value": "{"
},
{
"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": "\\"
},
{
2021-06-16 15:37:14 -04:00
"type": "PATTERN",
"value": "\\n+"
}
]
}
]
}
},
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-06-07 17:02:35 -04:00
"foreach_command": {
"type": "SEQ",
"members": [
{
2021-06-07 17:02:35 -04:00
"type": "SYMBOL",
2021-06-14 15:33:30 -04:00
"name": "foreach"
},
{
"type": "STRING",
2021-06-06 09:44:05 -04:00
"value": "("
},
2021-06-16 15:37:14 -04:00
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[ \\t]+"
},
{
"type": "PATTERN",
"value": "\\n+"
}
]
}
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "STRING",
"value": "IN"
2021-06-14 16:12:45 -04:00
},
{
"type": "STRING",
2021-06-16 15:37:14 -04:00
"value": "RANGE"
2021-06-14 16:12:45 -04:00
},
{
"type": "STRING",
2021-06-16 15:37:14 -04:00
"value": "ZIP_LISTS"
2021-06-14 16:12:45 -04:00
},
{
"type": "STRING",
"value": "LISTS"
},
{
"type": "STRING",
"value": "ITEMS"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
2021-06-16 15:37:14 -04:00
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[ \\t]+"
},
{
"type": "PATTERN",
"value": "\\n+"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "STRING",
"value": "IN"
2021-06-14 16:12:45 -04:00
},
{
"type": "STRING",
2021-06-16 15:37:14 -04:00
"value": "RANGE"
2021-06-14 16:12:45 -04:00
},
{
"type": "STRING",
2021-06-16 15:37:14 -04:00
"value": "ZIP_LISTS"
2021-06-14 16:12:45 -04:00
},
{
"type": "STRING",
"value": "LISTS"
},
{
"type": "STRING",
"value": "ITEMS"
}
]
},
{
"type": "BLANK"
}
]
}
]
}
}
}
]
},
2021-06-06 14:38:18 -04:00
{
"type": "STRING",
"value": ")"
2021-06-07 17:02:35 -04:00
}
]
},
"endforeach_command": {
"type": "SEQ",
"members": [
2021-06-06 14:38:18 -04:00
{
2021-06-07 17:02:35 -04:00
"type": "SYMBOL",
2021-06-14 15:33:30 -04:00
"name": "endforeach"
2021-06-06 14:38:18 -04:00
},
{
"type": "STRING",
"value": "("
},
2021-06-07 17:02:35 -04:00
{
"type": "REPEAT",
"content": {
2021-06-16 15:37:14 -04:00
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[ \\t]+"
},
{
"type": "PATTERN",
"value": "\\n+"
}
]
2021-06-07 17:02:35 -04:00
}
},
2021-06-06 14:38:18 -04:00
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "argument"
2021-06-06 14:38:18 -04:00
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
2021-06-07 18:07:49 -04:00
"foreach_loop": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "foreach_command"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_command_invocation"
}
},
{
"type": "SYMBOL",
"name": "endforeach_command"
}
]
},
"normal_command": {
2021-04-10 10:29:19 -04:00
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
2021-06-16 15:37:14 -04:00
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[ \\t]+"
},
{
"type": "PATTERN",
"value": "\\n+"
}
]
2021-04-10 10:29:19 -04:00
}
},
{
"type": "CHOICE",
"members": [
{
2021-06-16 15:37:14 -04:00
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "REPEAT",
"content": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "PATTERN",
"value": "[ \\t]+"
},
{
"type": "PATTERN",
"value": "\\n+"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "argument"
},
{
"type": "BLANK"
}
]
}
]
}
}
}
]
2021-04-10 10:29:19 -04:00
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": ")"
}
]
},
2021-06-07 18:02:13 -04:00
"_command_invocation": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
2021-06-07 17:29:15 -04:00
"name": "normal_command"
2021-06-07 17:02:35 -04:00
},
{
"type": "SYMBOL",
2021-06-07 18:07:49 -04:00
"name": "foreach_loop"
}
]
2021-06-16 15:37:14 -04:00
},
"foreach": {
"type": "PATTERN",
"value": "[fF][oO][rR][eE][aA][cC][hH]"
},
"endforeach": {
"type": "PATTERN",
"value": "[eE][nN][dD][fF][oO][rR][eE][aA][cC][hH]"
},
"identifier": {
"type": "PATTERN",
"value": "[A-Za-z_][A-Za-z0-9_]*"
},
"integer": {
"type": "PATTERN",
"value": "[+-]*\\d+"
2021-04-10 10:29:19 -04:00
}
},
"extras": [
{
"type": "PATTERN",
"value": "\\s"
}
],
"conflicts": [],
"precedences": [],
"externals": [],
"inline": [],
"supertypes": []
}