{
"$schema": "https://tree-sitter.github.io/tree-sitter/assets/schemas/grammar.schema.json",
"name": "cfquery",
"rules": {
"program": {
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_node"
}
]
}
}
]
},
"cf_selfclose_void_tag_end": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_cf_self_closing_void_tag_delimiter"
},
"named": true,
"value": "self_closing_tag_delimiter"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
},
"cf_set_tag": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_open_tag"
},
{
"type": "SYMBOL",
"name": "_start_cf_set_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "var"
},
{
"type": "STRING",
"value": "VAR"
},
{
"type": "STRING",
"value": "Var"
},
{
"type": "STRING",
"value": "vAR"
},
{
"type": "STRING",
"value": "vAr"
},
{
"type": "STRING",
"value": "vaR"
},
{
"type": "STRING",
"value": "VaR"
},
{
"type": "STRING",
"value": "VAr"
}
]
},
"named": true,
"value": "cf_var"
},
{
"type": "SYMBOL",
"name": "_cf_tag_expression"
}
]
},
{
"type": "SYMBOL",
"name": "_cf_tag_expression"
}
]
},
{
"type": "SYMBOL",
"name": "cf_selfclose_void_tag_end"
}
]
}
},
"text": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": -1,
"content": {
"type": "PATTERN",
"value": "[^<>&\\s#\\r\\n\\u2028\\u2029]([^<>&#]*[^<>&\\s#\\r\\n\\u2028\\u2029])?"
}
}
},
"_node": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_cf_tags"
},
{
"type": "SYMBOL",
"name": "erroneous_cf_end_tag"
},
{
"type": "SYMBOL",
"name": "text"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "SYMBOL",
"name": "_query_node"
}
]
},
"_cf_open_tag": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[<<][cC][fF]"
}
}
},
"named": false,
"value": "<cf"
}
},
"_cf_close_tag": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "ALIAS",
"content": {
"type": "TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[<<][//][cC][fF]"
}
}
},
"named": false,
"value": "</cf"
}
},
"cf_tag_attributes": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cf_attribute"
},
{
"type": "SYMBOL",
"name": "quoted_cf_attribute_value"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
}
]
},
"_query_node": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "query_identifier"
},
{
"type": "SYMBOL",
"name": "quoted_query_value"
},
{
"type": "SYMBOL",
"name": "double_quoted_query_value"
},
{
"type": "SYMBOL",
"name": "bracketed_query_value"
},
{
"type": "SYMBOL",
"name": "query_star"
},
{
"type": "SYMBOL",
"name": "query_alias"
},
{
"type": "SYMBOL",
"name": "query_assignment_expression"
},
{
"type": "SYMBOL",
"name": "parenthesized_query_node"
},
{
"type": "SYMBOL",
"name": "query_number"
},
{
"type": "SYMBOL",
"name": "null"
},
{
"type": "SYMBOL",
"name": "query_comma"
},
{
"type": "SYMBOL",
"name": "query_semicolon"
}
]
},
"parenthesized_query_node": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "("
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_node"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"query_alias": {
"type": "PREC_RIGHT",
"value": "assign",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_node"
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_node"
}
}
]
}
},
"query_comma": {
"type": "PATTERN",
"value": "[,]"
},
"query_semicolon": {
"type": "PATTERN",
"value": "[;]"
},
"query_assignment_expression": {
"type": "PREC_RIGHT",
"value": "assign",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "_node"
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_node"
}
}
]
}
},
"bracketed_query_value": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "["
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^'\\s\\n\\r\\t\\[\\]#]+"
},
"named": true,
"value": "query_value"
}
]
}
},
{
"type": "STRING",
"value": "]"
}
]
},
"quoted_query_value": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^'\\s\\n\\r\\t\\[\\]#]+"
},
"named": true,
"value": "query_value"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"double_quoted_query_value": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^'\"\\s\\n\\r\\t\\[\\]#]+"
},
"named": true,
"value": "query_value"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"query_star": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\*"
},
"named": true,
"value": "star"
},
"query_number": {
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[0-9]"
},
"named": true,
"value": "number"
},
"query_identifier": {
"type": "CHOICE",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ":"
},
{
"type": "PATTERN",
"value": "[^\\x00-\\x1F\\s\\p{Zs}:;`\"'@#.,*\\[\\]|^&\"'<=>+,#\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u2028\\u2029]|\\\\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\\u2028\\u2029]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
}
}
]
}
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[^\\x00-\\x1F\\s\\p{Zs}:;`\"'@#.,*\\[\\]|^&\"'<=>+,#\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u2028\\u2029]|\\\\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\\u2028\\u2029]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
}
}
]
}
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "\\?"
},
"named": true,
"value": "placeholder"
}
]
},
"erroneous_cf_end_tag": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "</"
},
{
"type": "SYMBOL",
"name": "erroneous_cf_end_tag_name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
}
},
"_cf_tag_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
}
]
},
"cf_attribute": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "cf_attribute_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "="
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "quoted_cf_attribute_value"
},
{
"type": "SYMBOL",
"name": "cf_attribute_value"
}
]
}
]
},
{
"type": "BLANK"
}
]
}
]
},
"cf_attribute_value": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^'\"\\s\\n\\r\\t#:;<>]+"
},
"named": true,
"value": "attribute_value"
}
]
},
"cf_attribute_name": {
"type": "PATTERN",
"value": "[^<>\"\\'/=\\s\\n\\r\\t#0-9]+"
},
"cf_tag": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "cf_start_tag"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_node"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cf_end_tag"
},
{
"type": "SYMBOL",
"name": "implicit_cf_end_tag"
}
]
}
]
},
{
"type": "SYMBOL",
"name": "cf_start_tag_with_selfclose"
}
]
},
"cf_start_tag_with_selfclose": {
"type": "PREC_RIGHT",
"value": 2,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_open_tag"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_start_cf_tag_name"
},
"named": true,
"value": "cf_tag_name"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "cf_tag_attributes"
}
},
{
"type": "SYMBOL",
"name": "_cf_self_closing_tag_delimiter"
}
]
}
},
"cf_start_tag": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_open_tag"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_start_cf_tag_name"
},
"named": true,
"value": "cf_tag_name"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "cf_tag_attributes"
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
},
"cf_end_tag": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_close_tag"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_end_cf_tag_name"
},
"named": true,
"value": "cf_tag_name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
},
"cf_tag_name": {
"type": "PATTERN",
"value": "[a-zA-Z][a-zA-Z0-9_]*"
},
"_cf_tags": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cf_selfclose_tag"
},
{
"type": "SYMBOL",
"name": "cf_if_tag"
},
{
"type": "SYMBOL",
"name": "cf_set_tag"
},
{
"type": "SYMBOL",
"name": "cf_tag"
}
]
}
},
"cf_selfclose_tag": {
"type": "PREC_RIGHT",
"value": 4,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_open_tag"
},
{
"type": "SYMBOL",
"name": "_start_cf_void_name"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "cf_attribute"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "cf_selfclose_void_tag_end"
}
]
}
},
"cf_if_tag": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_open_tag"
},
{
"type": "SYMBOL",
"name": "_start_cf_if_name"
},
{
"type": "SYMBOL",
"name": "_cf_tag_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_node"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cf_if_alt"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_cf_close_tag"
},
{
"type": "SYMBOL",
"name": "_end_cf_if_name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
}
},
"cf_elseif_tag": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_start_cf_elseif_name"
},
{
"type": "SYMBOL",
"name": "_cf_tag_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
}
},
"cf_else_tag": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_start_cf_else_name"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
"named": false,
"value": ">"
}
]
}
},
"cf_if_alt": {
"type": "PREC_RIGHT",
"value": 3,
"content": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_cf_open_tag"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cf_elseif_tag"
},
{
"type": "SYMBOL",
"name": "cf_else_tag"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_node"
}
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "cf_if_alt"
},
{
"type": "BLANK"
}
]
}
]
}
},
"quoted_cf_attribute_value": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^'\\s\\n\\r\\t#]+"
},
"named": true,
"value": "attribute_value"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "STRING",
"value": "\"\""
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[^\"\\s\\n\\r\\t#]+"
},
"named": true,
"value": "attribute_value"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
}
]
},
"_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": "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": "FIELD",
"name": "source",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "FIELD",
"name": "source",
"content": {
"type": "SYMBOL",
"name": "path"
}
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "import_attribute"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
"path": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT1",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"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": "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"
}
]
},
"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": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "initializer",
"content": {
"type": "SYMBOL",
"name": "variable_declaration"
}
},
{
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "initializer",
"content": {
"type": "SYMBOL",
"name": "_expressions"
}
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"type": "FIELD",
"name": "initializer",
"content": {
"type": "SYMBOL",
"name": "empty_statement"
}
}
]
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_expressions"
},
{
"type": "STRING",
"value": ";"
}
]
},
{
"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": "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": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_automatic_semicolon"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"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": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "catch_type"
}
},
{
"type": "BLANK"
}
]
},
{
"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"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
}
]
},
"expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "primary_expression"
},
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "augmented_assignment_expression"
},
{
"type": "SYMBOL",
"name": "unary_expression"
},
{
"type": "SYMBOL",
"name": "binary_expression"
},
{
"type": "SYMBOL",
"name": "ternary_expression"
},
{
"type": "SYMBOL",
"name": "elvis_expression"
},
{
"type": "SYMBOL",
"name": "update_expression"
},
{
"type": "SYMBOL",
"name": "new_expression"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "SYMBOL",
"name": "pair"
},
{
"type": "SYMBOL",
"name": "object_pattern"
}
]
},
"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": "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": "meta_property"
},
{
"type": "SYMBOL",
"name": "call_expression"
}
]
},
"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": "cf_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": "cf_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": "cf_pair"
},
{
"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": "cf_pair"
},
{
"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": "]"
}
]
},
"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": "PATTERN",
"value": "[.:]"
},
{
"type": "FIELD",
"name": "property",
"content": {
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "property_identifier"
}
}
]
}
},
"function_expression": {
"type": "PREC",
"value": "literal",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "BLANK"
}
]
}
},
{
"type": "SYMBOL",
"name": "_call_signature"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "assignment_expression"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "statement_block"
}
}
]
}
},
"access_type": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "public"
},
{
"type": "STRING",
"value": "private"
},
{
"type": "STRING",
"value": "package"
},
{
"type": "STRING",
"value": "remote"
},
{
"type": "STRING",
"value": "static"
},
{
"type": "STRING",
"value": "final"
},
{
"type": "STRING",
"value": "abstract"
}
]
},
"parameter_type": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "path"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"function_declaration": {
"type": "PREC_RIGHT",
"value": "declaration",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "access_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "function"
},
{
"type": "SYMBOL",
"name": "path"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "function"
},
{
"type": "FIELD",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "identifier"
}
},
{
"type": "SYMBOL",
"name": "_call_signature"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "assignment_expression"
}
},
{
"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": "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": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "required"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "parameter_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "pattern"
},
{
"type": "SYMBOL",
"name": "assignment_pattern"
}
]
}
]
},
"optional_chain": {
"type": "STRING",
"value": "?."
},
"static_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": "primary_expression"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "SYMBOL",
"name": "import"
}
]
}
},
{
"type": "FIELD",
"name": "arguments",
"content": {
"type": "SYMBOL",
"name": "arguments"
}
}
]
}
},
{
"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"
}
]
}
}
]
}
},
"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": "static_chain",
"content": {
"type": "SYMBOL",
"name": "static_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": "string"
},
{
"type": "SYMBOL",
"name": "member_expression"
},
{
"type": "SYMBOL",
"name": "null"
},
{
"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": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_hash_expression"
},
"named": true,
"value": "hash_expression"
}
]
}
},
{
"type": "STRING",
"value": "="
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
}
]
}
}
]
}
},
"_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": "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"
}
}
]
}
},
"elvis_expression": {
"type": "PREC_RIGHT",
"value": "elvis",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_elvis_operator"
},
"named": false,
"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_and",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "PATTERN",
"value": "[aA][nN][dD]"
}
},
{
"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": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "logical_or"
},
{
"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": "PATTERN",
"value": "[oO][rR]"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
},
{
"type": "PREC_LEFT",
"value": "logical_xor",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "PATTERN",
"value": "[xX][oO][rR]"
}
},
{
"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_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": "PATTERN",
"value": "[mM][oO][dD]"
}
},
{
"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": "PATTERN",
"value": "[lL][tT]"
}
},
{
"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": "PATTERN",
"value": "[lL][tT][eE]"
}
},
{
"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": "PATTERN",
"value": "[lL][eE]"
}
},
{
"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": "PATTERN",
"value": "[eE][qQ]"
}
},
{
"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": "PATTERN",
"value": "[iI][sS]"
}
},
{
"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": "PATTERN",
"value": "[nN][eE][qQ]"
}
},
{
"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": "PATTERN",
"value": "[cC][oO][nN][tT][aA][iI][nN][sS]"
}
},
{
"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": "PATTERN",
"value": "[cC][tT]"
}
},
{
"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": "PATTERN",
"value": "[dD][oO][eE][sS]\\s[nN][oO][tT]\\s[cC][oO][nN][tT][aA][iI][nN]"
}
},
{
"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": "PATTERN",
"value": "[nN][cC][tT]"
}
},
{
"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": "PATTERN",
"value": "[gG][tT][eE]"
}
},
{
"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": "PATTERN",
"value": "[gG][eE]"
}
},
{
"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": "PATTERN",
"value": "[gG][tT]"
}
},
{
"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": "SYMBOL",
"name": "expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "STRING",
"value": "in"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "expression"
}
}
]
}
}
]
},
"unary_operator": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "!"
},
{
"type": "STRING",
"value": "~"
},
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
},
{
"type": "ALIAS",
"content": {
"type": "PATTERN",
"value": "[nN][oO][tT]"
},
"named": false,
"value": "not"
}
]
},
"unary_expression": {
"type": "PREC_LEFT",
"value": "unary_void",
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "unary_operator"
}
},
{
"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": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "STRING",
"value": "\"\""
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "unescaped_double_string_fragment"
},
"named": true,
"value": "string_fragment"
}
]
}
}
]
},
{
"type": "STRING",
"value": "\""
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "CHOICE",
"members": [
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "unescaped_single_string_fragment"
},
"named": true,
"value": "string_fragment"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
},
{
"type": "STRING",
"value": "''"
}
]
}
}
]
},
{
"type": "STRING",
"value": "'"
}
]
}
]
},
"unescaped_double_string_fragment": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^\"#]+"
}
}
},
"unescaped_single_string_fragment": {
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "PREC",
"value": 1,
"content": {
"type": "PATTERN",
"value": "[^'#]+"
}
}
},
"comment": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "//"
},
{
"type": "PATTERN",
"value": "[^\\r\\n\\u2028\\u2029]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "--"
},
{
"type": "PATTERN",
"value": "[^\\r\\n\\u2028\\u2029]*"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "/*"
},
{
"type": "PATTERN",
"value": "[^*]*\\*+([^/*][^*]*\\*+)*"
},
{
"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": "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}:;`\"'@#.,|^&<=>+#\\-*/\\\\%?!~()\\[\\]{}\\uFEFF\\u2060\\u200B\\u2028\\u2029]|\\\\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\\u2028\\u2029]|\\\\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\\u2028\\u2029]|\\\\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\\u2028\\u2029]|\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]+\\}"
}
}
]
}
},
"meta_property": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "new"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "target"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "import"
},
{
"type": "STRING",
"value": "."
},
{
"type": "STRING",
"value": "meta"
}
]
}
]
},
"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": "_hash_always_eval"
},
{
"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": "_hash_always_eval"
},
{
"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": "PATTERN",
"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"
}
}
]
}
},
"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": ")"
}
]
},
"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": "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"
}
}
]
},
"cf_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": "null"
},
{
"type": "SYMBOL",
"name": "string"
},
{
"type": "SYMBOL",
"name": "number"
},
{
"type": "SYMBOL",
"name": "computed_property_name"
},
{
"type": "SYMBOL",
"name": "_hash_always_eval"
}
]
},
"_hash_always_eval": {
"type": "CHOICE",
"members": [
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_hash_expression"
},
"named": true,
"value": "hash_expression"
},
{
"type": "ALIAS",
"content": {
"type": "SYMBOL",
"name": "_hash_empty"
},
"named": true,
"value": "hash_empty"
}
]
},
"_hash": {
"type": "STRING",
"value": "#"
},
"_hash_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "SYMBOL",
"name": "expression"
},
{
"type": "STRING",
"value": "#"
}
]
},
"_hash_empty": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "IMMEDIATE_TOKEN",
"content": {
"type": "STRING",
"value": "#"
}
}
]
},
"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": "static"
},
{
"type": "STRING",
"value": "export"
},
{
"type": "STRING",
"value": "let"
},
{
"type": "STRING",
"value": "component"
}
]
},
"_semicolon": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_automatic_semicolon"
},
{
"type": "STRING",
"value": ";"
}
]
}
},
"extras": [
{
"type": "SYMBOL",
"name": "cf_comment"
},
{
"type": "SYMBOL",
"name": "comment"
},
{
"type": "PATTERN",
"value": "[\\s\\p{Zs}\\uFEFF\\u2028\\u2029\\u2060\\u200B]"
}
],
"conflicts": [
[
"object",
"object_pattern"
],
[
"primary_expression",
"pattern"
],
[
"assignment_expression",
"pattern"
],
[
"primary_expression",
"path"
],
[
"primary_expression",
"parameter_type"
],
[
"primary_expression",
"_property_name"
],
[
"primary_expression",
"method_definition"
],
[
"primary_expression",
"rest_pattern"
],
[
"primary_expression",
"_for_header"
],
[
"array",
"array_pattern"
],
[
"assignment_expression",
"object_assignment_pattern"
],
[
"labeled_statement",
"_property_name"
],
[
"computed_property_name",
"array"
],
[
"binary_expression",
"_initializer"
],
[
"assignment_expression",
"_hash_always_eval"
],
[
"method_definition",
"access_type"
],
[
"expression",
"_property_name"
],
[
"expression",
"object"
],
[
"binary_expression",
"pair"
],
[
"member_expression",
"pair"
],
[
"subscript_expression",
"pair"
],
[
"member_expression",
"subscript_expression",
"pair"
],
[
"update_expression",
"pair"
],
[
"ternary_expression",
"pair"
],
[
"elvis_expression",
"pair"
],
[
"expression",
"parenthesized_expression"
],
[
"expression",
"expression_statement"
],
[
"expression",
"arguments"
],
[
"expression",
"assignment_expression"
],
[
"expression",
"return_statement"
],
[
"expression",
"throw_statement"
],
[
"expression",
"for_statement"
],
[
"expression",
"_cf_tag_expression"
],
[
"expression",
"assignment_expression",
"_property_name"
],
[
"expression",
"function_expression"
],
[
"assignment_expression",
"_property_name"
],
[
"object_assignment_pattern",
"_property_name"
],
[
"object_assignment_pattern",
"assignment_expression",
"_property_name"
],
[
"switch_case",
"expression",
"_property_name"
],
[
"call_expression",
"_property_name"
],
[
"_for_header",
"expression"
]
],
"precedences": [
[
{
"type": "STRING",
"value": "member"
},
{
"type": "STRING",
"value": "call"
},
{
"type": "SYMBOL",
"name": "update_expression"
},
{
"type": "STRING",
"value": "unary_void"
},
{
"type": "STRING",
"value": "binary_is"
},
{
"type": "STRING",
"value": "binary_not"
},
{
"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_xor"
},
{
"type": "STRING",
"value": "logical_or"
},
{
"type": "STRING",
"value": "ternary"
},
{
"type": "STRING",
"value": "elvis"
},
{
"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": "meta_property"
},
{
"type": "SYMBOL",
"name": "import"
}
],
[
{
"type": "SYMBOL",
"name": "import_statement"
},
{
"type": "SYMBOL",
"name": "import"
}
]
],
"externals": [
{
"type": "SYMBOL",
"name": "_automatic_semicolon"
},
{
"type": "SYMBOL",
"name": "_ternary_qmark"
},
{
"type": "SYMBOL",
"name": "_elvis_operator"
},
{
"type": "SYMBOL",
"name": "logical_or"
},
{
"type": "SYMBOL",
"name": "_start_cf_tag_name"
},
{
"type": "SYMBOL",
"name": "_end_cf_tag_name"
},
{
"type": "SYMBOL",
"name": "erroneous_cf_end_tag_name"
},
{
"type": "SYMBOL",
"name": "_cf_self_closing_tag_delimiter"
},
{
"type": "SYMBOL",
"name": "_cf_self_closing_void_tag_delimiter"
},
{
"type": "SYMBOL",
"name": "implicit_cf_end_tag"
},
{
"type": "SYMBOL",
"name": "raw_text"
},
{
"type": "SYMBOL",
"name": "cf_comment"
},
{
"type": "SYMBOL",
"name": "_close_tag_delim"
},
{
"type": "SYMBOL",
"name": "_close_cf_tag_delim"
},
{
"type": "SYMBOL",
"name": "html_text"
},
{
"type": "SYMBOL",
"name": "_start_cf_void_name"
},
{
"type": "SYMBOL",
"name": "_start_cf_set_name"
},
{
"type": "SYMBOL",
"name": "_start_cf_if_name"
},
{
"type": "SYMBOL",
"name": "_end_cf_if_name"
},
{
"type": "SYMBOL",
"name": "_start_cf_elseif_name"
},
{
"type": "SYMBOL",
"name": "_start_cf_else_name"
}
],
"inline": [
"_call_signature",
"_formal_parameter",
"_expressions",
"_semicolon",
"_identifier",
"_reserved_identifier",
"_lhs_expression"
],
"supertypes": [
"statement",
"declaration",
"expression",
"primary_expression",
"pattern"
],
"reserved": {}
}