mirror of
https://github.com/github/codeql.git
synced 2026-05-14 03:09:26 +02:00
unified: stop operators bleeding through everywhere
We make _referenceable_operator a named node. This prevents it from bleeding through to the _expression definition. It likely also makes the output easier to deal with, as bare operators used as arguments now have a named node wrapping them in the AST. Also removes a duplicated inclusion of _comparison_operator that served no purpose.
This commit is contained in:
@@ -105,7 +105,7 @@ module.exports = grammar({
|
||||
// `+(...)` is ambigously either "call the function produced by a reference to the operator `+`" or "use the unary
|
||||
// operator `+` on the result of the parenthetical expression."
|
||||
[$._additive_operator, $._prefix_unary_operator],
|
||||
[$._referenceable_operator, $._prefix_unary_operator],
|
||||
[$.referenceable_operator, $._prefix_unary_operator],
|
||||
// `{ [self, b, c] ...` could be a capture list or an array literal depending on what else happens.
|
||||
[$.capture_list_item, $._expression],
|
||||
[$.capture_list_item, $._expression, $._simple_user_type],
|
||||
@@ -906,7 +906,7 @@ module.exports = grammar({
|
||||
$.super_expression,
|
||||
$.try_expression,
|
||||
$.await_expression,
|
||||
$._referenceable_operator,
|
||||
$.referenceable_operator,
|
||||
$.key_path_expression,
|
||||
$.key_path_string_expression,
|
||||
prec.right(
|
||||
@@ -1625,16 +1625,15 @@ module.exports = grammar({
|
||||
_non_constructor_function_decl: ($) =>
|
||||
seq(
|
||||
"func",
|
||||
field("name", choice($.simple_identifier, $._referenceable_operator))
|
||||
field("name", choice($.simple_identifier, $.referenceable_operator))
|
||||
),
|
||||
_referenceable_operator: ($) =>
|
||||
referenceable_operator: ($) =>
|
||||
choice(
|
||||
$.custom_operator,
|
||||
$._comparison_operator,
|
||||
$._additive_operator,
|
||||
$._multiplicative_operator,
|
||||
$._equality_operator,
|
||||
$._comparison_operator,
|
||||
$._assignment_and_operator,
|
||||
"++",
|
||||
"--",
|
||||
@@ -1806,7 +1805,7 @@ module.exports = grammar({
|
||||
seq(
|
||||
choice("prefix", "infix", "postfix"),
|
||||
"operator",
|
||||
$._referenceable_operator,
|
||||
$.referenceable_operator,
|
||||
optional(seq(":", $.simple_identifier)),
|
||||
optional($.deprecated_operator_declaration_body)
|
||||
),
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
named:
|
||||
_expression:
|
||||
additive_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: ["+", "-"]
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
array_literal:
|
||||
element*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
element*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
array_type:
|
||||
element+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
name: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
as_expression:
|
||||
$children: as_operator
|
||||
expr: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
expr: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
name: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
type+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
as_operator:
|
||||
assignment:
|
||||
operator: ["%=", "*=", "+=", "-=", "/=", "="]
|
||||
result: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
result: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
target: directly_assignable_expression
|
||||
associatedtype_declaration:
|
||||
$children*: [modifiers, type_constraints]
|
||||
@@ -25,21 +25,21 @@ named:
|
||||
must_inherit*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
name+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_identifier, type_pack_expansion, type_parameter_pack, user_type]
|
||||
attribute:
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, user_type, value_pack_expansion, value_parameter_pack]
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, user_type, value_pack_expansion, value_parameter_pack]
|
||||
availability_condition:
|
||||
$children*: [identifier, integer_literal]
|
||||
await_expression:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
expr?: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
expr?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
bang:
|
||||
bin_literal:
|
||||
bitwise_operation:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: ["&", "<<", ">>", "^", "|"]
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
boolean_literal:
|
||||
call_expression:
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, call_suffix, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, call_suffix, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
call_suffix:
|
||||
$children+: [lambda_literal, value_arguments]
|
||||
name*: simple_identifier
|
||||
@@ -48,7 +48,7 @@ named:
|
||||
capture_list_item:
|
||||
$children?: ownership_modifier
|
||||
name: [self_expression, simple_identifier]
|
||||
value?: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
catch_block:
|
||||
$children+: [catch_keyword, statements, where_clause]
|
||||
error?: pattern
|
||||
@@ -56,7 +56,7 @@ named:
|
||||
check_expression:
|
||||
name: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
op: "is"
|
||||
target: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
target: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
type+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
class_body:
|
||||
$children*: [associatedtype_declaration, class_declaration, deinit_declaration, function_declaration, import_declaration, init_declaration, multiline_comment, operator_declaration, precedence_group_declaration, property_declaration, protocol_declaration, subscript_declaration, typealias_declaration]
|
||||
@@ -67,9 +67,9 @@ named:
|
||||
name: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_identifier, type_pack_expansion, type_parameter_pack, user_type]
|
||||
comment:
|
||||
comparison_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: ["<", "<=", ">", ">="]
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
computed_getter:
|
||||
$children+: [attribute, getter_specifier, statements]
|
||||
computed_modify:
|
||||
@@ -79,9 +79,9 @@ named:
|
||||
computed_setter:
|
||||
$children+: [attribute, setter_specifier, simple_identifier, statements]
|
||||
conjunction_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: "&&"
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
constructor_expression:
|
||||
$children: constructor_suffix
|
||||
constructed_type: [array_type, dictionary_type, user_type]
|
||||
@@ -89,8 +89,8 @@ named:
|
||||
$children+: [lambda_literal, value_arguments]
|
||||
name*: simple_identifier
|
||||
control_transfer_statement:
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, throw_keyword, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
result?: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, throw_keyword, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
result?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
custom_operator:
|
||||
default_keyword:
|
||||
deinit_declaration:
|
||||
@@ -100,8 +100,8 @@ named:
|
||||
$children*: [bin_literal, boolean_literal, hex_literal, integer_literal, line_string_literal, multi_line_string_literal, oct_literal, raw_string_literal, real_literal, regex_literal, simple_identifier]
|
||||
diagnostic:
|
||||
dictionary_literal:
|
||||
key*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
key*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
dictionary_type:
|
||||
key+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
name+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
@@ -111,11 +111,11 @@ named:
|
||||
directive:
|
||||
$children*: [boolean_literal, integer_literal, simple_identifier]
|
||||
directly_assignable_expression:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
disjunction_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: "||"
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
do_statement:
|
||||
$children*: [catch_block, statements]
|
||||
else:
|
||||
@@ -125,9 +125,9 @@ named:
|
||||
$children?: modifiers
|
||||
data_contents*: enum_type_parameters
|
||||
name+: simple_identifier
|
||||
raw_value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
raw_value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
enum_type_parameters:
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, type_modifiers, value_pack_expansion, value_parameter_pack, wildcard_pattern]
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, type_modifiers, value_pack_expansion, value_parameter_pack, wildcard_pattern]
|
||||
name*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
equality_constraint:
|
||||
$children*: attribute
|
||||
@@ -135,16 +135,16 @@ named:
|
||||
must_equal+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
name: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
equality_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: ["!=", "!==", "==", "==="]
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
existential_type:
|
||||
$children: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
external_macro_definition:
|
||||
$children: value_arguments
|
||||
for_statement:
|
||||
$children*: [statements, try_operator, type_annotation, where_clause]
|
||||
collection: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
collection: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
item: pattern
|
||||
fully_open_range:
|
||||
function_body:
|
||||
@@ -152,8 +152,8 @@ named:
|
||||
function_declaration:
|
||||
$children*: [attribute, inheritance_modifier, modifiers, ownership_modifier, parameter, property_behavior_modifier, throws, throws_clause, type_constraints, type_parameters]
|
||||
body: function_body
|
||||
default_value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
name+: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", array_type, bang, custom_operator, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, simple_identifier, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type, "|", "~"]
|
||||
default_value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
name+: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, referenceable_operator, simple_identifier, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
return_type*: ["!", array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
function_modifier:
|
||||
function_type:
|
||||
@@ -166,7 +166,7 @@ named:
|
||||
guard_statement:
|
||||
$children+: [else, statements]
|
||||
bound_identifier*: simple_identifier
|
||||
condition+: ["!=", "!==", "%", "%=", "&", "(", ")", "*", "*=", "+", "++", "+=", ",", "-", "--", "-=", ".", "/", "/=", ":", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "?", "^", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern, "|", "~"]
|
||||
condition+: ["(", ")", ",", ".", ":", "=", "?", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern]
|
||||
name*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
hex_literal:
|
||||
identifier:
|
||||
@@ -174,14 +174,14 @@ named:
|
||||
if_statement:
|
||||
$children*: [else, if_statement, statements]
|
||||
bound_identifier*: simple_identifier
|
||||
condition+: ["!=", "!==", "%", "%=", "&", "(", ")", "*", "*=", "+", "++", "+=", ",", "-", "--", "-=", ".", "/", "/=", ":", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "?", "^", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern, "|", "~"]
|
||||
condition+: ["(", ")", ",", ".", ":", "=", "?", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern]
|
||||
name*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
import_declaration:
|
||||
$children+: [identifier, modifiers]
|
||||
infix_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: custom_operator
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
inheritance_constraint:
|
||||
$children*: attribute
|
||||
constrained_type+: [".", array_type, dictionary_type, existential_type, function_type, identifier, metatype, opaque_type, optional_type, protocol_composition_type, simple_identifier, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
@@ -193,18 +193,18 @@ named:
|
||||
init_declaration:
|
||||
$children*: [attribute, bang, modifiers, parameter, throws, throws_clause, type_constraints, type_parameters]
|
||||
body?: function_body
|
||||
default_value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
default_value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
name: "init"
|
||||
integer_literal:
|
||||
interpolated_expression:
|
||||
$children?: type_modifiers
|
||||
name?: value_argument_label
|
||||
reference_specifier*: value_argument_label
|
||||
value?: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
key_path_expression:
|
||||
$children*: [array_type, bang, dictionary_type, simple_identifier, type_arguments, type_identifier, value_argument]
|
||||
key_path_string_expression:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
lambda_function_type:
|
||||
$children*: [lambda_function_type_parameters, throws, throws_clause]
|
||||
name?: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
@@ -226,10 +226,10 @@ named:
|
||||
text*: [line_str_text, str_escaped_char]
|
||||
macro_declaration:
|
||||
$children+: [array_type, attribute, dictionary_type, existential_type, function_type, metatype, modifiers, opaque_type, optional_type, parameter, protocol_composition_type, simple_identifier, suppressed_constraint, tuple_type, type_constraints, type_pack_expansion, type_parameter_pack, type_parameters, user_type]
|
||||
default_value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
default_value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
definition?: macro_definition
|
||||
macro_definition:
|
||||
body: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, external_macro_definition, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
body: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, external_macro_definition, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
macro_invocation:
|
||||
$children+: [call_suffix, simple_identifier, type_parameters]
|
||||
member_modifier:
|
||||
@@ -245,30 +245,30 @@ named:
|
||||
text*: ["\"", multi_line_str_text, str_escaped_char]
|
||||
multiline_comment:
|
||||
multiplicative_expression:
|
||||
lhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
lhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: ["%", "*", "/"]
|
||||
rhs: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
rhs: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
mutation_modifier:
|
||||
navigation_expression:
|
||||
element?: [dictionary_type, existential_type, opaque_type]
|
||||
suffix: navigation_suffix
|
||||
target+: ["!=", "!==", "%", "%=", "&", "(", ")", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, array_type, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, user_type, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
target+: ["(", ")", additive_expression, array_literal, array_type, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, user_type, value_pack_expansion, value_parameter_pack]
|
||||
navigation_suffix:
|
||||
suffix: [integer_literal, simple_identifier]
|
||||
nil_coalescing_expression:
|
||||
if_nil: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
if_nil: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
value: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
oct_literal:
|
||||
opaque_type:
|
||||
$children: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
open_end_range_expression:
|
||||
start: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
start: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
open_start_range_expression:
|
||||
end: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
end: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
operator_declaration:
|
||||
$children*: [bang, custom_operator, deprecated_operator_declaration_body, simple_identifier]
|
||||
$children+: [deprecated_operator_declaration_body, referenceable_operator, simple_identifier]
|
||||
optional_chain_marker:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
optional_type:
|
||||
wrapped: [array_type, dictionary_type, tuple_type, user_type]
|
||||
ownership_modifier:
|
||||
@@ -281,14 +281,14 @@ named:
|
||||
parameter_modifiers:
|
||||
$children+: parameter_modifier
|
||||
pattern:
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, pattern, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, type_modifiers, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, wildcard_pattern]
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, pattern, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, type_modifiers, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, wildcard_pattern]
|
||||
bound_identifier?: simple_identifier
|
||||
name?: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
playground_literal:
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
postfix_expression:
|
||||
operation: ["++", "--", bang]
|
||||
target: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
target: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
precedence_group_attribute:
|
||||
$children+: [boolean_literal, simple_identifier]
|
||||
precedence_group_attributes:
|
||||
@@ -297,13 +297,13 @@ named:
|
||||
$children+: [precedence_group_attributes, simple_identifier]
|
||||
prefix_expression:
|
||||
operation: ["&", "+", "++", "-", "--", ".", bang, custom_operator, "~"]
|
||||
target: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", _expression, additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
target: [_expression, additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
property_behavior_modifier:
|
||||
property_declaration:
|
||||
$children*: [attribute, inheritance_modifier, modifiers, ownership_modifier, property_behavior_modifier, type_annotation, type_constraints, value_binding_pattern, willset_didset_block]
|
||||
computed_value*: computed_property
|
||||
name+: pattern
|
||||
value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
property_modifier:
|
||||
protocol_body:
|
||||
$children*: [associatedtype_declaration, deinit_declaration, init_declaration, protocol_function_declaration, protocol_property_declaration, subscript_declaration, typealias_declaration]
|
||||
@@ -317,8 +317,8 @@ named:
|
||||
name: type_identifier
|
||||
protocol_function_declaration:
|
||||
$children*: [attribute, modifiers, parameter, statements, throws, throws_clause, type_constraints, type_parameters]
|
||||
default_value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
name*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", array_type, bang, custom_operator, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, simple_identifier, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type, "|", "~"]
|
||||
default_value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
name*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, referenceable_operator, simple_identifier, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
return_type*: ["!", array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
protocol_property_declaration:
|
||||
$children+: [modifiers, protocol_property_requirements, type_annotation, type_constraints]
|
||||
@@ -326,9 +326,9 @@ named:
|
||||
protocol_property_requirements:
|
||||
$children*: [getter_specifier, setter_specifier]
|
||||
range_expression:
|
||||
end: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
end: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
op: ["...", "..<"]
|
||||
start: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
start: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
raw_str_continuing_indicator:
|
||||
raw_str_end_part:
|
||||
raw_str_interpolation:
|
||||
@@ -341,56 +341,58 @@ named:
|
||||
interpolation*: raw_str_interpolation
|
||||
text+: [raw_str_end_part, raw_str_part]
|
||||
real_literal:
|
||||
referenceable_operator:
|
||||
$children?: [bang, custom_operator]
|
||||
regex_literal:
|
||||
repeat_while_statement:
|
||||
$children?: statements
|
||||
bound_identifier*: simple_identifier
|
||||
condition+: ["!=", "!==", "%", "%=", "&", "(", ")", "*", "*=", "+", "++", "+=", ",", "-", "--", "-=", ".", "/", "/=", ":", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "?", "^", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern, "|", "~"]
|
||||
condition+: ["(", ")", ",", ".", ":", "=", "?", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern]
|
||||
name*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
selector_expression:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
self_expression:
|
||||
setter_specifier:
|
||||
$children?: mutation_modifier
|
||||
shebang_line:
|
||||
simple_identifier:
|
||||
source_file:
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, associatedtype_declaration, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, class_declaration, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, do_statement, equality_expression, for_statement, fully_open_range, function_declaration, guard_statement, hex_literal, if_statement, import_declaration, infix_expression, init_declaration, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_declaration, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, operator_declaration, optional_chain_marker, playground_literal, postfix_expression, precedence_group_declaration, prefix_expression, property_declaration, protocol_declaration, range_expression, raw_string_literal, real_literal, regex_literal, repeat_while_statement, selector_expression, self_expression, shebang_line, simple_identifier, special_literal, statement_label, super_expression, switch_statement, ternary_expression, throw_keyword, try_expression, tuple_expression, typealias_declaration, value_pack_expansion, value_parameter_pack, while_statement]
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, associatedtype_declaration, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, class_declaration, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, do_statement, equality_expression, for_statement, fully_open_range, function_declaration, guard_statement, hex_literal, if_statement, import_declaration, infix_expression, init_declaration, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_declaration, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, operator_declaration, optional_chain_marker, playground_literal, postfix_expression, precedence_group_declaration, prefix_expression, property_declaration, protocol_declaration, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, repeat_while_statement, selector_expression, self_expression, shebang_line, simple_identifier, special_literal, statement_label, super_expression, switch_statement, ternary_expression, throw_keyword, try_expression, tuple_expression, typealias_declaration, value_pack_expansion, value_parameter_pack, while_statement]
|
||||
special_literal:
|
||||
statement_label:
|
||||
statements:
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, class_declaration, comparison_expression, conjunction_expression, constructor_expression, control_transfer_statement, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, do_statement, equality_expression, for_statement, fully_open_range, function_declaration, guard_statement, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, property_declaration, range_expression, raw_string_literal, real_literal, regex_literal, repeat_while_statement, selector_expression, self_expression, simple_identifier, special_literal, statement_label, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, typealias_declaration, value_pack_expansion, value_parameter_pack, while_statement]
|
||||
$children*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, class_declaration, comparison_expression, conjunction_expression, constructor_expression, control_transfer_statement, diagnostic, dictionary_literal, directive, disjunction_expression, do_statement, equality_expression, for_statement, fully_open_range, function_declaration, guard_statement, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, property_declaration, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, repeat_while_statement, selector_expression, self_expression, simple_identifier, special_literal, statement_label, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, typealias_declaration, value_pack_expansion, value_parameter_pack, while_statement]
|
||||
str_escaped_char:
|
||||
subscript_declaration:
|
||||
$children+: [attribute, computed_property, modifiers, parameter, type_constraints, type_parameters]
|
||||
default_value*: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
default_value*: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
name?: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
return_type*: ["!", array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_modifiers, type_pack_expansion, type_parameter_pack, user_type]
|
||||
super_expression:
|
||||
suppressed_constraint:
|
||||
suppressed: type_identifier
|
||||
switch_entry:
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, default_keyword, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, modifiers, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, statements, super_expression, switch_pattern, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, where_keyword]
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, default_keyword, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, modifiers, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, statements, super_expression, switch_pattern, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, where_keyword]
|
||||
switch_pattern:
|
||||
$children: pattern
|
||||
switch_statement:
|
||||
$children*: switch_entry
|
||||
expr: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
expr: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
ternary_expression:
|
||||
condition: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
if_false: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
if_true: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
condition: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
if_false: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
if_true: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
throw_keyword:
|
||||
throws:
|
||||
throws_clause:
|
||||
type: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
try_expression:
|
||||
$children: try_operator
|
||||
expr: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
expr: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
try_operator:
|
||||
tuple_expression:
|
||||
name*: simple_identifier
|
||||
value+: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value+: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
tuple_type:
|
||||
$children?: tuple_type_item
|
||||
element*: tuple_type_item
|
||||
@@ -433,7 +435,7 @@ named:
|
||||
$children?: type_modifiers
|
||||
name?: value_argument_label
|
||||
reference_specifier*: value_argument_label
|
||||
value?: ["!=", "!==", "%", "%=", "&", "*", "*=", "+", "++", "+=", "-", "--", "-=", "/", "/=", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "^", additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, "|", "~"]
|
||||
value?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
value_argument_label:
|
||||
$children: simple_identifier
|
||||
value_arguments:
|
||||
@@ -441,17 +443,17 @@ named:
|
||||
value_binding_pattern:
|
||||
mutability: ["let", "var"]
|
||||
value_pack_expansion:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
value_parameter_pack:
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
$children?: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack]
|
||||
visibility_modifier:
|
||||
where_clause:
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, where_keyword]
|
||||
$children+: [additive_expression, array_literal, as_expression, assignment, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, directive, disjunction_expression, equality_expression, fully_open_range, hex_literal, if_statement, infix_expression, integer_literal, key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, multi_line_string_literal, multiplicative_expression, navigation_expression, nil_coalescing_expression, oct_literal, open_end_range_expression, open_start_range_expression, optional_chain_marker, playground_literal, postfix_expression, prefix_expression, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, switch_statement, ternary_expression, try_expression, tuple_expression, value_pack_expansion, value_parameter_pack, where_keyword]
|
||||
where_keyword:
|
||||
while_statement:
|
||||
$children?: statements
|
||||
bound_identifier*: simple_identifier
|
||||
condition+: ["!=", "!==", "%", "%=", "&", "(", ")", "*", "*=", "+", "++", "+=", ",", "-", "--", "-=", ".", "/", "/=", ":", "<", "<<", "<=", "=", "==", "===", ">", ">=", ">>", "?", "^", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bang, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, custom_operator, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern, "|", "~"]
|
||||
condition+: ["(", ")", ",", ".", ":", "=", "?", additive_expression, array_literal, array_type, "as", as_expression, assignment, "async", availability_condition, await_expression, bin_literal, bitwise_operation, boolean_literal, call_expression, "case", check_expression, comparison_expression, conjunction_expression, constructor_expression, diagnostic, dictionary_literal, dictionary_type, directive, disjunction_expression, equality_expression, existential_type, fully_open_range, function_type, hex_literal, if_statement, infix_expression, integer_literal, "is", key_path_expression, key_path_string_expression, lambda_literal, line_string_literal, macro_invocation, metatype, multi_line_string_literal, multiplicative_expression, navigation_expression, "nil", nil_coalescing_expression, oct_literal, opaque_type, open_end_range_expression, open_start_range_expression, optional_chain_marker, optional_type, pattern, playground_literal, postfix_expression, prefix_expression, protocol_composition_type, range_expression, raw_string_literal, real_literal, referenceable_operator, regex_literal, selector_expression, self_expression, simple_identifier, special_literal, super_expression, suppressed_constraint, switch_statement, ternary_expression, try_expression, tuple_expression, tuple_type, type_annotation, type_modifiers, type_pack_expansion, type_parameter_pack, user_type, value_binding_pattern, value_pack_expansion, value_parameter_pack, where_clause, wildcard_pattern]
|
||||
name*: [array_type, dictionary_type, existential_type, function_type, metatype, opaque_type, optional_type, protocol_composition_type, suppressed_constraint, tuple_type, type_pack_expansion, type_parameter_pack, user_type]
|
||||
wildcard_pattern:
|
||||
willset_clause:
|
||||
|
||||
Reference in New Issue
Block a user