tree-sitter-dart
Version:
Dart grammar attempt for tree-sitter
2,050 lines • 234 kB
JSON
{
"name": "dart",
"word": "identifier",
"rules": {
"program": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "script_tag"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "library_name"
},
{
"type": "BLANK"
}
]
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "import_or_export"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "part_directive"
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "part_of_directive"
}
},
{
"type": "REPEAT",
"content": {
"type": "PREC_DYNAMIC",
"value": 22,
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_metadata"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "_top_level_definition"
}
]
}
}
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "_statement"
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "BLANK"
}
]
}
]
},
"_top_level_definition": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "class_definition"
},
{
"type": "SYMBOL",
"name": "enum_declaration"
},
{
"type": "SYMBOL",
"name": "extension_declaration"
},
{
"type": "SYMBOL",
"name": "mixin_declaration"
},
{
"type": "SYMBOL",
"name": "type_alias"
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_builtin"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "function_signature"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_builtin"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "getter_signature"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_external_builtin"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "setter_signature"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "function_signature"
},
{
"type": "SYMBOL",
"name": "function_body"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "getter_signature"
},
{
"type": "SYMBOL",
"name": "function_body"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "setter_signature"
},
{
"type": "SYMBOL",
"name": "function_body"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "final_builtin"
},
{
"type": "SYMBOL",
"name": "const_builtin"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "static_final_declaration_list"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_late_builtin"
},
{
"type": "SYMBOL",
"name": "final_builtin"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "BLANK"
}
]
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_late_builtin"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "inferred_type"
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_type"
},
{
"type": "BLANK"
}
]
}
]
}
]
},
{
"type": "SYMBOL",
"name": "initialized_identifier_list"
},
{
"type": "SYMBOL",
"name": "_semicolon"
}
]
}
]
},
"_literal": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "decimal_integer_literal"
},
{
"type": "SYMBOL",
"name": "hex_integer_literal"
},
{
"type": "SYMBOL",
"name": "decimal_floating_point_literal"
},
{
"type": "SYMBOL",
"name": "true"
},
{
"type": "SYMBOL",
"name": "false"
},
{
"type": "SYMBOL",
"name": "string_literal"
},
{
"type": "SYMBOL",
"name": "null_literal"
},
{
"type": "SYMBOL",
"name": "symbol_literal"
},
{
"type": "SYMBOL",
"name": "list_literal"
},
{
"type": "SYMBOL",
"name": "set_or_map_literal"
}
]
},
"symbol_literal": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "#"
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"decimal_integer_literal": {
"type": "TOKEN",
"content": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
}
},
"hex_integer_literal": {
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "0x"
},
{
"type": "STRING",
"value": "0X"
}
]
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[A-Fa-f0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "_"
},
{
"type": "PATTERN",
"value": "[A-Fa-f0-9]+"
}
]
}
}
]
}
}
]
}
},
"decimal_floating_point_literal": {
"type": "TOKEN",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
},
{
"type": "STRING",
"value": "."
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
},
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[eE]"
},
{
"type": "CHOICE",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "-"
},
{
"type": "STRING",
"value": "+"
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "TOKEN",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "[0-9]+"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "PATTERN",
"value": "_+"
},
{
"type": "PATTERN",
"value": "[0-9]+"
}
]
}
}
]
}
}
]
},
{
"type": "BLANK"
}
]
}
]
}
]
}
},
"true": {
"type": "PREC",
"value": 0,
"content": {
"type": "STRING",
"value": "true"
}
},
"false": {
"type": "PREC",
"value": 0,
"content": {
"type": "STRING",
"value": "false"
}
},
"string_literal": {
"type": "REPEAT1",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_string_literal_double_quotes"
},
{
"type": "SYMBOL",
"name": "_string_literal_single_quotes"
},
{
"type": "SYMBOL",
"name": "_string_literal_double_quotes_multiple"
},
{
"type": "SYMBOL",
"name": "_string_literal_single_quotes_multiple"
},
{
"type": "SYMBOL",
"name": "_raw_string_literal_double_quotes"
},
{
"type": "SYMBOL",
"name": "_raw_string_literal_single_quotes"
},
{
"type": "SYMBOL",
"name": "_raw_string_literal_double_quotes_multiple"
},
{
"type": "SYMBOL",
"name": "_raw_string_literal_single_quotes_multiple"
}
]
}
},
"_string_literal_double_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_double_single"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"_string_literal_single_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_single_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"_string_literal_double_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "\"\"\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_double"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "\"\"\""
}
]
}
},
"_string_literal_single_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "'''"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "SYMBOL",
"name": "template_substitution"
}
]
}
},
{
"type": "STRING",
"value": "'''"
}
]
}
},
"_raw_string_literal_double_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_double_single"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "_template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "\""
}
]
},
"_raw_string_literal_single_quotes": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r'"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_single_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "_template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "'"
}
]
},
"_raw_string_literal_double_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r\"\"\""
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_double"
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "_template_chars_raw_slash"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "\"\"\""
}
]
}
},
"_raw_string_literal_single_quotes_multiple": {
"type": "PREC_LEFT",
"value": 0,
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "r'''"
},
{
"type": "REPEAT",
"content": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_template_chars_single"
},
{
"type": "STRING",
"value": "\""
},
{
"type": "STRING",
"value": "'"
},
{
"type": "SYMBOL",
"name": "_template_chars_raw_slash"
},
{
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
{
"type": "SYMBOL",
"name": "_sub_string_test"
},
{
"type": "STRING",
"value": "$"
}
]
}
},
{
"type": "STRING",
"value": "'''"
}
]
}
},
"_triple_quote_end": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "'''"
}
},
"_triple_double_quote_end": {
"type": "TOKEN",
"content": {
"type": "STRING",
"value": "\"\"\""
}
},
"template_substitution": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "{"
},
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "STRING",
"value": "}"
}
]
},
{
"type": "SYMBOL",
"name": "identifier_dollar_escaped"
}
]
}
]
},
"_sub_string_test": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "$"
},
{
"type": "PATTERN",
"value": "[^a-zA-Z_{]"
}
]
},
"_string_interp": {
"type": "PATTERN",
"value": "\\$((\\w+)|\\{([^{}]+)\\})"
},
"_unused_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]+}"
}
]
}
]
}
},
"escape_sequence": {
"type": "SYMBOL",
"name": "_unused_escape_sequence"
},
"list_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "const_builtin"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "["
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_element"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "]"
}
]
},
"set_or_map_literal": {
"type": "SEQ",
"members": [
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "const_builtin"
},
{
"type": "BLANK"
}
]
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "type_arguments"
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "{"
},
{
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_element"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_element"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "BLANK"
}
]
},
{
"type": "STRING",
"value": "}"
}
]
},
"pair": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "key",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
},
{
"type": "STRING",
"value": ":"
},
{
"type": "FIELD",
"name": "value",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
},
"_element": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "_expression"
},
{
"type": "SYMBOL",
"name": "pair"
},
{
"type": "SYMBOL",
"name": "spread_element"
},
{
"type": "SYMBOL",
"name": "if_element"
},
{
"type": "SYMBOL",
"name": "for_element"
}
]
},
"null_literal": {
"type": "PREC",
"value": 0,
"content": {
"type": "STRING",
"value": "null"
}
},
"_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment_expression"
},
{
"type": "SYMBOL",
"name": "throw_expression"
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "cascade_section"
}
}
]
}
]
},
"_expression_without_cascade": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "assignment_expression_without_cascade"
},
{
"type": "SYMBOL",
"name": "_real_expression"
},
{
"type": "SYMBOL",
"name": "throw_expression_without_cascade"
}
]
},
"_real_expression": {
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "conditional_expression"
},
{
"type": "SYMBOL",
"name": "logical_or_expression"
},
{
"type": "SYMBOL",
"name": "if_null_expression"
},
{
"type": "SYMBOL",
"name": "additive_expression"
},
{
"type": "SYMBOL",
"name": "multiplicative_expression"
},
{
"type": "SYMBOL",
"name": "relational_expression"
},
{
"type": "SYMBOL",
"name": "equality_expression"
},
{
"type": "SYMBOL",
"name": "logical_and_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_and_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_or_expression"
},
{
"type": "SYMBOL",
"name": "bitwise_xor_expression"
},
{
"type": "SYMBOL",
"name": "shift_expression"
},
{
"type": "SYMBOL",
"name": "type_cast_expression"
},
{
"type": "SYMBOL",
"name": "type_test_expression"
},
{
"type": "SYMBOL",
"name": "_unary_expression"
}
]
},
"throw_expression": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "throw"
},
{
"type": "SYMBOL",
"name": "_expression"
}
]
},
"throw_expression_without_cascade": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "throw"
},
{
"type": "SYMBOL",
"name": "_expression_without_cascade"
}
]
},
"assignment_expression": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "assignable_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_assignment_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression"
}
}
]
}
},
"assignment_expression_without_cascade": {
"type": "PREC_RIGHT",
"value": 1,
"content": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "left",
"content": {
"type": "SYMBOL",
"name": "assignable_expression"
}
},
{
"type": "FIELD",
"name": "operator",
"content": {
"type": "SYMBOL",
"name": "_assignment_operator"
}
},
{
"type": "FIELD",
"name": "right",
"content": {
"type": "SYMBOL",
"name": "_expression_without_cascade"
}
}
]
}
},
"assignable_expression": {
"type": "CHOICE",
"members": [
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_primary"
},
{
"type": "SYMBOL",
"name": "_assignable_selector_part"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "super"
},
{
"type": "SYMBOL",
"name": "unconditional_assignable_selector"
}
]
},
{
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "constructor_invocation"
},
{
"type": "SYMBOL",
"name": "_assignable_selector_part"
}
]
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
},
"_assignable_selector_part": {
"type": "SEQ",
"members": [
{
"type": "REPEAT",
"content": {
"type": "SYMBOL",
"name": "selector"
}
},
{
"type": "SYMBOL",
"name": "_assignable_selector"
}
]
},
"_assignment_operator": {
"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": "??="
}
]
},
"lambda_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "function_signature"
}
},
{
"type": "FIELD",
"name": "body",
"content": {
"type": "SYMBOL",
"name": "function_body"
}
}
]
},
"function_expression": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "parameters",
"content": {
"type": "SYMBOL",
"name": "_forma