UNPKG

tree-sitter-dart

Version:

Dart grammar attempt for tree-sitter

2,050 lines 234 kB
{ "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