diff options
| author | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-01-22 01:44:22 +0100 |
|---|---|---|
| committer | Mitja Felicijan <mitja.felicijan@gmail.com> | 2026-01-22 01:44:22 +0100 |
| commit | c7239b2906abb48110e3d41a18e94810af8ab915 (patch) | |
| tree | a8c9af6694fd429d45fbdd8373d24ff8bf22db2b /vendor/tree-sitter-javascript/src/grammar.json | |
| parent | 3abc76cce48f3ae66e28ec99af648dc5fdf8bf4a (diff) | |
| download | crep-c7239b2906abb48110e3d41a18e94810af8ab915.tar.gz | |
Add JavaScript grammar
Diffstat (limited to 'vendor/tree-sitter-javascript/src/grammar.json')
| -rw-r--r-- | vendor/tree-sitter-javascript/src/grammar.json | 6914 |
1 files changed, 6914 insertions, 0 deletions
diff --git a/vendor/tree-sitter-javascript/src/grammar.json b/vendor/tree-sitter-javascript/src/grammar.json new file mode 100644 index 0000000..7168bb4 --- /dev/null +++ b/vendor/tree-sitter-javascript/src/grammar.json @@ -0,0 +1,6914 @@ +{ + "name": "javascript", + "word": "identifier", + "rules": { + "program": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "hash_bang_line" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "hash_bang_line": { + "type": "PATTERN", + "value": "#!.*" + }, + "export_statement": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "export" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "SYMBOL", + "name": "_from_clause" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_export" + }, + { + "type": "SYMBOL", + "name": "_from_clause" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "export_clause" + }, + { + "type": "SYMBOL", + "name": "_from_clause" + } + ] + }, + { + "type": "SYMBOL", + "name": "export_clause" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "decorator", + "content": { + "type": "SYMBOL", + "name": "decorator" + } + } + }, + { + "type": "STRING", + "value": "export" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "declaration", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "default" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "declaration", + "content": { + "type": "SYMBOL", + "name": "declaration" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + } + ] + } + ] + } + ] + } + ] + } + ] + }, + "namespace_export": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "as" + }, + { + "type": "SYMBOL", + "name": "_module_export_name" + } + ] + }, + "export_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "export_specifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "export_specifier" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "export_specifier": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_module_export_name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "as" + }, + { + "type": "FIELD", + "name": "alias", + "content": { + "type": "SYMBOL", + "name": "_module_export_name" + } + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_module_export_name": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "string" + } + ] + }, + "declaration": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "function_declaration" + }, + { + "type": "SYMBOL", + "name": "generator_function_declaration" + }, + { + "type": "SYMBOL", + "name": "class_declaration" + }, + { + "type": "SYMBOL", + "name": "lexical_declaration" + }, + { + "type": "SYMBOL", + "name": "variable_declaration" + } + ] + }, + "import": { + "type": "TOKEN", + "content": { + "type": "STRING", + "value": "import" + } + }, + "import_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "import" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "import_clause" + }, + { + "type": "SYMBOL", + "name": "_from_clause" + } + ] + }, + { + "type": "FIELD", + "name": "source", + "content": { + "type": "SYMBOL", + "name": "string" + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "import_attribute" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "import_clause": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_import" + }, + { + "type": "SYMBOL", + "name": "named_imports" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "namespace_import" + }, + { + "type": "SYMBOL", + "name": "named_imports" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + "_from_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "from" + }, + { + "type": "FIELD", + "name": "source", + "content": { + "type": "SYMBOL", + "name": "string" + } + } + ] + }, + "namespace_import": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "STRING", + "value": "as" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "named_imports": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "import_specifier" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "import_specifier" + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "import_specifier": { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_module_export_name" + } + }, + { + "type": "STRING", + "value": "as" + }, + { + "type": "FIELD", + "name": "alias", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + } + ] + } + ] + }, + "import_attribute": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "with" + }, + { + "type": "SYMBOL", + "name": "object" + } + ] + }, + "statement": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "export_statement" + }, + { + "type": "SYMBOL", + "name": "import_statement" + }, + { + "type": "SYMBOL", + "name": "debugger_statement" + }, + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "SYMBOL", + "name": "declaration" + }, + { + "type": "SYMBOL", + "name": "statement_block" + }, + { + "type": "SYMBOL", + "name": "if_statement" + }, + { + "type": "SYMBOL", + "name": "switch_statement" + }, + { + "type": "SYMBOL", + "name": "for_statement" + }, + { + "type": "SYMBOL", + "name": "for_in_statement" + }, + { + "type": "SYMBOL", + "name": "while_statement" + }, + { + "type": "SYMBOL", + "name": "do_statement" + }, + { + "type": "SYMBOL", + "name": "try_statement" + }, + { + "type": "SYMBOL", + "name": "with_statement" + }, + { + "type": "SYMBOL", + "name": "break_statement" + }, + { + "type": "SYMBOL", + "name": "continue_statement" + }, + { + "type": "SYMBOL", + "name": "return_statement" + }, + { + "type": "SYMBOL", + "name": "throw_statement" + }, + { + "type": "SYMBOL", + "name": "empty_statement" + }, + { + "type": "SYMBOL", + "name": "labeled_statement" + } + ] + }, + "expression_statement": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "variable_declaration": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "var" + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_declarator" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "variable_declarator" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "lexical_declaration": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "kind", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "let" + }, + { + "type": "STRING", + "value": "const" + } + ] + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "variable_declarator" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "variable_declarator" + } + ] + } + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "variable_declarator": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_destructuring_pattern" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_initializer" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "statement_block": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "STRING", + "value": "}" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "else_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "else" + }, + { + "type": "SYMBOL", + "name": "statement" + } + ] + }, + "if_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "if" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "consequence", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "else_clause" + } + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "switch_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "switch" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "switch_body" + } + } + ] + }, + "for_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "for" + }, + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "initializer", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "lexical_declaration" + }, + { + "type": "SYMBOL", + "name": "variable_declaration" + }, + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "SYMBOL", + "name": "empty_statement" + } + ] + } + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression_statement" + }, + { + "type": "SYMBOL", + "name": "empty_statement" + } + ] + } + }, + { + "type": "FIELD", + "name": "increment", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "STRING", + "value": ")" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "for_in_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "for" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "await" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_for_header" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "_for_header": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_lhs_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + ] + } + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "kind", + "content": { + "type": "STRING", + "value": "var" + } + }, + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_destructuring_pattern" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_initializer" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "kind", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "let" + }, + { + "type": "STRING", + "value": "const" + } + ] + } + }, + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_destructuring_pattern" + } + ] + } + } + ] + } + ] + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "in" + }, + { + "type": "STRING", + "value": "of" + } + ] + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "_expressions" + } + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "while_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "while" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "do_statement": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "do" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + }, + { + "type": "STRING", + "value": "while" + }, + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_semicolon" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "try_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "try" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "handler", + "content": { + "type": "SYMBOL", + "name": "catch_clause" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "finalizer", + "content": { + "type": "SYMBOL", + "name": "finally_clause" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "with_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "with" + }, + { + "type": "FIELD", + "name": "object", + "content": { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + }, + "break_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "break" + }, + { + "type": "FIELD", + "name": "label", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "statement_identifier" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "continue_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "continue" + }, + { + "type": "FIELD", + "name": "label", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "statement_identifier" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "debugger_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "debugger" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "return_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "return" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "throw_statement": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "throw" + }, + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + "empty_statement": { + "type": "STRING", + "value": ";" + }, + "labeled_statement": { + "type": "PREC_DYNAMIC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "label", + "content": { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "named": true, + "value": "statement_identifier" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + ] + } + }, + "switch_body": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "switch_case" + }, + { + "type": "SYMBOL", + "name": "switch_default" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "switch_case": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "case" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "_expressions" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + } + ] + }, + "switch_default": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "default" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "statement" + } + } + } + ] + }, + "catch_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "catch" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "FIELD", + "name": "parameter", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_destructuring_pattern" + } + ] + } + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + } + ] + }, + "finally_clause": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "finally" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + } + ] + }, + "parenthesized_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "_expressions": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "sequence_expression" + } + ] + }, + "expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "primary_expression" + }, + { + "type": "SYMBOL", + "name": "glimmer_template" + }, + { + "type": "SYMBOL", + "name": "_jsx_element" + }, + { + "type": "SYMBOL", + "name": "assignment_expression" + }, + { + "type": "SYMBOL", + "name": "augmented_assignment_expression" + }, + { + "type": "SYMBOL", + "name": "await_expression" + }, + { + "type": "SYMBOL", + "name": "unary_expression" + }, + { + "type": "SYMBOL", + "name": "binary_expression" + }, + { + "type": "SYMBOL", + "name": "ternary_expression" + }, + { + "type": "SYMBOL", + "name": "update_expression" + }, + { + "type": "SYMBOL", + "name": "new_expression" + }, + { + "type": "SYMBOL", + "name": "yield_expression" + } + ] + }, + "primary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "subscript_expression" + }, + { + "type": "SYMBOL", + "name": "member_expression" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + }, + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + "named": true, + "value": "identifier" + }, + { + "type": "SYMBOL", + "name": "this" + }, + { + "type": "SYMBOL", + "name": "super" + }, + { + "type": "SYMBOL", + "name": "number" + }, + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "SYMBOL", + "name": "template_string" + }, + { + "type": "SYMBOL", + "name": "regex" + }, + { + "type": "SYMBOL", + "name": "true" + }, + { + "type": "SYMBOL", + "name": "false" + }, + { + "type": "SYMBOL", + "name": "null" + }, + { + "type": "SYMBOL", + "name": "object" + }, + { + "type": "SYMBOL", + "name": "array" + }, + { + "type": "SYMBOL", + "name": "function_expression" + }, + { + "type": "SYMBOL", + "name": "arrow_function" + }, + { + "type": "SYMBOL", + "name": "generator_function" + }, + { + "type": "SYMBOL", + "name": "class" + }, + { + "type": "SYMBOL", + "name": "meta_property" + }, + { + "type": "SYMBOL", + "name": "call_expression" + } + ] + }, + "yield_expression": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "yield" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "*" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + } + }, + "object": { + "type": "PREC", + "value": "object", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pair" + }, + { + "type": "SYMBOL", + "name": "spread_element" + }, + { + "type": "SYMBOL", + "name": "method_definition" + }, + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "named": true, + "value": "shorthand_property_identifier" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pair" + }, + { + "type": "SYMBOL", + "name": "spread_element" + }, + { + "type": "SYMBOL", + "name": "method_definition" + }, + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "named": true, + "value": "shorthand_property_identifier" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + }, + "object_pattern": { + "type": "PREC", + "value": "object", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pair_pattern" + }, + { + "type": "SYMBOL", + "name": "rest_pattern" + }, + { + "type": "SYMBOL", + "name": "object_assignment_pattern" + }, + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "named": true, + "value": "shorthand_property_identifier_pattern" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pair_pattern" + }, + { + "type": "SYMBOL", + "name": "rest_pattern" + }, + { + "type": "SYMBOL", + "name": "object_assignment_pattern" + }, + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "named": true, + "value": "shorthand_property_identifier_pattern" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + } + }, + "assignment_pattern": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "pattern" + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "object_assignment_pattern": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "named": true, + "value": "shorthand_property_identifier_pattern" + }, + { + "type": "SYMBOL", + "name": "_destructuring_pattern" + } + ] + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "array": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "spread_element" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "spread_element" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "array_pattern": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pattern" + }, + { + "type": "SYMBOL", + "name": "assignment_pattern" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pattern" + }, + { + "type": "SYMBOL", + "name": "assignment_pattern" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "glimmer_template": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "open_tag", + "content": { + "type": "SYMBOL", + "name": "glimmer_opening_tag" + } + }, + { + "type": "FIELD", + "name": "content", + "content": { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_glimmer_template_content" + } + } + }, + { + "type": "FIELD", + "name": "close_tag", + "content": { + "type": "SYMBOL", + "name": "glimmer_closing_tag" + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "open_tag", + "content": { + "type": "SYMBOL", + "name": "glimmer_opening_tag" + } + }, + { + "type": "FIELD", + "name": "close_tag", + "content": { + "type": "SYMBOL", + "name": "glimmer_closing_tag" + } + } + ] + } + ] + }, + "_glimmer_template_content": { + "type": "PATTERN", + "value": ".{1,}" + }, + "glimmer_opening_tag": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<template>" + } + ] + }, + "glimmer_closing_tag": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "</template>" + } + ] + }, + "_jsx_element": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "jsx_element" + }, + { + "type": "SYMBOL", + "name": "jsx_self_closing_element" + } + ] + }, + "jsx_element": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "open_tag", + "content": { + "type": "SYMBOL", + "name": "jsx_opening_element" + } + }, + { + "type": "REPEAT", + "content": { + "type": "SYMBOL", + "name": "_jsx_child" + } + }, + { + "type": "FIELD", + "name": "close_tag", + "content": { + "type": "SYMBOL", + "name": "jsx_closing_element" + } + } + ] + }, + "jsx_text": { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[^{}<>\\n& ]([^{}<>\\n&]*[^{}<>\\n& ])?" + }, + { + "type": "PATTERN", + "value": "\\/\\/[^\\n]*" + } + ] + }, + "html_character_reference": { + "type": "PATTERN", + "value": "&(#([xX][0-9a-fA-F]{1,6}|[0-9]{1,5})|[A-Za-z]{1,30});" + }, + "jsx_expression": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "sequence_expression" + }, + { + "type": "SYMBOL", + "name": "spread_element" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "_jsx_child": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "jsx_text" + }, + { + "type": "SYMBOL", + "name": "html_character_reference" + }, + { + "type": "SYMBOL", + "name": "_jsx_element" + }, + { + "type": "SYMBOL", + "name": "jsx_expression" + } + ] + }, + "jsx_opening_element": { + "type": "PREC_DYNAMIC", + "value": -1, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_jsx_element_name" + } + }, + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "attribute", + "content": { + "type": "SYMBOL", + "name": "_jsx_attribute" + } + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] + } + }, + "jsx_identifier": { + "type": "PATTERN", + "value": "[a-zA-Z_$][a-zA-Z\\d_$]*-[a-zA-Z\\d_$\\-]*" + }, + "_jsx_identifier": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "jsx_identifier" + }, + "named": true, + "value": "identifier" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "nested_identifier": { + "type": "PREC", + "value": "member", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "nested_identifier" + }, + "named": true, + "value": "member_expression" + } + ] + } + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "FIELD", + "name": "property", + "content": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "property_identifier" + } + } + ] + } + }, + "jsx_namespace_name": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_jsx_identifier" + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "SYMBOL", + "name": "_jsx_identifier" + } + ] + }, + "_jsx_element_name": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_jsx_identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "nested_identifier" + }, + "named": true, + "value": "member_expression" + }, + { + "type": "SYMBOL", + "name": "jsx_namespace_name" + } + ] + }, + "jsx_closing_element": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "</" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_jsx_element_name" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ">" + } + ] + }, + "jsx_self_closing_element": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "<" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_jsx_element_name" + } + }, + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "attribute", + "content": { + "type": "SYMBOL", + "name": "_jsx_attribute" + } + } + }, + { + "type": "STRING", + "value": "/>" + } + ] + }, + "_jsx_attribute": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "jsx_attribute" + }, + { + "type": "SYMBOL", + "name": "jsx_expression" + } + ] + }, + "_jsx_attribute_name": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_jsx_identifier" + }, + "named": true, + "value": "property_identifier" + }, + { + "type": "SYMBOL", + "name": "jsx_namespace_name" + } + ] + }, + "jsx_attribute": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_jsx_attribute_name" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "SYMBOL", + "name": "_jsx_attribute_value" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "_jsx_string": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "unescaped_double_jsx_string_fragment" + }, + "named": true, + "value": "string_fragment" + }, + { + "type": "SYMBOL", + "name": "html_character_reference" + } + ] + } + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "unescaped_single_jsx_string_fragment" + }, + "named": true, + "value": "string_fragment" + }, + { + "type": "SYMBOL", + "name": "html_character_reference" + } + ] + } + }, + { + "type": "STRING", + "value": "'" + } + ] + } + ] + }, + "unescaped_double_jsx_string_fragment": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "([^\"&]|&[^#A-Za-z])+" + } + } + }, + "unescaped_single_jsx_string_fragment": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "([^'&]|&[^#A-Za-z])+" + } + } + }, + "_jsx_attribute_value": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_jsx_string" + }, + "named": true, + "value": "string" + }, + { + "type": "SYMBOL", + "name": "jsx_expression" + }, + { + "type": "SYMBOL", + "name": "_jsx_element" + } + ] + }, + "class": { + "type": "PREC", + "value": "literal", + "content": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "decorator", + "content": { + "type": "SYMBOL", + "name": "decorator" + } + } + }, + { + "type": "STRING", + "value": "class" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_heritage" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "class_body" + } + } + ] + } + }, + "class_declaration": { + "type": "PREC", + "value": "declaration", + "content": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "decorator", + "content": { + "type": "SYMBOL", + "name": "decorator" + } + } + }, + { + "type": "STRING", + "value": "class" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "class_heritage" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "class_body" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "class_heritage": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "extends" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "function_expression": { + "type": "PREC", + "value": "literal", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "async" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "function" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "_call_signature" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + } + ] + } + }, + "function_declaration": { + "type": "PREC_RIGHT", + "value": "declaration", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "async" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "function" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "SYMBOL", + "name": "_call_signature" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "generator_function": { + "type": "PREC", + "value": "literal", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "async" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "function" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "BLANK" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "_call_signature" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + } + ] + } + }, + "generator_function_declaration": { + "type": "PREC_RIGHT", + "value": "declaration", + "content": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "async" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "function" + }, + { + "type": "STRING", + "value": "*" + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "identifier" + } + }, + { + "type": "SYMBOL", + "name": "_call_signature" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "BLANK" + } + ] + } + ] + } + }, + "arrow_function": { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "async" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "parameter", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + "named": true, + "value": "identifier" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + } + }, + { + "type": "SYMBOL", + "name": "_call_signature" + } + ] + }, + { + "type": "STRING", + "value": "=>" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "statement_block" + } + ] + } + } + ] + }, + "_call_signature": { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "formal_parameters" + } + }, + "_formal_parameter": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pattern" + }, + { + "type": "SYMBOL", + "name": "assignment_pattern" + } + ] + }, + "optional_chain": { + "type": "STRING", + "value": "?." + }, + "call_expression": { + "type": "CHOICE", + "members": [ + { + "type": "PREC", + "value": "call", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "function", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "import" + } + ] + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "arguments" + }, + { + "type": "SYMBOL", + "name": "template_string" + } + ] + } + } + ] + } + }, + { + "type": "PREC", + "value": "member", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "function", + "content": { + "type": "SYMBOL", + "name": "primary_expression" + } + }, + { + "type": "FIELD", + "name": "optional_chain", + "content": { + "type": "SYMBOL", + "name": "optional_chain" + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + } + ] + } + } + ] + }, + "new_expression": { + "type": "PREC_RIGHT", + "value": "new", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "new" + }, + { + "type": "FIELD", + "name": "constructor", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "primary_expression" + }, + { + "type": "SYMBOL", + "name": "new_expression" + } + ] + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "PREC_DYNAMIC", + "value": 1, + "content": { + "type": "SYMBOL", + "name": "arguments" + } + }, + { + "type": "BLANK" + } + ] + } + } + ] + } + }, + "await_expression": { + "type": "PREC", + "value": "unary_void", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "await" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + }, + "member_expression": { + "type": "PREC", + "value": "member", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + }, + { + "type": "SYMBOL", + "name": "import" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "FIELD", + "name": "optional_chain", + "content": { + "type": "SYMBOL", + "name": "optional_chain" + } + } + ] + }, + { + "type": "FIELD", + "name": "property", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "private_property_identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "property_identifier" + } + ] + } + } + ] + } + }, + "subscript_expression": { + "type": "PREC_RIGHT", + "value": "member", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + } + ] + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "optional_chain", + "content": { + "type": "SYMBOL", + "name": "optional_chain" + } + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": "[" + }, + { + "type": "FIELD", + "name": "index", + "content": { + "type": "SYMBOL", + "name": "_expressions" + } + }, + { + "type": "STRING", + "value": "]" + } + ] + } + }, + "_lhs_expression": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "member_expression" + }, + { + "type": "SYMBOL", + "name": "subscript_expression" + }, + { + "type": "SYMBOL", + "name": "_identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + "named": true, + "value": "identifier" + }, + { + "type": "SYMBOL", + "name": "_destructuring_pattern" + } + ] + }, + "assignment_expression": { + "type": "PREC_RIGHT", + "value": "assign", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "parenthesized_expression" + }, + { + "type": "SYMBOL", + "name": "_lhs_expression" + } + ] + } + }, + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "_augmented_assignment_lhs": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "member_expression" + }, + { + "type": "SYMBOL", + "name": "subscript_expression" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_reserved_identifier" + }, + "named": true, + "value": "identifier" + }, + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "parenthesized_expression" + } + ] + }, + "augmented_assignment_expression": { + "type": "PREC_RIGHT", + "value": "assign", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "_augmented_assignment_lhs" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "+=" + }, + { + "type": "STRING", + "value": "-=" + }, + { + "type": "STRING", + "value": "*=" + }, + { + "type": "STRING", + "value": "/=" + }, + { + "type": "STRING", + "value": "%=" + }, + { + "type": "STRING", + "value": "^=" + }, + { + "type": "STRING", + "value": "&=" + }, + { + "type": "STRING", + "value": "|=" + }, + { + "type": "STRING", + "value": ">>=" + }, + { + "type": "STRING", + "value": ">>>=" + }, + { + "type": "STRING", + "value": "<<=" + }, + { + "type": "STRING", + "value": "**=" + }, + { + "type": "STRING", + "value": "&&=" + }, + { + "type": "STRING", + "value": "||=" + }, + { + "type": "STRING", + "value": "??=" + } + ] + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "_initializer": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "=" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "_destructuring_pattern": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "object_pattern" + }, + { + "type": "SYMBOL", + "name": "array_pattern" + } + ] + }, + "spread_element": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "..." + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + }, + "ternary_expression": { + "type": "PREC_RIGHT", + "value": "ternary", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "condition", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_ternary_qmark" + }, + "named": false, + "value": "?" + }, + { + "type": "FIELD", + "name": "consequence", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "alternative", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "binary_expression": { + "type": "CHOICE", + "members": [ + { + "type": "PREC_LEFT", + "value": "logical_and", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "&&" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "logical_or", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "||" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_shift", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": ">>" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_shift", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": ">>>" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_shift", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "<<" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "bitwise_and", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "&" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "bitwise_xor", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "^" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "bitwise_or", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "|" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_plus", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "+" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_plus", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "-" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_times", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "*" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_times", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "/" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_times", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "%" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_RIGHT", + "value": "binary_exp", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "**" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_relation", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "<" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_relation", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "<=" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_equality", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "==" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_equality", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "===" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_equality", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "!=" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_equality", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "!==" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_relation", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": ">=" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_relation", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": ">" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "ternary", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "??" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_relation", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "instanceof" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + { + "type": "PREC_LEFT", + "value": "binary_relation", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "left", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "private_property_identifier" + } + ] + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "STRING", + "value": "in" + } + }, + { + "type": "FIELD", + "name": "right", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + } + ] + }, + "unary_expression": { + "type": "PREC_LEFT", + "value": "unary_void", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "!" + }, + { + "type": "STRING", + "value": "~" + }, + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "+" + }, + { + "type": "STRING", + "value": "typeof" + }, + { + "type": "STRING", + "value": "void" + }, + { + "type": "STRING", + "value": "delete" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + }, + "update_expression": { + "type": "PREC_LEFT", + "value": 0, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "expression" + } + }, + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "++" + }, + { + "type": "STRING", + "value": "--" + } + ] + } + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "operator", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "++" + }, + { + "type": "STRING", + "value": "--" + } + ] + } + }, + { + "type": "FIELD", + "name": "argument", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + } + ] + } + }, + "sequence_expression": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "expression" + } + ] + } + } + ] + } + }, + "string": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\"" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "unescaped_double_string_fragment" + }, + "named": true, + "value": "string_fragment" + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + } + ] + } + }, + { + "type": "STRING", + "value": "\"" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "'" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "unescaped_single_string_fragment" + }, + "named": true, + "value": "string_fragment" + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + } + ] + } + }, + { + "type": "STRING", + "value": "'" + } + ] + } + ] + }, + "unescaped_double_string_fragment": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^\"\\\\\\r\\n]+" + } + } + }, + "unescaped_single_string_fragment": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "PATTERN", + "value": "[^'\\\\\\r\\n]+" + } + } + }, + "escape_sequence": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "[^xu0-7]" + }, + { + "type": "PATTERN", + "value": "[0-7]{1,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]+\\}" + }, + { + "type": "PATTERN", + "value": "[\\r?][\\n\\u2028\\u2029]" + } + ] + } + ] + } + }, + "comment": { + "type": "CHOICE", + "members": [ + { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "//" + }, + { + "type": "PATTERN", + "value": ".*" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "/*" + }, + { + "type": "PATTERN", + "value": "[^*]*\\*+([^/*][^*]*\\*+)*" + }, + { + "type": "STRING", + "value": "/" + } + ] + } + ] + } + } + ] + }, + "template_string": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "`" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "_template_chars" + }, + "named": true, + "value": "string_fragment" + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "SYMBOL", + "name": "template_substitution" + } + ] + } + }, + { + "type": "STRING", + "value": "`" + } + ] + }, + "template_substitution": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "${" + }, + { + "type": "SYMBOL", + "name": "_expressions" + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "regex": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "/" + }, + { + "type": "FIELD", + "name": "pattern", + "content": { + "type": "SYMBOL", + "name": "regex_pattern" + } + }, + { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": 1, + "content": { + "type": "STRING", + "value": "/" + } + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "FIELD", + "name": "flags", + "content": { + "type": "SYMBOL", + "name": "regex_flags" + } + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "regex_pattern": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PREC", + "value": -1, + "content": { + "type": "REPEAT1", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "PATTERN", + "value": "." + } + ] + }, + { + "type": "PATTERN", + "value": "[^\\]\\n\\\\]" + } + ] + } + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "\\" + }, + { + "type": "PATTERN", + "value": "." + } + ] + }, + { + "type": "PATTERN", + "value": "[^/\\\\\\[\\n]" + } + ] + } + } + } + }, + "regex_flags": { + "type": "IMMEDIATE_TOKEN", + "content": { + "type": "PATTERN", + "value": "[a-z]+" + } + }, + "number": { + "type": "TOKEN", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0x" + }, + { + "type": "STRING", + "value": "0X" + } + ] + }, + { + "type": "PATTERN", + "value": "[\\da-fA-F](_?[\\da-fA-F])*" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "[1-9]" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "CHOICE", + "members": [ + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "e" + }, + { + "type": "STRING", + "value": "E" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "+" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "." + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "e" + }, + { + "type": "STRING", + "value": "E" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "+" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0" + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "[1-9]" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "_" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "e" + }, + { + "type": "STRING", + "value": "E" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "-" + }, + { + "type": "STRING", + "value": "+" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0b" + }, + { + "type": "STRING", + "value": "0B" + } + ] + }, + { + "type": "PATTERN", + "value": "[0-1](_?[0-1])*" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0o" + }, + { + "type": "STRING", + "value": "0O" + } + ] + }, + { + "type": "PATTERN", + "value": "[0-7](_?[0-7])*" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0x" + }, + { + "type": "STRING", + "value": "0X" + } + ] + }, + { + "type": "PATTERN", + "value": "[\\da-fA-F](_?[\\da-fA-F])*" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0b" + }, + { + "type": "STRING", + "value": "0B" + } + ] + }, + { + "type": "PATTERN", + "value": "[0-1](_?[0-1])*" + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "0o" + }, + { + "type": "STRING", + "value": "0O" + } + ] + }, + { + "type": "PATTERN", + "value": "[0-7](_?[0-7])*" + } + ] + }, + { + "type": "PATTERN", + "value": "\\d(_?\\d)*" + } + ] + }, + { + "type": "STRING", + "value": "n" + } + ] + } + ] + } + }, + "_identifier": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "undefined" + }, + { + "type": "SYMBOL", + "name": "identifier" + } + ] + }, + "identifier": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "PATTERN", + "value": "[^\\x00-\\x1F\\s\\p{Zs}0-9:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "[^\\x00-\\x1F\\s\\p{Zs}:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" + } + } + ] + } + }, + "private_property_identifier": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "#" + }, + { + "type": "PATTERN", + "value": "[^\\x00-\\x1F\\s\\p{Zs}0-9:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" + }, + { + "type": "REPEAT", + "content": { + "type": "PATTERN", + "value": "[^\\x00-\\x1F\\s\\p{Zs}:;`\"'@#.,|^&<=>+\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}" + } + } + ] + } + }, + "meta_property": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "new" + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "STRING", + "value": "target" + } + ] + }, + "this": { + "type": "STRING", + "value": "this" + }, + "super": { + "type": "STRING", + "value": "super" + }, + "true": { + "type": "STRING", + "value": "true" + }, + "false": { + "type": "STRING", + "value": "false" + }, + "null": { + "type": "STRING", + "value": "null" + }, + "undefined": { + "type": "STRING", + "value": "undefined" + }, + "arguments": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "spread_element" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "SYMBOL", + "name": "spread_element" + } + ] + }, + { + "type": "BLANK" + } + ] + } + ] + } + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "decorator": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "@" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "decorator_member_expression" + }, + "named": true, + "value": "member_expression" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "decorator_call_expression" + }, + "named": true, + "value": "call_expression" + } + ] + } + ] + }, + "decorator_member_expression": { + "type": "PREC", + "value": "member", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "object", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "decorator_member_expression" + }, + "named": true, + "value": "member_expression" + } + ] + } + }, + { + "type": "STRING", + "value": "." + }, + { + "type": "FIELD", + "name": "property", + "content": { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "identifier" + }, + "named": true, + "value": "property_identifier" + } + } + ] + } + }, + "decorator_call_expression": { + "type": "PREC", + "value": "call", + "content": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "function", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "ALIAS", + "content": { + "type": "SYMBOL", + "name": "decorator_member_expression" + }, + "named": true, + "value": "member_expression" + } + ] + } + }, + { + "type": "FIELD", + "name": "arguments", + "content": { + "type": "SYMBOL", + "name": "arguments" + } + } + ] + } + }, + "class_body": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "{" + }, + { + "type": "REPEAT", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "member", + "content": { + "type": "SYMBOL", + "name": "method_definition" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": ";" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "member", + "content": { + "type": "SYMBOL", + "name": "field_definition" + } + }, + { + "type": "SYMBOL", + "name": "_semicolon" + } + ] + }, + { + "type": "FIELD", + "name": "member", + "content": { + "type": "SYMBOL", + "name": "class_static_block" + } + }, + { + "type": "FIELD", + "name": "template", + "content": { + "type": "SYMBOL", + "name": "glimmer_template" + } + }, + { + "type": "STRING", + "value": ";" + } + ] + } + }, + { + "type": "STRING", + "value": "}" + } + ] + }, + "field_definition": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "decorator", + "content": { + "type": "SYMBOL", + "name": "decorator" + } + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "static" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "property", + "content": { + "type": "SYMBOL", + "name": "_property_name" + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_initializer" + }, + { + "type": "BLANK" + } + ] + } + ] + }, + "formal_parameters": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "(" + }, + { + "type": "CHOICE", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SEQ", + "members": [ + { + "type": "SYMBOL", + "name": "_formal_parameter" + }, + { + "type": "REPEAT", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "SYMBOL", + "name": "_formal_parameter" + } + ] + } + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "," + }, + { + "type": "BLANK" + } + ] + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "STRING", + "value": ")" + } + ] + }, + "class_static_block": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "static" + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + } + ] + }, + "pattern": { + "type": "PREC_DYNAMIC", + "value": -1, + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_lhs_expression" + }, + { + "type": "SYMBOL", + "name": "rest_pattern" + } + ] + } + }, + "rest_pattern": { + "type": "PREC_RIGHT", + "value": 0, + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "..." + }, + { + "type": "SYMBOL", + "name": "_lhs_expression" + } + ] + } + }, + "method_definition": { + "type": "SEQ", + "members": [ + { + "type": "REPEAT", + "content": { + "type": "FIELD", + "name": "decorator", + "content": { + "type": "SYMBOL", + "name": "decorator" + } + } + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "static" + }, + { + "type": "ALIAS", + "content": { + "type": "TOKEN", + "content": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "static" + }, + { + "type": "PATTERN", + "value": "\\s+" + }, + { + "type": "STRING", + "value": "get" + }, + { + "type": "PATTERN", + "value": "\\s*\\n" + } + ] + } + }, + "named": false, + "value": "static get" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "async" + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "CHOICE", + "members": [ + { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "get" + }, + { + "type": "STRING", + "value": "set" + }, + { + "type": "STRING", + "value": "*" + } + ] + }, + { + "type": "BLANK" + } + ] + }, + { + "type": "FIELD", + "name": "name", + "content": { + "type": "SYMBOL", + "name": "_property_name" + } + }, + { + "type": "FIELD", + "name": "parameters", + "content": { + "type": "SYMBOL", + "name": "formal_parameters" + } + }, + { + "type": "FIELD", + "name": "body", + "content": { + "type": "SYMBOL", + "name": "statement_block" + } + } + ] + }, + "pair": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "key", + "content": { + "type": "SYMBOL", + "name": "_property_name" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "SYMBOL", + "name": "expression" + } + } + ] + }, + "pair_pattern": { + "type": "SEQ", + "members": [ + { + "type": "FIELD", + "name": "key", + "content": { + "type": "SYMBOL", + "name": "_property_name" + } + }, + { + "type": "STRING", + "value": ":" + }, + { + "type": "FIELD", + "name": "value", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "pattern" + }, + { + "type": "SYMBOL", + "name": "assignment_pattern" + } + ] + } + } + ] + }, + "_property_name": { + "type": "CHOICE", + "members": [ + { + "type": "ALIAS", + "content": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "identifier" + }, + { + "type": "SYMBOL", + "name": "_reserved_identifier" + } + ] + }, + "named": true, + "value": "property_identifier" + }, + { + "type": "SYMBOL", + "name": "private_property_identifier" + }, + { + "type": "SYMBOL", + "name": "string" + }, + { + "type": "SYMBOL", + "name": "number" + }, + { + "type": "SYMBOL", + "name": "computed_property_name" + } + ] + }, + "computed_property_name": { + "type": "SEQ", + "members": [ + { + "type": "STRING", + "value": "[" + }, + { + "type": "SYMBOL", + "name": "expression" + }, + { + "type": "STRING", + "value": "]" + } + ] + }, + "_reserved_identifier": { + "type": "CHOICE", + "members": [ + { + "type": "STRING", + "value": "get" + }, + { + "type": "STRING", + "value": "set" + }, + { + "type": "STRING", + "value": "async" + }, + { + "type": "STRING", + "value": "static" + }, + { + "type": "STRING", + "value": "export" + }, + { + "type": "STRING", + "value": "let" + } + ] + }, + "_semicolon": { + "type": "CHOICE", + "members": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "STRING", + "value": ";" + } + ] + } + }, + "extras": [ + { + "type": "SYMBOL", + "name": "comment" + }, + { + "type": "SYMBOL", + "name": "html_comment" + }, + { + "type": "PATTERN", + "value": "[\\s\\p{Zs}\\uFEFF\\u2028\\u2029\\u2060\\u200B]" + } + ], + "conflicts": [ + [ + "primary_expression", + "_property_name" + ], + [ + "primary_expression", + "_property_name", + "arrow_function" + ], + [ + "primary_expression", + "arrow_function" + ], + [ + "primary_expression", + "method_definition" + ], + [ + "primary_expression", + "rest_pattern" + ], + [ + "primary_expression", + "pattern" + ], + [ + "primary_expression", + "_for_header" + ], + [ + "array", + "array_pattern" + ], + [ + "object", + "object_pattern" + ], + [ + "assignment_expression", + "pattern" + ], + [ + "assignment_expression", + "object_assignment_pattern" + ], + [ + "labeled_statement", + "_property_name" + ], + [ + "computed_property_name", + "array" + ], + [ + "binary_expression", + "_initializer" + ] + ], + "precedences": [ + [ + { + "type": "STRING", + "value": "member" + }, + { + "type": "STRING", + "value": "call" + }, + { + "type": "SYMBOL", + "name": "update_expression" + }, + { + "type": "STRING", + "value": "unary_void" + }, + { + "type": "STRING", + "value": "binary_exp" + }, + { + "type": "STRING", + "value": "binary_times" + }, + { + "type": "STRING", + "value": "binary_plus" + }, + { + "type": "STRING", + "value": "binary_shift" + }, + { + "type": "STRING", + "value": "binary_compare" + }, + { + "type": "STRING", + "value": "binary_relation" + }, + { + "type": "STRING", + "value": "binary_equality" + }, + { + "type": "STRING", + "value": "bitwise_and" + }, + { + "type": "STRING", + "value": "bitwise_xor" + }, + { + "type": "STRING", + "value": "bitwise_or" + }, + { + "type": "STRING", + "value": "logical_and" + }, + { + "type": "STRING", + "value": "logical_or" + }, + { + "type": "STRING", + "value": "ternary" + }, + { + "type": "SYMBOL", + "name": "sequence_expression" + }, + { + "type": "SYMBOL", + "name": "arrow_function" + } + ], + [ + { + "type": "STRING", + "value": "assign" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + } + ], + [ + { + "type": "STRING", + "value": "member" + }, + { + "type": "STRING", + "value": "new" + }, + { + "type": "STRING", + "value": "call" + }, + { + "type": "SYMBOL", + "name": "expression" + } + ], + [ + { + "type": "STRING", + "value": "declaration" + }, + { + "type": "STRING", + "value": "literal" + } + ], + [ + { + "type": "SYMBOL", + "name": "primary_expression" + }, + { + "type": "SYMBOL", + "name": "statement_block" + }, + { + "type": "STRING", + "value": "object" + } + ], + [ + { + "type": "SYMBOL", + "name": "import_statement" + }, + { + "type": "SYMBOL", + "name": "import" + } + ], + [ + { + "type": "SYMBOL", + "name": "export_statement" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + } + ], + [ + { + "type": "SYMBOL", + "name": "lexical_declaration" + }, + { + "type": "SYMBOL", + "name": "primary_expression" + } + ] + ], + "externals": [ + { + "type": "SYMBOL", + "name": "_automatic_semicolon" + }, + { + "type": "SYMBOL", + "name": "_template_chars" + }, + { + "type": "SYMBOL", + "name": "_ternary_qmark" + }, + { + "type": "SYMBOL", + "name": "html_comment" + }, + { + "type": "STRING", + "value": "||" + }, + { + "type": "SYMBOL", + "name": "escape_sequence" + }, + { + "type": "SYMBOL", + "name": "regex_pattern" + } + ], + "inline": [ + "_call_signature", + "_formal_parameter", + "statement", + "_expressions", + "_semicolon", + "_identifier", + "_reserved_identifier", + "_jsx_attribute", + "_jsx_element_name", + "_jsx_child", + "_jsx_element", + "_jsx_attribute_name", + "_jsx_attribute_value", + "_jsx_identifier", + "_lhs_expression" + ], + "supertypes": [ + "statement", + "declaration", + "expression", + "primary_expression", + "pattern" + ] +} |
