diff options
Diffstat (limited to 'vendor/tree-sitter-tcl/src/grammar.json')
| -rw-r--r-- | vendor/tree-sitter-tcl/src/grammar.json | 1606 |
1 files changed, 1606 insertions, 0 deletions
diff --git a/vendor/tree-sitter-tcl/src/grammar.json b/vendor/tree-sitter-tcl/src/grammar.json new file mode 100644 index 0000000..81e2995 --- /dev/null +++ b/vendor/tree-sitter-tcl/src/grammar.json @@ -0,0 +1,1606 @@ +{ + "name": "tcl", + "word": "simple_word", + "rules": { + "source_file": { + "type": "SYMBOL", + "name": "_commands" + }, + "_commands": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_terminator" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_command" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "_terminator" + } + }, + { + "type": "SYMBOL", + "name": "_command" + } + ] + } + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_terminator" + } + } + ] + }, + "_terminator": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "\n" + }, + { + "type": "STRING", + "value": ";" + } + ] + }, + "comment": { + "type": "PATTERN", + "value": "#[^\\n]*" + }, + "_builtin": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "conditional" + }, + { + "type": "SYMBOL", + "name": "global" + }, + { + "type": "SYMBOL", + "name": "namespace" + }, + { + "type": "SYMBOL", + "name": "procedure" + }, + { + "type": "SYMBOL", + "name": "set" + }, + { + "type": "SYMBOL", + "name": "try" + }, + { + "type": "SYMBOL", + "name": "foreach" + }, + { + "type": "SYMBOL", + "name": "expr_cmd" + }, + { + "type": "SYMBOL", + "name": "while" + }, + { + "type": "SYMBOL", + "name": "catch" + } + ] + }, + "while": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "while" + }, + { + "type": "SYMBOL", + "name": "expr" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "expr_cmd": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "expr" + }, + { + "type": "SYMBOL", + "name": "expr" + } + ] + }, + "foreach": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "foreach" + }, + { + "type": "SYMBOL", + "name": "arguments" + }, + { + "type": "SYMBOL", + "name": "_word_simple" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "global": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "global" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_concat_word" + } + } + ] + }, + "namespace": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "namespace" + }, + { + "type": "SYMBOL", + "name": "word_list" + } + ] + }, + "try": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "try" + }, + { + "type": "SYMBOL", + "name": "_word" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "on" + }, + { + "type": "STRING", + "value": "error" + }, + { + "type": "SYMBOL", + "name": "arguments" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "finally" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "finally": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "finally" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "_command": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_builtin" + }, + { + "type": "SYMBOL", + "name": "comment" + }, + { + "type": "SYMBOL", + "name": "command" + } + ] + }, + "command": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_word" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "word_list" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "word_list": { + "type": "REPEAT1", + "content": { + "type": "SYMBOL", + "name": "_word" + } + }, + "unpack": { + "type": "STRING", + "value": "{*}" + }, + "_word": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "unpack" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "braced_word" + }, + { + "type": "SYMBOL", + "name": "_concat_word" + } + ] + } + ] + }, + "_word_simple": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "braced_word_simple" + }, + { + "type": "SYMBOL", + "name": "_concat_word" + } + ] + } + ] + }, + "_concat_word": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "escaped_character" + }, + { + "type": "SYMBOL", + "name": "command_substitution" + }, + { + "type": "SYMBOL", + "name": "simple_word" + }, + { + "type": "SYMBOL", + "name": "quoted_word" + }, + { + "type": "SYMBOL", + "name": "variable_substitution" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "concat" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "escaped_character" + }, + { + "type": "SYMBOL", + "name": "command_substitution" + }, + { + "type": "SYMBOL", + "name": "simple_word" + }, + { + "type": "SYMBOL", + "name": "quoted_word" + }, + { + "type": "SYMBOL", + "name": "variable_substitution" + } + ] + } + ] + } + } + ] + }, + "_ident": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PATTERN", + "value": "[a-zA-Z_][a-zA-Z0-9_]*" + } + }, + "id": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_ns_delim" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_ident" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_ns_delim" + }, + { + "type": "SYMBOL", + "name": "_ident" + } + ] + } + } + ] + } + ] + }, + "array_index": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_concat_word" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "variable_substitution": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "SYMBOL", + "name": "id" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "$" + }, + { + "type": "STRING", + "value": "{" + }, + { + "type": "PATTERN", + "value": "[^}]+" + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "array_index" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "braced_word": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_commands" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "braced_word_simple": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "braced_word_simple" + }, + { + "type": "SYMBOL", + "name": "_concat_word" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "set": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "set" + }, + { + "type": "SYMBOL", + "name": "_word" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "procedure": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "proc" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_word" + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "_word" + } + } + ] + }, + "_argument_word": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "simple_word" + }, + { + "type": "SYMBOL", + "name": "quoted_word" + }, + { + "type": "SYMBOL", + "name": "braced_word" + } + ] + }, + "argument": { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "simple_word" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "simple_word" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "default", + "content": { + "type": "SYMBOL", + "name": "_argument_word" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + ] + }, + "arguments": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "argument" + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + { + "type": "SYMBOL", + "name": "simple_word" + } + ] + }, + "_expr": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "simple_word" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "SYMBOL", + "name": "unary_expr" + }, + { + "type": "SYMBOL", + "name": "binop_expr" + }, + { + "type": "SYMBOL", + "name": "ternary_expr" + }, + { + "type": "SYMBOL", + "name": "_concat_word" + } + ] + }, + "expr": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + }, + "unary_expr": { + "type": "PREC_LEFT", + "value": 150, + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "~" + }, + { + "type": "STRING", + "value": "!" + } + ] + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + "binop_expr": { + "type": "CHOICE", + "members": [ + { + "type": "PREC_LEFT", + "value": 140, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "**" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 130, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "/" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 130, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 130, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "%" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 120, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 120, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 110, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "<<" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 110, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ">>" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 100, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ">" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 100, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "<" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 100, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ">=" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 100, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "<=" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 90, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "==" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 90, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "!=" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 80, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "eq" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 80, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "ne" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 70, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "in" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_concat_word" + }, + { + "type": "SYMBOL", + "name": "braced_word_simple" + } + ] + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 70, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "ni" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_concat_word" + }, + { + "type": "SYMBOL", + "name": "braced_word_simple" + } + ] + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 60, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "&" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 50, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "^" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 40, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "|" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 30, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "&&" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": 20, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "||" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + } + ] + }, + "ternary_expr": { + "type": "PREC_LEFT", + "value": 10, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": "?" + }, + { + "type": "SYMBOL", + "name": "_expr" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_expr" + } + ] + } + }, + "elseif": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "elseif" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "expr" + } + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "else": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "conditional": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "if" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "expr" + } + }, + { + "type": "SYMBOL", + "name": "_word" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "elseif" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "else" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "catch": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "catch" + }, + { + "type": "SYMBOL", + "name": "_word" + } + ] + }, + "quoted_word": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "variable_substitution" + }, + { + "type": "SYMBOL", + "name": "_quoted_word_content" + }, + { + "type": "SYMBOL", + "name": "command_substitution" + }, + { + "type": "SYMBOL", + "name": "escaped_character" + } + ] + } + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, + "escaped_character": { + "type": "PATTERN", + "value": "\\\\." + }, + "_quoted_word_content": { + "type": "TOKEN", + "content": { + "type": "PREC", + "value": -1, + "content": { + "type": "PATTERN", + "value": "[^$\\\\\\[\\]\"]+" + } + } + }, + "command_substitution": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "_command" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "simple_word": { + "type": "TOKEN", + "content": { + "type": "PATTERN", + "value": "[^!$\\s\\\\\\[\\]{}();\"]+" + } + } + }, + "extras": [ + { + "type": "PATTERN", + "value": "\\s+" + }, + { + "type": "PATTERN", + "value": "\\\\\\r?\\n" + } + ], + "conflicts": [], + "precedences": [], + "externals": [ + { + "type": "SYMBOL", + "name": "concat" + }, + { + "type": "SYMBOL", + "name": "_ns_delim" + } + ], + "inline": [ + "_commands", + "_builtin", + "_terminator", + "_word" + ], + "supertypes": [] +} |
