summaryrefslogtreecommitdiff
path: root/vendor/tree-sitter-tcl/src/grammar.json
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/tree-sitter-tcl/src/grammar.json')
-rw-r--r--vendor/tree-sitter-tcl/src/grammar.json1606
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": []
+}