=Grammar: _blankspace:/[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]/ _block_comment:/\u200B_block_comment/ _comment:/\/\/.*/ _disambiguate_template:/\u200B_disambiguate_template/ _error_sentinel:/\u200B_error_sentinel/ _greater_than:/\u200B_greater_than/ _greater_than_equal:/\u200B_greater_than_equal/ _less_than:/\u200B_less_than/ _less_than_equal:/\u200B_less_than_equal/ _shift_left:/\u200B_shift_left/ _shift_left_assign:/\u200B_shift_left_assign/ _shift_right:/\u200B_shift_right/ _shift_right_assign:/\u200B_shift_right_assign/ _template_args_end:/\u200B_template_args_end/ _template_args_start:/\u200B_template_args_start/ additive_expression: additive_expression additive_operator multiplicative_expression | multiplicative_expression additive_operator: '+' | '-' align_attr: '@' 'align' '(' expression ',' ? ')' argument_expression_list: '(' expression_comma_list ? ')' assert_statement:'const_assert' assignment_statement: '_' '=' expression | lhs_expression ( '=' | compound_assignment_operator ) expression assignment_statement/0.1: '=' | compound_assignment_operator attribute: '@' ident_pattern_token argument_expression_list ? | align_attr | binding_attr | blend_src_attr | builtin_attr | compute_attr | const_attr | diagnostic_attr | fragment_attr | group_attr | id_attr | interpolate_attr | invariant_attr | location_attr | must_use_attr | size_attr | vertex_attr | workgroup_size_attr binary_and_expression: binary_and_expression '&' unary_expression | unary_expression binary_or_expression: binary_or_expression '|' unary_expression | unary_expression binary_xor_expression: binary_xor_expression '^' unary_expression | unary_expression binding_attr: '@' 'binding' '(' expression ',' ? ')' bitwise_expression: binary_and_expression '&' unary_expression | binary_or_expression '|' unary_expression | binary_xor_expression '^' unary_expression blend_src_attr: '@' 'blend_src' '(' expression ',' ? ')' bool_literal: 'false' | 'true' break_if_statement: 'break' 'if' expression ';' break_statement:'break' builtin_attr: '@' 'builtin' '(' builtin_value_name ',' ? ')' builtin_value_name:ident_pattern_token call_expression:call_phrase call_phrase: template_elaborated_ident argument_expression_list case_clause: 'case' case_selectors ':' ? compound_statement case_selector: 'default' | expression case_selectors: case_selector ( ',' case_selector ) * ? ',' ? case_selectors/0.1/0/0.0: ',' case_selector component_or_swizzle_specifier: '.' member_ident component_or_swizzle_specifier ? | '.' swizzle_name component_or_swizzle_specifier ? | '[' expression ']' component_or_swizzle_specifier ? compound_assignment_operator: '%=' | '&=' | '*=' | '+=' | '-=' | '/=' | '^=' | '|=' | _shift_left_assign | _shift_right_assign compound_statement: attribute * ? '{' statement * ? '}' compute_attr: '@' 'compute' const_assert: 'const_assert' expression const_attr: '@' 'const' continue_statement:'continue' continuing_compound_statement: attribute * ? '{' statement * ? break_if_statement ? '}' continuing_statement: 'continuing' continuing_compound_statement core_lhs_expression: '(' lhs_expression ')' | ident _disambiguate_template decimal_float_literal: /0[fh]/ | /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ | /[0-9]+[eE][+-]?[0-9]+[fh]?/ | /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ | /[1-9][0-9]*[fh]/ decimal_int_literal: /0[iu]?/ | /[1-9][0-9]*[iu]?/ decrement_statement: lhs_expression '--' default_alone_clause: 'default' ':' ? compound_statement diagnostic_attr: '@' 'diagnostic' diagnostic_control diagnostic_control: '(' severity_control_name ',' diagnostic_rule_name ',' ? ')' diagnostic_directive: 'diagnostic' diagnostic_control ';' diagnostic_name_token:ident_pattern_token diagnostic_rule_name: diagnostic_name_token | diagnostic_name_token '.' diagnostic_name_token else_clause: 'else' compound_statement else_if_clause: 'else' 'if' expression compound_statement enable_directive: 'enable' enable_extension_list ';' enable_extension_list: enable_extension_name ( ',' enable_extension_name ) * ? ',' ? enable_extension_list/0.1/0/0.0: ',' enable_extension_name enable_extension_name:ident_pattern_token expression: bitwise_expression | relational_expression | short_circuit_and_expression '&&' relational_expression | short_circuit_or_expression '||' relational_expression expression_comma_list: expression ( ',' expression ) * ? ',' ? expression_comma_list/0.1/0/0.0: ',' expression float_literal: decimal_float_literal | hex_float_literal for_header: for_init ? ';' expression ? ';' for_update ? for_init: func_call_statement | variable_or_value_statement | variable_updating_statement for_statement: attribute * ? 'for' '(' for_header ')' compound_statement for_update: func_call_statement | variable_updating_statement fragment_attr: '@' 'fragment' func_call_statement:call_phrase function_decl: attribute * ? function_header compound_statement function_header: 'fn' ident '(' param_list ? ')' ( '->' attribute * ? template_elaborated_ident )? global_assert: 'const_assert' ';' global_decl: function_decl | global_value_decl ';' | global_variable_decl ';' | struct_decl | type_alias_decl ';' global_directive: diagnostic_directive | enable_directive | requires_directive global_value_decl: 'const' optionally_typed_ident '=' expression | attribute * ? 'override' optionally_typed_ident ( '=' expression )? global_variable_decl: attribute * ? variable_decl ( '=' expression )? group_attr: '@' 'group' '(' expression ',' ? ')' hex_float_literal: /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ | /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ | /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ hex_int_literal:/0[xX][0-9a-fA-F]+[iu]?/ id_attr: '@' 'id' '(' expression ',' ? ')' ident: ident_pattern_token _disambiguate_template ident_pattern_token:/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ if_clause: 'if' expression compound_statement if_statement: attribute * ? if_clause else_if_clause * ? else_clause ? increment_statement: lhs_expression '++' int_literal: decimal_int_literal | hex_int_literal interpolate_attr: '@' 'interpolate' '(' interpolate_type_name ',' ? ')' | '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name ',' ? ')' interpolate_sampling_name:ident_pattern_token interpolate_type_name:ident_pattern_token invariant_attr: '@' 'invariant' language_extension_list: language_extension_name ( ',' language_extension_name ) * ? ',' ? language_extension_list/0.1/0/0.0: ',' language_extension_name language_extension_name:ident_pattern_token lhs_expression: '&' lhs_expression | '*' lhs_expression | core_lhs_expression component_or_swizzle_specifier ? literal: bool_literal | float_literal | int_literal location_attr: '@' 'location' '(' expression ',' ? ')' loop_statement: attribute * ? 'loop' attribute * ? '{' statement * ? continuing_statement ? '}' member_ident:ident_pattern_token multiplicative_expression: multiplicative_expression multiplicative_operator unary_expression | unary_expression multiplicative_operator: '%' | '*' | '/' must_use_attr: '@' 'must_use' optionally_typed_ident: ident ( ':' type_specifier )? param: attribute * ? ident ':' type_specifier param_list: param ( ',' param ) * ? ',' ? param_list/0.1/0/0.0: ',' param paren_expression: '(' expression ')' primary_expression: call_expression | literal | paren_expression | template_elaborated_ident relational_expression: shift_expression | shift_expression '!=' shift_expression | shift_expression '==' shift_expression | shift_expression _greater_than shift_expression | shift_expression _greater_than_equal shift_expression | shift_expression _less_than shift_expression | shift_expression _less_than_equal shift_expression requires_directive: 'requires' language_extension_list ';' return_statement: 'return' expression ? severity_control_name:ident_pattern_token shift_expression: additive_expression | unary_expression _shift_left unary_expression | unary_expression _shift_right unary_expression short_circuit_and_expression: relational_expression | short_circuit_and_expression '&&' relational_expression short_circuit_or_expression: relational_expression | short_circuit_or_expression '||' relational_expression singular_expression: primary_expression component_or_swizzle_specifier ? size_attr: '@' 'size' '(' expression ',' ? ')' statement: ';' | 'discard' ';' | assert_statement ';' | break_statement ';' | compound_statement | continue_statement ';' | for_statement | func_call_statement ';' | if_statement | loop_statement | return_statement ';' | switch_statement | variable_or_value_statement ';' | variable_updating_statement ';' | while_statement struct_body_decl: '{' struct_member ( ',' struct_member ) * ? ',' ? '}' struct_body_decl/0.2/0/0.0: ',' struct_member struct_decl: 'struct' ident struct_body_decl struct_member: attribute * ? member_ident ':' type_specifier switch_body: attribute * ? '{' ( switch_clause * ) '}' switch_body/0.2: switch_clause * switch_clause: case_clause | default_alone_clause switch_statement: attribute * ? 'switch' expression switch_body swizzle_name: /[rgba]/ | /[rgba][rgba]/ | /[rgba][rgba][rgba]/ | /[rgba][rgba][rgba][rgba]/ | /[xyzw]/ | /[xyzw][xyzw]/ | /[xyzw][xyzw][xyzw]/ | /[xyzw][xyzw][xyzw][xyzw]/ template_arg_comma_list: template_arg_expression ( ',' template_arg_expression ) * ? ',' ? template_arg_comma_list/0.1/0/0.0: ',' template_arg_expression template_arg_expression:expression template_elaborated_ident: ident _disambiguate_template template_list ? template_list: _template_args_start template_arg_comma_list _template_args_end translation_unit: global_directive * ? ( global_decl | global_assert | ';' ) * ? translation_unit/0.1/0/0.0: ';' | global_assert | global_decl type_alias_decl: 'alias' ident '=' type_specifier type_specifier:template_elaborated_ident unary_expression: '!' unary_expression | '&' unary_expression | '*' unary_expression | '-' unary_expression | '~' unary_expression | singular_expression variable_decl: 'var' _disambiguate_template template_list ? optionally_typed_ident variable_or_value_statement: 'const' optionally_typed_ident '=' expression | 'let' optionally_typed_ident '=' expression | variable_decl | variable_decl '=' expression variable_updating_statement: assignment_statement | decrement_statement | increment_statement vertex_attr: '@' 'vertex' while_statement: attribute * ? 'while' expression compound_statement workgroup_size_attr: '@' 'workgroup_size' '(' expression ',' ? ')' | '@' 'workgroup_size' '(' expression ',' expression ',' ? ')' | '@' 'workgroup_size' '(' expression ',' expression ',' expression ',' ? ')' =Raw rules: translation_unit -> ( Choice ( Seq translation_unit/0.0 translation_unit/0.1 ) ) translation_unit .reg_info.index: 537 translation_unit .first: {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' ε} translation_unit .derives_empty: True translation_unit .follow: {EndOfText} global_directive -> ( Choice diagnostic_directive enable_directive requires_directive ) global_directive .reg_info.index: 128 global_directive .first: {'diagnostic' 'enable' 'requires'} global_directive .derives_empty: False global_directive .follow: {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_decl -> ( Choice ( Seq global_variable_decl ';' ) ( Seq global_value_decl ';' ) ( Seq type_alias_decl ';' ) struct_decl function_decl ) global_decl .reg_info.index: 137 global_decl .first: {'@' 'alias' 'const' 'fn' 'override' 'struct' 'var'} global_decl .derives_empty: False global_decl .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} bool_literal -> ( Choice 'true' 'false' ) bool_literal .reg_info.index: 138 bool_literal .first: {'false' 'true'} bool_literal .derives_empty: False bool_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> ( Choice decimal_int_literal hex_int_literal ) int_literal .reg_info.index: 141 int_literal .first: {/0[iu]?/ /0[xX][0-9a-fA-F]+[iu]?/ /[1-9][0-9]*[iu]?/} int_literal .derives_empty: False int_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> ( Choice /0[iu]?/ /[1-9][0-9]*[iu]?/ ) decimal_int_literal .reg_info.index: 142 decimal_int_literal .first: {/0[iu]?/ /[1-9][0-9]*[iu]?/} decimal_int_literal .derives_empty: False decimal_int_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> /0[xX][0-9a-fA-F]+[iu]?/ hex_int_literal .reg_info.index: 7 hex_int_literal .first: {/0[xX][0-9a-fA-F]+[iu]?/} hex_int_literal .derives_empty: False hex_int_literal .follow: {} float_literal -> ( Choice decimal_float_literal hex_float_literal ) float_literal .reg_info.index: 145 float_literal .first: {/0[fh]/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/} float_literal .derives_empty: False float_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> ( Choice /0[fh]/ /[1-9][0-9]*[fh]/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ ) decimal_float_literal .reg_info.index: 146 decimal_float_literal .first: {/0[fh]/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/} decimal_float_literal .derives_empty: False decimal_float_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> ( Choice /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ ) hex_float_literal .reg_info.index: 147 hex_float_literal .first: {/0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/} hex_float_literal .derives_empty: False hex_float_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} global_assert -> ( Choice ( Seq 'const_assert' ';' ) ) global_assert .reg_info.index: 467 global_assert .first: {'const_assert'} global_assert .derives_empty: False global_assert .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} diagnostic_directive -> ( Choice ( Seq 'diagnostic' diagnostic_control ';' ) ) diagnostic_directive .reg_info.index: 468 diagnostic_directive .first: {'diagnostic'} diagnostic_directive .derives_empty: False diagnostic_directive .follow: {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} literal -> ( Choice int_literal float_literal bool_literal ) literal .reg_info.index: 155 literal .first: {'false' 'true' /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} literal .derives_empty: False literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> ( Choice ( Seq ident_pattern_token _disambiguate_template ) ) ident .reg_info.index: 469 ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} ident .derives_empty: False ident .follow: {'(' ':' ';' '=' '{' /\u200B_disambiguate_template/} member_ident -> ident_pattern_token member_ident .reg_info.index: 156 member_ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} member_ident .derives_empty: False member_ident .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} diagnostic_name_token -> ident_pattern_token diagnostic_name_token .reg_info.index: 156 diagnostic_name_token .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_name_token .derives_empty: False diagnostic_name_token .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} diagnostic_rule_name -> ( Choice diagnostic_name_token ( Seq diagnostic_name_token '.' diagnostic_name_token ) ) diagnostic_rule_name .reg_info.index: 161 diagnostic_rule_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_rule_name .derives_empty: False diagnostic_rule_name .follow: {')' ','} template_list -> ( Choice ( Seq _template_args_start template_arg_comma_list _template_args_end ) ) template_list .reg_info.index: 470 template_list .first: {/\u200B_template_args_start/} template_list .derives_empty: False template_list .follow: {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_arg_comma_list -> ( Choice ( Seq template_arg_expression template_arg_comma_list/0.1 template_arg_comma_list/0.2 ) ) template_arg_comma_list .reg_info.index: 597 template_arg_comma_list .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} template_arg_comma_list .derives_empty: False template_arg_comma_list .follow: {/\u200B_template_args_end/} template_arg_expression -> expression template_arg_expression .reg_info.index: 172 template_arg_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} template_arg_expression .derives_empty: False template_arg_expression .follow: {',' /\u200B_template_args_end/} align_attr -> ( Choice ( Seq '@' 'align' '(' expression align_attr/0.4 ')' ) ) align_attr .reg_info.index: 606 align_attr .first: {'@'} align_attr .derives_empty: False align_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> ( Choice ( Seq '@' 'binding' '(' expression binding_attr/0.4 ')' ) ) binding_attr .reg_info.index: 615 binding_attr .first: {'@'} binding_attr .derives_empty: False binding_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> ( Choice ( Seq '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' ) ) blend_src_attr .reg_info.index: 624 blend_src_attr .first: {'@'} blend_src_attr .derives_empty: False blend_src_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> ( Choice ( Seq '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' ) ) builtin_attr .reg_info.index: 633 builtin_attr .first: {'@'} builtin_attr .derives_empty: False builtin_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_value_name -> ident_pattern_token builtin_value_name .reg_info.index: 156 builtin_value_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_value_name .derives_empty: False builtin_value_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} const_attr -> ( Choice ( Seq '@' 'const' ) ) const_attr .reg_info.index: 476 const_attr .first: {'@'} const_attr .derives_empty: False const_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> ( Choice ( Seq '@' 'diagnostic' diagnostic_control ) ) diagnostic_attr .reg_info.index: 477 diagnostic_attr .first: {'@'} diagnostic_attr .derives_empty: False diagnostic_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> ( Choice ( Seq '@' 'group' '(' expression group_attr/0.4 ')' ) ) group_attr .reg_info.index: 649 group_attr .first: {'@'} group_attr .derives_empty: False group_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> ( Choice ( Seq '@' 'id' '(' expression id_attr/0.4 ')' ) ) id_attr .reg_info.index: 658 id_attr .first: {'@'} id_attr .derives_empty: False id_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> ( Choice ( Seq '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' ) ( Seq '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' ) ) interpolate_attr .reg_info.index: 677 interpolate_attr .first: {'@'} interpolate_attr .derives_empty: False interpolate_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_type_name -> ident_pattern_token interpolate_type_name .reg_info.index: 156 interpolate_type_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_type_name .derives_empty: False interpolate_type_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} interpolate_sampling_name -> ident_pattern_token interpolate_sampling_name .reg_info.index: 156 interpolate_sampling_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_sampling_name .derives_empty: False interpolate_sampling_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} invariant_attr -> ( Choice ( Seq '@' 'invariant' ) ) invariant_attr .reg_info.index: 480 invariant_attr .first: {'@'} invariant_attr .derives_empty: False invariant_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> ( Choice ( Seq '@' 'location' '(' expression location_attr/0.4 ')' ) ) location_attr .reg_info.index: 689 location_attr .first: {'@'} location_attr .derives_empty: False location_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> ( Choice ( Seq '@' 'must_use' ) ) must_use_attr .reg_info.index: 482 must_use_attr .first: {'@'} must_use_attr .derives_empty: False must_use_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> ( Choice ( Seq '@' 'size' '(' expression size_attr/0.4 ')' ) ) size_attr .reg_info.index: 701 size_attr .first: {'@'} size_attr .derives_empty: False size_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> ( Choice ( Seq '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' ) ( Seq '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' ) ( Seq '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' ) ) workgroup_size_attr .reg_info.index: 732 workgroup_size_attr .first: {'@'} workgroup_size_attr .derives_empty: False workgroup_size_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> ( Choice ( Seq '@' 'vertex' ) ) vertex_attr .reg_info.index: 484 vertex_attr .first: {'@'} vertex_attr .derives_empty: False vertex_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> ( Choice ( Seq '@' 'fragment' ) ) fragment_attr .reg_info.index: 485 fragment_attr .first: {'@'} fragment_attr .derives_empty: False fragment_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> ( Choice ( Seq '@' 'compute' ) ) compute_attr .reg_info.index: 486 compute_attr .first: {'@'} compute_attr .derives_empty: False compute_attr .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> ( Choice ( Seq '@' ident_pattern_token attribute/0.2 ) align_attr binding_attr blend_src_attr builtin_attr const_attr diagnostic_attr group_attr id_attr interpolate_attr invariant_attr location_attr must_use_attr size_attr workgroup_size_attr vertex_attr fragment_attr compute_attr ) attribute .reg_info.index: 765 attribute .first: {'@'} attribute .derives_empty: False attribute .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_control -> ( Choice ( Seq '(' severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 ')' ) ) diagnostic_control .reg_info.index: 774 diagnostic_control .first: {'('} diagnostic_control .derives_empty: False diagnostic_control .follow: {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_decl -> ( Choice ( Seq 'struct' ident struct_body_decl ) ) struct_decl .reg_info.index: 488 struct_decl .first: {'struct'} struct_decl .derives_empty: False struct_decl .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} struct_body_decl -> ( Choice ( Seq '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' ) ) struct_body_decl .reg_info.index: 787 struct_body_decl .first: {'{'} struct_body_decl .derives_empty: False struct_body_decl .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} struct_member -> ( Choice ( Seq struct_member/0.0 member_ident ':' type_specifier ) ) struct_member .reg_info.index: 795 struct_member .first: {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member .derives_empty: False struct_member .follow: {',' '}'} type_alias_decl -> ( Choice ( Seq 'alias' ident '=' type_specifier ) ) type_alias_decl .reg_info.index: 491 type_alias_decl .first: {'alias'} type_alias_decl .derives_empty: False type_alias_decl .follow: {';'} type_specifier -> template_elaborated_ident type_specifier .reg_info.index: 237 type_specifier .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} type_specifier .derives_empty: False type_specifier .follow: {')' ',' ';' '=' '}'} template_elaborated_ident -> ( Choice ( Seq ident _disambiguate_template template_elaborated_ident/0.2 ) ) template_elaborated_ident .reg_info.index: 807 template_elaborated_ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} template_elaborated_ident .derives_empty: False template_elaborated_ident .follow: {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} variable_or_value_statement -> ( Choice variable_decl ( Seq variable_decl '=' expression ) ( Seq 'let' optionally_typed_ident '=' expression ) ( Seq 'const' optionally_typed_ident '=' expression ) ) variable_or_value_statement .reg_info.index: 246 variable_or_value_statement .first: {'const' 'let' 'var'} variable_or_value_statement .derives_empty: False variable_or_value_statement .follow: {';'} variable_decl -> ( Choice ( Seq 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident ) ) variable_decl .reg_info.index: 829 variable_decl .first: {'var'} variable_decl .derives_empty: False variable_decl .follow: {';' '='} optionally_typed_ident -> ( Choice ( Seq ident optionally_typed_ident/0.1 ) ) optionally_typed_ident .reg_info.index: 835 optionally_typed_ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} optionally_typed_ident .derives_empty: False optionally_typed_ident .follow: {';' '='} global_variable_decl -> ( Choice ( Seq global_variable_decl/0.0 variable_decl global_variable_decl/0.2 ) ) global_variable_decl .reg_info.index: 842 global_variable_decl .first: {'@' 'var'} global_variable_decl .derives_empty: False global_variable_decl .follow: {';'} global_value_decl -> ( Choice ( Seq 'const' optionally_typed_ident '=' expression ) ( Seq global_value_decl/1.0 'override' optionally_typed_ident global_value_decl/1.3 ) ) global_value_decl .reg_info.index: 854 global_value_decl .first: {'@' 'const' 'override'} global_value_decl .derives_empty: False global_value_decl .follow: {';'} primary_expression -> ( Choice template_elaborated_ident call_expression literal paren_expression ) primary_expression .reg_info.index: 259 primary_expression .first: {'(' 'false' 'true' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} primary_expression .derives_empty: False primary_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> call_phrase call_expression .reg_info.index: 260 call_expression .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} call_expression .derives_empty: False call_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_phrase -> ( Choice ( Seq template_elaborated_ident argument_expression_list ) ) call_phrase .reg_info.index: 496 call_phrase .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} call_phrase .derives_empty: False call_phrase .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} paren_expression -> ( Choice ( Seq '(' expression ')' ) ) paren_expression .reg_info.index: 497 paren_expression .first: {'('} paren_expression .derives_empty: False paren_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} argument_expression_list -> ( Choice ( Seq '(' argument_expression_list/0.1 ')' ) ) argument_expression_list .reg_info.index: 872 argument_expression_list .first: {'('} argument_expression_list .derives_empty: False argument_expression_list .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' '|' '||' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} expression_comma_list -> ( Choice ( Seq expression expression_comma_list/0.1 expression_comma_list/0.2 ) ) expression_comma_list .reg_info.index: 879 expression_comma_list .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} expression_comma_list .derives_empty: False expression_comma_list .follow: {')'} component_or_swizzle_specifier -> ( Choice ( Seq '[' expression ']' component_or_swizzle_specifier/0.3 ) ( Seq '.' member_ident component_or_swizzle_specifier/1.2 ) ( Seq '.' swizzle_name component_or_swizzle_specifier/2.2 ) ) component_or_swizzle_specifier .reg_info.index: 897 component_or_swizzle_specifier .first: {'.' '['} component_or_swizzle_specifier .derives_empty: False component_or_swizzle_specifier .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} unary_expression -> ( Choice singular_expression ( Seq '-' unary_expression ) ( Seq '!' unary_expression ) ( Seq '~' unary_expression ) ( Seq '*' unary_expression ) ( Seq '&' unary_expression ) ) unary_expression .reg_info.index: 284 unary_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} unary_expression .derives_empty: False unary_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression -> ( Choice ( Seq primary_expression singular_expression/0.1 ) ) singular_expression .reg_info.index: 918 singular_expression .first: {'(' 'false' 'true' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} singular_expression .derives_empty: False singular_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} lhs_expression -> ( Choice ( Seq core_lhs_expression lhs_expression/0.1 ) ( Seq '*' lhs_expression ) ( Seq '&' lhs_expression ) ) lhs_expression .reg_info.index: 929 lhs_expression .first: {'&' '(' '*' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} lhs_expression .derives_empty: False lhs_expression .follow: {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> ( Choice ( Seq ident _disambiguate_template ) ( Seq '(' lhs_expression ')' ) ) core_lhs_expression .reg_info.index: 295 core_lhs_expression .first: {'(' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} core_lhs_expression .derives_empty: False core_lhs_expression .follow: {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} multiplicative_expression -> ( Choice unary_expression ( Seq multiplicative_expression multiplicative_operator unary_expression ) ) multiplicative_expression .reg_info.index: 299 multiplicative_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} multiplicative_expression .derives_empty: False multiplicative_expression .follow: {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_operator -> ( Choice '*' '/' '%' ) multiplicative_operator .reg_info.index: 300 multiplicative_operator .first: {'%' '*' '/'} multiplicative_operator .derives_empty: False multiplicative_operator .follow: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} additive_expression -> ( Choice multiplicative_expression ( Seq additive_expression additive_operator multiplicative_expression ) ) additive_expression .reg_info.index: 304 additive_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} additive_expression .derives_empty: False additive_expression .follow: {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} additive_operator -> ( Choice '+' '-' ) additive_operator .reg_info.index: 305 additive_operator .first: {'+' '-'} additive_operator .derives_empty: False additive_operator .follow: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} shift_expression -> ( Choice additive_expression ( Seq unary_expression _shift_left unary_expression ) ( Seq unary_expression _shift_right unary_expression ) ) shift_expression .reg_info.index: 310 shift_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} shift_expression .derives_empty: False shift_expression .follow: {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} relational_expression -> ( Choice shift_expression ( Seq shift_expression _less_than shift_expression ) ( Seq shift_expression _greater_than shift_expression ) ( Seq shift_expression _less_than_equal shift_expression ) ( Seq shift_expression _greater_than_equal shift_expression ) ( Seq shift_expression '==' shift_expression ) ( Seq shift_expression '!=' shift_expression ) ) relational_expression .reg_info.index: 322 relational_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} relational_expression .derives_empty: False relational_expression .follow: {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} short_circuit_and_expression -> ( Choice relational_expression ( Seq short_circuit_and_expression '&&' relational_expression ) ) short_circuit_and_expression .reg_info.index: 326 short_circuit_and_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} short_circuit_and_expression .derives_empty: False short_circuit_and_expression .follow: {'&&'} short_circuit_or_expression -> ( Choice relational_expression ( Seq short_circuit_or_expression '||' relational_expression ) ) short_circuit_or_expression .reg_info.index: 329 short_circuit_or_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} short_circuit_or_expression .derives_empty: False short_circuit_or_expression .follow: {'||'} binary_or_expression -> ( Choice unary_expression ( Seq binary_or_expression '|' unary_expression ) ) binary_or_expression .reg_info.index: 332 binary_or_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} binary_or_expression .derives_empty: False binary_or_expression .follow: {'|'} binary_and_expression -> ( Choice unary_expression ( Seq binary_and_expression '&' unary_expression ) ) binary_and_expression .reg_info.index: 335 binary_and_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} binary_and_expression .derives_empty: False binary_and_expression .follow: {'&'} binary_xor_expression -> ( Choice unary_expression ( Seq binary_xor_expression '^' unary_expression ) ) binary_xor_expression .reg_info.index: 338 binary_xor_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} binary_xor_expression .derives_empty: False binary_xor_expression .follow: {'^'} bitwise_expression -> ( Choice ( Seq binary_and_expression '&' unary_expression ) ( Seq binary_or_expression '|' unary_expression ) ( Seq binary_xor_expression '^' unary_expression ) ) bitwise_expression .reg_info.index: 339 bitwise_expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} bitwise_expression .derives_empty: False bitwise_expression .follow: {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} expression -> ( Choice relational_expression ( Seq short_circuit_or_expression '||' relational_expression ) ( Seq short_circuit_and_expression '&&' relational_expression ) bitwise_expression ) expression .reg_info.index: 341 expression .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} expression .derives_empty: False expression .follow: {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} compound_statement -> ( Choice ( Seq compound_statement/0.0 '{' compound_statement/0.2 '}' ) ) compound_statement .reg_info.index: 1040 compound_statement .first: {'@' '{'} compound_statement .derives_empty: False compound_statement .follow: {'&' '(' '*' ';' '@' '_' 'alias' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'fn' 'for' 'if' 'let' 'loop' 'override' 'return' 'struct' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} assignment_statement -> ( Choice ( Seq lhs_expression assignment_statement/0.1 expression ) ( Seq '_' '=' expression ) ) assignment_statement .reg_info.index: 1051 assignment_statement .first: {'&' '(' '*' '_' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} assignment_statement .derives_empty: False assignment_statement .follow: {')' ';'} compound_assignment_operator -> ( Choice '+=' '-=' '*=' '/=' '%=' '&=' '|=' '^=' _shift_right_assign _shift_left_assign ) compound_assignment_operator .reg_info.index: 353 compound_assignment_operator .first: {'%=' '&=' '*=' '+=' '-=' '/=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} compound_assignment_operator .derives_empty: False compound_assignment_operator .follow: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} increment_statement -> ( Choice ( Seq lhs_expression '++' ) ) increment_statement .reg_info.index: 502 increment_statement .first: {'&' '(' '*' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement .derives_empty: False increment_statement .follow: {')' ';'} decrement_statement -> ( Choice ( Seq lhs_expression '--' ) ) decrement_statement .reg_info.index: 503 decrement_statement .first: {'&' '(' '*' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} decrement_statement .derives_empty: False decrement_statement .follow: {')' ';'} if_statement -> ( Choice ( Seq if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 ) ) if_statement .reg_info.index: 1076 if_statement .first: {'@' 'if'} if_statement .derives_empty: False if_statement .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_clause -> ( Choice ( Seq 'if' expression compound_statement ) ) if_clause .reg_info.index: 505 if_clause .first: {'if'} if_clause .derives_empty: False if_clause .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_if_clause -> ( Choice ( Seq 'else' 'if' expression compound_statement ) ) else_if_clause .reg_info.index: 506 else_if_clause .first: {'else'} else_if_clause .derives_empty: False else_if_clause .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_clause -> ( Choice ( Seq 'else' compound_statement ) ) else_clause .reg_info.index: 507 else_clause .first: {'else'} else_clause .derives_empty: False else_clause .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> ( Choice ( Seq switch_statement/0.0 'switch' expression switch_body ) ) switch_statement .reg_info.index: 1095 switch_statement .first: {'@' 'switch'} switch_statement .derives_empty: False switch_statement .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_body -> ( Choice ( Seq switch_body/0.0 '{' switch_body/0.2 '}' ) ) switch_body .reg_info.index: 1103 switch_body .first: {'@' '{'} switch_body .derives_empty: False switch_body .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_clause -> ( Choice case_clause default_alone_clause ) switch_clause .reg_info.index: 374 switch_clause .first: {'case' 'default'} switch_clause .derives_empty: False switch_clause .follow: {'case' 'default' '}'} case_clause -> ( Choice ( Seq 'case' case_selectors case_clause/0.2 compound_statement ) ) case_clause .reg_info.index: 1113 case_clause .first: {'case'} case_clause .derives_empty: False case_clause .follow: {'case' 'default' '}'} default_alone_clause -> ( Choice ( Seq 'default' default_alone_clause/0.1 compound_statement ) ) default_alone_clause .reg_info.index: 1119 default_alone_clause .first: {'default'} default_alone_clause .derives_empty: False default_alone_clause .follow: {'case' 'default' '}'} case_selectors -> ( Choice ( Seq case_selector case_selectors/0.1 case_selectors/0.2 ) ) case_selectors .reg_info.index: 1126 case_selectors .first: {'!' '&' '(' '*' '-' 'default' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} case_selectors .derives_empty: False case_selectors .follow: {':' '@' '{'} case_selector -> ( Choice 'default' expression ) case_selector .reg_info.index: 384 case_selector .first: {'!' '&' '(' '*' '-' 'default' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} case_selector .derives_empty: False case_selector .follow: {',' ':' '@' '{'} loop_statement -> ( Choice ( Seq loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' ) ) loop_statement .reg_info.index: 1139 loop_statement .first: {'@' 'loop'} loop_statement .derives_empty: False loop_statement .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement -> ( Choice ( Seq for_statement/0.0 'for' '(' for_header ')' compound_statement ) ) for_statement .reg_info.index: 1148 for_statement .first: {'@' 'for'} for_statement .derives_empty: False for_statement .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_header -> ( Choice ( Seq for_header/0.0 ';' for_header/0.2 ';' for_header/0.4 ) ) for_header .reg_info.index: 1159 for_header .first: {'&' '(' '*' ';' '_' 'const' 'let' 'var' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_header .derives_empty: False for_header .follow: {')'} for_init -> ( Choice variable_or_value_statement variable_updating_statement func_call_statement ) for_init .reg_info.index: 399 for_init .first: {'&' '(' '*' '_' 'const' 'let' 'var' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_init .derives_empty: False for_init .follow: {';'} for_update -> ( Choice variable_updating_statement func_call_statement ) for_update .reg_info.index: 400 for_update .first: {'&' '(' '*' '_' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_update .derives_empty: False for_update .follow: {')'} while_statement -> ( Choice ( Seq while_statement/0.0 'while' expression compound_statement ) ) while_statement .reg_info.index: 1171 while_statement .first: {'@' 'while'} while_statement .derives_empty: False while_statement .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} break_statement -> 'break' break_statement .reg_info.index: 82 break_statement .first: {'break'} break_statement .derives_empty: False break_statement .follow: {} break_if_statement -> ( Choice ( Seq 'break' 'if' expression ';' ) ) break_if_statement .reg_info.index: 517 break_if_statement .first: {'break'} break_if_statement .derives_empty: False break_if_statement .follow: {'}'} continue_statement -> 'continue' continue_statement .reg_info.index: 83 continue_statement .first: {'continue'} continue_statement .derives_empty: False continue_statement .follow: {} continuing_statement -> ( Choice ( Seq 'continuing' continuing_compound_statement ) ) continuing_statement .reg_info.index: 518 continuing_statement .first: {'continuing'} continuing_statement .derives_empty: False continuing_statement .follow: {'}'} continuing_compound_statement -> ( Choice ( Seq continuing_compound_statement/0.0 '{' continuing_compound_statement/0.2 continuing_compound_statement/0.3 '}' ) ) continuing_compound_statement .reg_info.index: 1188 continuing_compound_statement .first: {'@' '{'} continuing_compound_statement .derives_empty: False continuing_compound_statement .follow: {'}'} return_statement -> ( Choice ( Seq 'return' return_statement/0.1 ) ) return_statement .reg_info.index: 1193 return_statement .first: {'return'} return_statement .derives_empty: False return_statement .follow: {';'} func_call_statement -> call_phrase func_call_statement .reg_info.index: 260 func_call_statement .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement .derives_empty: False func_call_statement .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} const_assert -> ( Choice ( Seq 'const_assert' expression ) ) const_assert .reg_info.index: 521 const_assert .first: {'const_assert'} const_assert .derives_empty: False const_assert .follow: {} assert_statement -> 'const_assert' assert_statement .reg_info.index: 86 assert_statement .first: {'const_assert'} assert_statement .derives_empty: False assert_statement .follow: {} statement -> ( Choice ';' ( Seq return_statement ';' ) if_statement switch_statement loop_statement for_statement while_statement ( Seq func_call_statement ';' ) ( Seq variable_or_value_statement ';' ) ( Seq break_statement ';' ) ( Seq continue_statement ';' ) ( Seq 'discard' ';' ) ( Seq variable_updating_statement ';' ) compound_statement ( Seq assert_statement ';' ) ) statement .reg_info.index: 427 statement .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement .derives_empty: False statement .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} variable_updating_statement -> ( Choice assignment_statement increment_statement decrement_statement ) variable_updating_statement .reg_info.index: 431 variable_updating_statement .first: {'&' '(' '*' '_' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} variable_updating_statement .derives_empty: False variable_updating_statement .follow: {')' ';'} function_decl -> ( Choice ( Seq function_decl/0.0 function_header compound_statement ) ) function_decl .reg_info.index: 1236 function_decl .first: {'@' 'fn'} function_decl .derives_empty: False function_decl .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} function_header -> ( Choice ( Seq 'fn' ident '(' function_header/0.3 ')' function_header/0.5 ) ) function_header .reg_info.index: 1247 function_header .first: {'fn'} function_header .derives_empty: False function_header .follow: {'@' '{'} param_list -> ( Choice ( Seq param param_list/0.1 param_list/0.2 ) ) param_list .reg_info.index: 1254 param_list .first: {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param_list .derives_empty: False param_list .follow: {')'} param -> ( Choice ( Seq param/0.0 ident ':' type_specifier ) ) param .reg_info.index: 1261 param .first: {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param .derives_empty: False param .follow: {')' ','} enable_directive -> ( Choice ( Seq 'enable' enable_extension_list ';' ) ) enable_directive .reg_info.index: 526 enable_directive .first: {'enable'} enable_directive .derives_empty: False enable_directive .follow: {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} enable_extension_list -> ( Choice ( Seq enable_extension_name enable_extension_list/0.1 enable_extension_list/0.2 ) ) enable_extension_list .reg_info.index: 1272 enable_extension_list .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} enable_extension_list .derives_empty: False enable_extension_list .follow: {';'} requires_directive -> ( Choice ( Seq 'requires' language_extension_list ';' ) ) requires_directive .reg_info.index: 528 requires_directive .first: {'requires'} requires_directive .derives_empty: False requires_directive .follow: {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} language_extension_list -> ( Choice ( Seq language_extension_name language_extension_list/0.1 language_extension_list/0.2 ) ) language_extension_list .reg_info.index: 1283 language_extension_list .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} language_extension_list .derives_empty: False language_extension_list .follow: {';'} enable_extension_name -> ident_pattern_token enable_extension_name .reg_info.index: 156 enable_extension_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} enable_extension_name .derives_empty: False enable_extension_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} language_extension_name -> ident_pattern_token language_extension_name .reg_info.index: 156 language_extension_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} language_extension_name .derives_empty: False language_extension_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} ident_pattern_token -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ident_pattern_token .reg_info.index: 92 ident_pattern_token .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} ident_pattern_token .derives_empty: False ident_pattern_token .follow: {} severity_control_name -> ident_pattern_token severity_control_name .reg_info.index: 156 severity_control_name .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} severity_control_name .derives_empty: False severity_control_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> ( Choice /[rgba]/ /[rgba][rgba]/ /[rgba][rgba][rgba]/ /[rgba][rgba][rgba][rgba]/ /[xyzw]/ /[xyzw][xyzw]/ /[xyzw][xyzw][xyzw]/ /[xyzw][xyzw][xyzw][xyzw]/ ) swizzle_name .reg_info.index: 459 swizzle_name .first: {/[rgba]/ /[rgba][rgba]/ /[rgba][rgba][rgba]/ /[rgba][rgba][rgba][rgba]/ /[xyzw]/ /[xyzw][xyzw]/ /[xyzw][xyzw][xyzw]/ /[xyzw][xyzw][xyzw][xyzw]/} swizzle_name .derives_empty: False swizzle_name .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} _comment -> /\/\/.*/ _comment .reg_info.index: 101 _comment .first: {/\/\/.*/} _comment .derives_empty: False _comment .follow: {} _blankspace -> /[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]/ _blankspace .reg_info.index: 102 _blankspace .first: {/[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]/} _blankspace .derives_empty: False _blankspace .follow: {} _shift_left_assign -> /\u200B_shift_left_assign/ _shift_left_assign .reg_info.index: 103 _shift_left_assign .first: {/\u200B_shift_left_assign/} _shift_left_assign .derives_empty: False _shift_left_assign .follow: {} _shift_left -> /\u200B_shift_left/ _shift_left .reg_info.index: 104 _shift_left .first: {/\u200B_shift_left/} _shift_left .derives_empty: False _shift_left .follow: {} _less_than -> /\u200B_less_than/ _less_than .reg_info.index: 105 _less_than .first: {/\u200B_less_than/} _less_than .derives_empty: False _less_than .follow: {} _shift_right_assign -> /\u200B_shift_right_assign/ _shift_right_assign .reg_info.index: 106 _shift_right_assign .first: {/\u200B_shift_right_assign/} _shift_right_assign .derives_empty: False _shift_right_assign .follow: {} _block_comment -> /\u200B_block_comment/ _block_comment .reg_info.index: 107 _block_comment .first: {/\u200B_block_comment/} _block_comment .derives_empty: False _block_comment .follow: {} _greater_than -> /\u200B_greater_than/ _greater_than .reg_info.index: 108 _greater_than .first: {/\u200B_greater_than/} _greater_than .derives_empty: False _greater_than .follow: {} _less_than_equal -> /\u200B_less_than_equal/ _less_than_equal .reg_info.index: 109 _less_than_equal .first: {/\u200B_less_than_equal/} _less_than_equal .derives_empty: False _less_than_equal .follow: {} _template_args_start -> /\u200B_template_args_start/ _template_args_start .reg_info.index: 110 _template_args_start .first: {/\u200B_template_args_start/} _template_args_start .derives_empty: False _template_args_start .follow: {} _disambiguate_template -> /\u200B_disambiguate_template/ _disambiguate_template .reg_info.index: 111 _disambiguate_template .first: {/\u200B_disambiguate_template/} _disambiguate_template .derives_empty: False _disambiguate_template .follow: {} _error_sentinel -> /\u200B_error_sentinel/ _error_sentinel .reg_info.index: 112 _error_sentinel .first: {/\u200B_error_sentinel/} _error_sentinel .derives_empty: False _error_sentinel .follow: {} _shift_right -> /\u200B_shift_right/ _shift_right .reg_info.index: 113 _shift_right .first: {/\u200B_shift_right/} _shift_right .derives_empty: False _shift_right .follow: {} _template_args_end -> /\u200B_template_args_end/ _template_args_end .reg_info.index: 114 _template_args_end .first: {/\u200B_template_args_end/} _template_args_end .derives_empty: False _template_args_end .follow: {} _greater_than_equal -> /\u200B_greater_than_equal/ _greater_than_equal .reg_info.index: 115 _greater_than_equal .first: {/\u200B_greater_than_equal/} _greater_than_equal .derives_empty: False _greater_than_equal .follow: {} language -> ( Choice ( Seq translation_unit EndOfText ) ) language .reg_info.index: 530 language .first: {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} language .derives_empty: False language .follow: {} translation_unit/0.0 -> ( Choice translation_unit/0.0/0 ε ) translation_unit/0.0 .reg_info.index: 1374 translation_unit/0.0 .first: {'diagnostic' 'enable' 'requires' ε} translation_unit/0.0 .derives_empty: True translation_unit/0.0 .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1 -> ( Choice translation_unit/0.1/0 ε ) translation_unit/0.1 .reg_info.index: 1378 translation_unit/0.1 .first: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' ε} translation_unit/0.1 .derives_empty: True translation_unit/0.1 .follow: {EndOfText} template_arg_comma_list/0.1 -> ( Choice template_arg_comma_list/0.1/0 ε ) template_arg_comma_list/0.1 .reg_info.index: 1382 template_arg_comma_list/0.1 .first: {',' ε} template_arg_comma_list/0.1 .derives_empty: True template_arg_comma_list/0.1 .follow: {',' /\u200B_template_args_end/} template_arg_comma_list/0.2 -> ( Choice ',' ε ) template_arg_comma_list/0.2 .reg_info.index: 170 template_arg_comma_list/0.2 .first: {',' ε} template_arg_comma_list/0.2 .derives_empty: True template_arg_comma_list/0.2 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} align_attr/0.4 -> ( Choice ',' ε ) align_attr/0.4 .reg_info.index: 170 align_attr/0.4 .first: {',' ε} align_attr/0.4 .derives_empty: True align_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} binding_attr/0.4 -> ( Choice ',' ε ) binding_attr/0.4 .reg_info.index: 170 binding_attr/0.4 .first: {',' ε} binding_attr/0.4 .derives_empty: True binding_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} blend_src_attr/0.4 -> ( Choice ',' ε ) blend_src_attr/0.4 .reg_info.index: 170 blend_src_attr/0.4 .first: {',' ε} blend_src_attr/0.4 .derives_empty: True blend_src_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} builtin_attr/0.4 -> ( Choice ',' ε ) builtin_attr/0.4 .reg_info.index: 170 builtin_attr/0.4 .first: {',' ε} builtin_attr/0.4 .derives_empty: True builtin_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} group_attr/0.4 -> ( Choice ',' ε ) group_attr/0.4 .reg_info.index: 170 group_attr/0.4 .first: {',' ε} group_attr/0.4 .derives_empty: True group_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} id_attr/0.4 -> ( Choice ',' ε ) id_attr/0.4 .reg_info.index: 170 id_attr/0.4 .first: {',' ε} id_attr/0.4 .derives_empty: True id_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} interpolate_attr/0.4 -> ( Choice ',' ε ) interpolate_attr/0.4 .reg_info.index: 170 interpolate_attr/0.4 .first: {',' ε} interpolate_attr/0.4 .derives_empty: True interpolate_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} interpolate_attr/1.6 -> ( Choice ',' ε ) interpolate_attr/1.6 .reg_info.index: 170 interpolate_attr/1.6 .first: {',' ε} interpolate_attr/1.6 .derives_empty: True interpolate_attr/1.6 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} location_attr/0.4 -> ( Choice ',' ε ) location_attr/0.4 .reg_info.index: 170 location_attr/0.4 .first: {',' ε} location_attr/0.4 .derives_empty: True location_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} size_attr/0.4 -> ( Choice ',' ε ) size_attr/0.4 .reg_info.index: 170 size_attr/0.4 .first: {',' ε} size_attr/0.4 .derives_empty: True size_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} workgroup_size_attr/0.4 -> ( Choice ',' ε ) workgroup_size_attr/0.4 .reg_info.index: 170 workgroup_size_attr/0.4 .first: {',' ε} workgroup_size_attr/0.4 .derives_empty: True workgroup_size_attr/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} workgroup_size_attr/1.6 -> ( Choice ',' ε ) workgroup_size_attr/1.6 .reg_info.index: 170 workgroup_size_attr/1.6 .first: {',' ε} workgroup_size_attr/1.6 .derives_empty: True workgroup_size_attr/1.6 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} workgroup_size_attr/2.8 -> ( Choice ',' ε ) workgroup_size_attr/2.8 .reg_info.index: 170 workgroup_size_attr/2.8 .first: {',' ε} workgroup_size_attr/2.8 .derives_empty: True workgroup_size_attr/2.8 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} attribute/0.2 -> ( Choice argument_expression_list ε ) attribute/0.2 .reg_info.index: 199 attribute/0.2 .first: {'(' ε} attribute/0.2 .derives_empty: True attribute/0.2 .follow: {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_control/0.4 -> ( Choice ',' ε ) diagnostic_control/0.4 .reg_info.index: 170 diagnostic_control/0.4 .first: {',' ε} diagnostic_control/0.4 .derives_empty: True diagnostic_control/0.4 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} struct_body_decl/0.2 -> ( Choice struct_body_decl/0.2/0 ε ) struct_body_decl/0.2 .reg_info.index: 1402 struct_body_decl/0.2 .first: {',' ε} struct_body_decl/0.2 .derives_empty: True struct_body_decl/0.2 .follow: {',' '}'} struct_body_decl/0.3 -> ( Choice ',' ε ) struct_body_decl/0.3 .reg_info.index: 170 struct_body_decl/0.3 .first: {',' ε} struct_body_decl/0.3 .derives_empty: True struct_body_decl/0.3 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} struct_member/0.0 -> ( Choice struct_member/0.0/0 ε ) struct_member/0.0 .reg_info.index: 1407 struct_member/0.0 .first: {'@' ε} struct_member/0.0 .derives_empty: True struct_member/0.0 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} template_elaborated_ident/0.2 -> ( Choice template_list ε ) template_elaborated_ident/0.2 .reg_info.index: 239 template_elaborated_ident/0.2 .first: {/\u200B_template_args_start/ ε} template_elaborated_ident/0.2 .derives_empty: True template_elaborated_ident/0.2 .follow: {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} variable_decl/0.2 -> ( Choice template_list ε ) variable_decl/0.2 .reg_info.index: 239 variable_decl/0.2 .first: {/\u200B_template_args_start/ ε} variable_decl/0.2 .derives_empty: True variable_decl/0.2 .follow: {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} optionally_typed_ident/0.1 -> ( Choice ( Seq ':' type_specifier ) ε ) optionally_typed_ident/0.1 .reg_info.index: 249 optionally_typed_ident/0.1 .first: {':' ε} optionally_typed_ident/0.1 .derives_empty: True optionally_typed_ident/0.1 .follow: {';' '='} global_variable_decl/0.0 -> ( Choice global_variable_decl/0.0/0 ε ) global_variable_decl/0.0 .reg_info.index: 1416 global_variable_decl/0.0 .first: {'@' ε} global_variable_decl/0.0 .derives_empty: True global_variable_decl/0.0 .follow: {'var'} global_variable_decl/0.2 -> ( Choice ( Seq '=' expression ) ε ) global_variable_decl/0.2 .reg_info.index: 252 global_variable_decl/0.2 .first: {'=' ε} global_variable_decl/0.2 .derives_empty: True global_variable_decl/0.2 .follow: {';'} global_value_decl/1.0 -> ( Choice global_value_decl/1.0/0 ε ) global_value_decl/1.0 .reg_info.index: 1423 global_value_decl/1.0 .first: {'@' ε} global_value_decl/1.0 .derives_empty: True global_value_decl/1.0 .follow: {'override'} global_value_decl/1.3 -> ( Choice ( Seq '=' expression ) ε ) global_value_decl/1.3 .reg_info.index: 252 global_value_decl/1.3 .first: {'=' ε} global_value_decl/1.3 .derives_empty: True global_value_decl/1.3 .follow: {';'} argument_expression_list/0.1 -> ( Choice expression_comma_list ε ) argument_expression_list/0.1 .reg_info.index: 264 argument_expression_list/0.1 .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/ ε} argument_expression_list/0.1 .derives_empty: True argument_expression_list/0.1 .follow: {')'} expression_comma_list/0.1 -> ( Choice expression_comma_list/0.1/0 ε ) expression_comma_list/0.1 .reg_info.index: 1431 expression_comma_list/0.1 .first: {',' ε} expression_comma_list/0.1 .derives_empty: True expression_comma_list/0.1 .follow: {')' ','} expression_comma_list/0.2 -> ( Choice ',' ε ) expression_comma_list/0.2 .reg_info.index: 170 expression_comma_list/0.2 .first: {',' ε} expression_comma_list/0.2 .derives_empty: True expression_comma_list/0.2 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} component_or_swizzle_specifier/0.3 -> ( Choice component_or_swizzle_specifier ε ) component_or_swizzle_specifier/0.3 .reg_info.index: 271 component_or_swizzle_specifier/0.3 .first: {'.' '[' ε} component_or_swizzle_specifier/0.3 .derives_empty: True component_or_swizzle_specifier/0.3 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier/1.2 -> ( Choice component_or_swizzle_specifier ε ) component_or_swizzle_specifier/1.2 .reg_info.index: 271 component_or_swizzle_specifier/1.2 .first: {'.' '[' ε} component_or_swizzle_specifier/1.2 .derives_empty: True component_or_swizzle_specifier/1.2 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier/2.2 -> ( Choice component_or_swizzle_specifier ε ) component_or_swizzle_specifier/2.2 .reg_info.index: 271 component_or_swizzle_specifier/2.2 .first: {'.' '[' ε} component_or_swizzle_specifier/2.2 .derives_empty: True component_or_swizzle_specifier/2.2 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} singular_expression/0.1 -> ( Choice component_or_swizzle_specifier ε ) singular_expression/0.1 .reg_info.index: 271 singular_expression/0.1 .first: {'.' '[' ε} singular_expression/0.1 .derives_empty: True singular_expression/0.1 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} lhs_expression/0.1 -> ( Choice component_or_swizzle_specifier ε ) lhs_expression/0.1 .reg_info.index: 271 lhs_expression/0.1 .first: {'.' '[' ε} lhs_expression/0.1 .derives_empty: True lhs_expression/0.1 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} compound_statement/0.0 -> ( Choice compound_statement/0.0/0 ε ) compound_statement/0.0 .reg_info.index: 1441 compound_statement/0.0 .first: {'@' ε} compound_statement/0.0 .derives_empty: True compound_statement/0.0 .follow: {'{'} compound_statement/0.2 -> ( Choice compound_statement/0.2/0 ε ) compound_statement/0.2 .reg_info.index: 1445 compound_statement/0.2 .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} compound_statement/0.2 .derives_empty: True compound_statement/0.2 .follow: {'}'} assignment_statement/0.1 -> ( Choice '=' compound_assignment_operator ) assignment_statement/0.1 .reg_info.index: 347 assignment_statement/0.1 .first: {'%=' '&=' '*=' '+=' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} assignment_statement/0.1 .derives_empty: False assignment_statement/0.1 .follow: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} if_statement/0.0 -> ( Choice if_statement/0.0/0 ε ) if_statement/0.0 .reg_info.index: 1450 if_statement/0.0 .first: {'@' ε} if_statement/0.0 .derives_empty: True if_statement/0.0 .follow: {'if'} if_statement/0.2 -> ( Choice if_statement/0.2/0 ε ) if_statement/0.2 .reg_info.index: 1454 if_statement/0.2 .first: {'else' ε} if_statement/0.2 .derives_empty: True if_statement/0.2 .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.3 -> ( Choice else_clause ε ) if_statement/0.3 .reg_info.index: 361 if_statement/0.3 .first: {'else' ε} if_statement/0.3 .derives_empty: True if_statement/0.3 .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> ( Choice switch_statement/0.0/0 ε ) switch_statement/0.0 .reg_info.index: 1459 switch_statement/0.0 .first: {'@' ε} switch_statement/0.0 .derives_empty: True switch_statement/0.0 .follow: {'switch'} switch_body/0.0 -> ( Choice switch_body/0.0/0 ε ) switch_body/0.0 .reg_info.index: 1463 switch_body/0.0 .first: {'@' ε} switch_body/0.0 .derives_empty: True switch_body/0.0 .follow: {'{'} switch_body/0.2 -> ( Choice switch_body/0.2/0 ) switch_body/0.2 .reg_info.index: 1343 switch_body/0.2 .first: {'case' 'default' ε} switch_body/0.2 .derives_empty: True switch_body/0.2 .follow: {'}'} case_clause/0.2 -> ( Choice ':' ε ) case_clause/0.2 .reg_info.index: 376 case_clause/0.2 .first: {':' ε} case_clause/0.2 .derives_empty: True case_clause/0.2 .follow: {'@' '{'} default_alone_clause/0.1 -> ( Choice ':' ε ) default_alone_clause/0.1 .reg_info.index: 376 default_alone_clause/0.1 .first: {':' ε} default_alone_clause/0.1 .derives_empty: True default_alone_clause/0.1 .follow: {'@' '{'} case_selectors/0.1 -> ( Choice case_selectors/0.1/0 ε ) case_selectors/0.1 .reg_info.index: 1469 case_selectors/0.1 .first: {',' ε} case_selectors/0.1 .derives_empty: True case_selectors/0.1 .follow: {',' ':' '@' '{'} case_selectors/0.2 -> ( Choice ',' ε ) case_selectors/0.2 .reg_info.index: 170 case_selectors/0.2 .first: {',' ε} case_selectors/0.2 .derives_empty: True case_selectors/0.2 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} loop_statement/0.0 -> ( Choice loop_statement/0.0/0 ε ) loop_statement/0.0 .reg_info.index: 1474 loop_statement/0.0 .first: {'@' ε} loop_statement/0.0 .derives_empty: True loop_statement/0.0 .follow: {'loop'} loop_statement/0.2 -> ( Choice loop_statement/0.2/0 ε ) loop_statement/0.2 .reg_info.index: 1478 loop_statement/0.2 .first: {'@' ε} loop_statement/0.2 .derives_empty: True loop_statement/0.2 .follow: {'{'} loop_statement/0.4 -> ( Choice loop_statement/0.4/0 ε ) loop_statement/0.4 .reg_info.index: 1482 loop_statement/0.4 .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} loop_statement/0.4 .derives_empty: True loop_statement/0.4 .follow: {'continuing' '}'} loop_statement/0.5 -> ( Choice continuing_statement ε ) loop_statement/0.5 .reg_info.index: 386 loop_statement/0.5 .first: {'continuing' ε} loop_statement/0.5 .derives_empty: True loop_statement/0.5 .follow: {'}'} for_statement/0.0 -> ( Choice for_statement/0.0/0 ε ) for_statement/0.0 .reg_info.index: 1487 for_statement/0.0 .first: {'@' ε} for_statement/0.0 .derives_empty: True for_statement/0.0 .follow: {'for'} for_header/0.0 -> ( Choice for_init ε ) for_header/0.0 .reg_info.index: 391 for_header/0.0 .first: {'&' '(' '*' '_' 'const' 'let' 'var' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} for_header/0.0 .derives_empty: True for_header/0.0 .follow: {';'} for_header/0.2 -> ( Choice expression ε ) for_header/0.2 .reg_info.index: 392 for_header/0.2 .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/ ε} for_header/0.2 .derives_empty: True for_header/0.2 .follow: {';'} for_header/0.4 -> ( Choice for_update ε ) for_header/0.4 .reg_info.index: 394 for_header/0.4 .first: {'&' '(' '*' '_' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} for_header/0.4 .derives_empty: True for_header/0.4 .follow: {')'} while_statement/0.0 -> ( Choice while_statement/0.0/0 ε ) while_statement/0.0 .reg_info.index: 1494 while_statement/0.0 .first: {'@' ε} while_statement/0.0 .derives_empty: True while_statement/0.0 .follow: {'while'} continuing_compound_statement/0.0 -> ( Choice continuing_compound_statement/0.0/0 ε ) continuing_compound_statement/0.0 .reg_info.index: 1498 continuing_compound_statement/0.0 .first: {'@' ε} continuing_compound_statement/0.0 .derives_empty: True continuing_compound_statement/0.0 .follow: {'{'} continuing_compound_statement/0.2 -> ( Choice continuing_compound_statement/0.2/0 ε ) continuing_compound_statement/0.2 .reg_info.index: 1502 continuing_compound_statement/0.2 .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} continuing_compound_statement/0.2 .derives_empty: True continuing_compound_statement/0.2 .follow: {'break' '}'} continuing_compound_statement/0.3 -> ( Choice break_if_statement ε ) continuing_compound_statement/0.3 .reg_info.index: 406 continuing_compound_statement/0.3 .first: {'break' ε} continuing_compound_statement/0.3 .derives_empty: True continuing_compound_statement/0.3 .follow: {'}'} return_statement/0.1 -> ( Choice expression ε ) return_statement/0.1 .reg_info.index: 392 return_statement/0.1 .first: {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/ ε} return_statement/0.1 .derives_empty: True return_statement/0.1 .follow: {';'} function_decl/0.0 -> ( Choice function_decl/0.0/0 ε ) function_decl/0.0 .reg_info.index: 1508 function_decl/0.0 .first: {'@' ε} function_decl/0.0 .derives_empty: True function_decl/0.0 .follow: {'fn'} function_header/0.3 -> ( Choice param_list ε ) function_header/0.3 .reg_info.index: 435 function_header/0.3 .first: {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} function_header/0.3 .derives_empty: True function_header/0.3 .follow: {')'} function_header/0.5 -> ( Choice ( Seq '->' function_header/0.5/0.1 template_elaborated_ident ) ε ) function_header/0.5 .reg_info.index: 1515 function_header/0.5 .first: {'->' ε} function_header/0.5 .derives_empty: True function_header/0.5 .follow: {'@' '{'} param_list/0.1 -> ( Choice param_list/0.1/0 ε ) param_list/0.1 .reg_info.index: 1519 param_list/0.1 .first: {',' ε} param_list/0.1 .derives_empty: True param_list/0.1 .follow: {')' ','} param_list/0.2 -> ( Choice ',' ε ) param_list/0.2 .reg_info.index: 170 param_list/0.2 .first: {',' ε} param_list/0.2 .derives_empty: True param_list/0.2 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} param/0.0 -> ( Choice param/0.0/0 ε ) param/0.0 .reg_info.index: 1524 param/0.0 .first: {'@' ε} param/0.0 .derives_empty: True param/0.0 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} enable_extension_list/0.1 -> ( Choice enable_extension_list/0.1/0 ε ) enable_extension_list/0.1 .reg_info.index: 1528 enable_extension_list/0.1 .first: {',' ε} enable_extension_list/0.1 .derives_empty: True enable_extension_list/0.1 .follow: {',' ';'} enable_extension_list/0.2 -> ( Choice ',' ε ) enable_extension_list/0.2 .reg_info.index: 170 enable_extension_list/0.2 .first: {',' ε} enable_extension_list/0.2 .derives_empty: True enable_extension_list/0.2 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} language_extension_list/0.1 -> ( Choice language_extension_list/0.1/0 ε ) language_extension_list/0.1 .reg_info.index: 1533 language_extension_list/0.1 .first: {',' ε} language_extension_list/0.1 .derives_empty: True language_extension_list/0.1 .follow: {',' ';'} language_extension_list/0.2 -> ( Choice ',' ε ) language_extension_list/0.2 .reg_info.index: 170 language_extension_list/0.2 .first: {',' ε} language_extension_list/0.2 .derives_empty: True language_extension_list/0.2 .follow: {')' ':' ';' '@' '{' '}' /\u200B_template_args_end/} switch_body/0.2/0 -> ( Choice ( Seq switch_clause switch_body/0.2/0 ) ε ) switch_body/0.2/0 .reg_info.index: 1342 switch_body/0.2/0 .first: {'case' 'default' ε} switch_body/0.2/0 .derives_empty: True switch_body/0.2/0 .follow: {'}'} translation_unit/0.0/0 -> ( Choice ( Seq global_directive translation_unit/0.0/0 ) ε ) translation_unit/0.0/0 .reg_info.index: 1372 translation_unit/0.0/0 .first: {'diagnostic' 'enable' 'requires' ε} translation_unit/0.0/0 .derives_empty: True translation_unit/0.0/0 .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0 -> ( Choice ( Seq translation_unit/0.1/0/0.0 translation_unit/0.1/0 ) ε ) translation_unit/0.1/0 .reg_info.index: 1549 translation_unit/0.1/0 .first: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' ε} translation_unit/0.1/0 .derives_empty: True translation_unit/0.1/0 .follow: {EndOfText} template_arg_comma_list/0.1/0 -> ( Choice ( Seq template_arg_comma_list/0.1/0/0.0 template_arg_comma_list/0.1/0 ) ε ) template_arg_comma_list/0.1/0 .reg_info.index: 1556 template_arg_comma_list/0.1/0 .first: {',' ε} template_arg_comma_list/0.1/0 .derives_empty: True template_arg_comma_list/0.1/0 .follow: {',' /\u200B_template_args_end/} struct_body_decl/0.2/0 -> ( Choice ( Seq struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 ) ε ) struct_body_decl/0.2/0 .reg_info.index: 1563 struct_body_decl/0.2/0 .first: {',' ε} struct_body_decl/0.2/0 .derives_empty: True struct_body_decl/0.2/0 .follow: {',' '}'} struct_member/0.0/0 -> ( Choice ( Seq attribute struct_member/0.0/0 ) ε ) struct_member/0.0/0 .reg_info.index: 1405 struct_member/0.0/0 .first: {'@' ε} struct_member/0.0/0 .derives_empty: True struct_member/0.0/0 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} global_variable_decl/0.0/0 -> ( Choice ( Seq attribute global_variable_decl/0.0/0 ) ε ) global_variable_decl/0.0/0 .reg_info.index: 1414 global_variable_decl/0.0/0 .first: {'@' ε} global_variable_decl/0.0/0 .derives_empty: True global_variable_decl/0.0/0 .follow: {'var'} global_value_decl/1.0/0 -> ( Choice ( Seq attribute global_value_decl/1.0/0 ) ε ) global_value_decl/1.0/0 .reg_info.index: 1421 global_value_decl/1.0/0 .first: {'@' ε} global_value_decl/1.0/0 .derives_empty: True global_value_decl/1.0/0 .follow: {'override'} expression_comma_list/0.1/0 -> ( Choice ( Seq expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 ) ε ) expression_comma_list/0.1/0 .reg_info.index: 1582 expression_comma_list/0.1/0 .first: {',' ε} expression_comma_list/0.1/0 .derives_empty: True expression_comma_list/0.1/0 .follow: {')' ','} compound_statement/0.0/0 -> ( Choice ( Seq attribute compound_statement/0.0/0 ) ε ) compound_statement/0.0/0 .reg_info.index: 1439 compound_statement/0.0/0 .first: {'@' ε} compound_statement/0.0/0 .derives_empty: True compound_statement/0.0/0 .follow: {'{'} compound_statement/0.2/0 -> ( Choice ( Seq statement compound_statement/0.2/0 ) ε ) compound_statement/0.2/0 .reg_info.index: 1443 compound_statement/0.2/0 .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} compound_statement/0.2/0 .derives_empty: True compound_statement/0.2/0 .follow: {'}'} if_statement/0.0/0 -> ( Choice ( Seq attribute if_statement/0.0/0 ) ε ) if_statement/0.0/0 .reg_info.index: 1448 if_statement/0.0/0 .first: {'@' ε} if_statement/0.0/0 .derives_empty: True if_statement/0.0/0 .follow: {'if'} if_statement/0.2/0 -> ( Choice ( Seq else_if_clause if_statement/0.2/0 ) ε ) if_statement/0.2/0 .reg_info.index: 1452 if_statement/0.2/0 .first: {'else' ε} if_statement/0.2/0 .derives_empty: True if_statement/0.2/0 .follow: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0/0 -> ( Choice ( Seq attribute switch_statement/0.0/0 ) ε ) switch_statement/0.0/0 .reg_info.index: 1457 switch_statement/0.0/0 .first: {'@' ε} switch_statement/0.0/0 .derives_empty: True switch_statement/0.0/0 .follow: {'switch'} switch_body/0.0/0 -> ( Choice ( Seq attribute switch_body/0.0/0 ) ε ) switch_body/0.0/0 .reg_info.index: 1461 switch_body/0.0/0 .first: {'@' ε} switch_body/0.0/0 .derives_empty: True switch_body/0.0/0 .follow: {'{'} case_selectors/0.1/0 -> ( Choice ( Seq case_selectors/0.1/0/0.0 case_selectors/0.1/0 ) ε ) case_selectors/0.1/0 .reg_info.index: 1613 case_selectors/0.1/0 .first: {',' ε} case_selectors/0.1/0 .derives_empty: True case_selectors/0.1/0 .follow: {',' ':' '@' '{'} loop_statement/0.0/0 -> ( Choice ( Seq attribute loop_statement/0.0/0 ) ε ) loop_statement/0.0/0 .reg_info.index: 1472 loop_statement/0.0/0 .first: {'@' ε} loop_statement/0.0/0 .derives_empty: True loop_statement/0.0/0 .follow: {'loop'} loop_statement/0.2/0 -> ( Choice ( Seq attribute loop_statement/0.2/0 ) ε ) loop_statement/0.2/0 .reg_info.index: 1476 loop_statement/0.2/0 .first: {'@' ε} loop_statement/0.2/0 .derives_empty: True loop_statement/0.2/0 .follow: {'{'} loop_statement/0.4/0 -> ( Choice ( Seq statement loop_statement/0.4/0 ) ε ) loop_statement/0.4/0 .reg_info.index: 1480 loop_statement/0.4/0 .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} loop_statement/0.4/0 .derives_empty: True loop_statement/0.4/0 .follow: {'continuing' '}'} for_statement/0.0/0 -> ( Choice ( Seq attribute for_statement/0.0/0 ) ε ) for_statement/0.0/0 .reg_info.index: 1485 for_statement/0.0/0 .first: {'@' ε} for_statement/0.0/0 .derives_empty: True for_statement/0.0/0 .follow: {'for'} while_statement/0.0/0 -> ( Choice ( Seq attribute while_statement/0.0/0 ) ε ) while_statement/0.0/0 .reg_info.index: 1492 while_statement/0.0/0 .first: {'@' ε} while_statement/0.0/0 .derives_empty: True while_statement/0.0/0 .follow: {'while'} continuing_compound_statement/0.0/0 -> ( Choice ( Seq attribute continuing_compound_statement/0.0/0 ) ε ) continuing_compound_statement/0.0/0 .reg_info.index: 1496 continuing_compound_statement/0.0/0 .first: {'@' ε} continuing_compound_statement/0.0/0 .derives_empty: True continuing_compound_statement/0.0/0 .follow: {'{'} continuing_compound_statement/0.2/0 -> ( Choice ( Seq statement continuing_compound_statement/0.2/0 ) ε ) continuing_compound_statement/0.2/0 .reg_info.index: 1500 continuing_compound_statement/0.2/0 .first: {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} continuing_compound_statement/0.2/0 .derives_empty: True continuing_compound_statement/0.2/0 .follow: {'break' '}'} function_decl/0.0/0 -> ( Choice ( Seq attribute function_decl/0.0/0 ) ε ) function_decl/0.0/0 .reg_info.index: 1506 function_decl/0.0/0 .first: {'@' ε} function_decl/0.0/0 .derives_empty: True function_decl/0.0/0 .follow: {'fn'} function_header/0.5/0.1 -> ( Choice function_header/0.5/0.1/0 ε ) function_header/0.5/0.1 .reg_info.index: 1675 function_header/0.5/0.1 .first: {'@' ε} function_header/0.5/0.1 .derives_empty: True function_header/0.5/0.1 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param_list/0.1/0 -> ( Choice ( Seq param_list/0.1/0/0.0 param_list/0.1/0 ) ε ) param_list/0.1/0 .reg_info.index: 1653 param_list/0.1/0 .first: {',' ε} param_list/0.1/0 .derives_empty: True param_list/0.1/0 .follow: {')' ','} param/0.0/0 -> ( Choice ( Seq attribute param/0.0/0 ) ε ) param/0.0/0 .reg_info.index: 1522 param/0.0/0 .first: {'@' ε} param/0.0/0 .derives_empty: True param/0.0/0 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} enable_extension_list/0.1/0 -> ( Choice ( Seq enable_extension_list/0.1/0/0.0 enable_extension_list/0.1/0 ) ε ) enable_extension_list/0.1/0 .reg_info.index: 1664 enable_extension_list/0.1/0 .first: {',' ε} enable_extension_list/0.1/0 .derives_empty: True enable_extension_list/0.1/0 .follow: {',' ';'} language_extension_list/0.1/0 -> ( Choice ( Seq language_extension_list/0.1/0/0.0 language_extension_list/0.1/0 ) ε ) language_extension_list/0.1/0 .reg_info.index: 1671 language_extension_list/0.1/0 .first: {',' ε} language_extension_list/0.1/0 .derives_empty: True language_extension_list/0.1/0 .follow: {',' ';'} translation_unit/0.1/0/0.0 -> ( Choice global_decl global_assert ';' ) translation_unit/0.1/0/0.0 .reg_info.index: 121 translation_unit/0.1/0/0.0 .first: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var'} translation_unit/0.1/0/0.0 .derives_empty: False translation_unit/0.1/0/0.0 .follow: {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} template_arg_comma_list/0.1/0/0.0 -> ( Choice ( Seq ',' template_arg_expression ) ) template_arg_comma_list/0.1/0/0.0 .reg_info.index: 1552 template_arg_comma_list/0.1/0/0.0 .first: {','} template_arg_comma_list/0.1/0/0.0 .derives_empty: False template_arg_comma_list/0.1/0/0.0 .follow: {',' /\u200B_template_args_end/} struct_body_decl/0.2/0/0.0 -> ( Choice ( Seq ',' struct_member ) ) struct_body_decl/0.2/0/0.0 .reg_info.index: 1559 struct_body_decl/0.2/0/0.0 .first: {','} struct_body_decl/0.2/0/0.0 .derives_empty: False struct_body_decl/0.2/0/0.0 .follow: {',' '}'} expression_comma_list/0.1/0/0.0 -> ( Choice ( Seq ',' expression ) ) expression_comma_list/0.1/0/0.0 .reg_info.index: 1578 expression_comma_list/0.1/0/0.0 .first: {','} expression_comma_list/0.1/0/0.0 .derives_empty: False expression_comma_list/0.1/0/0.0 .follow: {')' ','} case_selectors/0.1/0/0.0 -> ( Choice ( Seq ',' case_selector ) ) case_selectors/0.1/0/0.0 .reg_info.index: 1609 case_selectors/0.1/0/0.0 .first: {','} case_selectors/0.1/0/0.0 .derives_empty: False case_selectors/0.1/0/0.0 .follow: {',' ':' '@' '{'} param_list/0.1/0/0.0 -> ( Choice ( Seq ',' param ) ) param_list/0.1/0/0.0 .reg_info.index: 1649 param_list/0.1/0/0.0 .first: {','} param_list/0.1/0/0.0 .derives_empty: False param_list/0.1/0/0.0 .follow: {')' ','} enable_extension_list/0.1/0/0.0 -> ( Choice ( Seq ',' enable_extension_name ) ) enable_extension_list/0.1/0/0.0 .reg_info.index: 1660 enable_extension_list/0.1/0/0.0 .first: {','} enable_extension_list/0.1/0/0.0 .derives_empty: False enable_extension_list/0.1/0/0.0 .follow: {',' ';'} language_extension_list/0.1/0/0.0 -> ( Choice ( Seq ',' language_extension_name ) ) language_extension_list/0.1/0/0.0 .reg_info.index: 1667 language_extension_list/0.1/0/0.0 .first: {','} language_extension_list/0.1/0/0.0 .derives_empty: False language_extension_list/0.1/0/0.0 .follow: {',' ';'} function_header/0.5/0.1/0 -> ( Choice ( Seq attribute function_header/0.5/0.1/0 ) ε ) function_header/0.5/0.1/0 .reg_info.index: 1673 function_header/0.5/0.1/0 .first: {'@' ε} function_header/0.5/0.1/0 .derives_empty: True function_header/0.5/0.1/0 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} =LALR1 item sets: #0 language -> · translation_unit EndOfText : {EndOfText} diagnostic_directive -> · 'diagnostic' diagnostic_control ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} enable_directive -> · 'enable' enable_extension_list ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_directive -> · diagnostic_directive : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_directive -> · enable_directive : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_directive -> · requires_directive : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} requires_directive -> · 'requires' language_extension_list ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} translation_unit -> · translation_unit/0.0 translation_unit/0.1 : {EndOfText} translation_unit/0.0 -> · translation_unit/0.0/0 : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.0/0 -> · global_directive translation_unit/0.0/0 : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #1 language -> translation_unit · EndOfText : {EndOfText} #2 translation_unit -> translation_unit/0.0 · translation_unit/0.1 : {EndOfText} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'fn' 'override' 'var'} attribute -> · align_attr : {'@' 'fn' 'override' 'var'} attribute -> · binding_attr : {'@' 'fn' 'override' 'var'} attribute -> · blend_src_attr : {'@' 'fn' 'override' 'var'} attribute -> · builtin_attr : {'@' 'fn' 'override' 'var'} attribute -> · compute_attr : {'@' 'fn' 'override' 'var'} attribute -> · const_attr : {'@' 'fn' 'override' 'var'} attribute -> · diagnostic_attr : {'@' 'fn' 'override' 'var'} attribute -> · fragment_attr : {'@' 'fn' 'override' 'var'} attribute -> · group_attr : {'@' 'fn' 'override' 'var'} attribute -> · id_attr : {'@' 'fn' 'override' 'var'} attribute -> · interpolate_attr : {'@' 'fn' 'override' 'var'} attribute -> · invariant_attr : {'@' 'fn' 'override' 'var'} attribute -> · location_attr : {'@' 'fn' 'override' 'var'} attribute -> · must_use_attr : {'@' 'fn' 'override' 'var'} attribute -> · size_attr : {'@' 'fn' 'override' 'var'} attribute -> · vertex_attr : {'@' 'fn' 'override' 'var'} attribute -> · workgroup_size_attr : {'@' 'fn' 'override' 'var'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} compute_attr -> · '@' 'compute' : {'@' 'fn' 'override' 'var'} const_attr -> · '@' 'const' : {'@' 'fn' 'override' 'var'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'fn' 'override' 'var'} fragment_attr -> · '@' 'fragment' : {'@' 'fn' 'override' 'var'} function_decl -> · function_decl/0.0 function_header compound_statement : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} function_decl/0.0 -> · function_decl/0.0/0 : {'fn'} function_decl/0.0/0 -> · attribute function_decl/0.0/0 : {'fn'} global_assert -> · 'const_assert' ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · function_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · global_value_decl ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · global_variable_decl ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · struct_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · type_alias_decl ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_value_decl -> · 'const' optionally_typed_ident '=' expression : {';'} global_value_decl -> · global_value_decl/1.0 'override' optionally_typed_ident global_value_decl/1.3 : {';'} global_value_decl/1.0 -> · global_value_decl/1.0/0 : {'override'} global_value_decl/1.0/0 -> · attribute global_value_decl/1.0/0 : {'override'} global_variable_decl -> · global_variable_decl/0.0 variable_decl global_variable_decl/0.2 : {';'} global_variable_decl/0.0 -> · global_variable_decl/0.0/0 : {'var'} global_variable_decl/0.0/0 -> · attribute global_variable_decl/0.0/0 : {'var'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'override' 'var'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} invariant_attr -> · '@' 'invariant' : {'@' 'fn' 'override' 'var'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} must_use_attr -> · '@' 'must_use' : {'@' 'fn' 'override' 'var'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} struct_decl -> · 'struct' ident struct_body_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1 -> · translation_unit/0.1/0 : {EndOfText} translation_unit/0.1/0 -> · translation_unit/0.1/0/0.0 translation_unit/0.1/0 : {EndOfText} translation_unit/0.1/0/0.0 -> · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0/0.0 -> · global_assert : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0/0.0 -> · global_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} type_alias_decl -> · 'alias' ident '=' type_specifier : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} #3 translation_unit/0.0 -> translation_unit/0.0/0 · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #4 translation_unit/0.0/0 -> global_directive · translation_unit/0.0/0 : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} diagnostic_directive -> · 'diagnostic' diagnostic_control ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} enable_directive -> · 'enable' enable_extension_list ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_directive -> · diagnostic_directive : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_directive -> · enable_directive : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} global_directive -> · requires_directive : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} requires_directive -> · 'requires' language_extension_list ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} translation_unit/0.0/0 -> · global_directive translation_unit/0.0/0 : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #5 global_directive -> diagnostic_directive · : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #6 global_directive -> enable_directive · : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #7 global_directive -> requires_directive · : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #8 diagnostic_directive -> 'diagnostic' · diagnostic_control ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} diagnostic_control -> · '(' severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 ')' : {';'} #9 enable_directive -> 'enable' · enable_extension_list ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} enable_extension_list -> · enable_extension_name enable_extension_list/0.1 enable_extension_list/0.2 : {';'} enable_extension_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' ';'} #10 requires_directive -> 'requires' · language_extension_list ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} language_extension_list -> · language_extension_name language_extension_list/0.1 language_extension_list/0.2 : {';'} language_extension_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' ';'} #11 requires_directive -> 'requires' language_extension_list · ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #12 language_extension_list -> language_extension_name · language_extension_list/0.1 language_extension_list/0.2 : {';'} language_extension_list/0.1 -> · language_extension_list/0.1/0 : {',' ';'} language_extension_list/0.1/0 -> · language_extension_list/0.1/0/0.0 language_extension_list/0.1/0 : {',' ';'} language_extension_list/0.1/0/0.0 -> · ',' language_extension_name : {',' ';'} #13 language_extension_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {',' ';'} #14 enable_directive -> 'enable' enable_extension_list · ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #15 enable_extension_list -> enable_extension_name · enable_extension_list/0.1 enable_extension_list/0.2 : {';'} enable_extension_list/0.1 -> · enable_extension_list/0.1/0 : {',' ';'} enable_extension_list/0.1/0 -> · enable_extension_list/0.1/0/0.0 enable_extension_list/0.1/0 : {',' ';'} enable_extension_list/0.1/0/0.0 -> · ',' enable_extension_name : {',' ';'} #16 enable_extension_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {',' ';'} #17 diagnostic_directive -> 'diagnostic' diagnostic_control · ';' : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #18 diagnostic_control -> '(' · severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 ')' : {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} severity_control_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {','} #19 translation_unit/0.0/0 -> global_directive translation_unit/0.0/0 · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #20 translation_unit -> translation_unit/0.0 translation_unit/0.1 · : {EndOfText} #21 translation_unit/0.1 -> translation_unit/0.1/0 · : {EndOfText} #22 translation_unit/0.1/0 -> translation_unit/0.1/0/0.0 · translation_unit/0.1/0 : {EndOfText} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'fn' 'override' 'var'} attribute -> · align_attr : {'@' 'fn' 'override' 'var'} attribute -> · binding_attr : {'@' 'fn' 'override' 'var'} attribute -> · blend_src_attr : {'@' 'fn' 'override' 'var'} attribute -> · builtin_attr : {'@' 'fn' 'override' 'var'} attribute -> · compute_attr : {'@' 'fn' 'override' 'var'} attribute -> · const_attr : {'@' 'fn' 'override' 'var'} attribute -> · diagnostic_attr : {'@' 'fn' 'override' 'var'} attribute -> · fragment_attr : {'@' 'fn' 'override' 'var'} attribute -> · group_attr : {'@' 'fn' 'override' 'var'} attribute -> · id_attr : {'@' 'fn' 'override' 'var'} attribute -> · interpolate_attr : {'@' 'fn' 'override' 'var'} attribute -> · invariant_attr : {'@' 'fn' 'override' 'var'} attribute -> · location_attr : {'@' 'fn' 'override' 'var'} attribute -> · must_use_attr : {'@' 'fn' 'override' 'var'} attribute -> · size_attr : {'@' 'fn' 'override' 'var'} attribute -> · vertex_attr : {'@' 'fn' 'override' 'var'} attribute -> · workgroup_size_attr : {'@' 'fn' 'override' 'var'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} compute_attr -> · '@' 'compute' : {'@' 'fn' 'override' 'var'} const_attr -> · '@' 'const' : {'@' 'fn' 'override' 'var'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'fn' 'override' 'var'} fragment_attr -> · '@' 'fragment' : {'@' 'fn' 'override' 'var'} function_decl -> · function_decl/0.0 function_header compound_statement : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} function_decl/0.0 -> · function_decl/0.0/0 : {'fn'} function_decl/0.0/0 -> · attribute function_decl/0.0/0 : {'fn'} global_assert -> · 'const_assert' ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · function_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · global_value_decl ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · global_variable_decl ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · struct_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · type_alias_decl ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_value_decl -> · 'const' optionally_typed_ident '=' expression : {';'} global_value_decl -> · global_value_decl/1.0 'override' optionally_typed_ident global_value_decl/1.3 : {';'} global_value_decl/1.0 -> · global_value_decl/1.0/0 : {'override'} global_value_decl/1.0/0 -> · attribute global_value_decl/1.0/0 : {'override'} global_variable_decl -> · global_variable_decl/0.0 variable_decl global_variable_decl/0.2 : {';'} global_variable_decl/0.0 -> · global_variable_decl/0.0/0 : {'var'} global_variable_decl/0.0/0 -> · attribute global_variable_decl/0.0/0 : {'var'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'override' 'var'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} invariant_attr -> · '@' 'invariant' : {'@' 'fn' 'override' 'var'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} must_use_attr -> · '@' 'must_use' : {'@' 'fn' 'override' 'var'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} struct_decl -> · 'struct' ident struct_body_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0 -> · translation_unit/0.1/0/0.0 translation_unit/0.1/0 : {EndOfText} translation_unit/0.1/0/0.0 -> · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0/0.0 -> · global_assert : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0/0.0 -> · global_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} type_alias_decl -> · 'alias' ident '=' type_specifier : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} #23 translation_unit/0.1/0/0.0 -> global_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #24 translation_unit/0.1/0/0.0 -> global_assert · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #25 translation_unit/0.1/0/0.0 -> ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #26 global_decl -> global_variable_decl · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #27 global_decl -> global_value_decl · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #28 global_decl -> type_alias_decl · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #29 global_decl -> struct_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #30 global_decl -> function_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #31 global_assert -> 'const_assert' · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #32 global_variable_decl -> global_variable_decl/0.0 · variable_decl global_variable_decl/0.2 : {';'} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} #33 global_value_decl -> 'const' · optionally_typed_ident '=' expression : {';'} ident -> · ident_pattern_token _disambiguate_template : {':' '='} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {'='} #34 global_value_decl -> global_value_decl/1.0 · 'override' optionally_typed_ident global_value_decl/1.3 : {';'} #35 type_alias_decl -> 'alias' · ident '=' type_specifier : {';'} ident -> · ident_pattern_token _disambiguate_template : {'='} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} #36 struct_decl -> 'struct' · ident struct_body_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} ident -> · ident_pattern_token _disambiguate_template : {'{'} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} #37 function_decl -> function_decl/0.0 · function_header compound_statement : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} function_header -> · 'fn' ident '(' function_header/0.3 ')' function_header/0.5 : {'@' '{'} #38 global_variable_decl/0.0 -> global_variable_decl/0.0/0 · : {'var'} #39 global_value_decl/1.0 -> global_value_decl/1.0/0 · : {'override'} #40 function_decl/0.0 -> function_decl/0.0/0 · : {'fn'} #41 function_decl/0.0/0 -> attribute · function_decl/0.0/0 : {'fn'} global_value_decl/1.0/0 -> attribute · global_value_decl/1.0/0 : {'override'} global_variable_decl/0.0/0 -> attribute · global_variable_decl/0.0/0 : {'var'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'fn' 'override' 'var'} attribute -> · align_attr : {'@' 'fn' 'override' 'var'} attribute -> · binding_attr : {'@' 'fn' 'override' 'var'} attribute -> · blend_src_attr : {'@' 'fn' 'override' 'var'} attribute -> · builtin_attr : {'@' 'fn' 'override' 'var'} attribute -> · compute_attr : {'@' 'fn' 'override' 'var'} attribute -> · const_attr : {'@' 'fn' 'override' 'var'} attribute -> · diagnostic_attr : {'@' 'fn' 'override' 'var'} attribute -> · fragment_attr : {'@' 'fn' 'override' 'var'} attribute -> · group_attr : {'@' 'fn' 'override' 'var'} attribute -> · id_attr : {'@' 'fn' 'override' 'var'} attribute -> · interpolate_attr : {'@' 'fn' 'override' 'var'} attribute -> · invariant_attr : {'@' 'fn' 'override' 'var'} attribute -> · location_attr : {'@' 'fn' 'override' 'var'} attribute -> · must_use_attr : {'@' 'fn' 'override' 'var'} attribute -> · size_attr : {'@' 'fn' 'override' 'var'} attribute -> · vertex_attr : {'@' 'fn' 'override' 'var'} attribute -> · workgroup_size_attr : {'@' 'fn' 'override' 'var'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} compute_attr -> · '@' 'compute' : {'@' 'fn' 'override' 'var'} const_attr -> · '@' 'const' : {'@' 'fn' 'override' 'var'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'fn' 'override' 'var'} fragment_attr -> · '@' 'fragment' : {'@' 'fn' 'override' 'var'} function_decl/0.0/0 -> · attribute function_decl/0.0/0 : {'fn'} global_value_decl/1.0/0 -> · attribute global_value_decl/1.0/0 : {'override'} global_variable_decl/0.0/0 -> · attribute global_variable_decl/0.0/0 : {'var'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'override' 'var'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} invariant_attr -> · '@' 'invariant' : {'@' 'fn' 'override' 'var'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} must_use_attr -> · '@' 'must_use' : {'@' 'fn' 'override' 'var'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} vertex_attr -> · '@' 'vertex' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'override' 'var'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'fn' 'override' 'var'} #42 align_attr -> '@' · 'align' '(' expression align_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · ident_pattern_token attribute/0.2 : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> '@' · 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> '@' · 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> '@' · 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> '@' · 'compute' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> '@' · 'const' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> '@' · 'diagnostic' diagnostic_control : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> '@' · 'fragment' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> '@' · 'group' '(' expression group_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> '@' · 'id' '(' expression id_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> '@' · 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> '@' · 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> '@' · 'invariant' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> '@' · 'location' '(' expression location_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> '@' · 'must_use' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> '@' · 'size' '(' expression size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> '@' · 'vertex' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' · 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' · 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' · 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'(' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #43 attribute -> align_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #44 attribute -> binding_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #45 attribute -> blend_src_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #46 attribute -> builtin_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #47 attribute -> const_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #48 attribute -> diagnostic_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #49 attribute -> group_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #50 attribute -> id_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #51 attribute -> interpolate_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #52 attribute -> invariant_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #53 attribute -> location_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #54 attribute -> must_use_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #55 attribute -> size_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #56 attribute -> workgroup_size_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #57 attribute -> vertex_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #58 attribute -> fragment_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #59 attribute -> compute_attr · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #60 attribute -> '@' ident_pattern_token · attribute/0.2 : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} argument_expression_list -> · '(' argument_expression_list/0.1 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute/0.2 -> · argument_expression_list : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #61 align_attr -> '@' 'align' · '(' expression align_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #62 binding_attr -> '@' 'binding' · '(' expression binding_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #63 blend_src_attr -> '@' 'blend_src' · '(' expression blend_src_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #64 builtin_attr -> '@' 'builtin' · '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #65 const_attr -> '@' 'const' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #66 diagnostic_attr -> '@' 'diagnostic' · diagnostic_control : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_control -> · '(' severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #67 group_attr -> '@' 'group' · '(' expression group_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #68 id_attr -> '@' 'id' · '(' expression id_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #69 interpolate_attr -> '@' 'interpolate' · '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> '@' 'interpolate' · '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #70 invariant_attr -> '@' 'invariant' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #71 location_attr -> '@' 'location' · '(' expression location_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #72 must_use_attr -> '@' 'must_use' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #73 size_attr -> '@' 'size' · '(' expression size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #74 workgroup_size_attr -> '@' 'workgroup_size' · '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' · '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' · '(' expression workgroup_size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #75 vertex_attr -> '@' 'vertex' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #76 fragment_attr -> '@' 'fragment' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #77 compute_attr -> '@' 'compute' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #78 ident_pattern_token -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {'(' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_disambiguate_template/} #79 global_variable_decl/0.0/0 -> attribute global_variable_decl/0.0/0 · : {'var'} #80 global_value_decl/1.0/0 -> attribute global_value_decl/1.0/0 · : {'override'} #81 function_decl/0.0/0 -> attribute function_decl/0.0/0 · : {'fn'} #82 function_decl -> function_decl/0.0 function_header · compound_statement : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #83 function_header -> 'fn' · ident '(' function_header/0.3 ')' function_header/0.5 : {'@' '{'} ident -> · ident_pattern_token _disambiguate_template : {'('} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} #84 struct_decl -> 'struct' ident · struct_body_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} struct_body_decl -> · '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #85 ident -> ident_pattern_token · _disambiguate_template : {'(' ':' ';' '=' '{' /\u200B_disambiguate_template/} _disambiguate_template -> · /\u200B_disambiguate_template/ : {'(' ':' ';' '=' '{' /\u200B_disambiguate_template/} #86 type_alias_decl -> 'alias' ident · '=' type_specifier : {';'} #87 global_value_decl -> global_value_decl/1.0 'override' · optionally_typed_ident global_value_decl/1.3 : {';'} ident -> · ident_pattern_token _disambiguate_template : {':' ';' '='} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {';' '='} #88 global_value_decl -> 'const' optionally_typed_ident · '=' expression : {';'} #89 optionally_typed_ident -> ident · optionally_typed_ident/0.1 : {';' '='} optionally_typed_ident/0.1 -> · ':' type_specifier : {';' '='} #90 global_variable_decl -> global_variable_decl/0.0 variable_decl · global_variable_decl/0.2 : {';'} global_variable_decl/0.2 -> · '=' expression : {';'} #91 variable_decl -> 'var' · _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} _disambiguate_template -> · /\u200B_disambiguate_template/ : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_template_args_start/} #92 global_assert -> 'const_assert' ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #93 global_decl -> type_alias_decl ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #94 global_decl -> global_value_decl ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #95 global_decl -> global_variable_decl ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #96 translation_unit/0.1/0 -> translation_unit/0.1/0/0.0 translation_unit/0.1/0 · : {EndOfText} #97 diagnostic_control -> '(' severity_control_name · ',' diagnostic_rule_name diagnostic_control/0.4 ')' : {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #98 severity_control_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {','} #99 diagnostic_directive -> 'diagnostic' diagnostic_control ';' · : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #100 enable_extension_list -> enable_extension_name enable_extension_list/0.1 · enable_extension_list/0.2 : {';'} enable_extension_list/0.2 -> · ',' : {';'} #101 enable_extension_list/0.1 -> enable_extension_list/0.1/0 · : {',' ';'} #102 enable_extension_list/0.1/0 -> enable_extension_list/0.1/0/0.0 · enable_extension_list/0.1/0 : {',' ';'} enable_extension_list/0.1/0 -> · enable_extension_list/0.1/0/0.0 enable_extension_list/0.1/0 : {',' ';'} enable_extension_list/0.1/0/0.0 -> · ',' enable_extension_name : {',' ';'} #103 enable_extension_list/0.1/0/0.0 -> ',' · enable_extension_name : {',' ';'} enable_extension_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' ';'} #104 enable_directive -> 'enable' enable_extension_list ';' · : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #105 language_extension_list -> language_extension_name language_extension_list/0.1 · language_extension_list/0.2 : {';'} language_extension_list/0.2 -> · ',' : {';'} #106 language_extension_list/0.1 -> language_extension_list/0.1/0 · : {',' ';'} #107 language_extension_list/0.1/0 -> language_extension_list/0.1/0/0.0 · language_extension_list/0.1/0 : {',' ';'} language_extension_list/0.1/0 -> · language_extension_list/0.1/0/0.0 language_extension_list/0.1/0 : {',' ';'} language_extension_list/0.1/0/0.0 -> · ',' language_extension_name : {',' ';'} #108 language_extension_list/0.1/0/0.0 -> ',' · language_extension_name : {',' ';'} language_extension_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' ';'} #109 requires_directive -> 'requires' language_extension_list ';' · : {';' '@' 'alias' 'const' 'const_assert' 'diagnostic' 'enable' 'fn' 'override' 'requires' 'struct' 'var' EndOfText} #110 language_extension_list/0.1/0/0.0 -> ',' language_extension_name · : {',' ';'} #111 language_extension_list/0.1/0 -> language_extension_list/0.1/0/0.0 language_extension_list/0.1/0 · : {',' ';'} #112 language_extension_list -> language_extension_name language_extension_list/0.1 language_extension_list/0.2 · : {';'} #113 language_extension_list/0.2 -> ',' · : {';'} #114 enable_extension_list/0.1/0/0.0 -> ',' enable_extension_name · : {',' ';'} #115 enable_extension_list/0.1/0 -> enable_extension_list/0.1/0/0.0 enable_extension_list/0.1/0 · : {',' ';'} #116 enable_extension_list -> enable_extension_name enable_extension_list/0.1 enable_extension_list/0.2 · : {';'} #117 enable_extension_list/0.2 -> ',' · : {';'} #118 diagnostic_control -> '(' severity_control_name ',' · diagnostic_rule_name diagnostic_control/0.4 ')' : {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_name_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' ',' '.'} diagnostic_rule_name -> · diagnostic_name_token '.' diagnostic_name_token : {')' ','} diagnostic_rule_name -> · diagnostic_name_token : {')' ','} #119 variable_decl -> 'var' _disambiguate_template · variable_decl/0.2 optionally_typed_ident : {';' '='} _template_args_start -> · /\u200B_template_args_start/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} template_list -> · _template_args_start template_arg_comma_list _template_args_end : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} variable_decl/0.2 -> · template_list : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #120 _disambiguate_template -> /\u200B_disambiguate_template/ · : {'!=' '%' '%=' '&&' '&' '&=' '(' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_disambiguate_template/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/ /\u200B_template_args_start/} #121 global_variable_decl -> global_variable_decl/0.0 variable_decl global_variable_decl/0.2 · : {';'} #122 global_variable_decl/0.2 -> '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #123 optionally_typed_ident -> ident optionally_typed_ident/0.1 · : {';' '='} #124 optionally_typed_ident/0.1 -> ':' · type_specifier : {';' '='} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} type_specifier -> · ident _disambiguate_template template_elaborated_ident/0.2 : {';' '='} #125 global_value_decl -> 'const' optionally_typed_ident '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #126 global_value_decl -> global_value_decl/1.0 'override' optionally_typed_ident · global_value_decl/1.3 : {';'} global_value_decl/1.3 -> · '=' expression : {';'} #127 type_alias_decl -> 'alias' ident '=' · type_specifier : {';'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} type_specifier -> · ident _disambiguate_template template_elaborated_ident/0.2 : {';'} #128 ident -> ident_pattern_token _disambiguate_template · : {'(' ':' ';' '=' '{' /\u200B_disambiguate_template/} #129 struct_decl -> 'struct' ident struct_body_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #130 struct_body_decl -> '{' · struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member -> · struct_member/0.0 member_ident ':' type_specifier : {',' '}'} struct_member/0.0 -> · struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member/0.0/0 -> · attribute struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #131 function_header -> 'fn' ident · '(' function_header/0.3 ')' function_header/0.5 : {'@' '{'} #132 function_decl -> function_decl/0.0 function_header compound_statement · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #133 compound_statement -> compound_statement/0.0 · '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'alias' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'fn' 'for' 'if' 'let' 'loop' 'override' 'return' 'struct' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} #134 compound_statement/0.0 -> compound_statement/0.0/0 · : {'{'} #135 compound_statement/0.0/0 -> attribute · compound_statement/0.0/0 : {'{'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #136 workgroup_size_attr -> '@' 'workgroup_size' '(' · expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' '(' · expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' '(' · expression workgroup_size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #137 size_attr -> '@' 'size' '(' · expression size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #138 location_attr -> '@' 'location' '(' · expression location_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #139 interpolate_attr -> '@' 'interpolate' '(' · interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> '@' 'interpolate' '(' · interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_type_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' ','} #140 id_attr -> '@' 'id' '(' · expression id_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #141 group_attr -> '@' 'group' '(' · expression group_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #142 diagnostic_attr -> '@' 'diagnostic' diagnostic_control · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #143 builtin_attr -> '@' 'builtin' '(' · builtin_value_name builtin_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_value_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' ','} #144 blend_src_attr -> '@' 'blend_src' '(' · expression blend_src_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #145 binding_attr -> '@' 'binding' '(' · expression binding_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #146 align_attr -> '@' 'align' '(' · expression align_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #147 attribute -> '@' ident_pattern_token attribute/0.2 · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #148 attribute/0.2 -> argument_expression_list · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #149 argument_expression_list -> '(' · argument_expression_list/0.1 ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' '|' '||' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} argument_expression_list/0.1 -> · expression_comma_list : {')'} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} expression_comma_list -> · expression expression_comma_list/0.1 expression_comma_list/0.2 : {')'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #150 argument_expression_list -> '(' argument_expression_list/0.1 · ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' '|' '||' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #151 argument_expression_list/0.1 -> expression_comma_list · : {')'} #152 expression_comma_list -> expression · expression_comma_list/0.1 expression_comma_list/0.2 : {')'} expression_comma_list/0.1 -> · expression_comma_list/0.1/0 : {')' ','} expression_comma_list/0.1/0 -> · expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 : {')' ','} expression_comma_list/0.1/0/0.0 -> · ',' expression : {')' ','} #153 expression -> relational_expression · : {')' ',' ':' ';' '@' ']' '{'} short_circuit_and_expression -> relational_expression · : {'&&'} short_circuit_or_expression -> relational_expression · : {'||'} #154 expression -> short_circuit_or_expression · '||' relational_expression : {')' ',' ':' ';' '@' ']' '{'} short_circuit_or_expression -> short_circuit_or_expression · '||' relational_expression : {'||'} #155 expression -> short_circuit_and_expression · '&&' relational_expression : {')' ',' ':' ';' '@' ']' '{'} short_circuit_and_expression -> short_circuit_and_expression · '&&' relational_expression : {'&&'} #156 expression -> bitwise_expression · : {')' ',' ':' ';' '@' ']' '{'} #157 relational_expression -> shift_expression · '!=' shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} relational_expression -> shift_expression · '==' shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} relational_expression -> shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} relational_expression -> shift_expression · _greater_than shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} relational_expression -> shift_expression · _greater_than_equal shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} relational_expression -> shift_expression · _less_than shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} relational_expression -> shift_expression · _less_than_equal shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} _greater_than -> · /\u200B_greater_than/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} _greater_than_equal -> · /\u200B_greater_than_equal/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} _less_than -> · /\u200B_less_than/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} _less_than_equal -> · /\u200B_less_than_equal/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #158 binary_and_expression -> binary_and_expression · '&' unary_expression : {'&'} bitwise_expression -> binary_and_expression · '&' unary_expression : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #159 binary_or_expression -> binary_or_expression · '|' unary_expression : {'|'} bitwise_expression -> binary_or_expression · '|' unary_expression : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #160 binary_xor_expression -> binary_xor_expression · '^' unary_expression : {'^'} bitwise_expression -> binary_xor_expression · '^' unary_expression : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #161 additive_expression -> additive_expression · additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> additive_expression · : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} additive_operator -> · '+' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} additive_operator -> · '-' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #162 binary_and_expression -> unary_expression · : {'&'} binary_or_expression -> unary_expression · : {'|'} binary_xor_expression -> unary_expression · : {'^'} multiplicative_expression -> unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> unary_expression · _shift_left unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> unary_expression · _shift_right unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} _shift_left -> · /\u200B_shift_left/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} _shift_right -> · /\u200B_shift_right/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #163 additive_expression -> multiplicative_expression · : {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> multiplicative_expression · multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_operator -> · '%' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} multiplicative_operator -> · '*' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} multiplicative_operator -> · '/' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #164 unary_expression -> singular_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #165 unary_expression -> '-' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #166 unary_expression -> '!' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #167 unary_expression -> '~' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #168 unary_expression -> '*' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #169 unary_expression -> '&' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #170 singular_expression -> primary_expression · singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} singular_expression/0.1 -> · component_or_swizzle_specifier : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #171 call_expression -> template_elaborated_ident · argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> template_elaborated_ident · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} argument_expression_list -> · '(' argument_expression_list/0.1 ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #172 primary_expression -> call_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #173 primary_expression -> literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #174 primary_expression -> paren_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #175 template_elaborated_ident -> ident · _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} _disambiguate_template -> · /\u200B_disambiguate_template/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/ /\u200B_template_args_start/} #176 literal -> int_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #177 literal -> float_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #178 literal -> bool_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #179 paren_expression -> '(' · expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')'} bitwise_expression -> · binary_or_expression '|' unary_expression : {')'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')'} expression -> · relational_expression : {')'} expression -> · short_circuit_and_expression '&&' relational_expression : {')'} expression -> · short_circuit_or_expression '||' relational_expression : {')'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #180 int_literal -> decimal_int_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #181 int_literal -> hex_int_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #182 float_literal -> decimal_float_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #183 float_literal -> hex_float_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #184 bool_literal -> 'true' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #185 bool_literal -> 'false' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #186 decimal_int_literal -> /0[iu]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #187 decimal_int_literal -> /[1-9][0-9]*[iu]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #188 hex_int_literal -> /0[xX][0-9a-fA-F]+[iu]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #189 decimal_float_literal -> /0[fh]/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #190 decimal_float_literal -> /[1-9][0-9]*[fh]/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #191 decimal_float_literal -> /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #192 decimal_float_literal -> /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #193 decimal_float_literal -> /[0-9]+[eE][+-]?[0-9]+[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #194 hex_float_literal -> /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #195 hex_float_literal -> /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #196 hex_float_literal -> /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #197 align_attr -> '@' 'align' '(' expression · align_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr/0.4 -> · ',' : {')'} #198 binding_attr -> '@' 'binding' '(' expression · binding_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr/0.4 -> · ',' : {')'} #199 blend_src_attr -> '@' 'blend_src' '(' expression · blend_src_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr/0.4 -> · ',' : {')'} #200 builtin_attr -> '@' 'builtin' '(' builtin_value_name · builtin_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr/0.4 -> · ',' : {')'} #201 builtin_value_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {')' ','} #202 group_attr -> '@' 'group' '(' expression · group_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr/0.4 -> · ',' : {')'} #203 id_attr -> '@' 'id' '(' expression · id_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr/0.4 -> · ',' : {')'} #204 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name · ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name · interpolate_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr/0.4 -> · ',' : {')'} #205 interpolate_type_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {')' ','} #206 location_attr -> '@' 'location' '(' expression · location_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr/0.4 -> · ',' : {')'} #207 size_attr -> '@' 'size' '(' expression · size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr/0.4 -> · ',' : {')'} #208 workgroup_size_attr -> '@' 'workgroup_size' '(' expression · ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' '(' expression · ',' expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' '(' expression · workgroup_size_attr/0.4 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr/0.4 -> · ',' : {')'} #209 compound_statement/0.0/0 -> attribute compound_statement/0.0/0 · : {'{'} #210 compound_statement -> compound_statement/0.0 '{' · compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'alias' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'fn' 'for' 'if' 'let' 'loop' 'override' 'return' 'struct' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} assert_statement -> · 'const_assert' : {';'} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} break_statement -> · 'break' : {';'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compound_statement/0.2 -> · compound_statement/0.2/0 : {'}'} compound_statement/0.2/0 -> · statement compound_statement/0.2/0 : {'}'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement -> · for_statement/0.0 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement/0.0 -> · for_statement/0.0/0 : {'for'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} if_statement -> · if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.0 -> · if_statement/0.0/0 : {'if'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} increment_statement -> · lhs_expression '++' : {';'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement -> · loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.0 -> · loop_statement/0.0/0 : {'loop'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} return_statement -> · 'return' return_statement/0.1 : {';'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} statement -> · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · assert_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_or_value_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> · switch_statement/0.0 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> · switch_statement/0.0/0 : {'switch'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement -> · while_statement/0.0 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} while_statement/0.0 -> · while_statement/0.0/0 : {'while'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #211 function_header -> 'fn' ident '(' · function_header/0.3 ')' function_header/0.5 : {'@' '{'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.3 -> · param_list : {')'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param -> · param/0.0 ident ':' type_specifier : {')' ','} param/0.0 -> · param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param/0.0/0 -> · attribute param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param_list -> · param param_list/0.1 param_list/0.2 : {')'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #212 struct_body_decl -> '{' struct_member · struct_body_decl/0.2 struct_body_decl/0.3 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} struct_body_decl/0.2 -> · struct_body_decl/0.2/0 : {',' '}'} struct_body_decl/0.2/0 -> · struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 : {',' '}'} struct_body_decl/0.2/0/0.0 -> · ',' struct_member : {',' '}'} #213 struct_member -> struct_member/0.0 · member_ident ':' type_specifier : {',' '}'} member_ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':'} #214 struct_member/0.0 -> struct_member/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #215 struct_member/0.0/0 -> attribute · struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member/0.0/0 -> · attribute struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #216 type_alias_decl -> 'alias' ident '=' type_specifier · : {';'} #217 type_specifier -> ident · _disambiguate_template template_elaborated_ident/0.2 : {')' ',' ';' '=' '}'} _disambiguate_template -> · /\u200B_disambiguate_template/ : {')' ',' ';' '=' '}' /\u200B_template_args_start/} #218 global_value_decl -> global_value_decl/1.0 'override' optionally_typed_ident global_value_decl/1.3 · : {';'} #219 global_value_decl/1.3 -> '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #220 global_value_decl -> 'const' optionally_typed_ident '=' expression · : {';'} #221 optionally_typed_ident/0.1 -> ':' type_specifier · : {';' '='} #222 global_variable_decl/0.2 -> '=' expression · : {';'} #223 variable_decl -> 'var' _disambiguate_template variable_decl/0.2 · optionally_typed_ident : {';' '='} ident -> · ident_pattern_token _disambiguate_template : {':' ';' '='} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {';' '='} #224 variable_decl/0.2 -> template_list · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #225 template_list -> _template_args_start · template_arg_comma_list _template_args_end : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {',' /\u200B_template_args_end/} bitwise_expression -> · binary_or_expression '|' unary_expression : {',' /\u200B_template_args_end/} bitwise_expression -> · binary_xor_expression '^' unary_expression : {',' /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} shift_expression -> · additive_expression : {'!=' '&&' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_arg_comma_list -> · template_arg_expression template_arg_comma_list/0.1 template_arg_comma_list/0.2 : {/\u200B_template_args_end/} template_arg_expression -> · bitwise_expression : {',' /\u200B_template_args_end/} template_arg_expression -> · relational_expression : {',' /\u200B_template_args_end/} template_arg_expression -> · short_circuit_and_expression '&&' relational_expression : {',' /\u200B_template_args_end/} template_arg_expression -> · short_circuit_or_expression '||' relational_expression : {',' /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #226 _template_args_start -> /\u200B_template_args_start/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #227 diagnostic_control -> '(' severity_control_name ',' diagnostic_rule_name · diagnostic_control/0.4 ')' : {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_control/0.4 -> · ',' : {')'} #228 diagnostic_rule_name -> diagnostic_name_token · '.' diagnostic_name_token : {')' ','} diagnostic_rule_name -> diagnostic_name_token · : {')' ','} #229 diagnostic_name_token -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {')' ',' '.'} #230 diagnostic_rule_name -> diagnostic_name_token '.' · diagnostic_name_token : {')' ','} diagnostic_name_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' ','} #231 diagnostic_control -> '(' severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 · ')' : {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #232 diagnostic_control/0.4 -> ',' · : {')'} #233 template_list -> _template_args_start template_arg_comma_list · _template_args_end : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} _template_args_end -> · /\u200B_template_args_end/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #234 template_arg_comma_list -> template_arg_expression · template_arg_comma_list/0.1 template_arg_comma_list/0.2 : {/\u200B_template_args_end/} template_arg_comma_list/0.1 -> · template_arg_comma_list/0.1/0 : {',' /\u200B_template_args_end/} template_arg_comma_list/0.1/0 -> · template_arg_comma_list/0.1/0/0.0 template_arg_comma_list/0.1/0 : {',' /\u200B_template_args_end/} template_arg_comma_list/0.1/0/0.0 -> · ',' template_arg_expression : {',' /\u200B_template_args_end/} #235 short_circuit_and_expression -> relational_expression · : {'&&'} short_circuit_or_expression -> relational_expression · : {'||'} template_arg_expression -> relational_expression · : {',' /\u200B_template_args_end/} #236 short_circuit_or_expression -> short_circuit_or_expression · '||' relational_expression : {'||'} template_arg_expression -> short_circuit_or_expression · '||' relational_expression : {',' /\u200B_template_args_end/} #237 short_circuit_and_expression -> short_circuit_and_expression · '&&' relational_expression : {'&&'} template_arg_expression -> short_circuit_and_expression · '&&' relational_expression : {',' /\u200B_template_args_end/} #238 template_arg_expression -> bitwise_expression · : {',' /\u200B_template_args_end/} #239 variable_decl -> 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident · : {';' '='} #240 global_value_decl/1.3 -> '=' expression · : {';'} #241 type_specifier -> ident _disambiguate_template · template_elaborated_ident/0.2 : {')' ',' ';' '=' '}'} _template_args_start -> · /\u200B_template_args_start/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} template_elaborated_ident/0.2 -> · template_list : {')' ',' ';' '=' '}'} template_list -> · _template_args_start template_arg_comma_list _template_args_end : {')' ',' ';' '=' '}'} #242 struct_member/0.0/0 -> attribute struct_member/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #243 struct_member -> struct_member/0.0 member_ident · ':' type_specifier : {',' '}'} #244 member_ident -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #245 struct_body_decl -> '{' struct_member struct_body_decl/0.2 · struct_body_decl/0.3 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} struct_body_decl/0.3 -> · ',' : {'}'} #246 struct_body_decl/0.2 -> struct_body_decl/0.2/0 · : {',' '}'} #247 struct_body_decl/0.2/0 -> struct_body_decl/0.2/0/0.0 · struct_body_decl/0.2/0 : {',' '}'} struct_body_decl/0.2/0 -> · struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 : {',' '}'} struct_body_decl/0.2/0/0.0 -> · ',' struct_member : {',' '}'} #248 struct_body_decl/0.2/0/0.0 -> ',' · struct_member : {',' '}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member -> · struct_member/0.0 member_ident ':' type_specifier : {',' '}'} struct_member/0.0 -> · struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member/0.0/0 -> · attribute struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #249 function_header -> 'fn' ident '(' function_header/0.3 · ')' function_header/0.5 : {'@' '{'} #250 function_header/0.3 -> param_list · : {')'} #251 param_list -> param · param_list/0.1 param_list/0.2 : {')'} param_list/0.1 -> · param_list/0.1/0 : {')' ','} param_list/0.1/0 -> · param_list/0.1/0/0.0 param_list/0.1/0 : {')' ','} param_list/0.1/0/0.0 -> · ',' param : {')' ','} #252 param -> param/0.0 · ident ':' type_specifier : {')' ','} ident -> · ident_pattern_token _disambiguate_template : {':'} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} #253 param/0.0 -> param/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #254 param/0.0/0 -> attribute · param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param/0.0/0 -> · attribute param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #255 compound_statement -> compound_statement/0.0 '{' compound_statement/0.2 · '}' : {'&' '(' '*' ';' '@' '_' 'alias' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'fn' 'for' 'if' 'let' 'loop' 'override' 'return' 'struct' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} #256 compound_statement/0.2 -> compound_statement/0.2/0 · : {'}'} #257 compound_statement/0.2/0 -> statement · compound_statement/0.2/0 : {'}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} assert_statement -> · 'const_assert' : {';'} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} break_statement -> · 'break' : {';'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compound_statement/0.2/0 -> · statement compound_statement/0.2/0 : {'}'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement -> · for_statement/0.0 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement/0.0 -> · for_statement/0.0/0 : {'for'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} if_statement -> · if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.0 -> · if_statement/0.0/0 : {'if'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} increment_statement -> · lhs_expression '++' : {';'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement -> · loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.0 -> · loop_statement/0.0/0 : {'loop'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} return_statement -> · 'return' return_statement/0.1 : {';'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} statement -> · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · assert_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_or_value_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> · switch_statement/0.0 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> · switch_statement/0.0/0 : {'switch'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement -> · while_statement/0.0 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} while_statement/0.0 -> · while_statement/0.0/0 : {'while'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #258 statement -> ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #259 statement -> return_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #260 statement -> if_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #261 statement -> switch_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #262 statement -> loop_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #263 statement -> for_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #264 statement -> while_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #265 statement -> func_call_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #266 statement -> variable_or_value_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #267 statement -> break_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #268 statement -> continue_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #269 statement -> 'discard' · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #270 statement -> variable_updating_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #271 statement -> compound_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #272 statement -> assert_statement · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #273 return_statement -> 'return' · return_statement/0.1 : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} return_statement/0.1 -> · expression : {';'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #274 if_statement -> if_statement/0.0 · if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #275 switch_statement -> switch_statement/0.0 · 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #276 loop_statement -> loop_statement/0.0 · 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #277 for_statement -> for_statement/0.0 · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #278 while_statement -> while_statement/0.0 · 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #279 func_call_statement -> template_elaborated_ident · argument_expression_list : {')' ';'} argument_expression_list -> · '(' argument_expression_list/0.1 ')' : {')' ';'} #280 variable_or_value_statement -> variable_decl · '=' expression : {';'} variable_or_value_statement -> variable_decl · : {';'} #281 variable_or_value_statement -> 'let' · optionally_typed_ident '=' expression : {';'} ident -> · ident_pattern_token _disambiguate_template : {':' '='} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {'='} #282 variable_or_value_statement -> 'const' · optionally_typed_ident '=' expression : {';'} ident -> · ident_pattern_token _disambiguate_template : {':' '='} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {'='} #283 break_statement -> 'break' · : {';'} #284 continue_statement -> 'continue' · : {';'} #285 variable_updating_statement -> assignment_statement · : {')' ';'} #286 variable_updating_statement -> increment_statement · : {')' ';'} #287 variable_updating_statement -> decrement_statement · : {')' ';'} #288 assert_statement -> 'const_assert' · : {';'} #289 if_statement/0.0 -> if_statement/0.0/0 · : {'if'} #290 switch_statement/0.0 -> switch_statement/0.0/0 · : {'switch'} #291 loop_statement/0.0 -> loop_statement/0.0/0 · : {'loop'} #292 for_statement/0.0 -> for_statement/0.0/0 · : {'for'} #293 while_statement/0.0 -> while_statement/0.0/0 · : {'while'} #294 core_lhs_expression -> ident · _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} template_elaborated_ident -> ident · _disambiguate_template template_elaborated_ident/0.2 : {'('} _disambiguate_template -> · /\u200B_disambiguate_template/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/ /\u200B_template_args_start/} #295 assignment_statement -> lhs_expression · assignment_statement/0.1 expression : {')' ';'} decrement_statement -> lhs_expression · '--' : {')' ';'} increment_statement -> lhs_expression · '++' : {')' ';'} _shift_left_assign -> · /\u200B_shift_left_assign/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} _shift_right_assign -> · /\u200B_shift_right_assign/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} assignment_statement/0.1 -> · '=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} assignment_statement/0.1 -> · compound_assignment_operator : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '%=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '&=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '*=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '+=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '-=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '/=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '^=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · '|=' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · _shift_left_assign : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} compound_assignment_operator -> · _shift_right_assign : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #296 assignment_statement -> '_' · '=' expression : {')' ';'} #297 compound_statement/0.0/0 -> attribute · compound_statement/0.0/0 : {'{'} for_statement/0.0/0 -> attribute · for_statement/0.0/0 : {'for'} if_statement/0.0/0 -> attribute · if_statement/0.0/0 : {'if'} loop_statement/0.0/0 -> attribute · loop_statement/0.0/0 : {'loop'} switch_statement/0.0/0 -> attribute · switch_statement/0.0/0 : {'switch'} while_statement/0.0/0 -> attribute · while_statement/0.0/0 : {'while'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #298 lhs_expression -> core_lhs_expression · lhs_expression/0.1 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression/0.1 -> · component_or_swizzle_specifier : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #299 lhs_expression -> '*' · lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} lhs_expression -> · '&' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #300 lhs_expression -> '&' · lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} lhs_expression -> · '&' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #301 core_lhs_expression -> '(' · lhs_expression ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · '(' lhs_expression ')' : {')' '.' '['} core_lhs_expression -> · ident _disambiguate_template : {')' '.' '['} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} lhs_expression -> · '&' lhs_expression : {')'} lhs_expression -> · '*' lhs_expression : {')'} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {')'} #302 workgroup_size_attr -> '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #303 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' · expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' · expression workgroup_size_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr/0.4 -> ',' · : {')'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #304 size_attr -> '@' 'size' '(' expression size_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #305 size_attr/0.4 -> ',' · : {')'} #306 location_attr -> '@' 'location' '(' expression location_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #307 location_attr/0.4 -> ',' · : {')'} #308 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #309 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name ',' · interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr/0.4 -> ',' · : {')'} interpolate_sampling_name -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' ','} #310 id_attr -> '@' 'id' '(' expression id_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #311 id_attr/0.4 -> ',' · : {')'} #312 group_attr -> '@' 'group' '(' expression group_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #313 group_attr/0.4 -> ',' · : {')'} #314 builtin_attr -> '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #315 builtin_attr/0.4 -> ',' · : {')'} #316 blend_src_attr -> '@' 'blend_src' '(' expression blend_src_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #317 blend_src_attr/0.4 -> ',' · : {')'} #318 binding_attr -> '@' 'binding' '(' expression binding_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #319 binding_attr/0.4 -> ',' · : {')'} #320 align_attr -> '@' 'align' '(' expression align_attr/0.4 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #321 align_attr/0.4 -> ',' · : {')'} #322 paren_expression -> '(' expression · ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #323 template_elaborated_ident -> ident _disambiguate_template · template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} _template_args_start -> · /\u200B_template_args_start/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} template_elaborated_ident/0.2 -> · template_list : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_list -> · _template_args_start template_arg_comma_list _template_args_end : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #324 call_expression -> template_elaborated_ident argument_expression_list · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #325 singular_expression -> primary_expression singular_expression/0.1 · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #326 singular_expression/0.1 -> component_or_swizzle_specifier · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #327 component_or_swizzle_specifier -> '[' · expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {']'} bitwise_expression -> · binary_or_expression '|' unary_expression : {']'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {']'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {']'} expression -> · relational_expression : {']'} expression -> · short_circuit_and_expression '&&' relational_expression : {']'} expression -> · short_circuit_or_expression '||' relational_expression : {']'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ']' '||'} shift_expression -> · additive_expression : {'!=' '&&' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' '==' ']' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '==' '[' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' ']' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #328 component_or_swizzle_specifier -> '.' · member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> '.' · swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} member_ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[rgba]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[rgba][rgba]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[rgba][rgba][rgba]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[rgba][rgba][rgba][rgba]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[xyzw]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[xyzw][xyzw]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[xyzw][xyzw][xyzw]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} swizzle_name -> · /[xyzw][xyzw][xyzw][xyzw]/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #329 unary_expression -> '&' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #330 unary_expression -> '*' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #331 unary_expression -> '~' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #332 unary_expression -> '!' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #333 unary_expression -> '-' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #334 multiplicative_expression -> multiplicative_expression multiplicative_operator · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #335 multiplicative_operator -> '*' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #336 multiplicative_operator -> '/' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #337 multiplicative_operator -> '%' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #338 shift_expression -> unary_expression _shift_left · unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '&&' '(' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #339 shift_expression -> unary_expression _shift_right · unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '&&' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '&&' '(' ')' ',' '.' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #340 _shift_left -> /\u200B_shift_left/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #341 _shift_right -> /\u200B_shift_right/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #342 additive_expression -> additive_expression additive_operator · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #343 additive_operator -> '+' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #344 additive_operator -> '-' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #345 binary_xor_expression -> binary_xor_expression '^' · unary_expression : {'^'} bitwise_expression -> binary_xor_expression '^' · unary_expression : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} bool_literal -> · 'false' : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} bool_literal -> · 'true' : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} float_literal -> · hex_float_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} int_literal -> · hex_int_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} literal -> · bool_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} literal -> · float_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} literal -> · int_literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} primary_expression -> · call_expression : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} primary_expression -> · literal : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} primary_expression -> · paren_expression : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'(' ')' ',' '.' ':' ';' '@' '[' ']' '^' '{' /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} unary_expression -> · singular_expression : {')' ',' ':' ';' '@' ']' '^' '{' /\u200B_template_args_end/} #346 binary_or_expression -> binary_or_expression '|' · unary_expression : {'|'} bitwise_expression -> binary_or_expression '|' · unary_expression : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} bool_literal -> · 'false' : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} bool_literal -> · 'true' : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} float_literal -> · hex_float_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} int_literal -> · hex_int_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} literal -> · bool_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} literal -> · float_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} literal -> · int_literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} primary_expression -> · call_expression : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} primary_expression -> · literal : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} primary_expression -> · paren_expression : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'(' ')' ',' '.' ':' ';' '@' '[' ']' '{' '|' /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} unary_expression -> · singular_expression : {')' ',' ':' ';' '@' ']' '{' '|' /\u200B_template_args_end/} #347 binary_and_expression -> binary_and_expression '&' · unary_expression : {'&'} bitwise_expression -> binary_and_expression '&' · unary_expression : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} bool_literal -> · 'false' : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} bool_literal -> · 'true' : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} literal -> · bool_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} literal -> · float_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} literal -> · int_literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} primary_expression -> · call_expression : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} primary_expression -> · literal : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} primary_expression -> · paren_expression : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'&' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'&' '(' ')' ',' '.' ':' ';' '@' '[' ']' '{' /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} unary_expression -> · singular_expression : {'&' ')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #348 relational_expression -> shift_expression _less_than · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #349 relational_expression -> shift_expression _greater_than · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #350 relational_expression -> shift_expression _less_than_equal · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #351 relational_expression -> shift_expression _greater_than_equal · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #352 relational_expression -> shift_expression '==' · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #353 relational_expression -> shift_expression '!=' · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '@' '[' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '@' ']' '{' '||' /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #354 _less_than -> /\u200B_less_than/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #355 _greater_than -> /\u200B_greater_than/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #356 _less_than_equal -> /\u200B_less_than_equal/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #357 _greater_than_equal -> /\u200B_greater_than_equal/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #358 expression -> short_circuit_and_expression '&&' · relational_expression : {')' ',' ':' ';' '@' ']' '{'} short_circuit_and_expression -> short_circuit_and_expression '&&' · relational_expression : {'&&'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} bool_literal -> · 'false' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} relational_expression -> · shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' ':' ';' '@' ']' '{'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #359 expression -> short_circuit_or_expression '||' · relational_expression : {')' ',' ':' ';' '@' ']' '{'} short_circuit_or_expression -> short_circuit_or_expression '||' · relational_expression : {'||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} bool_literal -> · 'false' : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · decimal_float_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} relational_expression -> · shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {')' ',' ':' ';' '@' ']' '{' '||'} shift_expression -> · additive_expression : {'!=' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #360 expression_comma_list -> expression expression_comma_list/0.1 · expression_comma_list/0.2 : {')'} expression_comma_list/0.2 -> · ',' : {')'} #361 expression_comma_list/0.1 -> expression_comma_list/0.1/0 · : {')' ','} #362 expression_comma_list/0.1/0 -> expression_comma_list/0.1/0/0.0 · expression_comma_list/0.1/0 : {')' ','} expression_comma_list/0.1/0 -> · expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 : {')' ','} expression_comma_list/0.1/0/0.0 -> · ',' expression : {')' ','} #363 expression_comma_list/0.1/0/0.0 -> ',' · expression : {')' ','} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #364 argument_expression_list -> '(' argument_expression_list/0.1 ')' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' '|' '||' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #365 expression_comma_list/0.1/0/0.0 -> ',' expression · : {')' ','} #366 expression_comma_list/0.1/0 -> expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 · : {')' ','} #367 expression_comma_list -> expression expression_comma_list/0.1 expression_comma_list/0.2 · : {')'} #368 expression_comma_list/0.2 -> ',' · : {')'} #369 expression -> short_circuit_or_expression '||' relational_expression · : {')' ',' ':' ';' '@' ']' '{'} short_circuit_or_expression -> short_circuit_or_expression '||' relational_expression · : {'||'} #370 multiplicative_expression -> unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> unary_expression · _shift_left unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> unary_expression · _shift_right unary_expression : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} _shift_left -> · /\u200B_shift_left/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} _shift_right -> · /\u200B_shift_right/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #371 expression -> short_circuit_and_expression '&&' relational_expression · : {')' ',' ':' ';' '@' ']' '{'} short_circuit_and_expression -> short_circuit_and_expression '&&' relational_expression · : {'&&'} #372 relational_expression -> shift_expression '!=' shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} #373 relational_expression -> shift_expression '==' shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} #374 relational_expression -> shift_expression _greater_than_equal shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} #375 relational_expression -> shift_expression _less_than_equal shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} #376 relational_expression -> shift_expression _greater_than shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} #377 relational_expression -> shift_expression _less_than shift_expression · : {'&&' ')' ',' ':' ';' '@' ']' '{' '||' /\u200B_template_args_end/} #378 binary_and_expression -> binary_and_expression '&' unary_expression · : {'&'} bitwise_expression -> binary_and_expression '&' unary_expression · : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #379 binary_or_expression -> binary_or_expression '|' unary_expression · : {'|'} bitwise_expression -> binary_or_expression '|' unary_expression · : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #380 binary_xor_expression -> binary_xor_expression '^' unary_expression · : {'^'} bitwise_expression -> binary_xor_expression '^' unary_expression · : {')' ',' ':' ';' '@' ']' '{' /\u200B_template_args_end/} #381 additive_expression -> additive_expression additive_operator multiplicative_expression · : {'!=' '&&' ')' '+' ',' '-' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> multiplicative_expression · multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_operator -> · '%' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} multiplicative_operator -> · '*' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} multiplicative_operator -> · '/' : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #382 multiplicative_expression -> unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #383 shift_expression -> unary_expression _shift_right unary_expression · : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #384 shift_expression -> unary_expression _shift_left unary_expression · : {'!=' '&&' ')' ',' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #385 multiplicative_expression -> multiplicative_expression multiplicative_operator unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '==' '@' ']' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} #386 component_or_swizzle_specifier -> '.' member_ident · component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier/1.2 -> · component_or_swizzle_specifier : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #387 component_or_swizzle_specifier -> '.' swizzle_name · component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier/2.2 -> · component_or_swizzle_specifier : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #388 swizzle_name -> /[rgba]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #389 swizzle_name -> /[rgba][rgba]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #390 swizzle_name -> /[rgba][rgba][rgba]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #391 swizzle_name -> /[rgba][rgba][rgba][rgba]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #392 swizzle_name -> /[xyzw]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #393 swizzle_name -> /[xyzw][xyzw]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #394 swizzle_name -> /[xyzw][xyzw][xyzw]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #395 swizzle_name -> /[xyzw][xyzw][xyzw][xyzw]/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '=' '==' '@' '[' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #396 component_or_swizzle_specifier -> '[' expression · ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #397 template_elaborated_ident -> ident _disambiguate_template template_elaborated_ident/0.2 · : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #398 template_elaborated_ident/0.2 -> template_list · : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #399 paren_expression -> '(' expression ')' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '==' '@' '[' ']' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #400 align_attr -> '@' 'align' '(' expression align_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #401 binding_attr -> '@' 'binding' '(' expression binding_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #402 blend_src_attr -> '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #403 builtin_attr -> '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #404 group_attr -> '@' 'group' '(' expression group_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #405 id_attr -> '@' 'id' '(' expression id_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #406 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name · interpolate_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr/1.6 -> · ',' : {')'} #407 interpolate_sampling_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {')' ','} #408 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #409 location_attr -> '@' 'location' '(' expression location_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #410 size_attr -> '@' 'size' '(' expression size_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #411 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression · ',' expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression · workgroup_size_attr/1.6 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr/1.6 -> · ',' : {')'} #412 workgroup_size_attr -> '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #413 core_lhs_expression -> '(' lhs_expression · ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #414 core_lhs_expression -> ident · _disambiguate_template : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} _disambiguate_template -> · /\u200B_disambiguate_template/ : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #415 lhs_expression -> '&' lhs_expression · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #416 lhs_expression -> '*' lhs_expression · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #417 lhs_expression -> core_lhs_expression lhs_expression/0.1 · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #418 lhs_expression/0.1 -> component_or_swizzle_specifier · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #419 if_statement/0.0/0 -> attribute if_statement/0.0/0 · : {'if'} #420 switch_statement/0.0/0 -> attribute switch_statement/0.0/0 · : {'switch'} #421 loop_statement/0.0/0 -> attribute loop_statement/0.0/0 · : {'loop'} #422 for_statement/0.0/0 -> attribute for_statement/0.0/0 · : {'for'} #423 while_statement/0.0/0 -> attribute while_statement/0.0/0 · : {'while'} #424 assignment_statement -> '_' '=' · expression : {')' ';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ';'} expression -> · relational_expression : {')' ';'} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ';'} expression -> · short_circuit_or_expression '||' relational_expression : {')' ';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #425 assignment_statement -> lhs_expression assignment_statement/0.1 · expression : {')' ';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ';'} expression -> · relational_expression : {')' ';'} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ';'} expression -> · short_circuit_or_expression '||' relational_expression : {')' ';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #426 increment_statement -> lhs_expression '++' · : {')' ';'} #427 decrement_statement -> lhs_expression '--' · : {')' ';'} #428 assignment_statement/0.1 -> '=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #429 assignment_statement/0.1 -> compound_assignment_operator · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #430 compound_assignment_operator -> '+=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #431 compound_assignment_operator -> '-=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #432 compound_assignment_operator -> '*=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #433 compound_assignment_operator -> '/=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #434 compound_assignment_operator -> '%=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #435 compound_assignment_operator -> '&=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #436 compound_assignment_operator -> '|=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #437 compound_assignment_operator -> '^=' · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #438 compound_assignment_operator -> _shift_right_assign · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #439 compound_assignment_operator -> _shift_left_assign · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #440 _shift_right_assign -> /\u200B_shift_right_assign/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #441 _shift_left_assign -> /\u200B_shift_left_assign/ · : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} #442 core_lhs_expression -> ident _disambiguate_template · : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} template_elaborated_ident -> ident _disambiguate_template · template_elaborated_ident/0.2 : {'('} _template_args_start -> · /\u200B_template_args_start/ : {'!' '&' '(' '*' '-' 'false' 'true' '~' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /0[fh]/ /0[iu]?/ /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ /0[xX][0-9a-fA-F]+[iu]?/ /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ /[0-9]+[eE][+-]?[0-9]+[fh]?/ /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ /[1-9][0-9]*[fh]/ /[1-9][0-9]*[iu]?/} template_elaborated_ident/0.2 -> · template_list : {'('} template_list -> · _template_args_start template_arg_comma_list _template_args_end : {'('} #443 variable_or_value_statement -> 'const' optionally_typed_ident · '=' expression : {';'} #444 variable_or_value_statement -> 'let' optionally_typed_ident · '=' expression : {';'} #445 variable_or_value_statement -> variable_decl '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #446 func_call_statement -> template_elaborated_ident argument_expression_list · : {')' ';'} #447 while_statement -> while_statement/0.0 'while' · expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {'@' '{'} bitwise_expression -> · binary_or_expression '|' unary_expression : {'@' '{'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {'@' '{'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {'@' '{'} expression -> · relational_expression : {'@' '{'} expression -> · short_circuit_and_expression '&&' relational_expression : {'@' '{'} expression -> · short_circuit_or_expression '||' relational_expression : {'@' '{'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' '@' '{' '||'} shift_expression -> · additive_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #448 for_statement -> for_statement/0.0 'for' · '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #449 loop_statement -> loop_statement/0.0 'loop' · loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} loop_statement/0.2 -> · loop_statement/0.2/0 : {'{'} loop_statement/0.2/0 -> · attribute loop_statement/0.2/0 : {'{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #450 switch_statement -> switch_statement/0.0 'switch' · expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {'@' '{'} bitwise_expression -> · binary_or_expression '|' unary_expression : {'@' '{'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {'@' '{'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {'@' '{'} expression -> · relational_expression : {'@' '{'} expression -> · short_circuit_and_expression '&&' relational_expression : {'@' '{'} expression -> · short_circuit_or_expression '||' relational_expression : {'@' '{'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' '@' '{' '||'} shift_expression -> · additive_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #451 if_statement -> if_statement/0.0 if_clause · if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_if_clause -> · 'else' 'if' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.2 -> · if_statement/0.2/0 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.2/0 -> · else_if_clause if_statement/0.2/0 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #452 if_clause -> 'if' · expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {'@' '{'} bitwise_expression -> · binary_or_expression '|' unary_expression : {'@' '{'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {'@' '{'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {'@' '{'} expression -> · relational_expression : {'@' '{'} expression -> · short_circuit_and_expression '&&' relational_expression : {'@' '{'} expression -> · short_circuit_or_expression '||' relational_expression : {'@' '{'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' '@' '{' '||'} shift_expression -> · additive_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #453 return_statement -> 'return' return_statement/0.1 · : {';'} #454 return_statement/0.1 -> expression · : {';'} #455 statement -> assert_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #456 statement -> variable_updating_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #457 statement -> 'discard' ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #458 statement -> continue_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #459 statement -> break_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #460 statement -> variable_or_value_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #461 statement -> func_call_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #462 statement -> return_statement ';' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #463 compound_statement/0.2/0 -> statement compound_statement/0.2/0 · : {'}'} #464 compound_statement -> compound_statement/0.0 '{' compound_statement/0.2 '}' · : {'&' '(' '*' ';' '@' '_' 'alias' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'fn' 'for' 'if' 'let' 'loop' 'override' 'return' 'struct' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} #465 param/0.0/0 -> attribute param/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #466 param -> param/0.0 ident · ':' type_specifier : {')' ','} #467 param_list -> param param_list/0.1 · param_list/0.2 : {')'} param_list/0.2 -> · ',' : {')'} #468 param_list/0.1 -> param_list/0.1/0 · : {')' ','} #469 param_list/0.1/0 -> param_list/0.1/0/0.0 · param_list/0.1/0 : {')' ','} param_list/0.1/0 -> · param_list/0.1/0/0.0 param_list/0.1/0 : {')' ','} param_list/0.1/0/0.0 -> · ',' param : {')' ','} #470 param_list/0.1/0/0.0 -> ',' · param : {')' ','} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param -> · param/0.0 ident ':' type_specifier : {')' ','} param/0.0 -> · param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param/0.0/0 -> · attribute param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #471 function_header -> 'fn' ident '(' function_header/0.3 ')' · function_header/0.5 : {'@' '{'} function_header/0.5 -> · '->' function_header/0.5/0.1 template_elaborated_ident : {'@' '{'} #472 struct_body_decl/0.2/0/0.0 -> ',' struct_member · : {',' '}'} #473 struct_body_decl/0.2/0 -> struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 · : {',' '}'} #474 struct_body_decl -> '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 · '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #475 struct_body_decl/0.3 -> ',' · : {'}'} #476 struct_member -> struct_member/0.0 member_ident ':' · type_specifier : {',' '}'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} type_specifier -> · ident _disambiguate_template template_elaborated_ident/0.2 : {',' '}'} #477 type_specifier -> ident _disambiguate_template template_elaborated_ident/0.2 · : {')' ',' ';' '=' '}'} #478 short_circuit_and_expression -> short_circuit_and_expression '&&' · relational_expression : {'&&'} template_arg_expression -> short_circuit_and_expression '&&' · relational_expression : {',' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' /\u200B_template_args_end/} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' /\u200B_template_args_end/} relational_expression -> · shift_expression : {'&&' ',' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ',' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ',' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ',' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ',' /\u200B_template_args_end/} shift_expression -> · additive_expression : {'!=' '&&' ',' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ',' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ',' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '(' '*' '+' ',' '-' '.' '/' '==' '[' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #479 short_circuit_or_expression -> short_circuit_or_expression '||' · relational_expression : {'||'} template_arg_expression -> short_circuit_or_expression '||' · relational_expression : {',' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'!=' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} relational_expression -> · shift_expression '!=' shift_expression : {',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression '==' shift_expression : {',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression : {',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than shift_expression : {',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than_equal shift_expression : {',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than shift_expression : {',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than_equal shift_expression : {',' '||' /\u200B_template_args_end/} shift_expression -> · additive_expression : {'!=' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '(' '*' '+' ',' '-' '.' '/' '==' '[' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #480 template_arg_comma_list -> template_arg_expression template_arg_comma_list/0.1 · template_arg_comma_list/0.2 : {/\u200B_template_args_end/} template_arg_comma_list/0.2 -> · ',' : {/\u200B_template_args_end/} #481 template_arg_comma_list/0.1 -> template_arg_comma_list/0.1/0 · : {',' /\u200B_template_args_end/} #482 template_arg_comma_list/0.1/0 -> template_arg_comma_list/0.1/0/0.0 · template_arg_comma_list/0.1/0 : {',' /\u200B_template_args_end/} template_arg_comma_list/0.1/0 -> · template_arg_comma_list/0.1/0/0.0 template_arg_comma_list/0.1/0 : {',' /\u200B_template_args_end/} template_arg_comma_list/0.1/0/0.0 -> · ',' template_arg_expression : {',' /\u200B_template_args_end/} #483 template_arg_comma_list/0.1/0/0.0 -> ',' · template_arg_expression : {',' /\u200B_template_args_end/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {',' /\u200B_template_args_end/} bitwise_expression -> · binary_or_expression '|' unary_expression : {',' /\u200B_template_args_end/} bitwise_expression -> · binary_xor_expression '^' unary_expression : {',' /\u200B_template_args_end/} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ',' '||' /\u200B_template_args_end/} shift_expression -> · additive_expression : {'!=' '&&' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_template_args_end/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} template_arg_expression -> · bitwise_expression : {',' /\u200B_template_args_end/} template_arg_expression -> · relational_expression : {',' /\u200B_template_args_end/} template_arg_expression -> · short_circuit_and_expression '&&' relational_expression : {',' /\u200B_template_args_end/} template_arg_expression -> · short_circuit_or_expression '||' relational_expression : {',' /\u200B_template_args_end/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #484 template_list -> _template_args_start template_arg_comma_list _template_args_end · : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #485 _template_args_end -> /\u200B_template_args_end/ · : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '=' '==' '@' '[' ']' '^' '{' '|' '||' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/ /\u200B_template_args_end/} #486 diagnostic_control -> '(' severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 ')' · : {';' '@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #487 diagnostic_rule_name -> diagnostic_name_token '.' diagnostic_name_token · : {')' ','} #488 template_arg_comma_list/0.1/0/0.0 -> ',' template_arg_expression · : {',' /\u200B_template_args_end/} #489 template_arg_comma_list/0.1/0 -> template_arg_comma_list/0.1/0/0.0 template_arg_comma_list/0.1/0 · : {',' /\u200B_template_args_end/} #490 template_arg_comma_list -> template_arg_expression template_arg_comma_list/0.1 template_arg_comma_list/0.2 · : {/\u200B_template_args_end/} #491 template_arg_comma_list/0.2 -> ',' · : {/\u200B_template_args_end/} #492 short_circuit_or_expression -> short_circuit_or_expression '||' relational_expression · : {'||'} template_arg_expression -> short_circuit_or_expression '||' relational_expression · : {',' /\u200B_template_args_end/} #493 short_circuit_and_expression -> short_circuit_and_expression '&&' relational_expression · : {'&&'} template_arg_expression -> short_circuit_and_expression '&&' relational_expression · : {',' /\u200B_template_args_end/} #494 struct_member -> struct_member/0.0 member_ident ':' type_specifier · : {',' '}'} #495 struct_body_decl -> '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #496 function_header -> 'fn' ident '(' function_header/0.3 ')' function_header/0.5 · : {'@' '{'} #497 function_header/0.5 -> '->' · function_header/0.5/0.1 template_elaborated_ident : {'@' '{'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.5/0.1 -> · function_header/0.5/0.1/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.5/0.1/0 -> · attribute function_header/0.5/0.1/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #498 param_list/0.1/0/0.0 -> ',' param · : {')' ','} #499 param_list/0.1/0 -> param_list/0.1/0/0.0 param_list/0.1/0 · : {')' ','} #500 param_list -> param param_list/0.1 param_list/0.2 · : {')'} #501 param_list/0.2 -> ',' · : {')'} #502 param -> param/0.0 ident ':' · type_specifier : {')' ','} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} type_specifier -> · ident _disambiguate_template template_elaborated_ident/0.2 : {')' ','} #503 if_clause -> 'if' expression · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #504 if_statement -> if_statement/0.0 if_clause if_statement/0.2 · if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_clause -> · 'else' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.3 -> · else_clause : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #505 if_statement/0.2 -> if_statement/0.2/0 · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #506 if_statement/0.2/0 -> else_if_clause · if_statement/0.2/0 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_if_clause -> · 'else' 'if' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.2/0 -> · else_if_clause if_statement/0.2/0 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #507 else_if_clause -> 'else' · 'if' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #508 switch_statement -> switch_statement/0.0 'switch' expression · switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} switch_body -> · switch_body/0.0 '{' switch_body/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_body/0.0 -> · switch_body/0.0/0 : {'{'} switch_body/0.0/0 -> · attribute switch_body/0.0/0 : {'{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #509 loop_statement -> loop_statement/0.0 'loop' loop_statement/0.2 · '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #510 loop_statement/0.2 -> loop_statement/0.2/0 · : {'{'} #511 loop_statement/0.2/0 -> attribute · loop_statement/0.2/0 : {'{'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} loop_statement/0.2/0 -> · attribute loop_statement/0.2/0 : {'{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #512 for_statement -> for_statement/0.0 'for' '(' · for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} for_header -> · for_header/0.0 ';' for_header/0.2 ';' for_header/0.4 : {')'} for_header/0.0 -> · for_init : {';'} for_init -> · func_call_statement : {';'} for_init -> · variable_or_value_statement : {';'} for_init -> · variable_updating_statement : {';'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} #513 while_statement -> while_statement/0.0 'while' expression · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #514 variable_or_value_statement -> variable_decl '=' expression · : {';'} #515 variable_or_value_statement -> 'let' optionally_typed_ident '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #516 variable_or_value_statement -> 'const' optionally_typed_ident '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #517 assignment_statement -> lhs_expression assignment_statement/0.1 expression · : {')' ';'} #518 assignment_statement -> '_' '=' expression · : {')' ';'} #519 core_lhs_expression -> ident _disambiguate_template · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #520 core_lhs_expression -> '(' lhs_expression ')' · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} #521 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #522 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression ',' · expression workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr/1.6 -> ',' · : {')'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {')' ','} bitwise_expression -> · binary_or_expression '|' unary_expression : {')' ','} bitwise_expression -> · binary_xor_expression '^' unary_expression : {')' ','} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {')' ','} expression -> · relational_expression : {')' ','} expression -> · short_circuit_and_expression '&&' relational_expression : {')' ','} expression -> · short_circuit_or_expression '||' relational_expression : {')' ','} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ')' ',' '||'} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ')' ',' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #523 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #524 interpolate_attr/1.6 -> ',' · : {')'} #525 component_or_swizzle_specifier -> '[' expression ']' · component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} component_or_swizzle_specifier/0.3 -> · component_or_swizzle_specifier : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #526 component_or_swizzle_specifier -> '.' swizzle_name component_or_swizzle_specifier/2.2 · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #527 component_or_swizzle_specifier/2.2 -> component_or_swizzle_specifier · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #528 component_or_swizzle_specifier -> '.' member_ident component_or_swizzle_specifier/1.2 · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #529 component_or_swizzle_specifier/1.2 -> component_or_swizzle_specifier · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #530 component_or_swizzle_specifier -> '[' expression ']' component_or_swizzle_specifier/0.3 · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #531 component_or_swizzle_specifier/0.3 -> component_or_swizzle_specifier · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '=' '==' '@' ']' '^' '^=' '{' '|' '|=' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_left_assign/ /\u200B_shift_right/ /\u200B_shift_right_assign/ /\u200B_template_args_end/} #532 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #533 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression ',' expression · workgroup_size_attr/2.8 ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr/2.8 -> · ',' : {')'} #534 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #535 variable_or_value_statement -> 'const' optionally_typed_ident '=' expression · : {';'} #536 variable_or_value_statement -> 'let' optionally_typed_ident '=' expression · : {';'} #537 while_statement -> while_statement/0.0 'while' expression compound_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #538 for_statement -> for_statement/0.0 'for' '(' for_header · ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #539 for_header -> for_header/0.0 · ';' for_header/0.2 ';' for_header/0.4 : {')'} #540 for_header/0.0 -> for_init · : {';'} #541 for_init -> variable_or_value_statement · : {';'} #542 for_init -> variable_updating_statement · : {';'} #543 for_init -> func_call_statement · : {';'} #544 loop_statement/0.2/0 -> attribute loop_statement/0.2/0 · : {'{'} #545 loop_statement -> loop_statement/0.0 'loop' loop_statement/0.2 '{' · loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} assert_statement -> · 'const_assert' : {';'} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} break_statement -> · 'break' : {';'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement -> · for_statement/0.0 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement/0.0 -> · for_statement/0.0/0 : {'for'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} if_statement -> · if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.0 -> · if_statement/0.0/0 : {'if'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} increment_statement -> · lhs_expression '++' : {';'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement -> · loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.0 -> · loop_statement/0.0/0 : {'loop'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} loop_statement/0.4 -> · loop_statement/0.4/0 : {'continuing' '}'} loop_statement/0.4/0 -> · statement loop_statement/0.4/0 : {'continuing' '}'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} return_statement -> · 'return' return_statement/0.1 : {';'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} statement -> · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · assert_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_or_value_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> · switch_statement/0.0 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> · switch_statement/0.0/0 : {'switch'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement -> · while_statement/0.0 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} while_statement/0.0 -> · while_statement/0.0/0 : {'while'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #546 switch_statement -> switch_statement/0.0 'switch' expression switch_body · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #547 switch_body -> switch_body/0.0 · '{' switch_body/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #548 switch_body/0.0 -> switch_body/0.0/0 · : {'{'} #549 switch_body/0.0/0 -> attribute · switch_body/0.0/0 : {'{'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} switch_body/0.0/0 -> · attribute switch_body/0.0/0 : {'{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #550 else_if_clause -> 'else' 'if' · expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {'@' '{'} bitwise_expression -> · binary_or_expression '|' unary_expression : {'@' '{'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {'@' '{'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {'@' '{'} expression -> · relational_expression : {'@' '{'} expression -> · short_circuit_and_expression '&&' relational_expression : {'@' '{'} expression -> · short_circuit_or_expression '||' relational_expression : {'@' '{'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' '@' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' '@' '{' '||'} shift_expression -> · additive_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #551 if_statement/0.2/0 -> else_if_clause if_statement/0.2/0 · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #552 if_statement -> if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #553 if_statement/0.3 -> else_clause · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #554 else_clause -> 'else' · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #555 if_clause -> 'if' expression compound_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #556 param -> param/0.0 ident ':' type_specifier · : {')' ','} #557 function_header/0.5 -> '->' function_header/0.5/0.1 · template_elaborated_ident : {'@' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'@' '{'} #558 function_header/0.5/0.1 -> function_header/0.5/0.1/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #559 function_header/0.5/0.1/0 -> attribute · function_header/0.5/0.1/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · align_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · binding_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · blend_src_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · builtin_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · compute_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · const_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · diagnostic_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · fragment_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · group_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · id_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · interpolate_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · invariant_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · location_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · must_use_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · vertex_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · workgroup_size_attr : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compute_attr -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_attr -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} fragment_attr -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.5/0.1/0 -> · attribute function_header/0.5/0.1/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} invariant_attr -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} must_use_attr -> · '@' 'must_use' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} vertex_attr -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #560 function_header/0.5/0.1/0 -> attribute function_header/0.5/0.1/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #561 function_header/0.5 -> '->' function_header/0.5/0.1 template_elaborated_ident · : {'@' '{'} #562 else_clause -> 'else' compound_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #563 else_if_clause -> 'else' 'if' expression · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #564 switch_body/0.0/0 -> attribute switch_body/0.0/0 · : {'{'} #565 switch_body -> switch_body/0.0 '{' · switch_body/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} case_clause -> · 'case' case_selectors case_clause/0.2 compound_statement : {'case' 'default' '}'} default_alone_clause -> · 'default' default_alone_clause/0.1 compound_statement : {'case' 'default' '}'} switch_body/0.2 -> · switch_body/0.2/0 : {'}'} switch_body/0.2/0 -> · switch_clause switch_body/0.2/0 : {'}'} switch_clause -> · case_clause : {'case' 'default' '}'} switch_clause -> · default_alone_clause : {'case' 'default' '}'} #566 loop_statement -> loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 · loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} continuing_statement -> · 'continuing' continuing_compound_statement : {'}'} loop_statement/0.5 -> · continuing_statement : {'}'} #567 loop_statement/0.4 -> loop_statement/0.4/0 · : {'continuing' '}'} #568 loop_statement/0.4/0 -> statement · loop_statement/0.4/0 : {'continuing' '}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} assert_statement -> · 'const_assert' : {';'} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} break_statement -> · 'break' : {';'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement -> · for_statement/0.0 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement/0.0 -> · for_statement/0.0/0 : {'for'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} if_statement -> · if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.0 -> · if_statement/0.0/0 : {'if'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} increment_statement -> · lhs_expression '++' : {';'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement -> · loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.0 -> · loop_statement/0.0/0 : {'loop'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} loop_statement/0.4/0 -> · statement loop_statement/0.4/0 : {'continuing' '}'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} return_statement -> · 'return' return_statement/0.1 : {';'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} statement -> · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · assert_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_or_value_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> · switch_statement/0.0 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> · switch_statement/0.0/0 : {'switch'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement -> · while_statement/0.0 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} while_statement/0.0 -> · while_statement/0.0/0 : {'while'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #569 for_header -> for_header/0.0 ';' · for_header/0.2 ';' for_header/0.4 : {')'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} for_header/0.2 -> · expression : {';'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #570 for_statement -> for_statement/0.0 'for' '(' for_header ')' · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #571 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 · ')' : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #572 workgroup_size_attr/2.8 -> ',' · : {')'} #573 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' · : {'@' 'fn' 'for' 'if' 'loop' 'override' 'switch' 'var' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #574 for_statement -> for_statement/0.0 'for' '(' for_header ')' compound_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #575 for_header -> for_header/0.0 ';' for_header/0.2 · ';' for_header/0.4 : {')'} #576 for_header/0.2 -> expression · : {';'} #577 loop_statement/0.4/0 -> statement loop_statement/0.4/0 · : {'continuing' '}'} #578 loop_statement -> loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 · '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #579 loop_statement/0.5 -> continuing_statement · : {'}'} #580 continuing_statement -> 'continuing' · continuing_compound_statement : {'}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} continuing_compound_statement -> · continuing_compound_statement/0.0 '{' continuing_compound_statement/0.2 continuing_compound_statement/0.3 '}' : {'}'} continuing_compound_statement/0.0 -> · continuing_compound_statement/0.0/0 : {'{'} continuing_compound_statement/0.0/0 -> · attribute continuing_compound_statement/0.0/0 : {'{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #581 switch_body -> switch_body/0.0 '{' switch_body/0.2 · '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #582 switch_body/0.2 -> switch_body/0.2/0 · : {'}'} #583 switch_body/0.2/0 -> switch_clause · switch_body/0.2/0 : {'}'} case_clause -> · 'case' case_selectors case_clause/0.2 compound_statement : {'case' 'default' '}'} default_alone_clause -> · 'default' default_alone_clause/0.1 compound_statement : {'case' 'default' '}'} switch_body/0.2/0 -> · switch_clause switch_body/0.2/0 : {'}'} switch_clause -> · case_clause : {'case' 'default' '}'} switch_clause -> · default_alone_clause : {'case' 'default' '}'} #584 switch_clause -> case_clause · : {'case' 'default' '}'} #585 switch_clause -> default_alone_clause · : {'case' 'default' '}'} #586 case_clause -> 'case' · case_selectors case_clause/0.2 compound_statement : {'case' 'default' '}'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {',' ':' '@' '{'} bitwise_expression -> · binary_or_expression '|' unary_expression : {',' ':' '@' '{'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {',' ':' '@' '{'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} case_selector -> · 'default' : {',' ':' '@' '{'} case_selector -> · expression : {',' ':' '@' '{'} case_selectors -> · case_selector case_selectors/0.1 case_selectors/0.2 : {':' '@' '{'} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {',' ':' '@' '{'} expression -> · relational_expression : {',' ':' '@' '{'} expression -> · short_circuit_and_expression '&&' relational_expression : {',' ':' '@' '{'} expression -> · short_circuit_or_expression '||' relational_expression : {',' ':' '@' '{'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ',' ':' '@' '{' '||'} shift_expression -> · additive_expression : {'!=' '&&' ',' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ',' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ',' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #587 default_alone_clause -> 'default' · default_alone_clause/0.1 compound_statement : {'case' 'default' '}'} default_alone_clause/0.1 -> · ':' : {'@' '{'} #588 else_if_clause -> 'else' 'if' expression compound_statement · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #589 default_alone_clause -> 'default' default_alone_clause/0.1 · compound_statement : {'case' 'default' '}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'case' 'default' '}'} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #590 default_alone_clause/0.1 -> ':' · : {'@' '{'} #591 case_clause -> 'case' case_selectors · case_clause/0.2 compound_statement : {'case' 'default' '}'} case_clause/0.2 -> · ':' : {'@' '{'} #592 case_selectors -> case_selector · case_selectors/0.1 case_selectors/0.2 : {':' '@' '{'} case_selectors/0.1 -> · case_selectors/0.1/0 : {',' ':' '@' '{'} case_selectors/0.1/0 -> · case_selectors/0.1/0/0.0 case_selectors/0.1/0 : {',' ':' '@' '{'} case_selectors/0.1/0/0.0 -> · ',' case_selector : {',' ':' '@' '{'} #593 case_selector -> 'default' · : {',' ':' '@' '{'} #594 case_selector -> expression · : {',' ':' '@' '{'} #595 switch_body/0.2/0 -> switch_clause switch_body/0.2/0 · : {'}'} #596 switch_body -> switch_body/0.0 '{' switch_body/0.2 '}' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #597 continuing_statement -> 'continuing' continuing_compound_statement · : {'}'} #598 continuing_compound_statement -> continuing_compound_statement/0.0 · '{' continuing_compound_statement/0.2 continuing_compound_statement/0.3 '}' : {'}'} #599 continuing_compound_statement/0.0 -> continuing_compound_statement/0.0/0 · : {'{'} #600 continuing_compound_statement/0.0/0 -> attribute · continuing_compound_statement/0.0/0 : {'{'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} continuing_compound_statement/0.0/0 -> · attribute continuing_compound_statement/0.0/0 : {'{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #601 loop_statement -> loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' · : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #602 for_header -> for_header/0.0 ';' for_header/0.2 ';' · for_header/0.4 : {')'} assignment_statement -> · '_' '=' expression : {')'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {')'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {')'} for_header/0.4 -> · for_update : {')'} for_update -> · func_call_statement : {')'} for_update -> · variable_updating_statement : {')'} func_call_statement -> · template_elaborated_ident argument_expression_list : {')'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} increment_statement -> · lhs_expression '++' : {')'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_updating_statement -> · assignment_statement : {')'} variable_updating_statement -> · decrement_statement : {')'} variable_updating_statement -> · increment_statement : {')'} #603 for_header -> for_header/0.0 ';' for_header/0.2 ';' for_header/0.4 · : {')'} #604 for_header/0.4 -> for_update · : {')'} #605 for_update -> variable_updating_statement · : {')'} #606 for_update -> func_call_statement · : {')'} #607 continuing_compound_statement/0.0/0 -> attribute continuing_compound_statement/0.0/0 · : {'{'} #608 continuing_compound_statement -> continuing_compound_statement/0.0 '{' · continuing_compound_statement/0.2 continuing_compound_statement/0.3 '}' : {'}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} assert_statement -> · 'const_assert' : {';'} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} break_statement -> · 'break' : {';'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} continue_statement -> · 'continue' : {';'} continuing_compound_statement/0.2 -> · continuing_compound_statement/0.2/0 : {'break' '}'} continuing_compound_statement/0.2/0 -> · statement continuing_compound_statement/0.2/0 : {'break' '}'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement -> · for_statement/0.0 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement/0.0 -> · for_statement/0.0/0 : {'for'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} if_statement -> · if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.0 -> · if_statement/0.0/0 : {'if'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} increment_statement -> · lhs_expression '++' : {';'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement -> · loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.0 -> · loop_statement/0.0/0 : {'loop'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} return_statement -> · 'return' return_statement/0.1 : {';'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} statement -> · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · assert_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_or_value_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> · switch_statement/0.0 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> · switch_statement/0.0/0 : {'switch'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement -> · while_statement/0.0 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} while_statement/0.0 -> · while_statement/0.0/0 : {'while'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #609 case_selectors -> case_selector case_selectors/0.1 · case_selectors/0.2 : {':' '@' '{'} case_selectors/0.2 -> · ',' : {':' '@' '{'} #610 case_selectors/0.1 -> case_selectors/0.1/0 · : {',' ':' '@' '{'} #611 case_selectors/0.1/0 -> case_selectors/0.1/0/0.0 · case_selectors/0.1/0 : {',' ':' '@' '{'} case_selectors/0.1/0 -> · case_selectors/0.1/0/0.0 case_selectors/0.1/0 : {',' ':' '@' '{'} case_selectors/0.1/0/0.0 -> · ',' case_selector : {',' ':' '@' '{'} #612 case_selectors/0.1/0/0.0 -> ',' · case_selector : {',' ':' '@' '{'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {',' ':' '@' '{'} bitwise_expression -> · binary_or_expression '|' unary_expression : {',' ':' '@' '{'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {',' ':' '@' '{'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} case_selector -> · 'default' : {',' ':' '@' '{'} case_selector -> · expression : {',' ':' '@' '{'} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {',' ':' '@' '{'} expression -> · relational_expression : {',' ':' '@' '{'} expression -> · short_circuit_and_expression '&&' relational_expression : {',' ':' '@' '{'} expression -> · short_circuit_or_expression '||' relational_expression : {',' ':' '@' '{'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ',' ':' '@' '{' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ',' ':' '@' '{' '||'} shift_expression -> · additive_expression : {'!=' '&&' ',' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ',' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ',' ':' '==' '@' '{' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' ',' '-' '.' '/' ':' '==' '@' '[' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '==' '@' '^' '{' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #613 case_clause -> 'case' case_selectors case_clause/0.2 · compound_statement : {'case' 'default' '}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' '{'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' '{'} attribute -> · align_attr : {'@' '{'} attribute -> · binding_attr : {'@' '{'} attribute -> · blend_src_attr : {'@' '{'} attribute -> · builtin_attr : {'@' '{'} attribute -> · compute_attr : {'@' '{'} attribute -> · const_attr : {'@' '{'} attribute -> · diagnostic_attr : {'@' '{'} attribute -> · fragment_attr : {'@' '{'} attribute -> · group_attr : {'@' '{'} attribute -> · id_attr : {'@' '{'} attribute -> · interpolate_attr : {'@' '{'} attribute -> · invariant_attr : {'@' '{'} attribute -> · location_attr : {'@' '{'} attribute -> · must_use_attr : {'@' '{'} attribute -> · size_attr : {'@' '{'} attribute -> · vertex_attr : {'@' '{'} attribute -> · workgroup_size_attr : {'@' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' '{'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'case' 'default' '}'} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' '{'} const_attr -> · '@' 'const' : {'@' '{'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' '{'} fragment_attr -> · '@' 'fragment' : {'@' '{'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' '{'} invariant_attr -> · '@' 'invariant' : {'@' '{'} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' '{'} must_use_attr -> · '@' 'must_use' : {'@' '{'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' '{'} vertex_attr -> · '@' 'vertex' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' '{'} #614 case_clause/0.2 -> ':' · : {'@' '{'} #615 default_alone_clause -> 'default' default_alone_clause/0.1 compound_statement · : {'case' 'default' '}'} #616 case_clause -> 'case' case_selectors case_clause/0.2 compound_statement · : {'case' 'default' '}'} #617 case_selectors/0.1/0/0.0 -> ',' case_selector · : {',' ':' '@' '{'} #618 case_selectors/0.1/0 -> case_selectors/0.1/0/0.0 case_selectors/0.1/0 · : {',' ':' '@' '{'} #619 case_selectors -> case_selector case_selectors/0.1 case_selectors/0.2 · : {':' '@' '{'} #620 case_selectors/0.2 -> ',' · : {':' '@' '{'} #621 continuing_compound_statement -> continuing_compound_statement/0.0 '{' continuing_compound_statement/0.2 · continuing_compound_statement/0.3 '}' : {'}'} break_if_statement -> · 'break' 'if' expression ';' : {'}'} continuing_compound_statement/0.3 -> · break_if_statement : {'}'} #622 continuing_compound_statement/0.2 -> continuing_compound_statement/0.2/0 · : {'break' '}'} #623 continuing_compound_statement/0.2/0 -> statement · continuing_compound_statement/0.2/0 : {'break' '}'} align_attr -> · '@' 'align' '(' expression align_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} assert_statement -> · 'const_assert' : {';'} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} attribute -> · '@' ident_pattern_token attribute/0.2 : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · align_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · binding_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · blend_src_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · builtin_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · compute_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · const_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · diagnostic_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · fragment_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · group_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · id_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · interpolate_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · invariant_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · location_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · must_use_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · vertex_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} attribute -> · workgroup_size_attr : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} binding_attr -> · '@' 'binding' '(' expression binding_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} blend_src_attr -> · '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} break_statement -> · 'break' : {';'} builtin_attr -> · '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} compound_statement -> · compound_statement/0.0 '{' compound_statement/0.2 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.0 -> · compound_statement/0.0/0 : {'{'} compound_statement/0.0/0 -> · attribute compound_statement/0.0/0 : {'{'} compute_attr -> · '@' 'compute' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} const_attr -> · '@' 'const' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} continue_statement -> · 'continue' : {';'} continuing_compound_statement/0.2/0 -> · statement continuing_compound_statement/0.2/0 : {'break' '}'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} core_lhs_expression -> · ident _disambiguate_template : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '=' '[' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} decrement_statement -> · lhs_expression '--' : {';'} diagnostic_attr -> · '@' 'diagnostic' diagnostic_control : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} for_statement -> · for_statement/0.0 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement/0.0 -> · for_statement/0.0/0 : {'for'} for_statement/0.0/0 -> · attribute for_statement/0.0/0 : {'for'} fragment_attr -> · '@' 'fragment' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} func_call_statement -> · template_elaborated_ident argument_expression_list : {';'} group_attr -> · '@' 'group' '(' expression group_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} id_attr -> · '@' 'id' '(' expression id_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} if_statement -> · if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.0 -> · if_statement/0.0/0 : {'if'} if_statement/0.0/0 -> · attribute if_statement/0.0/0 : {'if'} increment_statement -> · lhs_expression '++' : {';'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} interpolate_attr -> · '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} invariant_attr -> · '@' 'invariant' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '=' '^=' '|=' /\u200B_shift_left_assign/ /\u200B_shift_right_assign/} location_attr -> · '@' 'location' '(' expression location_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} loop_statement -> · loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.0 -> · loop_statement/0.0/0 : {'loop'} loop_statement/0.0/0 -> · attribute loop_statement/0.0/0 : {'loop'} must_use_attr -> · '@' 'must_use' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} return_statement -> · 'return' return_statement/0.1 : {';'} size_attr -> · '@' 'size' '(' expression size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} statement -> · ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · assert_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_or_value_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> · switch_statement/0.0 'switch' expression switch_body : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.0 -> · switch_statement/0.0/0 : {'switch'} switch_statement/0.0/0 -> · attribute switch_statement/0.0/0 : {'switch'} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'('} variable_decl -> · 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident : {';' '='} variable_or_value_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_or_value_statement -> · variable_decl '=' expression : {';'} variable_or_value_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vertex_attr -> · '@' 'vertex' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} while_statement -> · while_statement/0.0 'while' expression compound_statement : {'&' '(' '*' ';' '@' '_' 'break' 'const' 'const_assert' 'continue' 'discard' 'for' 'if' 'let' 'loop' 'return' 'switch' 'var' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} while_statement/0.0 -> · while_statement/0.0/0 : {'while'} while_statement/0.0/0 -> · attribute while_statement/0.0/0 : {'while'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} workgroup_size_attr -> · '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' : {'@' 'for' 'if' 'loop' 'switch' 'while' '{'} #624 continuing_compound_statement/0.2/0 -> statement continuing_compound_statement/0.2/0 · : {'break' '}'} #625 continuing_compound_statement -> continuing_compound_statement/0.0 '{' continuing_compound_statement/0.2 continuing_compound_statement/0.3 · '}' : {'}'} #626 continuing_compound_statement/0.3 -> break_if_statement · : {'}'} #627 break_if_statement -> 'break' · 'if' expression ';' : {'}'} #628 break_if_statement -> 'break' 'if' · expression ';' : {'}'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} binary_and_expression -> · binary_and_expression '&' unary_expression : {'&'} binary_and_expression -> · unary_expression : {'&'} binary_or_expression -> · binary_or_expression '|' unary_expression : {'|'} binary_or_expression -> · unary_expression : {'|'} binary_xor_expression -> · binary_xor_expression '^' unary_expression : {'^'} binary_xor_expression -> · unary_expression : {'^'} bitwise_expression -> · binary_and_expression '&' unary_expression : {';'} bitwise_expression -> · binary_or_expression '|' unary_expression : {';'} bitwise_expression -> · binary_xor_expression '^' unary_expression : {';'} bool_literal -> · 'false' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} call_expression -> · template_elaborated_ident argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} expression -> · bitwise_expression : {';'} expression -> · relational_expression : {';'} expression -> · short_circuit_and_expression '&&' relational_expression : {';'} expression -> · short_circuit_or_expression '||' relational_expression : {';'} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} ident -> · ident_pattern_token _disambiguate_template : {/\u200B_disambiguate_template/} ident_pattern_token -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {/\u200B_disambiguate_template/} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} primary_expression -> · template_elaborated_ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _greater_than_equal shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression _less_than_equal shift_expression : {'&&' ';' '||'} shift_expression -> · additive_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_left unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} shift_expression -> · unary_expression _shift_right unary_expression : {'!=' '&&' ';' '==' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/} short_circuit_and_expression -> · relational_expression : {'&&'} short_circuit_and_expression -> · short_circuit_and_expression '&&' relational_expression : {'&&'} short_circuit_or_expression -> · relational_expression : {'||'} short_circuit_or_expression -> · short_circuit_or_expression '||' relational_expression : {'||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} template_elaborated_ident -> · ident _disambiguate_template template_elaborated_ident/0.2 : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '==' '[' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '==' '^' '|' '||' /\u200B_greater_than/ /\u200B_greater_than_equal/ /\u200B_less_than/ /\u200B_less_than_equal/ /\u200B_shift_left/ /\u200B_shift_right/} #629 continuing_compound_statement -> continuing_compound_statement/0.0 '{' continuing_compound_statement/0.2 continuing_compound_statement/0.3 '}' · : {'}'} #630 break_if_statement -> 'break' 'if' expression · ';' : {'}'} #631 break_if_statement -> 'break' 'if' expression ';' · : {'}'} =Reductions: r#0 translation_unit/0.0 -> translation_unit/0.0/0 · r#1 global_directive -> diagnostic_directive · r#2 global_directive -> enable_directive · r#3 global_directive -> requires_directive · r#4 language_extension_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#5 enable_extension_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#6 translation_unit/0.0/0 -> global_directive translation_unit/0.0/0 · r#7 translation_unit -> translation_unit/0.0 translation_unit/0.1 · r#8 translation_unit/0.1 -> translation_unit/0.1/0 · r#9 translation_unit/0.1/0/0.0 -> global_decl · r#10 translation_unit/0.1/0/0.0 -> global_assert · r#11 translation_unit/0.1/0/0.0 -> ';' · r#12 global_decl -> struct_decl · r#13 global_decl -> function_decl · r#14 global_variable_decl/0.0 -> global_variable_decl/0.0/0 · r#15 global_value_decl/1.0 -> global_value_decl/1.0/0 · r#16 function_decl/0.0 -> function_decl/0.0/0 · r#17 attribute -> align_attr · r#18 attribute -> binding_attr · r#19 attribute -> blend_src_attr · r#20 attribute -> builtin_attr · r#21 attribute -> const_attr · r#22 attribute -> diagnostic_attr · r#23 attribute -> group_attr · r#24 attribute -> id_attr · r#25 attribute -> interpolate_attr · r#26 attribute -> invariant_attr · r#27 attribute -> location_attr · r#28 attribute -> must_use_attr · r#29 attribute -> size_attr · r#30 attribute -> workgroup_size_attr · r#31 attribute -> vertex_attr · r#32 attribute -> fragment_attr · r#33 attribute -> compute_attr · r#34 const_attr -> '@' 'const' · r#35 invariant_attr -> '@' 'invariant' · r#36 must_use_attr -> '@' 'must_use' · r#37 vertex_attr -> '@' 'vertex' · r#38 fragment_attr -> '@' 'fragment' · r#39 compute_attr -> '@' 'compute' · r#40 ident_pattern_token -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#41 global_variable_decl/0.0/0 -> attribute global_variable_decl/0.0/0 · r#42 global_value_decl/1.0/0 -> attribute global_value_decl/1.0/0 · r#43 function_decl/0.0/0 -> attribute function_decl/0.0/0 · r#44 global_assert -> 'const_assert' ';' · r#45 global_decl -> type_alias_decl ';' · r#46 global_decl -> global_value_decl ';' · r#47 global_decl -> global_variable_decl ';' · r#48 translation_unit/0.1/0 -> translation_unit/0.1/0/0.0 translation_unit/0.1/0 · r#49 severity_control_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#50 diagnostic_directive -> 'diagnostic' diagnostic_control ';' · r#51 enable_extension_list/0.1 -> enable_extension_list/0.1/0 · r#52 enable_directive -> 'enable' enable_extension_list ';' · r#53 language_extension_list/0.1 -> language_extension_list/0.1/0 · r#54 requires_directive -> 'requires' language_extension_list ';' · r#55 language_extension_list/0.1/0/0.0 -> ',' language_extension_name · r#56 language_extension_list/0.1/0 -> language_extension_list/0.1/0/0.0 language_extension_list/0.1/0 · r#57 language_extension_list -> language_extension_name language_extension_list/0.1 language_extension_list/0.2 · r#58 language_extension_list/0.2 -> ',' · r#59 enable_extension_list/0.1/0/0.0 -> ',' enable_extension_name · r#60 enable_extension_list/0.1/0 -> enable_extension_list/0.1/0/0.0 enable_extension_list/0.1/0 · r#61 enable_extension_list -> enable_extension_name enable_extension_list/0.1 enable_extension_list/0.2 · r#62 enable_extension_list/0.2 -> ',' · r#63 _disambiguate_template -> /\u200B_disambiguate_template/ · r#64 global_variable_decl -> global_variable_decl/0.0 variable_decl global_variable_decl/0.2 · r#65 optionally_typed_ident -> ident optionally_typed_ident/0.1 · r#66 ident -> ident_pattern_token _disambiguate_template · r#67 struct_decl -> 'struct' ident struct_body_decl · r#68 function_decl -> function_decl/0.0 function_header compound_statement · r#69 compound_statement/0.0 -> compound_statement/0.0/0 · r#70 diagnostic_attr -> '@' 'diagnostic' diagnostic_control · r#71 attribute -> '@' ident_pattern_token attribute/0.2 · r#72 attribute/0.2 -> argument_expression_list · r#73 argument_expression_list/0.1 -> expression_comma_list · r#74 expression -> relational_expression · r#75 short_circuit_or_expression -> relational_expression · r#76 short_circuit_and_expression -> relational_expression · r#77 expression -> bitwise_expression · r#78 relational_expression -> shift_expression · r#79 shift_expression -> additive_expression · r#80 binary_and_expression -> unary_expression · r#81 binary_or_expression -> unary_expression · r#82 binary_xor_expression -> unary_expression · r#83 multiplicative_expression -> unary_expression · r#84 additive_expression -> multiplicative_expression · r#85 unary_expression -> singular_expression · r#86 primary_expression -> template_elaborated_ident · r#87 primary_expression -> call_expression · r#88 primary_expression -> literal · r#89 primary_expression -> paren_expression · r#90 literal -> int_literal · r#91 literal -> float_literal · r#92 literal -> bool_literal · r#93 int_literal -> decimal_int_literal · r#94 int_literal -> hex_int_literal · r#95 float_literal -> decimal_float_literal · r#96 float_literal -> hex_float_literal · r#97 bool_literal -> 'true' · r#98 bool_literal -> 'false' · r#99 decimal_int_literal -> /0[iu]?/ · r#100 decimal_int_literal -> /[1-9][0-9]*[iu]?/ · r#101 hex_int_literal -> /0[xX][0-9a-fA-F]+[iu]?/ · r#102 decimal_float_literal -> /0[fh]/ · r#103 decimal_float_literal -> /[1-9][0-9]*[fh]/ · r#104 decimal_float_literal -> /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ · r#105 decimal_float_literal -> /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ · r#106 decimal_float_literal -> /[0-9]+[eE][+-]?[0-9]+[fh]?/ · r#107 hex_float_literal -> /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ · r#108 hex_float_literal -> /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ · r#109 hex_float_literal -> /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ · r#110 builtin_value_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#111 interpolate_type_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#112 compound_statement/0.0/0 -> attribute compound_statement/0.0/0 · r#113 struct_member/0.0 -> struct_member/0.0/0 · r#114 type_alias_decl -> 'alias' ident '=' type_specifier · r#115 global_value_decl -> global_value_decl/1.0 'override' optionally_typed_ident global_value_decl/1.3 · r#116 global_value_decl -> 'const' optionally_typed_ident '=' expression · r#117 optionally_typed_ident/0.1 -> ':' type_specifier · r#118 global_variable_decl/0.2 -> '=' expression · r#119 variable_decl/0.2 -> template_list · r#120 _template_args_start -> /\u200B_template_args_start/ · r#121 diagnostic_rule_name -> diagnostic_name_token · r#122 diagnostic_name_token -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#123 diagnostic_control/0.4 -> ',' · r#124 template_arg_expression -> relational_expression · r#125 template_arg_expression -> bitwise_expression · r#126 variable_decl -> 'var' _disambiguate_template variable_decl/0.2 optionally_typed_ident · r#127 global_value_decl/1.3 -> '=' expression · r#128 struct_member/0.0/0 -> attribute struct_member/0.0/0 · r#129 member_ident -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#130 struct_body_decl/0.2 -> struct_body_decl/0.2/0 · r#131 function_header/0.3 -> param_list · r#132 param/0.0 -> param/0.0/0 · r#133 compound_statement/0.2 -> compound_statement/0.2/0 · r#134 statement -> ';' · r#135 statement -> if_statement · r#136 statement -> switch_statement · r#137 statement -> loop_statement · r#138 statement -> for_statement · r#139 statement -> while_statement · r#140 statement -> compound_statement · r#141 variable_or_value_statement -> variable_decl · r#142 break_statement -> 'break' · r#143 continue_statement -> 'continue' · r#144 variable_updating_statement -> assignment_statement · r#145 variable_updating_statement -> increment_statement · r#146 variable_updating_statement -> decrement_statement · r#147 assert_statement -> 'const_assert' · r#148 if_statement/0.0 -> if_statement/0.0/0 · r#149 switch_statement/0.0 -> switch_statement/0.0/0 · r#150 loop_statement/0.0 -> loop_statement/0.0/0 · r#151 for_statement/0.0 -> for_statement/0.0/0 · r#152 while_statement/0.0 -> while_statement/0.0/0 · r#153 workgroup_size_attr/0.4 -> ',' · r#154 size_attr/0.4 -> ',' · r#155 location_attr/0.4 -> ',' · r#156 interpolate_attr/0.4 -> ',' · r#157 id_attr/0.4 -> ',' · r#158 group_attr/0.4 -> ',' · r#159 builtin_attr/0.4 -> ',' · r#160 blend_src_attr/0.4 -> ',' · r#161 binding_attr/0.4 -> ',' · r#162 align_attr/0.4 -> ',' · r#163 call_expression -> template_elaborated_ident argument_expression_list · r#164 singular_expression -> primary_expression singular_expression/0.1 · r#165 singular_expression/0.1 -> component_or_swizzle_specifier · r#166 unary_expression -> '&' unary_expression · r#167 unary_expression -> '*' unary_expression · r#168 unary_expression -> '~' unary_expression · r#169 unary_expression -> '!' unary_expression · r#170 unary_expression -> '-' unary_expression · r#171 multiplicative_operator -> '*' · r#172 multiplicative_operator -> '/' · r#173 multiplicative_operator -> '%' · r#174 _shift_left -> /\u200B_shift_left/ · r#175 _shift_right -> /\u200B_shift_right/ · r#176 additive_operator -> '+' · r#177 additive_operator -> '-' · r#178 _less_than -> /\u200B_less_than/ · r#179 _greater_than -> /\u200B_greater_than/ · r#180 _less_than_equal -> /\u200B_less_than_equal/ · r#181 _greater_than_equal -> /\u200B_greater_than_equal/ · r#182 expression_comma_list/0.1 -> expression_comma_list/0.1/0 · r#183 argument_expression_list -> '(' argument_expression_list/0.1 ')' · r#184 expression_comma_list/0.1/0/0.0 -> ',' expression · r#185 expression_comma_list/0.1/0 -> expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 · r#186 expression_comma_list -> expression expression_comma_list/0.1 expression_comma_list/0.2 · r#187 expression_comma_list/0.2 -> ',' · r#188 expression -> short_circuit_or_expression '||' relational_expression · r#189 short_circuit_or_expression -> short_circuit_or_expression '||' relational_expression · r#190 expression -> short_circuit_and_expression '&&' relational_expression · r#191 short_circuit_and_expression -> short_circuit_and_expression '&&' relational_expression · r#192 relational_expression -> shift_expression '!=' shift_expression · r#193 relational_expression -> shift_expression '==' shift_expression · r#194 relational_expression -> shift_expression _greater_than_equal shift_expression · r#195 relational_expression -> shift_expression _less_than_equal shift_expression · r#196 relational_expression -> shift_expression _greater_than shift_expression · r#197 relational_expression -> shift_expression _less_than shift_expression · r#198 bitwise_expression -> binary_and_expression '&' unary_expression · r#199 binary_and_expression -> binary_and_expression '&' unary_expression · r#200 bitwise_expression -> binary_or_expression '|' unary_expression · r#201 binary_or_expression -> binary_or_expression '|' unary_expression · r#202 bitwise_expression -> binary_xor_expression '^' unary_expression · r#203 binary_xor_expression -> binary_xor_expression '^' unary_expression · r#204 additive_expression -> additive_expression additive_operator multiplicative_expression · r#205 shift_expression -> unary_expression _shift_right unary_expression · r#206 shift_expression -> unary_expression _shift_left unary_expression · r#207 multiplicative_expression -> multiplicative_expression multiplicative_operator unary_expression · r#208 swizzle_name -> /[rgba]/ · r#209 swizzle_name -> /[rgba][rgba]/ · r#210 swizzle_name -> /[rgba][rgba][rgba]/ · r#211 swizzle_name -> /[rgba][rgba][rgba][rgba]/ · r#212 swizzle_name -> /[xyzw]/ · r#213 swizzle_name -> /[xyzw][xyzw]/ · r#214 swizzle_name -> /[xyzw][xyzw][xyzw]/ · r#215 swizzle_name -> /[xyzw][xyzw][xyzw][xyzw]/ · r#216 template_elaborated_ident -> ident _disambiguate_template template_elaborated_ident/0.2 · r#217 template_elaborated_ident/0.2 -> template_list · r#218 paren_expression -> '(' expression ')' · r#219 align_attr -> '@' 'align' '(' expression align_attr/0.4 ')' · r#220 binding_attr -> '@' 'binding' '(' expression binding_attr/0.4 ')' · r#221 blend_src_attr -> '@' 'blend_src' '(' expression blend_src_attr/0.4 ')' · r#222 builtin_attr -> '@' 'builtin' '(' builtin_value_name builtin_attr/0.4 ')' · r#223 group_attr -> '@' 'group' '(' expression group_attr/0.4 ')' · r#224 id_attr -> '@' 'id' '(' expression id_attr/0.4 ')' · r#225 interpolate_sampling_name -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#226 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name interpolate_attr/0.4 ')' · r#227 location_attr -> '@' 'location' '(' expression location_attr/0.4 ')' · r#228 size_attr -> '@' 'size' '(' expression size_attr/0.4 ')' · r#229 workgroup_size_attr -> '@' 'workgroup_size' '(' expression workgroup_size_attr/0.4 ')' · r#230 lhs_expression -> '&' lhs_expression · r#231 lhs_expression -> '*' lhs_expression · r#232 lhs_expression -> core_lhs_expression lhs_expression/0.1 · r#233 lhs_expression/0.1 -> component_or_swizzle_specifier · r#234 if_statement/0.0/0 -> attribute if_statement/0.0/0 · r#235 switch_statement/0.0/0 -> attribute switch_statement/0.0/0 · r#236 loop_statement/0.0/0 -> attribute loop_statement/0.0/0 · r#237 for_statement/0.0/0 -> attribute for_statement/0.0/0 · r#238 while_statement/0.0/0 -> attribute while_statement/0.0/0 · r#239 increment_statement -> lhs_expression '++' · r#240 decrement_statement -> lhs_expression '--' · r#241 assignment_statement/0.1 -> '=' · r#242 assignment_statement/0.1 -> compound_assignment_operator · r#243 compound_assignment_operator -> '+=' · r#244 compound_assignment_operator -> '-=' · r#245 compound_assignment_operator -> '*=' · r#246 compound_assignment_operator -> '/=' · r#247 compound_assignment_operator -> '%=' · r#248 compound_assignment_operator -> '&=' · r#249 compound_assignment_operator -> '|=' · r#250 compound_assignment_operator -> '^=' · r#251 compound_assignment_operator -> _shift_right_assign · r#252 compound_assignment_operator -> _shift_left_assign · r#253 _shift_right_assign -> /\u200B_shift_right_assign/ · r#254 _shift_left_assign -> /\u200B_shift_left_assign/ · r#255 core_lhs_expression -> ident _disambiguate_template · r#256 func_call_statement -> template_elaborated_ident argument_expression_list · r#257 return_statement -> 'return' return_statement/0.1 · r#258 return_statement/0.1 -> expression · r#259 statement -> assert_statement ';' · r#260 statement -> variable_updating_statement ';' · r#261 statement -> 'discard' ';' · r#262 statement -> continue_statement ';' · r#263 statement -> break_statement ';' · r#264 statement -> variable_or_value_statement ';' · r#265 statement -> func_call_statement ';' · r#266 statement -> return_statement ';' · r#267 compound_statement/0.2/0 -> statement compound_statement/0.2/0 · r#268 compound_statement -> compound_statement/0.0 '{' compound_statement/0.2 '}' · r#269 param/0.0/0 -> attribute param/0.0/0 · r#270 param_list/0.1 -> param_list/0.1/0 · r#271 struct_body_decl/0.2/0/0.0 -> ',' struct_member · r#272 struct_body_decl/0.2/0 -> struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 · r#273 struct_body_decl/0.3 -> ',' · r#274 type_specifier -> ident _disambiguate_template template_elaborated_ident/0.2 · r#275 template_arg_comma_list/0.1 -> template_arg_comma_list/0.1/0 · r#276 template_list -> _template_args_start template_arg_comma_list _template_args_end · r#277 _template_args_end -> /\u200B_template_args_end/ · r#278 diagnostic_control -> '(' severity_control_name ',' diagnostic_rule_name diagnostic_control/0.4 ')' · r#279 diagnostic_rule_name -> diagnostic_name_token '.' diagnostic_name_token · r#280 template_arg_comma_list/0.1/0/0.0 -> ',' template_arg_expression · r#281 template_arg_comma_list/0.1/0 -> template_arg_comma_list/0.1/0/0.0 template_arg_comma_list/0.1/0 · r#282 template_arg_comma_list -> template_arg_expression template_arg_comma_list/0.1 template_arg_comma_list/0.2 · r#283 template_arg_comma_list/0.2 -> ',' · r#284 template_arg_expression -> short_circuit_or_expression '||' relational_expression · r#285 template_arg_expression -> short_circuit_and_expression '&&' relational_expression · r#286 struct_member -> struct_member/0.0 member_ident ':' type_specifier · r#287 struct_body_decl -> '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' · r#288 function_header -> 'fn' ident '(' function_header/0.3 ')' function_header/0.5 · r#289 param_list/0.1/0/0.0 -> ',' param · r#290 param_list/0.1/0 -> param_list/0.1/0/0.0 param_list/0.1/0 · r#291 param_list -> param param_list/0.1 param_list/0.2 · r#292 param_list/0.2 -> ',' · r#293 if_statement/0.2 -> if_statement/0.2/0 · r#294 loop_statement/0.2 -> loop_statement/0.2/0 · r#295 variable_or_value_statement -> variable_decl '=' expression · r#296 assignment_statement -> lhs_expression assignment_statement/0.1 expression · r#297 assignment_statement -> '_' '=' expression · r#298 core_lhs_expression -> '(' lhs_expression ')' · r#299 workgroup_size_attr/1.6 -> ',' · r#300 interpolate_attr/1.6 -> ',' · r#301 component_or_swizzle_specifier -> '.' swizzle_name component_or_swizzle_specifier/2.2 · r#302 component_or_swizzle_specifier/2.2 -> component_or_swizzle_specifier · r#303 component_or_swizzle_specifier -> '.' member_ident component_or_swizzle_specifier/1.2 · r#304 component_or_swizzle_specifier/1.2 -> component_or_swizzle_specifier · r#305 component_or_swizzle_specifier -> '[' expression ']' component_or_swizzle_specifier/0.3 · r#306 component_or_swizzle_specifier/0.3 -> component_or_swizzle_specifier · r#307 interpolate_attr -> '@' 'interpolate' '(' interpolate_type_name ',' interpolate_sampling_name interpolate_attr/1.6 ')' · r#308 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression workgroup_size_attr/1.6 ')' · r#309 variable_or_value_statement -> 'const' optionally_typed_ident '=' expression · r#310 variable_or_value_statement -> 'let' optionally_typed_ident '=' expression · r#311 while_statement -> while_statement/0.0 'while' expression compound_statement · r#312 for_header/0.0 -> for_init · r#313 for_init -> variable_or_value_statement · r#314 for_init -> variable_updating_statement · r#315 for_init -> func_call_statement · r#316 loop_statement/0.2/0 -> attribute loop_statement/0.2/0 · r#317 switch_statement -> switch_statement/0.0 'switch' expression switch_body · r#318 switch_body/0.0 -> switch_body/0.0/0 · r#319 if_statement/0.2/0 -> else_if_clause if_statement/0.2/0 · r#320 if_statement -> if_statement/0.0 if_clause if_statement/0.2 if_statement/0.3 · r#321 if_statement/0.3 -> else_clause · r#322 if_clause -> 'if' expression compound_statement · r#323 param -> param/0.0 ident ':' type_specifier · r#324 function_header/0.5/0.1 -> function_header/0.5/0.1/0 · r#325 function_header/0.5/0.1/0 -> attribute function_header/0.5/0.1/0 · r#326 function_header/0.5 -> '->' function_header/0.5/0.1 template_elaborated_ident · r#327 else_clause -> 'else' compound_statement · r#328 switch_body/0.0/0 -> attribute switch_body/0.0/0 · r#329 loop_statement/0.4 -> loop_statement/0.4/0 · r#330 workgroup_size_attr/2.8 -> ',' · r#331 workgroup_size_attr -> '@' 'workgroup_size' '(' expression ',' expression ',' expression workgroup_size_attr/2.8 ')' · r#332 for_statement -> for_statement/0.0 'for' '(' for_header ')' compound_statement · r#333 for_header/0.2 -> expression · r#334 loop_statement/0.4/0 -> statement loop_statement/0.4/0 · r#335 loop_statement/0.5 -> continuing_statement · r#336 switch_body/0.2 -> switch_body/0.2/0 · r#337 switch_clause -> case_clause · r#338 switch_clause -> default_alone_clause · r#339 else_if_clause -> 'else' 'if' expression compound_statement · r#340 default_alone_clause/0.1 -> ':' · r#341 case_selector -> 'default' · r#342 case_selector -> expression · r#343 switch_body/0.2/0 -> switch_clause switch_body/0.2/0 · r#344 switch_body -> switch_body/0.0 '{' switch_body/0.2 '}' · r#345 continuing_statement -> 'continuing' continuing_compound_statement · r#346 continuing_compound_statement/0.0 -> continuing_compound_statement/0.0/0 · r#347 loop_statement -> loop_statement/0.0 'loop' loop_statement/0.2 '{' loop_statement/0.4 loop_statement/0.5 '}' · r#348 for_header -> for_header/0.0 ';' for_header/0.2 ';' for_header/0.4 · r#349 for_header/0.4 -> for_update · r#350 for_update -> variable_updating_statement · r#351 for_update -> func_call_statement · r#352 continuing_compound_statement/0.0/0 -> attribute continuing_compound_statement/0.0/0 · r#353 case_selectors/0.1 -> case_selectors/0.1/0 · r#354 case_clause/0.2 -> ':' · r#355 default_alone_clause -> 'default' default_alone_clause/0.1 compound_statement · r#356 case_clause -> 'case' case_selectors case_clause/0.2 compound_statement · r#357 case_selectors/0.1/0/0.0 -> ',' case_selector · r#358 case_selectors/0.1/0 -> case_selectors/0.1/0/0.0 case_selectors/0.1/0 · r#359 case_selectors -> case_selector case_selectors/0.1 case_selectors/0.2 · r#360 case_selectors/0.2 -> ',' · r#361 continuing_compound_statement/0.2 -> continuing_compound_statement/0.2/0 · r#362 continuing_compound_statement/0.2/0 -> statement continuing_compound_statement/0.2/0 · r#363 continuing_compound_statement/0.3 -> break_if_statement · r#364 continuing_compound_statement -> continuing_compound_statement/0.0 '{' continuing_compound_statement/0.2 continuing_compound_statement/0.3 '}' · r#365 break_if_statement -> 'break' 'if' expression ';' · =Action: [#0 'diagnostic']: s#8 [#0 'enable']: s#9 [#0 'requires']: s#10 [#1 EndOfText]: acc [#2 ';']: s#25 [#2 '@']: s#42 [#2 'alias']: s#35 [#2 'const']: s#33 [#2 'const_assert']: s#31 [#2 'struct']: s#36 [#3 ';']: r#0 [#3 '@']: r#0 [#3 'alias']: r#0 [#3 'const']: r#0 [#3 'const_assert']: r#0 [#3 'fn']: r#0 [#3 'override']: r#0 [#3 'struct']: r#0 [#3 'var']: r#0 [#3 EndOfText]: r#0 [#4 'diagnostic']: s#8 [#4 'enable']: s#9 [#4 'requires']: s#10 [#5 ';']: r#1 [#5 '@']: r#1 [#5 'alias']: r#1 [#5 'const']: r#1 [#5 'const_assert']: r#1 [#5 'diagnostic']: r#1 [#5 'enable']: r#1 [#5 'fn']: r#1 [#5 'override']: r#1 [#5 'requires']: r#1 [#5 'struct']: r#1 [#5 'var']: r#1 [#5 EndOfText]: r#1 [#6 ';']: r#2 [#6 '@']: r#2 [#6 'alias']: r#2 [#6 'const']: r#2 [#6 'const_assert']: r#2 [#6 'diagnostic']: r#2 [#6 'enable']: r#2 [#6 'fn']: r#2 [#6 'override']: r#2 [#6 'requires']: r#2 [#6 'struct']: r#2 [#6 'var']: r#2 [#6 EndOfText]: r#2 [#7 ';']: r#3 [#7 '@']: r#3 [#7 'alias']: r#3 [#7 'const']: r#3 [#7 'const_assert']: r#3 [#7 'diagnostic']: r#3 [#7 'enable']: r#3 [#7 'fn']: r#3 [#7 'override']: r#3 [#7 'requires']: r#3 [#7 'struct']: r#3 [#7 'var']: r#3 [#7 EndOfText]: r#3 [#8 '(']: s#18 [#9 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#16 [#10 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#13 [#11 ';']: s#109 [#12 ',']: s#108 [#13 ',']: r#4 [#13 ';']: r#4 [#14 ';']: s#104 [#15 ',']: s#103 [#16 ',']: r#5 [#16 ';']: r#5 [#17 ';']: s#99 [#18 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#98 [#19 ';']: r#6 [#19 '@']: r#6 [#19 'alias']: r#6 [#19 'const']: r#6 [#19 'const_assert']: r#6 [#19 'fn']: r#6 [#19 'override']: r#6 [#19 'struct']: r#6 [#19 'var']: r#6 [#19 EndOfText]: r#6 [#20 EndOfText]: r#7 [#21 EndOfText]: r#8 [#22 ';']: s#25 [#22 '@']: s#42 [#22 'alias']: s#35 [#22 'const']: s#33 [#22 'const_assert']: s#31 [#22 'struct']: s#36 [#23 ';']: r#9 [#23 '@']: r#9 [#23 'alias']: r#9 [#23 'const']: r#9 [#23 'const_assert']: r#9 [#23 'fn']: r#9 [#23 'override']: r#9 [#23 'struct']: r#9 [#23 'var']: r#9 [#23 EndOfText]: r#9 [#24 ';']: r#10 [#24 '@']: r#10 [#24 'alias']: r#10 [#24 'const']: r#10 [#24 'const_assert']: r#10 [#24 'fn']: r#10 [#24 'override']: r#10 [#24 'struct']: r#10 [#24 'var']: r#10 [#24 EndOfText]: r#10 [#25 ';']: r#11 [#25 '@']: r#11 [#25 'alias']: r#11 [#25 'const']: r#11 [#25 'const_assert']: r#11 [#25 'fn']: r#11 [#25 'override']: r#11 [#25 'struct']: r#11 [#25 'var']: r#11 [#25 EndOfText]: r#11 [#26 ';']: s#95 [#27 ';']: s#94 [#28 ';']: s#93 [#29 ';']: r#12 [#29 '@']: r#12 [#29 'alias']: r#12 [#29 'const']: r#12 [#29 'const_assert']: r#12 [#29 'fn']: r#12 [#29 'override']: r#12 [#29 'struct']: r#12 [#29 'var']: r#12 [#29 EndOfText]: r#12 [#30 ';']: r#13 [#30 '@']: r#13 [#30 'alias']: r#13 [#30 'const']: r#13 [#30 'const_assert']: r#13 [#30 'fn']: r#13 [#30 'override']: r#13 [#30 'struct']: r#13 [#30 'var']: r#13 [#30 EndOfText]: r#13 [#31 ';']: s#92 [#32 'var']: s#91 [#33 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#34 'override']: s#87 [#35 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#36 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#37 'fn']: s#83 [#38 'var']: r#14 [#39 'override']: r#15 [#40 'fn']: r#16 [#41 '@']: s#42 [#42 'align']: s#61 [#42 'binding']: s#62 [#42 'blend_src']: s#63 [#42 'builtin']: s#64 [#42 'compute']: s#77 [#42 'const']: s#65 [#42 'diagnostic']: s#66 [#42 'fragment']: s#76 [#42 'group']: s#67 [#42 'id']: s#68 [#42 'interpolate']: s#69 [#42 'invariant']: s#70 [#42 'location']: s#71 [#42 'must_use']: s#72 [#42 'size']: s#73 [#42 'vertex']: s#75 [#42 'workgroup_size']: s#74 [#42 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#43 '@']: r#17 [#43 'fn']: r#17 [#43 'for']: r#17 [#43 'if']: r#17 [#43 'loop']: r#17 [#43 'override']: r#17 [#43 'switch']: r#17 [#43 'var']: r#17 [#43 'while']: r#17 [#43 '{']: r#17 [#43 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#17 [#44 '@']: r#18 [#44 'fn']: r#18 [#44 'for']: r#18 [#44 'if']: r#18 [#44 'loop']: r#18 [#44 'override']: r#18 [#44 'switch']: r#18 [#44 'var']: r#18 [#44 'while']: r#18 [#44 '{']: r#18 [#44 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#18 [#45 '@']: r#19 [#45 'fn']: r#19 [#45 'for']: r#19 [#45 'if']: r#19 [#45 'loop']: r#19 [#45 'override']: r#19 [#45 'switch']: r#19 [#45 'var']: r#19 [#45 'while']: r#19 [#45 '{']: r#19 [#45 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#19 [#46 '@']: r#20 [#46 'fn']: r#20 [#46 'for']: r#20 [#46 'if']: r#20 [#46 'loop']: r#20 [#46 'override']: r#20 [#46 'switch']: r#20 [#46 'var']: r#20 [#46 'while']: r#20 [#46 '{']: r#20 [#46 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#20 [#47 '@']: r#21 [#47 'fn']: r#21 [#47 'for']: r#21 [#47 'if']: r#21 [#47 'loop']: r#21 [#47 'override']: r#21 [#47 'switch']: r#21 [#47 'var']: r#21 [#47 'while']: r#21 [#47 '{']: r#21 [#47 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#21 [#48 '@']: r#22 [#48 'fn']: r#22 [#48 'for']: r#22 [#48 'if']: r#22 [#48 'loop']: r#22 [#48 'override']: r#22 [#48 'switch']: r#22 [#48 'var']: r#22 [#48 'while']: r#22 [#48 '{']: r#22 [#48 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#22 [#49 '@']: r#23 [#49 'fn']: r#23 [#49 'for']: r#23 [#49 'if']: r#23 [#49 'loop']: r#23 [#49 'override']: r#23 [#49 'switch']: r#23 [#49 'var']: r#23 [#49 'while']: r#23 [#49 '{']: r#23 [#49 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#23 [#50 '@']: r#24 [#50 'fn']: r#24 [#50 'for']: r#24 [#50 'if']: r#24 [#50 'loop']: r#24 [#50 'override']: r#24 [#50 'switch']: r#24 [#50 'var']: r#24 [#50 'while']: r#24 [#50 '{']: r#24 [#50 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#24 [#51 '@']: r#25 [#51 'fn']: r#25 [#51 'for']: r#25 [#51 'if']: r#25 [#51 'loop']: r#25 [#51 'override']: r#25 [#51 'switch']: r#25 [#51 'var']: r#25 [#51 'while']: r#25 [#51 '{']: r#25 [#51 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#25 [#52 '@']: r#26 [#52 'fn']: r#26 [#52 'for']: r#26 [#52 'if']: r#26 [#52 'loop']: r#26 [#52 'override']: r#26 [#52 'switch']: r#26 [#52 'var']: r#26 [#52 'while']: r#26 [#52 '{']: r#26 [#52 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#26 [#53 '@']: r#27 [#53 'fn']: r#27 [#53 'for']: r#27 [#53 'if']: r#27 [#53 'loop']: r#27 [#53 'override']: r#27 [#53 'switch']: r#27 [#53 'var']: r#27 [#53 'while']: r#27 [#53 '{']: r#27 [#53 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#27 [#54 '@']: r#28 [#54 'fn']: r#28 [#54 'for']: r#28 [#54 'if']: r#28 [#54 'loop']: r#28 [#54 'override']: r#28 [#54 'switch']: r#28 [#54 'var']: r#28 [#54 'while']: r#28 [#54 '{']: r#28 [#54 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#28 [#55 '@']: r#29 [#55 'fn']: r#29 [#55 'for']: r#29 [#55 'if']: r#29 [#55 'loop']: r#29 [#55 'override']: r#29 [#55 'switch']: r#29 [#55 'var']: r#29 [#55 'while']: r#29 [#55 '{']: r#29 [#55 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#29 [#56 '@']: r#30 [#56 'fn']: r#30 [#56 'for']: r#30 [#56 'if']: r#30 [#56 'loop']: r#30 [#56 'override']: r#30 [#56 'switch']: r#30 [#56 'var']: r#30 [#56 'while']: r#30 [#56 '{']: r#30 [#56 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#30 [#57 '@']: r#31 [#57 'fn']: r#31 [#57 'for']: r#31 [#57 'if']: r#31 [#57 'loop']: r#31 [#57 'override']: r#31 [#57 'switch']: r#31 [#57 'var']: r#31 [#57 'while']: r#31 [#57 '{']: r#31 [#57 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#31 [#58 '@']: r#32 [#58 'fn']: r#32 [#58 'for']: r#32 [#58 'if']: r#32 [#58 'loop']: r#32 [#58 'override']: r#32 [#58 'switch']: r#32 [#58 'var']: r#32 [#58 'while']: r#32 [#58 '{']: r#32 [#58 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#32 [#59 '@']: r#33 [#59 'fn']: r#33 [#59 'for']: r#33 [#59 'if']: r#33 [#59 'loop']: r#33 [#59 'override']: r#33 [#59 'switch']: r#33 [#59 'var']: r#33 [#59 'while']: r#33 [#59 '{']: r#33 [#59 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#33 [#60 '(']: s#149 [#61 '(']: s#146 [#62 '(']: s#145 [#63 '(']: s#144 [#64 '(']: s#143 [#65 '@']: r#34 [#65 'fn']: r#34 [#65 'for']: r#34 [#65 'if']: r#34 [#65 'loop']: r#34 [#65 'override']: r#34 [#65 'switch']: r#34 [#65 'var']: r#34 [#65 'while']: r#34 [#65 '{']: r#34 [#65 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#34 [#66 '(']: s#18 [#67 '(']: s#141 [#68 '(']: s#140 [#69 '(']: s#139 [#70 '@']: r#35 [#70 'fn']: r#35 [#70 'for']: r#35 [#70 'if']: r#35 [#70 'loop']: r#35 [#70 'override']: r#35 [#70 'switch']: r#35 [#70 'var']: r#35 [#70 'while']: r#35 [#70 '{']: r#35 [#70 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#35 [#71 '(']: s#138 [#72 '@']: r#36 [#72 'fn']: r#36 [#72 'for']: r#36 [#72 'if']: r#36 [#72 'loop']: r#36 [#72 'override']: r#36 [#72 'switch']: r#36 [#72 'var']: r#36 [#72 'while']: r#36 [#72 '{']: r#36 [#72 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#36 [#73 '(']: s#137 [#74 '(']: s#136 [#75 '@']: r#37 [#75 'fn']: r#37 [#75 'for']: r#37 [#75 'if']: r#37 [#75 'loop']: r#37 [#75 'override']: r#37 [#75 'switch']: r#37 [#75 'var']: r#37 [#75 'while']: r#37 [#75 '{']: r#37 [#75 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#37 [#76 '@']: r#38 [#76 'fn']: r#38 [#76 'for']: r#38 [#76 'if']: r#38 [#76 'loop']: r#38 [#76 'override']: r#38 [#76 'switch']: r#38 [#76 'var']: r#38 [#76 'while']: r#38 [#76 '{']: r#38 [#76 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#38 [#77 '@']: r#39 [#77 'fn']: r#39 [#77 'for']: r#39 [#77 'if']: r#39 [#77 'loop']: r#39 [#77 'override']: r#39 [#77 'switch']: r#39 [#77 'var']: r#39 [#77 'while']: r#39 [#77 '{']: r#39 [#77 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#39 [#78 '(']: r#40 [#78 '@']: r#40 [#78 'fn']: r#40 [#78 'for']: r#40 [#78 'if']: r#40 [#78 'loop']: r#40 [#78 'override']: r#40 [#78 'switch']: r#40 [#78 'var']: r#40 [#78 'while']: r#40 [#78 '{']: r#40 [#78 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#40 [#78 /\u200B_disambiguate_template/]: r#40 [#79 'var']: r#41 [#80 'override']: r#42 [#81 'fn']: r#43 [#82 '@']: s#42 [#83 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#84 '{']: s#130 [#85 /\u200B_disambiguate_template/]: s#120 [#86 '=']: s#127 [#87 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#88 '=']: s#125 [#89 ':']: s#124 [#90 '=']: s#122 [#91 /\u200B_disambiguate_template/]: s#120 [#92 ';']: r#44 [#92 '@']: r#44 [#92 'alias']: r#44 [#92 'const']: r#44 [#92 'const_assert']: r#44 [#92 'fn']: r#44 [#92 'override']: r#44 [#92 'struct']: r#44 [#92 'var']: r#44 [#92 EndOfText]: r#44 [#93 ';']: r#45 [#93 '@']: r#45 [#93 'alias']: r#45 [#93 'const']: r#45 [#93 'const_assert']: r#45 [#93 'fn']: r#45 [#93 'override']: r#45 [#93 'struct']: r#45 [#93 'var']: r#45 [#93 EndOfText]: r#45 [#94 ';']: r#46 [#94 '@']: r#46 [#94 'alias']: r#46 [#94 'const']: r#46 [#94 'const_assert']: r#46 [#94 'fn']: r#46 [#94 'override']: r#46 [#94 'struct']: r#46 [#94 'var']: r#46 [#94 EndOfText]: r#46 [#95 ';']: r#47 [#95 '@']: r#47 [#95 'alias']: r#47 [#95 'const']: r#47 [#95 'const_assert']: r#47 [#95 'fn']: r#47 [#95 'override']: r#47 [#95 'struct']: r#47 [#95 'var']: r#47 [#95 EndOfText]: r#47 [#96 EndOfText]: r#48 [#97 ',']: s#118 [#98 ',']: r#49 [#99 ';']: r#50 [#99 '@']: r#50 [#99 'alias']: r#50 [#99 'const']: r#50 [#99 'const_assert']: r#50 [#99 'diagnostic']: r#50 [#99 'enable']: r#50 [#99 'fn']: r#50 [#99 'override']: r#50 [#99 'requires']: r#50 [#99 'struct']: r#50 [#99 'var']: r#50 [#99 EndOfText]: r#50 [#100 ',']: s#117 [#101 ',']: r#51 [#101 ';']: r#51 [#102 ',']: s#103 [#103 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#16 [#104 ';']: r#52 [#104 '@']: r#52 [#104 'alias']: r#52 [#104 'const']: r#52 [#104 'const_assert']: r#52 [#104 'diagnostic']: r#52 [#104 'enable']: r#52 [#104 'fn']: r#52 [#104 'override']: r#52 [#104 'requires']: r#52 [#104 'struct']: r#52 [#104 'var']: r#52 [#104 EndOfText]: r#52 [#105 ',']: s#113 [#106 ',']: r#53 [#106 ';']: r#53 [#107 ',']: s#108 [#108 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#13 [#109 ';']: r#54 [#109 '@']: r#54 [#109 'alias']: r#54 [#109 'const']: r#54 [#109 'const_assert']: r#54 [#109 'diagnostic']: r#54 [#109 'enable']: r#54 [#109 'fn']: r#54 [#109 'override']: r#54 [#109 'requires']: r#54 [#109 'struct']: r#54 [#109 'var']: r#54 [#109 EndOfText]: r#54 [#110 ',']: r#55 [#110 ';']: r#55 [#111 ',']: r#56 [#111 ';']: r#56 [#112 ';']: r#57 [#113 ';']: r#58 [#114 ',']: r#59 [#114 ';']: r#59 [#115 ',']: r#60 [#115 ';']: r#60 [#116 ';']: r#61 [#117 ';']: r#62 [#118 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#229 [#119 /\u200B_template_args_start/]: s#226 [#120 '!=']: r#63 [#120 '%']: r#63 [#120 '%=']: r#63 [#120 '&&']: r#63 [#120 '&']: r#63 [#120 '&=']: r#63 [#120 '(']: r#63 [#120 ')']: r#63 [#120 '*']: r#63 [#120 '*=']: r#63 [#120 '+']: r#63 [#120 '++']: r#63 [#120 '+=']: r#63 [#120 ',']: r#63 [#120 '-']: r#63 [#120 '--']: r#63 [#120 '-=']: r#63 [#120 '.']: r#63 [#120 '/']: r#63 [#120 '/=']: r#63 [#120 ':']: r#63 [#120 ';']: r#63 [#120 '=']: r#63 [#120 '==']: r#63 [#120 '@']: r#63 [#120 '[']: r#63 [#120 ']']: r#63 [#120 '^']: r#63 [#120 '^=']: r#63 [#120 '{']: r#63 [#120 '|']: r#63 [#120 '|=']: r#63 [#120 '||']: r#63 [#120 '}']: r#63 [#120 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#63 [#120 /\u200B_disambiguate_template/]: r#63 [#120 /\u200B_greater_than/]: r#63 [#120 /\u200B_greater_than_equal/]: r#63 [#120 /\u200B_less_than/]: r#63 [#120 /\u200B_less_than_equal/]: r#63 [#120 /\u200B_shift_left/]: r#63 [#120 /\u200B_shift_left_assign/]: r#63 [#120 /\u200B_shift_right/]: r#63 [#120 /\u200B_shift_right_assign/]: r#63 [#120 /\u200B_template_args_end/]: r#63 [#120 /\u200B_template_args_start/]: r#63 [#121 ';']: r#64 [#122 '!']: s#166 [#122 '&']: s#169 [#122 '(']: s#179 [#122 '*']: s#168 [#122 '-']: s#165 [#122 'false']: s#185 [#122 'true']: s#184 [#122 '~']: s#167 [#122 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#122 /0[fh]/]: s#189 [#122 /0[iu]?/]: s#186 [#122 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#122 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#122 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#122 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#122 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#122 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#122 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#122 /[1-9][0-9]*[fh]/]: s#190 [#122 /[1-9][0-9]*[iu]?/]: s#187 [#123 ';']: r#65 [#123 '=']: r#65 [#124 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#125 '!']: s#166 [#125 '&']: s#169 [#125 '(']: s#179 [#125 '*']: s#168 [#125 '-']: s#165 [#125 'false']: s#185 [#125 'true']: s#184 [#125 '~']: s#167 [#125 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#125 /0[fh]/]: s#189 [#125 /0[iu]?/]: s#186 [#125 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#125 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#125 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#125 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#125 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#125 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#125 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#125 /[1-9][0-9]*[fh]/]: s#190 [#125 /[1-9][0-9]*[iu]?/]: s#187 [#126 '=']: s#219 [#127 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#128 '(']: r#66 [#128 ':']: r#66 [#128 ';']: r#66 [#128 '=']: r#66 [#128 '{']: r#66 [#128 /\u200B_disambiguate_template/]: r#66 [#129 ';']: r#67 [#129 '@']: r#67 [#129 'alias']: r#67 [#129 'const']: r#67 [#129 'const_assert']: r#67 [#129 'fn']: r#67 [#129 'override']: r#67 [#129 'struct']: r#67 [#129 'var']: r#67 [#129 EndOfText]: r#67 [#130 '@']: s#42 [#131 '(']: s#211 [#132 ';']: r#68 [#132 '@']: r#68 [#132 'alias']: r#68 [#132 'const']: r#68 [#132 'const_assert']: r#68 [#132 'fn']: r#68 [#132 'override']: r#68 [#132 'struct']: r#68 [#132 'var']: r#68 [#132 EndOfText]: r#68 [#133 '{']: s#210 [#134 '{']: r#69 [#135 '@']: s#42 [#136 '!']: s#166 [#136 '&']: s#169 [#136 '(']: s#179 [#136 '*']: s#168 [#136 '-']: s#165 [#136 'false']: s#185 [#136 'true']: s#184 [#136 '~']: s#167 [#136 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#136 /0[fh]/]: s#189 [#136 /0[iu]?/]: s#186 [#136 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#136 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#136 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#136 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#136 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#136 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#136 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#136 /[1-9][0-9]*[fh]/]: s#190 [#136 /[1-9][0-9]*[iu]?/]: s#187 [#137 '!']: s#166 [#137 '&']: s#169 [#137 '(']: s#179 [#137 '*']: s#168 [#137 '-']: s#165 [#137 'false']: s#185 [#137 'true']: s#184 [#137 '~']: s#167 [#137 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#137 /0[fh]/]: s#189 [#137 /0[iu]?/]: s#186 [#137 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#137 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#137 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#137 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#137 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#137 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#137 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#137 /[1-9][0-9]*[fh]/]: s#190 [#137 /[1-9][0-9]*[iu]?/]: s#187 [#138 '!']: s#166 [#138 '&']: s#169 [#138 '(']: s#179 [#138 '*']: s#168 [#138 '-']: s#165 [#138 'false']: s#185 [#138 'true']: s#184 [#138 '~']: s#167 [#138 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#138 /0[fh]/]: s#189 [#138 /0[iu]?/]: s#186 [#138 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#138 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#138 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#138 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#138 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#138 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#138 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#138 /[1-9][0-9]*[fh]/]: s#190 [#138 /[1-9][0-9]*[iu]?/]: s#187 [#139 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#205 [#140 '!']: s#166 [#140 '&']: s#169 [#140 '(']: s#179 [#140 '*']: s#168 [#140 '-']: s#165 [#140 'false']: s#185 [#140 'true']: s#184 [#140 '~']: s#167 [#140 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#140 /0[fh]/]: s#189 [#140 /0[iu]?/]: s#186 [#140 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#140 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#140 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#140 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#140 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#140 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#140 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#140 /[1-9][0-9]*[fh]/]: s#190 [#140 /[1-9][0-9]*[iu]?/]: s#187 [#141 '!']: s#166 [#141 '&']: s#169 [#141 '(']: s#179 [#141 '*']: s#168 [#141 '-']: s#165 [#141 'false']: s#185 [#141 'true']: s#184 [#141 '~']: s#167 [#141 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#141 /0[fh]/]: s#189 [#141 /0[iu]?/]: s#186 [#141 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#141 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#141 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#141 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#141 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#141 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#141 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#141 /[1-9][0-9]*[fh]/]: s#190 [#141 /[1-9][0-9]*[iu]?/]: s#187 [#142 '@']: r#70 [#142 'fn']: r#70 [#142 'for']: r#70 [#142 'if']: r#70 [#142 'loop']: r#70 [#142 'override']: r#70 [#142 'switch']: r#70 [#142 'var']: r#70 [#142 'while']: r#70 [#142 '{']: r#70 [#142 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#70 [#143 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#201 [#144 '!']: s#166 [#144 '&']: s#169 [#144 '(']: s#179 [#144 '*']: s#168 [#144 '-']: s#165 [#144 'false']: s#185 [#144 'true']: s#184 [#144 '~']: s#167 [#144 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#144 /0[fh]/]: s#189 [#144 /0[iu]?/]: s#186 [#144 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#144 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#144 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#144 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#144 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#144 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#144 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#144 /[1-9][0-9]*[fh]/]: s#190 [#144 /[1-9][0-9]*[iu]?/]: s#187 [#145 '!']: s#166 [#145 '&']: s#169 [#145 '(']: s#179 [#145 '*']: s#168 [#145 '-']: s#165 [#145 'false']: s#185 [#145 'true']: s#184 [#145 '~']: s#167 [#145 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#145 /0[fh]/]: s#189 [#145 /0[iu]?/]: s#186 [#145 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#145 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#145 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#145 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#145 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#145 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#145 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#145 /[1-9][0-9]*[fh]/]: s#190 [#145 /[1-9][0-9]*[iu]?/]: s#187 [#146 '!']: s#166 [#146 '&']: s#169 [#146 '(']: s#179 [#146 '*']: s#168 [#146 '-']: s#165 [#146 'false']: s#185 [#146 'true']: s#184 [#146 '~']: s#167 [#146 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#146 /0[fh]/]: s#189 [#146 /0[iu]?/]: s#186 [#146 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#146 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#146 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#146 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#146 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#146 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#146 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#146 /[1-9][0-9]*[fh]/]: s#190 [#146 /[1-9][0-9]*[iu]?/]: s#187 [#147 '@']: r#71 [#147 'fn']: r#71 [#147 'for']: r#71 [#147 'if']: r#71 [#147 'loop']: r#71 [#147 'override']: r#71 [#147 'switch']: r#71 [#147 'var']: r#71 [#147 'while']: r#71 [#147 '{']: r#71 [#147 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#71 [#148 '@']: r#72 [#148 'fn']: r#72 [#148 'for']: r#72 [#148 'if']: r#72 [#148 'loop']: r#72 [#148 'override']: r#72 [#148 'switch']: r#72 [#148 'var']: r#72 [#148 'while']: r#72 [#148 '{']: r#72 [#148 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#72 [#149 '!']: s#166 [#149 '&']: s#169 [#149 '(']: s#179 [#149 '*']: s#168 [#149 '-']: s#165 [#149 'false']: s#185 [#149 'true']: s#184 [#149 '~']: s#167 [#149 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#149 /0[fh]/]: s#189 [#149 /0[iu]?/]: s#186 [#149 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#149 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#149 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#149 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#149 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#149 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#149 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#149 /[1-9][0-9]*[fh]/]: s#190 [#149 /[1-9][0-9]*[iu]?/]: s#187 [#150 ')']: s#364 [#151 ')']: r#73 [#152 ',']: s#363 [#153 '&&']: r#76 [#153 ')']: r#74 [#153 ',']: r#74 [#153 ':']: r#74 [#153 ';']: r#74 [#153 '@']: r#74 [#153 ']']: r#74 [#153 '{']: r#74 [#153 '||']: r#75 [#154 '||']: s#359 [#155 '&&']: s#358 [#156 ')']: r#77 [#156 ',']: r#77 [#156 ':']: r#77 [#156 ';']: r#77 [#156 '@']: r#77 [#156 ']']: r#77 [#156 '{']: r#77 [#157 '!=']: s#353 [#157 '&&']: r#78 [#157 ')']: r#78 [#157 ',']: r#78 [#157 ':']: r#78 [#157 ';']: r#78 [#157 '==']: s#352 [#157 '@']: r#78 [#157 ']']: r#78 [#157 '{']: r#78 [#157 '||']: r#78 [#157 /\u200B_greater_than/]: s#355 [#157 /\u200B_greater_than_equal/]: s#357 [#157 /\u200B_less_than/]: s#354 [#157 /\u200B_less_than_equal/]: s#356 [#157 /\u200B_template_args_end/]: r#78 [#158 '&']: s#347 [#159 '|']: s#346 [#160 '^']: s#345 [#161 '!=']: r#79 [#161 '&&']: r#79 [#161 ')']: r#79 [#161 '+']: s#343 [#161 ',']: r#79 [#161 '-']: s#344 [#161 ':']: r#79 [#161 ';']: r#79 [#161 '==']: r#79 [#161 '@']: r#79 [#161 ']']: r#79 [#161 '{']: r#79 [#161 '||']: r#79 [#161 /\u200B_greater_than/]: r#79 [#161 /\u200B_greater_than_equal/]: r#79 [#161 /\u200B_less_than/]: r#79 [#161 /\u200B_less_than_equal/]: r#79 [#161 /\u200B_template_args_end/]: r#79 [#162 '!=']: r#83 [#162 '%']: r#83 [#162 '&&']: r#83 [#162 '&']: r#80 [#162 ')']: r#83 [#162 '*']: r#83 [#162 '+']: r#83 [#162 ',']: r#83 [#162 '-']: r#83 [#162 '/']: r#83 [#162 ':']: r#83 [#162 ';']: r#83 [#162 '==']: r#83 [#162 '@']: r#83 [#162 ']']: r#83 [#162 '^']: r#82 [#162 '{']: r#83 [#162 '|']: r#81 [#162 '||']: r#83 [#162 /\u200B_greater_than/]: r#83 [#162 /\u200B_greater_than_equal/]: r#83 [#162 /\u200B_less_than/]: r#83 [#162 /\u200B_less_than_equal/]: r#83 [#162 /\u200B_shift_left/]: s#340 [#162 /\u200B_shift_right/]: s#341 [#162 /\u200B_template_args_end/]: r#83 [#163 '!=']: r#84 [#163 '%']: s#337 [#163 '&&']: r#84 [#163 ')']: r#84 [#163 '*']: s#335 [#163 '+']: r#84 [#163 ',']: r#84 [#163 '-']: r#84 [#163 '/']: s#336 [#163 ':']: r#84 [#163 ';']: r#84 [#163 '==']: r#84 [#163 '@']: r#84 [#163 ']']: r#84 [#163 '{']: r#84 [#163 '||']: r#84 [#163 /\u200B_greater_than/]: r#84 [#163 /\u200B_greater_than_equal/]: r#84 [#163 /\u200B_less_than/]: r#84 [#163 /\u200B_less_than_equal/]: r#84 [#163 /\u200B_template_args_end/]: r#84 [#164 '!=']: r#85 [#164 '%']: r#85 [#164 '&&']: r#85 [#164 '&']: r#85 [#164 ')']: r#85 [#164 '*']: r#85 [#164 '+']: r#85 [#164 ',']: r#85 [#164 '-']: r#85 [#164 '/']: r#85 [#164 ':']: r#85 [#164 ';']: r#85 [#164 '==']: r#85 [#164 '@']: r#85 [#164 ']']: r#85 [#164 '^']: r#85 [#164 '{']: r#85 [#164 '|']: r#85 [#164 '||']: r#85 [#164 /\u200B_greater_than/]: r#85 [#164 /\u200B_greater_than_equal/]: r#85 [#164 /\u200B_less_than/]: r#85 [#164 /\u200B_less_than_equal/]: r#85 [#164 /\u200B_shift_left/]: r#85 [#164 /\u200B_shift_right/]: r#85 [#164 /\u200B_template_args_end/]: r#85 [#165 '!']: s#166 [#165 '&']: s#169 [#165 '(']: s#179 [#165 '*']: s#168 [#165 '-']: s#165 [#165 'false']: s#185 [#165 'true']: s#184 [#165 '~']: s#167 [#165 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#165 /0[fh]/]: s#189 [#165 /0[iu]?/]: s#186 [#165 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#165 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#165 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#165 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#165 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#165 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#165 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#165 /[1-9][0-9]*[fh]/]: s#190 [#165 /[1-9][0-9]*[iu]?/]: s#187 [#166 '!']: s#166 [#166 '&']: s#169 [#166 '(']: s#179 [#166 '*']: s#168 [#166 '-']: s#165 [#166 'false']: s#185 [#166 'true']: s#184 [#166 '~']: s#167 [#166 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#166 /0[fh]/]: s#189 [#166 /0[iu]?/]: s#186 [#166 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#166 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#166 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#166 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#166 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#166 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#166 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#166 /[1-9][0-9]*[fh]/]: s#190 [#166 /[1-9][0-9]*[iu]?/]: s#187 [#167 '!']: s#166 [#167 '&']: s#169 [#167 '(']: s#179 [#167 '*']: s#168 [#167 '-']: s#165 [#167 'false']: s#185 [#167 'true']: s#184 [#167 '~']: s#167 [#167 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#167 /0[fh]/]: s#189 [#167 /0[iu]?/]: s#186 [#167 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#167 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#167 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#167 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#167 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#167 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#167 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#167 /[1-9][0-9]*[fh]/]: s#190 [#167 /[1-9][0-9]*[iu]?/]: s#187 [#168 '!']: s#166 [#168 '&']: s#169 [#168 '(']: s#179 [#168 '*']: s#168 [#168 '-']: s#165 [#168 'false']: s#185 [#168 'true']: s#184 [#168 '~']: s#167 [#168 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#168 /0[fh]/]: s#189 [#168 /0[iu]?/]: s#186 [#168 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#168 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#168 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#168 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#168 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#168 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#168 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#168 /[1-9][0-9]*[fh]/]: s#190 [#168 /[1-9][0-9]*[iu]?/]: s#187 [#169 '!']: s#166 [#169 '&']: s#169 [#169 '(']: s#179 [#169 '*']: s#168 [#169 '-']: s#165 [#169 'false']: s#185 [#169 'true']: s#184 [#169 '~']: s#167 [#169 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#169 /0[fh]/]: s#189 [#169 /0[iu]?/]: s#186 [#169 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#169 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#169 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#169 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#169 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#169 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#169 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#169 /[1-9][0-9]*[fh]/]: s#190 [#169 /[1-9][0-9]*[iu]?/]: s#187 [#170 '.']: s#328 [#170 '[']: s#327 [#171 '!=']: r#86 [#171 '%']: r#86 [#171 '&&']: r#86 [#171 '&']: r#86 [#171 '(']: s#149 [#171 ')']: r#86 [#171 '*']: r#86 [#171 '+']: r#86 [#171 ',']: r#86 [#171 '-']: r#86 [#171 '.']: r#86 [#171 '/']: r#86 [#171 ':']: r#86 [#171 ';']: r#86 [#171 '==']: r#86 [#171 '@']: r#86 [#171 '[']: r#86 [#171 ']']: r#86 [#171 '^']: r#86 [#171 '{']: r#86 [#171 '|']: r#86 [#171 '||']: r#86 [#171 /\u200B_greater_than/]: r#86 [#171 /\u200B_greater_than_equal/]: r#86 [#171 /\u200B_less_than/]: r#86 [#171 /\u200B_less_than_equal/]: r#86 [#171 /\u200B_shift_left/]: r#86 [#171 /\u200B_shift_right/]: r#86 [#171 /\u200B_template_args_end/]: r#86 [#172 '!=']: r#87 [#172 '%']: r#87 [#172 '&&']: r#87 [#172 '&']: r#87 [#172 ')']: r#87 [#172 '*']: r#87 [#172 '+']: r#87 [#172 ',']: r#87 [#172 '-']: r#87 [#172 '.']: r#87 [#172 '/']: r#87 [#172 ':']: r#87 [#172 ';']: r#87 [#172 '==']: r#87 [#172 '@']: r#87 [#172 '[']: r#87 [#172 ']']: r#87 [#172 '^']: r#87 [#172 '{']: r#87 [#172 '|']: r#87 [#172 '||']: r#87 [#172 /\u200B_greater_than/]: r#87 [#172 /\u200B_greater_than_equal/]: r#87 [#172 /\u200B_less_than/]: r#87 [#172 /\u200B_less_than_equal/]: r#87 [#172 /\u200B_shift_left/]: r#87 [#172 /\u200B_shift_right/]: r#87 [#172 /\u200B_template_args_end/]: r#87 [#173 '!=']: r#88 [#173 '%']: r#88 [#173 '&&']: r#88 [#173 '&']: r#88 [#173 ')']: r#88 [#173 '*']: r#88 [#173 '+']: r#88 [#173 ',']: r#88 [#173 '-']: r#88 [#173 '.']: r#88 [#173 '/']: r#88 [#173 ':']: r#88 [#173 ';']: r#88 [#173 '==']: r#88 [#173 '@']: r#88 [#173 '[']: r#88 [#173 ']']: r#88 [#173 '^']: r#88 [#173 '{']: r#88 [#173 '|']: r#88 [#173 '||']: r#88 [#173 /\u200B_greater_than/]: r#88 [#173 /\u200B_greater_than_equal/]: r#88 [#173 /\u200B_less_than/]: r#88 [#173 /\u200B_less_than_equal/]: r#88 [#173 /\u200B_shift_left/]: r#88 [#173 /\u200B_shift_right/]: r#88 [#173 /\u200B_template_args_end/]: r#88 [#174 '!=']: r#89 [#174 '%']: r#89 [#174 '&&']: r#89 [#174 '&']: r#89 [#174 ')']: r#89 [#174 '*']: r#89 [#174 '+']: r#89 [#174 ',']: r#89 [#174 '-']: r#89 [#174 '.']: r#89 [#174 '/']: r#89 [#174 ':']: r#89 [#174 ';']: r#89 [#174 '==']: r#89 [#174 '@']: r#89 [#174 '[']: r#89 [#174 ']']: r#89 [#174 '^']: r#89 [#174 '{']: r#89 [#174 '|']: r#89 [#174 '||']: r#89 [#174 /\u200B_greater_than/]: r#89 [#174 /\u200B_greater_than_equal/]: r#89 [#174 /\u200B_less_than/]: r#89 [#174 /\u200B_less_than_equal/]: r#89 [#174 /\u200B_shift_left/]: r#89 [#174 /\u200B_shift_right/]: r#89 [#174 /\u200B_template_args_end/]: r#89 [#175 /\u200B_disambiguate_template/]: s#120 [#176 '!=']: r#90 [#176 '%']: r#90 [#176 '&&']: r#90 [#176 '&']: r#90 [#176 ')']: r#90 [#176 '*']: r#90 [#176 '+']: r#90 [#176 ',']: r#90 [#176 '-']: r#90 [#176 '.']: r#90 [#176 '/']: r#90 [#176 ':']: r#90 [#176 ';']: r#90 [#176 '==']: r#90 [#176 '@']: r#90 [#176 '[']: r#90 [#176 ']']: r#90 [#176 '^']: r#90 [#176 '{']: r#90 [#176 '|']: r#90 [#176 '||']: r#90 [#176 /\u200B_greater_than/]: r#90 [#176 /\u200B_greater_than_equal/]: r#90 [#176 /\u200B_less_than/]: r#90 [#176 /\u200B_less_than_equal/]: r#90 [#176 /\u200B_shift_left/]: r#90 [#176 /\u200B_shift_right/]: r#90 [#176 /\u200B_template_args_end/]: r#90 [#177 '!=']: r#91 [#177 '%']: r#91 [#177 '&&']: r#91 [#177 '&']: r#91 [#177 ')']: r#91 [#177 '*']: r#91 [#177 '+']: r#91 [#177 ',']: r#91 [#177 '-']: r#91 [#177 '.']: r#91 [#177 '/']: r#91 [#177 ':']: r#91 [#177 ';']: r#91 [#177 '==']: r#91 [#177 '@']: r#91 [#177 '[']: r#91 [#177 ']']: r#91 [#177 '^']: r#91 [#177 '{']: r#91 [#177 '|']: r#91 [#177 '||']: r#91 [#177 /\u200B_greater_than/]: r#91 [#177 /\u200B_greater_than_equal/]: r#91 [#177 /\u200B_less_than/]: r#91 [#177 /\u200B_less_than_equal/]: r#91 [#177 /\u200B_shift_left/]: r#91 [#177 /\u200B_shift_right/]: r#91 [#177 /\u200B_template_args_end/]: r#91 [#178 '!=']: r#92 [#178 '%']: r#92 [#178 '&&']: r#92 [#178 '&']: r#92 [#178 ')']: r#92 [#178 '*']: r#92 [#178 '+']: r#92 [#178 ',']: r#92 [#178 '-']: r#92 [#178 '.']: r#92 [#178 '/']: r#92 [#178 ':']: r#92 [#178 ';']: r#92 [#178 '==']: r#92 [#178 '@']: r#92 [#178 '[']: r#92 [#178 ']']: r#92 [#178 '^']: r#92 [#178 '{']: r#92 [#178 '|']: r#92 [#178 '||']: r#92 [#178 /\u200B_greater_than/]: r#92 [#178 /\u200B_greater_than_equal/]: r#92 [#178 /\u200B_less_than/]: r#92 [#178 /\u200B_less_than_equal/]: r#92 [#178 /\u200B_shift_left/]: r#92 [#178 /\u200B_shift_right/]: r#92 [#178 /\u200B_template_args_end/]: r#92 [#179 '!']: s#166 [#179 '&']: s#169 [#179 '(']: s#179 [#179 '*']: s#168 [#179 '-']: s#165 [#179 'false']: s#185 [#179 'true']: s#184 [#179 '~']: s#167 [#179 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#179 /0[fh]/]: s#189 [#179 /0[iu]?/]: s#186 [#179 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#179 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#179 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#179 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#179 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#179 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#179 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#179 /[1-9][0-9]*[fh]/]: s#190 [#179 /[1-9][0-9]*[iu]?/]: s#187 [#180 '!=']: r#93 [#180 '%']: r#93 [#180 '&&']: r#93 [#180 '&']: r#93 [#180 ')']: r#93 [#180 '*']: r#93 [#180 '+']: r#93 [#180 ',']: r#93 [#180 '-']: r#93 [#180 '.']: r#93 [#180 '/']: r#93 [#180 ':']: r#93 [#180 ';']: r#93 [#180 '==']: r#93 [#180 '@']: r#93 [#180 '[']: r#93 [#180 ']']: r#93 [#180 '^']: r#93 [#180 '{']: r#93 [#180 '|']: r#93 [#180 '||']: r#93 [#180 /\u200B_greater_than/]: r#93 [#180 /\u200B_greater_than_equal/]: r#93 [#180 /\u200B_less_than/]: r#93 [#180 /\u200B_less_than_equal/]: r#93 [#180 /\u200B_shift_left/]: r#93 [#180 /\u200B_shift_right/]: r#93 [#180 /\u200B_template_args_end/]: r#93 [#181 '!=']: r#94 [#181 '%']: r#94 [#181 '&&']: r#94 [#181 '&']: r#94 [#181 ')']: r#94 [#181 '*']: r#94 [#181 '+']: r#94 [#181 ',']: r#94 [#181 '-']: r#94 [#181 '.']: r#94 [#181 '/']: r#94 [#181 ':']: r#94 [#181 ';']: r#94 [#181 '==']: r#94 [#181 '@']: r#94 [#181 '[']: r#94 [#181 ']']: r#94 [#181 '^']: r#94 [#181 '{']: r#94 [#181 '|']: r#94 [#181 '||']: r#94 [#181 /\u200B_greater_than/]: r#94 [#181 /\u200B_greater_than_equal/]: r#94 [#181 /\u200B_less_than/]: r#94 [#181 /\u200B_less_than_equal/]: r#94 [#181 /\u200B_shift_left/]: r#94 [#181 /\u200B_shift_right/]: r#94 [#181 /\u200B_template_args_end/]: r#94 [#182 '!=']: r#95 [#182 '%']: r#95 [#182 '&&']: r#95 [#182 '&']: r#95 [#182 ')']: r#95 [#182 '*']: r#95 [#182 '+']: r#95 [#182 ',']: r#95 [#182 '-']: r#95 [#182 '.']: r#95 [#182 '/']: r#95 [#182 ':']: r#95 [#182 ';']: r#95 [#182 '==']: r#95 [#182 '@']: r#95 [#182 '[']: r#95 [#182 ']']: r#95 [#182 '^']: r#95 [#182 '{']: r#95 [#182 '|']: r#95 [#182 '||']: r#95 [#182 /\u200B_greater_than/]: r#95 [#182 /\u200B_greater_than_equal/]: r#95 [#182 /\u200B_less_than/]: r#95 [#182 /\u200B_less_than_equal/]: r#95 [#182 /\u200B_shift_left/]: r#95 [#182 /\u200B_shift_right/]: r#95 [#182 /\u200B_template_args_end/]: r#95 [#183 '!=']: r#96 [#183 '%']: r#96 [#183 '&&']: r#96 [#183 '&']: r#96 [#183 ')']: r#96 [#183 '*']: r#96 [#183 '+']: r#96 [#183 ',']: r#96 [#183 '-']: r#96 [#183 '.']: r#96 [#183 '/']: r#96 [#183 ':']: r#96 [#183 ';']: r#96 [#183 '==']: r#96 [#183 '@']: r#96 [#183 '[']: r#96 [#183 ']']: r#96 [#183 '^']: r#96 [#183 '{']: r#96 [#183 '|']: r#96 [#183 '||']: r#96 [#183 /\u200B_greater_than/]: r#96 [#183 /\u200B_greater_than_equal/]: r#96 [#183 /\u200B_less_than/]: r#96 [#183 /\u200B_less_than_equal/]: r#96 [#183 /\u200B_shift_left/]: r#96 [#183 /\u200B_shift_right/]: r#96 [#183 /\u200B_template_args_end/]: r#96 [#184 '!=']: r#97 [#184 '%']: r#97 [#184 '&&']: r#97 [#184 '&']: r#97 [#184 ')']: r#97 [#184 '*']: r#97 [#184 '+']: r#97 [#184 ',']: r#97 [#184 '-']: r#97 [#184 '.']: r#97 [#184 '/']: r#97 [#184 ':']: r#97 [#184 ';']: r#97 [#184 '==']: r#97 [#184 '@']: r#97 [#184 '[']: r#97 [#184 ']']: r#97 [#184 '^']: r#97 [#184 '{']: r#97 [#184 '|']: r#97 [#184 '||']: r#97 [#184 /\u200B_greater_than/]: r#97 [#184 /\u200B_greater_than_equal/]: r#97 [#184 /\u200B_less_than/]: r#97 [#184 /\u200B_less_than_equal/]: r#97 [#184 /\u200B_shift_left/]: r#97 [#184 /\u200B_shift_right/]: r#97 [#184 /\u200B_template_args_end/]: r#97 [#185 '!=']: r#98 [#185 '%']: r#98 [#185 '&&']: r#98 [#185 '&']: r#98 [#185 ')']: r#98 [#185 '*']: r#98 [#185 '+']: r#98 [#185 ',']: r#98 [#185 '-']: r#98 [#185 '.']: r#98 [#185 '/']: r#98 [#185 ':']: r#98 [#185 ';']: r#98 [#185 '==']: r#98 [#185 '@']: r#98 [#185 '[']: r#98 [#185 ']']: r#98 [#185 '^']: r#98 [#185 '{']: r#98 [#185 '|']: r#98 [#185 '||']: r#98 [#185 /\u200B_greater_than/]: r#98 [#185 /\u200B_greater_than_equal/]: r#98 [#185 /\u200B_less_than/]: r#98 [#185 /\u200B_less_than_equal/]: r#98 [#185 /\u200B_shift_left/]: r#98 [#185 /\u200B_shift_right/]: r#98 [#185 /\u200B_template_args_end/]: r#98 [#186 '!=']: r#99 [#186 '%']: r#99 [#186 '&&']: r#99 [#186 '&']: r#99 [#186 ')']: r#99 [#186 '*']: r#99 [#186 '+']: r#99 [#186 ',']: r#99 [#186 '-']: r#99 [#186 '.']: r#99 [#186 '/']: r#99 [#186 ':']: r#99 [#186 ';']: r#99 [#186 '==']: r#99 [#186 '@']: r#99 [#186 '[']: r#99 [#186 ']']: r#99 [#186 '^']: r#99 [#186 '{']: r#99 [#186 '|']: r#99 [#186 '||']: r#99 [#186 /\u200B_greater_than/]: r#99 [#186 /\u200B_greater_than_equal/]: r#99 [#186 /\u200B_less_than/]: r#99 [#186 /\u200B_less_than_equal/]: r#99 [#186 /\u200B_shift_left/]: r#99 [#186 /\u200B_shift_right/]: r#99 [#186 /\u200B_template_args_end/]: r#99 [#187 '!=']: r#100 [#187 '%']: r#100 [#187 '&&']: r#100 [#187 '&']: r#100 [#187 ')']: r#100 [#187 '*']: r#100 [#187 '+']: r#100 [#187 ',']: r#100 [#187 '-']: r#100 [#187 '.']: r#100 [#187 '/']: r#100 [#187 ':']: r#100 [#187 ';']: r#100 [#187 '==']: r#100 [#187 '@']: r#100 [#187 '[']: r#100 [#187 ']']: r#100 [#187 '^']: r#100 [#187 '{']: r#100 [#187 '|']: r#100 [#187 '||']: r#100 [#187 /\u200B_greater_than/]: r#100 [#187 /\u200B_greater_than_equal/]: r#100 [#187 /\u200B_less_than/]: r#100 [#187 /\u200B_less_than_equal/]: r#100 [#187 /\u200B_shift_left/]: r#100 [#187 /\u200B_shift_right/]: r#100 [#187 /\u200B_template_args_end/]: r#100 [#188 '!=']: r#101 [#188 '%']: r#101 [#188 '&&']: r#101 [#188 '&']: r#101 [#188 ')']: r#101 [#188 '*']: r#101 [#188 '+']: r#101 [#188 ',']: r#101 [#188 '-']: r#101 [#188 '.']: r#101 [#188 '/']: r#101 [#188 ':']: r#101 [#188 ';']: r#101 [#188 '==']: r#101 [#188 '@']: r#101 [#188 '[']: r#101 [#188 ']']: r#101 [#188 '^']: r#101 [#188 '{']: r#101 [#188 '|']: r#101 [#188 '||']: r#101 [#188 /\u200B_greater_than/]: r#101 [#188 /\u200B_greater_than_equal/]: r#101 [#188 /\u200B_less_than/]: r#101 [#188 /\u200B_less_than_equal/]: r#101 [#188 /\u200B_shift_left/]: r#101 [#188 /\u200B_shift_right/]: r#101 [#188 /\u200B_template_args_end/]: r#101 [#189 '!=']: r#102 [#189 '%']: r#102 [#189 '&&']: r#102 [#189 '&']: r#102 [#189 ')']: r#102 [#189 '*']: r#102 [#189 '+']: r#102 [#189 ',']: r#102 [#189 '-']: r#102 [#189 '.']: r#102 [#189 '/']: r#102 [#189 ':']: r#102 [#189 ';']: r#102 [#189 '==']: r#102 [#189 '@']: r#102 [#189 '[']: r#102 [#189 ']']: r#102 [#189 '^']: r#102 [#189 '{']: r#102 [#189 '|']: r#102 [#189 '||']: r#102 [#189 /\u200B_greater_than/]: r#102 [#189 /\u200B_greater_than_equal/]: r#102 [#189 /\u200B_less_than/]: r#102 [#189 /\u200B_less_than_equal/]: r#102 [#189 /\u200B_shift_left/]: r#102 [#189 /\u200B_shift_right/]: r#102 [#189 /\u200B_template_args_end/]: r#102 [#190 '!=']: r#103 [#190 '%']: r#103 [#190 '&&']: r#103 [#190 '&']: r#103 [#190 ')']: r#103 [#190 '*']: r#103 [#190 '+']: r#103 [#190 ',']: r#103 [#190 '-']: r#103 [#190 '.']: r#103 [#190 '/']: r#103 [#190 ':']: r#103 [#190 ';']: r#103 [#190 '==']: r#103 [#190 '@']: r#103 [#190 '[']: r#103 [#190 ']']: r#103 [#190 '^']: r#103 [#190 '{']: r#103 [#190 '|']: r#103 [#190 '||']: r#103 [#190 /\u200B_greater_than/]: r#103 [#190 /\u200B_greater_than_equal/]: r#103 [#190 /\u200B_less_than/]: r#103 [#190 /\u200B_less_than_equal/]: r#103 [#190 /\u200B_shift_left/]: r#103 [#190 /\u200B_shift_right/]: r#103 [#190 /\u200B_template_args_end/]: r#103 [#191 '!=']: r#104 [#191 '%']: r#104 [#191 '&&']: r#104 [#191 '&']: r#104 [#191 ')']: r#104 [#191 '*']: r#104 [#191 '+']: r#104 [#191 ',']: r#104 [#191 '-']: r#104 [#191 '.']: r#104 [#191 '/']: r#104 [#191 ':']: r#104 [#191 ';']: r#104 [#191 '==']: r#104 [#191 '@']: r#104 [#191 '[']: r#104 [#191 ']']: r#104 [#191 '^']: r#104 [#191 '{']: r#104 [#191 '|']: r#104 [#191 '||']: r#104 [#191 /\u200B_greater_than/]: r#104 [#191 /\u200B_greater_than_equal/]: r#104 [#191 /\u200B_less_than/]: r#104 [#191 /\u200B_less_than_equal/]: r#104 [#191 /\u200B_shift_left/]: r#104 [#191 /\u200B_shift_right/]: r#104 [#191 /\u200B_template_args_end/]: r#104 [#192 '!=']: r#105 [#192 '%']: r#105 [#192 '&&']: r#105 [#192 '&']: r#105 [#192 ')']: r#105 [#192 '*']: r#105 [#192 '+']: r#105 [#192 ',']: r#105 [#192 '-']: r#105 [#192 '.']: r#105 [#192 '/']: r#105 [#192 ':']: r#105 [#192 ';']: r#105 [#192 '==']: r#105 [#192 '@']: r#105 [#192 '[']: r#105 [#192 ']']: r#105 [#192 '^']: r#105 [#192 '{']: r#105 [#192 '|']: r#105 [#192 '||']: r#105 [#192 /\u200B_greater_than/]: r#105 [#192 /\u200B_greater_than_equal/]: r#105 [#192 /\u200B_less_than/]: r#105 [#192 /\u200B_less_than_equal/]: r#105 [#192 /\u200B_shift_left/]: r#105 [#192 /\u200B_shift_right/]: r#105 [#192 /\u200B_template_args_end/]: r#105 [#193 '!=']: r#106 [#193 '%']: r#106 [#193 '&&']: r#106 [#193 '&']: r#106 [#193 ')']: r#106 [#193 '*']: r#106 [#193 '+']: r#106 [#193 ',']: r#106 [#193 '-']: r#106 [#193 '.']: r#106 [#193 '/']: r#106 [#193 ':']: r#106 [#193 ';']: r#106 [#193 '==']: r#106 [#193 '@']: r#106 [#193 '[']: r#106 [#193 ']']: r#106 [#193 '^']: r#106 [#193 '{']: r#106 [#193 '|']: r#106 [#193 '||']: r#106 [#193 /\u200B_greater_than/]: r#106 [#193 /\u200B_greater_than_equal/]: r#106 [#193 /\u200B_less_than/]: r#106 [#193 /\u200B_less_than_equal/]: r#106 [#193 /\u200B_shift_left/]: r#106 [#193 /\u200B_shift_right/]: r#106 [#193 /\u200B_template_args_end/]: r#106 [#194 '!=']: r#107 [#194 '%']: r#107 [#194 '&&']: r#107 [#194 '&']: r#107 [#194 ')']: r#107 [#194 '*']: r#107 [#194 '+']: r#107 [#194 ',']: r#107 [#194 '-']: r#107 [#194 '.']: r#107 [#194 '/']: r#107 [#194 ':']: r#107 [#194 ';']: r#107 [#194 '==']: r#107 [#194 '@']: r#107 [#194 '[']: r#107 [#194 ']']: r#107 [#194 '^']: r#107 [#194 '{']: r#107 [#194 '|']: r#107 [#194 '||']: r#107 [#194 /\u200B_greater_than/]: r#107 [#194 /\u200B_greater_than_equal/]: r#107 [#194 /\u200B_less_than/]: r#107 [#194 /\u200B_less_than_equal/]: r#107 [#194 /\u200B_shift_left/]: r#107 [#194 /\u200B_shift_right/]: r#107 [#194 /\u200B_template_args_end/]: r#107 [#195 '!=']: r#108 [#195 '%']: r#108 [#195 '&&']: r#108 [#195 '&']: r#108 [#195 ')']: r#108 [#195 '*']: r#108 [#195 '+']: r#108 [#195 ',']: r#108 [#195 '-']: r#108 [#195 '.']: r#108 [#195 '/']: r#108 [#195 ':']: r#108 [#195 ';']: r#108 [#195 '==']: r#108 [#195 '@']: r#108 [#195 '[']: r#108 [#195 ']']: r#108 [#195 '^']: r#108 [#195 '{']: r#108 [#195 '|']: r#108 [#195 '||']: r#108 [#195 /\u200B_greater_than/]: r#108 [#195 /\u200B_greater_than_equal/]: r#108 [#195 /\u200B_less_than/]: r#108 [#195 /\u200B_less_than_equal/]: r#108 [#195 /\u200B_shift_left/]: r#108 [#195 /\u200B_shift_right/]: r#108 [#195 /\u200B_template_args_end/]: r#108 [#196 '!=']: r#109 [#196 '%']: r#109 [#196 '&&']: r#109 [#196 '&']: r#109 [#196 ')']: r#109 [#196 '*']: r#109 [#196 '+']: r#109 [#196 ',']: r#109 [#196 '-']: r#109 [#196 '.']: r#109 [#196 '/']: r#109 [#196 ':']: r#109 [#196 ';']: r#109 [#196 '==']: r#109 [#196 '@']: r#109 [#196 '[']: r#109 [#196 ']']: r#109 [#196 '^']: r#109 [#196 '{']: r#109 [#196 '|']: r#109 [#196 '||']: r#109 [#196 /\u200B_greater_than/]: r#109 [#196 /\u200B_greater_than_equal/]: r#109 [#196 /\u200B_less_than/]: r#109 [#196 /\u200B_less_than_equal/]: r#109 [#196 /\u200B_shift_left/]: r#109 [#196 /\u200B_shift_right/]: r#109 [#196 /\u200B_template_args_end/]: r#109 [#197 ',']: s#321 [#198 ',']: s#319 [#199 ',']: s#317 [#200 ',']: s#315 [#201 ')']: r#110 [#201 ',']: r#110 [#202 ',']: s#313 [#203 ',']: s#311 [#204 ',']: s#309 [#205 ')']: r#111 [#205 ',']: r#111 [#206 ',']: s#307 [#207 ',']: s#305 [#208 ',']: s#303 [#209 '{']: r#112 [#210 '&']: s#300 [#210 '(']: s#301 [#210 '*']: s#299 [#210 ';']: s#258 [#210 '@']: s#42 [#210 '_']: s#296 [#210 'break']: s#283 [#210 'const']: s#282 [#210 'const_assert']: s#288 [#210 'continue']: s#284 [#210 'discard']: s#269 [#210 'let']: s#281 [#210 'return']: s#273 [#210 'var']: s#91 [#210 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#211 '@']: s#42 [#212 ',']: s#248 [#213 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#244 [#214 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#113 [#215 '@']: s#42 [#216 ';']: r#114 [#217 /\u200B_disambiguate_template/]: s#120 [#218 ';']: r#115 [#219 '!']: s#166 [#219 '&']: s#169 [#219 '(']: s#179 [#219 '*']: s#168 [#219 '-']: s#165 [#219 'false']: s#185 [#219 'true']: s#184 [#219 '~']: s#167 [#219 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#219 /0[fh]/]: s#189 [#219 /0[iu]?/]: s#186 [#219 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#219 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#219 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#219 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#219 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#219 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#219 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#219 /[1-9][0-9]*[fh]/]: s#190 [#219 /[1-9][0-9]*[iu]?/]: s#187 [#220 ';']: r#116 [#221 ';']: r#117 [#221 '=']: r#117 [#222 ';']: r#118 [#223 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#224 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#119 [#225 '!']: s#166 [#225 '&']: s#169 [#225 '(']: s#179 [#225 '*']: s#168 [#225 '-']: s#165 [#225 'false']: s#185 [#225 'true']: s#184 [#225 '~']: s#167 [#225 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#225 /0[fh]/]: s#189 [#225 /0[iu]?/]: s#186 [#225 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#225 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#225 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#225 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#225 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#225 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#225 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#225 /[1-9][0-9]*[fh]/]: s#190 [#225 /[1-9][0-9]*[iu]?/]: s#187 [#226 '!']: r#120 [#226 '&']: r#120 [#226 '(']: r#120 [#226 '*']: r#120 [#226 '-']: r#120 [#226 'false']: r#120 [#226 'true']: r#120 [#226 '~']: r#120 [#226 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#120 [#226 /0[fh]/]: r#120 [#226 /0[iu]?/]: r#120 [#226 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#120 [#226 /0[xX][0-9a-fA-F]+[iu]?/]: r#120 [#226 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#120 [#226 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#120 [#226 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#120 [#226 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#120 [#226 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#120 [#226 /[1-9][0-9]*[fh]/]: r#120 [#226 /[1-9][0-9]*[iu]?/]: r#120 [#227 ',']: s#232 [#228 ')']: r#121 [#228 ',']: r#121 [#228 '.']: s#230 [#229 ')']: r#122 [#229 ',']: r#122 [#229 '.']: r#122 [#230 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#229 [#231 ')']: s#486 [#232 ')']: r#123 [#233 /\u200B_template_args_end/]: s#485 [#234 ',']: s#483 [#235 '&&']: r#76 [#235 ',']: r#124 [#235 '||']: r#75 [#235 /\u200B_template_args_end/]: r#124 [#236 '||']: s#479 [#237 '&&']: s#478 [#238 ',']: r#125 [#238 /\u200B_template_args_end/]: r#125 [#239 ';']: r#126 [#239 '=']: r#126 [#240 ';']: r#127 [#241 /\u200B_template_args_start/]: s#226 [#242 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#128 [#243 ':']: s#476 [#244 '!=']: r#129 [#244 '%']: r#129 [#244 '%=']: r#129 [#244 '&&']: r#129 [#244 '&']: r#129 [#244 '&=']: r#129 [#244 ')']: r#129 [#244 '*']: r#129 [#244 '*=']: r#129 [#244 '+']: r#129 [#244 '++']: r#129 [#244 '+=']: r#129 [#244 ',']: r#129 [#244 '-']: r#129 [#244 '--']: r#129 [#244 '-=']: r#129 [#244 '.']: r#129 [#244 '/']: r#129 [#244 '/=']: r#129 [#244 ':']: r#129 [#244 ';']: r#129 [#244 '=']: r#129 [#244 '==']: r#129 [#244 '@']: r#129 [#244 '[']: r#129 [#244 ']']: r#129 [#244 '^']: r#129 [#244 '^=']: r#129 [#244 '{']: r#129 [#244 '|']: r#129 [#244 '|=']: r#129 [#244 '||']: r#129 [#244 /\u200B_greater_than/]: r#129 [#244 /\u200B_greater_than_equal/]: r#129 [#244 /\u200B_less_than/]: r#129 [#244 /\u200B_less_than_equal/]: r#129 [#244 /\u200B_shift_left/]: r#129 [#244 /\u200B_shift_left_assign/]: r#129 [#244 /\u200B_shift_right/]: r#129 [#244 /\u200B_shift_right_assign/]: r#129 [#244 /\u200B_template_args_end/]: r#129 [#245 ',']: s#475 [#246 ',']: r#130 [#246 '}']: r#130 [#247 ',']: s#248 [#248 '@']: s#42 [#249 ')']: s#471 [#250 ')']: r#131 [#251 ',']: s#470 [#252 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#253 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#132 [#254 '@']: s#42 [#255 '}']: s#464 [#256 '}']: r#133 [#257 '&']: s#300 [#257 '(']: s#301 [#257 '*']: s#299 [#257 ';']: s#258 [#257 '@']: s#42 [#257 '_']: s#296 [#257 'break']: s#283 [#257 'const']: s#282 [#257 'const_assert']: s#288 [#257 'continue']: s#284 [#257 'discard']: s#269 [#257 'let']: s#281 [#257 'return']: s#273 [#257 'var']: s#91 [#257 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#258 '&']: r#134 [#258 '(']: r#134 [#258 '*']: r#134 [#258 ';']: r#134 [#258 '@']: r#134 [#258 '_']: r#134 [#258 'break']: r#134 [#258 'const']: r#134 [#258 'const_assert']: r#134 [#258 'continue']: r#134 [#258 'continuing']: r#134 [#258 'discard']: r#134 [#258 'for']: r#134 [#258 'if']: r#134 [#258 'let']: r#134 [#258 'loop']: r#134 [#258 'return']: r#134 [#258 'switch']: r#134 [#258 'var']: r#134 [#258 'while']: r#134 [#258 '{']: r#134 [#258 '}']: r#134 [#258 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#134 [#259 ';']: s#462 [#260 '&']: r#135 [#260 '(']: r#135 [#260 '*']: r#135 [#260 ';']: r#135 [#260 '@']: r#135 [#260 '_']: r#135 [#260 'break']: r#135 [#260 'const']: r#135 [#260 'const_assert']: r#135 [#260 'continue']: r#135 [#260 'continuing']: r#135 [#260 'discard']: r#135 [#260 'for']: r#135 [#260 'if']: r#135 [#260 'let']: r#135 [#260 'loop']: r#135 [#260 'return']: r#135 [#260 'switch']: r#135 [#260 'var']: r#135 [#260 'while']: r#135 [#260 '{']: r#135 [#260 '}']: r#135 [#260 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#135 [#261 '&']: r#136 [#261 '(']: r#136 [#261 '*']: r#136 [#261 ';']: r#136 [#261 '@']: r#136 [#261 '_']: r#136 [#261 'break']: r#136 [#261 'const']: r#136 [#261 'const_assert']: r#136 [#261 'continue']: r#136 [#261 'continuing']: r#136 [#261 'discard']: r#136 [#261 'for']: r#136 [#261 'if']: r#136 [#261 'let']: r#136 [#261 'loop']: r#136 [#261 'return']: r#136 [#261 'switch']: r#136 [#261 'var']: r#136 [#261 'while']: r#136 [#261 '{']: r#136 [#261 '}']: r#136 [#261 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#136 [#262 '&']: r#137 [#262 '(']: r#137 [#262 '*']: r#137 [#262 ';']: r#137 [#262 '@']: r#137 [#262 '_']: r#137 [#262 'break']: r#137 [#262 'const']: r#137 [#262 'const_assert']: r#137 [#262 'continue']: r#137 [#262 'continuing']: r#137 [#262 'discard']: r#137 [#262 'for']: r#137 [#262 'if']: r#137 [#262 'let']: r#137 [#262 'loop']: r#137 [#262 'return']: r#137 [#262 'switch']: r#137 [#262 'var']: r#137 [#262 'while']: r#137 [#262 '{']: r#137 [#262 '}']: r#137 [#262 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#137 [#263 '&']: r#138 [#263 '(']: r#138 [#263 '*']: r#138 [#263 ';']: r#138 [#263 '@']: r#138 [#263 '_']: r#138 [#263 'break']: r#138 [#263 'const']: r#138 [#263 'const_assert']: r#138 [#263 'continue']: r#138 [#263 'continuing']: r#138 [#263 'discard']: r#138 [#263 'for']: r#138 [#263 'if']: r#138 [#263 'let']: r#138 [#263 'loop']: r#138 [#263 'return']: r#138 [#263 'switch']: r#138 [#263 'var']: r#138 [#263 'while']: r#138 [#263 '{']: r#138 [#263 '}']: r#138 [#263 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#138 [#264 '&']: r#139 [#264 '(']: r#139 [#264 '*']: r#139 [#264 ';']: r#139 [#264 '@']: r#139 [#264 '_']: r#139 [#264 'break']: r#139 [#264 'const']: r#139 [#264 'const_assert']: r#139 [#264 'continue']: r#139 [#264 'continuing']: r#139 [#264 'discard']: r#139 [#264 'for']: r#139 [#264 'if']: r#139 [#264 'let']: r#139 [#264 'loop']: r#139 [#264 'return']: r#139 [#264 'switch']: r#139 [#264 'var']: r#139 [#264 'while']: r#139 [#264 '{']: r#139 [#264 '}']: r#139 [#264 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#139 [#265 ';']: s#461 [#266 ';']: s#460 [#267 ';']: s#459 [#268 ';']: s#458 [#269 ';']: s#457 [#270 ';']: s#456 [#271 '&']: r#140 [#271 '(']: r#140 [#271 '*']: r#140 [#271 ';']: r#140 [#271 '@']: r#140 [#271 '_']: r#140 [#271 'break']: r#140 [#271 'const']: r#140 [#271 'const_assert']: r#140 [#271 'continue']: r#140 [#271 'continuing']: r#140 [#271 'discard']: r#140 [#271 'for']: r#140 [#271 'if']: r#140 [#271 'let']: r#140 [#271 'loop']: r#140 [#271 'return']: r#140 [#271 'switch']: r#140 [#271 'var']: r#140 [#271 'while']: r#140 [#271 '{']: r#140 [#271 '}']: r#140 [#271 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#140 [#272 ';']: s#455 [#273 '!']: s#166 [#273 '&']: s#169 [#273 '(']: s#179 [#273 '*']: s#168 [#273 '-']: s#165 [#273 'false']: s#185 [#273 'true']: s#184 [#273 '~']: s#167 [#273 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#273 /0[fh]/]: s#189 [#273 /0[iu]?/]: s#186 [#273 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#273 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#273 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#273 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#273 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#273 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#273 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#273 /[1-9][0-9]*[fh]/]: s#190 [#273 /[1-9][0-9]*[iu]?/]: s#187 [#274 'if']: s#452 [#275 'switch']: s#450 [#276 'loop']: s#449 [#277 'for']: s#448 [#278 'while']: s#447 [#279 '(']: s#149 [#280 ';']: r#141 [#280 '=']: s#445 [#281 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#282 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#283 ';']: r#142 [#284 ';']: r#143 [#285 ')']: r#144 [#285 ';']: r#144 [#286 ')']: r#145 [#286 ';']: r#145 [#287 ')']: r#146 [#287 ';']: r#146 [#288 ';']: r#147 [#289 'if']: r#148 [#290 'switch']: r#149 [#291 'loop']: r#150 [#292 'for']: r#151 [#293 'while']: r#152 [#294 /\u200B_disambiguate_template/]: s#120 [#295 '%=']: s#434 [#295 '&=']: s#435 [#295 '*=']: s#432 [#295 '++']: s#426 [#295 '+=']: s#430 [#295 '--']: s#427 [#295 '-=']: s#431 [#295 '/=']: s#433 [#295 '=']: s#428 [#295 '^=']: s#437 [#295 '|=']: s#436 [#295 /\u200B_shift_left_assign/]: s#441 [#295 /\u200B_shift_right_assign/]: s#440 [#296 '=']: s#424 [#297 '@']: s#42 [#298 '.']: s#328 [#298 '[']: s#327 [#299 '&']: s#300 [#299 '(']: s#301 [#299 '*']: s#299 [#299 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#300 '&']: s#300 [#300 '(']: s#301 [#300 '*']: s#299 [#300 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#301 '&']: s#300 [#301 '(']: s#301 [#301 '*']: s#299 [#301 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#302 ')']: s#412 [#303 '!']: s#166 [#303 '&']: s#169 [#303 '(']: s#179 [#303 ')']: r#153 [#303 '*']: s#168 [#303 '-']: s#165 [#303 'false']: s#185 [#303 'true']: s#184 [#303 '~']: s#167 [#303 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#303 /0[fh]/]: s#189 [#303 /0[iu]?/]: s#186 [#303 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#303 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#303 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#303 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#303 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#303 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#303 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#303 /[1-9][0-9]*[fh]/]: s#190 [#303 /[1-9][0-9]*[iu]?/]: s#187 [#304 ')']: s#410 [#305 ')']: r#154 [#306 ')']: s#409 [#307 ')']: r#155 [#308 ')']: s#408 [#309 ')']: r#156 [#309 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#407 [#310 ')']: s#405 [#311 ')']: r#157 [#312 ')']: s#404 [#313 ')']: r#158 [#314 ')']: s#403 [#315 ')']: r#159 [#316 ')']: s#402 [#317 ')']: r#160 [#318 ')']: s#401 [#319 ')']: r#161 [#320 ')']: s#400 [#321 ')']: r#162 [#322 ')']: s#399 [#323 /\u200B_template_args_start/]: s#226 [#324 '!=']: r#163 [#324 '%']: r#163 [#324 '&&']: r#163 [#324 '&']: r#163 [#324 ')']: r#163 [#324 '*']: r#163 [#324 '+']: r#163 [#324 ',']: r#163 [#324 '-']: r#163 [#324 '.']: r#163 [#324 '/']: r#163 [#324 ':']: r#163 [#324 ';']: r#163 [#324 '==']: r#163 [#324 '@']: r#163 [#324 '[']: r#163 [#324 ']']: r#163 [#324 '^']: r#163 [#324 '{']: r#163 [#324 '|']: r#163 [#324 '||']: r#163 [#324 /\u200B_greater_than/]: r#163 [#324 /\u200B_greater_than_equal/]: r#163 [#324 /\u200B_less_than/]: r#163 [#324 /\u200B_less_than_equal/]: r#163 [#324 /\u200B_shift_left/]: r#163 [#324 /\u200B_shift_right/]: r#163 [#324 /\u200B_template_args_end/]: r#163 [#325 '!=']: r#164 [#325 '%']: r#164 [#325 '&&']: r#164 [#325 '&']: r#164 [#325 ')']: r#164 [#325 '*']: r#164 [#325 '+']: r#164 [#325 ',']: r#164 [#325 '-']: r#164 [#325 '/']: r#164 [#325 ':']: r#164 [#325 ';']: r#164 [#325 '==']: r#164 [#325 '@']: r#164 [#325 ']']: r#164 [#325 '^']: r#164 [#325 '{']: r#164 [#325 '|']: r#164 [#325 '||']: r#164 [#325 /\u200B_greater_than/]: r#164 [#325 /\u200B_greater_than_equal/]: r#164 [#325 /\u200B_less_than/]: r#164 [#325 /\u200B_less_than_equal/]: r#164 [#325 /\u200B_shift_left/]: r#164 [#325 /\u200B_shift_right/]: r#164 [#325 /\u200B_template_args_end/]: r#164 [#326 '!=']: r#165 [#326 '%']: r#165 [#326 '&&']: r#165 [#326 '&']: r#165 [#326 ')']: r#165 [#326 '*']: r#165 [#326 '+']: r#165 [#326 ',']: r#165 [#326 '-']: r#165 [#326 '/']: r#165 [#326 ':']: r#165 [#326 ';']: r#165 [#326 '==']: r#165 [#326 '@']: r#165 [#326 ']']: r#165 [#326 '^']: r#165 [#326 '{']: r#165 [#326 '|']: r#165 [#326 '||']: r#165 [#326 /\u200B_greater_than/]: r#165 [#326 /\u200B_greater_than_equal/]: r#165 [#326 /\u200B_less_than/]: r#165 [#326 /\u200B_less_than_equal/]: r#165 [#326 /\u200B_shift_left/]: r#165 [#326 /\u200B_shift_right/]: r#165 [#326 /\u200B_template_args_end/]: r#165 [#327 '!']: s#166 [#327 '&']: s#169 [#327 '(']: s#179 [#327 '*']: s#168 [#327 '-']: s#165 [#327 'false']: s#185 [#327 'true']: s#184 [#327 '~']: s#167 [#327 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#327 /0[fh]/]: s#189 [#327 /0[iu]?/]: s#186 [#327 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#327 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#327 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#327 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#327 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#327 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#327 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#327 /[1-9][0-9]*[fh]/]: s#190 [#327 /[1-9][0-9]*[iu]?/]: s#187 [#328 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#244 [#328 /[rgba]/]: s#388 [#328 /[rgba][rgba]/]: s#389 [#328 /[rgba][rgba][rgba]/]: s#390 [#328 /[rgba][rgba][rgba][rgba]/]: s#391 [#328 /[xyzw]/]: s#392 [#328 /[xyzw][xyzw]/]: s#393 [#328 /[xyzw][xyzw][xyzw]/]: s#394 [#328 /[xyzw][xyzw][xyzw][xyzw]/]: s#395 [#329 '!=']: r#166 [#329 '%']: r#166 [#329 '&&']: r#166 [#329 '&']: r#166 [#329 ')']: r#166 [#329 '*']: r#166 [#329 '+']: r#166 [#329 ',']: r#166 [#329 '-']: r#166 [#329 '/']: r#166 [#329 ':']: r#166 [#329 ';']: r#166 [#329 '==']: r#166 [#329 '@']: r#166 [#329 ']']: r#166 [#329 '^']: r#166 [#329 '{']: r#166 [#329 '|']: r#166 [#329 '||']: r#166 [#329 /\u200B_greater_than/]: r#166 [#329 /\u200B_greater_than_equal/]: r#166 [#329 /\u200B_less_than/]: r#166 [#329 /\u200B_less_than_equal/]: r#166 [#329 /\u200B_shift_left/]: r#166 [#329 /\u200B_shift_right/]: r#166 [#329 /\u200B_template_args_end/]: r#166 [#330 '!=']: r#167 [#330 '%']: r#167 [#330 '&&']: r#167 [#330 '&']: r#167 [#330 ')']: r#167 [#330 '*']: r#167 [#330 '+']: r#167 [#330 ',']: r#167 [#330 '-']: r#167 [#330 '/']: r#167 [#330 ':']: r#167 [#330 ';']: r#167 [#330 '==']: r#167 [#330 '@']: r#167 [#330 ']']: r#167 [#330 '^']: r#167 [#330 '{']: r#167 [#330 '|']: r#167 [#330 '||']: r#167 [#330 /\u200B_greater_than/]: r#167 [#330 /\u200B_greater_than_equal/]: r#167 [#330 /\u200B_less_than/]: r#167 [#330 /\u200B_less_than_equal/]: r#167 [#330 /\u200B_shift_left/]: r#167 [#330 /\u200B_shift_right/]: r#167 [#330 /\u200B_template_args_end/]: r#167 [#331 '!=']: r#168 [#331 '%']: r#168 [#331 '&&']: r#168 [#331 '&']: r#168 [#331 ')']: r#168 [#331 '*']: r#168 [#331 '+']: r#168 [#331 ',']: r#168 [#331 '-']: r#168 [#331 '/']: r#168 [#331 ':']: r#168 [#331 ';']: r#168 [#331 '==']: r#168 [#331 '@']: r#168 [#331 ']']: r#168 [#331 '^']: r#168 [#331 '{']: r#168 [#331 '|']: r#168 [#331 '||']: r#168 [#331 /\u200B_greater_than/]: r#168 [#331 /\u200B_greater_than_equal/]: r#168 [#331 /\u200B_less_than/]: r#168 [#331 /\u200B_less_than_equal/]: r#168 [#331 /\u200B_shift_left/]: r#168 [#331 /\u200B_shift_right/]: r#168 [#331 /\u200B_template_args_end/]: r#168 [#332 '!=']: r#169 [#332 '%']: r#169 [#332 '&&']: r#169 [#332 '&']: r#169 [#332 ')']: r#169 [#332 '*']: r#169 [#332 '+']: r#169 [#332 ',']: r#169 [#332 '-']: r#169 [#332 '/']: r#169 [#332 ':']: r#169 [#332 ';']: r#169 [#332 '==']: r#169 [#332 '@']: r#169 [#332 ']']: r#169 [#332 '^']: r#169 [#332 '{']: r#169 [#332 '|']: r#169 [#332 '||']: r#169 [#332 /\u200B_greater_than/]: r#169 [#332 /\u200B_greater_than_equal/]: r#169 [#332 /\u200B_less_than/]: r#169 [#332 /\u200B_less_than_equal/]: r#169 [#332 /\u200B_shift_left/]: r#169 [#332 /\u200B_shift_right/]: r#169 [#332 /\u200B_template_args_end/]: r#169 [#333 '!=']: r#170 [#333 '%']: r#170 [#333 '&&']: r#170 [#333 '&']: r#170 [#333 ')']: r#170 [#333 '*']: r#170 [#333 '+']: r#170 [#333 ',']: r#170 [#333 '-']: r#170 [#333 '/']: r#170 [#333 ':']: r#170 [#333 ';']: r#170 [#333 '==']: r#170 [#333 '@']: r#170 [#333 ']']: r#170 [#333 '^']: r#170 [#333 '{']: r#170 [#333 '|']: r#170 [#333 '||']: r#170 [#333 /\u200B_greater_than/]: r#170 [#333 /\u200B_greater_than_equal/]: r#170 [#333 /\u200B_less_than/]: r#170 [#333 /\u200B_less_than_equal/]: r#170 [#333 /\u200B_shift_left/]: r#170 [#333 /\u200B_shift_right/]: r#170 [#333 /\u200B_template_args_end/]: r#170 [#334 '!']: s#166 [#334 '&']: s#169 [#334 '(']: s#179 [#334 '*']: s#168 [#334 '-']: s#165 [#334 'false']: s#185 [#334 'true']: s#184 [#334 '~']: s#167 [#334 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#334 /0[fh]/]: s#189 [#334 /0[iu]?/]: s#186 [#334 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#334 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#334 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#334 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#334 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#334 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#334 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#334 /[1-9][0-9]*[fh]/]: s#190 [#334 /[1-9][0-9]*[iu]?/]: s#187 [#335 '!']: r#171 [#335 '&']: r#171 [#335 '(']: r#171 [#335 '*']: r#171 [#335 '-']: r#171 [#335 'false']: r#171 [#335 'true']: r#171 [#335 '~']: r#171 [#335 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#171 [#335 /0[fh]/]: r#171 [#335 /0[iu]?/]: r#171 [#335 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#171 [#335 /0[xX][0-9a-fA-F]+[iu]?/]: r#171 [#335 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#171 [#335 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#171 [#335 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#171 [#335 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#171 [#335 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#171 [#335 /[1-9][0-9]*[fh]/]: r#171 [#335 /[1-9][0-9]*[iu]?/]: r#171 [#336 '!']: r#172 [#336 '&']: r#172 [#336 '(']: r#172 [#336 '*']: r#172 [#336 '-']: r#172 [#336 'false']: r#172 [#336 'true']: r#172 [#336 '~']: r#172 [#336 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#172 [#336 /0[fh]/]: r#172 [#336 /0[iu]?/]: r#172 [#336 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#172 [#336 /0[xX][0-9a-fA-F]+[iu]?/]: r#172 [#336 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#172 [#336 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#172 [#336 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#172 [#336 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#172 [#336 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#172 [#336 /[1-9][0-9]*[fh]/]: r#172 [#336 /[1-9][0-9]*[iu]?/]: r#172 [#337 '!']: r#173 [#337 '&']: r#173 [#337 '(']: r#173 [#337 '*']: r#173 [#337 '-']: r#173 [#337 'false']: r#173 [#337 'true']: r#173 [#337 '~']: r#173 [#337 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#173 [#337 /0[fh]/]: r#173 [#337 /0[iu]?/]: r#173 [#337 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#173 [#337 /0[xX][0-9a-fA-F]+[iu]?/]: r#173 [#337 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#173 [#337 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#173 [#337 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#173 [#337 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#173 [#337 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#173 [#337 /[1-9][0-9]*[fh]/]: r#173 [#337 /[1-9][0-9]*[iu]?/]: r#173 [#338 '!']: s#166 [#338 '&']: s#169 [#338 '(']: s#179 [#338 '*']: s#168 [#338 '-']: s#165 [#338 'false']: s#185 [#338 'true']: s#184 [#338 '~']: s#167 [#338 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#338 /0[fh]/]: s#189 [#338 /0[iu]?/]: s#186 [#338 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#338 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#338 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#338 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#338 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#338 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#338 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#338 /[1-9][0-9]*[fh]/]: s#190 [#338 /[1-9][0-9]*[iu]?/]: s#187 [#339 '!']: s#166 [#339 '&']: s#169 [#339 '(']: s#179 [#339 '*']: s#168 [#339 '-']: s#165 [#339 'false']: s#185 [#339 'true']: s#184 [#339 '~']: s#167 [#339 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#339 /0[fh]/]: s#189 [#339 /0[iu]?/]: s#186 [#339 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#339 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#339 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#339 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#339 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#339 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#339 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#339 /[1-9][0-9]*[fh]/]: s#190 [#339 /[1-9][0-9]*[iu]?/]: s#187 [#340 '!']: r#174 [#340 '&']: r#174 [#340 '(']: r#174 [#340 '*']: r#174 [#340 '-']: r#174 [#340 'false']: r#174 [#340 'true']: r#174 [#340 '~']: r#174 [#340 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#174 [#340 /0[fh]/]: r#174 [#340 /0[iu]?/]: r#174 [#340 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#174 [#340 /0[xX][0-9a-fA-F]+[iu]?/]: r#174 [#340 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#174 [#340 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#174 [#340 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#174 [#340 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#174 [#340 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#174 [#340 /[1-9][0-9]*[fh]/]: r#174 [#340 /[1-9][0-9]*[iu]?/]: r#174 [#341 '!']: r#175 [#341 '&']: r#175 [#341 '(']: r#175 [#341 '*']: r#175 [#341 '-']: r#175 [#341 'false']: r#175 [#341 'true']: r#175 [#341 '~']: r#175 [#341 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#175 [#341 /0[fh]/]: r#175 [#341 /0[iu]?/]: r#175 [#341 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#175 [#341 /0[xX][0-9a-fA-F]+[iu]?/]: r#175 [#341 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#175 [#341 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#175 [#341 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#175 [#341 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#175 [#341 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#175 [#341 /[1-9][0-9]*[fh]/]: r#175 [#341 /[1-9][0-9]*[iu]?/]: r#175 [#342 '!']: s#166 [#342 '&']: s#169 [#342 '(']: s#179 [#342 '*']: s#168 [#342 '-']: s#165 [#342 'false']: s#185 [#342 'true']: s#184 [#342 '~']: s#167 [#342 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#342 /0[fh]/]: s#189 [#342 /0[iu]?/]: s#186 [#342 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#342 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#342 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#342 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#342 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#342 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#342 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#342 /[1-9][0-9]*[fh]/]: s#190 [#342 /[1-9][0-9]*[iu]?/]: s#187 [#343 '!']: r#176 [#343 '&']: r#176 [#343 '(']: r#176 [#343 '*']: r#176 [#343 '-']: r#176 [#343 'false']: r#176 [#343 'true']: r#176 [#343 '~']: r#176 [#343 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#176 [#343 /0[fh]/]: r#176 [#343 /0[iu]?/]: r#176 [#343 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#176 [#343 /0[xX][0-9a-fA-F]+[iu]?/]: r#176 [#343 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#176 [#343 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#176 [#343 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#176 [#343 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#176 [#343 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#176 [#343 /[1-9][0-9]*[fh]/]: r#176 [#343 /[1-9][0-9]*[iu]?/]: r#176 [#344 '!']: r#177 [#344 '&']: r#177 [#344 '(']: r#177 [#344 '*']: r#177 [#344 '-']: r#177 [#344 'false']: r#177 [#344 'true']: r#177 [#344 '~']: r#177 [#344 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#177 [#344 /0[fh]/]: r#177 [#344 /0[iu]?/]: r#177 [#344 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#177 [#344 /0[xX][0-9a-fA-F]+[iu]?/]: r#177 [#344 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#177 [#344 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#177 [#344 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#177 [#344 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#177 [#344 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#177 [#344 /[1-9][0-9]*[fh]/]: r#177 [#344 /[1-9][0-9]*[iu]?/]: r#177 [#345 '!']: s#166 [#345 '&']: s#169 [#345 '(']: s#179 [#345 '*']: s#168 [#345 '-']: s#165 [#345 'false']: s#185 [#345 'true']: s#184 [#345 '~']: s#167 [#345 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#345 /0[fh]/]: s#189 [#345 /0[iu]?/]: s#186 [#345 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#345 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#345 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#345 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#345 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#345 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#345 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#345 /[1-9][0-9]*[fh]/]: s#190 [#345 /[1-9][0-9]*[iu]?/]: s#187 [#346 '!']: s#166 [#346 '&']: s#169 [#346 '(']: s#179 [#346 '*']: s#168 [#346 '-']: s#165 [#346 'false']: s#185 [#346 'true']: s#184 [#346 '~']: s#167 [#346 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#346 /0[fh]/]: s#189 [#346 /0[iu]?/]: s#186 [#346 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#346 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#346 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#346 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#346 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#346 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#346 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#346 /[1-9][0-9]*[fh]/]: s#190 [#346 /[1-9][0-9]*[iu]?/]: s#187 [#347 '!']: s#166 [#347 '&']: s#169 [#347 '(']: s#179 [#347 '*']: s#168 [#347 '-']: s#165 [#347 'false']: s#185 [#347 'true']: s#184 [#347 '~']: s#167 [#347 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#347 /0[fh]/]: s#189 [#347 /0[iu]?/]: s#186 [#347 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#347 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#347 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#347 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#347 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#347 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#347 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#347 /[1-9][0-9]*[fh]/]: s#190 [#347 /[1-9][0-9]*[iu]?/]: s#187 [#348 '!']: s#166 [#348 '&']: s#169 [#348 '(']: s#179 [#348 '*']: s#168 [#348 '-']: s#165 [#348 'false']: s#185 [#348 'true']: s#184 [#348 '~']: s#167 [#348 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#348 /0[fh]/]: s#189 [#348 /0[iu]?/]: s#186 [#348 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#348 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#348 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#348 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#348 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#348 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#348 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#348 /[1-9][0-9]*[fh]/]: s#190 [#348 /[1-9][0-9]*[iu]?/]: s#187 [#349 '!']: s#166 [#349 '&']: s#169 [#349 '(']: s#179 [#349 '*']: s#168 [#349 '-']: s#165 [#349 'false']: s#185 [#349 'true']: s#184 [#349 '~']: s#167 [#349 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#349 /0[fh]/]: s#189 [#349 /0[iu]?/]: s#186 [#349 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#349 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#349 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#349 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#349 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#349 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#349 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#349 /[1-9][0-9]*[fh]/]: s#190 [#349 /[1-9][0-9]*[iu]?/]: s#187 [#350 '!']: s#166 [#350 '&']: s#169 [#350 '(']: s#179 [#350 '*']: s#168 [#350 '-']: s#165 [#350 'false']: s#185 [#350 'true']: s#184 [#350 '~']: s#167 [#350 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#350 /0[fh]/]: s#189 [#350 /0[iu]?/]: s#186 [#350 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#350 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#350 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#350 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#350 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#350 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#350 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#350 /[1-9][0-9]*[fh]/]: s#190 [#350 /[1-9][0-9]*[iu]?/]: s#187 [#351 '!']: s#166 [#351 '&']: s#169 [#351 '(']: s#179 [#351 '*']: s#168 [#351 '-']: s#165 [#351 'false']: s#185 [#351 'true']: s#184 [#351 '~']: s#167 [#351 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#351 /0[fh]/]: s#189 [#351 /0[iu]?/]: s#186 [#351 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#351 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#351 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#351 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#351 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#351 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#351 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#351 /[1-9][0-9]*[fh]/]: s#190 [#351 /[1-9][0-9]*[iu]?/]: s#187 [#352 '!']: s#166 [#352 '&']: s#169 [#352 '(']: s#179 [#352 '*']: s#168 [#352 '-']: s#165 [#352 'false']: s#185 [#352 'true']: s#184 [#352 '~']: s#167 [#352 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#352 /0[fh]/]: s#189 [#352 /0[iu]?/]: s#186 [#352 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#352 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#352 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#352 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#352 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#352 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#352 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#352 /[1-9][0-9]*[fh]/]: s#190 [#352 /[1-9][0-9]*[iu]?/]: s#187 [#353 '!']: s#166 [#353 '&']: s#169 [#353 '(']: s#179 [#353 '*']: s#168 [#353 '-']: s#165 [#353 'false']: s#185 [#353 'true']: s#184 [#353 '~']: s#167 [#353 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#353 /0[fh]/]: s#189 [#353 /0[iu]?/]: s#186 [#353 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#353 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#353 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#353 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#353 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#353 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#353 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#353 /[1-9][0-9]*[fh]/]: s#190 [#353 /[1-9][0-9]*[iu]?/]: s#187 [#354 '!']: r#178 [#354 '&']: r#178 [#354 '(']: r#178 [#354 '*']: r#178 [#354 '-']: r#178 [#354 'false']: r#178 [#354 'true']: r#178 [#354 '~']: r#178 [#354 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#178 [#354 /0[fh]/]: r#178 [#354 /0[iu]?/]: r#178 [#354 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#178 [#354 /0[xX][0-9a-fA-F]+[iu]?/]: r#178 [#354 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#178 [#354 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#178 [#354 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#178 [#354 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#178 [#354 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#178 [#354 /[1-9][0-9]*[fh]/]: r#178 [#354 /[1-9][0-9]*[iu]?/]: r#178 [#355 '!']: r#179 [#355 '&']: r#179 [#355 '(']: r#179 [#355 '*']: r#179 [#355 '-']: r#179 [#355 'false']: r#179 [#355 'true']: r#179 [#355 '~']: r#179 [#355 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#179 [#355 /0[fh]/]: r#179 [#355 /0[iu]?/]: r#179 [#355 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#179 [#355 /0[xX][0-9a-fA-F]+[iu]?/]: r#179 [#355 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#179 [#355 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#179 [#355 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#179 [#355 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#179 [#355 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#179 [#355 /[1-9][0-9]*[fh]/]: r#179 [#355 /[1-9][0-9]*[iu]?/]: r#179 [#356 '!']: r#180 [#356 '&']: r#180 [#356 '(']: r#180 [#356 '*']: r#180 [#356 '-']: r#180 [#356 'false']: r#180 [#356 'true']: r#180 [#356 '~']: r#180 [#356 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#180 [#356 /0[fh]/]: r#180 [#356 /0[iu]?/]: r#180 [#356 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#180 [#356 /0[xX][0-9a-fA-F]+[iu]?/]: r#180 [#356 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#180 [#356 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#180 [#356 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#180 [#356 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#180 [#356 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#180 [#356 /[1-9][0-9]*[fh]/]: r#180 [#356 /[1-9][0-9]*[iu]?/]: r#180 [#357 '!']: r#181 [#357 '&']: r#181 [#357 '(']: r#181 [#357 '*']: r#181 [#357 '-']: r#181 [#357 'false']: r#181 [#357 'true']: r#181 [#357 '~']: r#181 [#357 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#181 [#357 /0[fh]/]: r#181 [#357 /0[iu]?/]: r#181 [#357 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#181 [#357 /0[xX][0-9a-fA-F]+[iu]?/]: r#181 [#357 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#181 [#357 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#181 [#357 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#181 [#357 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#181 [#357 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#181 [#357 /[1-9][0-9]*[fh]/]: r#181 [#357 /[1-9][0-9]*[iu]?/]: r#181 [#358 '!']: s#166 [#358 '&']: s#169 [#358 '(']: s#179 [#358 '*']: s#168 [#358 '-']: s#165 [#358 'false']: s#185 [#358 'true']: s#184 [#358 '~']: s#167 [#358 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#358 /0[fh]/]: s#189 [#358 /0[iu]?/]: s#186 [#358 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#358 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#358 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#358 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#358 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#358 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#358 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#358 /[1-9][0-9]*[fh]/]: s#190 [#358 /[1-9][0-9]*[iu]?/]: s#187 [#359 '!']: s#166 [#359 '&']: s#169 [#359 '(']: s#179 [#359 '*']: s#168 [#359 '-']: s#165 [#359 'false']: s#185 [#359 'true']: s#184 [#359 '~']: s#167 [#359 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#359 /0[fh]/]: s#189 [#359 /0[iu]?/]: s#186 [#359 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#359 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#359 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#359 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#359 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#359 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#359 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#359 /[1-9][0-9]*[fh]/]: s#190 [#359 /[1-9][0-9]*[iu]?/]: s#187 [#360 ',']: s#368 [#361 ')']: r#182 [#361 ',']: r#182 [#362 ',']: s#363 [#363 '!']: s#166 [#363 '&']: s#169 [#363 '(']: s#179 [#363 '*']: s#168 [#363 '-']: s#165 [#363 'false']: s#185 [#363 'true']: s#184 [#363 '~']: s#167 [#363 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#363 /0[fh]/]: s#189 [#363 /0[iu]?/]: s#186 [#363 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#363 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#363 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#363 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#363 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#363 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#363 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#363 /[1-9][0-9]*[fh]/]: s#190 [#363 /[1-9][0-9]*[iu]?/]: s#187 [#364 '!=']: r#183 [#364 '%']: r#183 [#364 '&&']: r#183 [#364 '&']: r#183 [#364 ')']: r#183 [#364 '*']: r#183 [#364 '+']: r#183 [#364 ',']: r#183 [#364 '-']: r#183 [#364 '.']: r#183 [#364 '/']: r#183 [#364 ':']: r#183 [#364 ';']: r#183 [#364 '==']: r#183 [#364 '@']: r#183 [#364 '[']: r#183 [#364 ']']: r#183 [#364 '^']: r#183 [#364 'fn']: r#183 [#364 'for']: r#183 [#364 'if']: r#183 [#364 'loop']: r#183 [#364 'override']: r#183 [#364 'switch']: r#183 [#364 'var']: r#183 [#364 'while']: r#183 [#364 '{']: r#183 [#364 '|']: r#183 [#364 '||']: r#183 [#364 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#183 [#364 /\u200B_greater_than/]: r#183 [#364 /\u200B_greater_than_equal/]: r#183 [#364 /\u200B_less_than/]: r#183 [#364 /\u200B_less_than_equal/]: r#183 [#364 /\u200B_shift_left/]: r#183 [#364 /\u200B_shift_right/]: r#183 [#364 /\u200B_template_args_end/]: r#183 [#365 ')']: r#184 [#365 ',']: r#184 [#366 ')']: r#185 [#366 ',']: r#185 [#367 ')']: r#186 [#368 ')']: r#187 [#369 ')']: r#188 [#369 ',']: r#188 [#369 ':']: r#188 [#369 ';']: r#188 [#369 '@']: r#188 [#369 ']']: r#188 [#369 '{']: r#188 [#369 '||']: r#189 [#370 '!=']: r#83 [#370 '%']: r#83 [#370 '&&']: r#83 [#370 ')']: r#83 [#370 '*']: r#83 [#370 '+']: r#83 [#370 ',']: r#83 [#370 '-']: r#83 [#370 '/']: r#83 [#370 ':']: r#83 [#370 ';']: r#83 [#370 '==']: r#83 [#370 '@']: r#83 [#370 ']']: r#83 [#370 '{']: r#83 [#370 '||']: r#83 [#370 /\u200B_greater_than/]: r#83 [#370 /\u200B_greater_than_equal/]: r#83 [#370 /\u200B_less_than/]: r#83 [#370 /\u200B_less_than_equal/]: r#83 [#370 /\u200B_shift_left/]: s#340 [#370 /\u200B_shift_right/]: s#341 [#370 /\u200B_template_args_end/]: r#83 [#371 '&&']: r#191 [#371 ')']: r#190 [#371 ',']: r#190 [#371 ':']: r#190 [#371 ';']: r#190 [#371 '@']: r#190 [#371 ']']: r#190 [#371 '{']: r#190 [#372 '&&']: r#192 [#372 ')']: r#192 [#372 ',']: r#192 [#372 ':']: r#192 [#372 ';']: r#192 [#372 '@']: r#192 [#372 ']']: r#192 [#372 '{']: r#192 [#372 '||']: r#192 [#372 /\u200B_template_args_end/]: r#192 [#373 '&&']: r#193 [#373 ')']: r#193 [#373 ',']: r#193 [#373 ':']: r#193 [#373 ';']: r#193 [#373 '@']: r#193 [#373 ']']: r#193 [#373 '{']: r#193 [#373 '||']: r#193 [#373 /\u200B_template_args_end/]: r#193 [#374 '&&']: r#194 [#374 ')']: r#194 [#374 ',']: r#194 [#374 ':']: r#194 [#374 ';']: r#194 [#374 '@']: r#194 [#374 ']']: r#194 [#374 '{']: r#194 [#374 '||']: r#194 [#374 /\u200B_template_args_end/]: r#194 [#375 '&&']: r#195 [#375 ')']: r#195 [#375 ',']: r#195 [#375 ':']: r#195 [#375 ';']: r#195 [#375 '@']: r#195 [#375 ']']: r#195 [#375 '{']: r#195 [#375 '||']: r#195 [#375 /\u200B_template_args_end/]: r#195 [#376 '&&']: r#196 [#376 ')']: r#196 [#376 ',']: r#196 [#376 ':']: r#196 [#376 ';']: r#196 [#376 '@']: r#196 [#376 ']']: r#196 [#376 '{']: r#196 [#376 '||']: r#196 [#376 /\u200B_template_args_end/]: r#196 [#377 '&&']: r#197 [#377 ')']: r#197 [#377 ',']: r#197 [#377 ':']: r#197 [#377 ';']: r#197 [#377 '@']: r#197 [#377 ']']: r#197 [#377 '{']: r#197 [#377 '||']: r#197 [#377 /\u200B_template_args_end/]: r#197 [#378 '&']: r#199 [#378 ')']: r#198 [#378 ',']: r#198 [#378 ':']: r#198 [#378 ';']: r#198 [#378 '@']: r#198 [#378 ']']: r#198 [#378 '{']: r#198 [#378 /\u200B_template_args_end/]: r#198 [#379 ')']: r#200 [#379 ',']: r#200 [#379 ':']: r#200 [#379 ';']: r#200 [#379 '@']: r#200 [#379 ']']: r#200 [#379 '{']: r#200 [#379 '|']: r#201 [#379 /\u200B_template_args_end/]: r#200 [#380 ')']: r#202 [#380 ',']: r#202 [#380 ':']: r#202 [#380 ';']: r#202 [#380 '@']: r#202 [#380 ']']: r#202 [#380 '^']: r#203 [#380 '{']: r#202 [#380 /\u200B_template_args_end/]: r#202 [#381 '!=']: r#204 [#381 '%']: s#337 [#381 '&&']: r#204 [#381 ')']: r#204 [#381 '*']: s#335 [#381 '+']: r#204 [#381 ',']: r#204 [#381 '-']: r#204 [#381 '/']: s#336 [#381 ':']: r#204 [#381 ';']: r#204 [#381 '==']: r#204 [#381 '@']: r#204 [#381 ']']: r#204 [#381 '{']: r#204 [#381 '||']: r#204 [#381 /\u200B_greater_than/]: r#204 [#381 /\u200B_greater_than_equal/]: r#204 [#381 /\u200B_less_than/]: r#204 [#381 /\u200B_less_than_equal/]: r#204 [#381 /\u200B_template_args_end/]: r#204 [#382 '!=']: r#83 [#382 '%']: r#83 [#382 '&&']: r#83 [#382 ')']: r#83 [#382 '*']: r#83 [#382 '+']: r#83 [#382 ',']: r#83 [#382 '-']: r#83 [#382 '/']: r#83 [#382 ':']: r#83 [#382 ';']: r#83 [#382 '==']: r#83 [#382 '@']: r#83 [#382 ']']: r#83 [#382 '{']: r#83 [#382 '||']: r#83 [#382 /\u200B_greater_than/]: r#83 [#382 /\u200B_greater_than_equal/]: r#83 [#382 /\u200B_less_than/]: r#83 [#382 /\u200B_less_than_equal/]: r#83 [#382 /\u200B_template_args_end/]: r#83 [#383 '!=']: r#205 [#383 '&&']: r#205 [#383 ')']: r#205 [#383 ',']: r#205 [#383 ':']: r#205 [#383 ';']: r#205 [#383 '==']: r#205 [#383 '@']: r#205 [#383 ']']: r#205 [#383 '{']: r#205 [#383 '||']: r#205 [#383 /\u200B_greater_than/]: r#205 [#383 /\u200B_greater_than_equal/]: r#205 [#383 /\u200B_less_than/]: r#205 [#383 /\u200B_less_than_equal/]: r#205 [#383 /\u200B_template_args_end/]: r#205 [#384 '!=']: r#206 [#384 '&&']: r#206 [#384 ')']: r#206 [#384 ',']: r#206 [#384 ':']: r#206 [#384 ';']: r#206 [#384 '==']: r#206 [#384 '@']: r#206 [#384 ']']: r#206 [#384 '{']: r#206 [#384 '||']: r#206 [#384 /\u200B_greater_than/]: r#206 [#384 /\u200B_greater_than_equal/]: r#206 [#384 /\u200B_less_than/]: r#206 [#384 /\u200B_less_than_equal/]: r#206 [#384 /\u200B_template_args_end/]: r#206 [#385 '!=']: r#207 [#385 '%']: r#207 [#385 '&&']: r#207 [#385 ')']: r#207 [#385 '*']: r#207 [#385 '+']: r#207 [#385 ',']: r#207 [#385 '-']: r#207 [#385 '/']: r#207 [#385 ':']: r#207 [#385 ';']: r#207 [#385 '==']: r#207 [#385 '@']: r#207 [#385 ']']: r#207 [#385 '{']: r#207 [#385 '||']: r#207 [#385 /\u200B_greater_than/]: r#207 [#385 /\u200B_greater_than_equal/]: r#207 [#385 /\u200B_less_than/]: r#207 [#385 /\u200B_less_than_equal/]: r#207 [#385 /\u200B_template_args_end/]: r#207 [#386 '.']: s#328 [#386 '[']: s#327 [#387 '.']: s#328 [#387 '[']: s#327 [#388 '!=']: r#208 [#388 '%']: r#208 [#388 '%=']: r#208 [#388 '&&']: r#208 [#388 '&']: r#208 [#388 '&=']: r#208 [#388 ')']: r#208 [#388 '*']: r#208 [#388 '*=']: r#208 [#388 '+']: r#208 [#388 '++']: r#208 [#388 '+=']: r#208 [#388 ',']: r#208 [#388 '-']: r#208 [#388 '--']: r#208 [#388 '-=']: r#208 [#388 '.']: r#208 [#388 '/']: r#208 [#388 '/=']: r#208 [#388 ':']: r#208 [#388 ';']: r#208 [#388 '=']: r#208 [#388 '==']: r#208 [#388 '@']: r#208 [#388 '[']: r#208 [#388 ']']: r#208 [#388 '^']: r#208 [#388 '^=']: r#208 [#388 '{']: r#208 [#388 '|']: r#208 [#388 '|=']: r#208 [#388 '||']: r#208 [#388 /\u200B_greater_than/]: r#208 [#388 /\u200B_greater_than_equal/]: r#208 [#388 /\u200B_less_than/]: r#208 [#388 /\u200B_less_than_equal/]: r#208 [#388 /\u200B_shift_left/]: r#208 [#388 /\u200B_shift_left_assign/]: r#208 [#388 /\u200B_shift_right/]: r#208 [#388 /\u200B_shift_right_assign/]: r#208 [#388 /\u200B_template_args_end/]: r#208 [#389 '!=']: r#209 [#389 '%']: r#209 [#389 '%=']: r#209 [#389 '&&']: r#209 [#389 '&']: r#209 [#389 '&=']: r#209 [#389 ')']: r#209 [#389 '*']: r#209 [#389 '*=']: r#209 [#389 '+']: r#209 [#389 '++']: r#209 [#389 '+=']: r#209 [#389 ',']: r#209 [#389 '-']: r#209 [#389 '--']: r#209 [#389 '-=']: r#209 [#389 '.']: r#209 [#389 '/']: r#209 [#389 '/=']: r#209 [#389 ':']: r#209 [#389 ';']: r#209 [#389 '=']: r#209 [#389 '==']: r#209 [#389 '@']: r#209 [#389 '[']: r#209 [#389 ']']: r#209 [#389 '^']: r#209 [#389 '^=']: r#209 [#389 '{']: r#209 [#389 '|']: r#209 [#389 '|=']: r#209 [#389 '||']: r#209 [#389 /\u200B_greater_than/]: r#209 [#389 /\u200B_greater_than_equal/]: r#209 [#389 /\u200B_less_than/]: r#209 [#389 /\u200B_less_than_equal/]: r#209 [#389 /\u200B_shift_left/]: r#209 [#389 /\u200B_shift_left_assign/]: r#209 [#389 /\u200B_shift_right/]: r#209 [#389 /\u200B_shift_right_assign/]: r#209 [#389 /\u200B_template_args_end/]: r#209 [#390 '!=']: r#210 [#390 '%']: r#210 [#390 '%=']: r#210 [#390 '&&']: r#210 [#390 '&']: r#210 [#390 '&=']: r#210 [#390 ')']: r#210 [#390 '*']: r#210 [#390 '*=']: r#210 [#390 '+']: r#210 [#390 '++']: r#210 [#390 '+=']: r#210 [#390 ',']: r#210 [#390 '-']: r#210 [#390 '--']: r#210 [#390 '-=']: r#210 [#390 '.']: r#210 [#390 '/']: r#210 [#390 '/=']: r#210 [#390 ':']: r#210 [#390 ';']: r#210 [#390 '=']: r#210 [#390 '==']: r#210 [#390 '@']: r#210 [#390 '[']: r#210 [#390 ']']: r#210 [#390 '^']: r#210 [#390 '^=']: r#210 [#390 '{']: r#210 [#390 '|']: r#210 [#390 '|=']: r#210 [#390 '||']: r#210 [#390 /\u200B_greater_than/]: r#210 [#390 /\u200B_greater_than_equal/]: r#210 [#390 /\u200B_less_than/]: r#210 [#390 /\u200B_less_than_equal/]: r#210 [#390 /\u200B_shift_left/]: r#210 [#390 /\u200B_shift_left_assign/]: r#210 [#390 /\u200B_shift_right/]: r#210 [#390 /\u200B_shift_right_assign/]: r#210 [#390 /\u200B_template_args_end/]: r#210 [#391 '!=']: r#211 [#391 '%']: r#211 [#391 '%=']: r#211 [#391 '&&']: r#211 [#391 '&']: r#211 [#391 '&=']: r#211 [#391 ')']: r#211 [#391 '*']: r#211 [#391 '*=']: r#211 [#391 '+']: r#211 [#391 '++']: r#211 [#391 '+=']: r#211 [#391 ',']: r#211 [#391 '-']: r#211 [#391 '--']: r#211 [#391 '-=']: r#211 [#391 '.']: r#211 [#391 '/']: r#211 [#391 '/=']: r#211 [#391 ':']: r#211 [#391 ';']: r#211 [#391 '=']: r#211 [#391 '==']: r#211 [#391 '@']: r#211 [#391 '[']: r#211 [#391 ']']: r#211 [#391 '^']: r#211 [#391 '^=']: r#211 [#391 '{']: r#211 [#391 '|']: r#211 [#391 '|=']: r#211 [#391 '||']: r#211 [#391 /\u200B_greater_than/]: r#211 [#391 /\u200B_greater_than_equal/]: r#211 [#391 /\u200B_less_than/]: r#211 [#391 /\u200B_less_than_equal/]: r#211 [#391 /\u200B_shift_left/]: r#211 [#391 /\u200B_shift_left_assign/]: r#211 [#391 /\u200B_shift_right/]: r#211 [#391 /\u200B_shift_right_assign/]: r#211 [#391 /\u200B_template_args_end/]: r#211 [#392 '!=']: r#212 [#392 '%']: r#212 [#392 '%=']: r#212 [#392 '&&']: r#212 [#392 '&']: r#212 [#392 '&=']: r#212 [#392 ')']: r#212 [#392 '*']: r#212 [#392 '*=']: r#212 [#392 '+']: r#212 [#392 '++']: r#212 [#392 '+=']: r#212 [#392 ',']: r#212 [#392 '-']: r#212 [#392 '--']: r#212 [#392 '-=']: r#212 [#392 '.']: r#212 [#392 '/']: r#212 [#392 '/=']: r#212 [#392 ':']: r#212 [#392 ';']: r#212 [#392 '=']: r#212 [#392 '==']: r#212 [#392 '@']: r#212 [#392 '[']: r#212 [#392 ']']: r#212 [#392 '^']: r#212 [#392 '^=']: r#212 [#392 '{']: r#212 [#392 '|']: r#212 [#392 '|=']: r#212 [#392 '||']: r#212 [#392 /\u200B_greater_than/]: r#212 [#392 /\u200B_greater_than_equal/]: r#212 [#392 /\u200B_less_than/]: r#212 [#392 /\u200B_less_than_equal/]: r#212 [#392 /\u200B_shift_left/]: r#212 [#392 /\u200B_shift_left_assign/]: r#212 [#392 /\u200B_shift_right/]: r#212 [#392 /\u200B_shift_right_assign/]: r#212 [#392 /\u200B_template_args_end/]: r#212 [#393 '!=']: r#213 [#393 '%']: r#213 [#393 '%=']: r#213 [#393 '&&']: r#213 [#393 '&']: r#213 [#393 '&=']: r#213 [#393 ')']: r#213 [#393 '*']: r#213 [#393 '*=']: r#213 [#393 '+']: r#213 [#393 '++']: r#213 [#393 '+=']: r#213 [#393 ',']: r#213 [#393 '-']: r#213 [#393 '--']: r#213 [#393 '-=']: r#213 [#393 '.']: r#213 [#393 '/']: r#213 [#393 '/=']: r#213 [#393 ':']: r#213 [#393 ';']: r#213 [#393 '=']: r#213 [#393 '==']: r#213 [#393 '@']: r#213 [#393 '[']: r#213 [#393 ']']: r#213 [#393 '^']: r#213 [#393 '^=']: r#213 [#393 '{']: r#213 [#393 '|']: r#213 [#393 '|=']: r#213 [#393 '||']: r#213 [#393 /\u200B_greater_than/]: r#213 [#393 /\u200B_greater_than_equal/]: r#213 [#393 /\u200B_less_than/]: r#213 [#393 /\u200B_less_than_equal/]: r#213 [#393 /\u200B_shift_left/]: r#213 [#393 /\u200B_shift_left_assign/]: r#213 [#393 /\u200B_shift_right/]: r#213 [#393 /\u200B_shift_right_assign/]: r#213 [#393 /\u200B_template_args_end/]: r#213 [#394 '!=']: r#214 [#394 '%']: r#214 [#394 '%=']: r#214 [#394 '&&']: r#214 [#394 '&']: r#214 [#394 '&=']: r#214 [#394 ')']: r#214 [#394 '*']: r#214 [#394 '*=']: r#214 [#394 '+']: r#214 [#394 '++']: r#214 [#394 '+=']: r#214 [#394 ',']: r#214 [#394 '-']: r#214 [#394 '--']: r#214 [#394 '-=']: r#214 [#394 '.']: r#214 [#394 '/']: r#214 [#394 '/=']: r#214 [#394 ':']: r#214 [#394 ';']: r#214 [#394 '=']: r#214 [#394 '==']: r#214 [#394 '@']: r#214 [#394 '[']: r#214 [#394 ']']: r#214 [#394 '^']: r#214 [#394 '^=']: r#214 [#394 '{']: r#214 [#394 '|']: r#214 [#394 '|=']: r#214 [#394 '||']: r#214 [#394 /\u200B_greater_than/]: r#214 [#394 /\u200B_greater_than_equal/]: r#214 [#394 /\u200B_less_than/]: r#214 [#394 /\u200B_less_than_equal/]: r#214 [#394 /\u200B_shift_left/]: r#214 [#394 /\u200B_shift_left_assign/]: r#214 [#394 /\u200B_shift_right/]: r#214 [#394 /\u200B_shift_right_assign/]: r#214 [#394 /\u200B_template_args_end/]: r#214 [#395 '!=']: r#215 [#395 '%']: r#215 [#395 '%=']: r#215 [#395 '&&']: r#215 [#395 '&']: r#215 [#395 '&=']: r#215 [#395 ')']: r#215 [#395 '*']: r#215 [#395 '*=']: r#215 [#395 '+']: r#215 [#395 '++']: r#215 [#395 '+=']: r#215 [#395 ',']: r#215 [#395 '-']: r#215 [#395 '--']: r#215 [#395 '-=']: r#215 [#395 '.']: r#215 [#395 '/']: r#215 [#395 '/=']: r#215 [#395 ':']: r#215 [#395 ';']: r#215 [#395 '=']: r#215 [#395 '==']: r#215 [#395 '@']: r#215 [#395 '[']: r#215 [#395 ']']: r#215 [#395 '^']: r#215 [#395 '^=']: r#215 [#395 '{']: r#215 [#395 '|']: r#215 [#395 '|=']: r#215 [#395 '||']: r#215 [#395 /\u200B_greater_than/]: r#215 [#395 /\u200B_greater_than_equal/]: r#215 [#395 /\u200B_less_than/]: r#215 [#395 /\u200B_less_than_equal/]: r#215 [#395 /\u200B_shift_left/]: r#215 [#395 /\u200B_shift_left_assign/]: r#215 [#395 /\u200B_shift_right/]: r#215 [#395 /\u200B_shift_right_assign/]: r#215 [#395 /\u200B_template_args_end/]: r#215 [#396 ']']: s#525 [#397 '!=']: r#216 [#397 '%']: r#216 [#397 '&&']: r#216 [#397 '&']: r#216 [#397 '(']: r#216 [#397 ')']: r#216 [#397 '*']: r#216 [#397 '+']: r#216 [#397 ',']: r#216 [#397 '-']: r#216 [#397 '.']: r#216 [#397 '/']: r#216 [#397 ':']: r#216 [#397 ';']: r#216 [#397 '==']: r#216 [#397 '@']: r#216 [#397 '[']: r#216 [#397 ']']: r#216 [#397 '^']: r#216 [#397 '{']: r#216 [#397 '|']: r#216 [#397 '||']: r#216 [#397 /\u200B_greater_than/]: r#216 [#397 /\u200B_greater_than_equal/]: r#216 [#397 /\u200B_less_than/]: r#216 [#397 /\u200B_less_than_equal/]: r#216 [#397 /\u200B_shift_left/]: r#216 [#397 /\u200B_shift_right/]: r#216 [#397 /\u200B_template_args_end/]: r#216 [#398 '!=']: r#217 [#398 '%']: r#217 [#398 '&&']: r#217 [#398 '&']: r#217 [#398 '(']: r#217 [#398 ')']: r#217 [#398 '*']: r#217 [#398 '+']: r#217 [#398 ',']: r#217 [#398 '-']: r#217 [#398 '.']: r#217 [#398 '/']: r#217 [#398 ':']: r#217 [#398 ';']: r#217 [#398 '=']: r#217 [#398 '==']: r#217 [#398 '@']: r#217 [#398 '[']: r#217 [#398 ']']: r#217 [#398 '^']: r#217 [#398 '{']: r#217 [#398 '|']: r#217 [#398 '||']: r#217 [#398 '}']: r#217 [#398 /\u200B_greater_than/]: r#217 [#398 /\u200B_greater_than_equal/]: r#217 [#398 /\u200B_less_than/]: r#217 [#398 /\u200B_less_than_equal/]: r#217 [#398 /\u200B_shift_left/]: r#217 [#398 /\u200B_shift_right/]: r#217 [#398 /\u200B_template_args_end/]: r#217 [#399 '!=']: r#218 [#399 '%']: r#218 [#399 '&&']: r#218 [#399 '&']: r#218 [#399 ')']: r#218 [#399 '*']: r#218 [#399 '+']: r#218 [#399 ',']: r#218 [#399 '-']: r#218 [#399 '.']: r#218 [#399 '/']: r#218 [#399 ':']: r#218 [#399 ';']: r#218 [#399 '==']: r#218 [#399 '@']: r#218 [#399 '[']: r#218 [#399 ']']: r#218 [#399 '^']: r#218 [#399 '{']: r#218 [#399 '|']: r#218 [#399 '||']: r#218 [#399 /\u200B_greater_than/]: r#218 [#399 /\u200B_greater_than_equal/]: r#218 [#399 /\u200B_less_than/]: r#218 [#399 /\u200B_less_than_equal/]: r#218 [#399 /\u200B_shift_left/]: r#218 [#399 /\u200B_shift_right/]: r#218 [#399 /\u200B_template_args_end/]: r#218 [#400 '@']: r#219 [#400 'fn']: r#219 [#400 'for']: r#219 [#400 'if']: r#219 [#400 'loop']: r#219 [#400 'override']: r#219 [#400 'switch']: r#219 [#400 'var']: r#219 [#400 'while']: r#219 [#400 '{']: r#219 [#400 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#219 [#401 '@']: r#220 [#401 'fn']: r#220 [#401 'for']: r#220 [#401 'if']: r#220 [#401 'loop']: r#220 [#401 'override']: r#220 [#401 'switch']: r#220 [#401 'var']: r#220 [#401 'while']: r#220 [#401 '{']: r#220 [#401 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#220 [#402 '@']: r#221 [#402 'fn']: r#221 [#402 'for']: r#221 [#402 'if']: r#221 [#402 'loop']: r#221 [#402 'override']: r#221 [#402 'switch']: r#221 [#402 'var']: r#221 [#402 'while']: r#221 [#402 '{']: r#221 [#402 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#221 [#403 '@']: r#222 [#403 'fn']: r#222 [#403 'for']: r#222 [#403 'if']: r#222 [#403 'loop']: r#222 [#403 'override']: r#222 [#403 'switch']: r#222 [#403 'var']: r#222 [#403 'while']: r#222 [#403 '{']: r#222 [#403 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#222 [#404 '@']: r#223 [#404 'fn']: r#223 [#404 'for']: r#223 [#404 'if']: r#223 [#404 'loop']: r#223 [#404 'override']: r#223 [#404 'switch']: r#223 [#404 'var']: r#223 [#404 'while']: r#223 [#404 '{']: r#223 [#404 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#223 [#405 '@']: r#224 [#405 'fn']: r#224 [#405 'for']: r#224 [#405 'if']: r#224 [#405 'loop']: r#224 [#405 'override']: r#224 [#405 'switch']: r#224 [#405 'var']: r#224 [#405 'while']: r#224 [#405 '{']: r#224 [#405 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#224 [#406 ',']: s#524 [#407 ')']: r#225 [#407 ',']: r#225 [#408 '@']: r#226 [#408 'fn']: r#226 [#408 'for']: r#226 [#408 'if']: r#226 [#408 'loop']: r#226 [#408 'override']: r#226 [#408 'switch']: r#226 [#408 'var']: r#226 [#408 'while']: r#226 [#408 '{']: r#226 [#408 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#226 [#409 '@']: r#227 [#409 'fn']: r#227 [#409 'for']: r#227 [#409 'if']: r#227 [#409 'loop']: r#227 [#409 'override']: r#227 [#409 'switch']: r#227 [#409 'var']: r#227 [#409 'while']: r#227 [#409 '{']: r#227 [#409 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#227 [#410 '@']: r#228 [#410 'fn']: r#228 [#410 'for']: r#228 [#410 'if']: r#228 [#410 'loop']: r#228 [#410 'override']: r#228 [#410 'switch']: r#228 [#410 'var']: r#228 [#410 'while']: r#228 [#410 '{']: r#228 [#410 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#228 [#411 ',']: s#522 [#412 '@']: r#229 [#412 'fn']: r#229 [#412 'for']: r#229 [#412 'if']: r#229 [#412 'loop']: r#229 [#412 'override']: r#229 [#412 'switch']: r#229 [#412 'var']: r#229 [#412 'while']: r#229 [#412 '{']: r#229 [#412 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#229 [#413 ')']: s#520 [#414 /\u200B_disambiguate_template/]: s#120 [#415 '%=']: r#230 [#415 '&=']: r#230 [#415 ')']: r#230 [#415 '*=']: r#230 [#415 '++']: r#230 [#415 '+=']: r#230 [#415 '--']: r#230 [#415 '-=']: r#230 [#415 '/=']: r#230 [#415 '=']: r#230 [#415 '^=']: r#230 [#415 '|=']: r#230 [#415 /\u200B_shift_left_assign/]: r#230 [#415 /\u200B_shift_right_assign/]: r#230 [#416 '%=']: r#231 [#416 '&=']: r#231 [#416 ')']: r#231 [#416 '*=']: r#231 [#416 '++']: r#231 [#416 '+=']: r#231 [#416 '--']: r#231 [#416 '-=']: r#231 [#416 '/=']: r#231 [#416 '=']: r#231 [#416 '^=']: r#231 [#416 '|=']: r#231 [#416 /\u200B_shift_left_assign/]: r#231 [#416 /\u200B_shift_right_assign/]: r#231 [#417 '%=']: r#232 [#417 '&=']: r#232 [#417 ')']: r#232 [#417 '*=']: r#232 [#417 '++']: r#232 [#417 '+=']: r#232 [#417 '--']: r#232 [#417 '-=']: r#232 [#417 '/=']: r#232 [#417 '=']: r#232 [#417 '^=']: r#232 [#417 '|=']: r#232 [#417 /\u200B_shift_left_assign/]: r#232 [#417 /\u200B_shift_right_assign/]: r#232 [#418 '%=']: r#233 [#418 '&=']: r#233 [#418 ')']: r#233 [#418 '*=']: r#233 [#418 '++']: r#233 [#418 '+=']: r#233 [#418 '--']: r#233 [#418 '-=']: r#233 [#418 '/=']: r#233 [#418 '=']: r#233 [#418 '^=']: r#233 [#418 '|=']: r#233 [#418 /\u200B_shift_left_assign/]: r#233 [#418 /\u200B_shift_right_assign/]: r#233 [#419 'if']: r#234 [#420 'switch']: r#235 [#421 'loop']: r#236 [#422 'for']: r#237 [#423 'while']: r#238 [#424 '!']: s#166 [#424 '&']: s#169 [#424 '(']: s#179 [#424 '*']: s#168 [#424 '-']: s#165 [#424 'false']: s#185 [#424 'true']: s#184 [#424 '~']: s#167 [#424 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#424 /0[fh]/]: s#189 [#424 /0[iu]?/]: s#186 [#424 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#424 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#424 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#424 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#424 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#424 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#424 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#424 /[1-9][0-9]*[fh]/]: s#190 [#424 /[1-9][0-9]*[iu]?/]: s#187 [#425 '!']: s#166 [#425 '&']: s#169 [#425 '(']: s#179 [#425 '*']: s#168 [#425 '-']: s#165 [#425 'false']: s#185 [#425 'true']: s#184 [#425 '~']: s#167 [#425 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#425 /0[fh]/]: s#189 [#425 /0[iu]?/]: s#186 [#425 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#425 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#425 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#425 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#425 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#425 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#425 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#425 /[1-9][0-9]*[fh]/]: s#190 [#425 /[1-9][0-9]*[iu]?/]: s#187 [#426 ')']: r#239 [#426 ';']: r#239 [#427 ')']: r#240 [#427 ';']: r#240 [#428 '!']: r#241 [#428 '&']: r#241 [#428 '(']: r#241 [#428 '*']: r#241 [#428 '-']: r#241 [#428 'false']: r#241 [#428 'true']: r#241 [#428 '~']: r#241 [#428 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#241 [#428 /0[fh]/]: r#241 [#428 /0[iu]?/]: r#241 [#428 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#241 [#428 /0[xX][0-9a-fA-F]+[iu]?/]: r#241 [#428 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#241 [#428 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#241 [#428 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#241 [#428 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#241 [#428 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#241 [#428 /[1-9][0-9]*[fh]/]: r#241 [#428 /[1-9][0-9]*[iu]?/]: r#241 [#429 '!']: r#242 [#429 '&']: r#242 [#429 '(']: r#242 [#429 '*']: r#242 [#429 '-']: r#242 [#429 'false']: r#242 [#429 'true']: r#242 [#429 '~']: r#242 [#429 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#242 [#429 /0[fh]/]: r#242 [#429 /0[iu]?/]: r#242 [#429 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#242 [#429 /0[xX][0-9a-fA-F]+[iu]?/]: r#242 [#429 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#242 [#429 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#242 [#429 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#242 [#429 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#242 [#429 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#242 [#429 /[1-9][0-9]*[fh]/]: r#242 [#429 /[1-9][0-9]*[iu]?/]: r#242 [#430 '!']: r#243 [#430 '&']: r#243 [#430 '(']: r#243 [#430 '*']: r#243 [#430 '-']: r#243 [#430 'false']: r#243 [#430 'true']: r#243 [#430 '~']: r#243 [#430 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#243 [#430 /0[fh]/]: r#243 [#430 /0[iu]?/]: r#243 [#430 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#243 [#430 /0[xX][0-9a-fA-F]+[iu]?/]: r#243 [#430 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#243 [#430 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#243 [#430 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#243 [#430 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#243 [#430 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#243 [#430 /[1-9][0-9]*[fh]/]: r#243 [#430 /[1-9][0-9]*[iu]?/]: r#243 [#431 '!']: r#244 [#431 '&']: r#244 [#431 '(']: r#244 [#431 '*']: r#244 [#431 '-']: r#244 [#431 'false']: r#244 [#431 'true']: r#244 [#431 '~']: r#244 [#431 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#244 [#431 /0[fh]/]: r#244 [#431 /0[iu]?/]: r#244 [#431 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#244 [#431 /0[xX][0-9a-fA-F]+[iu]?/]: r#244 [#431 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#244 [#431 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#244 [#431 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#244 [#431 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#244 [#431 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#244 [#431 /[1-9][0-9]*[fh]/]: r#244 [#431 /[1-9][0-9]*[iu]?/]: r#244 [#432 '!']: r#245 [#432 '&']: r#245 [#432 '(']: r#245 [#432 '*']: r#245 [#432 '-']: r#245 [#432 'false']: r#245 [#432 'true']: r#245 [#432 '~']: r#245 [#432 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#245 [#432 /0[fh]/]: r#245 [#432 /0[iu]?/]: r#245 [#432 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#245 [#432 /0[xX][0-9a-fA-F]+[iu]?/]: r#245 [#432 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#245 [#432 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#245 [#432 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#245 [#432 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#245 [#432 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#245 [#432 /[1-9][0-9]*[fh]/]: r#245 [#432 /[1-9][0-9]*[iu]?/]: r#245 [#433 '!']: r#246 [#433 '&']: r#246 [#433 '(']: r#246 [#433 '*']: r#246 [#433 '-']: r#246 [#433 'false']: r#246 [#433 'true']: r#246 [#433 '~']: r#246 [#433 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#246 [#433 /0[fh]/]: r#246 [#433 /0[iu]?/]: r#246 [#433 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#246 [#433 /0[xX][0-9a-fA-F]+[iu]?/]: r#246 [#433 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#246 [#433 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#246 [#433 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#246 [#433 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#246 [#433 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#246 [#433 /[1-9][0-9]*[fh]/]: r#246 [#433 /[1-9][0-9]*[iu]?/]: r#246 [#434 '!']: r#247 [#434 '&']: r#247 [#434 '(']: r#247 [#434 '*']: r#247 [#434 '-']: r#247 [#434 'false']: r#247 [#434 'true']: r#247 [#434 '~']: r#247 [#434 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#247 [#434 /0[fh]/]: r#247 [#434 /0[iu]?/]: r#247 [#434 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#247 [#434 /0[xX][0-9a-fA-F]+[iu]?/]: r#247 [#434 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#247 [#434 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#247 [#434 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#247 [#434 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#247 [#434 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#247 [#434 /[1-9][0-9]*[fh]/]: r#247 [#434 /[1-9][0-9]*[iu]?/]: r#247 [#435 '!']: r#248 [#435 '&']: r#248 [#435 '(']: r#248 [#435 '*']: r#248 [#435 '-']: r#248 [#435 'false']: r#248 [#435 'true']: r#248 [#435 '~']: r#248 [#435 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#248 [#435 /0[fh]/]: r#248 [#435 /0[iu]?/]: r#248 [#435 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#248 [#435 /0[xX][0-9a-fA-F]+[iu]?/]: r#248 [#435 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#248 [#435 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#248 [#435 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#248 [#435 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#248 [#435 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#248 [#435 /[1-9][0-9]*[fh]/]: r#248 [#435 /[1-9][0-9]*[iu]?/]: r#248 [#436 '!']: r#249 [#436 '&']: r#249 [#436 '(']: r#249 [#436 '*']: r#249 [#436 '-']: r#249 [#436 'false']: r#249 [#436 'true']: r#249 [#436 '~']: r#249 [#436 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#249 [#436 /0[fh]/]: r#249 [#436 /0[iu]?/]: r#249 [#436 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#249 [#436 /0[xX][0-9a-fA-F]+[iu]?/]: r#249 [#436 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#249 [#436 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#249 [#436 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#249 [#436 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#249 [#436 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#249 [#436 /[1-9][0-9]*[fh]/]: r#249 [#436 /[1-9][0-9]*[iu]?/]: r#249 [#437 '!']: r#250 [#437 '&']: r#250 [#437 '(']: r#250 [#437 '*']: r#250 [#437 '-']: r#250 [#437 'false']: r#250 [#437 'true']: r#250 [#437 '~']: r#250 [#437 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#250 [#437 /0[fh]/]: r#250 [#437 /0[iu]?/]: r#250 [#437 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#250 [#437 /0[xX][0-9a-fA-F]+[iu]?/]: r#250 [#437 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#250 [#437 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#250 [#437 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#250 [#437 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#250 [#437 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#250 [#437 /[1-9][0-9]*[fh]/]: r#250 [#437 /[1-9][0-9]*[iu]?/]: r#250 [#438 '!']: r#251 [#438 '&']: r#251 [#438 '(']: r#251 [#438 '*']: r#251 [#438 '-']: r#251 [#438 'false']: r#251 [#438 'true']: r#251 [#438 '~']: r#251 [#438 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#251 [#438 /0[fh]/]: r#251 [#438 /0[iu]?/]: r#251 [#438 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#251 [#438 /0[xX][0-9a-fA-F]+[iu]?/]: r#251 [#438 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#251 [#438 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#251 [#438 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#251 [#438 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#251 [#438 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#251 [#438 /[1-9][0-9]*[fh]/]: r#251 [#438 /[1-9][0-9]*[iu]?/]: r#251 [#439 '!']: r#252 [#439 '&']: r#252 [#439 '(']: r#252 [#439 '*']: r#252 [#439 '-']: r#252 [#439 'false']: r#252 [#439 'true']: r#252 [#439 '~']: r#252 [#439 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#252 [#439 /0[fh]/]: r#252 [#439 /0[iu]?/]: r#252 [#439 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#252 [#439 /0[xX][0-9a-fA-F]+[iu]?/]: r#252 [#439 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#252 [#439 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#252 [#439 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#252 [#439 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#252 [#439 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#252 [#439 /[1-9][0-9]*[fh]/]: r#252 [#439 /[1-9][0-9]*[iu]?/]: r#252 [#440 '!']: r#253 [#440 '&']: r#253 [#440 '(']: r#253 [#440 '*']: r#253 [#440 '-']: r#253 [#440 'false']: r#253 [#440 'true']: r#253 [#440 '~']: r#253 [#440 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#253 [#440 /0[fh]/]: r#253 [#440 /0[iu]?/]: r#253 [#440 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#253 [#440 /0[xX][0-9a-fA-F]+[iu]?/]: r#253 [#440 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#253 [#440 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#253 [#440 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#253 [#440 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#253 [#440 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#253 [#440 /[1-9][0-9]*[fh]/]: r#253 [#440 /[1-9][0-9]*[iu]?/]: r#253 [#441 '!']: r#254 [#441 '&']: r#254 [#441 '(']: r#254 [#441 '*']: r#254 [#441 '-']: r#254 [#441 'false']: r#254 [#441 'true']: r#254 [#441 '~']: r#254 [#441 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#254 [#441 /0[fh]/]: r#254 [#441 /0[iu]?/]: r#254 [#441 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#254 [#441 /0[xX][0-9a-fA-F]+[iu]?/]: r#254 [#441 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#254 [#441 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#254 [#441 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#254 [#441 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#254 [#441 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#254 [#441 /[1-9][0-9]*[fh]/]: r#254 [#441 /[1-9][0-9]*[iu]?/]: r#254 [#442 '%=']: r#255 [#442 '&=']: r#255 [#442 '*=']: r#255 [#442 '++']: r#255 [#442 '+=']: r#255 [#442 '--']: r#255 [#442 '-=']: r#255 [#442 '.']: r#255 [#442 '/=']: r#255 [#442 '=']: r#255 [#442 '[']: r#255 [#442 '^=']: r#255 [#442 '|=']: r#255 [#442 /\u200B_shift_left_assign/]: r#255 [#442 /\u200B_shift_right_assign/]: r#255 [#442 /\u200B_template_args_start/]: s#226 [#443 '=']: s#516 [#444 '=']: s#515 [#445 '!']: s#166 [#445 '&']: s#169 [#445 '(']: s#179 [#445 '*']: s#168 [#445 '-']: s#165 [#445 'false']: s#185 [#445 'true']: s#184 [#445 '~']: s#167 [#445 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#445 /0[fh]/]: s#189 [#445 /0[iu]?/]: s#186 [#445 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#445 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#445 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#445 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#445 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#445 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#445 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#445 /[1-9][0-9]*[fh]/]: s#190 [#445 /[1-9][0-9]*[iu]?/]: s#187 [#446 ')']: r#256 [#446 ';']: r#256 [#447 '!']: s#166 [#447 '&']: s#169 [#447 '(']: s#179 [#447 '*']: s#168 [#447 '-']: s#165 [#447 'false']: s#185 [#447 'true']: s#184 [#447 '~']: s#167 [#447 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#447 /0[fh]/]: s#189 [#447 /0[iu]?/]: s#186 [#447 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#447 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#447 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#447 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#447 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#447 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#447 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#447 /[1-9][0-9]*[fh]/]: s#190 [#447 /[1-9][0-9]*[iu]?/]: s#187 [#448 '(']: s#512 [#449 '@']: s#42 [#450 '!']: s#166 [#450 '&']: s#169 [#450 '(']: s#179 [#450 '*']: s#168 [#450 '-']: s#165 [#450 'false']: s#185 [#450 'true']: s#184 [#450 '~']: s#167 [#450 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#450 /0[fh]/]: s#189 [#450 /0[iu]?/]: s#186 [#450 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#450 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#450 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#450 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#450 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#450 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#450 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#450 /[1-9][0-9]*[fh]/]: s#190 [#450 /[1-9][0-9]*[iu]?/]: s#187 [#451 'else']: s#507 [#452 '!']: s#166 [#452 '&']: s#169 [#452 '(']: s#179 [#452 '*']: s#168 [#452 '-']: s#165 [#452 'false']: s#185 [#452 'true']: s#184 [#452 '~']: s#167 [#452 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#452 /0[fh]/]: s#189 [#452 /0[iu]?/]: s#186 [#452 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#452 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#452 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#452 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#452 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#452 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#452 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#452 /[1-9][0-9]*[fh]/]: s#190 [#452 /[1-9][0-9]*[iu]?/]: s#187 [#453 ';']: r#257 [#454 ';']: r#258 [#455 '&']: r#259 [#455 '(']: r#259 [#455 '*']: r#259 [#455 ';']: r#259 [#455 '@']: r#259 [#455 '_']: r#259 [#455 'break']: r#259 [#455 'const']: r#259 [#455 'const_assert']: r#259 [#455 'continue']: r#259 [#455 'continuing']: r#259 [#455 'discard']: r#259 [#455 'for']: r#259 [#455 'if']: r#259 [#455 'let']: r#259 [#455 'loop']: r#259 [#455 'return']: r#259 [#455 'switch']: r#259 [#455 'var']: r#259 [#455 'while']: r#259 [#455 '{']: r#259 [#455 '}']: r#259 [#455 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#259 [#456 '&']: r#260 [#456 '(']: r#260 [#456 '*']: r#260 [#456 ';']: r#260 [#456 '@']: r#260 [#456 '_']: r#260 [#456 'break']: r#260 [#456 'const']: r#260 [#456 'const_assert']: r#260 [#456 'continue']: r#260 [#456 'continuing']: r#260 [#456 'discard']: r#260 [#456 'for']: r#260 [#456 'if']: r#260 [#456 'let']: r#260 [#456 'loop']: r#260 [#456 'return']: r#260 [#456 'switch']: r#260 [#456 'var']: r#260 [#456 'while']: r#260 [#456 '{']: r#260 [#456 '}']: r#260 [#456 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#260 [#457 '&']: r#261 [#457 '(']: r#261 [#457 '*']: r#261 [#457 ';']: r#261 [#457 '@']: r#261 [#457 '_']: r#261 [#457 'break']: r#261 [#457 'const']: r#261 [#457 'const_assert']: r#261 [#457 'continue']: r#261 [#457 'continuing']: r#261 [#457 'discard']: r#261 [#457 'for']: r#261 [#457 'if']: r#261 [#457 'let']: r#261 [#457 'loop']: r#261 [#457 'return']: r#261 [#457 'switch']: r#261 [#457 'var']: r#261 [#457 'while']: r#261 [#457 '{']: r#261 [#457 '}']: r#261 [#457 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#261 [#458 '&']: r#262 [#458 '(']: r#262 [#458 '*']: r#262 [#458 ';']: r#262 [#458 '@']: r#262 [#458 '_']: r#262 [#458 'break']: r#262 [#458 'const']: r#262 [#458 'const_assert']: r#262 [#458 'continue']: r#262 [#458 'continuing']: r#262 [#458 'discard']: r#262 [#458 'for']: r#262 [#458 'if']: r#262 [#458 'let']: r#262 [#458 'loop']: r#262 [#458 'return']: r#262 [#458 'switch']: r#262 [#458 'var']: r#262 [#458 'while']: r#262 [#458 '{']: r#262 [#458 '}']: r#262 [#458 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#262 [#459 '&']: r#263 [#459 '(']: r#263 [#459 '*']: r#263 [#459 ';']: r#263 [#459 '@']: r#263 [#459 '_']: r#263 [#459 'break']: r#263 [#459 'const']: r#263 [#459 'const_assert']: r#263 [#459 'continue']: r#263 [#459 'continuing']: r#263 [#459 'discard']: r#263 [#459 'for']: r#263 [#459 'if']: r#263 [#459 'let']: r#263 [#459 'loop']: r#263 [#459 'return']: r#263 [#459 'switch']: r#263 [#459 'var']: r#263 [#459 'while']: r#263 [#459 '{']: r#263 [#459 '}']: r#263 [#459 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#263 [#460 '&']: r#264 [#460 '(']: r#264 [#460 '*']: r#264 [#460 ';']: r#264 [#460 '@']: r#264 [#460 '_']: r#264 [#460 'break']: r#264 [#460 'const']: r#264 [#460 'const_assert']: r#264 [#460 'continue']: r#264 [#460 'continuing']: r#264 [#460 'discard']: r#264 [#460 'for']: r#264 [#460 'if']: r#264 [#460 'let']: r#264 [#460 'loop']: r#264 [#460 'return']: r#264 [#460 'switch']: r#264 [#460 'var']: r#264 [#460 'while']: r#264 [#460 '{']: r#264 [#460 '}']: r#264 [#460 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#264 [#461 '&']: r#265 [#461 '(']: r#265 [#461 '*']: r#265 [#461 ';']: r#265 [#461 '@']: r#265 [#461 '_']: r#265 [#461 'break']: r#265 [#461 'const']: r#265 [#461 'const_assert']: r#265 [#461 'continue']: r#265 [#461 'continuing']: r#265 [#461 'discard']: r#265 [#461 'for']: r#265 [#461 'if']: r#265 [#461 'let']: r#265 [#461 'loop']: r#265 [#461 'return']: r#265 [#461 'switch']: r#265 [#461 'var']: r#265 [#461 'while']: r#265 [#461 '{']: r#265 [#461 '}']: r#265 [#461 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#265 [#462 '&']: r#266 [#462 '(']: r#266 [#462 '*']: r#266 [#462 ';']: r#266 [#462 '@']: r#266 [#462 '_']: r#266 [#462 'break']: r#266 [#462 'const']: r#266 [#462 'const_assert']: r#266 [#462 'continue']: r#266 [#462 'continuing']: r#266 [#462 'discard']: r#266 [#462 'for']: r#266 [#462 'if']: r#266 [#462 'let']: r#266 [#462 'loop']: r#266 [#462 'return']: r#266 [#462 'switch']: r#266 [#462 'var']: r#266 [#462 'while']: r#266 [#462 '{']: r#266 [#462 '}']: r#266 [#462 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#266 [#463 '}']: r#267 [#464 '&']: r#268 [#464 '(']: r#268 [#464 '*']: r#268 [#464 ';']: r#268 [#464 '@']: r#268 [#464 '_']: r#268 [#464 'alias']: r#268 [#464 'break']: r#268 [#464 'case']: r#268 [#464 'const']: r#268 [#464 'const_assert']: r#268 [#464 'continue']: r#268 [#464 'continuing']: r#268 [#464 'default']: r#268 [#464 'discard']: r#268 [#464 'else']: r#268 [#464 'fn']: r#268 [#464 'for']: r#268 [#464 'if']: r#268 [#464 'let']: r#268 [#464 'loop']: r#268 [#464 'override']: r#268 [#464 'return']: r#268 [#464 'struct']: r#268 [#464 'switch']: r#268 [#464 'var']: r#268 [#464 'while']: r#268 [#464 '{']: r#268 [#464 '}']: r#268 [#464 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#268 [#464 EndOfText]: r#268 [#465 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#269 [#466 ':']: s#502 [#467 ',']: s#501 [#468 ')']: r#270 [#468 ',']: r#270 [#469 ',']: s#470 [#470 '@']: s#42 [#471 '->']: s#497 [#472 ',']: r#271 [#472 '}']: r#271 [#473 ',']: r#272 [#473 '}']: r#272 [#474 '}']: s#495 [#475 '}']: r#273 [#476 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#477 ')']: r#274 [#477 ',']: r#274 [#477 ';']: r#274 [#477 '=']: r#274 [#477 '}']: r#274 [#478 '!']: s#166 [#478 '&']: s#169 [#478 '(']: s#179 [#478 '*']: s#168 [#478 '-']: s#165 [#478 'false']: s#185 [#478 'true']: s#184 [#478 '~']: s#167 [#478 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#478 /0[fh]/]: s#189 [#478 /0[iu]?/]: s#186 [#478 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#478 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#478 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#478 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#478 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#478 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#478 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#478 /[1-9][0-9]*[fh]/]: s#190 [#478 /[1-9][0-9]*[iu]?/]: s#187 [#479 '!']: s#166 [#479 '&']: s#169 [#479 '(']: s#179 [#479 '*']: s#168 [#479 '-']: s#165 [#479 'false']: s#185 [#479 'true']: s#184 [#479 '~']: s#167 [#479 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#479 /0[fh]/]: s#189 [#479 /0[iu]?/]: s#186 [#479 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#479 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#479 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#479 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#479 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#479 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#479 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#479 /[1-9][0-9]*[fh]/]: s#190 [#479 /[1-9][0-9]*[iu]?/]: s#187 [#480 ',']: s#491 [#481 ',']: r#275 [#481 /\u200B_template_args_end/]: r#275 [#482 ',']: s#483 [#483 '!']: s#166 [#483 '&']: s#169 [#483 '(']: s#179 [#483 '*']: s#168 [#483 '-']: s#165 [#483 'false']: s#185 [#483 'true']: s#184 [#483 '~']: s#167 [#483 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#483 /0[fh]/]: s#189 [#483 /0[iu]?/]: s#186 [#483 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#483 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#483 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#483 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#483 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#483 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#483 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#483 /[1-9][0-9]*[fh]/]: s#190 [#483 /[1-9][0-9]*[iu]?/]: s#187 [#484 '!=']: r#276 [#484 '%']: r#276 [#484 '&&']: r#276 [#484 '&']: r#276 [#484 '(']: r#276 [#484 ')']: r#276 [#484 '*']: r#276 [#484 '+']: r#276 [#484 ',']: r#276 [#484 '-']: r#276 [#484 '.']: r#276 [#484 '/']: r#276 [#484 ':']: r#276 [#484 ';']: r#276 [#484 '=']: r#276 [#484 '==']: r#276 [#484 '@']: r#276 [#484 '[']: r#276 [#484 ']']: r#276 [#484 '^']: r#276 [#484 '{']: r#276 [#484 '|']: r#276 [#484 '||']: r#276 [#484 '}']: r#276 [#484 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#276 [#484 /\u200B_greater_than/]: r#276 [#484 /\u200B_greater_than_equal/]: r#276 [#484 /\u200B_less_than/]: r#276 [#484 /\u200B_less_than_equal/]: r#276 [#484 /\u200B_shift_left/]: r#276 [#484 /\u200B_shift_right/]: r#276 [#484 /\u200B_template_args_end/]: r#276 [#485 '!=']: r#277 [#485 '%']: r#277 [#485 '&&']: r#277 [#485 '&']: r#277 [#485 '(']: r#277 [#485 ')']: r#277 [#485 '*']: r#277 [#485 '+']: r#277 [#485 ',']: r#277 [#485 '-']: r#277 [#485 '.']: r#277 [#485 '/']: r#277 [#485 ':']: r#277 [#485 ';']: r#277 [#485 '=']: r#277 [#485 '==']: r#277 [#485 '@']: r#277 [#485 '[']: r#277 [#485 ']']: r#277 [#485 '^']: r#277 [#485 '{']: r#277 [#485 '|']: r#277 [#485 '||']: r#277 [#485 '}']: r#277 [#485 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#277 [#485 /\u200B_greater_than/]: r#277 [#485 /\u200B_greater_than_equal/]: r#277 [#485 /\u200B_less_than/]: r#277 [#485 /\u200B_less_than_equal/]: r#277 [#485 /\u200B_shift_left/]: r#277 [#485 /\u200B_shift_right/]: r#277 [#485 /\u200B_template_args_end/]: r#277 [#486 ';']: r#278 [#486 '@']: r#278 [#486 'fn']: r#278 [#486 'for']: r#278 [#486 'if']: r#278 [#486 'loop']: r#278 [#486 'override']: r#278 [#486 'switch']: r#278 [#486 'var']: r#278 [#486 'while']: r#278 [#486 '{']: r#278 [#486 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#278 [#487 ')']: r#279 [#487 ',']: r#279 [#488 ',']: r#280 [#488 /\u200B_template_args_end/]: r#280 [#489 ',']: r#281 [#489 /\u200B_template_args_end/]: r#281 [#490 /\u200B_template_args_end/]: r#282 [#491 /\u200B_template_args_end/]: r#283 [#492 ',']: r#284 [#492 '||']: r#189 [#492 /\u200B_template_args_end/]: r#284 [#493 '&&']: r#191 [#493 ',']: r#285 [#493 /\u200B_template_args_end/]: r#285 [#494 ',']: r#286 [#494 '}']: r#286 [#495 ';']: r#287 [#495 '@']: r#287 [#495 'alias']: r#287 [#495 'const']: r#287 [#495 'const_assert']: r#287 [#495 'fn']: r#287 [#495 'override']: r#287 [#495 'struct']: r#287 [#495 'var']: r#287 [#495 EndOfText]: r#287 [#496 '@']: r#288 [#496 '{']: r#288 [#497 '@']: s#42 [#498 ')']: r#289 [#498 ',']: r#289 [#499 ')']: r#290 [#499 ',']: r#290 [#500 ')']: r#291 [#501 ')']: r#292 [#502 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#503 '@']: s#42 [#504 'else']: s#554 [#505 '&']: r#293 [#505 '(']: r#293 [#505 '*']: r#293 [#505 ';']: r#293 [#505 '@']: r#293 [#505 '_']: r#293 [#505 'break']: r#293 [#505 'const']: r#293 [#505 'const_assert']: r#293 [#505 'continue']: r#293 [#505 'continuing']: r#293 [#505 'discard']: r#293 [#505 'else']: r#293 [#505 'for']: r#293 [#505 'if']: r#293 [#505 'let']: r#293 [#505 'loop']: r#293 [#505 'return']: r#293 [#505 'switch']: r#293 [#505 'var']: r#293 [#505 'while']: r#293 [#505 '{']: r#293 [#505 '}']: r#293 [#505 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#293 [#506 'else']: s#507 [#507 'if']: s#550 [#508 '@']: s#42 [#509 '{']: s#545 [#510 '{']: r#294 [#511 '@']: s#42 [#512 '&']: s#300 [#512 '(']: s#301 [#512 '*']: s#299 [#512 '_']: s#296 [#512 'const']: s#282 [#512 'let']: s#281 [#512 'var']: s#91 [#512 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#513 '@']: s#42 [#514 ';']: r#295 [#515 '!']: s#166 [#515 '&']: s#169 [#515 '(']: s#179 [#515 '*']: s#168 [#515 '-']: s#165 [#515 'false']: s#185 [#515 'true']: s#184 [#515 '~']: s#167 [#515 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#515 /0[fh]/]: s#189 [#515 /0[iu]?/]: s#186 [#515 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#515 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#515 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#515 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#515 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#515 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#515 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#515 /[1-9][0-9]*[fh]/]: s#190 [#515 /[1-9][0-9]*[iu]?/]: s#187 [#516 '!']: s#166 [#516 '&']: s#169 [#516 '(']: s#179 [#516 '*']: s#168 [#516 '-']: s#165 [#516 'false']: s#185 [#516 'true']: s#184 [#516 '~']: s#167 [#516 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#516 /0[fh]/]: s#189 [#516 /0[iu]?/]: s#186 [#516 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#516 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#516 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#516 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#516 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#516 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#516 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#516 /[1-9][0-9]*[fh]/]: s#190 [#516 /[1-9][0-9]*[iu]?/]: s#187 [#517 ')']: r#296 [#517 ';']: r#296 [#518 ')']: r#297 [#518 ';']: r#297 [#519 '%=']: r#255 [#519 '&=']: r#255 [#519 ')']: r#255 [#519 '*=']: r#255 [#519 '++']: r#255 [#519 '+=']: r#255 [#519 '--']: r#255 [#519 '-=']: r#255 [#519 '.']: r#255 [#519 '/=']: r#255 [#519 '=']: r#255 [#519 '[']: r#255 [#519 '^=']: r#255 [#519 '|=']: r#255 [#519 /\u200B_shift_left_assign/]: r#255 [#519 /\u200B_shift_right_assign/]: r#255 [#520 '%=']: r#298 [#520 '&=']: r#298 [#520 ')']: r#298 [#520 '*=']: r#298 [#520 '++']: r#298 [#520 '+=']: r#298 [#520 '--']: r#298 [#520 '-=']: r#298 [#520 '.']: r#298 [#520 '/=']: r#298 [#520 '=']: r#298 [#520 '[']: r#298 [#520 '^=']: r#298 [#520 '|=']: r#298 [#520 /\u200B_shift_left_assign/]: r#298 [#520 /\u200B_shift_right_assign/]: r#298 [#521 ')']: s#534 [#522 '!']: s#166 [#522 '&']: s#169 [#522 '(']: s#179 [#522 ')']: r#299 [#522 '*']: s#168 [#522 '-']: s#165 [#522 'false']: s#185 [#522 'true']: s#184 [#522 '~']: s#167 [#522 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#522 /0[fh]/]: s#189 [#522 /0[iu]?/]: s#186 [#522 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#522 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#522 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#522 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#522 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#522 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#522 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#522 /[1-9][0-9]*[fh]/]: s#190 [#522 /[1-9][0-9]*[iu]?/]: s#187 [#523 ')']: s#532 [#524 ')']: r#300 [#525 '.']: s#328 [#525 '[']: s#327 [#526 '!=']: r#301 [#526 '%']: r#301 [#526 '%=']: r#301 [#526 '&&']: r#301 [#526 '&']: r#301 [#526 '&=']: r#301 [#526 ')']: r#301 [#526 '*']: r#301 [#526 '*=']: r#301 [#526 '+']: r#301 [#526 '++']: r#301 [#526 '+=']: r#301 [#526 ',']: r#301 [#526 '-']: r#301 [#526 '--']: r#301 [#526 '-=']: r#301 [#526 '/']: r#301 [#526 '/=']: r#301 [#526 ':']: r#301 [#526 ';']: r#301 [#526 '=']: r#301 [#526 '==']: r#301 [#526 '@']: r#301 [#526 ']']: r#301 [#526 '^']: r#301 [#526 '^=']: r#301 [#526 '{']: r#301 [#526 '|']: r#301 [#526 '|=']: r#301 [#526 '||']: r#301 [#526 /\u200B_greater_than/]: r#301 [#526 /\u200B_greater_than_equal/]: r#301 [#526 /\u200B_less_than/]: r#301 [#526 /\u200B_less_than_equal/]: r#301 [#526 /\u200B_shift_left/]: r#301 [#526 /\u200B_shift_left_assign/]: r#301 [#526 /\u200B_shift_right/]: r#301 [#526 /\u200B_shift_right_assign/]: r#301 [#526 /\u200B_template_args_end/]: r#301 [#527 '!=']: r#302 [#527 '%']: r#302 [#527 '%=']: r#302 [#527 '&&']: r#302 [#527 '&']: r#302 [#527 '&=']: r#302 [#527 ')']: r#302 [#527 '*']: r#302 [#527 '*=']: r#302 [#527 '+']: r#302 [#527 '++']: r#302 [#527 '+=']: r#302 [#527 ',']: r#302 [#527 '-']: r#302 [#527 '--']: r#302 [#527 '-=']: r#302 [#527 '/']: r#302 [#527 '/=']: r#302 [#527 ':']: r#302 [#527 ';']: r#302 [#527 '=']: r#302 [#527 '==']: r#302 [#527 '@']: r#302 [#527 ']']: r#302 [#527 '^']: r#302 [#527 '^=']: r#302 [#527 '{']: r#302 [#527 '|']: r#302 [#527 '|=']: r#302 [#527 '||']: r#302 [#527 /\u200B_greater_than/]: r#302 [#527 /\u200B_greater_than_equal/]: r#302 [#527 /\u200B_less_than/]: r#302 [#527 /\u200B_less_than_equal/]: r#302 [#527 /\u200B_shift_left/]: r#302 [#527 /\u200B_shift_left_assign/]: r#302 [#527 /\u200B_shift_right/]: r#302 [#527 /\u200B_shift_right_assign/]: r#302 [#527 /\u200B_template_args_end/]: r#302 [#528 '!=']: r#303 [#528 '%']: r#303 [#528 '%=']: r#303 [#528 '&&']: r#303 [#528 '&']: r#303 [#528 '&=']: r#303 [#528 ')']: r#303 [#528 '*']: r#303 [#528 '*=']: r#303 [#528 '+']: r#303 [#528 '++']: r#303 [#528 '+=']: r#303 [#528 ',']: r#303 [#528 '-']: r#303 [#528 '--']: r#303 [#528 '-=']: r#303 [#528 '/']: r#303 [#528 '/=']: r#303 [#528 ':']: r#303 [#528 ';']: r#303 [#528 '=']: r#303 [#528 '==']: r#303 [#528 '@']: r#303 [#528 ']']: r#303 [#528 '^']: r#303 [#528 '^=']: r#303 [#528 '{']: r#303 [#528 '|']: r#303 [#528 '|=']: r#303 [#528 '||']: r#303 [#528 /\u200B_greater_than/]: r#303 [#528 /\u200B_greater_than_equal/]: r#303 [#528 /\u200B_less_than/]: r#303 [#528 /\u200B_less_than_equal/]: r#303 [#528 /\u200B_shift_left/]: r#303 [#528 /\u200B_shift_left_assign/]: r#303 [#528 /\u200B_shift_right/]: r#303 [#528 /\u200B_shift_right_assign/]: r#303 [#528 /\u200B_template_args_end/]: r#303 [#529 '!=']: r#304 [#529 '%']: r#304 [#529 '%=']: r#304 [#529 '&&']: r#304 [#529 '&']: r#304 [#529 '&=']: r#304 [#529 ')']: r#304 [#529 '*']: r#304 [#529 '*=']: r#304 [#529 '+']: r#304 [#529 '++']: r#304 [#529 '+=']: r#304 [#529 ',']: r#304 [#529 '-']: r#304 [#529 '--']: r#304 [#529 '-=']: r#304 [#529 '/']: r#304 [#529 '/=']: r#304 [#529 ':']: r#304 [#529 ';']: r#304 [#529 '=']: r#304 [#529 '==']: r#304 [#529 '@']: r#304 [#529 ']']: r#304 [#529 '^']: r#304 [#529 '^=']: r#304 [#529 '{']: r#304 [#529 '|']: r#304 [#529 '|=']: r#304 [#529 '||']: r#304 [#529 /\u200B_greater_than/]: r#304 [#529 /\u200B_greater_than_equal/]: r#304 [#529 /\u200B_less_than/]: r#304 [#529 /\u200B_less_than_equal/]: r#304 [#529 /\u200B_shift_left/]: r#304 [#529 /\u200B_shift_left_assign/]: r#304 [#529 /\u200B_shift_right/]: r#304 [#529 /\u200B_shift_right_assign/]: r#304 [#529 /\u200B_template_args_end/]: r#304 [#530 '!=']: r#305 [#530 '%']: r#305 [#530 '%=']: r#305 [#530 '&&']: r#305 [#530 '&']: r#305 [#530 '&=']: r#305 [#530 ')']: r#305 [#530 '*']: r#305 [#530 '*=']: r#305 [#530 '+']: r#305 [#530 '++']: r#305 [#530 '+=']: r#305 [#530 ',']: r#305 [#530 '-']: r#305 [#530 '--']: r#305 [#530 '-=']: r#305 [#530 '/']: r#305 [#530 '/=']: r#305 [#530 ':']: r#305 [#530 ';']: r#305 [#530 '=']: r#305 [#530 '==']: r#305 [#530 '@']: r#305 [#530 ']']: r#305 [#530 '^']: r#305 [#530 '^=']: r#305 [#530 '{']: r#305 [#530 '|']: r#305 [#530 '|=']: r#305 [#530 '||']: r#305 [#530 /\u200B_greater_than/]: r#305 [#530 /\u200B_greater_than_equal/]: r#305 [#530 /\u200B_less_than/]: r#305 [#530 /\u200B_less_than_equal/]: r#305 [#530 /\u200B_shift_left/]: r#305 [#530 /\u200B_shift_left_assign/]: r#305 [#530 /\u200B_shift_right/]: r#305 [#530 /\u200B_shift_right_assign/]: r#305 [#530 /\u200B_template_args_end/]: r#305 [#531 '!=']: r#306 [#531 '%']: r#306 [#531 '%=']: r#306 [#531 '&&']: r#306 [#531 '&']: r#306 [#531 '&=']: r#306 [#531 ')']: r#306 [#531 '*']: r#306 [#531 '*=']: r#306 [#531 '+']: r#306 [#531 '++']: r#306 [#531 '+=']: r#306 [#531 ',']: r#306 [#531 '-']: r#306 [#531 '--']: r#306 [#531 '-=']: r#306 [#531 '/']: r#306 [#531 '/=']: r#306 [#531 ':']: r#306 [#531 ';']: r#306 [#531 '=']: r#306 [#531 '==']: r#306 [#531 '@']: r#306 [#531 ']']: r#306 [#531 '^']: r#306 [#531 '^=']: r#306 [#531 '{']: r#306 [#531 '|']: r#306 [#531 '|=']: r#306 [#531 '||']: r#306 [#531 /\u200B_greater_than/]: r#306 [#531 /\u200B_greater_than_equal/]: r#306 [#531 /\u200B_less_than/]: r#306 [#531 /\u200B_less_than_equal/]: r#306 [#531 /\u200B_shift_left/]: r#306 [#531 /\u200B_shift_left_assign/]: r#306 [#531 /\u200B_shift_right/]: r#306 [#531 /\u200B_shift_right_assign/]: r#306 [#531 /\u200B_template_args_end/]: r#306 [#532 '@']: r#307 [#532 'fn']: r#307 [#532 'for']: r#307 [#532 'if']: r#307 [#532 'loop']: r#307 [#532 'override']: r#307 [#532 'switch']: r#307 [#532 'var']: r#307 [#532 'while']: r#307 [#532 '{']: r#307 [#532 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#307 [#533 ',']: s#572 [#534 '@']: r#308 [#534 'fn']: r#308 [#534 'for']: r#308 [#534 'if']: r#308 [#534 'loop']: r#308 [#534 'override']: r#308 [#534 'switch']: r#308 [#534 'var']: r#308 [#534 'while']: r#308 [#534 '{']: r#308 [#534 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#308 [#535 ';']: r#309 [#536 ';']: r#310 [#537 '&']: r#311 [#537 '(']: r#311 [#537 '*']: r#311 [#537 ';']: r#311 [#537 '@']: r#311 [#537 '_']: r#311 [#537 'break']: r#311 [#537 'const']: r#311 [#537 'const_assert']: r#311 [#537 'continue']: r#311 [#537 'continuing']: r#311 [#537 'discard']: r#311 [#537 'for']: r#311 [#537 'if']: r#311 [#537 'let']: r#311 [#537 'loop']: r#311 [#537 'return']: r#311 [#537 'switch']: r#311 [#537 'var']: r#311 [#537 'while']: r#311 [#537 '{']: r#311 [#537 '}']: r#311 [#537 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#311 [#538 ')']: s#570 [#539 ';']: s#569 [#540 ';']: r#312 [#541 ';']: r#313 [#542 ';']: r#314 [#543 ';']: r#315 [#544 '{']: r#316 [#545 '&']: s#300 [#545 '(']: s#301 [#545 '*']: s#299 [#545 ';']: s#258 [#545 '@']: s#42 [#545 '_']: s#296 [#545 'break']: s#283 [#545 'const']: s#282 [#545 'const_assert']: s#288 [#545 'continue']: s#284 [#545 'discard']: s#269 [#545 'let']: s#281 [#545 'return']: s#273 [#545 'var']: s#91 [#545 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#546 '&']: r#317 [#546 '(']: r#317 [#546 '*']: r#317 [#546 ';']: r#317 [#546 '@']: r#317 [#546 '_']: r#317 [#546 'break']: r#317 [#546 'const']: r#317 [#546 'const_assert']: r#317 [#546 'continue']: r#317 [#546 'continuing']: r#317 [#546 'discard']: r#317 [#546 'for']: r#317 [#546 'if']: r#317 [#546 'let']: r#317 [#546 'loop']: r#317 [#546 'return']: r#317 [#546 'switch']: r#317 [#546 'var']: r#317 [#546 'while']: r#317 [#546 '{']: r#317 [#546 '}']: r#317 [#546 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#317 [#547 '{']: s#565 [#548 '{']: r#318 [#549 '@']: s#42 [#550 '!']: s#166 [#550 '&']: s#169 [#550 '(']: s#179 [#550 '*']: s#168 [#550 '-']: s#165 [#550 'false']: s#185 [#550 'true']: s#184 [#550 '~']: s#167 [#550 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#550 /0[fh]/]: s#189 [#550 /0[iu]?/]: s#186 [#550 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#550 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#550 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#550 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#550 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#550 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#550 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#550 /[1-9][0-9]*[fh]/]: s#190 [#550 /[1-9][0-9]*[iu]?/]: s#187 [#551 '&']: r#319 [#551 '(']: r#319 [#551 '*']: r#319 [#551 ';']: r#319 [#551 '@']: r#319 [#551 '_']: r#319 [#551 'break']: r#319 [#551 'const']: r#319 [#551 'const_assert']: r#319 [#551 'continue']: r#319 [#551 'continuing']: r#319 [#551 'discard']: r#319 [#551 'else']: r#319 [#551 'for']: r#319 [#551 'if']: r#319 [#551 'let']: r#319 [#551 'loop']: r#319 [#551 'return']: r#319 [#551 'switch']: r#319 [#551 'var']: r#319 [#551 'while']: r#319 [#551 '{']: r#319 [#551 '}']: r#319 [#551 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#319 [#552 '&']: r#320 [#552 '(']: r#320 [#552 '*']: r#320 [#552 ';']: r#320 [#552 '@']: r#320 [#552 '_']: r#320 [#552 'break']: r#320 [#552 'const']: r#320 [#552 'const_assert']: r#320 [#552 'continue']: r#320 [#552 'continuing']: r#320 [#552 'discard']: r#320 [#552 'for']: r#320 [#552 'if']: r#320 [#552 'let']: r#320 [#552 'loop']: r#320 [#552 'return']: r#320 [#552 'switch']: r#320 [#552 'var']: r#320 [#552 'while']: r#320 [#552 '{']: r#320 [#552 '}']: r#320 [#552 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#320 [#553 '&']: r#321 [#553 '(']: r#321 [#553 '*']: r#321 [#553 ';']: r#321 [#553 '@']: r#321 [#553 '_']: r#321 [#553 'break']: r#321 [#553 'const']: r#321 [#553 'const_assert']: r#321 [#553 'continue']: r#321 [#553 'continuing']: r#321 [#553 'discard']: r#321 [#553 'for']: r#321 [#553 'if']: r#321 [#553 'let']: r#321 [#553 'loop']: r#321 [#553 'return']: r#321 [#553 'switch']: r#321 [#553 'var']: r#321 [#553 'while']: r#321 [#553 '{']: r#321 [#553 '}']: r#321 [#553 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#321 [#554 '@']: s#42 [#555 '&']: r#322 [#555 '(']: r#322 [#555 '*']: r#322 [#555 ';']: r#322 [#555 '@']: r#322 [#555 '_']: r#322 [#555 'break']: r#322 [#555 'const']: r#322 [#555 'const_assert']: r#322 [#555 'continue']: r#322 [#555 'continuing']: r#322 [#555 'discard']: r#322 [#555 'else']: r#322 [#555 'for']: r#322 [#555 'if']: r#322 [#555 'let']: r#322 [#555 'loop']: r#322 [#555 'return']: r#322 [#555 'switch']: r#322 [#555 'var']: r#322 [#555 'while']: r#322 [#555 '{']: r#322 [#555 '}']: r#322 [#555 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#322 [#556 ')']: r#323 [#556 ',']: r#323 [#557 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#558 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#324 [#559 '@']: s#42 [#560 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#325 [#561 '@']: r#326 [#561 '{']: r#326 [#562 '&']: r#327 [#562 '(']: r#327 [#562 '*']: r#327 [#562 ';']: r#327 [#562 '@']: r#327 [#562 '_']: r#327 [#562 'break']: r#327 [#562 'const']: r#327 [#562 'const_assert']: r#327 [#562 'continue']: r#327 [#562 'continuing']: r#327 [#562 'discard']: r#327 [#562 'for']: r#327 [#562 'if']: r#327 [#562 'let']: r#327 [#562 'loop']: r#327 [#562 'return']: r#327 [#562 'switch']: r#327 [#562 'var']: r#327 [#562 'while']: r#327 [#562 '{']: r#327 [#562 '}']: r#327 [#562 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#327 [#563 '@']: s#42 [#564 '{']: r#328 [#565 'case']: s#586 [#565 'default']: s#587 [#566 'continuing']: s#580 [#567 'continuing']: r#329 [#567 '}']: r#329 [#568 '&']: s#300 [#568 '(']: s#301 [#568 '*']: s#299 [#568 ';']: s#258 [#568 '@']: s#42 [#568 '_']: s#296 [#568 'break']: s#283 [#568 'const']: s#282 [#568 'const_assert']: s#288 [#568 'continue']: s#284 [#568 'discard']: s#269 [#568 'let']: s#281 [#568 'return']: s#273 [#568 'var']: s#91 [#568 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#569 '!']: s#166 [#569 '&']: s#169 [#569 '(']: s#179 [#569 '*']: s#168 [#569 '-']: s#165 [#569 'false']: s#185 [#569 'true']: s#184 [#569 '~']: s#167 [#569 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#569 /0[fh]/]: s#189 [#569 /0[iu]?/]: s#186 [#569 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#569 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#569 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#569 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#569 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#569 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#569 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#569 /[1-9][0-9]*[fh]/]: s#190 [#569 /[1-9][0-9]*[iu]?/]: s#187 [#570 '@']: s#42 [#571 ')']: s#573 [#572 ')']: r#330 [#573 '@']: r#331 [#573 'fn']: r#331 [#573 'for']: r#331 [#573 'if']: r#331 [#573 'loop']: r#331 [#573 'override']: r#331 [#573 'switch']: r#331 [#573 'var']: r#331 [#573 'while']: r#331 [#573 '{']: r#331 [#573 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#331 [#574 '&']: r#332 [#574 '(']: r#332 [#574 '*']: r#332 [#574 ';']: r#332 [#574 '@']: r#332 [#574 '_']: r#332 [#574 'break']: r#332 [#574 'const']: r#332 [#574 'const_assert']: r#332 [#574 'continue']: r#332 [#574 'continuing']: r#332 [#574 'discard']: r#332 [#574 'for']: r#332 [#574 'if']: r#332 [#574 'let']: r#332 [#574 'loop']: r#332 [#574 'return']: r#332 [#574 'switch']: r#332 [#574 'var']: r#332 [#574 'while']: r#332 [#574 '{']: r#332 [#574 '}']: r#332 [#574 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#332 [#575 ';']: s#602 [#576 ';']: r#333 [#577 'continuing']: r#334 [#577 '}']: r#334 [#578 '}']: s#601 [#579 '}']: r#335 [#580 '@']: s#42 [#581 '}']: s#596 [#582 '}']: r#336 [#583 'case']: s#586 [#583 'default']: s#587 [#584 'case']: r#337 [#584 'default']: r#337 [#584 '}']: r#337 [#585 'case']: r#338 [#585 'default']: r#338 [#585 '}']: r#338 [#586 '!']: s#166 [#586 '&']: s#169 [#586 '(']: s#179 [#586 '*']: s#168 [#586 '-']: s#165 [#586 'default']: s#593 [#586 'false']: s#185 [#586 'true']: s#184 [#586 '~']: s#167 [#586 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#586 /0[fh]/]: s#189 [#586 /0[iu]?/]: s#186 [#586 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#586 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#586 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#586 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#586 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#586 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#586 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#586 /[1-9][0-9]*[fh]/]: s#190 [#586 /[1-9][0-9]*[iu]?/]: s#187 [#587 ':']: s#590 [#588 '&']: r#339 [#588 '(']: r#339 [#588 '*']: r#339 [#588 ';']: r#339 [#588 '@']: r#339 [#588 '_']: r#339 [#588 'break']: r#339 [#588 'const']: r#339 [#588 'const_assert']: r#339 [#588 'continue']: r#339 [#588 'continuing']: r#339 [#588 'discard']: r#339 [#588 'else']: r#339 [#588 'for']: r#339 [#588 'if']: r#339 [#588 'let']: r#339 [#588 'loop']: r#339 [#588 'return']: r#339 [#588 'switch']: r#339 [#588 'var']: r#339 [#588 'while']: r#339 [#588 '{']: r#339 [#588 '}']: r#339 [#588 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#339 [#589 '@']: s#42 [#590 '@']: r#340 [#590 '{']: r#340 [#591 ':']: s#614 [#592 ',']: s#612 [#593 ',']: r#341 [#593 ':']: r#341 [#593 '@']: r#341 [#593 '{']: r#341 [#594 ',']: r#342 [#594 ':']: r#342 [#594 '@']: r#342 [#594 '{']: r#342 [#595 '}']: r#343 [#596 '&']: r#344 [#596 '(']: r#344 [#596 '*']: r#344 [#596 ';']: r#344 [#596 '@']: r#344 [#596 '_']: r#344 [#596 'break']: r#344 [#596 'const']: r#344 [#596 'const_assert']: r#344 [#596 'continue']: r#344 [#596 'continuing']: r#344 [#596 'discard']: r#344 [#596 'for']: r#344 [#596 'if']: r#344 [#596 'let']: r#344 [#596 'loop']: r#344 [#596 'return']: r#344 [#596 'switch']: r#344 [#596 'var']: r#344 [#596 'while']: r#344 [#596 '{']: r#344 [#596 '}']: r#344 [#596 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#344 [#597 '}']: r#345 [#598 '{']: s#608 [#599 '{']: r#346 [#600 '@']: s#42 [#601 '&']: r#347 [#601 '(']: r#347 [#601 '*']: r#347 [#601 ';']: r#347 [#601 '@']: r#347 [#601 '_']: r#347 [#601 'break']: r#347 [#601 'const']: r#347 [#601 'const_assert']: r#347 [#601 'continue']: r#347 [#601 'continuing']: r#347 [#601 'discard']: r#347 [#601 'for']: r#347 [#601 'if']: r#347 [#601 'let']: r#347 [#601 'loop']: r#347 [#601 'return']: r#347 [#601 'switch']: r#347 [#601 'var']: r#347 [#601 'while']: r#347 [#601 '{']: r#347 [#601 '}']: r#347 [#601 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#347 [#602 '&']: s#300 [#602 '(']: s#301 [#602 '*']: s#299 [#602 '_']: s#296 [#602 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#603 ')']: r#348 [#604 ')']: r#349 [#605 ')']: r#350 [#606 ')']: r#351 [#607 '{']: r#352 [#608 '&']: s#300 [#608 '(']: s#301 [#608 '*']: s#299 [#608 ';']: s#258 [#608 '@']: s#42 [#608 '_']: s#296 [#608 'break']: s#283 [#608 'const']: s#282 [#608 'const_assert']: s#288 [#608 'continue']: s#284 [#608 'discard']: s#269 [#608 'let']: s#281 [#608 'return']: s#273 [#608 'var']: s#91 [#608 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#609 ',']: s#620 [#610 ',']: r#353 [#610 ':']: r#353 [#610 '@']: r#353 [#610 '{']: r#353 [#611 ',']: s#612 [#612 '!']: s#166 [#612 '&']: s#169 [#612 '(']: s#179 [#612 '*']: s#168 [#612 '-']: s#165 [#612 'default']: s#593 [#612 'false']: s#185 [#612 'true']: s#184 [#612 '~']: s#167 [#612 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#612 /0[fh]/]: s#189 [#612 /0[iu]?/]: s#186 [#612 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#612 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#612 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#612 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#612 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#612 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#612 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#612 /[1-9][0-9]*[fh]/]: s#190 [#612 /[1-9][0-9]*[iu]?/]: s#187 [#613 '@']: s#42 [#614 '@']: r#354 [#614 '{']: r#354 [#615 'case']: r#355 [#615 'default']: r#355 [#615 '}']: r#355 [#616 'case']: r#356 [#616 'default']: r#356 [#616 '}']: r#356 [#617 ',']: r#357 [#617 ':']: r#357 [#617 '@']: r#357 [#617 '{']: r#357 [#618 ',']: r#358 [#618 ':']: r#358 [#618 '@']: r#358 [#618 '{']: r#358 [#619 ':']: r#359 [#619 '@']: r#359 [#619 '{']: r#359 [#620 ':']: r#360 [#620 '@']: r#360 [#620 '{']: r#360 [#621 'break']: s#627 [#622 'break']: r#361 [#622 '}']: r#361 [#623 '&']: s#300 [#623 '(']: s#301 [#623 '*']: s#299 [#623 ';']: s#258 [#623 '@']: s#42 [#623 '_']: s#296 [#623 'break']: s#283 [#623 'const']: s#282 [#623 'const_assert']: s#288 [#623 'continue']: s#284 [#623 'discard']: s#269 [#623 'let']: s#281 [#623 'return']: s#273 [#623 'var']: s#91 [#623 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#624 'break']: r#362 [#624 '}']: r#362 [#625 '}']: s#629 [#626 '}']: r#363 [#627 'if']: s#628 [#628 '!']: s#166 [#628 '&']: s#169 [#628 '(']: s#179 [#628 '*']: s#168 [#628 '-']: s#165 [#628 'false']: s#185 [#628 'true']: s#184 [#628 '~']: s#167 [#628 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#78 [#628 /0[fh]/]: s#189 [#628 /0[iu]?/]: s#186 [#628 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#194 [#628 /0[xX][0-9a-fA-F]+[iu]?/]: s#188 [#628 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#196 [#628 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#195 [#628 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#191 [#628 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#193 [#628 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#192 [#628 /[1-9][0-9]*[fh]/]: s#190 [#628 /[1-9][0-9]*[iu]?/]: s#187 [#629 '}']: r#364 [#630 ';']: s#631 [#631 '}']: r#365 =Goto: [#0 diagnostic_directive]: #5 [#0 enable_directive]: #6 [#0 global_directive]: #4 [#0 requires_directive]: #7 [#0 translation_unit]: #1 [#0 translation_unit/0.0]: #2 [#0 translation_unit/0.0/0]: #3 [#2 align_attr]: #43 [#2 attribute]: #41 [#2 binding_attr]: #44 [#2 blend_src_attr]: #45 [#2 builtin_attr]: #46 [#2 compute_attr]: #59 [#2 const_attr]: #47 [#2 diagnostic_attr]: #48 [#2 fragment_attr]: #58 [#2 function_decl]: #30 [#2 function_decl/0.0]: #37 [#2 function_decl/0.0/0]: #40 [#2 global_assert]: #24 [#2 global_decl]: #23 [#2 global_value_decl]: #27 [#2 global_value_decl/1.0]: #34 [#2 global_value_decl/1.0/0]: #39 [#2 global_variable_decl]: #26 [#2 global_variable_decl/0.0]: #32 [#2 global_variable_decl/0.0/0]: #38 [#2 group_attr]: #49 [#2 id_attr]: #50 [#2 interpolate_attr]: #51 [#2 invariant_attr]: #52 [#2 location_attr]: #53 [#2 must_use_attr]: #54 [#2 size_attr]: #55 [#2 struct_decl]: #29 [#2 translation_unit/0.1]: #20 [#2 translation_unit/0.1/0]: #21 [#2 translation_unit/0.1/0/0.0]: #22 [#2 type_alias_decl]: #28 [#2 vertex_attr]: #57 [#2 workgroup_size_attr]: #56 [#4 diagnostic_directive]: #5 [#4 enable_directive]: #6 [#4 global_directive]: #4 [#4 requires_directive]: #7 [#4 translation_unit/0.0/0]: #19 [#8 diagnostic_control]: #17 [#9 enable_extension_list]: #14 [#9 enable_extension_name]: #15 [#10 language_extension_list]: #11 [#10 language_extension_name]: #12 [#12 language_extension_list/0.1]: #105 [#12 language_extension_list/0.1/0]: #106 [#12 language_extension_list/0.1/0/0.0]: #107 [#15 enable_extension_list/0.1]: #100 [#15 enable_extension_list/0.1/0]: #101 [#15 enable_extension_list/0.1/0/0.0]: #102 [#18 severity_control_name]: #97 [#22 align_attr]: #43 [#22 attribute]: #41 [#22 binding_attr]: #44 [#22 blend_src_attr]: #45 [#22 builtin_attr]: #46 [#22 compute_attr]: #59 [#22 const_attr]: #47 [#22 diagnostic_attr]: #48 [#22 fragment_attr]: #58 [#22 function_decl]: #30 [#22 function_decl/0.0]: #37 [#22 function_decl/0.0/0]: #40 [#22 global_assert]: #24 [#22 global_decl]: #23 [#22 global_value_decl]: #27 [#22 global_value_decl/1.0]: #34 [#22 global_value_decl/1.0/0]: #39 [#22 global_variable_decl]: #26 [#22 global_variable_decl/0.0]: #32 [#22 global_variable_decl/0.0/0]: #38 [#22 group_attr]: #49 [#22 id_attr]: #50 [#22 interpolate_attr]: #51 [#22 invariant_attr]: #52 [#22 location_attr]: #53 [#22 must_use_attr]: #54 [#22 size_attr]: #55 [#22 struct_decl]: #29 [#22 translation_unit/0.1/0]: #96 [#22 translation_unit/0.1/0/0.0]: #22 [#22 type_alias_decl]: #28 [#22 vertex_attr]: #57 [#22 workgroup_size_attr]: #56 [#32 variable_decl]: #90 [#33 ident]: #89 [#33 ident_pattern_token]: #85 [#33 optionally_typed_ident]: #88 [#35 ident]: #86 [#35 ident_pattern_token]: #85 [#36 ident]: #84 [#36 ident_pattern_token]: #85 [#37 function_header]: #82 [#41 align_attr]: #43 [#41 attribute]: #41 [#41 binding_attr]: #44 [#41 blend_src_attr]: #45 [#41 builtin_attr]: #46 [#41 compute_attr]: #59 [#41 const_attr]: #47 [#41 diagnostic_attr]: #48 [#41 fragment_attr]: #58 [#41 function_decl/0.0/0]: #81 [#41 global_value_decl/1.0/0]: #80 [#41 global_variable_decl/0.0/0]: #79 [#41 group_attr]: #49 [#41 id_attr]: #50 [#41 interpolate_attr]: #51 [#41 invariant_attr]: #52 [#41 location_attr]: #53 [#41 must_use_attr]: #54 [#41 size_attr]: #55 [#41 vertex_attr]: #57 [#41 workgroup_size_attr]: #56 [#42 ident_pattern_token]: #60 [#60 argument_expression_list]: #148 [#60 attribute/0.2]: #147 [#66 diagnostic_control]: #142 [#82 align_attr]: #43 [#82 attribute]: #135 [#82 binding_attr]: #44 [#82 blend_src_attr]: #45 [#82 builtin_attr]: #46 [#82 compound_statement]: #132 [#82 compound_statement/0.0]: #133 [#82 compound_statement/0.0/0]: #134 [#82 compute_attr]: #59 [#82 const_attr]: #47 [#82 diagnostic_attr]: #48 [#82 fragment_attr]: #58 [#82 group_attr]: #49 [#82 id_attr]: #50 [#82 interpolate_attr]: #51 [#82 invariant_attr]: #52 [#82 location_attr]: #53 [#82 must_use_attr]: #54 [#82 size_attr]: #55 [#82 vertex_attr]: #57 [#82 workgroup_size_attr]: #56 [#83 ident]: #131 [#83 ident_pattern_token]: #85 [#84 struct_body_decl]: #129 [#85 _disambiguate_template]: #128 [#87 ident]: #89 [#87 ident_pattern_token]: #85 [#87 optionally_typed_ident]: #126 [#89 optionally_typed_ident/0.1]: #123 [#90 global_variable_decl/0.2]: #121 [#91 _disambiguate_template]: #119 [#100 enable_extension_list/0.2]: #116 [#102 enable_extension_list/0.1/0]: #115 [#102 enable_extension_list/0.1/0/0.0]: #102 [#103 enable_extension_name]: #114 [#105 language_extension_list/0.2]: #112 [#107 language_extension_list/0.1/0]: #111 [#107 language_extension_list/0.1/0/0.0]: #107 [#108 language_extension_name]: #110 [#118 diagnostic_name_token]: #228 [#118 diagnostic_rule_name]: #227 [#119 _template_args_start]: #225 [#119 template_list]: #224 [#119 variable_decl/0.2]: #223 [#122 additive_expression]: #161 [#122 binary_and_expression]: #158 [#122 binary_or_expression]: #159 [#122 binary_xor_expression]: #160 [#122 bitwise_expression]: #156 [#122 bool_literal]: #178 [#122 call_expression]: #172 [#122 decimal_float_literal]: #182 [#122 decimal_int_literal]: #180 [#122 expression]: #222 [#122 float_literal]: #177 [#122 hex_float_literal]: #183 [#122 hex_int_literal]: #181 [#122 ident]: #175 [#122 ident_pattern_token]: #85 [#122 int_literal]: #176 [#122 literal]: #173 [#122 multiplicative_expression]: #163 [#122 paren_expression]: #174 [#122 primary_expression]: #170 [#122 relational_expression]: #153 [#122 shift_expression]: #157 [#122 short_circuit_and_expression]: #155 [#122 short_circuit_or_expression]: #154 [#122 singular_expression]: #164 [#122 template_elaborated_ident]: #171 [#122 unary_expression]: #162 [#124 ident]: #217 [#124 ident_pattern_token]: #85 [#124 type_specifier]: #221 [#125 additive_expression]: #161 [#125 binary_and_expression]: #158 [#125 binary_or_expression]: #159 [#125 binary_xor_expression]: #160 [#125 bitwise_expression]: #156 [#125 bool_literal]: #178 [#125 call_expression]: #172 [#125 decimal_float_literal]: #182 [#125 decimal_int_literal]: #180 [#125 expression]: #220 [#125 float_literal]: #177 [#125 hex_float_literal]: #183 [#125 hex_int_literal]: #181 [#125 ident]: #175 [#125 ident_pattern_token]: #85 [#125 int_literal]: #176 [#125 literal]: #173 [#125 multiplicative_expression]: #163 [#125 paren_expression]: #174 [#125 primary_expression]: #170 [#125 relational_expression]: #153 [#125 shift_expression]: #157 [#125 short_circuit_and_expression]: #155 [#125 short_circuit_or_expression]: #154 [#125 singular_expression]: #164 [#125 template_elaborated_ident]: #171 [#125 unary_expression]: #162 [#126 global_value_decl/1.3]: #218 [#127 ident]: #217 [#127 ident_pattern_token]: #85 [#127 type_specifier]: #216 [#130 align_attr]: #43 [#130 attribute]: #215 [#130 binding_attr]: #44 [#130 blend_src_attr]: #45 [#130 builtin_attr]: #46 [#130 compute_attr]: #59 [#130 const_attr]: #47 [#130 diagnostic_attr]: #48 [#130 fragment_attr]: #58 [#130 group_attr]: #49 [#130 id_attr]: #50 [#130 interpolate_attr]: #51 [#130 invariant_attr]: #52 [#130 location_attr]: #53 [#130 must_use_attr]: #54 [#130 size_attr]: #55 [#130 struct_member]: #212 [#130 struct_member/0.0]: #213 [#130 struct_member/0.0/0]: #214 [#130 vertex_attr]: #57 [#130 workgroup_size_attr]: #56 [#135 align_attr]: #43 [#135 attribute]: #135 [#135 binding_attr]: #44 [#135 blend_src_attr]: #45 [#135 builtin_attr]: #46 [#135 compound_statement/0.0/0]: #209 [#135 compute_attr]: #59 [#135 const_attr]: #47 [#135 diagnostic_attr]: #48 [#135 fragment_attr]: #58 [#135 group_attr]: #49 [#135 id_attr]: #50 [#135 interpolate_attr]: #51 [#135 invariant_attr]: #52 [#135 location_attr]: #53 [#135 must_use_attr]: #54 [#135 size_attr]: #55 [#135 vertex_attr]: #57 [#135 workgroup_size_attr]: #56 [#136 additive_expression]: #161 [#136 binary_and_expression]: #158 [#136 binary_or_expression]: #159 [#136 binary_xor_expression]: #160 [#136 bitwise_expression]: #156 [#136 bool_literal]: #178 [#136 call_expression]: #172 [#136 decimal_float_literal]: #182 [#136 decimal_int_literal]: #180 [#136 expression]: #208 [#136 float_literal]: #177 [#136 hex_float_literal]: #183 [#136 hex_int_literal]: #181 [#136 ident]: #175 [#136 ident_pattern_token]: #85 [#136 int_literal]: #176 [#136 literal]: #173 [#136 multiplicative_expression]: #163 [#136 paren_expression]: #174 [#136 primary_expression]: #170 [#136 relational_expression]: #153 [#136 shift_expression]: #157 [#136 short_circuit_and_expression]: #155 [#136 short_circuit_or_expression]: #154 [#136 singular_expression]: #164 [#136 template_elaborated_ident]: #171 [#136 unary_expression]: #162 [#137 additive_expression]: #161 [#137 binary_and_expression]: #158 [#137 binary_or_expression]: #159 [#137 binary_xor_expression]: #160 [#137 bitwise_expression]: #156 [#137 bool_literal]: #178 [#137 call_expression]: #172 [#137 decimal_float_literal]: #182 [#137 decimal_int_literal]: #180 [#137 expression]: #207 [#137 float_literal]: #177 [#137 hex_float_literal]: #183 [#137 hex_int_literal]: #181 [#137 ident]: #175 [#137 ident_pattern_token]: #85 [#137 int_literal]: #176 [#137 literal]: #173 [#137 multiplicative_expression]: #163 [#137 paren_expression]: #174 [#137 primary_expression]: #170 [#137 relational_expression]: #153 [#137 shift_expression]: #157 [#137 short_circuit_and_expression]: #155 [#137 short_circuit_or_expression]: #154 [#137 singular_expression]: #164 [#137 template_elaborated_ident]: #171 [#137 unary_expression]: #162 [#138 additive_expression]: #161 [#138 binary_and_expression]: #158 [#138 binary_or_expression]: #159 [#138 binary_xor_expression]: #160 [#138 bitwise_expression]: #156 [#138 bool_literal]: #178 [#138 call_expression]: #172 [#138 decimal_float_literal]: #182 [#138 decimal_int_literal]: #180 [#138 expression]: #206 [#138 float_literal]: #177 [#138 hex_float_literal]: #183 [#138 hex_int_literal]: #181 [#138 ident]: #175 [#138 ident_pattern_token]: #85 [#138 int_literal]: #176 [#138 literal]: #173 [#138 multiplicative_expression]: #163 [#138 paren_expression]: #174 [#138 primary_expression]: #170 [#138 relational_expression]: #153 [#138 shift_expression]: #157 [#138 short_circuit_and_expression]: #155 [#138 short_circuit_or_expression]: #154 [#138 singular_expression]: #164 [#138 template_elaborated_ident]: #171 [#138 unary_expression]: #162 [#139 interpolate_type_name]: #204 [#140 additive_expression]: #161 [#140 binary_and_expression]: #158 [#140 binary_or_expression]: #159 [#140 binary_xor_expression]: #160 [#140 bitwise_expression]: #156 [#140 bool_literal]: #178 [#140 call_expression]: #172 [#140 decimal_float_literal]: #182 [#140 decimal_int_literal]: #180 [#140 expression]: #203 [#140 float_literal]: #177 [#140 hex_float_literal]: #183 [#140 hex_int_literal]: #181 [#140 ident]: #175 [#140 ident_pattern_token]: #85 [#140 int_literal]: #176 [#140 literal]: #173 [#140 multiplicative_expression]: #163 [#140 paren_expression]: #174 [#140 primary_expression]: #170 [#140 relational_expression]: #153 [#140 shift_expression]: #157 [#140 short_circuit_and_expression]: #155 [#140 short_circuit_or_expression]: #154 [#140 singular_expression]: #164 [#140 template_elaborated_ident]: #171 [#140 unary_expression]: #162 [#141 additive_expression]: #161 [#141 binary_and_expression]: #158 [#141 binary_or_expression]: #159 [#141 binary_xor_expression]: #160 [#141 bitwise_expression]: #156 [#141 bool_literal]: #178 [#141 call_expression]: #172 [#141 decimal_float_literal]: #182 [#141 decimal_int_literal]: #180 [#141 expression]: #202 [#141 float_literal]: #177 [#141 hex_float_literal]: #183 [#141 hex_int_literal]: #181 [#141 ident]: #175 [#141 ident_pattern_token]: #85 [#141 int_literal]: #176 [#141 literal]: #173 [#141 multiplicative_expression]: #163 [#141 paren_expression]: #174 [#141 primary_expression]: #170 [#141 relational_expression]: #153 [#141 shift_expression]: #157 [#141 short_circuit_and_expression]: #155 [#141 short_circuit_or_expression]: #154 [#141 singular_expression]: #164 [#141 template_elaborated_ident]: #171 [#141 unary_expression]: #162 [#143 builtin_value_name]: #200 [#144 additive_expression]: #161 [#144 binary_and_expression]: #158 [#144 binary_or_expression]: #159 [#144 binary_xor_expression]: #160 [#144 bitwise_expression]: #156 [#144 bool_literal]: #178 [#144 call_expression]: #172 [#144 decimal_float_literal]: #182 [#144 decimal_int_literal]: #180 [#144 expression]: #199 [#144 float_literal]: #177 [#144 hex_float_literal]: #183 [#144 hex_int_literal]: #181 [#144 ident]: #175 [#144 ident_pattern_token]: #85 [#144 int_literal]: #176 [#144 literal]: #173 [#144 multiplicative_expression]: #163 [#144 paren_expression]: #174 [#144 primary_expression]: #170 [#144 relational_expression]: #153 [#144 shift_expression]: #157 [#144 short_circuit_and_expression]: #155 [#144 short_circuit_or_expression]: #154 [#144 singular_expression]: #164 [#144 template_elaborated_ident]: #171 [#144 unary_expression]: #162 [#145 additive_expression]: #161 [#145 binary_and_expression]: #158 [#145 binary_or_expression]: #159 [#145 binary_xor_expression]: #160 [#145 bitwise_expression]: #156 [#145 bool_literal]: #178 [#145 call_expression]: #172 [#145 decimal_float_literal]: #182 [#145 decimal_int_literal]: #180 [#145 expression]: #198 [#145 float_literal]: #177 [#145 hex_float_literal]: #183 [#145 hex_int_literal]: #181 [#145 ident]: #175 [#145 ident_pattern_token]: #85 [#145 int_literal]: #176 [#145 literal]: #173 [#145 multiplicative_expression]: #163 [#145 paren_expression]: #174 [#145 primary_expression]: #170 [#145 relational_expression]: #153 [#145 shift_expression]: #157 [#145 short_circuit_and_expression]: #155 [#145 short_circuit_or_expression]: #154 [#145 singular_expression]: #164 [#145 template_elaborated_ident]: #171 [#145 unary_expression]: #162 [#146 additive_expression]: #161 [#146 binary_and_expression]: #158 [#146 binary_or_expression]: #159 [#146 binary_xor_expression]: #160 [#146 bitwise_expression]: #156 [#146 bool_literal]: #178 [#146 call_expression]: #172 [#146 decimal_float_literal]: #182 [#146 decimal_int_literal]: #180 [#146 expression]: #197 [#146 float_literal]: #177 [#146 hex_float_literal]: #183 [#146 hex_int_literal]: #181 [#146 ident]: #175 [#146 ident_pattern_token]: #85 [#146 int_literal]: #176 [#146 literal]: #173 [#146 multiplicative_expression]: #163 [#146 paren_expression]: #174 [#146 primary_expression]: #170 [#146 relational_expression]: #153 [#146 shift_expression]: #157 [#146 short_circuit_and_expression]: #155 [#146 short_circuit_or_expression]: #154 [#146 singular_expression]: #164 [#146 template_elaborated_ident]: #171 [#146 unary_expression]: #162 [#149 additive_expression]: #161 [#149 argument_expression_list/0.1]: #150 [#149 binary_and_expression]: #158 [#149 binary_or_expression]: #159 [#149 binary_xor_expression]: #160 [#149 bitwise_expression]: #156 [#149 bool_literal]: #178 [#149 call_expression]: #172 [#149 decimal_float_literal]: #182 [#149 decimal_int_literal]: #180 [#149 expression]: #152 [#149 expression_comma_list]: #151 [#149 float_literal]: #177 [#149 hex_float_literal]: #183 [#149 hex_int_literal]: #181 [#149 ident]: #175 [#149 ident_pattern_token]: #85 [#149 int_literal]: #176 [#149 literal]: #173 [#149 multiplicative_expression]: #163 [#149 paren_expression]: #174 [#149 primary_expression]: #170 [#149 relational_expression]: #153 [#149 shift_expression]: #157 [#149 short_circuit_and_expression]: #155 [#149 short_circuit_or_expression]: #154 [#149 singular_expression]: #164 [#149 template_elaborated_ident]: #171 [#149 unary_expression]: #162 [#152 expression_comma_list/0.1]: #360 [#152 expression_comma_list/0.1/0]: #361 [#152 expression_comma_list/0.1/0/0.0]: #362 [#157 _greater_than]: #349 [#157 _greater_than_equal]: #351 [#157 _less_than]: #348 [#157 _less_than_equal]: #350 [#161 additive_operator]: #342 [#162 _shift_left]: #338 [#162 _shift_right]: #339 [#163 multiplicative_operator]: #334 [#165 bool_literal]: #178 [#165 call_expression]: #172 [#165 decimal_float_literal]: #182 [#165 decimal_int_literal]: #180 [#165 float_literal]: #177 [#165 hex_float_literal]: #183 [#165 hex_int_literal]: #181 [#165 ident]: #175 [#165 ident_pattern_token]: #85 [#165 int_literal]: #176 [#165 literal]: #173 [#165 paren_expression]: #174 [#165 primary_expression]: #170 [#165 singular_expression]: #164 [#165 template_elaborated_ident]: #171 [#165 unary_expression]: #333 [#166 bool_literal]: #178 [#166 call_expression]: #172 [#166 decimal_float_literal]: #182 [#166 decimal_int_literal]: #180 [#166 float_literal]: #177 [#166 hex_float_literal]: #183 [#166 hex_int_literal]: #181 [#166 ident]: #175 [#166 ident_pattern_token]: #85 [#166 int_literal]: #176 [#166 literal]: #173 [#166 paren_expression]: #174 [#166 primary_expression]: #170 [#166 singular_expression]: #164 [#166 template_elaborated_ident]: #171 [#166 unary_expression]: #332 [#167 bool_literal]: #178 [#167 call_expression]: #172 [#167 decimal_float_literal]: #182 [#167 decimal_int_literal]: #180 [#167 float_literal]: #177 [#167 hex_float_literal]: #183 [#167 hex_int_literal]: #181 [#167 ident]: #175 [#167 ident_pattern_token]: #85 [#167 int_literal]: #176 [#167 literal]: #173 [#167 paren_expression]: #174 [#167 primary_expression]: #170 [#167 singular_expression]: #164 [#167 template_elaborated_ident]: #171 [#167 unary_expression]: #331 [#168 bool_literal]: #178 [#168 call_expression]: #172 [#168 decimal_float_literal]: #182 [#168 decimal_int_literal]: #180 [#168 float_literal]: #177 [#168 hex_float_literal]: #183 [#168 hex_int_literal]: #181 [#168 ident]: #175 [#168 ident_pattern_token]: #85 [#168 int_literal]: #176 [#168 literal]: #173 [#168 paren_expression]: #174 [#168 primary_expression]: #170 [#168 singular_expression]: #164 [#168 template_elaborated_ident]: #171 [#168 unary_expression]: #330 [#169 bool_literal]: #178 [#169 call_expression]: #172 [#169 decimal_float_literal]: #182 [#169 decimal_int_literal]: #180 [#169 float_literal]: #177 [#169 hex_float_literal]: #183 [#169 hex_int_literal]: #181 [#169 ident]: #175 [#169 ident_pattern_token]: #85 [#169 int_literal]: #176 [#169 literal]: #173 [#169 paren_expression]: #174 [#169 primary_expression]: #170 [#169 singular_expression]: #164 [#169 template_elaborated_ident]: #171 [#169 unary_expression]: #329 [#170 component_or_swizzle_specifier]: #326 [#170 singular_expression/0.1]: #325 [#171 argument_expression_list]: #324 [#175 _disambiguate_template]: #323 [#179 additive_expression]: #161 [#179 binary_and_expression]: #158 [#179 binary_or_expression]: #159 [#179 binary_xor_expression]: #160 [#179 bitwise_expression]: #156 [#179 bool_literal]: #178 [#179 call_expression]: #172 [#179 decimal_float_literal]: #182 [#179 decimal_int_literal]: #180 [#179 expression]: #322 [#179 float_literal]: #177 [#179 hex_float_literal]: #183 [#179 hex_int_literal]: #181 [#179 ident]: #175 [#179 ident_pattern_token]: #85 [#179 int_literal]: #176 [#179 literal]: #173 [#179 multiplicative_expression]: #163 [#179 paren_expression]: #174 [#179 primary_expression]: #170 [#179 relational_expression]: #153 [#179 shift_expression]: #157 [#179 short_circuit_and_expression]: #155 [#179 short_circuit_or_expression]: #154 [#179 singular_expression]: #164 [#179 template_elaborated_ident]: #171 [#179 unary_expression]: #162 [#197 align_attr/0.4]: #320 [#198 binding_attr/0.4]: #318 [#199 blend_src_attr/0.4]: #316 [#200 builtin_attr/0.4]: #314 [#202 group_attr/0.4]: #312 [#203 id_attr/0.4]: #310 [#204 interpolate_attr/0.4]: #308 [#206 location_attr/0.4]: #306 [#207 size_attr/0.4]: #304 [#208 workgroup_size_attr/0.4]: #302 [#210 align_attr]: #43 [#210 assert_statement]: #272 [#210 assignment_statement]: #285 [#210 attribute]: #297 [#210 binding_attr]: #44 [#210 blend_src_attr]: #45 [#210 break_statement]: #267 [#210 builtin_attr]: #46 [#210 compound_statement]: #271 [#210 compound_statement/0.0]: #133 [#210 compound_statement/0.0/0]: #134 [#210 compound_statement/0.2]: #255 [#210 compound_statement/0.2/0]: #256 [#210 compute_attr]: #59 [#210 const_attr]: #47 [#210 continue_statement]: #268 [#210 core_lhs_expression]: #298 [#210 decrement_statement]: #287 [#210 diagnostic_attr]: #48 [#210 for_statement]: #263 [#210 for_statement/0.0]: #277 [#210 for_statement/0.0/0]: #292 [#210 fragment_attr]: #58 [#210 func_call_statement]: #265 [#210 group_attr]: #49 [#210 id_attr]: #50 [#210 ident]: #294 [#210 ident_pattern_token]: #85 [#210 if_statement]: #260 [#210 if_statement/0.0]: #274 [#210 if_statement/0.0/0]: #289 [#210 increment_statement]: #286 [#210 interpolate_attr]: #51 [#210 invariant_attr]: #52 [#210 lhs_expression]: #295 [#210 location_attr]: #53 [#210 loop_statement]: #262 [#210 loop_statement/0.0]: #276 [#210 loop_statement/0.0/0]: #291 [#210 must_use_attr]: #54 [#210 return_statement]: #259 [#210 size_attr]: #55 [#210 statement]: #257 [#210 switch_statement]: #261 [#210 switch_statement/0.0]: #275 [#210 switch_statement/0.0/0]: #290 [#210 template_elaborated_ident]: #279 [#210 variable_decl]: #280 [#210 variable_or_value_statement]: #266 [#210 variable_updating_statement]: #270 [#210 vertex_attr]: #57 [#210 while_statement]: #264 [#210 while_statement/0.0]: #278 [#210 while_statement/0.0/0]: #293 [#210 workgroup_size_attr]: #56 [#211 align_attr]: #43 [#211 attribute]: #254 [#211 binding_attr]: #44 [#211 blend_src_attr]: #45 [#211 builtin_attr]: #46 [#211 compute_attr]: #59 [#211 const_attr]: #47 [#211 diagnostic_attr]: #48 [#211 fragment_attr]: #58 [#211 function_header/0.3]: #249 [#211 group_attr]: #49 [#211 id_attr]: #50 [#211 interpolate_attr]: #51 [#211 invariant_attr]: #52 [#211 location_attr]: #53 [#211 must_use_attr]: #54 [#211 param]: #251 [#211 param/0.0]: #252 [#211 param/0.0/0]: #253 [#211 param_list]: #250 [#211 size_attr]: #55 [#211 vertex_attr]: #57 [#211 workgroup_size_attr]: #56 [#212 struct_body_decl/0.2]: #245 [#212 struct_body_decl/0.2/0]: #246 [#212 struct_body_decl/0.2/0/0.0]: #247 [#213 member_ident]: #243 [#215 align_attr]: #43 [#215 attribute]: #215 [#215 binding_attr]: #44 [#215 blend_src_attr]: #45 [#215 builtin_attr]: #46 [#215 compute_attr]: #59 [#215 const_attr]: #47 [#215 diagnostic_attr]: #48 [#215 fragment_attr]: #58 [#215 group_attr]: #49 [#215 id_attr]: #50 [#215 interpolate_attr]: #51 [#215 invariant_attr]: #52 [#215 location_attr]: #53 [#215 must_use_attr]: #54 [#215 size_attr]: #55 [#215 struct_member/0.0/0]: #242 [#215 vertex_attr]: #57 [#215 workgroup_size_attr]: #56 [#217 _disambiguate_template]: #241 [#219 additive_expression]: #161 [#219 binary_and_expression]: #158 [#219 binary_or_expression]: #159 [#219 binary_xor_expression]: #160 [#219 bitwise_expression]: #156 [#219 bool_literal]: #178 [#219 call_expression]: #172 [#219 decimal_float_literal]: #182 [#219 decimal_int_literal]: #180 [#219 expression]: #240 [#219 float_literal]: #177 [#219 hex_float_literal]: #183 [#219 hex_int_literal]: #181 [#219 ident]: #175 [#219 ident_pattern_token]: #85 [#219 int_literal]: #176 [#219 literal]: #173 [#219 multiplicative_expression]: #163 [#219 paren_expression]: #174 [#219 primary_expression]: #170 [#219 relational_expression]: #153 [#219 shift_expression]: #157 [#219 short_circuit_and_expression]: #155 [#219 short_circuit_or_expression]: #154 [#219 singular_expression]: #164 [#219 template_elaborated_ident]: #171 [#219 unary_expression]: #162 [#223 ident]: #89 [#223 ident_pattern_token]: #85 [#223 optionally_typed_ident]: #239 [#225 additive_expression]: #161 [#225 binary_and_expression]: #158 [#225 binary_or_expression]: #159 [#225 binary_xor_expression]: #160 [#225 bitwise_expression]: #238 [#225 bool_literal]: #178 [#225 call_expression]: #172 [#225 decimal_float_literal]: #182 [#225 decimal_int_literal]: #180 [#225 float_literal]: #177 [#225 hex_float_literal]: #183 [#225 hex_int_literal]: #181 [#225 ident]: #175 [#225 ident_pattern_token]: #85 [#225 int_literal]: #176 [#225 literal]: #173 [#225 multiplicative_expression]: #163 [#225 paren_expression]: #174 [#225 primary_expression]: #170 [#225 relational_expression]: #235 [#225 shift_expression]: #157 [#225 short_circuit_and_expression]: #237 [#225 short_circuit_or_expression]: #236 [#225 singular_expression]: #164 [#225 template_arg_comma_list]: #233 [#225 template_arg_expression]: #234 [#225 template_elaborated_ident]: #171 [#225 unary_expression]: #162 [#227 diagnostic_control/0.4]: #231 [#230 diagnostic_name_token]: #487 [#233 _template_args_end]: #484 [#234 template_arg_comma_list/0.1]: #480 [#234 template_arg_comma_list/0.1/0]: #481 [#234 template_arg_comma_list/0.1/0/0.0]: #482 [#241 _template_args_start]: #225 [#241 template_elaborated_ident/0.2]: #477 [#241 template_list]: #398 [#245 struct_body_decl/0.3]: #474 [#247 struct_body_decl/0.2/0]: #473 [#247 struct_body_decl/0.2/0/0.0]: #247 [#248 align_attr]: #43 [#248 attribute]: #215 [#248 binding_attr]: #44 [#248 blend_src_attr]: #45 [#248 builtin_attr]: #46 [#248 compute_attr]: #59 [#248 const_attr]: #47 [#248 diagnostic_attr]: #48 [#248 fragment_attr]: #58 [#248 group_attr]: #49 [#248 id_attr]: #50 [#248 interpolate_attr]: #51 [#248 invariant_attr]: #52 [#248 location_attr]: #53 [#248 must_use_attr]: #54 [#248 size_attr]: #55 [#248 struct_member]: #472 [#248 struct_member/0.0]: #213 [#248 struct_member/0.0/0]: #214 [#248 vertex_attr]: #57 [#248 workgroup_size_attr]: #56 [#251 param_list/0.1]: #467 [#251 param_list/0.1/0]: #468 [#251 param_list/0.1/0/0.0]: #469 [#252 ident]: #466 [#252 ident_pattern_token]: #85 [#254 align_attr]: #43 [#254 attribute]: #254 [#254 binding_attr]: #44 [#254 blend_src_attr]: #45 [#254 builtin_attr]: #46 [#254 compute_attr]: #59 [#254 const_attr]: #47 [#254 diagnostic_attr]: #48 [#254 fragment_attr]: #58 [#254 group_attr]: #49 [#254 id_attr]: #50 [#254 interpolate_attr]: #51 [#254 invariant_attr]: #52 [#254 location_attr]: #53 [#254 must_use_attr]: #54 [#254 param/0.0/0]: #465 [#254 size_attr]: #55 [#254 vertex_attr]: #57 [#254 workgroup_size_attr]: #56 [#257 align_attr]: #43 [#257 assert_statement]: #272 [#257 assignment_statement]: #285 [#257 attribute]: #297 [#257 binding_attr]: #44 [#257 blend_src_attr]: #45 [#257 break_statement]: #267 [#257 builtin_attr]: #46 [#257 compound_statement]: #271 [#257 compound_statement/0.0]: #133 [#257 compound_statement/0.0/0]: #134 [#257 compound_statement/0.2/0]: #463 [#257 compute_attr]: #59 [#257 const_attr]: #47 [#257 continue_statement]: #268 [#257 core_lhs_expression]: #298 [#257 decrement_statement]: #287 [#257 diagnostic_attr]: #48 [#257 for_statement]: #263 [#257 for_statement/0.0]: #277 [#257 for_statement/0.0/0]: #292 [#257 fragment_attr]: #58 [#257 func_call_statement]: #265 [#257 group_attr]: #49 [#257 id_attr]: #50 [#257 ident]: #294 [#257 ident_pattern_token]: #85 [#257 if_statement]: #260 [#257 if_statement/0.0]: #274 [#257 if_statement/0.0/0]: #289 [#257 increment_statement]: #286 [#257 interpolate_attr]: #51 [#257 invariant_attr]: #52 [#257 lhs_expression]: #295 [#257 location_attr]: #53 [#257 loop_statement]: #262 [#257 loop_statement/0.0]: #276 [#257 loop_statement/0.0/0]: #291 [#257 must_use_attr]: #54 [#257 return_statement]: #259 [#257 size_attr]: #55 [#257 statement]: #257 [#257 switch_statement]: #261 [#257 switch_statement/0.0]: #275 [#257 switch_statement/0.0/0]: #290 [#257 template_elaborated_ident]: #279 [#257 variable_decl]: #280 [#257 variable_or_value_statement]: #266 [#257 variable_updating_statement]: #270 [#257 vertex_attr]: #57 [#257 while_statement]: #264 [#257 while_statement/0.0]: #278 [#257 while_statement/0.0/0]: #293 [#257 workgroup_size_attr]: #56 [#273 additive_expression]: #161 [#273 binary_and_expression]: #158 [#273 binary_or_expression]: #159 [#273 binary_xor_expression]: #160 [#273 bitwise_expression]: #156 [#273 bool_literal]: #178 [#273 call_expression]: #172 [#273 decimal_float_literal]: #182 [#273 decimal_int_literal]: #180 [#273 expression]: #454 [#273 float_literal]: #177 [#273 hex_float_literal]: #183 [#273 hex_int_literal]: #181 [#273 ident]: #175 [#273 ident_pattern_token]: #85 [#273 int_literal]: #176 [#273 literal]: #173 [#273 multiplicative_expression]: #163 [#273 paren_expression]: #174 [#273 primary_expression]: #170 [#273 relational_expression]: #153 [#273 return_statement/0.1]: #453 [#273 shift_expression]: #157 [#273 short_circuit_and_expression]: #155 [#273 short_circuit_or_expression]: #154 [#273 singular_expression]: #164 [#273 template_elaborated_ident]: #171 [#273 unary_expression]: #162 [#274 if_clause]: #451 [#279 argument_expression_list]: #446 [#281 ident]: #89 [#281 ident_pattern_token]: #85 [#281 optionally_typed_ident]: #444 [#282 ident]: #89 [#282 ident_pattern_token]: #85 [#282 optionally_typed_ident]: #443 [#294 _disambiguate_template]: #442 [#295 _shift_left_assign]: #439 [#295 _shift_right_assign]: #438 [#295 assignment_statement/0.1]: #425 [#295 compound_assignment_operator]: #429 [#297 align_attr]: #43 [#297 attribute]: #297 [#297 binding_attr]: #44 [#297 blend_src_attr]: #45 [#297 builtin_attr]: #46 [#297 compound_statement/0.0/0]: #209 [#297 compute_attr]: #59 [#297 const_attr]: #47 [#297 diagnostic_attr]: #48 [#297 for_statement/0.0/0]: #422 [#297 fragment_attr]: #58 [#297 group_attr]: #49 [#297 id_attr]: #50 [#297 if_statement/0.0/0]: #419 [#297 interpolate_attr]: #51 [#297 invariant_attr]: #52 [#297 location_attr]: #53 [#297 loop_statement/0.0/0]: #421 [#297 must_use_attr]: #54 [#297 size_attr]: #55 [#297 switch_statement/0.0/0]: #420 [#297 vertex_attr]: #57 [#297 while_statement/0.0/0]: #423 [#297 workgroup_size_attr]: #56 [#298 component_or_swizzle_specifier]: #418 [#298 lhs_expression/0.1]: #417 [#299 core_lhs_expression]: #298 [#299 ident]: #414 [#299 ident_pattern_token]: #85 [#299 lhs_expression]: #416 [#300 core_lhs_expression]: #298 [#300 ident]: #414 [#300 ident_pattern_token]: #85 [#300 lhs_expression]: #415 [#301 core_lhs_expression]: #298 [#301 ident]: #414 [#301 ident_pattern_token]: #85 [#301 lhs_expression]: #413 [#303 additive_expression]: #161 [#303 binary_and_expression]: #158 [#303 binary_or_expression]: #159 [#303 binary_xor_expression]: #160 [#303 bitwise_expression]: #156 [#303 bool_literal]: #178 [#303 call_expression]: #172 [#303 decimal_float_literal]: #182 [#303 decimal_int_literal]: #180 [#303 expression]: #411 [#303 float_literal]: #177 [#303 hex_float_literal]: #183 [#303 hex_int_literal]: #181 [#303 ident]: #175 [#303 ident_pattern_token]: #85 [#303 int_literal]: #176 [#303 literal]: #173 [#303 multiplicative_expression]: #163 [#303 paren_expression]: #174 [#303 primary_expression]: #170 [#303 relational_expression]: #153 [#303 shift_expression]: #157 [#303 short_circuit_and_expression]: #155 [#303 short_circuit_or_expression]: #154 [#303 singular_expression]: #164 [#303 template_elaborated_ident]: #171 [#303 unary_expression]: #162 [#309 interpolate_sampling_name]: #406 [#323 _template_args_start]: #225 [#323 template_elaborated_ident/0.2]: #397 [#323 template_list]: #398 [#327 additive_expression]: #161 [#327 binary_and_expression]: #158 [#327 binary_or_expression]: #159 [#327 binary_xor_expression]: #160 [#327 bitwise_expression]: #156 [#327 bool_literal]: #178 [#327 call_expression]: #172 [#327 decimal_float_literal]: #182 [#327 decimal_int_literal]: #180 [#327 expression]: #396 [#327 float_literal]: #177 [#327 hex_float_literal]: #183 [#327 hex_int_literal]: #181 [#327 ident]: #175 [#327 ident_pattern_token]: #85 [#327 int_literal]: #176 [#327 literal]: #173 [#327 multiplicative_expression]: #163 [#327 paren_expression]: #174 [#327 primary_expression]: #170 [#327 relational_expression]: #153 [#327 shift_expression]: #157 [#327 short_circuit_and_expression]: #155 [#327 short_circuit_or_expression]: #154 [#327 singular_expression]: #164 [#327 template_elaborated_ident]: #171 [#327 unary_expression]: #162 [#328 member_ident]: #386 [#328 swizzle_name]: #387 [#334 bool_literal]: #178 [#334 call_expression]: #172 [#334 decimal_float_literal]: #182 [#334 decimal_int_literal]: #180 [#334 float_literal]: #177 [#334 hex_float_literal]: #183 [#334 hex_int_literal]: #181 [#334 ident]: #175 [#334 ident_pattern_token]: #85 [#334 int_literal]: #176 [#334 literal]: #173 [#334 paren_expression]: #174 [#334 primary_expression]: #170 [#334 singular_expression]: #164 [#334 template_elaborated_ident]: #171 [#334 unary_expression]: #385 [#338 bool_literal]: #178 [#338 call_expression]: #172 [#338 decimal_float_literal]: #182 [#338 decimal_int_literal]: #180 [#338 float_literal]: #177 [#338 hex_float_literal]: #183 [#338 hex_int_literal]: #181 [#338 ident]: #175 [#338 ident_pattern_token]: #85 [#338 int_literal]: #176 [#338 literal]: #173 [#338 paren_expression]: #174 [#338 primary_expression]: #170 [#338 singular_expression]: #164 [#338 template_elaborated_ident]: #171 [#338 unary_expression]: #384 [#339 bool_literal]: #178 [#339 call_expression]: #172 [#339 decimal_float_literal]: #182 [#339 decimal_int_literal]: #180 [#339 float_literal]: #177 [#339 hex_float_literal]: #183 [#339 hex_int_literal]: #181 [#339 ident]: #175 [#339 ident_pattern_token]: #85 [#339 int_literal]: #176 [#339 literal]: #173 [#339 paren_expression]: #174 [#339 primary_expression]: #170 [#339 singular_expression]: #164 [#339 template_elaborated_ident]: #171 [#339 unary_expression]: #383 [#342 bool_literal]: #178 [#342 call_expression]: #172 [#342 decimal_float_literal]: #182 [#342 decimal_int_literal]: #180 [#342 float_literal]: #177 [#342 hex_float_literal]: #183 [#342 hex_int_literal]: #181 [#342 ident]: #175 [#342 ident_pattern_token]: #85 [#342 int_literal]: #176 [#342 literal]: #173 [#342 multiplicative_expression]: #381 [#342 paren_expression]: #174 [#342 primary_expression]: #170 [#342 singular_expression]: #164 [#342 template_elaborated_ident]: #171 [#342 unary_expression]: #382 [#345 bool_literal]: #178 [#345 call_expression]: #172 [#345 decimal_float_literal]: #182 [#345 decimal_int_literal]: #180 [#345 float_literal]: #177 [#345 hex_float_literal]: #183 [#345 hex_int_literal]: #181 [#345 ident]: #175 [#345 ident_pattern_token]: #85 [#345 int_literal]: #176 [#345 literal]: #173 [#345 paren_expression]: #174 [#345 primary_expression]: #170 [#345 singular_expression]: #164 [#345 template_elaborated_ident]: #171 [#345 unary_expression]: #380 [#346 bool_literal]: #178 [#346 call_expression]: #172 [#346 decimal_float_literal]: #182 [#346 decimal_int_literal]: #180 [#346 float_literal]: #177 [#346 hex_float_literal]: #183 [#346 hex_int_literal]: #181 [#346 ident]: #175 [#346 ident_pattern_token]: #85 [#346 int_literal]: #176 [#346 literal]: #173 [#346 paren_expression]: #174 [#346 primary_expression]: #170 [#346 singular_expression]: #164 [#346 template_elaborated_ident]: #171 [#346 unary_expression]: #379 [#347 bool_literal]: #178 [#347 call_expression]: #172 [#347 decimal_float_literal]: #182 [#347 decimal_int_literal]: #180 [#347 float_literal]: #177 [#347 hex_float_literal]: #183 [#347 hex_int_literal]: #181 [#347 ident]: #175 [#347 ident_pattern_token]: #85 [#347 int_literal]: #176 [#347 literal]: #173 [#347 paren_expression]: #174 [#347 primary_expression]: #170 [#347 singular_expression]: #164 [#347 template_elaborated_ident]: #171 [#347 unary_expression]: #378 [#348 additive_expression]: #161 [#348 bool_literal]: #178 [#348 call_expression]: #172 [#348 decimal_float_literal]: #182 [#348 decimal_int_literal]: #180 [#348 float_literal]: #177 [#348 hex_float_literal]: #183 [#348 hex_int_literal]: #181 [#348 ident]: #175 [#348 ident_pattern_token]: #85 [#348 int_literal]: #176 [#348 literal]: #173 [#348 multiplicative_expression]: #163 [#348 paren_expression]: #174 [#348 primary_expression]: #170 [#348 shift_expression]: #377 [#348 singular_expression]: #164 [#348 template_elaborated_ident]: #171 [#348 unary_expression]: #370 [#349 additive_expression]: #161 [#349 bool_literal]: #178 [#349 call_expression]: #172 [#349 decimal_float_literal]: #182 [#349 decimal_int_literal]: #180 [#349 float_literal]: #177 [#349 hex_float_literal]: #183 [#349 hex_int_literal]: #181 [#349 ident]: #175 [#349 ident_pattern_token]: #85 [#349 int_literal]: #176 [#349 literal]: #173 [#349 multiplicative_expression]: #163 [#349 paren_expression]: #174 [#349 primary_expression]: #170 [#349 shift_expression]: #376 [#349 singular_expression]: #164 [#349 template_elaborated_ident]: #171 [#349 unary_expression]: #370 [#350 additive_expression]: #161 [#350 bool_literal]: #178 [#350 call_expression]: #172 [#350 decimal_float_literal]: #182 [#350 decimal_int_literal]: #180 [#350 float_literal]: #177 [#350 hex_float_literal]: #183 [#350 hex_int_literal]: #181 [#350 ident]: #175 [#350 ident_pattern_token]: #85 [#350 int_literal]: #176 [#350 literal]: #173 [#350 multiplicative_expression]: #163 [#350 paren_expression]: #174 [#350 primary_expression]: #170 [#350 shift_expression]: #375 [#350 singular_expression]: #164 [#350 template_elaborated_ident]: #171 [#350 unary_expression]: #370 [#351 additive_expression]: #161 [#351 bool_literal]: #178 [#351 call_expression]: #172 [#351 decimal_float_literal]: #182 [#351 decimal_int_literal]: #180 [#351 float_literal]: #177 [#351 hex_float_literal]: #183 [#351 hex_int_literal]: #181 [#351 ident]: #175 [#351 ident_pattern_token]: #85 [#351 int_literal]: #176 [#351 literal]: #173 [#351 multiplicative_expression]: #163 [#351 paren_expression]: #174 [#351 primary_expression]: #170 [#351 shift_expression]: #374 [#351 singular_expression]: #164 [#351 template_elaborated_ident]: #171 [#351 unary_expression]: #370 [#352 additive_expression]: #161 [#352 bool_literal]: #178 [#352 call_expression]: #172 [#352 decimal_float_literal]: #182 [#352 decimal_int_literal]: #180 [#352 float_literal]: #177 [#352 hex_float_literal]: #183 [#352 hex_int_literal]: #181 [#352 ident]: #175 [#352 ident_pattern_token]: #85 [#352 int_literal]: #176 [#352 literal]: #173 [#352 multiplicative_expression]: #163 [#352 paren_expression]: #174 [#352 primary_expression]: #170 [#352 shift_expression]: #373 [#352 singular_expression]: #164 [#352 template_elaborated_ident]: #171 [#352 unary_expression]: #370 [#353 additive_expression]: #161 [#353 bool_literal]: #178 [#353 call_expression]: #172 [#353 decimal_float_literal]: #182 [#353 decimal_int_literal]: #180 [#353 float_literal]: #177 [#353 hex_float_literal]: #183 [#353 hex_int_literal]: #181 [#353 ident]: #175 [#353 ident_pattern_token]: #85 [#353 int_literal]: #176 [#353 literal]: #173 [#353 multiplicative_expression]: #163 [#353 paren_expression]: #174 [#353 primary_expression]: #170 [#353 shift_expression]: #372 [#353 singular_expression]: #164 [#353 template_elaborated_ident]: #171 [#353 unary_expression]: #370 [#358 additive_expression]: #161 [#358 bool_literal]: #178 [#358 call_expression]: #172 [#358 decimal_float_literal]: #182 [#358 decimal_int_literal]: #180 [#358 float_literal]: #177 [#358 hex_float_literal]: #183 [#358 hex_int_literal]: #181 [#358 ident]: #175 [#358 ident_pattern_token]: #85 [#358 int_literal]: #176 [#358 literal]: #173 [#358 multiplicative_expression]: #163 [#358 paren_expression]: #174 [#358 primary_expression]: #170 [#358 relational_expression]: #371 [#358 shift_expression]: #157 [#358 singular_expression]: #164 [#358 template_elaborated_ident]: #171 [#358 unary_expression]: #370 [#359 additive_expression]: #161 [#359 bool_literal]: #178 [#359 call_expression]: #172 [#359 decimal_float_literal]: #182 [#359 decimal_int_literal]: #180 [#359 float_literal]: #177 [#359 hex_float_literal]: #183 [#359 hex_int_literal]: #181 [#359 ident]: #175 [#359 ident_pattern_token]: #85 [#359 int_literal]: #176 [#359 literal]: #173 [#359 multiplicative_expression]: #163 [#359 paren_expression]: #174 [#359 primary_expression]: #170 [#359 relational_expression]: #369 [#359 shift_expression]: #157 [#359 singular_expression]: #164 [#359 template_elaborated_ident]: #171 [#359 unary_expression]: #370 [#360 expression_comma_list/0.2]: #367 [#362 expression_comma_list/0.1/0]: #366 [#362 expression_comma_list/0.1/0/0.0]: #362 [#363 additive_expression]: #161 [#363 binary_and_expression]: #158 [#363 binary_or_expression]: #159 [#363 binary_xor_expression]: #160 [#363 bitwise_expression]: #156 [#363 bool_literal]: #178 [#363 call_expression]: #172 [#363 decimal_float_literal]: #182 [#363 decimal_int_literal]: #180 [#363 expression]: #365 [#363 float_literal]: #177 [#363 hex_float_literal]: #183 [#363 hex_int_literal]: #181 [#363 ident]: #175 [#363 ident_pattern_token]: #85 [#363 int_literal]: #176 [#363 literal]: #173 [#363 multiplicative_expression]: #163 [#363 paren_expression]: #174 [#363 primary_expression]: #170 [#363 relational_expression]: #153 [#363 shift_expression]: #157 [#363 short_circuit_and_expression]: #155 [#363 short_circuit_or_expression]: #154 [#363 singular_expression]: #164 [#363 template_elaborated_ident]: #171 [#363 unary_expression]: #162 [#370 _shift_left]: #338 [#370 _shift_right]: #339 [#381 multiplicative_operator]: #334 [#386 component_or_swizzle_specifier]: #529 [#386 component_or_swizzle_specifier/1.2]: #528 [#387 component_or_swizzle_specifier]: #527 [#387 component_or_swizzle_specifier/2.2]: #526 [#406 interpolate_attr/1.6]: #523 [#411 workgroup_size_attr/1.6]: #521 [#414 _disambiguate_template]: #519 [#424 additive_expression]: #161 [#424 binary_and_expression]: #158 [#424 binary_or_expression]: #159 [#424 binary_xor_expression]: #160 [#424 bitwise_expression]: #156 [#424 bool_literal]: #178 [#424 call_expression]: #172 [#424 decimal_float_literal]: #182 [#424 decimal_int_literal]: #180 [#424 expression]: #518 [#424 float_literal]: #177 [#424 hex_float_literal]: #183 [#424 hex_int_literal]: #181 [#424 ident]: #175 [#424 ident_pattern_token]: #85 [#424 int_literal]: #176 [#424 literal]: #173 [#424 multiplicative_expression]: #163 [#424 paren_expression]: #174 [#424 primary_expression]: #170 [#424 relational_expression]: #153 [#424 shift_expression]: #157 [#424 short_circuit_and_expression]: #155 [#424 short_circuit_or_expression]: #154 [#424 singular_expression]: #164 [#424 template_elaborated_ident]: #171 [#424 unary_expression]: #162 [#425 additive_expression]: #161 [#425 binary_and_expression]: #158 [#425 binary_or_expression]: #159 [#425 binary_xor_expression]: #160 [#425 bitwise_expression]: #156 [#425 bool_literal]: #178 [#425 call_expression]: #172 [#425 decimal_float_literal]: #182 [#425 decimal_int_literal]: #180 [#425 expression]: #517 [#425 float_literal]: #177 [#425 hex_float_literal]: #183 [#425 hex_int_literal]: #181 [#425 ident]: #175 [#425 ident_pattern_token]: #85 [#425 int_literal]: #176 [#425 literal]: #173 [#425 multiplicative_expression]: #163 [#425 paren_expression]: #174 [#425 primary_expression]: #170 [#425 relational_expression]: #153 [#425 shift_expression]: #157 [#425 short_circuit_and_expression]: #155 [#425 short_circuit_or_expression]: #154 [#425 singular_expression]: #164 [#425 template_elaborated_ident]: #171 [#425 unary_expression]: #162 [#442 _template_args_start]: #225 [#442 template_elaborated_ident/0.2]: #397 [#442 template_list]: #398 [#445 additive_expression]: #161 [#445 binary_and_expression]: #158 [#445 binary_or_expression]: #159 [#445 binary_xor_expression]: #160 [#445 bitwise_expression]: #156 [#445 bool_literal]: #178 [#445 call_expression]: #172 [#445 decimal_float_literal]: #182 [#445 decimal_int_literal]: #180 [#445 expression]: #514 [#445 float_literal]: #177 [#445 hex_float_literal]: #183 [#445 hex_int_literal]: #181 [#445 ident]: #175 [#445 ident_pattern_token]: #85 [#445 int_literal]: #176 [#445 literal]: #173 [#445 multiplicative_expression]: #163 [#445 paren_expression]: #174 [#445 primary_expression]: #170 [#445 relational_expression]: #153 [#445 shift_expression]: #157 [#445 short_circuit_and_expression]: #155 [#445 short_circuit_or_expression]: #154 [#445 singular_expression]: #164 [#445 template_elaborated_ident]: #171 [#445 unary_expression]: #162 [#447 additive_expression]: #161 [#447 binary_and_expression]: #158 [#447 binary_or_expression]: #159 [#447 binary_xor_expression]: #160 [#447 bitwise_expression]: #156 [#447 bool_literal]: #178 [#447 call_expression]: #172 [#447 decimal_float_literal]: #182 [#447 decimal_int_literal]: #180 [#447 expression]: #513 [#447 float_literal]: #177 [#447 hex_float_literal]: #183 [#447 hex_int_literal]: #181 [#447 ident]: #175 [#447 ident_pattern_token]: #85 [#447 int_literal]: #176 [#447 literal]: #173 [#447 multiplicative_expression]: #163 [#447 paren_expression]: #174 [#447 primary_expression]: #170 [#447 relational_expression]: #153 [#447 shift_expression]: #157 [#447 short_circuit_and_expression]: #155 [#447 short_circuit_or_expression]: #154 [#447 singular_expression]: #164 [#447 template_elaborated_ident]: #171 [#447 unary_expression]: #162 [#449 align_attr]: #43 [#449 attribute]: #511 [#449 binding_attr]: #44 [#449 blend_src_attr]: #45 [#449 builtin_attr]: #46 [#449 compute_attr]: #59 [#449 const_attr]: #47 [#449 diagnostic_attr]: #48 [#449 fragment_attr]: #58 [#449 group_attr]: #49 [#449 id_attr]: #50 [#449 interpolate_attr]: #51 [#449 invariant_attr]: #52 [#449 location_attr]: #53 [#449 loop_statement/0.2]: #509 [#449 loop_statement/0.2/0]: #510 [#449 must_use_attr]: #54 [#449 size_attr]: #55 [#449 vertex_attr]: #57 [#449 workgroup_size_attr]: #56 [#450 additive_expression]: #161 [#450 binary_and_expression]: #158 [#450 binary_or_expression]: #159 [#450 binary_xor_expression]: #160 [#450 bitwise_expression]: #156 [#450 bool_literal]: #178 [#450 call_expression]: #172 [#450 decimal_float_literal]: #182 [#450 decimal_int_literal]: #180 [#450 expression]: #508 [#450 float_literal]: #177 [#450 hex_float_literal]: #183 [#450 hex_int_literal]: #181 [#450 ident]: #175 [#450 ident_pattern_token]: #85 [#450 int_literal]: #176 [#450 literal]: #173 [#450 multiplicative_expression]: #163 [#450 paren_expression]: #174 [#450 primary_expression]: #170 [#450 relational_expression]: #153 [#450 shift_expression]: #157 [#450 short_circuit_and_expression]: #155 [#450 short_circuit_or_expression]: #154 [#450 singular_expression]: #164 [#450 template_elaborated_ident]: #171 [#450 unary_expression]: #162 [#451 else_if_clause]: #506 [#451 if_statement/0.2]: #504 [#451 if_statement/0.2/0]: #505 [#452 additive_expression]: #161 [#452 binary_and_expression]: #158 [#452 binary_or_expression]: #159 [#452 binary_xor_expression]: #160 [#452 bitwise_expression]: #156 [#452 bool_literal]: #178 [#452 call_expression]: #172 [#452 decimal_float_literal]: #182 [#452 decimal_int_literal]: #180 [#452 expression]: #503 [#452 float_literal]: #177 [#452 hex_float_literal]: #183 [#452 hex_int_literal]: #181 [#452 ident]: #175 [#452 ident_pattern_token]: #85 [#452 int_literal]: #176 [#452 literal]: #173 [#452 multiplicative_expression]: #163 [#452 paren_expression]: #174 [#452 primary_expression]: #170 [#452 relational_expression]: #153 [#452 shift_expression]: #157 [#452 short_circuit_and_expression]: #155 [#452 short_circuit_or_expression]: #154 [#452 singular_expression]: #164 [#452 template_elaborated_ident]: #171 [#452 unary_expression]: #162 [#467 param_list/0.2]: #500 [#469 param_list/0.1/0]: #499 [#469 param_list/0.1/0/0.0]: #469 [#470 align_attr]: #43 [#470 attribute]: #254 [#470 binding_attr]: #44 [#470 blend_src_attr]: #45 [#470 builtin_attr]: #46 [#470 compute_attr]: #59 [#470 const_attr]: #47 [#470 diagnostic_attr]: #48 [#470 fragment_attr]: #58 [#470 group_attr]: #49 [#470 id_attr]: #50 [#470 interpolate_attr]: #51 [#470 invariant_attr]: #52 [#470 location_attr]: #53 [#470 must_use_attr]: #54 [#470 param]: #498 [#470 param/0.0]: #252 [#470 param/0.0/0]: #253 [#470 size_attr]: #55 [#470 vertex_attr]: #57 [#470 workgroup_size_attr]: #56 [#471 function_header/0.5]: #496 [#476 ident]: #217 [#476 ident_pattern_token]: #85 [#476 type_specifier]: #494 [#478 additive_expression]: #161 [#478 bool_literal]: #178 [#478 call_expression]: #172 [#478 decimal_float_literal]: #182 [#478 decimal_int_literal]: #180 [#478 float_literal]: #177 [#478 hex_float_literal]: #183 [#478 hex_int_literal]: #181 [#478 ident]: #175 [#478 ident_pattern_token]: #85 [#478 int_literal]: #176 [#478 literal]: #173 [#478 multiplicative_expression]: #163 [#478 paren_expression]: #174 [#478 primary_expression]: #170 [#478 relational_expression]: #493 [#478 shift_expression]: #157 [#478 singular_expression]: #164 [#478 template_elaborated_ident]: #171 [#478 unary_expression]: #370 [#479 additive_expression]: #161 [#479 bool_literal]: #178 [#479 call_expression]: #172 [#479 decimal_float_literal]: #182 [#479 decimal_int_literal]: #180 [#479 float_literal]: #177 [#479 hex_float_literal]: #183 [#479 hex_int_literal]: #181 [#479 ident]: #175 [#479 ident_pattern_token]: #85 [#479 int_literal]: #176 [#479 literal]: #173 [#479 multiplicative_expression]: #163 [#479 paren_expression]: #174 [#479 primary_expression]: #170 [#479 relational_expression]: #492 [#479 shift_expression]: #157 [#479 singular_expression]: #164 [#479 template_elaborated_ident]: #171 [#479 unary_expression]: #370 [#480 template_arg_comma_list/0.2]: #490 [#482 template_arg_comma_list/0.1/0]: #489 [#482 template_arg_comma_list/0.1/0/0.0]: #482 [#483 additive_expression]: #161 [#483 binary_and_expression]: #158 [#483 binary_or_expression]: #159 [#483 binary_xor_expression]: #160 [#483 bitwise_expression]: #238 [#483 bool_literal]: #178 [#483 call_expression]: #172 [#483 decimal_float_literal]: #182 [#483 decimal_int_literal]: #180 [#483 float_literal]: #177 [#483 hex_float_literal]: #183 [#483 hex_int_literal]: #181 [#483 ident]: #175 [#483 ident_pattern_token]: #85 [#483 int_literal]: #176 [#483 literal]: #173 [#483 multiplicative_expression]: #163 [#483 paren_expression]: #174 [#483 primary_expression]: #170 [#483 relational_expression]: #235 [#483 shift_expression]: #157 [#483 short_circuit_and_expression]: #237 [#483 short_circuit_or_expression]: #236 [#483 singular_expression]: #164 [#483 template_arg_expression]: #488 [#483 template_elaborated_ident]: #171 [#483 unary_expression]: #162 [#497 align_attr]: #43 [#497 attribute]: #559 [#497 binding_attr]: #44 [#497 blend_src_attr]: #45 [#497 builtin_attr]: #46 [#497 compute_attr]: #59 [#497 const_attr]: #47 [#497 diagnostic_attr]: #48 [#497 fragment_attr]: #58 [#497 function_header/0.5/0.1]: #557 [#497 function_header/0.5/0.1/0]: #558 [#497 group_attr]: #49 [#497 id_attr]: #50 [#497 interpolate_attr]: #51 [#497 invariant_attr]: #52 [#497 location_attr]: #53 [#497 must_use_attr]: #54 [#497 size_attr]: #55 [#497 vertex_attr]: #57 [#497 workgroup_size_attr]: #56 [#502 ident]: #217 [#502 ident_pattern_token]: #85 [#502 type_specifier]: #556 [#503 align_attr]: #43 [#503 attribute]: #135 [#503 binding_attr]: #44 [#503 blend_src_attr]: #45 [#503 builtin_attr]: #46 [#503 compound_statement]: #555 [#503 compound_statement/0.0]: #133 [#503 compound_statement/0.0/0]: #134 [#503 compute_attr]: #59 [#503 const_attr]: #47 [#503 diagnostic_attr]: #48 [#503 fragment_attr]: #58 [#503 group_attr]: #49 [#503 id_attr]: #50 [#503 interpolate_attr]: #51 [#503 invariant_attr]: #52 [#503 location_attr]: #53 [#503 must_use_attr]: #54 [#503 size_attr]: #55 [#503 vertex_attr]: #57 [#503 workgroup_size_attr]: #56 [#504 else_clause]: #553 [#504 if_statement/0.3]: #552 [#506 else_if_clause]: #506 [#506 if_statement/0.2/0]: #551 [#508 align_attr]: #43 [#508 attribute]: #549 [#508 binding_attr]: #44 [#508 blend_src_attr]: #45 [#508 builtin_attr]: #46 [#508 compute_attr]: #59 [#508 const_attr]: #47 [#508 diagnostic_attr]: #48 [#508 fragment_attr]: #58 [#508 group_attr]: #49 [#508 id_attr]: #50 [#508 interpolate_attr]: #51 [#508 invariant_attr]: #52 [#508 location_attr]: #53 [#508 must_use_attr]: #54 [#508 size_attr]: #55 [#508 switch_body]: #546 [#508 switch_body/0.0]: #547 [#508 switch_body/0.0/0]: #548 [#508 vertex_attr]: #57 [#508 workgroup_size_attr]: #56 [#511 align_attr]: #43 [#511 attribute]: #511 [#511 binding_attr]: #44 [#511 blend_src_attr]: #45 [#511 builtin_attr]: #46 [#511 compute_attr]: #59 [#511 const_attr]: #47 [#511 diagnostic_attr]: #48 [#511 fragment_attr]: #58 [#511 group_attr]: #49 [#511 id_attr]: #50 [#511 interpolate_attr]: #51 [#511 invariant_attr]: #52 [#511 location_attr]: #53 [#511 loop_statement/0.2/0]: #544 [#511 must_use_attr]: #54 [#511 size_attr]: #55 [#511 vertex_attr]: #57 [#511 workgroup_size_attr]: #56 [#512 assignment_statement]: #285 [#512 core_lhs_expression]: #298 [#512 decrement_statement]: #287 [#512 for_header]: #538 [#512 for_header/0.0]: #539 [#512 for_init]: #540 [#512 func_call_statement]: #543 [#512 ident]: #294 [#512 ident_pattern_token]: #85 [#512 increment_statement]: #286 [#512 lhs_expression]: #295 [#512 template_elaborated_ident]: #279 [#512 variable_decl]: #280 [#512 variable_or_value_statement]: #541 [#512 variable_updating_statement]: #542 [#513 align_attr]: #43 [#513 attribute]: #135 [#513 binding_attr]: #44 [#513 blend_src_attr]: #45 [#513 builtin_attr]: #46 [#513 compound_statement]: #537 [#513 compound_statement/0.0]: #133 [#513 compound_statement/0.0/0]: #134 [#513 compute_attr]: #59 [#513 const_attr]: #47 [#513 diagnostic_attr]: #48 [#513 fragment_attr]: #58 [#513 group_attr]: #49 [#513 id_attr]: #50 [#513 interpolate_attr]: #51 [#513 invariant_attr]: #52 [#513 location_attr]: #53 [#513 must_use_attr]: #54 [#513 size_attr]: #55 [#513 vertex_attr]: #57 [#513 workgroup_size_attr]: #56 [#515 additive_expression]: #161 [#515 binary_and_expression]: #158 [#515 binary_or_expression]: #159 [#515 binary_xor_expression]: #160 [#515 bitwise_expression]: #156 [#515 bool_literal]: #178 [#515 call_expression]: #172 [#515 decimal_float_literal]: #182 [#515 decimal_int_literal]: #180 [#515 expression]: #536 [#515 float_literal]: #177 [#515 hex_float_literal]: #183 [#515 hex_int_literal]: #181 [#515 ident]: #175 [#515 ident_pattern_token]: #85 [#515 int_literal]: #176 [#515 literal]: #173 [#515 multiplicative_expression]: #163 [#515 paren_expression]: #174 [#515 primary_expression]: #170 [#515 relational_expression]: #153 [#515 shift_expression]: #157 [#515 short_circuit_and_expression]: #155 [#515 short_circuit_or_expression]: #154 [#515 singular_expression]: #164 [#515 template_elaborated_ident]: #171 [#515 unary_expression]: #162 [#516 additive_expression]: #161 [#516 binary_and_expression]: #158 [#516 binary_or_expression]: #159 [#516 binary_xor_expression]: #160 [#516 bitwise_expression]: #156 [#516 bool_literal]: #178 [#516 call_expression]: #172 [#516 decimal_float_literal]: #182 [#516 decimal_int_literal]: #180 [#516 expression]: #535 [#516 float_literal]: #177 [#516 hex_float_literal]: #183 [#516 hex_int_literal]: #181 [#516 ident]: #175 [#516 ident_pattern_token]: #85 [#516 int_literal]: #176 [#516 literal]: #173 [#516 multiplicative_expression]: #163 [#516 paren_expression]: #174 [#516 primary_expression]: #170 [#516 relational_expression]: #153 [#516 shift_expression]: #157 [#516 short_circuit_and_expression]: #155 [#516 short_circuit_or_expression]: #154 [#516 singular_expression]: #164 [#516 template_elaborated_ident]: #171 [#516 unary_expression]: #162 [#522 additive_expression]: #161 [#522 binary_and_expression]: #158 [#522 binary_or_expression]: #159 [#522 binary_xor_expression]: #160 [#522 bitwise_expression]: #156 [#522 bool_literal]: #178 [#522 call_expression]: #172 [#522 decimal_float_literal]: #182 [#522 decimal_int_literal]: #180 [#522 expression]: #533 [#522 float_literal]: #177 [#522 hex_float_literal]: #183 [#522 hex_int_literal]: #181 [#522 ident]: #175 [#522 ident_pattern_token]: #85 [#522 int_literal]: #176 [#522 literal]: #173 [#522 multiplicative_expression]: #163 [#522 paren_expression]: #174 [#522 primary_expression]: #170 [#522 relational_expression]: #153 [#522 shift_expression]: #157 [#522 short_circuit_and_expression]: #155 [#522 short_circuit_or_expression]: #154 [#522 singular_expression]: #164 [#522 template_elaborated_ident]: #171 [#522 unary_expression]: #162 [#525 component_or_swizzle_specifier]: #531 [#525 component_or_swizzle_specifier/0.3]: #530 [#533 workgroup_size_attr/2.8]: #571 [#545 align_attr]: #43 [#545 assert_statement]: #272 [#545 assignment_statement]: #285 [#545 attribute]: #297 [#545 binding_attr]: #44 [#545 blend_src_attr]: #45 [#545 break_statement]: #267 [#545 builtin_attr]: #46 [#545 compound_statement]: #271 [#545 compound_statement/0.0]: #133 [#545 compound_statement/0.0/0]: #134 [#545 compute_attr]: #59 [#545 const_attr]: #47 [#545 continue_statement]: #268 [#545 core_lhs_expression]: #298 [#545 decrement_statement]: #287 [#545 diagnostic_attr]: #48 [#545 for_statement]: #263 [#545 for_statement/0.0]: #277 [#545 for_statement/0.0/0]: #292 [#545 fragment_attr]: #58 [#545 func_call_statement]: #265 [#545 group_attr]: #49 [#545 id_attr]: #50 [#545 ident]: #294 [#545 ident_pattern_token]: #85 [#545 if_statement]: #260 [#545 if_statement/0.0]: #274 [#545 if_statement/0.0/0]: #289 [#545 increment_statement]: #286 [#545 interpolate_attr]: #51 [#545 invariant_attr]: #52 [#545 lhs_expression]: #295 [#545 location_attr]: #53 [#545 loop_statement]: #262 [#545 loop_statement/0.0]: #276 [#545 loop_statement/0.0/0]: #291 [#545 loop_statement/0.4]: #566 [#545 loop_statement/0.4/0]: #567 [#545 must_use_attr]: #54 [#545 return_statement]: #259 [#545 size_attr]: #55 [#545 statement]: #568 [#545 switch_statement]: #261 [#545 switch_statement/0.0]: #275 [#545 switch_statement/0.0/0]: #290 [#545 template_elaborated_ident]: #279 [#545 variable_decl]: #280 [#545 variable_or_value_statement]: #266 [#545 variable_updating_statement]: #270 [#545 vertex_attr]: #57 [#545 while_statement]: #264 [#545 while_statement/0.0]: #278 [#545 while_statement/0.0/0]: #293 [#545 workgroup_size_attr]: #56 [#549 align_attr]: #43 [#549 attribute]: #549 [#549 binding_attr]: #44 [#549 blend_src_attr]: #45 [#549 builtin_attr]: #46 [#549 compute_attr]: #59 [#549 const_attr]: #47 [#549 diagnostic_attr]: #48 [#549 fragment_attr]: #58 [#549 group_attr]: #49 [#549 id_attr]: #50 [#549 interpolate_attr]: #51 [#549 invariant_attr]: #52 [#549 location_attr]: #53 [#549 must_use_attr]: #54 [#549 size_attr]: #55 [#549 switch_body/0.0/0]: #564 [#549 vertex_attr]: #57 [#549 workgroup_size_attr]: #56 [#550 additive_expression]: #161 [#550 binary_and_expression]: #158 [#550 binary_or_expression]: #159 [#550 binary_xor_expression]: #160 [#550 bitwise_expression]: #156 [#550 bool_literal]: #178 [#550 call_expression]: #172 [#550 decimal_float_literal]: #182 [#550 decimal_int_literal]: #180 [#550 expression]: #563 [#550 float_literal]: #177 [#550 hex_float_literal]: #183 [#550 hex_int_literal]: #181 [#550 ident]: #175 [#550 ident_pattern_token]: #85 [#550 int_literal]: #176 [#550 literal]: #173 [#550 multiplicative_expression]: #163 [#550 paren_expression]: #174 [#550 primary_expression]: #170 [#550 relational_expression]: #153 [#550 shift_expression]: #157 [#550 short_circuit_and_expression]: #155 [#550 short_circuit_or_expression]: #154 [#550 singular_expression]: #164 [#550 template_elaborated_ident]: #171 [#550 unary_expression]: #162 [#554 align_attr]: #43 [#554 attribute]: #135 [#554 binding_attr]: #44 [#554 blend_src_attr]: #45 [#554 builtin_attr]: #46 [#554 compound_statement]: #562 [#554 compound_statement/0.0]: #133 [#554 compound_statement/0.0/0]: #134 [#554 compute_attr]: #59 [#554 const_attr]: #47 [#554 diagnostic_attr]: #48 [#554 fragment_attr]: #58 [#554 group_attr]: #49 [#554 id_attr]: #50 [#554 interpolate_attr]: #51 [#554 invariant_attr]: #52 [#554 location_attr]: #53 [#554 must_use_attr]: #54 [#554 size_attr]: #55 [#554 vertex_attr]: #57 [#554 workgroup_size_attr]: #56 [#557 ident]: #175 [#557 ident_pattern_token]: #85 [#557 template_elaborated_ident]: #561 [#559 align_attr]: #43 [#559 attribute]: #559 [#559 binding_attr]: #44 [#559 blend_src_attr]: #45 [#559 builtin_attr]: #46 [#559 compute_attr]: #59 [#559 const_attr]: #47 [#559 diagnostic_attr]: #48 [#559 fragment_attr]: #58 [#559 function_header/0.5/0.1/0]: #560 [#559 group_attr]: #49 [#559 id_attr]: #50 [#559 interpolate_attr]: #51 [#559 invariant_attr]: #52 [#559 location_attr]: #53 [#559 must_use_attr]: #54 [#559 size_attr]: #55 [#559 vertex_attr]: #57 [#559 workgroup_size_attr]: #56 [#563 align_attr]: #43 [#563 attribute]: #135 [#563 binding_attr]: #44 [#563 blend_src_attr]: #45 [#563 builtin_attr]: #46 [#563 compound_statement]: #588 [#563 compound_statement/0.0]: #133 [#563 compound_statement/0.0/0]: #134 [#563 compute_attr]: #59 [#563 const_attr]: #47 [#563 diagnostic_attr]: #48 [#563 fragment_attr]: #58 [#563 group_attr]: #49 [#563 id_attr]: #50 [#563 interpolate_attr]: #51 [#563 invariant_attr]: #52 [#563 location_attr]: #53 [#563 must_use_attr]: #54 [#563 size_attr]: #55 [#563 vertex_attr]: #57 [#563 workgroup_size_attr]: #56 [#565 case_clause]: #584 [#565 default_alone_clause]: #585 [#565 switch_body/0.2]: #581 [#565 switch_body/0.2/0]: #582 [#565 switch_clause]: #583 [#566 continuing_statement]: #579 [#566 loop_statement/0.5]: #578 [#568 align_attr]: #43 [#568 assert_statement]: #272 [#568 assignment_statement]: #285 [#568 attribute]: #297 [#568 binding_attr]: #44 [#568 blend_src_attr]: #45 [#568 break_statement]: #267 [#568 builtin_attr]: #46 [#568 compound_statement]: #271 [#568 compound_statement/0.0]: #133 [#568 compound_statement/0.0/0]: #134 [#568 compute_attr]: #59 [#568 const_attr]: #47 [#568 continue_statement]: #268 [#568 core_lhs_expression]: #298 [#568 decrement_statement]: #287 [#568 diagnostic_attr]: #48 [#568 for_statement]: #263 [#568 for_statement/0.0]: #277 [#568 for_statement/0.0/0]: #292 [#568 fragment_attr]: #58 [#568 func_call_statement]: #265 [#568 group_attr]: #49 [#568 id_attr]: #50 [#568 ident]: #294 [#568 ident_pattern_token]: #85 [#568 if_statement]: #260 [#568 if_statement/0.0]: #274 [#568 if_statement/0.0/0]: #289 [#568 increment_statement]: #286 [#568 interpolate_attr]: #51 [#568 invariant_attr]: #52 [#568 lhs_expression]: #295 [#568 location_attr]: #53 [#568 loop_statement]: #262 [#568 loop_statement/0.0]: #276 [#568 loop_statement/0.0/0]: #291 [#568 loop_statement/0.4/0]: #577 [#568 must_use_attr]: #54 [#568 return_statement]: #259 [#568 size_attr]: #55 [#568 statement]: #568 [#568 switch_statement]: #261 [#568 switch_statement/0.0]: #275 [#568 switch_statement/0.0/0]: #290 [#568 template_elaborated_ident]: #279 [#568 variable_decl]: #280 [#568 variable_or_value_statement]: #266 [#568 variable_updating_statement]: #270 [#568 vertex_attr]: #57 [#568 while_statement]: #264 [#568 while_statement/0.0]: #278 [#568 while_statement/0.0/0]: #293 [#568 workgroup_size_attr]: #56 [#569 additive_expression]: #161 [#569 binary_and_expression]: #158 [#569 binary_or_expression]: #159 [#569 binary_xor_expression]: #160 [#569 bitwise_expression]: #156 [#569 bool_literal]: #178 [#569 call_expression]: #172 [#569 decimal_float_literal]: #182 [#569 decimal_int_literal]: #180 [#569 expression]: #576 [#569 float_literal]: #177 [#569 for_header/0.2]: #575 [#569 hex_float_literal]: #183 [#569 hex_int_literal]: #181 [#569 ident]: #175 [#569 ident_pattern_token]: #85 [#569 int_literal]: #176 [#569 literal]: #173 [#569 multiplicative_expression]: #163 [#569 paren_expression]: #174 [#569 primary_expression]: #170 [#569 relational_expression]: #153 [#569 shift_expression]: #157 [#569 short_circuit_and_expression]: #155 [#569 short_circuit_or_expression]: #154 [#569 singular_expression]: #164 [#569 template_elaborated_ident]: #171 [#569 unary_expression]: #162 [#570 align_attr]: #43 [#570 attribute]: #135 [#570 binding_attr]: #44 [#570 blend_src_attr]: #45 [#570 builtin_attr]: #46 [#570 compound_statement]: #574 [#570 compound_statement/0.0]: #133 [#570 compound_statement/0.0/0]: #134 [#570 compute_attr]: #59 [#570 const_attr]: #47 [#570 diagnostic_attr]: #48 [#570 fragment_attr]: #58 [#570 group_attr]: #49 [#570 id_attr]: #50 [#570 interpolate_attr]: #51 [#570 invariant_attr]: #52 [#570 location_attr]: #53 [#570 must_use_attr]: #54 [#570 size_attr]: #55 [#570 vertex_attr]: #57 [#570 workgroup_size_attr]: #56 [#580 align_attr]: #43 [#580 attribute]: #600 [#580 binding_attr]: #44 [#580 blend_src_attr]: #45 [#580 builtin_attr]: #46 [#580 compute_attr]: #59 [#580 const_attr]: #47 [#580 continuing_compound_statement]: #597 [#580 continuing_compound_statement/0.0]: #598 [#580 continuing_compound_statement/0.0/0]: #599 [#580 diagnostic_attr]: #48 [#580 fragment_attr]: #58 [#580 group_attr]: #49 [#580 id_attr]: #50 [#580 interpolate_attr]: #51 [#580 invariant_attr]: #52 [#580 location_attr]: #53 [#580 must_use_attr]: #54 [#580 size_attr]: #55 [#580 vertex_attr]: #57 [#580 workgroup_size_attr]: #56 [#583 case_clause]: #584 [#583 default_alone_clause]: #585 [#583 switch_body/0.2/0]: #595 [#583 switch_clause]: #583 [#586 additive_expression]: #161 [#586 binary_and_expression]: #158 [#586 binary_or_expression]: #159 [#586 binary_xor_expression]: #160 [#586 bitwise_expression]: #156 [#586 bool_literal]: #178 [#586 call_expression]: #172 [#586 case_selector]: #592 [#586 case_selectors]: #591 [#586 decimal_float_literal]: #182 [#586 decimal_int_literal]: #180 [#586 expression]: #594 [#586 float_literal]: #177 [#586 hex_float_literal]: #183 [#586 hex_int_literal]: #181 [#586 ident]: #175 [#586 ident_pattern_token]: #85 [#586 int_literal]: #176 [#586 literal]: #173 [#586 multiplicative_expression]: #163 [#586 paren_expression]: #174 [#586 primary_expression]: #170 [#586 relational_expression]: #153 [#586 shift_expression]: #157 [#586 short_circuit_and_expression]: #155 [#586 short_circuit_or_expression]: #154 [#586 singular_expression]: #164 [#586 template_elaborated_ident]: #171 [#586 unary_expression]: #162 [#587 default_alone_clause/0.1]: #589 [#589 align_attr]: #43 [#589 attribute]: #135 [#589 binding_attr]: #44 [#589 blend_src_attr]: #45 [#589 builtin_attr]: #46 [#589 compound_statement]: #615 [#589 compound_statement/0.0]: #133 [#589 compound_statement/0.0/0]: #134 [#589 compute_attr]: #59 [#589 const_attr]: #47 [#589 diagnostic_attr]: #48 [#589 fragment_attr]: #58 [#589 group_attr]: #49 [#589 id_attr]: #50 [#589 interpolate_attr]: #51 [#589 invariant_attr]: #52 [#589 location_attr]: #53 [#589 must_use_attr]: #54 [#589 size_attr]: #55 [#589 vertex_attr]: #57 [#589 workgroup_size_attr]: #56 [#591 case_clause/0.2]: #613 [#592 case_selectors/0.1]: #609 [#592 case_selectors/0.1/0]: #610 [#592 case_selectors/0.1/0/0.0]: #611 [#600 align_attr]: #43 [#600 attribute]: #600 [#600 binding_attr]: #44 [#600 blend_src_attr]: #45 [#600 builtin_attr]: #46 [#600 compute_attr]: #59 [#600 const_attr]: #47 [#600 continuing_compound_statement/0.0/0]: #607 [#600 diagnostic_attr]: #48 [#600 fragment_attr]: #58 [#600 group_attr]: #49 [#600 id_attr]: #50 [#600 interpolate_attr]: #51 [#600 invariant_attr]: #52 [#600 location_attr]: #53 [#600 must_use_attr]: #54 [#600 size_attr]: #55 [#600 vertex_attr]: #57 [#600 workgroup_size_attr]: #56 [#602 assignment_statement]: #285 [#602 core_lhs_expression]: #298 [#602 decrement_statement]: #287 [#602 for_header/0.4]: #603 [#602 for_update]: #604 [#602 func_call_statement]: #606 [#602 ident]: #294 [#602 ident_pattern_token]: #85 [#602 increment_statement]: #286 [#602 lhs_expression]: #295 [#602 template_elaborated_ident]: #279 [#602 variable_updating_statement]: #605 [#608 align_attr]: #43 [#608 assert_statement]: #272 [#608 assignment_statement]: #285 [#608 attribute]: #297 [#608 binding_attr]: #44 [#608 blend_src_attr]: #45 [#608 break_statement]: #267 [#608 builtin_attr]: #46 [#608 compound_statement]: #271 [#608 compound_statement/0.0]: #133 [#608 compound_statement/0.0/0]: #134 [#608 compute_attr]: #59 [#608 const_attr]: #47 [#608 continue_statement]: #268 [#608 continuing_compound_statement/0.2]: #621 [#608 continuing_compound_statement/0.2/0]: #622 [#608 core_lhs_expression]: #298 [#608 decrement_statement]: #287 [#608 diagnostic_attr]: #48 [#608 for_statement]: #263 [#608 for_statement/0.0]: #277 [#608 for_statement/0.0/0]: #292 [#608 fragment_attr]: #58 [#608 func_call_statement]: #265 [#608 group_attr]: #49 [#608 id_attr]: #50 [#608 ident]: #294 [#608 ident_pattern_token]: #85 [#608 if_statement]: #260 [#608 if_statement/0.0]: #274 [#608 if_statement/0.0/0]: #289 [#608 increment_statement]: #286 [#608 interpolate_attr]: #51 [#608 invariant_attr]: #52 [#608 lhs_expression]: #295 [#608 location_attr]: #53 [#608 loop_statement]: #262 [#608 loop_statement/0.0]: #276 [#608 loop_statement/0.0/0]: #291 [#608 must_use_attr]: #54 [#608 return_statement]: #259 [#608 size_attr]: #55 [#608 statement]: #623 [#608 switch_statement]: #261 [#608 switch_statement/0.0]: #275 [#608 switch_statement/0.0/0]: #290 [#608 template_elaborated_ident]: #279 [#608 variable_decl]: #280 [#608 variable_or_value_statement]: #266 [#608 variable_updating_statement]: #270 [#608 vertex_attr]: #57 [#608 while_statement]: #264 [#608 while_statement/0.0]: #278 [#608 while_statement/0.0/0]: #293 [#608 workgroup_size_attr]: #56 [#609 case_selectors/0.2]: #619 [#611 case_selectors/0.1/0]: #618 [#611 case_selectors/0.1/0/0.0]: #611 [#612 additive_expression]: #161 [#612 binary_and_expression]: #158 [#612 binary_or_expression]: #159 [#612 binary_xor_expression]: #160 [#612 bitwise_expression]: #156 [#612 bool_literal]: #178 [#612 call_expression]: #172 [#612 case_selector]: #617 [#612 decimal_float_literal]: #182 [#612 decimal_int_literal]: #180 [#612 expression]: #594 [#612 float_literal]: #177 [#612 hex_float_literal]: #183 [#612 hex_int_literal]: #181 [#612 ident]: #175 [#612 ident_pattern_token]: #85 [#612 int_literal]: #176 [#612 literal]: #173 [#612 multiplicative_expression]: #163 [#612 paren_expression]: #174 [#612 primary_expression]: #170 [#612 relational_expression]: #153 [#612 shift_expression]: #157 [#612 short_circuit_and_expression]: #155 [#612 short_circuit_or_expression]: #154 [#612 singular_expression]: #164 [#612 template_elaborated_ident]: #171 [#612 unary_expression]: #162 [#613 align_attr]: #43 [#613 attribute]: #135 [#613 binding_attr]: #44 [#613 blend_src_attr]: #45 [#613 builtin_attr]: #46 [#613 compound_statement]: #616 [#613 compound_statement/0.0]: #133 [#613 compound_statement/0.0/0]: #134 [#613 compute_attr]: #59 [#613 const_attr]: #47 [#613 diagnostic_attr]: #48 [#613 fragment_attr]: #58 [#613 group_attr]: #49 [#613 id_attr]: #50 [#613 interpolate_attr]: #51 [#613 invariant_attr]: #52 [#613 location_attr]: #53 [#613 must_use_attr]: #54 [#613 size_attr]: #55 [#613 vertex_attr]: #57 [#613 workgroup_size_attr]: #56 [#621 break_if_statement]: #626 [#621 continuing_compound_statement/0.3]: #625 [#623 align_attr]: #43 [#623 assert_statement]: #272 [#623 assignment_statement]: #285 [#623 attribute]: #297 [#623 binding_attr]: #44 [#623 blend_src_attr]: #45 [#623 break_statement]: #267 [#623 builtin_attr]: #46 [#623 compound_statement]: #271 [#623 compound_statement/0.0]: #133 [#623 compound_statement/0.0/0]: #134 [#623 compute_attr]: #59 [#623 const_attr]: #47 [#623 continue_statement]: #268 [#623 continuing_compound_statement/0.2/0]: #624 [#623 core_lhs_expression]: #298 [#623 decrement_statement]: #287 [#623 diagnostic_attr]: #48 [#623 for_statement]: #263 [#623 for_statement/0.0]: #277 [#623 for_statement/0.0/0]: #292 [#623 fragment_attr]: #58 [#623 func_call_statement]: #265 [#623 group_attr]: #49 [#623 id_attr]: #50 [#623 ident]: #294 [#623 ident_pattern_token]: #85 [#623 if_statement]: #260 [#623 if_statement/0.0]: #274 [#623 if_statement/0.0/0]: #289 [#623 increment_statement]: #286 [#623 interpolate_attr]: #51 [#623 invariant_attr]: #52 [#623 lhs_expression]: #295 [#623 location_attr]: #53 [#623 loop_statement]: #262 [#623 loop_statement/0.0]: #276 [#623 loop_statement/0.0/0]: #291 [#623 must_use_attr]: #54 [#623 return_statement]: #259 [#623 size_attr]: #55 [#623 statement]: #623 [#623 switch_statement]: #261 [#623 switch_statement/0.0]: #275 [#623 switch_statement/0.0/0]: #290 [#623 template_elaborated_ident]: #279 [#623 variable_decl]: #280 [#623 variable_or_value_statement]: #266 [#623 variable_updating_statement]: #270 [#623 vertex_attr]: #57 [#623 while_statement]: #264 [#623 while_statement/0.0]: #278 [#623 while_statement/0.0/0]: #293 [#623 workgroup_size_attr]: #56 [#628 additive_expression]: #161 [#628 binary_and_expression]: #158 [#628 binary_or_expression]: #159 [#628 binary_xor_expression]: #160 [#628 bitwise_expression]: #156 [#628 bool_literal]: #178 [#628 call_expression]: #172 [#628 decimal_float_literal]: #182 [#628 decimal_int_literal]: #180 [#628 expression]: #630 [#628 float_literal]: #177 [#628 hex_float_literal]: #183 [#628 hex_int_literal]: #181 [#628 ident]: #175 [#628 ident_pattern_token]: #85 [#628 int_literal]: #176 [#628 literal]: #173 [#628 multiplicative_expression]: #163 [#628 paren_expression]: #174 [#628 primary_expression]: #170 [#628 relational_expression]: #153 [#628 shift_expression]: #157 [#628 short_circuit_and_expression]: #155 [#628 short_circuit_or_expression]: #154 [#628 singular_expression]: #164 [#628 template_elaborated_ident]: #171 [#628 unary_expression]: #162