Constant tree_sitter_swift::NODE_TYPES
source[−]pub const NODE_TYPES: &'static str = "[\n {\n \"type\": \"additive_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"array_literal\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"array_type\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"as_expression\",\n \"named\": true,\n \"fields\": {\n \"expr\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"as_operator\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"as_operator\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"assignment\",\n \"named\": true,\n \"fields\": {\n \"operator\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n }\n ]\n },\n \"result\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"target\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"directly_assignable_expression\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"associatedtype_declaration\",\n \"named\": true,\n \"fields\": {\n \"default_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"must_inherit\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"attribute\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"availability_condition\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"await_expression\",\n \"named\": true,\n \"fields\": {\n \"expr\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"non_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"call_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"call_suffix\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"call_suffix\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"value_arguments\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"capture_list\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"capture_list_item\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"capture_list_item\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"ownership_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"catch_block\",\n \"named\": true,\n \"fields\": {\n \"error\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"catch_keyword\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"check_expression\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"is\",\n \"named\": false\n }\n ]\n },\n \"target\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"class_body\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"associatedtype_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"deinit_declaration\",\n \"named\": true\n },\n {\n \"type\": \"function_declaration\",\n \"named\": true\n },\n {\n \"type\": \"import_declaration\",\n \"named\": true\n },\n {\n \"type\": \"multiline_comment\",\n \"named\": true\n },\n {\n \"type\": \"operator_declaration\",\n \"named\": true\n },\n {\n \"type\": \"precedence_group_declaration\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"subscript_declaration\",\n \"named\": true\n },\n {\n \"type\": \"typealias_declaration\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"class_body\",\n \"named\": true\n },\n {\n \"type\": \"enum_class_body\",\n \"named\": true\n }\n ]\n },\n \"declaration_kind\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"class\",\n \"named\": false\n },\n {\n \"type\": \"enum\",\n \"named\": false\n },\n {\n \"type\": \"extension\",\n \"named\": false\n },\n {\n \"type\": \"struct\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_modifier\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_specifier\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"ownership_modifier\",\n \"named\": true\n },\n {\n \"type\": \"property_behavior_modifier\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"computed_getter\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"getter_specifier\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"computed_modify\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"modify_specifier\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"computed_property\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"computed_getter\",\n \"named\": true\n },\n {\n \"type\": \"computed_modify\",\n \"named\": true\n },\n {\n \"type\": \"computed_setter\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"computed_setter\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"setter_specifier\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"&&\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true,\n \"fields\": {\n \"constructed_type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"constructor_suffix\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"constructor_suffix\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"value_arguments\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"control_transfer_statement\",\n \"named\": true,\n \"fields\": {\n \"result\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"throw_keyword\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"deinit_declaration\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"function_body\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true,\n \"fields\": {\n \"key\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true,\n \"fields\": {\n \"key\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"directly_assignable_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"||\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"do_statement\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"catch_block\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enum_class_body\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"associatedtype_declaration\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"deinit_declaration\",\n \"named\": true\n },\n {\n \"type\": \"enum_entry\",\n \"named\": true\n },\n {\n \"type\": \"function_declaration\",\n \"named\": true\n },\n {\n \"type\": \"import_declaration\",\n \"named\": true\n },\n {\n \"type\": \"operator_declaration\",\n \"named\": true\n },\n {\n \"type\": \"precedence_group_declaration\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"subscript_declaration\",\n \"named\": true\n },\n {\n \"type\": \"typealias_declaration\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enum_entry\",\n \"named\": true,\n \"fields\": {\n \"data_contents\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"enum_type_parameters\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"raw_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"enum_type_parameters\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"equality_constraint\",\n \"named\": true,\n \"fields\": {\n \"constrained_type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"must_equal\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"for_statement\",\n \"named\": true,\n \"fields\": {\n \"collection\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"item\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"?\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"as\",\n \"named\": false\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"is\",\n \"named\": false\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"let\",\n \"named\": false\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"non_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"var\",\n \"named\": false\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statements\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"where_clause\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"function_body\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_declaration\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"function_body\",\n \"named\": true\n }\n ]\n },\n \"default_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"init\",\n \"named\": false\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"return_type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"async\",\n \"named\": true\n },\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_modifier\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"ownership_modifier\",\n \"named\": true\n },\n {\n \"type\": \"parameter\",\n \"named\": true\n },\n {\n \"type\": \"property_behavior_modifier\",\n \"named\": true\n },\n {\n \"type\": \"throws\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"function_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"function_type\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"params\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"tuple_type\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"async\",\n \"named\": true\n },\n {\n \"type\": \"throws\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"getter_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutation_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"guard_statement\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"availability_condition\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"else\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"identifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"if_statement\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"availability_condition\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"else\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"import_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"custom_operator\",\n \"named\": true\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"inheritance_constraint\",\n \"named\": true,\n \"fields\": {\n \"constrained_type\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"identifier\",\n \"named\": true\n }\n ]\n },\n \"inherits_from\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"inheritance_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"inheritance_specifier\",\n \"named\": true,\n \"fields\": {\n \"inherits_from\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"interpolated_expression\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"reference_specifier\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_arguments\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"value_argument\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lambda_function_type\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"async\",\n \"named\": true\n },\n {\n \"type\": \"lambda_function_type_parameters\",\n \"named\": true\n },\n {\n \"type\": \"throws\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lambda_function_type_parameters\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"lambda_parameter\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true,\n \"fields\": {\n \"captures\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"capture_list\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"lambda_function_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"lambda_parameter\",\n \"named\": true,\n \"fields\": {\n \"external_name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"parameter_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"line_str_text\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true,\n \"fields\": {\n \"interpolation\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"interpolated_expression\",\n \"named\": true\n }\n ]\n },\n \"text\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"line_str_text\",\n \"named\": true\n },\n {\n \"type\": \"str_escaped_char\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"member_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"metatype\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"modifiers\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"function_modifier\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_modifier\",\n \"named\": true\n },\n {\n \"type\": \"member_modifier\",\n \"named\": true\n },\n {\n \"type\": \"mutation_modifier\",\n \"named\": true\n },\n {\n \"type\": \"ownership_modifier\",\n \"named\": true\n },\n {\n \"type\": \"parameter_modifier\",\n \"named\": true\n },\n {\n \"type\": \"property_behavior_modifier\",\n \"named\": true\n },\n {\n \"type\": \"property_modifier\",\n \"named\": true\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"modify_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutation_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"multi_line_str_text\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true,\n \"fields\": {\n \"interpolation\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"interpolated_expression\",\n \"named\": true\n }\n ]\n },\n \"text\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"\\\"\",\n \"named\": false\n },\n {\n \"type\": \"multi_line_str_text\",\n \"named\": true\n },\n {\n \"type\": \"str_escaped_char\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true,\n \"fields\": {\n \"lhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n }\n ]\n },\n \"rhs\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"mutation_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true,\n \"fields\": {\n \"suffix\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"navigation_suffix\",\n \"named\": true\n }\n ]\n },\n \"target\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"navigation_suffix\",\n \"named\": true,\n \"fields\": {\n \"suffix\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true,\n \"fields\": {\n \"if_nil\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"non_binding_pattern\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"non_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true,\n \"fields\": {\n \"start\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true,\n \"fields\": {\n \"end\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"operator_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"optional_type\",\n \"named\": true,\n \"fields\": {\n \"wrapped\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"ownership_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"parameter\",\n \"named\": true,\n \"fields\": {\n \"external_name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"parameter_modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"parameter_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"parameter_modifiers\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"parameter_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true,\n \"fields\": {\n \"operation\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"bang\",\n \"named\": true\n }\n ]\n },\n \"target\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"precedence_group_attribute\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"precedence_group_attributes\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"precedence_group_attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"precedence_group_declaration\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"precedence_group_attributes\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true,\n \"fields\": {\n \"operation\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"target\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true,\n \"fields\": {\n \"computed_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"computed_property\",\n \"named\": true\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_modifier\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"ownership_modifier\",\n \"named\": true\n },\n {\n \"type\": \"property_behavior_modifier\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"property_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"protocol_body\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"protocol_function_declaration\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"associatedtype_declaration\",\n \"named\": true\n },\n {\n \"type\": \"deinit_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_function_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"subscript_declaration\",\n \"named\": true\n },\n {\n \"type\": \"typealias_declaration\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true,\n \"fields\": {\n \"body\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"protocol_body\",\n \"named\": true\n }\n ]\n },\n \"declaration_kind\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"protocol\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_specifier\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_function_declaration\",\n \"named\": true,\n \"fields\": {\n \"default_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"init\",\n \"named\": false\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"return_type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"async\",\n \"named\": true\n },\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"parameter\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n },\n {\n \"type\": \"throws\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_property_declaration\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"protocol_property_requirements\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"protocol_property_requirements\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"getter_specifier\",\n \"named\": true\n },\n {\n \"type\": \"setter_specifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"range_expression\",\n \"named\": true,\n \"fields\": {\n \"end\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"op\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"...\",\n \"named\": false\n },\n {\n \"type\": \"..<\",\n \"named\": false\n }\n ]\n },\n \"start\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"raw_str_interpolation\",\n \"named\": true,\n \"fields\": {\n \"interpolation\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"interpolated_expression\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"raw_str_interpolation_start\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true,\n \"fields\": {\n \"interpolation\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"raw_str_interpolation\",\n \"named\": true\n }\n ]\n },\n \"text\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"raw_str_end_part\",\n \"named\": true\n },\n {\n \"type\": \"raw_str_part\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"raw_str_continuing_indicator\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"repeat_while_statement\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"availability_condition\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"self_expression\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"setter_specifier\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"mutation_modifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"shebang_line\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"source_file\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"associatedtype_declaration\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"do_statement\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_statement\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"function_declaration\",\n \"named\": true\n },\n {\n \"type\": \"guard_statement\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"import_declaration\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"operator_declaration\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"precedence_group_declaration\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"protocol_declaration\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"repeat_while_statement\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"shebang_line\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"statement_label\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"throw_keyword\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"typealias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"while_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"statements\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"class_declaration\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"control_transfer_statement\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"do_statement\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"for_statement\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"function_declaration\",\n \"named\": true\n },\n {\n \"type\": \"guard_statement\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"if_statement\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"property_declaration\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"repeat_while_statement\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"statement_label\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"typealias_declaration\",\n \"named\": true\n },\n {\n \"type\": \"while_statement\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"str_escaped_char\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"subscript_declaration\",\n \"named\": true,\n \"fields\": {\n \"default_value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"return_type\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"computed_getter\",\n \"named\": true\n },\n {\n \"type\": \"computed_modify\",\n \"named\": true\n },\n {\n \"type\": \"computed_setter\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"parameter\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"super_expression\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"switch_entry\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"default_keyword\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"statements\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"switch_pattern\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"where_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"switch_pattern\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"non_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"switch_statement\",\n \"named\": true,\n \"fields\": {\n \"expr\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"switch_entry\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"if_false\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n },\n \"if_true\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"throws\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"try_expression\",\n \"named\": true,\n \"fields\": {\n \"expr\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n }\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true,\n \"fields\": {\n \"element\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"tuple_type_item\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"tuple_type_item\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"parameter_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"type\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n }\n },\n {\n \"type\": \"type_arguments\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_constraint\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"equality_constraint\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_constraint\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_constraints\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_constraint\",\n \"named\": true\n },\n {\n \"type\": \"where_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_parameter\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"type_parameter_modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_parameter_modifiers\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_parameter\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"typealias_declaration\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"array_type\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_type\",\n \"named\": true\n },\n {\n \"type\": \"function_type\",\n \"named\": true\n },\n {\n \"type\": \"metatype\",\n \"named\": true\n },\n {\n \"type\": \"opaque_type\",\n \"named\": true\n },\n {\n \"type\": \"optional_type\",\n \"named\": true\n },\n {\n \"type\": \"protocol_composition_type\",\n \"named\": true\n },\n {\n \"type\": \"tuple_type\",\n \"named\": true\n },\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n },\n {\n \"type\": \"user_type\",\n \"named\": true\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"attribute\",\n \"named\": true\n },\n {\n \"type\": \"inheritance_modifier\",\n \"named\": true\n },\n {\n \"type\": \"modifiers\",\n \"named\": true\n },\n {\n \"type\": \"ownership_modifier\",\n \"named\": true\n },\n {\n \"type\": \"property_behavior_modifier\",\n \"named\": true\n },\n {\n \"type\": \"type_parameters\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"user_type\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"type_arguments\",\n \"named\": true\n },\n {\n \"type\": \"type_identifier\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"value_argument\",\n \"named\": true,\n \"fields\": {\n \"name\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"reference_specifier\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n }\n ]\n },\n \"value\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"type_modifiers\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"value_arguments\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"value_argument\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": false,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"non_binding_pattern\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"visibility_modifier\",\n \"named\": true,\n \"fields\": {}\n },\n {\n \"type\": \"where_clause\",\n \"named\": true,\n \"fields\": {},\n \"children\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"where_keyword\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"while_statement\",\n \"named\": true,\n \"fields\": {\n \"condition\": {\n \"multiple\": true,\n \"required\": true,\n \"types\": [\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \"additive_expression\",\n \"named\": true\n },\n {\n \"type\": \"array_literal\",\n \"named\": true\n },\n {\n \"type\": \"as_expression\",\n \"named\": true\n },\n {\n \"type\": \"assignment\",\n \"named\": true\n },\n {\n \"type\": \"availability_condition\",\n \"named\": true\n },\n {\n \"type\": \"await_expression\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"bitwise_operation\",\n \"named\": true\n },\n {\n \"type\": \"boolean_literal\",\n \"named\": true\n },\n {\n \"type\": \"call_expression\",\n \"named\": true\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"check_expression\",\n \"named\": true\n },\n {\n \"type\": \"comparison_expression\",\n \"named\": true\n },\n {\n \"type\": \"conjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"constructor_expression\",\n \"named\": true\n },\n {\n \"type\": \"custom_operator\",\n \"named\": true\n },\n {\n \"type\": \"dictionary_literal\",\n \"named\": true\n },\n {\n \"type\": \"disjunction_expression\",\n \"named\": true\n },\n {\n \"type\": \"equality_expression\",\n \"named\": true\n },\n {\n \"type\": \"fully_open_range\",\n \"named\": true\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"infix_expression\",\n \"named\": true\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"key_path_expression\",\n \"named\": true\n },\n {\n \"type\": \"key_path_string_expression\",\n \"named\": true\n },\n {\n \"type\": \"lambda_literal\",\n \"named\": true\n },\n {\n \"type\": \"line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multi_line_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"multiplicative_expression\",\n \"named\": true\n },\n {\n \"type\": \"navigation_expression\",\n \"named\": true\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nil_coalescing_expression\",\n \"named\": true\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open_end_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"open_start_range_expression\",\n \"named\": true\n },\n {\n \"type\": \"postfix_expression\",\n \"named\": true\n },\n {\n \"type\": \"prefix_expression\",\n \"named\": true\n },\n {\n \"type\": \"range_expression\",\n \"named\": true\n },\n {\n \"type\": \"raw_string_literal\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"selector_expression\",\n \"named\": true\n },\n {\n \"type\": \"self_expression\",\n \"named\": true\n },\n {\n \"type\": \"simple_identifier\",\n \"named\": true\n },\n {\n \"type\": \"super_expression\",\n \"named\": true\n },\n {\n \"type\": \"ternary_expression\",\n \"named\": true\n },\n {\n \"type\": \"try_expression\",\n \"named\": true\n },\n {\n \"type\": \"tuple_expression\",\n \"named\": true\n },\n {\n \"type\": \"type_annotation\",\n \"named\": true\n },\n {\n \"type\": \"value_binding_pattern\",\n \"named\": true\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n ]\n }\n },\n \"children\": {\n \"multiple\": false,\n \"required\": false,\n \"types\": [\n {\n \"type\": \"statements\",\n \"named\": true\n }\n ]\n }\n },\n {\n \"type\": \"!\",\n \"named\": false\n },\n {\n \"type\": \"!=\",\n \"named\": false\n },\n {\n \"type\": \"!==\",\n \"named\": false\n },\n {\n \"type\": \"\\\"\",\n \"named\": false\n },\n {\n \"type\": \"\\\"\\\"\\\"\",\n \"named\": false\n },\n {\n \"type\": \"#!\",\n \"named\": false\n },\n {\n \"type\": \"#available\",\n \"named\": false\n },\n {\n \"type\": \"#colorLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#column\",\n \"named\": false\n },\n {\n \"type\": \"#dsohandle\",\n \"named\": false\n },\n {\n \"type\": \"#file\",\n \"named\": false\n },\n {\n \"type\": \"#fileID\",\n \"named\": false\n },\n {\n \"type\": \"#fileLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#filePath\",\n \"named\": false\n },\n {\n \"type\": \"#function\",\n \"named\": false\n },\n {\n \"type\": \"#imageLiteral\",\n \"named\": false\n },\n {\n \"type\": \"#keyPath\",\n \"named\": false\n },\n {\n \"type\": \"#line\",\n \"named\": false\n },\n {\n \"type\": \"#selector\",\n \"named\": false\n },\n {\n \"type\": \"%\",\n \"named\": false\n },\n {\n \"type\": \"%=\",\n \"named\": false\n },\n {\n \"type\": \"&\",\n \"named\": false\n },\n {\n \"type\": \"&&\",\n \"named\": false\n },\n {\n \"type\": \"(\",\n \"named\": false\n },\n {\n \"type\": \")\",\n \"named\": false\n },\n {\n \"type\": \"*\",\n \"named\": false\n },\n {\n \"type\": \"*=\",\n \"named\": false\n },\n {\n \"type\": \"+\",\n \"named\": false\n },\n {\n \"type\": \"++\",\n \"named\": false\n },\n {\n \"type\": \"+=\",\n \"named\": false\n },\n {\n \"type\": \",\",\n \"named\": false\n },\n {\n \"type\": \"-\",\n \"named\": false\n },\n {\n \"type\": \"--\",\n \"named\": false\n },\n {\n \"type\": \"-=\",\n \"named\": false\n },\n {\n \"type\": \"->\",\n \"named\": false\n },\n {\n \"type\": \".\",\n \"named\": false\n },\n {\n \"type\": \"...\",\n \"named\": false\n },\n {\n \"type\": \"..<\",\n \"named\": false\n },\n {\n \"type\": \"/\",\n \"named\": false\n },\n {\n \"type\": \"/=\",\n \"named\": false\n },\n {\n \"type\": \":\",\n \"named\": false\n },\n {\n \"type\": \";\",\n \"named\": false\n },\n {\n \"type\": \"<\",\n \"named\": false\n },\n {\n \"type\": \"<<\",\n \"named\": false\n },\n {\n \"type\": \"<=\",\n \"named\": false\n },\n {\n \"type\": \"=\",\n \"named\": false\n },\n {\n \"type\": \"==\",\n \"named\": false\n },\n {\n \"type\": \"===\",\n \"named\": false\n },\n {\n \"type\": \">\",\n \"named\": false\n },\n {\n \"type\": \">=\",\n \"named\": false\n },\n {\n \"type\": \">>\",\n \"named\": false\n },\n {\n \"type\": \"?\",\n \"named\": false\n },\n {\n \"type\": \"??\",\n \"named\": false\n },\n {\n \"type\": \"@\",\n \"named\": false\n },\n {\n \"type\": \"@autoclosure\",\n \"named\": false\n },\n {\n \"type\": \"@escaping\",\n \"named\": false\n },\n {\n \"type\": \"Protocol\",\n \"named\": false\n },\n {\n \"type\": \"Type\",\n \"named\": false\n },\n {\n \"type\": \"[\",\n \"named\": false\n },\n {\n \"type\": \"\\\\\",\n \"named\": false\n },\n {\n \"type\": \"\\\\(\",\n \"named\": false\n },\n {\n \"type\": \"]\",\n \"named\": false\n },\n {\n \"type\": \"^\",\n \"named\": false\n },\n {\n \"type\": \"_modify\",\n \"named\": false\n },\n {\n \"type\": \"as\",\n \"named\": false\n },\n {\n \"type\": \"as!\",\n \"named\": false\n },\n {\n \"type\": \"as?\",\n \"named\": false\n },\n {\n \"type\": \"associatedtype\",\n \"named\": false\n },\n {\n \"type\": \"async\",\n \"named\": true\n },\n {\n \"type\": \"bang\",\n \"named\": true\n },\n {\n \"type\": \"bin_literal\",\n \"named\": true\n },\n {\n \"type\": \"break\",\n \"named\": false\n },\n {\n \"type\": \"case\",\n \"named\": false\n },\n {\n \"type\": \"catch_keyword\",\n \"named\": true\n },\n {\n \"type\": \"class\",\n \"named\": false\n },\n {\n \"type\": \"comment\",\n \"named\": true\n },\n {\n \"type\": \"continue\",\n \"named\": false\n },\n {\n \"type\": \"convenience\",\n \"named\": false\n },\n {\n \"type\": \"default_keyword\",\n \"named\": true\n },\n {\n \"type\": \"deinit\",\n \"named\": false\n },\n {\n \"type\": \"delegate\",\n \"named\": false\n },\n {\n \"type\": \"diagnostic\",\n \"named\": true\n },\n {\n \"type\": \"directive\",\n \"named\": true\n },\n {\n \"type\": \"do\",\n \"named\": false\n },\n {\n \"type\": \"dynamic\",\n \"named\": false\n },\n {\n \"type\": \"else\",\n \"named\": true\n },\n {\n \"type\": \"enum\",\n \"named\": false\n },\n {\n \"type\": \"extension\",\n \"named\": false\n },\n {\n \"type\": \"fallthrough\",\n \"named\": false\n },\n {\n \"type\": \"false\",\n \"named\": false\n },\n {\n \"type\": \"fileprivate\",\n \"named\": false\n },\n {\n \"type\": \"final\",\n \"named\": false\n },\n {\n \"type\": \"for\",\n \"named\": false\n },\n {\n \"type\": \"func\",\n \"named\": false\n },\n {\n \"type\": \"get\",\n \"named\": false\n },\n {\n \"type\": \"getter:\",\n \"named\": false\n },\n {\n \"type\": \"guard\",\n \"named\": false\n },\n {\n \"type\": \"hex_literal\",\n \"named\": true\n },\n {\n \"type\": \"if\",\n \"named\": false\n },\n {\n \"type\": \"import\",\n \"named\": false\n },\n {\n \"type\": \"in\",\n \"named\": false\n },\n {\n \"type\": \"indirect\",\n \"named\": false\n },\n {\n \"type\": \"infix\",\n \"named\": false\n },\n {\n \"type\": \"init\",\n \"named\": false\n },\n {\n \"type\": \"inout\",\n \"named\": false\n },\n {\n \"type\": \"integer_literal\",\n \"named\": true\n },\n {\n \"type\": \"internal\",\n \"named\": false\n },\n {\n \"type\": \"is\",\n \"named\": false\n },\n {\n \"type\": \"let\",\n \"named\": false\n },\n {\n \"type\": \"multiline_comment\",\n \"named\": true\n },\n {\n \"type\": \"mutating\",\n \"named\": false\n },\n {\n \"type\": \"nil\",\n \"named\": false\n },\n {\n \"type\": \"nonmutating\",\n \"named\": false\n },\n {\n \"type\": \"oct_literal\",\n \"named\": true\n },\n {\n \"type\": \"open\",\n \"named\": false\n },\n {\n \"type\": \"operator\",\n \"named\": false\n },\n {\n \"type\": \"optional\",\n \"named\": false\n },\n {\n \"type\": \"override\",\n \"named\": false\n },\n {\n \"type\": \"param\",\n \"named\": false\n },\n {\n \"type\": \"postfix\",\n \"named\": false\n },\n {\n \"type\": \"precedencegroup\",\n \"named\": false\n },\n {\n \"type\": \"prefix\",\n \"named\": false\n },\n {\n \"type\": \"private\",\n \"named\": false\n },\n {\n \"type\": \"property\",\n \"named\": false\n },\n {\n \"type\": \"property_behavior_modifier\",\n \"named\": true\n },\n {\n \"type\": \"protocol\",\n \"named\": false\n },\n {\n \"type\": \"public\",\n \"named\": false\n },\n {\n \"type\": \"raw_str_continuing_indicator\",\n \"named\": true\n },\n {\n \"type\": \"raw_str_end_part\",\n \"named\": true\n },\n {\n \"type\": \"raw_str_interpolation_start\",\n \"named\": true\n },\n {\n \"type\": \"raw_str_part\",\n \"named\": true\n },\n {\n \"type\": \"real_literal\",\n \"named\": true\n },\n {\n \"type\": \"receiver\",\n \"named\": false\n },\n {\n \"type\": \"repeat\",\n \"named\": false\n },\n {\n \"type\": \"required\",\n \"named\": false\n },\n {\n \"type\": \"return\",\n \"named\": false\n },\n {\n \"type\": \"self\",\n \"named\": false\n },\n {\n \"type\": \"set\",\n \"named\": false\n },\n {\n \"type\": \"setparam\",\n \"named\": false\n },\n {\n \"type\": \"setter:\",\n \"named\": false\n },\n {\n \"type\": \"some\",\n \"named\": false\n },\n {\n \"type\": \"statement_label\",\n \"named\": true\n },\n {\n \"type\": \"static\",\n \"named\": false\n },\n {\n \"type\": \"struct\",\n \"named\": false\n },\n {\n \"type\": \"subscript\",\n \"named\": false\n },\n {\n \"type\": \"super\",\n \"named\": false\n },\n {\n \"type\": \"switch\",\n \"named\": false\n },\n {\n \"type\": \"throw_keyword\",\n \"named\": true\n },\n {\n \"type\": \"true\",\n \"named\": false\n },\n {\n \"type\": \"try\",\n \"named\": false\n },\n {\n \"type\": \"try!\",\n \"named\": false\n },\n {\n \"type\": \"try?\",\n \"named\": false\n },\n {\n \"type\": \"typealias\",\n \"named\": false\n },\n {\n \"type\": \"u\",\n \"named\": false\n },\n {\n \"type\": \"unowned\",\n \"named\": false\n },\n {\n \"type\": \"unowned(safe)\",\n \"named\": false\n },\n {\n \"type\": \"unowned(unsafe)\",\n \"named\": false\n },\n {\n \"type\": \"var\",\n \"named\": false\n },\n {\n \"type\": \"weak\",\n \"named\": false\n },\n {\n \"type\": \"where_keyword\",\n \"named\": true\n },\n {\n \"type\": \"while\",\n \"named\": false\n },\n {\n \"type\": \"wildcard_pattern\",\n \"named\": true\n },\n {\n \"type\": \"yield\",\n \"named\": false\n },\n {\n \"type\": \"{\",\n \"named\": false\n },\n {\n \"type\": \"|\",\n \"named\": false\n },\n {\n \"type\": \"||\",\n \"named\": false\n },\n {\n \"type\": \"}\",\n \"named\": false\n },\n {\n \"type\": \"~\",\n \"named\": false\n }\n]";
Expand description
The content of the node-types.json
file for this grammar.