=Grammar: _blankspace:/[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]/ _comment:'//.*' access_mode: 'read' | 'read_write' | 'write' additive_expression: additive_expression additive_operator multiplicative_expression | multiplicative_expression additive_operator: '+' | '-' address_space: 'function' | 'private' | 'storage' | 'uniform' | 'workgroup' argument_expression_list: '(' expression_comma_list ? ')' array_type_specifier: 'array' '<' type_specifier ( ',' element_count_expression )? '>' assignment_statement: '_' '=' expression | lhs_expression ( '=' | compound_assignment_operator ) expression assignment_statement/0.1: '=' | compound_assignment_operator attrib_end: ',' ? ')' attribute: '@' 'align' '(' expression attrib_end | '@' 'binding' '(' expression attrib_end | '@' 'builtin' '(' builtin_value_name attrib_end | '@' 'compute' | '@' 'const' | '@' 'fragment' | '@' 'group' '(' expression attrib_end | '@' 'id' '(' expression attrib_end | '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end | '@' 'interpolate' '(' interpolation_type_name attrib_end | '@' 'invariant' | '@' 'location' '(' expression attrib_end | '@' 'size' '(' expression attrib_end | '@' 'vertex' | '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end | '@' 'workgroup_size' '(' expression ',' expression attrib_end | '@' 'workgroup_size' '(' expression attrib_end 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 bitwise_expression: binary_and_expression '&' unary_expression | binary_or_expression '|' unary_expression | binary_xor_expression '^' unary_expression bool_literal: 'false' | 'true' break_if_statement: 'break' 'if' expression ';' break_statement:'break' builtin_value_name: 'frag_depth' | 'front_facing' | 'global_invocation_id' | 'instance_index' | 'local_invocation_id' | 'local_invocation_index' | 'num_workgroups' | 'position' | 'sample_index' | 'sample_mask' | 'vertex_index' | 'workgroup_id' call_expression:call_phrase call_phrase: callable argument_expression_list callable: 'array' | ident | mat_prefix | type_specifier_without_ident | vec_prefix 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: '%=' | '&=' | '*=' | '+=' | '-=' | '/=' | '<<=' | '>>=' | '^=' | '|=' compound_statement: '{' statement * ? '}' const_assert_statement: 'const_assert' expression continue_statement:'continue' continuing_compound_statement: '{' statement * ? break_if_statement ? '}' continuing_statement: 'continuing' continuing_compound_statement core_lhs_expression: '(' lhs_expression ')' | ident 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 depth_texture_type: 'texture_depth_2d' | 'texture_depth_2d_array' | 'texture_depth_cube' | 'texture_depth_cube_array' | 'texture_depth_multisampled_2d' element_count_expression: additive_expression | bitwise_expression else_clause: 'else' compound_statement else_if_clause: 'else' 'if' expression compound_statement enable_directive: 'enable' extension_name ';' 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 extension_name:'f16' float_literal: decimal_float_literal | hex_float_literal for_header: for_init ? ';' expression ? ';' for_update ? for_init: func_call_statement | variable_statement | variable_updating_statement for_statement: 'for' '(' for_header ')' compound_statement for_update: func_call_statement | variable_updating_statement func_call_statement:call_phrase function_decl: attribute * ? function_header compound_statement function_header: 'fn' ident '(' param_list ? ')' ( '->' attribute * ? type_specifier )? global_constant_decl: 'const' optionally_typed_ident '=' expression | attribute * ? 'override' optionally_typed_ident ( '=' expression )? global_decl: ';' | const_assert_statement ';' | function_decl | global_constant_decl ';' | global_variable_decl ';' | struct_decl | type_alias_decl ';' global_directive:enable_directive global_variable_decl: attribute * ? variable_decl ( '=' 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]?/ ident:ident_pattern_token ident_pattern_token:/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ if_clause: 'if' expression compound_statement if_statement: if_clause else_if_clause * ? else_clause ? increment_statement: lhs_expression '++' int_literal: decimal_int_literal | hex_int_literal interpolation_sample_name: 'center' | 'centroid' | 'sample' interpolation_type_name: 'flat' | 'linear' | 'perspective' lhs_expression: '&' lhs_expression | '*' lhs_expression | core_lhs_expression component_or_swizzle_specifier ? literal: bool_literal | float_literal | int_literal loop_statement: 'loop' '{' statement * ? continuing_statement ? '}' mat_prefix: 'mat2x2' | 'mat2x3' | 'mat2x4' | 'mat3x2' | 'mat3x3' | 'mat3x4' | 'mat4x2' | 'mat4x3' | 'mat4x4' member_ident:ident_pattern_token multiplicative_expression: multiplicative_expression multiplicative_operator unary_expression | unary_expression multiplicative_operator: '%' | '*' | '/' multisampled_texture_type:'texture_multisampled_2d' 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: 'bitcast' '<' type_specifier '>' paren_expression | call_expression | ident | literal | paren_expression relational_expression: shift_expression | shift_expression '!=' shift_expression | shift_expression '<' shift_expression | shift_expression '<=' shift_expression | shift_expression '==' shift_expression | shift_expression '>' shift_expression | shift_expression '>=' shift_expression return_statement: 'return' expression ? sampled_texture_type: 'texture_1d' | 'texture_2d' | 'texture_2d_array' | 'texture_3d' | 'texture_cube' | 'texture_cube_array' sampler_type: 'sampler' | 'sampler_comparison' shift_expression: additive_expression | unary_expression '<<' unary_expression | unary_expression '>>' 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 ? statement: ';' | 'discard' ';' | break_statement ';' | compound_statement | const_assert_statement ';' | continue_statement ';' | for_statement | func_call_statement ';' | if_statement | loop_statement | return_statement ';' | switch_statement | variable_statement ';' | variable_updating_statement ';' | while_statement storage_texture_type: 'texture_storage_1d' | 'texture_storage_2d' | 'texture_storage_2d_array' | 'texture_storage_3d' 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: case_clause | default_alone_clause switch_statement: 'switch' expression '{' ( switch_body * ) '}' switch_statement/0.3: switch_body * swizzle_name: '/[rgba]/' | '/[rgba][rgba]/' | '/[rgba][rgba][rgba]/' | '/[rgba][rgba][rgba][rgba]/' | '/[xyzw]/' | '/[xyzw][xyzw]/' | '/[xyzw][xyzw][xyzw]/' | '/[xyzw][xyzw][xyzw][xyzw]/' texel_format: 'bgra8unorm' | 'r32float' | 'r32sint' | 'r32uint' | 'rg32float' | 'rg32sint' | 'rg32uint' | 'rgba16float' | 'rgba16sint' | 'rgba16uint' | 'rgba32float' | 'rgba32sint' | 'rgba32uint' | 'rgba8sint' | 'rgba8snorm' | 'rgba8uint' | 'rgba8unorm' texture_and_sampler_types: depth_texture_type | multisampled_texture_type '<' type_specifier '>' | sampled_texture_type '<' type_specifier '>' | sampler_type | storage_texture_type '<' texel_format ',' access_mode '>' translation_unit: global_directive * ? global_decl * ? type_alias_decl: 'alias' ident '=' type_specifier type_specifier: ident | type_specifier_without_ident type_specifier_without_ident: 'atomic' '<' type_specifier '>' | 'bool' | 'f16' | 'f32' | 'i32' | 'ptr' '<' address_space ',' type_specifier ( ',' access_mode )? '>' | 'u32' | array_type_specifier | mat_prefix '<' type_specifier '>' | texture_and_sampler_types | vec_prefix '<' type_specifier '>' unary_expression: '!' unary_expression | '&' unary_expression | '*' unary_expression | '-' unary_expression | '~' unary_expression | singular_expression variable_decl: 'var' variable_qualifier ? optionally_typed_ident variable_qualifier: '<' address_space ( ',' access_mode )? '>' variable_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 vec_prefix: 'vec2' | 'vec3' | 'vec4' while_statement: 'while' expression compound_statement =Raw rules: translation_unit -> ( Choice ( Seq translation_unit/0.0 translation_unit/0.1 ) ) translation_unit .reg_info.index: 559 translation_unit .first: {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' 'struct' 'var' ε} translation_unit .derives_empty: True translation_unit .follow: {EndOfText} global_directive -> enable_directive global_directive .reg_info.index: 196 global_directive .first: {'enable'} global_directive .derives_empty: False global_directive .follow: {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> ( Choice ';' ( Seq global_variable_decl ';' ) ( Seq global_constant_decl ';' ) ( Seq type_alias_decl ';' ) struct_decl function_decl ( Seq const_assert_statement ';' ) ) global_decl .reg_info.index: 207 global_decl .first: {';' '@' 'alias' 'const' 'const_assert' '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: 208 bool_literal .first: {'false' 'true'} bool_literal .derives_empty: False bool_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> ( Choice decimal_int_literal hex_int_literal ) int_literal .reg_info.index: 211 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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> ( Choice /0[iu]?/ /[1-9][0-9]*[iu]?/ ) decimal_int_literal .reg_info.index: 212 decimal_int_literal .first: {/0[iu]?/ /[1-9][0-9]*[iu]?/} decimal_int_literal .derives_empty: False decimal_int_literal .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} 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: 215 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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} 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: 216 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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} 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: 217 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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> ( Choice int_literal float_literal bool_literal ) literal .reg_info.index: 221 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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} member_ident -> ident_pattern_token member_ident .reg_info.index: 222 member_ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} member_ident .derives_empty: False member_ident .follow: {'!=' '%' '%=' '&&' '&' '&=' '(' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||' '}'} attribute -> ( Choice ( Seq '@' 'align' '(' expression attrib_end ) ( Seq '@' 'binding' '(' expression attrib_end ) ( Seq '@' 'builtin' '(' builtin_value_name attrib_end ) ( Seq '@' 'const' ) ( Seq '@' 'group' '(' expression attrib_end ) ( Seq '@' 'id' '(' expression attrib_end ) ( Seq '@' 'interpolate' '(' interpolation_type_name attrib_end ) ( Seq '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end ) ( Seq '@' 'invariant' ) ( Seq '@' 'location' '(' expression attrib_end ) ( Seq '@' 'size' '(' expression attrib_end ) ( Seq '@' 'workgroup_size' '(' expression attrib_end ) ( Seq '@' 'workgroup_size' '(' expression ',' expression attrib_end ) ( Seq '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end ) ( Seq '@' 'vertex' ) ( Seq '@' 'fragment' ) ( Seq '@' 'compute' ) ) attribute .reg_info.index: 245 attribute .first: {'@'} attribute .derives_empty: False attribute .follow: {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> ( Choice ( Seq attrib_end/0.0 ')' ) ) attrib_end .reg_info.index: 694 attrib_end .first: {')' ','} attrib_end .derives_empty: False attrib_end .follow: {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} array_type_specifier -> ( Choice ( Seq 'array' '<' type_specifier array_type_specifier/0.3 '>' ) ) array_type_specifier .reg_info.index: 703 array_type_specifier .first: {'array'} array_type_specifier .derives_empty: False array_type_specifier .follow: {'(' ')' ',' ';' '=' '>' '{' '}'} element_count_expression -> ( Choice additive_expression bitwise_expression ) element_count_expression .reg_info.index: 255 element_count_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} element_count_expression .derives_empty: False element_count_expression .follow: {'>'} struct_decl -> ( Choice ( Seq 'struct' ident struct_body_decl ) ) struct_decl .reg_info.index: 514 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: 718 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: 726 struct_member .first: {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} struct_member .derives_empty: False struct_member .follow: {',' '}'} texture_and_sampler_types -> ( Choice sampler_type depth_texture_type ( Seq sampled_texture_type '<' type_specifier '>' ) ( Seq multisampled_texture_type '<' type_specifier '>' ) ( Seq storage_texture_type '<' texel_format ',' access_mode '>' ) ) texture_and_sampler_types .reg_info.index: 279 texture_and_sampler_types .first: {'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d'} texture_and_sampler_types .derives_empty: False texture_and_sampler_types .follow: {'(' ')' ',' ';' '=' '>' '{' '}'} sampler_type -> ( Choice 'sampler' 'sampler_comparison' ) sampler_type .reg_info.index: 280 sampler_type .first: {'sampler' 'sampler_comparison'} sampler_type .derives_empty: False sampler_type .follow: {'(' ')' ',' ';' '=' '>' '{' '}'} sampled_texture_type -> ( Choice 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' ) sampled_texture_type .reg_info.index: 281 sampled_texture_type .first: {'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array'} sampled_texture_type .derives_empty: False sampled_texture_type .follow: {'<'} multisampled_texture_type -> 'texture_multisampled_2d' multisampled_texture_type .reg_info.index: 49 multisampled_texture_type .first: {'texture_multisampled_2d'} multisampled_texture_type .derives_empty: False multisampled_texture_type .follow: {} storage_texture_type -> ( Choice 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' ) storage_texture_type .reg_info.index: 282 storage_texture_type .first: {'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d'} storage_texture_type .derives_empty: False storage_texture_type .follow: {'<'} depth_texture_type -> ( Choice 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' ) depth_texture_type .reg_info.index: 283 depth_texture_type .first: {'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d'} depth_texture_type .derives_empty: False depth_texture_type .follow: {'(' ')' ',' ';' '=' '>' '{' '}'} type_alias_decl -> ( Choice ( Seq 'alias' ident '=' type_specifier ) ) type_alias_decl .reg_info.index: 517 type_alias_decl .first: {'alias'} type_alias_decl .derives_empty: False type_alias_decl .follow: {';'} type_specifier -> ( Choice ident type_specifier_without_ident ) type_specifier .reg_info.index: 286 type_specifier .first: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} type_specifier .derives_empty: False type_specifier .follow: {')' ',' ';' '=' '>' '{' '}'} type_specifier_without_ident -> ( Choice 'bool' 'f32' 'f16' 'i32' 'u32' ( Seq vec_prefix '<' type_specifier '>' ) ( Seq mat_prefix '<' type_specifier '>' ) ( Seq 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' ) array_type_specifier ( Seq 'atomic' '<' type_specifier '>' ) texture_and_sampler_types ) type_specifier_without_ident .reg_info.index: 802 type_specifier_without_ident .first: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4'} type_specifier_without_ident .derives_empty: False type_specifier_without_ident .follow: {'(' ')' ',' ';' '=' '>' '{' '}'} vec_prefix -> ( Choice 'vec2' 'vec3' 'vec4' ) vec_prefix .reg_info.index: 299 vec_prefix .first: {'vec2' 'vec3' 'vec4'} vec_prefix .derives_empty: False vec_prefix .follow: {'(' '<'} mat_prefix -> ( Choice 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' ) mat_prefix .reg_info.index: 300 mat_prefix .first: {'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4'} mat_prefix .derives_empty: False mat_prefix .follow: {'(' '<'} variable_statement -> ( Choice variable_decl ( Seq variable_decl '=' expression ) ( Seq 'let' optionally_typed_ident '=' expression ) ( Seq 'const' optionally_typed_ident '=' expression ) ) variable_statement .reg_info.index: 306 variable_statement .first: {'const' 'let' 'var'} variable_statement .derives_empty: False variable_statement .follow: {';'} variable_decl -> ( Choice ( Seq 'var' variable_decl/0.1 optionally_typed_ident ) ) variable_decl .reg_info.index: 836 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: 842 optionally_typed_ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} optionally_typed_ident .derives_empty: False optionally_typed_ident .follow: {';' '='} variable_qualifier -> ( Choice ( Seq '<' address_space variable_qualifier/0.2 '>' ) ) variable_qualifier .reg_info.index: 849 variable_qualifier .first: {'<'} variable_qualifier .derives_empty: False variable_qualifier .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} global_variable_decl -> ( Choice ( Seq global_variable_decl/0.0 variable_decl global_variable_decl/0.2 ) ) global_variable_decl .reg_info.index: 856 global_variable_decl .first: {'@' 'var'} global_variable_decl .derives_empty: False global_variable_decl .follow: {';'} global_constant_decl -> ( Choice ( Seq 'const' optionally_typed_ident '=' expression ) ( Seq global_constant_decl/1.0 'override' optionally_typed_ident global_constant_decl/1.3 ) ) global_constant_decl .reg_info.index: 868 global_constant_decl .first: {'@' 'const' 'override'} global_constant_decl .derives_empty: False global_constant_decl .follow: {';'} primary_expression -> ( Choice ident call_expression literal paren_expression ( Seq 'bitcast' '<' type_specifier '>' paren_expression ) ) primary_expression .reg_info.index: 323 primary_expression .first: {'(' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' /([_\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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_expression -> call_phrase call_expression .reg_info.index: 324 call_expression .first: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} call_expression .derives_empty: False call_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_phrase -> ( Choice ( Seq callable argument_expression_list ) ) call_phrase .reg_info.index: 522 call_phrase .first: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} call_phrase .derives_empty: False call_phrase .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} callable -> ( Choice ident type_specifier_without_ident vec_prefix mat_prefix 'array' ) callable .reg_info.index: 328 callable .first: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} callable .derives_empty: False callable .follow: {'('} paren_expression -> ( Choice ( Seq '(' expression ')' ) ) paren_expression .reg_info.index: 523 paren_expression .first: {'('} paren_expression .derives_empty: False paren_expression .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} argument_expression_list -> ( Choice ( Seq '(' argument_expression_list/0.1 ')' ) ) argument_expression_list .reg_info.index: 897 argument_expression_list .first: {'('} argument_expression_list .derives_empty: False argument_expression_list .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} expression_comma_list -> ( Choice ( Seq expression expression_comma_list/0.1 expression_comma_list/0.2 ) ) expression_comma_list .reg_info.index: 904 expression_comma_list .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 922 component_or_swizzle_specifier .first: {'.' '['} component_or_swizzle_specifier .derives_empty: False component_or_swizzle_specifier .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} 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: 351 unary_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} singular_expression -> ( Choice ( Seq primary_expression singular_expression/0.1 ) ) singular_expression .reg_info.index: 943 singular_expression .first: {'(' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' /([_\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: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} lhs_expression -> ( Choice ( Seq core_lhs_expression lhs_expression/0.1 ) ( Seq '*' lhs_expression ) ( Seq '&' lhs_expression ) ) lhs_expression .reg_info.index: 954 lhs_expression .first: {'&' '(' '*' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} lhs_expression .derives_empty: False lhs_expression .follow: {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} core_lhs_expression -> ( Choice ident ( Seq '(' lhs_expression ')' ) ) core_lhs_expression .reg_info.index: 361 core_lhs_expression .first: {'(' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} core_lhs_expression .derives_empty: False core_lhs_expression .follow: {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} multiplicative_expression -> ( Choice unary_expression ( Seq multiplicative_expression multiplicative_operator unary_expression ) ) multiplicative_expression .reg_info.index: 365 multiplicative_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_operator -> ( Choice '*' '/' '%' ) multiplicative_operator .reg_info.index: 366 multiplicative_operator .first: {'%' '*' '/'} multiplicative_operator .derives_empty: False multiplicative_operator .follow: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 369 additive_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} additive_operator -> ( Choice '+' '-' ) additive_operator .reg_info.index: 370 additive_operator .first: {'+' '-'} additive_operator .derives_empty: False additive_operator .follow: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 '<<' unary_expression ) ( Seq unary_expression '>>' unary_expression ) ) shift_expression .reg_info.index: 373 shift_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} relational_expression -> ( Choice shift_expression ( Seq shift_expression '<' shift_expression ) ( Seq shift_expression '>' shift_expression ) ( Seq shift_expression '<=' shift_expression ) ( Seq shift_expression '>=' shift_expression ) ( Seq shift_expression '==' shift_expression ) ( Seq shift_expression '!=' shift_expression ) ) relational_expression .reg_info.index: 381 relational_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {'&&' ')' ',' ':' ';' ']' '{' '||'} short_circuit_and_expression -> ( Choice relational_expression ( Seq short_circuit_and_expression '&&' relational_expression ) ) short_circuit_and_expression .reg_info.index: 385 short_circuit_and_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 388 short_circuit_or_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 391 binary_or_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 394 binary_and_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 397 binary_xor_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 398 bitwise_expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {')' ',' ':' ';' '>' ']' '{'} expression -> ( Choice relational_expression ( Seq short_circuit_or_expression '||' relational_expression ) ( Seq short_circuit_and_expression '&&' relational_expression ) bitwise_expression ) expression .reg_info.index: 399 expression .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: {')' ',' ':' ';' ']' '{'} compound_statement -> ( Choice ( Seq '{' compound_statement/0.1 '}' ) ) compound_statement .reg_info.index: 1062 compound_statement .first: {'{'} compound_statement .derives_empty: False compound_statement .follow: {'&' '(' '*' ';' '@' '_' 'alias' 'array' 'atomic' 'bool' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'f16' 'f32' 'fn' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'return' 'sampler' 'sampler_comparison' 'struct' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' '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: 1073 assignment_statement .first: {'&' '(' '*' '_' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} assignment_statement .derives_empty: False assignment_statement .follow: {')' ';'} compound_assignment_operator -> ( Choice '+=' '-=' '*=' '/=' '%=' '&=' '|=' '^=' '>>=' '<<=' ) compound_assignment_operator .reg_info.index: 409 compound_assignment_operator .first: {'%=' '&=' '*=' '+=' '-=' '/=' '<<=' '>>=' '^=' '|='} compound_assignment_operator .derives_empty: False compound_assignment_operator .follow: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 528 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: 529 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_clause if_statement/0.1 if_statement/0.2 ) ) if_statement .reg_info.index: 1097 if_statement .first: {'if'} if_statement .derives_empty: False if_statement .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_clause -> ( Choice ( Seq 'if' expression compound_statement ) ) if_clause .reg_info.index: 531 if_clause .first: {'if'} if_clause .derives_empty: False if_clause .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' '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: 532 else_if_clause .first: {'else'} else_if_clause .derives_empty: False else_if_clause .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_clause -> ( Choice ( Seq 'else' compound_statement ) ) else_clause .reg_info.index: 533 else_clause .first: {'else'} else_clause .derives_empty: False else_clause .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement -> ( Choice ( Seq 'switch' expression '{' switch_statement/0.3 '}' ) ) switch_statement .reg_info.index: 1118 switch_statement .first: {'switch'} switch_statement .derives_empty: False switch_statement .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_body -> ( Choice case_clause default_alone_clause ) switch_body .reg_info.index: 428 switch_body .first: {'case' 'default'} switch_body .derives_empty: False switch_body .follow: {'case' 'default' '}'} case_clause -> ( Choice ( Seq 'case' case_selectors case_clause/0.2 compound_statement ) ) case_clause .reg_info.index: 1128 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: 1134 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: 1141 case_selectors .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'default' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 438 case_selector .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'default' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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' '{' loop_statement/0.2 loop_statement/0.3 '}' ) ) loop_statement .reg_info.index: 1152 loop_statement .first: {'loop'} loop_statement .derives_empty: False loop_statement .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_statement -> ( Choice ( Seq 'for' '(' for_header ')' compound_statement ) ) for_statement .reg_info.index: 539 for_statement .first: {'for'} for_statement .derives_empty: False for_statement .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' '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: 1169 for_header .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'const' 'f16' 'f32' 'i32' 'let' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_header .derives_empty: False for_header .follow: {')'} for_init -> ( Choice variable_statement variable_updating_statement func_call_statement ) for_init .reg_info.index: 453 for_init .first: {'&' '(' '*' '_' 'array' 'atomic' 'bool' 'const' 'f16' 'f32' 'i32' 'let' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\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: 454 for_update .first: {'&' '(' '*' '_' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} for_update .derives_empty: False for_update .follow: {')'} while_statement -> ( Choice ( Seq 'while' expression compound_statement ) ) while_statement .reg_info.index: 541 while_statement .first: {'while'} while_statement .derives_empty: False while_statement .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} break_statement -> 'break' break_statement .reg_info.index: 126 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: 542 break_if_statement .first: {'break'} break_if_statement .derives_empty: False break_if_statement .follow: {'}'} continue_statement -> 'continue' continue_statement .reg_info.index: 127 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: 543 continuing_statement .first: {'continuing'} continuing_statement .derives_empty: False continuing_statement .follow: {'}'} continuing_compound_statement -> ( Choice ( Seq '{' continuing_compound_statement/0.1 continuing_compound_statement/0.2 '}' ) ) continuing_compound_statement .reg_info.index: 1194 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: 1199 return_statement .first: {'return'} return_statement .derives_empty: False return_statement .follow: {';'} func_call_statement -> call_phrase func_call_statement .reg_info.index: 324 func_call_statement .first: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement .derives_empty: False func_call_statement .follow: {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} const_assert_statement -> ( Choice ( Seq 'const_assert' expression ) ) const_assert_statement .reg_info.index: 546 const_assert_statement .first: {'const_assert'} const_assert_statement .derives_empty: False const_assert_statement .follow: {';'} statement -> ( Choice ';' ( Seq return_statement ';' ) if_statement switch_statement loop_statement for_statement while_statement ( Seq func_call_statement ';' ) ( Seq variable_statement ';' ) ( Seq break_statement ';' ) ( Seq continue_statement ';' ) ( Seq 'discard' ';' ) ( Seq variable_updating_statement ';' ) compound_statement ( Seq const_assert_statement ';' ) ) statement .reg_info.index: 479 statement .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement .derives_empty: False statement .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' '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: 483 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: 1242 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: 1253 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: 1260 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: 1267 param .first: {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} param .derives_empty: False param .follow: {')' ','} enable_directive -> ( Choice ( Seq 'enable' extension_name ';' ) ) enable_directive .reg_info.index: 551 enable_directive .first: {'enable'} enable_directive .derives_empty: False enable_directive .follow: {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' 'struct' 'var' EndOfText} ident_pattern_token -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ident_pattern_token .reg_info.index: 135 ident_pattern_token .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} ident_pattern_token .derives_empty: False ident_pattern_token .follow: {} interpolation_type_name -> ( Choice 'perspective' 'linear' 'flat' ) interpolation_type_name .reg_info.index: 499 interpolation_type_name .first: {'flat' 'linear' 'perspective'} interpolation_type_name .derives_empty: False interpolation_type_name .follow: {')' ','} interpolation_sample_name -> ( Choice 'center' 'centroid' 'sample' ) interpolation_sample_name .reg_info.index: 500 interpolation_sample_name .first: {'center' 'centroid' 'sample'} interpolation_sample_name .derives_empty: False interpolation_sample_name .follow: {')' ','} builtin_value_name -> ( Choice 'vertex_index' 'instance_index' 'position' 'front_facing' 'frag_depth' 'local_invocation_id' 'local_invocation_index' 'global_invocation_id' 'workgroup_id' 'num_workgroups' 'sample_index' 'sample_mask' ) builtin_value_name .reg_info.index: 501 builtin_value_name .first: {'frag_depth' 'front_facing' 'global_invocation_id' 'instance_index' 'local_invocation_id' 'local_invocation_index' 'num_workgroups' 'position' 'sample_index' 'sample_mask' 'vertex_index' 'workgroup_id'} builtin_value_name .derives_empty: False builtin_value_name .follow: {')' ','} access_mode -> ( Choice 'read' 'write' 'read_write' ) access_mode .reg_info.index: 502 access_mode .first: {'read' 'read_write' 'write'} access_mode .derives_empty: False access_mode .follow: {'>'} address_space -> ( Choice 'function' 'private' 'workgroup' 'uniform' 'storage' ) address_space .reg_info.index: 503 address_space .first: {'function' 'private' 'storage' 'uniform' 'workgroup'} address_space .derives_empty: False address_space .follow: {',' '>'} texel_format -> ( Choice 'rgba8unorm' 'rgba8snorm' 'rgba8uint' 'rgba8sint' 'rgba16uint' 'rgba16sint' 'rgba16float' 'r32uint' 'r32sint' 'r32float' 'rg32uint' 'rg32sint' 'rg32float' 'rgba32uint' 'rgba32sint' 'rgba32float' 'bgra8unorm' ) texel_format .reg_info.index: 504 texel_format .first: {'bgra8unorm' 'r32float' 'r32sint' 'r32uint' 'rg32float' 'rg32sint' 'rg32uint' 'rgba16float' 'rgba16sint' 'rgba16uint' 'rgba32float' 'rgba32sint' 'rgba32uint' 'rgba8sint' 'rgba8snorm' 'rgba8uint' 'rgba8unorm'} texel_format .derives_empty: False texel_format .follow: {','} extension_name -> 'f16' extension_name .reg_info.index: 63 extension_name .first: {'f16'} extension_name .derives_empty: False extension_name .follow: {} 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: 505 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: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} ident -> ident_pattern_token ident .reg_info.index: 222 ident .first: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} ident .derives_empty: False ident .follow: {'!=' '%' '%=' '&&' '&' '&=' '(' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||' '}'} _comment -> '//.*' _comment .reg_info.index: 187 _comment .first: {'//.*'} _comment .derives_empty: False _comment .follow: {} _blankspace -> /[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]/ _blankspace .reg_info.index: 188 _blankspace .first: {/[\u0020\u0009\u000a\u000b\u000c\u000d\u0085\u200e\u200f\u2028\u2029]/} _blankspace .derives_empty: False _blankspace .follow: {} language -> ( Choice ( Seq translation_unit EndOfText ) ) language .reg_info.index: 552 language .first: {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' '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: 1378 translation_unit/0.0 .first: {'enable' ε} 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: 1382 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} attrib_end/0.0 -> ( Choice ',' ε ) attrib_end/0.0 .reg_info.index: 246 attrib_end/0.0 .first: {',' ε} attrib_end/0.0 .derives_empty: True attrib_end/0.0 .follow: {')' ':' '{' '}'} array_type_specifier/0.3 -> ( Choice ( Seq ',' element_count_expression ) ε ) array_type_specifier/0.3 .reg_info.index: 251 array_type_specifier/0.3 .first: {',' ε} array_type_specifier/0.3 .derives_empty: True array_type_specifier/0.3 .follow: {'>'} struct_body_decl/0.2 -> ( Choice struct_body_decl/0.2/0 ε ) struct_body_decl/0.2 .reg_info.index: 1390 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: 246 struct_body_decl/0.3 .first: {',' ε} struct_body_decl/0.3 .derives_empty: True struct_body_decl/0.3 .follow: {')' ':' '{' '}'} struct_member/0.0 -> ( Choice struct_member/0.0/0 ε ) struct_member/0.0 .reg_info.index: 1395 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}])/} type_specifier_without_ident/7.5 -> ( Choice ( Seq ',' access_mode ) ε ) type_specifier_without_ident/7.5 .reg_info.index: 293 type_specifier_without_ident/7.5 .first: {',' ε} type_specifier_without_ident/7.5 .derives_empty: True type_specifier_without_ident/7.5 .follow: {'>'} variable_decl/0.1 -> ( Choice variable_qualifier ε ) variable_decl/0.1 .reg_info.index: 308 variable_decl/0.1 .first: {'<' ε} variable_decl/0.1 .derives_empty: True variable_decl/0.1 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} optionally_typed_ident/0.1 -> ( Choice ( Seq ':' type_specifier ) ε ) optionally_typed_ident/0.1 .reg_info.index: 311 optionally_typed_ident/0.1 .first: {':' ε} optionally_typed_ident/0.1 .derives_empty: True optionally_typed_ident/0.1 .follow: {';' '='} variable_qualifier/0.2 -> ( Choice ( Seq ',' access_mode ) ε ) variable_qualifier/0.2 .reg_info.index: 293 variable_qualifier/0.2 .first: {',' ε} variable_qualifier/0.2 .derives_empty: True variable_qualifier/0.2 .follow: {'>'} global_variable_decl/0.0 -> ( Choice global_variable_decl/0.0/0 ε ) global_variable_decl/0.0 .reg_info.index: 1409 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: 315 global_variable_decl/0.2 .first: {'=' ε} global_variable_decl/0.2 .derives_empty: True global_variable_decl/0.2 .follow: {';'} global_constant_decl/1.0 -> ( Choice global_constant_decl/1.0/0 ε ) global_constant_decl/1.0 .reg_info.index: 1416 global_constant_decl/1.0 .first: {'@' ε} global_constant_decl/1.0 .derives_empty: True global_constant_decl/1.0 .follow: {'override'} global_constant_decl/1.3 -> ( Choice ( Seq '=' expression ) ε ) global_constant_decl/1.3 .reg_info.index: 315 global_constant_decl/1.3 .first: {'=' ε} global_constant_decl/1.3 .derives_empty: True global_constant_decl/1.3 .follow: {';'} argument_expression_list/0.1 -> ( Choice expression_comma_list ε ) argument_expression_list/0.1 .reg_info.index: 331 argument_expression_list/0.1 .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 1424 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: 246 expression_comma_list/0.2 .first: {',' ε} expression_comma_list/0.2 .derives_empty: True expression_comma_list/0.2 .follow: {')' ':' '{' '}'} component_or_swizzle_specifier/0.3 -> ( Choice component_or_swizzle_specifier ε ) component_or_swizzle_specifier/0.3 .reg_info.index: 338 component_or_swizzle_specifier/0.3 .first: {'.' '[' ε} component_or_swizzle_specifier/0.3 .derives_empty: True component_or_swizzle_specifier/0.3 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier/1.2 -> ( Choice component_or_swizzle_specifier ε ) component_or_swizzle_specifier/1.2 .reg_info.index: 338 component_or_swizzle_specifier/1.2 .first: {'.' '[' ε} component_or_swizzle_specifier/1.2 .derives_empty: True component_or_swizzle_specifier/1.2 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier/2.2 -> ( Choice component_or_swizzle_specifier ε ) component_or_swizzle_specifier/2.2 .reg_info.index: 338 component_or_swizzle_specifier/2.2 .first: {'.' '[' ε} component_or_swizzle_specifier/2.2 .derives_empty: True component_or_swizzle_specifier/2.2 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} singular_expression/0.1 -> ( Choice component_or_swizzle_specifier ε ) singular_expression/0.1 .reg_info.index: 338 singular_expression/0.1 .first: {'.' '[' ε} singular_expression/0.1 .derives_empty: True singular_expression/0.1 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} lhs_expression/0.1 -> ( Choice component_or_swizzle_specifier ε ) lhs_expression/0.1 .reg_info.index: 338 lhs_expression/0.1 .first: {'.' '[' ε} lhs_expression/0.1 .derives_empty: True lhs_expression/0.1 .follow: {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} compound_statement/0.1 -> ( Choice compound_statement/0.1/0 ε ) compound_statement/0.1 .reg_info.index: 1434 compound_statement/0.1 .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} compound_statement/0.1 .derives_empty: True compound_statement/0.1 .follow: {'}'} assignment_statement/0.1 -> ( Choice '=' compound_assignment_operator ) assignment_statement/0.1 .reg_info.index: 405 assignment_statement/0.1 .first: {'%=' '&=' '*=' '+=' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} assignment_statement/0.1 .derives_empty: False assignment_statement/0.1 .follow: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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.1 -> ( Choice if_statement/0.1/0 ε ) if_statement/0.1 .reg_info.index: 1439 if_statement/0.1 .first: {'else' ε} if_statement/0.1 .derives_empty: True if_statement/0.1 .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.2 -> ( Choice else_clause ε ) if_statement/0.2 .reg_info.index: 417 if_statement/0.2 .first: {'else' ε} if_statement/0.2 .derives_empty: True if_statement/0.2 .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.3 -> ( Choice switch_statement/0.3/0 ) switch_statement/0.3 .reg_info.index: 1356 switch_statement/0.3 .first: {'case' 'default' ε} switch_statement/0.3 .derives_empty: True switch_statement/0.3 .follow: {'}'} case_clause/0.2 -> ( Choice ':' ε ) case_clause/0.2 .reg_info.index: 430 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: 430 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: 1446 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: 246 case_selectors/0.2 .first: {',' ε} case_selectors/0.2 .derives_empty: True case_selectors/0.2 .follow: {')' ':' '{' '}'} loop_statement/0.2 -> ( Choice loop_statement/0.2/0 ε ) loop_statement/0.2 .reg_info.index: 1451 loop_statement/0.2 .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} loop_statement/0.2 .derives_empty: True loop_statement/0.2 .follow: {'continuing' '}'} loop_statement/0.3 -> ( Choice continuing_statement ε ) loop_statement/0.3 .reg_info.index: 440 loop_statement/0.3 .first: {'continuing' ε} loop_statement/0.3 .derives_empty: True loop_statement/0.3 .follow: {'}'} for_header/0.0 -> ( Choice for_init ε ) for_header/0.0 .reg_info.index: 445 for_header/0.0 .first: {'&' '(' '*' '_' 'array' 'atomic' 'bool' 'const' 'f16' 'f32' 'i32' 'let' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\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: 446 for_header/0.2 .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 448 for_header/0.4 .first: {'&' '(' '*' '_' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} for_header/0.4 .derives_empty: True for_header/0.4 .follow: {')'} continuing_compound_statement/0.1 -> ( Choice continuing_compound_statement/0.1/0 ε ) continuing_compound_statement/0.1 .reg_info.index: 1459 continuing_compound_statement/0.1 .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} continuing_compound_statement/0.1 .derives_empty: True continuing_compound_statement/0.1 .follow: {'break' '}'} continuing_compound_statement/0.2 -> ( Choice break_if_statement ε ) continuing_compound_statement/0.2 .reg_info.index: 460 continuing_compound_statement/0.2 .first: {'break' ε} continuing_compound_statement/0.2 .derives_empty: True continuing_compound_statement/0.2 .follow: {'}'} return_statement/0.1 -> ( Choice expression ε ) return_statement/0.1 .reg_info.index: 446 return_statement/0.1 .first: {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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: 1465 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: 487 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 type_specifier ) ε ) function_header/0.5 .reg_info.index: 1472 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: 1476 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: 246 param_list/0.2 .first: {',' ε} param_list/0.2 .derives_empty: True param_list/0.2 .follow: {')' ':' '{' '}'} param/0.0 -> ( Choice param/0.0/0 ε ) param/0.0 .reg_info.index: 1481 param/0.0 .first: {'@' ε} param/0.0 .derives_empty: True param/0.0 .follow: {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} switch_statement/0.3/0 -> ( Choice ( Seq switch_body switch_statement/0.3/0 ) ε ) switch_statement/0.3/0 .reg_info.index: 1355 switch_statement/0.3/0 .first: {'case' 'default' ε} switch_statement/0.3/0 .derives_empty: True switch_statement/0.3/0 .follow: {'}'} translation_unit/0.0/0 -> ( Choice ( Seq global_directive translation_unit/0.0/0 ) ε ) translation_unit/0.0/0 .reg_info.index: 1376 translation_unit/0.0/0 .first: {'enable' ε} 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 global_decl translation_unit/0.1/0 ) ε ) translation_unit/0.1/0 .reg_info.index: 1380 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} 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: 1500 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: 1393 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: 1407 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_constant_decl/1.0/0 -> ( Choice ( Seq attribute global_constant_decl/1.0/0 ) ε ) global_constant_decl/1.0/0 .reg_info.index: 1414 global_constant_decl/1.0/0 .first: {'@' ε} global_constant_decl/1.0/0 .derives_empty: True global_constant_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: 1519 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.1/0 -> ( Choice ( Seq statement compound_statement/0.1/0 ) ε ) compound_statement/0.1/0 .reg_info.index: 1432 compound_statement/0.1/0 .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} compound_statement/0.1/0 .derives_empty: True compound_statement/0.1/0 .follow: {'}'} if_statement/0.1/0 -> ( Choice ( Seq else_if_clause if_statement/0.1/0 ) ε ) if_statement/0.1/0 .reg_info.index: 1437 if_statement/0.1/0 .first: {'else' ε} if_statement/0.1/0 .derives_empty: True if_statement/0.1/0 .follow: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} 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: 1534 case_selectors/0.1/0 .first: {',' ε} case_selectors/0.1/0 .derives_empty: True case_selectors/0.1/0 .follow: {',' ':' '{'} loop_statement/0.2/0 -> ( Choice ( Seq statement loop_statement/0.2/0 ) ε ) loop_statement/0.2/0 .reg_info.index: 1449 loop_statement/0.2/0 .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} loop_statement/0.2/0 .derives_empty: True loop_statement/0.2/0 .follow: {'continuing' '}'} continuing_compound_statement/0.1/0 -> ( Choice ( Seq statement continuing_compound_statement/0.1/0 ) ε ) continuing_compound_statement/0.1/0 .reg_info.index: 1457 continuing_compound_statement/0.1/0 .first: {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ ε} continuing_compound_statement/0.1/0 .derives_empty: True continuing_compound_statement/0.1/0 .follow: {'break' '}'} function_decl/0.0/0 -> ( Choice ( Seq attribute function_decl/0.0/0 ) ε ) function_decl/0.0/0 .reg_info.index: 1463 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: 1562 function_header/0.5/0.1 .first: {'@' ε} function_header/0.5/0.1 .derives_empty: True function_header/0.5/0.1 .follow: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\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: 1554 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: 1479 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}])/} struct_body_decl/0.2/0/0.0 -> ( Choice ( Seq ',' struct_member ) ) struct_body_decl/0.2/0/0.0 .reg_info.index: 1496 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: 1515 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: 1530 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: 1550 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: {')' ','} 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: 1560 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: {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} =LALR1 item sets: #0 language -> · translation_unit EndOfText : {EndOfText} global_directive -> · 'enable' extension_name ';' : {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' '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} attribute -> · '@' 'align' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'compute' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'const' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'fragment' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'group' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'id' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'invariant' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'location' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'size' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'vertex' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} const_assert_statement -> · 'const_assert' expression : {';'} 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_constant_decl -> · 'const' optionally_typed_ident '=' expression : {';'} global_constant_decl -> · global_constant_decl/1.0 'override' optionally_typed_ident global_constant_decl/1.3 : {';'} global_constant_decl/1.0 -> · global_constant_decl/1.0/0 : {'override'} global_constant_decl/1.0/0 -> · attribute global_constant_decl/1.0/0 : {'override'} global_decl -> · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · const_assert_statement ';' : {';' '@' '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_constant_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_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'} 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 -> · global_decl translation_unit/0.1/0 : {EndOfText} type_alias_decl -> · 'alias' ident '=' type_specifier : {';'} #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} global_directive -> · 'enable' extension_name ';' : {';' '@' 'alias' 'const' 'const_assert' 'enable' '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} #5 global_directive -> 'enable' · extension_name ';' : {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' 'struct' 'var' EndOfText} extension_name -> · 'f16' : {';'} #6 global_directive -> 'enable' extension_name · ';' : {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' 'struct' 'var' EndOfText} #7 extension_name -> 'f16' · : {';'} #8 translation_unit/0.0/0 -> global_directive translation_unit/0.0/0 · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #9 translation_unit -> translation_unit/0.0 translation_unit/0.1 · : {EndOfText} #10 translation_unit/0.1 -> translation_unit/0.1/0 · : {EndOfText} #11 translation_unit/0.1/0 -> global_decl · translation_unit/0.1/0 : {EndOfText} attribute -> · '@' 'align' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'compute' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'const' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'fragment' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'group' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'id' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'invariant' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'location' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'size' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'vertex' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} const_assert_statement -> · 'const_assert' expression : {';'} 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_constant_decl -> · 'const' optionally_typed_ident '=' expression : {';'} global_constant_decl -> · global_constant_decl/1.0 'override' optionally_typed_ident global_constant_decl/1.3 : {';'} global_constant_decl/1.0 -> · global_constant_decl/1.0/0 : {'override'} global_constant_decl/1.0/0 -> · attribute global_constant_decl/1.0/0 : {'override'} global_decl -> · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} global_decl -> · const_assert_statement ';' : {';' '@' '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_constant_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_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'} struct_decl -> · 'struct' ident struct_body_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} translation_unit/0.1/0 -> · global_decl translation_unit/0.1/0 : {EndOfText} type_alias_decl -> · 'alias' ident '=' type_specifier : {';'} #12 global_decl -> ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #13 global_decl -> global_variable_decl · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #14 global_decl -> global_constant_decl · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #15 global_decl -> type_alias_decl · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #16 global_decl -> struct_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #17 global_decl -> function_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #18 global_decl -> const_assert_statement · ';' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #19 global_variable_decl -> global_variable_decl/0.0 · variable_decl global_variable_decl/0.2 : {';'} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} #20 global_constant_decl -> 'const' · optionally_typed_ident '=' expression : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':' '='} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {'='} #21 global_constant_decl -> global_constant_decl/1.0 · 'override' optionally_typed_ident global_constant_decl/1.3 : {';'} #22 type_alias_decl -> 'alias' · ident '=' type_specifier : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'='} #23 struct_decl -> 'struct' · ident struct_body_decl : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'{'} #24 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 : {'{'} #25 const_assert_statement -> 'const_assert' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #26 global_variable_decl/0.0 -> global_variable_decl/0.0/0 · : {'var'} #27 global_constant_decl/1.0 -> global_constant_decl/1.0/0 · : {'override'} #28 function_decl/0.0 -> function_decl/0.0/0 · : {'fn'} #29 function_decl/0.0/0 -> attribute · function_decl/0.0/0 : {'fn'} global_constant_decl/1.0/0 -> attribute · global_constant_decl/1.0/0 : {'override'} global_variable_decl/0.0/0 -> attribute · global_variable_decl/0.0/0 : {'var'} attribute -> · '@' 'align' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'compute' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'const' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'fragment' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'group' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'id' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'invariant' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'location' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'size' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'vertex' : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' 'fn' 'override' 'var'} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' 'fn' 'override' 'var'} function_decl/0.0/0 -> · attribute function_decl/0.0/0 : {'fn'} global_constant_decl/1.0/0 -> · attribute global_constant_decl/1.0/0 : {'override'} global_variable_decl/0.0/0 -> · attribute global_variable_decl/0.0/0 : {'var'} #30 attribute -> '@' · 'align' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'binding' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'builtin' '(' builtin_value_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'compute' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'const' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'fragment' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'group' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'id' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'interpolate' '(' interpolation_type_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'invariant' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'location' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'size' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'vertex' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'workgroup_size' '(' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' · 'workgroup_size' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #31 attribute -> '@' 'align' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #32 attribute -> '@' 'binding' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #33 attribute -> '@' 'builtin' · '(' builtin_value_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #34 attribute -> '@' 'const' · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #35 attribute -> '@' 'group' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #36 attribute -> '@' 'id' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #37 attribute -> '@' 'interpolate' · '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'interpolate' · '(' interpolation_type_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #38 attribute -> '@' 'invariant' · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #39 attribute -> '@' 'location' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #40 attribute -> '@' 'size' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #41 attribute -> '@' 'workgroup_size' · '(' expression ',' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' · '(' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' · '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #42 attribute -> '@' 'vertex' · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #43 attribute -> '@' 'fragment' · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #44 attribute -> '@' 'compute' · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #45 global_variable_decl/0.0/0 -> attribute global_variable_decl/0.0/0 · : {'var'} #46 global_constant_decl/1.0/0 -> attribute global_constant_decl/1.0/0 · : {'override'} #47 function_decl/0.0/0 -> attribute function_decl/0.0/0 · : {'fn'} #48 const_assert_statement -> 'const_assert' expression · : {';'} #49 expression -> relational_expression · : {')' ',' ':' ';' ']' '{'} short_circuit_and_expression -> relational_expression · : {'&&'} short_circuit_or_expression -> relational_expression · : {'||'} #50 expression -> short_circuit_or_expression · '||' relational_expression : {')' ',' ':' ';' ']' '{'} short_circuit_or_expression -> short_circuit_or_expression · '||' relational_expression : {'||'} #51 expression -> short_circuit_and_expression · '&&' relational_expression : {')' ',' ':' ';' ']' '{'} short_circuit_and_expression -> short_circuit_and_expression · '&&' relational_expression : {'&&'} #52 expression -> bitwise_expression · : {')' ',' ':' ';' ']' '{'} #53 relational_expression -> shift_expression · '!=' shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} relational_expression -> shift_expression · '<' shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} relational_expression -> shift_expression · '<=' shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} relational_expression -> shift_expression · '==' shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} relational_expression -> shift_expression · '>' shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} relational_expression -> shift_expression · '>=' shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} relational_expression -> shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #54 binary_and_expression -> binary_and_expression · '&' unary_expression : {'&'} bitwise_expression -> binary_and_expression · '&' unary_expression : {')' ',' ':' ';' '>' ']' '{'} #55 binary_or_expression -> binary_or_expression · '|' unary_expression : {'|'} bitwise_expression -> binary_or_expression · '|' unary_expression : {')' ',' ':' ';' '>' ']' '{'} #56 binary_xor_expression -> binary_xor_expression · '^' unary_expression : {'^'} bitwise_expression -> binary_xor_expression · '^' unary_expression : {')' ',' ':' ';' '>' ']' '{'} #57 additive_expression -> additive_expression · additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> additive_expression · : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} additive_operator -> · '+' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '-' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #58 binary_and_expression -> unary_expression · : {'&'} binary_or_expression -> unary_expression · : {'|'} binary_xor_expression -> unary_expression · : {'^'} multiplicative_expression -> unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> unary_expression · '<<' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> unary_expression · '>>' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} #59 additive_expression -> multiplicative_expression · : {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_expression -> multiplicative_expression · multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_operator -> · '%' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '*' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '/' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #60 unary_expression -> singular_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #61 unary_expression -> '-' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #62 unary_expression -> '!' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #63 unary_expression -> '~' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #64 unary_expression -> '*' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #65 unary_expression -> '&' · unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #66 singular_expression -> primary_expression · singular_expression/0.1 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} singular_expression/0.1 -> · component_or_swizzle_specifier : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #67 callable -> ident · : {'('} primary_expression -> ident · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #68 primary_expression -> call_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #69 primary_expression -> literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #70 primary_expression -> paren_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #71 primary_expression -> 'bitcast' · '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #72 ident -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {'!=' '%' '%=' '&&' '&' '&=' '(' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||' '}'} #73 call_expression -> callable · argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} argument_expression_list -> · '(' argument_expression_list/0.1 ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #74 literal -> int_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #75 literal -> float_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #76 literal -> bool_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #77 paren_expression -> '(' · expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' '||'} relational_expression -> · shift_expression : {'&&' ')' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #78 callable -> type_specifier_without_ident · : {'('} #79 callable -> vec_prefix · : {'('} type_specifier_without_ident -> vec_prefix · '<' type_specifier '>' : {'('} #80 callable -> mat_prefix · : {'('} type_specifier_without_ident -> mat_prefix · '<' type_specifier '>' : {'('} #81 array_type_specifier -> 'array' · '<' type_specifier array_type_specifier/0.3 '>' : {'('} callable -> 'array' · : {'('} #82 int_literal -> decimal_int_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #83 int_literal -> hex_int_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #84 float_literal -> decimal_float_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #85 float_literal -> hex_float_literal · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #86 bool_literal -> 'true' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #87 bool_literal -> 'false' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #88 type_specifier_without_ident -> 'bool' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #89 type_specifier_without_ident -> 'f32' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #90 type_specifier_without_ident -> 'f16' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #91 type_specifier_without_ident -> 'i32' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #92 type_specifier_without_ident -> 'u32' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #93 type_specifier_without_ident -> 'ptr' · '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #94 type_specifier_without_ident -> array_type_specifier · : {'(' ')' ',' ';' '=' '>' '{' '}'} #95 type_specifier_without_ident -> 'atomic' · '<' type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #96 type_specifier_without_ident -> texture_and_sampler_types · : {'(' ')' ',' ';' '=' '>' '{' '}'} #97 vec_prefix -> 'vec2' · : {'(' '<'} #98 vec_prefix -> 'vec3' · : {'(' '<'} #99 vec_prefix -> 'vec4' · : {'(' '<'} #100 mat_prefix -> 'mat2x2' · : {'(' '<'} #101 mat_prefix -> 'mat2x3' · : {'(' '<'} #102 mat_prefix -> 'mat2x4' · : {'(' '<'} #103 mat_prefix -> 'mat3x2' · : {'(' '<'} #104 mat_prefix -> 'mat3x3' · : {'(' '<'} #105 mat_prefix -> 'mat3x4' · : {'(' '<'} #106 mat_prefix -> 'mat4x2' · : {'(' '<'} #107 mat_prefix -> 'mat4x3' · : {'(' '<'} #108 mat_prefix -> 'mat4x4' · : {'(' '<'} #109 decimal_int_literal -> /0[iu]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #110 decimal_int_literal -> /[1-9][0-9]*[iu]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #111 hex_int_literal -> /0[xX][0-9a-fA-F]+[iu]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #112 decimal_float_literal -> /0[fh]/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #113 decimal_float_literal -> /[1-9][0-9]*[fh]/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #114 decimal_float_literal -> /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #115 decimal_float_literal -> /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #116 decimal_float_literal -> /[0-9]+[eE][+-]?[0-9]+[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #117 hex_float_literal -> /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #118 hex_float_literal -> /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #119 hex_float_literal -> /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #120 texture_and_sampler_types -> sampler_type · : {'(' ')' ',' ';' '=' '>' '{' '}'} #121 texture_and_sampler_types -> depth_texture_type · : {'(' ')' ',' ';' '=' '>' '{' '}'} #122 texture_and_sampler_types -> sampled_texture_type · '<' type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #123 texture_and_sampler_types -> multisampled_texture_type · '<' type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #124 texture_and_sampler_types -> storage_texture_type · '<' texel_format ',' access_mode '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #125 sampler_type -> 'sampler' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #126 sampler_type -> 'sampler_comparison' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #127 depth_texture_type -> 'texture_depth_2d' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #128 depth_texture_type -> 'texture_depth_2d_array' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #129 depth_texture_type -> 'texture_depth_cube' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #130 depth_texture_type -> 'texture_depth_cube_array' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #131 depth_texture_type -> 'texture_depth_multisampled_2d' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #132 sampled_texture_type -> 'texture_1d' · : {'<'} #133 sampled_texture_type -> 'texture_2d' · : {'<'} #134 sampled_texture_type -> 'texture_2d_array' · : {'<'} #135 sampled_texture_type -> 'texture_3d' · : {'<'} #136 sampled_texture_type -> 'texture_cube' · : {'<'} #137 sampled_texture_type -> 'texture_cube_array' · : {'<'} #138 multisampled_texture_type -> 'texture_multisampled_2d' · : {'<'} #139 storage_texture_type -> 'texture_storage_1d' · : {'<'} #140 storage_texture_type -> 'texture_storage_2d' · : {'<'} #141 storage_texture_type -> 'texture_storage_2d_array' · : {'<'} #142 storage_texture_type -> 'texture_storage_3d' · : {'<'} #143 function_decl -> function_decl/0.0 function_header · compound_statement : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} compound_statement -> · '{' compound_statement/0.1 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #144 function_header -> 'fn' · ident '(' function_header/0.3 ')' function_header/0.5 : {'{'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'('} #145 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} #146 type_alias_decl -> 'alias' ident · '=' type_specifier : {';'} #147 global_constant_decl -> global_constant_decl/1.0 'override' · optionally_typed_ident global_constant_decl/1.3 : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':' ';' '='} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {';' '='} #148 global_constant_decl -> 'const' optionally_typed_ident · '=' expression : {';'} #149 optionally_typed_ident -> ident · optionally_typed_ident/0.1 : {';' '='} optionally_typed_ident/0.1 -> · ':' type_specifier : {';' '='} #150 global_variable_decl -> global_variable_decl/0.0 variable_decl · global_variable_decl/0.2 : {';'} global_variable_decl/0.2 -> · '=' expression : {';'} #151 variable_decl -> 'var' · variable_decl/0.1 optionally_typed_ident : {';' '='} variable_decl/0.1 -> · variable_qualifier : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} variable_qualifier -> · '<' address_space variable_qualifier/0.2 '>' : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #152 global_decl -> const_assert_statement ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #153 global_decl -> type_alias_decl ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #154 global_decl -> global_constant_decl ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #155 global_decl -> global_variable_decl ';' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #156 translation_unit/0.1/0 -> global_decl translation_unit/0.1/0 · : {EndOfText} #157 global_directive -> 'enable' extension_name ';' · : {';' '@' 'alias' 'const' 'const_assert' 'enable' 'fn' 'override' 'struct' 'var' EndOfText} #158 variable_decl -> 'var' variable_decl/0.1 · optionally_typed_ident : {';' '='} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':' ';' '='} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {';' '='} #159 variable_decl/0.1 -> variable_qualifier · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #160 variable_qualifier -> '<' · address_space variable_qualifier/0.2 '>' : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} address_space -> · 'function' : {',' '>'} address_space -> · 'private' : {',' '>'} address_space -> · 'storage' : {',' '>'} address_space -> · 'uniform' : {',' '>'} address_space -> · 'workgroup' : {',' '>'} #161 global_variable_decl -> global_variable_decl/0.0 variable_decl global_variable_decl/0.2 · : {';'} #162 global_variable_decl/0.2 -> '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #163 optionally_typed_ident -> ident optionally_typed_ident/0.1 · : {';' '='} #164 optionally_typed_ident/0.1 -> ':' · type_specifier : {';' '='} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {';' '='} depth_texture_type -> · 'texture_depth_2d' : {';' '='} depth_texture_type -> · 'texture_depth_2d_array' : {';' '='} depth_texture_type -> · 'texture_depth_cube' : {';' '='} depth_texture_type -> · 'texture_depth_cube_array' : {';' '='} depth_texture_type -> · 'texture_depth_multisampled_2d' : {';' '='} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {';' '='} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {';' '='} sampler_type -> · 'sampler_comparison' : {';' '='} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {';' '='} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {';' '='} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {';' '='} texture_and_sampler_types -> · sampler_type : {';' '='} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {';' '='} type_specifier -> · ident : {';' '='} type_specifier -> · type_specifier_without_ident : {';' '='} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {';' '='} type_specifier_without_ident -> · 'bool' : {';' '='} type_specifier_without_ident -> · 'f16' : {';' '='} type_specifier_without_ident -> · 'f32' : {';' '='} type_specifier_without_ident -> · 'i32' : {';' '='} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {';' '='} type_specifier_without_ident -> · 'u32' : {';' '='} type_specifier_without_ident -> · array_type_specifier : {';' '='} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {';' '='} type_specifier_without_ident -> · texture_and_sampler_types : {';' '='} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {';' '='} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #165 global_constant_decl -> 'const' optionally_typed_ident '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #166 global_constant_decl -> global_constant_decl/1.0 'override' optionally_typed_ident · global_constant_decl/1.3 : {';'} global_constant_decl/1.3 -> · '=' expression : {';'} #167 type_alias_decl -> 'alias' ident '=' · type_specifier : {';'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {';'} depth_texture_type -> · 'texture_depth_2d' : {';'} depth_texture_type -> · 'texture_depth_2d_array' : {';'} depth_texture_type -> · 'texture_depth_cube' : {';'} depth_texture_type -> · 'texture_depth_cube_array' : {';'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {';'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {';'} sampler_type -> · 'sampler_comparison' : {';'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {';'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {';'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {';'} texture_and_sampler_types -> · sampler_type : {';'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {';'} type_specifier -> · ident : {';'} type_specifier -> · type_specifier_without_ident : {';'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {';'} type_specifier_without_ident -> · 'bool' : {';'} type_specifier_without_ident -> · 'f16' : {';'} type_specifier_without_ident -> · 'f32' : {';'} type_specifier_without_ident -> · 'i32' : {';'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {';'} type_specifier_without_ident -> · 'u32' : {';'} type_specifier_without_ident -> · array_type_specifier : {';'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {';'} type_specifier_without_ident -> · texture_and_sampler_types : {';'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {';'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #168 struct_decl -> 'struct' ident struct_body_decl · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #169 struct_body_decl -> '{' · struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} attribute -> · '@' 'align' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' /([_\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}])/} #170 function_header -> 'fn' ident · '(' function_header/0.3 ')' function_header/0.5 : {'{'} #171 function_decl -> function_decl/0.0 function_header compound_statement · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #172 compound_statement -> '{' · compound_statement/0.1 '}' : {'&' '(' '*' ';' '@' '_' 'alias' 'array' 'atomic' 'bool' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'f16' 'f32' 'fn' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'return' 'sampler' 'sampler_comparison' 'struct' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} break_statement -> · 'break' : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.1 -> · compound_statement/0.1/0 : {'}'} compound_statement/0.1/0 -> · statement compound_statement/0.1/0 : {'}'} const_assert_statement -> · 'const_assert' expression : {';'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_statement -> · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement -> · if_clause if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} loop_statement -> · 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} return_statement -> · 'return' return_statement/0.1 : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} statement -> · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · const_assert_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} switch_statement -> · 'switch' expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} while_statement -> · 'while' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #173 texture_and_sampler_types -> storage_texture_type '<' · texel_format ',' access_mode '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} texel_format -> · 'bgra8unorm' : {','} texel_format -> · 'r32float' : {','} texel_format -> · 'r32sint' : {','} texel_format -> · 'r32uint' : {','} texel_format -> · 'rg32float' : {','} texel_format -> · 'rg32sint' : {','} texel_format -> · 'rg32uint' : {','} texel_format -> · 'rgba16float' : {','} texel_format -> · 'rgba16sint' : {','} texel_format -> · 'rgba16uint' : {','} texel_format -> · 'rgba32float' : {','} texel_format -> · 'rgba32sint' : {','} texel_format -> · 'rgba32uint' : {','} texel_format -> · 'rgba8sint' : {','} texel_format -> · 'rgba8snorm' : {','} texel_format -> · 'rgba8uint' : {','} texel_format -> · 'rgba8unorm' : {','} #174 texture_and_sampler_types -> multisampled_texture_type '<' · type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'>'} depth_texture_type -> · 'texture_depth_2d' : {'>'} depth_texture_type -> · 'texture_depth_2d_array' : {'>'} depth_texture_type -> · 'texture_depth_cube' : {'>'} depth_texture_type -> · 'texture_depth_cube_array' : {'>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'>'} sampler_type -> · 'sampler_comparison' : {'>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampler_type : {'>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'>'} type_specifier -> · ident : {'>'} type_specifier -> · type_specifier_without_ident : {'>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · 'bool' : {'>'} type_specifier_without_ident -> · 'f16' : {'>'} type_specifier_without_ident -> · 'f32' : {'>'} type_specifier_without_ident -> · 'i32' : {'>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'>'} type_specifier_without_ident -> · 'u32' : {'>'} type_specifier_without_ident -> · array_type_specifier : {'>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · texture_and_sampler_types : {'>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #175 texture_and_sampler_types -> sampled_texture_type '<' · type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'>'} depth_texture_type -> · 'texture_depth_2d' : {'>'} depth_texture_type -> · 'texture_depth_2d_array' : {'>'} depth_texture_type -> · 'texture_depth_cube' : {'>'} depth_texture_type -> · 'texture_depth_cube_array' : {'>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'>'} sampler_type -> · 'sampler_comparison' : {'>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampler_type : {'>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'>'} type_specifier -> · ident : {'>'} type_specifier -> · type_specifier_without_ident : {'>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · 'bool' : {'>'} type_specifier_without_ident -> · 'f16' : {'>'} type_specifier_without_ident -> · 'f32' : {'>'} type_specifier_without_ident -> · 'i32' : {'>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'>'} type_specifier_without_ident -> · 'u32' : {'>'} type_specifier_without_ident -> · array_type_specifier : {'>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · texture_and_sampler_types : {'>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #176 type_specifier_without_ident -> 'atomic' '<' · type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'>'} depth_texture_type -> · 'texture_depth_2d' : {'>'} depth_texture_type -> · 'texture_depth_2d_array' : {'>'} depth_texture_type -> · 'texture_depth_cube' : {'>'} depth_texture_type -> · 'texture_depth_cube_array' : {'>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'>'} sampler_type -> · 'sampler_comparison' : {'>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampler_type : {'>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'>'} type_specifier -> · ident : {'>'} type_specifier -> · type_specifier_without_ident : {'>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · 'bool' : {'>'} type_specifier_without_ident -> · 'f16' : {'>'} type_specifier_without_ident -> · 'f32' : {'>'} type_specifier_without_ident -> · 'i32' : {'>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'>'} type_specifier_without_ident -> · 'u32' : {'>'} type_specifier_without_ident -> · array_type_specifier : {'>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · texture_and_sampler_types : {'>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #177 type_specifier_without_ident -> 'ptr' '<' · address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} address_space -> · 'function' : {','} address_space -> · 'private' : {','} address_space -> · 'storage' : {','} address_space -> · 'uniform' : {','} address_space -> · 'workgroup' : {','} #178 array_type_specifier -> 'array' '<' · type_specifier array_type_specifier/0.3 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {',' '>'} depth_texture_type -> · 'texture_depth_2d' : {',' '>'} depth_texture_type -> · 'texture_depth_2d_array' : {',' '>'} depth_texture_type -> · 'texture_depth_cube' : {',' '>'} depth_texture_type -> · 'texture_depth_cube_array' : {',' '>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {',' '>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' '>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {',' '>'} sampler_type -> · 'sampler_comparison' : {',' '>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {',' '>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {',' '>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {',' '>'} texture_and_sampler_types -> · sampler_type : {',' '>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {',' '>'} type_specifier -> · ident : {',' '>'} type_specifier -> · type_specifier_without_ident : {',' '>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {',' '>'} type_specifier_without_ident -> · 'bool' : {',' '>'} type_specifier_without_ident -> · 'f16' : {',' '>'} type_specifier_without_ident -> · 'f32' : {',' '>'} type_specifier_without_ident -> · 'i32' : {',' '>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {',' '>'} type_specifier_without_ident -> · 'u32' : {',' '>'} type_specifier_without_ident -> · array_type_specifier : {',' '>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {',' '>'} type_specifier_without_ident -> · texture_and_sampler_types : {',' '>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {',' '>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #179 type_specifier_without_ident -> mat_prefix '<' · type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'>'} depth_texture_type -> · 'texture_depth_2d' : {'>'} depth_texture_type -> · 'texture_depth_2d_array' : {'>'} depth_texture_type -> · 'texture_depth_cube' : {'>'} depth_texture_type -> · 'texture_depth_cube_array' : {'>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'>'} sampler_type -> · 'sampler_comparison' : {'>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampler_type : {'>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'>'} type_specifier -> · ident : {'>'} type_specifier -> · type_specifier_without_ident : {'>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · 'bool' : {'>'} type_specifier_without_ident -> · 'f16' : {'>'} type_specifier_without_ident -> · 'f32' : {'>'} type_specifier_without_ident -> · 'i32' : {'>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'>'} type_specifier_without_ident -> · 'u32' : {'>'} type_specifier_without_ident -> · array_type_specifier : {'>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · texture_and_sampler_types : {'>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #180 type_specifier_without_ident -> vec_prefix '<' · type_specifier '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'>'} depth_texture_type -> · 'texture_depth_2d' : {'>'} depth_texture_type -> · 'texture_depth_2d_array' : {'>'} depth_texture_type -> · 'texture_depth_cube' : {'>'} depth_texture_type -> · 'texture_depth_cube_array' : {'>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'>'} sampler_type -> · 'sampler_comparison' : {'>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampler_type : {'>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'>'} type_specifier -> · ident : {'>'} type_specifier -> · type_specifier_without_ident : {'>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · 'bool' : {'>'} type_specifier_without_ident -> · 'f16' : {'>'} type_specifier_without_ident -> · 'f32' : {'>'} type_specifier_without_ident -> · 'i32' : {'>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'>'} type_specifier_without_ident -> · 'u32' : {'>'} type_specifier_without_ident -> · array_type_specifier : {'>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · texture_and_sampler_types : {'>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #181 paren_expression -> '(' expression · ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #182 call_expression -> callable argument_expression_list · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #183 argument_expression_list -> '(' · argument_expression_list/0.1 ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} argument_expression_list/0.1 -> · expression_comma_list : {')'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #184 primary_expression -> 'bitcast' '<' · type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'>'} depth_texture_type -> · 'texture_depth_2d' : {'>'} depth_texture_type -> · 'texture_depth_2d_array' : {'>'} depth_texture_type -> · 'texture_depth_cube' : {'>'} depth_texture_type -> · 'texture_depth_cube_array' : {'>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'>'} sampler_type -> · 'sampler_comparison' : {'>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'>'} texture_and_sampler_types -> · sampler_type : {'>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'>'} type_specifier -> · ident : {'>'} type_specifier -> · type_specifier_without_ident : {'>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · 'bool' : {'>'} type_specifier_without_ident -> · 'f16' : {'>'} type_specifier_without_ident -> · 'f32' : {'>'} type_specifier_without_ident -> · 'i32' : {'>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'>'} type_specifier_without_ident -> · 'u32' : {'>'} type_specifier_without_ident -> · array_type_specifier : {'>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'>'} type_specifier_without_ident -> · texture_and_sampler_types : {'>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #185 singular_expression -> primary_expression singular_expression/0.1 · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #186 singular_expression/0.1 -> component_or_swizzle_specifier · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #187 component_or_swizzle_specifier -> '[' · expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' ']' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' ']' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' ']' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' ']' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ']' '||'} relational_expression -> · shift_expression : {'&&' ']' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' ']' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' ']' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' ']' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #188 component_or_swizzle_specifier -> '.' · member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> '.' · swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} member_ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[rgba]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[rgba][rgba]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[rgba][rgba][rgba]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[rgba][rgba][rgba][rgba]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[xyzw]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[xyzw][xyzw]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[xyzw][xyzw][xyzw]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} swizzle_name -> · '/[xyzw][xyzw][xyzw][xyzw]/' : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #189 unary_expression -> '&' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #190 unary_expression -> '*' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #191 unary_expression -> '~' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #192 unary_expression -> '!' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #193 unary_expression -> '-' unary_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '^' '{' '|' '||'} #194 multiplicative_expression -> multiplicative_expression multiplicative_operator · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · bool_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · ident : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #195 multiplicative_operator -> '*' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #196 multiplicative_operator -> '/' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #197 multiplicative_operator -> '%' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #198 shift_expression -> unary_expression '<<' · unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} bool_literal -> · 'true' : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '&&' '(' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · bool_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · call_expression : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · ident : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · singular_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #199 shift_expression -> unary_expression '>>' · unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} bool_literal -> · 'true' : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '&&' '(' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · bool_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · float_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · int_literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · call_expression : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · ident : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · literal : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'!=' '&&' ')' ',' '.' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · singular_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #200 additive_expression -> additive_expression additive_operator · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · bool_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} literal -> · int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · ident : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<=' '==' '>' '>=' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #201 additive_operator -> '+' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #202 additive_operator -> '-' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #203 binary_xor_expression -> binary_xor_expression '^' · unary_expression : {'^'} bitwise_expression -> binary_xor_expression '^' · unary_expression : {')' ',' ':' ';' '>' ']' '{'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} bool_literal -> · 'true' : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} call_expression -> · callable argument_expression_list : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} decimal_int_literal -> · /0[iu]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} float_literal -> · hex_float_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'(' ')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} int_literal -> · decimal_int_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} int_literal -> · hex_int_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} literal -> · bool_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} literal -> · float_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} literal -> · int_literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} primary_expression -> · call_expression : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} primary_expression -> · ident : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} primary_expression -> · literal : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} primary_expression -> · paren_expression : {')' ',' '.' ':' ';' '>' '[' ']' '^' '{'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {')' ',' ':' ';' '>' ']' '^' '{'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {')' ',' ':' ';' '>' ']' '^' '{'} unary_expression -> · '&' unary_expression : {')' ',' ':' ';' '>' ']' '^' '{'} unary_expression -> · '*' unary_expression : {')' ',' ':' ';' '>' ']' '^' '{'} unary_expression -> · '-' unary_expression : {')' ',' ':' ';' '>' ']' '^' '{'} unary_expression -> · '~' unary_expression : {')' ',' ':' ';' '>' ']' '^' '{'} unary_expression -> · singular_expression : {')' ',' ':' ';' '>' ']' '^' '{'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #204 binary_or_expression -> binary_or_expression '|' · unary_expression : {'|'} bitwise_expression -> binary_or_expression '|' · unary_expression : {')' ',' ':' ';' '>' ']' '{'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} bool_literal -> · 'true' : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} call_expression -> · callable argument_expression_list : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} decimal_int_literal -> · /0[iu]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} float_literal -> · hex_float_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'(' ')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} int_literal -> · decimal_int_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} int_literal -> · hex_int_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} literal -> · bool_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} literal -> · float_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} literal -> · int_literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} primary_expression -> · call_expression : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} primary_expression -> · ident : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} primary_expression -> · literal : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} primary_expression -> · paren_expression : {')' ',' '.' ':' ';' '>' '[' ']' '{' '|'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {')' ',' ':' ';' '>' ']' '{' '|'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {')' ',' ':' ';' '>' ']' '{' '|'} unary_expression -> · '&' unary_expression : {')' ',' ':' ';' '>' ']' '{' '|'} unary_expression -> · '*' unary_expression : {')' ',' ':' ';' '>' ']' '{' '|'} unary_expression -> · '-' unary_expression : {')' ',' ':' ';' '>' ']' '{' '|'} unary_expression -> · '~' unary_expression : {')' ',' ':' ';' '>' ']' '{' '|'} unary_expression -> · singular_expression : {')' ',' ':' ';' '>' ']' '{' '|'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #205 binary_and_expression -> binary_and_expression '&' · unary_expression : {'&'} bitwise_expression -> binary_and_expression '&' · unary_expression : {')' ',' ':' ';' '>' ']' '{'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} bool_literal -> · 'true' : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} call_expression -> · callable argument_expression_list : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} decimal_int_literal -> · /0[iu]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} float_literal -> · hex_float_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'&' '(' ')' ',' '.' ':' ';' '>' '[' ']' '{'} int_literal -> · decimal_int_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} int_literal -> · hex_int_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} literal -> · bool_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} literal -> · float_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} literal -> · int_literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} primary_expression -> · call_expression : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} primary_expression -> · ident : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} primary_expression -> · literal : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} primary_expression -> · paren_expression : {'&' ')' ',' '.' ':' ';' '>' '[' ']' '{'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'&' ')' ',' ':' ';' '>' ']' '{'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'&' ')' ',' ':' ';' '>' ']' '{'} unary_expression -> · '&' unary_expression : {'&' ')' ',' ':' ';' '>' ']' '{'} unary_expression -> · '*' unary_expression : {'&' ')' ',' ':' ';' '>' ']' '{'} unary_expression -> · '-' unary_expression : {'&' ')' ',' ':' ';' '>' ']' '{'} unary_expression -> · '~' unary_expression : {'&' ')' ',' ':' ';' '>' ']' '{'} unary_expression -> · singular_expression : {'&' ')' ',' ':' ';' '>' ']' '{'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #206 relational_expression -> shift_expression '<' · shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #207 relational_expression -> shift_expression '>' · shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #208 relational_expression -> shift_expression '<=' · shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #209 relational_expression -> shift_expression '>=' · shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #210 relational_expression -> shift_expression '==' · shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #211 relational_expression -> shift_expression '!=' · shift_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'&&' ')' '+' ',' '-' ':' ';' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<<' '>>' '[' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'&&' ')' ',' ':' ';' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<<' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #212 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 : {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} bool_literal -> · 'true' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} float_literal -> · hex_float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} int_literal -> · hex_int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} literal -> · bool_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} literal -> · float_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} literal -> · int_literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} primary_expression -> · call_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} primary_expression -> · ident : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} primary_expression -> · literal : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} primary_expression -> · paren_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} relational_expression -> · shift_expression : {'&&' ')' ',' ':' ';' ']' '{'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} unary_expression -> · singular_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #213 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 : {'!=' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} bool_literal -> · 'false' : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} bool_literal -> · 'true' : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} float_literal -> · decimal_float_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} float_literal -> · hex_float_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '(' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} int_literal -> · decimal_int_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} int_literal -> · hex_int_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} literal -> · bool_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} literal -> · float_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} literal -> · int_literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} primary_expression -> · call_expression : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} primary_expression -> · ident : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} primary_expression -> · literal : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} primary_expression -> · paren_expression : {'!=' '%' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '{' '||'} relational_expression -> · shift_expression '!=' shift_expression : {')' ',' ':' ';' ']' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {')' ',' ':' ';' ']' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {')' ',' ':' ';' ']' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {')' ',' ':' ';' ']' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {')' ',' ':' ';' ']' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {')' ',' ':' ';' ']' '{' '||'} relational_expression -> · shift_expression : {')' ',' ':' ';' ']' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} singular_expression -> · primary_expression singular_expression/0.1 : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} unary_expression -> · singular_expression : {'!=' '%' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' ']' '{' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #214 attribute -> '@' 'workgroup_size' '(' · expression ',' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' '(' · expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #215 attribute -> '@' 'size' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #216 attribute -> '@' 'location' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #217 attribute -> '@' 'interpolate' '(' · interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'interpolate' '(' · interpolation_type_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolation_type_name -> · 'flat' : {')' ','} interpolation_type_name -> · 'linear' : {')' ','} interpolation_type_name -> · 'perspective' : {')' ','} #218 attribute -> '@' 'id' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #219 attribute -> '@' 'group' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #220 attribute -> '@' 'builtin' '(' · builtin_value_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} builtin_value_name -> · 'frag_depth' : {')' ','} builtin_value_name -> · 'front_facing' : {')' ','} builtin_value_name -> · 'global_invocation_id' : {')' ','} builtin_value_name -> · 'instance_index' : {')' ','} builtin_value_name -> · 'local_invocation_id' : {')' ','} builtin_value_name -> · 'local_invocation_index' : {')' ','} builtin_value_name -> · 'num_workgroups' : {')' ','} builtin_value_name -> · 'position' : {')' ','} builtin_value_name -> · 'sample_index' : {')' ','} builtin_value_name -> · 'sample_mask' : {')' ','} builtin_value_name -> · 'vertex_index' : {')' ','} builtin_value_name -> · 'workgroup_id' : {')' ','} #221 attribute -> '@' 'binding' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #222 attribute -> '@' 'align' '(' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #223 attribute -> '@' 'align' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #224 attribute -> '@' 'binding' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #225 attribute -> '@' 'builtin' '(' builtin_value_name · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #226 builtin_value_name -> 'vertex_index' · : {')' ','} #227 builtin_value_name -> 'instance_index' · : {')' ','} #228 builtin_value_name -> 'position' · : {')' ','} #229 builtin_value_name -> 'front_facing' · : {')' ','} #230 builtin_value_name -> 'frag_depth' · : {')' ','} #231 builtin_value_name -> 'local_invocation_id' · : {')' ','} #232 builtin_value_name -> 'local_invocation_index' · : {')' ','} #233 builtin_value_name -> 'global_invocation_id' · : {')' ','} #234 builtin_value_name -> 'workgroup_id' · : {')' ','} #235 builtin_value_name -> 'num_workgroups' · : {')' ','} #236 builtin_value_name -> 'sample_index' · : {')' ','} #237 builtin_value_name -> 'sample_mask' · : {')' ','} #238 attribute -> '@' 'group' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #239 attribute -> '@' 'id' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #240 attribute -> '@' 'interpolate' '(' interpolation_type_name · ',' interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'interpolate' '(' interpolation_type_name · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #241 interpolation_type_name -> 'perspective' · : {')' ','} #242 interpolation_type_name -> 'linear' · : {')' ','} #243 interpolation_type_name -> 'flat' · : {')' ','} #244 attribute -> '@' 'location' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #245 attribute -> '@' 'size' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #246 attribute -> '@' 'workgroup_size' '(' expression · ',' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' '(' expression · ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' '(' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #247 expression -> short_circuit_or_expression '||' relational_expression · : {')' ',' ':' ';' ']' '{'} short_circuit_or_expression -> short_circuit_or_expression '||' relational_expression · : {'||'} #248 multiplicative_expression -> unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> unary_expression · '<<' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} shift_expression -> unary_expression · '>>' unary_expression : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} #249 expression -> short_circuit_and_expression '&&' relational_expression · : {')' ',' ':' ';' ']' '{'} short_circuit_and_expression -> short_circuit_and_expression '&&' relational_expression · : {'&&'} #250 relational_expression -> shift_expression '!=' shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #251 relational_expression -> shift_expression '==' shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #252 relational_expression -> shift_expression '>=' shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #253 relational_expression -> shift_expression '<=' shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #254 relational_expression -> shift_expression '>' shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #255 relational_expression -> shift_expression '<' shift_expression · : {'&&' ')' ',' ':' ';' ']' '{' '||'} #256 binary_and_expression -> binary_and_expression '&' unary_expression · : {'&'} bitwise_expression -> binary_and_expression '&' unary_expression · : {')' ',' ':' ';' '>' ']' '{'} #257 binary_or_expression -> binary_or_expression '|' unary_expression · : {'|'} bitwise_expression -> binary_or_expression '|' unary_expression · : {')' ',' ':' ';' '>' ']' '{'} #258 binary_xor_expression -> binary_xor_expression '^' unary_expression · : {'^'} bitwise_expression -> binary_xor_expression '^' unary_expression · : {')' ',' ':' ';' '>' ']' '{'} #259 additive_expression -> additive_expression additive_operator multiplicative_expression · : {'!=' '&&' ')' '+' ',' '-' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_expression -> multiplicative_expression · multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} multiplicative_operator -> · '%' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '*' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '/' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #260 multiplicative_expression -> unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} #261 shift_expression -> unary_expression '>>' unary_expression · : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} #262 shift_expression -> unary_expression '<<' unary_expression · : {'!=' '&&' ')' ',' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} #263 multiplicative_expression -> multiplicative_expression multiplicative_operator unary_expression · : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' ':' ';' '<' '<=' '==' '>' '>=' ']' '{' '||'} #264 component_or_swizzle_specifier -> '.' member_ident · component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier/1.2 -> · component_or_swizzle_specifier : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #265 component_or_swizzle_specifier -> '.' swizzle_name · component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier/2.2 -> · component_or_swizzle_specifier : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #266 member_ident -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #267 swizzle_name -> '/[rgba]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #268 swizzle_name -> '/[rgba][rgba]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #269 swizzle_name -> '/[rgba][rgba][rgba]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #270 swizzle_name -> '/[rgba][rgba][rgba][rgba]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #271 swizzle_name -> '/[xyzw]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #272 swizzle_name -> '/[xyzw][xyzw]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #273 swizzle_name -> '/[xyzw][xyzw][xyzw]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #274 swizzle_name -> '/[xyzw][xyzw][xyzw][xyzw]/' · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '.' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' '[' ']' '^' '^=' '{' '|' '|=' '||'} #275 component_or_swizzle_specifier -> '[' expression · ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #276 primary_expression -> 'bitcast' '<' type_specifier · '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #277 type_specifier -> ident · : {')' ',' ';' '=' '>' '{' '}'} #278 type_specifier -> type_specifier_without_ident · : {')' ',' ';' '=' '>' '{' '}'} #279 type_specifier_without_ident -> vec_prefix · '<' type_specifier '>' : {')' ',' ';' '=' '>' '{' '}'} #280 type_specifier_without_ident -> mat_prefix · '<' type_specifier '>' : {')' ',' ';' '=' '>' '{' '}'} #281 array_type_specifier -> 'array' · '<' type_specifier array_type_specifier/0.3 '>' : {')' ',' ';' '=' '>' '{' '}'} #282 argument_expression_list -> '(' argument_expression_list/0.1 · ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #283 argument_expression_list/0.1 -> expression_comma_list · : {')'} #284 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 : {')' ','} #285 paren_expression -> '(' expression ')' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #286 type_specifier_without_ident -> vec_prefix '<' type_specifier · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #287 type_specifier_without_ident -> mat_prefix '<' type_specifier · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #288 array_type_specifier -> 'array' '<' type_specifier · array_type_specifier/0.3 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier/0.3 -> · ',' element_count_expression : {'>'} #289 type_specifier_without_ident -> 'ptr' '<' address_space · ',' type_specifier type_specifier_without_ident/7.5 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #290 address_space -> 'function' · : {',' '>'} #291 address_space -> 'private' · : {',' '>'} #292 address_space -> 'workgroup' · : {',' '>'} #293 address_space -> 'uniform' · : {',' '>'} #294 address_space -> 'storage' · : {',' '>'} #295 type_specifier_without_ident -> 'atomic' '<' type_specifier · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #296 texture_and_sampler_types -> sampled_texture_type '<' type_specifier · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #297 texture_and_sampler_types -> multisampled_texture_type '<' type_specifier · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #298 texture_and_sampler_types -> storage_texture_type '<' texel_format · ',' access_mode '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #299 texel_format -> 'rgba8unorm' · : {','} #300 texel_format -> 'rgba8snorm' · : {','} #301 texel_format -> 'rgba8uint' · : {','} #302 texel_format -> 'rgba8sint' · : {','} #303 texel_format -> 'rgba16uint' · : {','} #304 texel_format -> 'rgba16sint' · : {','} #305 texel_format -> 'rgba16float' · : {','} #306 texel_format -> 'r32uint' · : {','} #307 texel_format -> 'r32sint' · : {','} #308 texel_format -> 'r32float' · : {','} #309 texel_format -> 'rg32uint' · : {','} #310 texel_format -> 'rg32sint' · : {','} #311 texel_format -> 'rg32float' · : {','} #312 texel_format -> 'rgba32uint' · : {','} #313 texel_format -> 'rgba32sint' · : {','} #314 texel_format -> 'rgba32float' · : {','} #315 texel_format -> 'bgra8unorm' · : {','} #316 compound_statement -> '{' compound_statement/0.1 · '}' : {'&' '(' '*' ';' '@' '_' 'alias' 'array' 'atomic' 'bool' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'f16' 'f32' 'fn' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'return' 'sampler' 'sampler_comparison' 'struct' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} #317 compound_statement/0.1 -> compound_statement/0.1/0 · : {'}'} #318 compound_statement/0.1/0 -> statement · compound_statement/0.1/0 : {'}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} break_statement -> · 'break' : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement/0.1/0 -> · statement compound_statement/0.1/0 : {'}'} const_assert_statement -> · 'const_assert' expression : {';'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_statement -> · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement -> · if_clause if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} loop_statement -> · 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} return_statement -> · 'return' return_statement/0.1 : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} statement -> · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · const_assert_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} switch_statement -> · 'switch' expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} while_statement -> · 'while' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #319 statement -> ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #320 statement -> return_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #321 statement -> if_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #322 statement -> switch_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #323 statement -> loop_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #324 statement -> for_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #325 statement -> while_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #326 statement -> func_call_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #327 statement -> variable_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #328 statement -> break_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #329 statement -> continue_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #330 statement -> 'discard' · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #331 statement -> variable_updating_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #332 statement -> compound_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #333 statement -> const_assert_statement · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #334 return_statement -> 'return' · return_statement/0.1 : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} return_statement/0.1 -> · expression : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #335 if_statement -> if_clause · if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_if_clause -> · 'else' 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.1 -> · if_statement/0.1/0 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.1/0 -> · else_if_clause if_statement/0.1/0 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #336 switch_statement -> 'switch' · expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression : {'&&' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #337 loop_statement -> 'loop' · '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #338 for_statement -> 'for' · '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #339 while_statement -> 'while' · expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression : {'&&' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #340 func_call_statement -> callable · argument_expression_list : {')' ';'} argument_expression_list -> · '(' argument_expression_list/0.1 ')' : {')' ';'} #341 variable_statement -> variable_decl · '=' expression : {';'} variable_statement -> variable_decl · : {';'} #342 variable_statement -> 'let' · optionally_typed_ident '=' expression : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':' '='} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {'='} #343 variable_statement -> 'const' · optionally_typed_ident '=' expression : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':' '='} optionally_typed_ident -> · ident optionally_typed_ident/0.1 : {'='} #344 break_statement -> 'break' · : {';'} #345 continue_statement -> 'continue' · : {';'} #346 variable_updating_statement -> assignment_statement · : {')' ';'} #347 variable_updating_statement -> increment_statement · : {')' ';'} #348 variable_updating_statement -> decrement_statement · : {')' ';'} #349 if_clause -> 'if' · expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression : {'&&' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #350 callable -> ident · : {'('} core_lhs_expression -> ident · : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} #351 assignment_statement -> lhs_expression · assignment_statement/0.1 expression : {')' ';'} decrement_statement -> lhs_expression · '--' : {')' ';'} increment_statement -> lhs_expression · '++' : {')' ';'} assignment_statement/0.1 -> · '=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '%=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '&=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '*=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '+=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '-=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '/=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '<<=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '>>=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '^=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '|=' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #352 assignment_statement -> '_' · '=' expression : {')' ';'} #353 lhs_expression -> core_lhs_expression · lhs_expression/0.1 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression/0.1 -> · component_or_swizzle_specifier : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #354 lhs_expression -> '*' · lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} lhs_expression -> · '&' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #355 lhs_expression -> '&' · lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} lhs_expression -> · '&' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #356 core_lhs_expression -> '(' · lhs_expression ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · '(' lhs_expression ')' : {')' '.' '['} core_lhs_expression -> · ident : {')' '.' '['} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' '.' '['} lhs_expression -> · '&' lhs_expression : {')'} lhs_expression -> · '*' lhs_expression : {')'} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {')'} #357 function_header -> 'fn' ident '(' · function_header/0.3 ')' function_header/0.5 : {'{'} attribute -> · '@' 'align' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.3 -> · param_list : {')'} 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 : {')'} #358 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 : {',' '}'} #359 struct_member -> struct_member/0.0 · member_ident ':' type_specifier : {',' '}'} member_ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':'} #360 struct_member/0.0 -> struct_member/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #361 struct_member/0.0/0 -> attribute · struct_member/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'align' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' /([_\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}])/} #362 type_alias_decl -> 'alias' ident '=' type_specifier · : {';'} #363 global_constant_decl -> global_constant_decl/1.0 'override' optionally_typed_ident global_constant_decl/1.3 · : {';'} #364 global_constant_decl/1.3 -> '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #365 global_constant_decl -> 'const' optionally_typed_ident '=' expression · : {';'} #366 optionally_typed_ident/0.1 -> ':' type_specifier · : {';' '='} #367 global_variable_decl/0.2 -> '=' expression · : {';'} #368 variable_qualifier -> '<' address_space · variable_qualifier/0.2 '>' : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} variable_qualifier/0.2 -> · ',' access_mode : {'>'} #369 variable_decl -> 'var' variable_decl/0.1 optionally_typed_ident · : {';' '='} #370 variable_qualifier -> '<' address_space variable_qualifier/0.2 · '>' : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #371 variable_qualifier/0.2 -> ',' · access_mode : {'>'} access_mode -> · 'read' : {'>'} access_mode -> · 'read_write' : {'>'} access_mode -> · 'write' : {'>'} #372 global_constant_decl/1.3 -> '=' expression · : {';'} #373 struct_member/0.0/0 -> attribute struct_member/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #374 struct_member -> struct_member/0.0 member_ident · ':' type_specifier : {',' '}'} #375 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 -> · ',' : {'}'} #376 struct_body_decl/0.2 -> struct_body_decl/0.2/0 · : {',' '}'} #377 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 : {',' '}'} #378 struct_body_decl/0.2/0/0.0 -> ',' · struct_member : {',' '}'} attribute -> · '@' 'align' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' /([_\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}])/} #379 function_header -> 'fn' ident '(' function_header/0.3 · ')' function_header/0.5 : {'{'} #380 function_header/0.3 -> param_list · : {')'} #381 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 : {')' ','} #382 param -> param/0.0 · ident ':' type_specifier : {')' ','} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {':'} #383 param/0.0 -> param/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #384 param/0.0/0 -> attribute · param/0.0/0 : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'align' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' /([_\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}])/} #385 core_lhs_expression -> '(' lhs_expression · ')' : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} #386 core_lhs_expression -> ident · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} #387 lhs_expression -> '&' lhs_expression · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #388 lhs_expression -> '*' lhs_expression · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #389 lhs_expression -> core_lhs_expression lhs_expression/0.1 · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #390 lhs_expression/0.1 -> component_or_swizzle_specifier · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} #391 assignment_statement -> '_' '=' · expression : {')' ';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression : {'&&' ')' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #392 assignment_statement -> lhs_expression assignment_statement/0.1 · expression : {')' ';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ';' '||'} relational_expression -> · shift_expression : {'&&' ')' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #393 increment_statement -> lhs_expression '++' · : {')' ';'} #394 decrement_statement -> lhs_expression '--' · : {')' ';'} #395 assignment_statement/0.1 -> '=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #396 assignment_statement/0.1 -> compound_assignment_operator · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #397 compound_assignment_operator -> '+=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #398 compound_assignment_operator -> '-=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #399 compound_assignment_operator -> '*=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #400 compound_assignment_operator -> '/=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #401 compound_assignment_operator -> '%=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #402 compound_assignment_operator -> '&=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #403 compound_assignment_operator -> '|=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #404 compound_assignment_operator -> '^=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #405 compound_assignment_operator -> '>>=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #406 compound_assignment_operator -> '<<=' · : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #407 if_clause -> 'if' expression · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #408 variable_statement -> 'const' optionally_typed_ident · '=' expression : {';'} #409 variable_statement -> 'let' optionally_typed_ident · '=' expression : {';'} #410 variable_statement -> variable_decl '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #411 func_call_statement -> callable argument_expression_list · : {')' ';'} #412 while_statement -> 'while' expression · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #413 for_statement -> 'for' '(' · for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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_statement : {';'} for_init -> · variable_updating_statement : {';'} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #414 loop_statement -> 'loop' '{' · loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} break_statement -> · 'break' : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_assert_statement -> · 'const_assert' expression : {';'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_statement -> · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement -> · if_clause if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} loop_statement -> · 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.2 -> · loop_statement/0.2/0 : {'continuing' '}'} loop_statement/0.2/0 -> · statement loop_statement/0.2/0 : {'continuing' '}'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} return_statement -> · 'return' return_statement/0.1 : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} statement -> · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · const_assert_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} switch_statement -> · 'switch' expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} while_statement -> · 'while' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #415 switch_statement -> 'switch' expression · '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #416 if_statement -> if_clause if_statement/0.1 · if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_clause -> · 'else' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.2 -> · else_clause : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #417 if_statement/0.1 -> if_statement/0.1/0 · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #418 if_statement/0.1/0 -> else_if_clause · if_statement/0.1/0 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} else_if_clause -> · 'else' 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement/0.1/0 -> · else_if_clause if_statement/0.1/0 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #419 else_if_clause -> 'else' · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #420 return_statement -> 'return' return_statement/0.1 · : {';'} #421 return_statement/0.1 -> expression · : {';'} #422 statement -> const_assert_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #423 statement -> variable_updating_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #424 statement -> 'discard' ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #425 statement -> continue_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #426 statement -> break_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #427 statement -> variable_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #428 statement -> func_call_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #429 statement -> return_statement ';' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #430 compound_statement/0.1/0 -> statement compound_statement/0.1/0 · : {'}'} #431 compound_statement -> '{' compound_statement/0.1 '}' · : {'&' '(' '*' ';' '@' '_' 'alias' 'array' 'atomic' 'bool' 'break' 'case' 'const' 'const_assert' 'continue' 'continuing' 'default' 'discard' 'else' 'f16' 'f32' 'fn' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'return' 'sampler' 'sampler_comparison' 'struct' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ EndOfText} #432 texture_and_sampler_types -> storage_texture_type '<' texel_format ',' · access_mode '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} access_mode -> · 'read' : {'>'} access_mode -> · 'read_write' : {'>'} access_mode -> · 'write' : {'>'} #433 texture_and_sampler_types -> multisampled_texture_type '<' type_specifier '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #434 texture_and_sampler_types -> sampled_texture_type '<' type_specifier '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #435 type_specifier_without_ident -> 'atomic' '<' type_specifier '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #436 type_specifier_without_ident -> 'ptr' '<' address_space ',' · type_specifier type_specifier_without_ident/7.5 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {',' '>'} depth_texture_type -> · 'texture_depth_2d' : {',' '>'} depth_texture_type -> · 'texture_depth_2d_array' : {',' '>'} depth_texture_type -> · 'texture_depth_cube' : {',' '>'} depth_texture_type -> · 'texture_depth_cube_array' : {',' '>'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {',' '>'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' '>'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {',' '>'} sampler_type -> · 'sampler_comparison' : {',' '>'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {',' '>'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {',' '>'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {',' '>'} texture_and_sampler_types -> · sampler_type : {',' '>'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {',' '>'} type_specifier -> · ident : {',' '>'} type_specifier -> · type_specifier_without_ident : {',' '>'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {',' '>'} type_specifier_without_ident -> · 'bool' : {',' '>'} type_specifier_without_ident -> · 'f16' : {',' '>'} type_specifier_without_ident -> · 'f32' : {',' '>'} type_specifier_without_ident -> · 'i32' : {',' '>'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {',' '>'} type_specifier_without_ident -> · 'u32' : {',' '>'} type_specifier_without_ident -> · array_type_specifier : {',' '>'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {',' '>'} type_specifier_without_ident -> · texture_and_sampler_types : {',' '>'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {',' '>'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #437 array_type_specifier -> 'array' '<' type_specifier array_type_specifier/0.3 · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #438 array_type_specifier/0.3 -> ',' · element_count_expression : {'>'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'+' '-' '>'} additive_expression -> · multiplicative_expression : {'+' '-' '>'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} bool_literal -> · 'true' : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} call_expression -> · callable argument_expression_list : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} decimal_int_literal -> · /0[iu]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} element_count_expression -> · additive_expression : {'>'} element_count_expression -> · bitwise_expression : {'>'} float_literal -> · decimal_float_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} float_literal -> · hex_float_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%' '&' '(' '*' '+' '-' '.' '/' '>' '[' '^' '|'} int_literal -> · decimal_int_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} int_literal -> · hex_int_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} literal -> · bool_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} literal -> · float_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} literal -> · int_literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'%' '*' '+' '-' '/' '>'} multiplicative_expression -> · unary_expression : {'%' '*' '+' '-' '/' '>'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} primary_expression -> · call_expression : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} primary_expression -> · ident : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} primary_expression -> · literal : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} primary_expression -> · paren_expression : {'%' '&' '*' '+' '-' '.' '/' '>' '[' '^' '|'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} singular_expression -> · primary_expression singular_expression/0.1 : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} unary_expression -> · '&' unary_expression : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} unary_expression -> · '*' unary_expression : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} unary_expression -> · '-' unary_expression : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} unary_expression -> · '~' unary_expression : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} unary_expression -> · singular_expression : {'%' '&' '*' '+' '-' '/' '>' '^' '|'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #439 type_specifier_without_ident -> mat_prefix '<' type_specifier '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #440 type_specifier_without_ident -> vec_prefix '<' type_specifier '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #441 expression_comma_list -> expression expression_comma_list/0.1 · expression_comma_list/0.2 : {')'} expression_comma_list/0.2 -> · ',' : {')'} #442 expression_comma_list/0.1 -> expression_comma_list/0.1/0 · : {')' ','} #443 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 : {')' ','} #444 expression_comma_list/0.1/0/0.0 -> ',' · expression : {')' ','} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #445 argument_expression_list -> '(' argument_expression_list/0.1 ')' · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #446 primary_expression -> 'bitcast' '<' type_specifier '>' · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #447 component_or_swizzle_specifier -> '[' expression ']' · component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '.' member_ident component_or_swizzle_specifier/1.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '.' swizzle_name component_or_swizzle_specifier/2.2 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier -> · '[' expression ']' component_or_swizzle_specifier/0.3 : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} component_or_swizzle_specifier/0.3 -> · component_or_swizzle_specifier : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #448 component_or_swizzle_specifier -> '.' swizzle_name component_or_swizzle_specifier/2.2 · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #449 component_or_swizzle_specifier/2.2 -> component_or_swizzle_specifier · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #450 component_or_swizzle_specifier -> '.' member_ident component_or_swizzle_specifier/1.2 · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #451 component_or_swizzle_specifier/1.2 -> component_or_swizzle_specifier · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #452 attribute -> '@' 'workgroup_size' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #453 attrib_end/0.0 -> ',' · : {')'} attribute -> '@' 'workgroup_size' '(' expression ',' · expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' '(' expression ',' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #454 attrib_end -> attrib_end/0.0 · ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #455 attribute -> '@' 'size' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #456 attrib_end/0.0 -> ',' · : {')'} #457 attribute -> '@' 'location' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #458 attribute -> '@' 'interpolate' '(' interpolation_type_name attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #459 attrib_end/0.0 -> ',' · : {')'} attribute -> '@' 'interpolate' '(' interpolation_type_name ',' · interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} interpolation_sample_name -> · 'center' : {')' ','} interpolation_sample_name -> · 'centroid' : {')' ','} interpolation_sample_name -> · 'sample' : {')' ','} #460 attribute -> '@' 'id' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #461 attribute -> '@' 'group' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #462 attribute -> '@' 'builtin' '(' builtin_value_name attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #463 attribute -> '@' 'binding' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #464 attribute -> '@' 'align' '(' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #465 attribute -> '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #466 interpolation_sample_name -> 'center' · : {')' ','} #467 interpolation_sample_name -> 'centroid' · : {')' ','} #468 interpolation_sample_name -> 'sample' · : {')' ','} #469 attrib_end -> attrib_end/0.0 ')' · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #470 attribute -> '@' 'workgroup_size' '(' expression ',' expression · ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> '@' 'workgroup_size' '(' expression ',' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #471 component_or_swizzle_specifier -> '[' expression ']' component_or_swizzle_specifier/0.3 · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #472 component_or_swizzle_specifier/0.3 -> component_or_swizzle_specifier · : {'!=' '%' '%=' '&&' '&' '&=' ')' '*' '*=' '+' '++' '+=' ',' '-' '--' '-=' '/' '/=' ':' ';' '<' '<<' '<<=' '<=' '=' '==' '>' '>=' '>>' '>>=' ']' '^' '^=' '{' '|' '|=' '||'} #473 primary_expression -> 'bitcast' '<' type_specifier '>' paren_expression · : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' ':' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' ']' '^' '{' '|' '||'} #474 expression_comma_list/0.1/0/0.0 -> ',' expression · : {')' ','} #475 expression_comma_list/0.1/0 -> expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 · : {')' ','} #476 expression_comma_list -> expression expression_comma_list/0.1 expression_comma_list/0.2 · : {')'} #477 expression_comma_list/0.2 -> ',' · : {')'} #478 array_type_specifier/0.3 -> ',' element_count_expression · : {'>'} #479 additive_expression -> additive_expression · additive_operator multiplicative_expression : {'+' '-' '>'} element_count_expression -> additive_expression · : {'>'} additive_operator -> · '+' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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 -> · '-' : {'!' '&' '(' '*' '-' 'array' 'atomic' 'bitcast' 'bool' 'f16' 'f32' 'false' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'true' 'u32' 'vec2' 'vec3' 'vec4' '~' /([_\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]?/} #480 element_count_expression -> bitwise_expression · : {'>'} #481 binary_and_expression -> unary_expression · : {'&'} binary_or_expression -> unary_expression · : {'|'} binary_xor_expression -> unary_expression · : {'^'} multiplicative_expression -> unary_expression · : {'%' '*' '+' '-' '/' '>'} #482 array_type_specifier -> 'array' '<' type_specifier array_type_specifier/0.3 '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #483 type_specifier_without_ident -> 'ptr' '<' address_space ',' type_specifier · type_specifier_without_ident/7.5 '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} type_specifier_without_ident/7.5 -> · ',' access_mode : {'>'} #484 texture_and_sampler_types -> storage_texture_type '<' texel_format ',' access_mode · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #485 access_mode -> 'read' · : {'>'} #486 access_mode -> 'write' · : {'>'} #487 access_mode -> 'read_write' · : {'>'} #488 else_if_clause -> 'else' 'if' · expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' '<' '<=' '==' '>' '>=' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' '<' '<=' '==' '>' '>=' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' '{' '||'} relational_expression -> · shift_expression : {'&&' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' '<' '<=' '==' '>' '>=' '{' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #489 if_statement/0.1/0 -> else_if_clause if_statement/0.1/0 · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #490 if_statement -> if_clause if_statement/0.1 if_statement/0.2 · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #491 if_statement/0.2 -> else_clause · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #492 else_clause -> 'else' · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #493 switch_statement -> 'switch' expression '{' · switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' '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 -> · case_clause : {'case' 'default' '}'} switch_body -> · default_alone_clause : {'case' 'default' '}'} switch_statement/0.3 -> · switch_statement/0.3/0 : {'}'} switch_statement/0.3/0 -> · switch_body switch_statement/0.3/0 : {'}'} #494 loop_statement -> 'loop' '{' loop_statement/0.2 · loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} continuing_statement -> · 'continuing' continuing_compound_statement : {'}'} loop_statement/0.3 -> · continuing_statement : {'}'} #495 loop_statement/0.2 -> loop_statement/0.2/0 · : {'continuing' '}'} #496 loop_statement/0.2/0 -> statement · loop_statement/0.2/0 : {'continuing' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} break_statement -> · 'break' : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_assert_statement -> · 'const_assert' expression : {';'} continue_statement -> · 'continue' : {';'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_statement -> · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement -> · if_clause if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} loop_statement -> · 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} loop_statement/0.2/0 -> · statement loop_statement/0.2/0 : {'continuing' '}'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} return_statement -> · 'return' return_statement/0.1 : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} statement -> · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · const_assert_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} switch_statement -> · 'switch' expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} while_statement -> · 'while' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #497 for_statement -> 'for' '(' for_header · ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #498 for_header -> for_header/0.0 · ';' for_header/0.2 ';' for_header/0.4 : {')'} #499 for_header/0.0 -> for_init · : {';'} #500 for_init -> variable_statement · : {';'} #501 for_init -> variable_updating_statement · : {';'} #502 for_init -> func_call_statement · : {';'} #503 while_statement -> 'while' expression compound_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #504 variable_statement -> variable_decl '=' expression · : {';'} #505 variable_statement -> 'let' optionally_typed_ident '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #506 variable_statement -> 'const' optionally_typed_ident '=' · expression : {';'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #507 if_clause -> 'if' expression compound_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #508 assignment_statement -> lhs_expression assignment_statement/0.1 expression · : {')' ';'} #509 assignment_statement -> '_' '=' expression · : {')' ';'} #510 core_lhs_expression -> '(' lhs_expression ')' · : {'%=' '&=' ')' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} #511 param/0.0/0 -> attribute param/0.0/0 · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #512 param -> param/0.0 ident · ':' type_specifier : {')' ','} #513 param_list -> param param_list/0.1 · param_list/0.2 : {')'} param_list/0.2 -> · ',' : {')'} #514 param_list/0.1 -> param_list/0.1/0 · : {')' ','} #515 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 : {')' ','} #516 param_list/0.1/0/0.0 -> ',' · param : {')' ','} attribute -> · '@' 'align' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' /([_\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}])/} #517 function_header -> 'fn' ident '(' function_header/0.3 ')' · function_header/0.5 : {'{'} function_header/0.5 -> · '->' function_header/0.5/0.1 type_specifier : {'{'} #518 struct_body_decl/0.2/0/0.0 -> ',' struct_member · : {',' '}'} #519 struct_body_decl/0.2/0 -> struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 · : {',' '}'} #520 struct_body_decl -> '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 · '}' : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #521 struct_body_decl/0.3 -> ',' · : {'}'} #522 struct_member -> struct_member/0.0 member_ident ':' · type_specifier : {',' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {',' '}'} depth_texture_type -> · 'texture_depth_2d' : {',' '}'} depth_texture_type -> · 'texture_depth_2d_array' : {',' '}'} depth_texture_type -> · 'texture_depth_cube' : {',' '}'} depth_texture_type -> · 'texture_depth_cube_array' : {',' '}'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {',' '}'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {',' '}'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {',' '}'} sampler_type -> · 'sampler_comparison' : {',' '}'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {',' '}'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {',' '}'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {',' '}'} texture_and_sampler_types -> · sampler_type : {',' '}'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {',' '}'} type_specifier -> · ident : {',' '}'} type_specifier -> · type_specifier_without_ident : {',' '}'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {',' '}'} type_specifier_without_ident -> · 'bool' : {',' '}'} type_specifier_without_ident -> · 'f16' : {',' '}'} type_specifier_without_ident -> · 'f32' : {',' '}'} type_specifier_without_ident -> · 'i32' : {',' '}'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {',' '}'} type_specifier_without_ident -> · 'u32' : {',' '}'} type_specifier_without_ident -> · array_type_specifier : {',' '}'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {',' '}'} type_specifier_without_ident -> · texture_and_sampler_types : {',' '}'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {',' '}'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #523 variable_qualifier/0.2 -> ',' access_mode · : {'>'} #524 variable_qualifier -> '<' address_space variable_qualifier/0.2 '>' · : {/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #525 struct_member -> struct_member/0.0 member_ident ':' type_specifier · : {',' '}'} #526 struct_body_decl -> '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' · : {';' '@' 'alias' 'const' 'const_assert' 'fn' 'override' 'struct' 'var' EndOfText} #527 function_header -> 'fn' ident '(' function_header/0.3 ')' function_header/0.5 · : {'{'} #528 function_header/0.5 -> '->' · function_header/0.5/0.1 type_specifier : {'{'} attribute -> · '@' 'align' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.5/0.1 -> · function_header/0.5/0.1/0 : {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.5/0.1/0 -> · attribute function_header/0.5/0.1/0 : {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #529 param_list/0.1/0/0.0 -> ',' param · : {')' ','} #530 param_list/0.1/0 -> param_list/0.1/0/0.0 param_list/0.1/0 · : {')' ','} #531 param_list -> param param_list/0.1 param_list/0.2 · : {')'} #532 param_list/0.2 -> ',' · : {')'} #533 param -> param/0.0 ident ':' · type_specifier : {')' ','} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {')' ','} depth_texture_type -> · 'texture_depth_2d' : {')' ','} depth_texture_type -> · 'texture_depth_2d_array' : {')' ','} depth_texture_type -> · 'texture_depth_cube' : {')' ','} depth_texture_type -> · 'texture_depth_cube_array' : {')' ','} depth_texture_type -> · 'texture_depth_multisampled_2d' : {')' ','} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {')' ','} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {')' ','} sampler_type -> · 'sampler_comparison' : {')' ','} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {')' ','} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {')' ','} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {')' ','} texture_and_sampler_types -> · sampler_type : {')' ','} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {')' ','} type_specifier -> · ident : {')' ','} type_specifier -> · type_specifier_without_ident : {')' ','} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {')' ','} type_specifier_without_ident -> · 'bool' : {')' ','} type_specifier_without_ident -> · 'f16' : {')' ','} type_specifier_without_ident -> · 'f32' : {')' ','} type_specifier_without_ident -> · 'i32' : {')' ','} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {')' ','} type_specifier_without_ident -> · 'u32' : {')' ','} type_specifier_without_ident -> · array_type_specifier : {')' ','} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {')' ','} type_specifier_without_ident -> · texture_and_sampler_types : {')' ','} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {')' ','} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #534 variable_statement -> 'const' optionally_typed_ident '=' expression · : {';'} #535 variable_statement -> 'let' optionally_typed_ident '=' expression · : {';'} #536 for_header -> for_header/0.0 ';' · for_header/0.2 ';' for_header/0.4 : {')'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} for_header/0.2 -> · expression : {';'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #537 for_statement -> 'for' '(' for_header ')' · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #538 loop_statement/0.2/0 -> statement loop_statement/0.2/0 · : {'continuing' '}'} #539 loop_statement -> 'loop' '{' loop_statement/0.2 loop_statement/0.3 · '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #540 loop_statement/0.3 -> continuing_statement · : {'}'} #541 continuing_statement -> 'continuing' · continuing_compound_statement : {'}'} continuing_compound_statement -> · '{' continuing_compound_statement/0.1 continuing_compound_statement/0.2 '}' : {'}'} #542 switch_statement -> 'switch' expression '{' switch_statement/0.3 · '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #543 switch_statement/0.3 -> switch_statement/0.3/0 · : {'}'} #544 switch_statement/0.3/0 -> switch_body · switch_statement/0.3/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 -> · case_clause : {'case' 'default' '}'} switch_body -> · default_alone_clause : {'case' 'default' '}'} switch_statement/0.3/0 -> · switch_body switch_statement/0.3/0 : {'}'} #545 switch_body -> case_clause · : {'case' 'default' '}'} #546 switch_body -> default_alone_clause · : {'case' 'default' '}'} #547 case_clause -> 'case' · case_selectors case_clause/0.2 compound_statement : {'case' 'default' '}'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '<' '<=' '==' '>' '>=' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '<' '<=' '==' '>' '>=' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} case_selector -> · 'default' : {',' ':' '{'} case_selector -> · expression : {',' ':' '{'} case_selectors -> · case_selector case_selectors/0.1 case_selectors/0.2 : {':' '{'} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '<' '<=' '==' '>' '>=' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '<' '<=' '==' '>' '>=' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression : {'&&' ',' ':' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ',' ':' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ',' ':' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ',' ':' '<' '<=' '==' '>' '>=' '{' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #548 default_alone_clause -> 'default' · default_alone_clause/0.1 compound_statement : {'case' 'default' '}'} default_alone_clause/0.1 -> · ':' : {'{'} #549 else_clause -> 'else' compound_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #550 else_if_clause -> 'else' 'if' expression · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #551 texture_and_sampler_types -> storage_texture_type '<' texel_format ',' access_mode '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #552 type_specifier_without_ident -> 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 · '>' : {'(' ')' ',' ';' '=' '>' '{' '}'} #553 type_specifier_without_ident/7.5 -> ',' · access_mode : {'>'} access_mode -> · 'read' : {'>'} access_mode -> · 'read_write' : {'>'} access_mode -> · 'write' : {'>'} #554 attribute -> '@' 'workgroup_size' '(' expression ',' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #555 attrib_end/0.0 -> ',' · : {')'} attribute -> '@' 'workgroup_size' '(' expression ',' expression ',' · expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' ')' '+' ',' '-' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' ')' '*' '+' ',' '-' '/' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '.' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ')' ',' '||'} relational_expression -> · shift_expression : {'&&' ')' ',' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ')' ',' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' ')' '*' '+' ',' '-' '/' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #556 attribute -> '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #557 attribute -> '@' 'workgroup_size' '(' expression ',' expression ',' expression · attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end -> · attrib_end/0.0 ')' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attrib_end/0.0 -> · ',' : {')'} #558 type_specifier_without_ident/7.5 -> ',' access_mode · : {'>'} #559 type_specifier_without_ident -> 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' · : {'(' ')' ',' ';' '=' '>' '{' '}'} #560 else_if_clause -> 'else' 'if' expression compound_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #561 default_alone_clause -> 'default' default_alone_clause/0.1 · compound_statement : {'case' 'default' '}'} compound_statement -> · '{' compound_statement/0.1 '}' : {'case' 'default' '}'} #562 default_alone_clause/0.1 -> ':' · : {'{'} #563 case_clause -> 'case' case_selectors · case_clause/0.2 compound_statement : {'case' 'default' '}'} case_clause/0.2 -> · ':' : {'{'} #564 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 : {',' ':' '{'} #565 case_selector -> 'default' · : {',' ':' '{'} #566 case_selector -> expression · : {',' ':' '{'} #567 switch_statement/0.3/0 -> switch_body switch_statement/0.3/0 · : {'}'} #568 switch_statement -> 'switch' expression '{' switch_statement/0.3 '}' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #569 continuing_statement -> 'continuing' continuing_compound_statement · : {'}'} #570 continuing_compound_statement -> '{' · continuing_compound_statement/0.1 continuing_compound_statement/0.2 '}' : {'}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} break_statement -> · 'break' : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_assert_statement -> · 'const_assert' expression : {';'} continue_statement -> · 'continue' : {';'} continuing_compound_statement/0.1 -> · continuing_compound_statement/0.1/0 : {'break' '}'} continuing_compound_statement/0.1/0 -> · statement continuing_compound_statement/0.1/0 : {'break' '}'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_statement -> · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement -> · if_clause if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} loop_statement -> · 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} return_statement -> · 'return' return_statement/0.1 : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} statement -> · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · const_assert_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} switch_statement -> · 'switch' expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} while_statement -> · 'while' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #571 loop_statement -> 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #572 for_statement -> 'for' '(' for_header ')' compound_statement · : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'continuing' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #573 for_header -> for_header/0.0 ';' for_header/0.2 · ';' for_header/0.4 : {')'} #574 for_header/0.2 -> expression · : {';'} #575 param -> param/0.0 ident ':' type_specifier · : {')' ','} #576 function_header/0.5 -> '->' function_header/0.5/0.1 · type_specifier : {'{'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'{'} depth_texture_type -> · 'texture_depth_2d' : {'{'} depth_texture_type -> · 'texture_depth_2d_array' : {'{'} depth_texture_type -> · 'texture_depth_cube' : {'{'} depth_texture_type -> · 'texture_depth_cube_array' : {'{'} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'{'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'{'} mat_prefix -> · 'mat2x2' : {'<'} mat_prefix -> · 'mat2x3' : {'<'} mat_prefix -> · 'mat2x4' : {'<'} mat_prefix -> · 'mat3x2' : {'<'} mat_prefix -> · 'mat3x3' : {'<'} mat_prefix -> · 'mat3x4' : {'<'} mat_prefix -> · 'mat4x2' : {'<'} mat_prefix -> · 'mat4x3' : {'<'} mat_prefix -> · 'mat4x4' : {'<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'{'} sampler_type -> · 'sampler_comparison' : {'{'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'{'} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'{'} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'{'} texture_and_sampler_types -> · sampler_type : {'{'} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'{'} type_specifier -> · ident : {'{'} type_specifier -> · type_specifier_without_ident : {'{'} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'{'} type_specifier_without_ident -> · 'bool' : {'{'} type_specifier_without_ident -> · 'f16' : {'{'} type_specifier_without_ident -> · 'f32' : {'{'} type_specifier_without_ident -> · 'i32' : {'{'} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'{'} type_specifier_without_ident -> · 'u32' : {'{'} type_specifier_without_ident -> · array_type_specifier : {'{'} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'{'} type_specifier_without_ident -> · texture_and_sampler_types : {'{'} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'{'} vec_prefix -> · 'vec2' : {'<'} vec_prefix -> · 'vec3' : {'<'} vec_prefix -> · 'vec4' : {'<'} #577 function_header/0.5/0.1 -> function_header/0.5/0.1/0 · : {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #578 function_header/0.5/0.1/0 -> attribute · function_header/0.5/0.1/0 : {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'align' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'binding' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'builtin' '(' builtin_value_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'compute' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'const' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'fragment' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'group' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'id' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'interpolate' '(' interpolation_type_name attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'invariant' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'location' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'size' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'vertex' : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression ',' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} attribute -> · '@' 'workgroup_size' '(' expression attrib_end : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} function_header/0.5/0.1/0 -> · attribute function_header/0.5/0.1/0 : {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #579 function_header/0.5/0.1/0 -> attribute function_header/0.5/0.1/0 · : {'array' 'atomic' 'bool' 'f16' 'f32' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #580 function_header/0.5 -> '->' function_header/0.5/0.1 type_specifier · : {'{'} #581 for_header -> for_header/0.0 ';' for_header/0.2 ';' · for_header/0.4 : {')'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {')'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {')'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {')'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_header/0.4 -> · for_update : {')'} for_update -> · func_call_statement : {')'} for_update -> · variable_updating_statement : {')'} func_call_statement -> · callable argument_expression_list : {')'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} increment_statement -> · lhs_expression '++' : {')'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_updating_statement -> · assignment_statement : {')'} variable_updating_statement -> · decrement_statement : {')'} variable_updating_statement -> · increment_statement : {')'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #582 continuing_compound_statement -> '{' continuing_compound_statement/0.1 · continuing_compound_statement/0.2 '}' : {'}'} break_if_statement -> · 'break' 'if' expression ';' : {'}'} continuing_compound_statement/0.2 -> · break_if_statement : {'}'} #583 continuing_compound_statement/0.1 -> continuing_compound_statement/0.1/0 · : {'break' '}'} #584 continuing_compound_statement/0.1/0 -> statement · continuing_compound_statement/0.1/0 : {'break' '}'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} assignment_statement -> · '_' '=' expression : {';'} assignment_statement -> · lhs_expression assignment_statement/0.1 expression : {';'} break_statement -> · 'break' : {';'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} compound_statement -> · '{' compound_statement/0.1 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} const_assert_statement -> · 'const_assert' expression : {';'} continue_statement -> · 'continue' : {';'} continuing_compound_statement/0.1/0 -> · statement continuing_compound_statement/0.1/0 : {'break' '}'} core_lhs_expression -> · '(' lhs_expression ')' : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} core_lhs_expression -> · ident : {'%=' '&=' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} decrement_statement -> · lhs_expression '--' : {';'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} for_statement -> · 'for' '(' for_header ')' compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} func_call_statement -> · callable argument_expression_list : {';'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'%=' '&=' '(' '*=' '++' '+=' '--' '-=' '.' '/=' '<<=' '=' '>>=' '[' '^=' '|='} if_clause -> · 'if' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'else' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} if_statement -> · if_clause if_statement/0.1 if_statement/0.2 : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} increment_statement -> · lhs_expression '++' : {';'} lhs_expression -> · '&' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · '*' lhs_expression : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} lhs_expression -> · core_lhs_expression lhs_expression/0.1 : {'%=' '&=' '*=' '++' '+=' '--' '-=' '/=' '<<=' '=' '>>=' '^=' '|='} loop_statement -> · 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} return_statement -> · 'return' return_statement/0.1 : {';'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} statement -> · ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · 'discard' ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · break_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · const_assert_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · continue_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · for_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · func_call_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · if_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · loop_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · return_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · switch_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · variable_updating_statement ';' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} statement -> · while_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} switch_statement -> · 'switch' expression '{' switch_statement/0.3 '}' : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} variable_decl -> · 'var' variable_decl/0.1 optionally_typed_ident : {';' '='} variable_statement -> · 'const' optionally_typed_ident '=' expression : {';'} variable_statement -> · 'let' optionally_typed_ident '=' expression : {';'} variable_statement -> · variable_decl '=' expression : {';'} variable_statement -> · variable_decl : {';'} variable_updating_statement -> · assignment_statement : {';'} variable_updating_statement -> · decrement_statement : {';'} variable_updating_statement -> · increment_statement : {';'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} while_statement -> · 'while' expression compound_statement : {'&' '(' '*' ';' '_' 'array' 'atomic' 'bool' 'break' 'const' 'const_assert' 'continue' 'discard' 'f16' 'f32' 'for' 'i32' 'if' 'let' 'loop' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'ptr' 'return' 'sampler' 'sampler_comparison' 'switch' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' 'while' '{' '}' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #585 case_selectors -> case_selector case_selectors/0.1 · case_selectors/0.2 : {':' '{'} case_selectors/0.2 -> · ',' : {':' '{'} #586 case_selectors/0.1 -> case_selectors/0.1/0 · : {',' ':' '{'} #587 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 : {',' ':' '{'} #588 case_selectors/0.1/0/0.0 -> ',' · case_selector : {',' ':' '{'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '<' '<=' '==' '>' '>=' '{' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' ',' '-' ':' '<' '<=' '==' '>' '>=' '{' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} case_selector -> · 'default' : {',' ':' '{'} case_selector -> · expression : {',' ':' '{'} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '<' '<=' '==' '>' '>=' '{' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' ',' '-' '/' ':' '<' '<=' '==' '>' '>=' '{' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '.' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '{' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ',' ':' '{' '||'} relational_expression -> · shift_expression : {'&&' ',' ':' '{' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ',' ':' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ',' ':' '<' '<=' '==' '>' '>=' '{' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ',' ':' '<' '<=' '==' '>' '>=' '{' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' ',' '-' '/' ':' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '{' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #589 case_clause -> 'case' case_selectors case_clause/0.2 · compound_statement : {'case' 'default' '}'} compound_statement -> · '{' compound_statement/0.1 '}' : {'case' 'default' '}'} #590 case_clause/0.2 -> ':' · : {'{'} #591 default_alone_clause -> 'default' default_alone_clause/0.1 compound_statement · : {'case' 'default' '}'} #592 attribute -> '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end · : {'@' 'array' 'atomic' 'bool' 'f16' 'f32' 'fn' 'i32' 'mat2x2' 'mat2x3' 'mat2x4' 'mat3x2' 'mat3x3' 'mat3x4' 'mat4x2' 'mat4x3' 'mat4x4' 'override' 'ptr' 'sampler' 'sampler_comparison' 'texture_1d' 'texture_2d' 'texture_2d_array' 'texture_3d' 'texture_cube' 'texture_cube_array' 'texture_depth_2d' 'texture_depth_2d_array' 'texture_depth_cube' 'texture_depth_cube_array' 'texture_depth_multisampled_2d' 'texture_multisampled_2d' 'texture_storage_1d' 'texture_storage_2d' 'texture_storage_2d_array' 'texture_storage_3d' 'u32' 'var' 'vec2' 'vec3' 'vec4' /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/} #593 case_clause -> 'case' case_selectors case_clause/0.2 compound_statement · : {'case' 'default' '}'} #594 case_selectors/0.1/0/0.0 -> ',' case_selector · : {',' ':' '{'} #595 case_selectors/0.1/0 -> case_selectors/0.1/0/0.0 case_selectors/0.1/0 · : {',' ':' '{'} #596 case_selectors -> case_selector case_selectors/0.1 case_selectors/0.2 · : {':' '{'} #597 case_selectors/0.2 -> ',' · : {':' '{'} #598 continuing_compound_statement/0.1/0 -> statement continuing_compound_statement/0.1/0 · : {'break' '}'} #599 continuing_compound_statement -> '{' continuing_compound_statement/0.1 continuing_compound_statement/0.2 · '}' : {'}'} #600 continuing_compound_statement/0.2 -> break_if_statement · : {'}'} #601 break_if_statement -> 'break' · 'if' expression ';' : {'}'} #602 for_header -> for_header/0.0 ';' for_header/0.2 ';' for_header/0.4 · : {')'} #603 for_header/0.4 -> for_update · : {')'} #604 for_update -> variable_updating_statement · : {')'} #605 for_update -> func_call_statement · : {')'} #606 break_if_statement -> 'break' 'if' · expression ';' : {'}'} additive_expression -> · additive_expression additive_operator multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} additive_expression -> · multiplicative_expression : {'!=' '&&' '+' '-' ';' '<' '<=' '==' '>' '>=' '||'} array_type_specifier -> · 'array' '<' type_specifier array_type_specifier/0.3 '>' : {'('} 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' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} bool_literal -> · 'true' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} call_expression -> · callable argument_expression_list : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} callable -> · 'array' : {'('} callable -> · ident : {'('} callable -> · mat_prefix : {'('} callable -> · type_specifier_without_ident : {'('} callable -> · vec_prefix : {'('} decimal_float_literal -> · /0[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+[eE][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_float_literal -> · /[1-9][0-9]*[fh]/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /0[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} decimal_int_literal -> · /[1-9][0-9]*[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} depth_texture_type -> · 'texture_depth_2d' : {'('} depth_texture_type -> · 'texture_depth_2d_array' : {'('} depth_texture_type -> · 'texture_depth_cube' : {'('} depth_texture_type -> · 'texture_depth_cube_array' : {'('} depth_texture_type -> · 'texture_depth_multisampled_2d' : {'('} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} float_literal -> · hex_float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_float_literal -> · /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} hex_int_literal -> · /0[xX][0-9a-fA-F]+[iu]?/ : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} ident -> · /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ : {'!=' '%' '&&' '&' '(' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · decimal_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} int_literal -> · hex_int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · bool_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · float_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} literal -> · int_literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} mat_prefix -> · 'mat2x2' : {'(' '<'} mat_prefix -> · 'mat2x3' : {'(' '<'} mat_prefix -> · 'mat2x4' : {'(' '<'} mat_prefix -> · 'mat3x2' : {'(' '<'} mat_prefix -> · 'mat3x3' : {'(' '<'} mat_prefix -> · 'mat3x4' : {'(' '<'} mat_prefix -> · 'mat4x2' : {'(' '<'} mat_prefix -> · 'mat4x3' : {'(' '<'} mat_prefix -> · 'mat4x4' : {'(' '<'} multiplicative_expression -> · multiplicative_expression multiplicative_operator unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multiplicative_expression -> · unary_expression : {'!=' '%' '&&' '*' '+' '-' '/' ';' '<' '<=' '==' '>' '>=' '||'} multisampled_texture_type -> · 'texture_multisampled_2d' : {'<'} paren_expression -> · '(' expression ')' : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · 'bitcast' '<' type_specifier '>' paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · call_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · ident : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · literal : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} primary_expression -> · paren_expression : {'!=' '%' '&&' '&' '*' '+' '-' '.' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '[' '^' '|' '||'} relational_expression -> · shift_expression '!=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '<=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '==' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression '>=' shift_expression : {'&&' ';' '||'} relational_expression -> · shift_expression : {'&&' ';' '||'} sampled_texture_type -> · 'texture_1d' : {'<'} sampled_texture_type -> · 'texture_2d' : {'<'} sampled_texture_type -> · 'texture_2d_array' : {'<'} sampled_texture_type -> · 'texture_3d' : {'<'} sampled_texture_type -> · 'texture_cube' : {'<'} sampled_texture_type -> · 'texture_cube_array' : {'<'} sampler_type -> · 'sampler' : {'('} sampler_type -> · 'sampler_comparison' : {'('} shift_expression -> · additive_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '<<' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} shift_expression -> · unary_expression '>>' unary_expression : {'!=' '&&' ';' '<' '<=' '==' '>' '>=' '||'} 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 : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} storage_texture_type -> · 'texture_storage_1d' : {'<'} storage_texture_type -> · 'texture_storage_2d' : {'<'} storage_texture_type -> · 'texture_storage_2d_array' : {'<'} storage_texture_type -> · 'texture_storage_3d' : {'<'} texture_and_sampler_types -> · depth_texture_type : {'('} texture_and_sampler_types -> · multisampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampled_texture_type '<' type_specifier '>' : {'('} texture_and_sampler_types -> · sampler_type : {'('} texture_and_sampler_types -> · storage_texture_type '<' texel_format ',' access_mode '>' : {'('} type_specifier_without_ident -> · 'atomic' '<' type_specifier '>' : {'('} type_specifier_without_ident -> · 'bool' : {'('} type_specifier_without_ident -> · 'f16' : {'('} type_specifier_without_ident -> · 'f32' : {'('} type_specifier_without_ident -> · 'i32' : {'('} type_specifier_without_ident -> · 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' : {'('} type_specifier_without_ident -> · 'u32' : {'('} type_specifier_without_ident -> · array_type_specifier : {'('} type_specifier_without_ident -> · mat_prefix '<' type_specifier '>' : {'('} type_specifier_without_ident -> · texture_and_sampler_types : {'('} type_specifier_without_ident -> · vec_prefix '<' type_specifier '>' : {'('} unary_expression -> · '!' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '&' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '*' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '-' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · '~' unary_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} unary_expression -> · singular_expression : {'!=' '%' '&&' '&' '*' '+' '-' '/' ';' '<' '<<' '<=' '==' '>' '>=' '>>' '^' '|' '||'} vec_prefix -> · 'vec2' : {'(' '<'} vec_prefix -> · 'vec3' : {'(' '<'} vec_prefix -> · 'vec4' : {'(' '<'} #607 continuing_compound_statement -> '{' continuing_compound_statement/0.1 continuing_compound_statement/0.2 '}' · : {'}'} #608 break_if_statement -> 'break' 'if' expression · ';' : {'}'} #609 break_if_statement -> 'break' 'if' expression ';' · : {'}'} =Reductions: r#0 translation_unit/0.0 -> translation_unit/0.0/0 · r#1 extension_name -> 'f16' · r#2 translation_unit/0.0/0 -> global_directive translation_unit/0.0/0 · r#3 translation_unit -> translation_unit/0.0 translation_unit/0.1 · r#4 translation_unit/0.1 -> translation_unit/0.1/0 · r#5 global_decl -> ';' · r#6 global_decl -> struct_decl · r#7 global_decl -> function_decl · r#8 global_variable_decl/0.0 -> global_variable_decl/0.0/0 · r#9 global_constant_decl/1.0 -> global_constant_decl/1.0/0 · r#10 function_decl/0.0 -> function_decl/0.0/0 · r#11 attribute -> '@' 'const' · r#12 attribute -> '@' 'invariant' · r#13 attribute -> '@' 'vertex' · r#14 attribute -> '@' 'fragment' · r#15 attribute -> '@' 'compute' · r#16 global_variable_decl/0.0/0 -> attribute global_variable_decl/0.0/0 · r#17 global_constant_decl/1.0/0 -> attribute global_constant_decl/1.0/0 · r#18 function_decl/0.0/0 -> attribute function_decl/0.0/0 · r#19 const_assert_statement -> 'const_assert' expression · r#20 expression -> relational_expression · r#21 short_circuit_or_expression -> relational_expression · r#22 short_circuit_and_expression -> relational_expression · r#23 expression -> bitwise_expression · r#24 relational_expression -> shift_expression · r#25 shift_expression -> additive_expression · r#26 binary_and_expression -> unary_expression · r#27 binary_or_expression -> unary_expression · r#28 binary_xor_expression -> unary_expression · r#29 multiplicative_expression -> unary_expression · r#30 additive_expression -> multiplicative_expression · r#31 unary_expression -> singular_expression · r#32 primary_expression -> ident · r#33 callable -> ident · r#34 primary_expression -> call_expression · r#35 primary_expression -> literal · r#36 primary_expression -> paren_expression · r#37 ident -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#38 literal -> int_literal · r#39 literal -> float_literal · r#40 literal -> bool_literal · r#41 callable -> type_specifier_without_ident · r#42 callable -> vec_prefix · r#43 callable -> mat_prefix · r#44 callable -> 'array' · r#45 int_literal -> decimal_int_literal · r#46 int_literal -> hex_int_literal · r#47 float_literal -> decimal_float_literal · r#48 float_literal -> hex_float_literal · r#49 bool_literal -> 'true' · r#50 bool_literal -> 'false' · r#51 type_specifier_without_ident -> 'bool' · r#52 type_specifier_without_ident -> 'f32' · r#53 type_specifier_without_ident -> 'f16' · r#54 type_specifier_without_ident -> 'i32' · r#55 type_specifier_without_ident -> 'u32' · r#56 type_specifier_without_ident -> array_type_specifier · r#57 type_specifier_without_ident -> texture_and_sampler_types · r#58 vec_prefix -> 'vec2' · r#59 vec_prefix -> 'vec3' · r#60 vec_prefix -> 'vec4' · r#61 mat_prefix -> 'mat2x2' · r#62 mat_prefix -> 'mat2x3' · r#63 mat_prefix -> 'mat2x4' · r#64 mat_prefix -> 'mat3x2' · r#65 mat_prefix -> 'mat3x3' · r#66 mat_prefix -> 'mat3x4' · r#67 mat_prefix -> 'mat4x2' · r#68 mat_prefix -> 'mat4x3' · r#69 mat_prefix -> 'mat4x4' · r#70 decimal_int_literal -> /0[iu]?/ · r#71 decimal_int_literal -> /[1-9][0-9]*[iu]?/ · r#72 hex_int_literal -> /0[xX][0-9a-fA-F]+[iu]?/ · r#73 decimal_float_literal -> /0[fh]/ · r#74 decimal_float_literal -> /[1-9][0-9]*[fh]/ · r#75 decimal_float_literal -> /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/ · r#76 decimal_float_literal -> /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/ · r#77 decimal_float_literal -> /[0-9]+[eE][+-]?[0-9]+[fh]?/ · r#78 hex_float_literal -> /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/ · r#79 hex_float_literal -> /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/ · r#80 hex_float_literal -> /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/ · r#81 texture_and_sampler_types -> sampler_type · r#82 texture_and_sampler_types -> depth_texture_type · r#83 sampler_type -> 'sampler' · r#84 sampler_type -> 'sampler_comparison' · r#85 depth_texture_type -> 'texture_depth_2d' · r#86 depth_texture_type -> 'texture_depth_2d_array' · r#87 depth_texture_type -> 'texture_depth_cube' · r#88 depth_texture_type -> 'texture_depth_cube_array' · r#89 depth_texture_type -> 'texture_depth_multisampled_2d' · r#90 sampled_texture_type -> 'texture_1d' · r#91 sampled_texture_type -> 'texture_2d' · r#92 sampled_texture_type -> 'texture_2d_array' · r#93 sampled_texture_type -> 'texture_3d' · r#94 sampled_texture_type -> 'texture_cube' · r#95 sampled_texture_type -> 'texture_cube_array' · r#96 multisampled_texture_type -> 'texture_multisampled_2d' · r#97 storage_texture_type -> 'texture_storage_1d' · r#98 storage_texture_type -> 'texture_storage_2d' · r#99 storage_texture_type -> 'texture_storage_2d_array' · r#100 storage_texture_type -> 'texture_storage_3d' · r#101 global_decl -> const_assert_statement ';' · r#102 global_decl -> type_alias_decl ';' · r#103 global_decl -> global_constant_decl ';' · r#104 global_decl -> global_variable_decl ';' · r#105 translation_unit/0.1/0 -> global_decl translation_unit/0.1/0 · r#106 global_directive -> 'enable' extension_name ';' · r#107 variable_decl/0.1 -> variable_qualifier · r#108 global_variable_decl -> global_variable_decl/0.0 variable_decl global_variable_decl/0.2 · r#109 optionally_typed_ident -> ident optionally_typed_ident/0.1 · r#110 struct_decl -> 'struct' ident struct_body_decl · r#111 function_decl -> function_decl/0.0 function_header compound_statement · r#112 call_expression -> callable argument_expression_list · r#113 singular_expression -> primary_expression singular_expression/0.1 · r#114 singular_expression/0.1 -> component_or_swizzle_specifier · r#115 unary_expression -> '&' unary_expression · r#116 unary_expression -> '*' unary_expression · r#117 unary_expression -> '~' unary_expression · r#118 unary_expression -> '!' unary_expression · r#119 unary_expression -> '-' unary_expression · r#120 multiplicative_operator -> '*' · r#121 multiplicative_operator -> '/' · r#122 multiplicative_operator -> '%' · r#123 additive_operator -> '+' · r#124 additive_operator -> '-' · r#125 builtin_value_name -> 'vertex_index' · r#126 builtin_value_name -> 'instance_index' · r#127 builtin_value_name -> 'position' · r#128 builtin_value_name -> 'front_facing' · r#129 builtin_value_name -> 'frag_depth' · r#130 builtin_value_name -> 'local_invocation_id' · r#131 builtin_value_name -> 'local_invocation_index' · r#132 builtin_value_name -> 'global_invocation_id' · r#133 builtin_value_name -> 'workgroup_id' · r#134 builtin_value_name -> 'num_workgroups' · r#135 builtin_value_name -> 'sample_index' · r#136 builtin_value_name -> 'sample_mask' · r#137 interpolation_type_name -> 'perspective' · r#138 interpolation_type_name -> 'linear' · r#139 interpolation_type_name -> 'flat' · r#140 expression -> short_circuit_or_expression '||' relational_expression · r#141 short_circuit_or_expression -> short_circuit_or_expression '||' relational_expression · r#142 expression -> short_circuit_and_expression '&&' relational_expression · r#143 short_circuit_and_expression -> short_circuit_and_expression '&&' relational_expression · r#144 relational_expression -> shift_expression '!=' shift_expression · r#145 relational_expression -> shift_expression '==' shift_expression · r#146 relational_expression -> shift_expression '>=' shift_expression · r#147 relational_expression -> shift_expression '<=' shift_expression · r#148 relational_expression -> shift_expression '>' shift_expression · r#149 relational_expression -> shift_expression '<' shift_expression · r#150 bitwise_expression -> binary_and_expression '&' unary_expression · r#151 binary_and_expression -> binary_and_expression '&' unary_expression · r#152 bitwise_expression -> binary_or_expression '|' unary_expression · r#153 binary_or_expression -> binary_or_expression '|' unary_expression · r#154 bitwise_expression -> binary_xor_expression '^' unary_expression · r#155 binary_xor_expression -> binary_xor_expression '^' unary_expression · r#156 additive_expression -> additive_expression additive_operator multiplicative_expression · r#157 shift_expression -> unary_expression '>>' unary_expression · r#158 shift_expression -> unary_expression '<<' unary_expression · r#159 multiplicative_expression -> multiplicative_expression multiplicative_operator unary_expression · r#160 member_ident -> /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/ · r#161 swizzle_name -> '/[rgba]/' · r#162 swizzle_name -> '/[rgba][rgba]/' · r#163 swizzle_name -> '/[rgba][rgba][rgba]/' · r#164 swizzle_name -> '/[rgba][rgba][rgba][rgba]/' · r#165 swizzle_name -> '/[xyzw]/' · r#166 swizzle_name -> '/[xyzw][xyzw]/' · r#167 swizzle_name -> '/[xyzw][xyzw][xyzw]/' · r#168 swizzle_name -> '/[xyzw][xyzw][xyzw][xyzw]/' · r#169 type_specifier -> ident · r#170 type_specifier -> type_specifier_without_ident · r#171 argument_expression_list/0.1 -> expression_comma_list · r#172 paren_expression -> '(' expression ')' · r#173 address_space -> 'function' · r#174 address_space -> 'private' · r#175 address_space -> 'workgroup' · r#176 address_space -> 'uniform' · r#177 address_space -> 'storage' · r#178 texel_format -> 'rgba8unorm' · r#179 texel_format -> 'rgba8snorm' · r#180 texel_format -> 'rgba8uint' · r#181 texel_format -> 'rgba8sint' · r#182 texel_format -> 'rgba16uint' · r#183 texel_format -> 'rgba16sint' · r#184 texel_format -> 'rgba16float' · r#185 texel_format -> 'r32uint' · r#186 texel_format -> 'r32sint' · r#187 texel_format -> 'r32float' · r#188 texel_format -> 'rg32uint' · r#189 texel_format -> 'rg32sint' · r#190 texel_format -> 'rg32float' · r#191 texel_format -> 'rgba32uint' · r#192 texel_format -> 'rgba32sint' · r#193 texel_format -> 'rgba32float' · r#194 texel_format -> 'bgra8unorm' · r#195 compound_statement/0.1 -> compound_statement/0.1/0 · r#196 statement -> ';' · r#197 statement -> if_statement · r#198 statement -> switch_statement · r#199 statement -> loop_statement · r#200 statement -> for_statement · r#201 statement -> while_statement · r#202 statement -> compound_statement · r#203 variable_statement -> variable_decl · r#204 break_statement -> 'break' · r#205 continue_statement -> 'continue' · r#206 variable_updating_statement -> assignment_statement · r#207 variable_updating_statement -> increment_statement · r#208 variable_updating_statement -> decrement_statement · r#209 core_lhs_expression -> ident · r#210 struct_member/0.0 -> struct_member/0.0/0 · r#211 type_alias_decl -> 'alias' ident '=' type_specifier · r#212 global_constant_decl -> global_constant_decl/1.0 'override' optionally_typed_ident global_constant_decl/1.3 · r#213 global_constant_decl -> 'const' optionally_typed_ident '=' expression · r#214 optionally_typed_ident/0.1 -> ':' type_specifier · r#215 global_variable_decl/0.2 -> '=' expression · r#216 variable_decl -> 'var' variable_decl/0.1 optionally_typed_ident · r#217 global_constant_decl/1.3 -> '=' expression · r#218 struct_member/0.0/0 -> attribute struct_member/0.0/0 · r#219 struct_body_decl/0.2 -> struct_body_decl/0.2/0 · r#220 function_header/0.3 -> param_list · r#221 param/0.0 -> param/0.0/0 · r#222 lhs_expression -> '&' lhs_expression · r#223 lhs_expression -> '*' lhs_expression · r#224 lhs_expression -> core_lhs_expression lhs_expression/0.1 · r#225 lhs_expression/0.1 -> component_or_swizzle_specifier · r#226 increment_statement -> lhs_expression '++' · r#227 decrement_statement -> lhs_expression '--' · r#228 assignment_statement/0.1 -> '=' · r#229 assignment_statement/0.1 -> compound_assignment_operator · r#230 compound_assignment_operator -> '+=' · r#231 compound_assignment_operator -> '-=' · r#232 compound_assignment_operator -> '*=' · r#233 compound_assignment_operator -> '/=' · r#234 compound_assignment_operator -> '%=' · r#235 compound_assignment_operator -> '&=' · r#236 compound_assignment_operator -> '|=' · r#237 compound_assignment_operator -> '^=' · r#238 compound_assignment_operator -> '>>=' · r#239 compound_assignment_operator -> '<<=' · r#240 func_call_statement -> callable argument_expression_list · r#241 if_statement/0.1 -> if_statement/0.1/0 · r#242 return_statement -> 'return' return_statement/0.1 · r#243 return_statement/0.1 -> expression · r#244 statement -> const_assert_statement ';' · r#245 statement -> variable_updating_statement ';' · r#246 statement -> 'discard' ';' · r#247 statement -> continue_statement ';' · r#248 statement -> break_statement ';' · r#249 statement -> variable_statement ';' · r#250 statement -> func_call_statement ';' · r#251 statement -> return_statement ';' · r#252 compound_statement/0.1/0 -> statement compound_statement/0.1/0 · r#253 compound_statement -> '{' compound_statement/0.1 '}' · r#254 texture_and_sampler_types -> multisampled_texture_type '<' type_specifier '>' · r#255 texture_and_sampler_types -> sampled_texture_type '<' type_specifier '>' · r#256 type_specifier_without_ident -> 'atomic' '<' type_specifier '>' · r#257 type_specifier_without_ident -> mat_prefix '<' type_specifier '>' · r#258 type_specifier_without_ident -> vec_prefix '<' type_specifier '>' · r#259 expression_comma_list/0.1 -> expression_comma_list/0.1/0 · r#260 argument_expression_list -> '(' argument_expression_list/0.1 ')' · r#261 component_or_swizzle_specifier -> '.' swizzle_name component_or_swizzle_specifier/2.2 · r#262 component_or_swizzle_specifier/2.2 -> component_or_swizzle_specifier · r#263 component_or_swizzle_specifier -> '.' member_ident component_or_swizzle_specifier/1.2 · r#264 component_or_swizzle_specifier/1.2 -> component_or_swizzle_specifier · r#265 attribute -> '@' 'workgroup_size' '(' expression attrib_end · r#266 attrib_end/0.0 -> ',' · r#267 attribute -> '@' 'size' '(' expression attrib_end · r#268 attribute -> '@' 'location' '(' expression attrib_end · r#269 attribute -> '@' 'interpolate' '(' interpolation_type_name attrib_end · r#270 attribute -> '@' 'id' '(' expression attrib_end · r#271 attribute -> '@' 'group' '(' expression attrib_end · r#272 attribute -> '@' 'builtin' '(' builtin_value_name attrib_end · r#273 attribute -> '@' 'binding' '(' expression attrib_end · r#274 attribute -> '@' 'align' '(' expression attrib_end · r#275 interpolation_sample_name -> 'center' · r#276 interpolation_sample_name -> 'centroid' · r#277 interpolation_sample_name -> 'sample' · r#278 attrib_end -> attrib_end/0.0 ')' · r#279 component_or_swizzle_specifier -> '[' expression ']' component_or_swizzle_specifier/0.3 · r#280 component_or_swizzle_specifier/0.3 -> component_or_swizzle_specifier · r#281 primary_expression -> 'bitcast' '<' type_specifier '>' paren_expression · r#282 expression_comma_list/0.1/0/0.0 -> ',' expression · r#283 expression_comma_list/0.1/0 -> expression_comma_list/0.1/0/0.0 expression_comma_list/0.1/0 · r#284 expression_comma_list -> expression expression_comma_list/0.1 expression_comma_list/0.2 · r#285 expression_comma_list/0.2 -> ',' · r#286 array_type_specifier/0.3 -> ',' element_count_expression · r#287 element_count_expression -> additive_expression · r#288 element_count_expression -> bitwise_expression · r#289 array_type_specifier -> 'array' '<' type_specifier array_type_specifier/0.3 '>' · r#290 access_mode -> 'read' · r#291 access_mode -> 'write' · r#292 access_mode -> 'read_write' · r#293 if_statement/0.1/0 -> else_if_clause if_statement/0.1/0 · r#294 if_statement -> if_clause if_statement/0.1 if_statement/0.2 · r#295 if_statement/0.2 -> else_clause · r#296 loop_statement/0.2 -> loop_statement/0.2/0 · r#297 for_header/0.0 -> for_init · r#298 for_init -> variable_statement · r#299 for_init -> variable_updating_statement · r#300 for_init -> func_call_statement · r#301 while_statement -> 'while' expression compound_statement · r#302 variable_statement -> variable_decl '=' expression · r#303 if_clause -> 'if' expression compound_statement · r#304 assignment_statement -> lhs_expression assignment_statement/0.1 expression · r#305 assignment_statement -> '_' '=' expression · r#306 core_lhs_expression -> '(' lhs_expression ')' · r#307 param/0.0/0 -> attribute param/0.0/0 · r#308 param_list/0.1 -> param_list/0.1/0 · r#309 struct_body_decl/0.2/0/0.0 -> ',' struct_member · r#310 struct_body_decl/0.2/0 -> struct_body_decl/0.2/0/0.0 struct_body_decl/0.2/0 · r#311 struct_body_decl/0.3 -> ',' · r#312 variable_qualifier/0.2 -> ',' access_mode · r#313 variable_qualifier -> '<' address_space variable_qualifier/0.2 '>' · r#314 struct_member -> struct_member/0.0 member_ident ':' type_specifier · r#315 struct_body_decl -> '{' struct_member struct_body_decl/0.2 struct_body_decl/0.3 '}' · r#316 function_header -> 'fn' ident '(' function_header/0.3 ')' function_header/0.5 · r#317 param_list/0.1/0/0.0 -> ',' param · r#318 param_list/0.1/0 -> param_list/0.1/0/0.0 param_list/0.1/0 · r#319 param_list -> param param_list/0.1 param_list/0.2 · r#320 param_list/0.2 -> ',' · r#321 variable_statement -> 'const' optionally_typed_ident '=' expression · r#322 variable_statement -> 'let' optionally_typed_ident '=' expression · r#323 loop_statement/0.2/0 -> statement loop_statement/0.2/0 · r#324 loop_statement/0.3 -> continuing_statement · r#325 switch_statement/0.3 -> switch_statement/0.3/0 · r#326 switch_body -> case_clause · r#327 switch_body -> default_alone_clause · r#328 else_clause -> 'else' compound_statement · r#329 texture_and_sampler_types -> storage_texture_type '<' texel_format ',' access_mode '>' · r#330 attribute -> '@' 'workgroup_size' '(' expression ',' expression attrib_end · r#331 attribute -> '@' 'interpolate' '(' interpolation_type_name ',' interpolation_sample_name attrib_end · r#332 type_specifier_without_ident/7.5 -> ',' access_mode · r#333 type_specifier_without_ident -> 'ptr' '<' address_space ',' type_specifier type_specifier_without_ident/7.5 '>' · r#334 else_if_clause -> 'else' 'if' expression compound_statement · r#335 default_alone_clause/0.1 -> ':' · r#336 case_selector -> 'default' · r#337 case_selector -> expression · r#338 switch_statement/0.3/0 -> switch_body switch_statement/0.3/0 · r#339 switch_statement -> 'switch' expression '{' switch_statement/0.3 '}' · r#340 continuing_statement -> 'continuing' continuing_compound_statement · r#341 loop_statement -> 'loop' '{' loop_statement/0.2 loop_statement/0.3 '}' · r#342 for_statement -> 'for' '(' for_header ')' compound_statement · r#343 for_header/0.2 -> expression · r#344 param -> param/0.0 ident ':' type_specifier · r#345 function_header/0.5/0.1 -> function_header/0.5/0.1/0 · r#346 function_header/0.5/0.1/0 -> attribute function_header/0.5/0.1/0 · r#347 function_header/0.5 -> '->' function_header/0.5/0.1 type_specifier · r#348 continuing_compound_statement/0.1 -> continuing_compound_statement/0.1/0 · r#349 case_selectors/0.1 -> case_selectors/0.1/0 · r#350 case_clause/0.2 -> ':' · r#351 default_alone_clause -> 'default' default_alone_clause/0.1 compound_statement · r#352 attribute -> '@' 'workgroup_size' '(' expression ',' expression ',' expression attrib_end · r#353 case_clause -> 'case' case_selectors case_clause/0.2 compound_statement · r#354 case_selectors/0.1/0/0.0 -> ',' case_selector · r#355 case_selectors/0.1/0 -> case_selectors/0.1/0/0.0 case_selectors/0.1/0 · r#356 case_selectors -> case_selector case_selectors/0.1 case_selectors/0.2 · r#357 case_selectors/0.2 -> ',' · r#358 continuing_compound_statement/0.1/0 -> statement continuing_compound_statement/0.1/0 · r#359 continuing_compound_statement/0.2 -> break_if_statement · r#360 for_header -> for_header/0.0 ';' for_header/0.2 ';' for_header/0.4 · r#361 for_header/0.4 -> for_update · r#362 for_update -> variable_updating_statement · r#363 for_update -> func_call_statement · r#364 continuing_compound_statement -> '{' continuing_compound_statement/0.1 continuing_compound_statement/0.2 '}' · r#365 break_if_statement -> 'break' 'if' expression ';' · =Action: [#0 'enable']: s#5 [#1 EndOfText]: acc [#2 ';']: s#12 [#2 '@']: s#30 [#2 'alias']: s#22 [#2 'const']: s#20 [#2 'const_assert']: s#25 [#2 'struct']: s#23 [#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 'enable']: s#5 [#5 'f16']: s#7 [#6 ';']: s#157 [#7 ';']: r#1 [#8 ';']: r#2 [#8 '@']: r#2 [#8 'alias']: r#2 [#8 'const']: r#2 [#8 'const_assert']: r#2 [#8 'fn']: r#2 [#8 'override']: r#2 [#8 'struct']: r#2 [#8 'var']: r#2 [#8 EndOfText]: r#2 [#9 EndOfText]: r#3 [#10 EndOfText]: r#4 [#11 ';']: s#12 [#11 '@']: s#30 [#11 'alias']: s#22 [#11 'const']: s#20 [#11 'const_assert']: s#25 [#11 'struct']: s#23 [#12 ';']: r#5 [#12 '@']: r#5 [#12 'alias']: r#5 [#12 'const']: r#5 [#12 'const_assert']: r#5 [#12 'fn']: r#5 [#12 'override']: r#5 [#12 'struct']: r#5 [#12 'var']: r#5 [#12 EndOfText]: r#5 [#13 ';']: s#155 [#14 ';']: s#154 [#15 ';']: s#153 [#16 ';']: r#6 [#16 '@']: r#6 [#16 'alias']: r#6 [#16 'const']: r#6 [#16 'const_assert']: r#6 [#16 'fn']: r#6 [#16 'override']: r#6 [#16 'struct']: r#6 [#16 'var']: r#6 [#16 EndOfText]: r#6 [#17 ';']: r#7 [#17 '@']: r#7 [#17 'alias']: r#7 [#17 'const']: r#7 [#17 'const_assert']: r#7 [#17 'fn']: r#7 [#17 'override']: r#7 [#17 'struct']: r#7 [#17 'var']: r#7 [#17 EndOfText]: r#7 [#18 ';']: s#152 [#19 'var']: s#151 [#20 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#21 'override']: s#147 [#22 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#23 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#24 'fn']: s#144 [#25 '!']: s#62 [#25 '&']: s#65 [#25 '(']: s#77 [#25 '*']: s#64 [#25 '-']: s#61 [#25 'array']: s#81 [#25 'atomic']: s#95 [#25 'bitcast']: s#71 [#25 'bool']: s#88 [#25 'f16']: s#90 [#25 'f32']: s#89 [#25 'false']: s#87 [#25 'i32']: s#91 [#25 'mat2x2']: s#100 [#25 'mat2x3']: s#101 [#25 'mat2x4']: s#102 [#25 'mat3x2']: s#103 [#25 'mat3x3']: s#104 [#25 'mat3x4']: s#105 [#25 'mat4x2']: s#106 [#25 'mat4x3']: s#107 [#25 'mat4x4']: s#108 [#25 'ptr']: s#93 [#25 'sampler']: s#125 [#25 'sampler_comparison']: s#126 [#25 'texture_1d']: s#132 [#25 'texture_2d']: s#133 [#25 'texture_2d_array']: s#134 [#25 'texture_3d']: s#135 [#25 'texture_cube']: s#136 [#25 'texture_cube_array']: s#137 [#25 'texture_depth_2d']: s#127 [#25 'texture_depth_2d_array']: s#128 [#25 'texture_depth_cube']: s#129 [#25 'texture_depth_cube_array']: s#130 [#25 'texture_depth_multisampled_2d']: s#131 [#25 'texture_multisampled_2d']: s#138 [#25 'texture_storage_1d']: s#139 [#25 'texture_storage_2d']: s#140 [#25 'texture_storage_2d_array']: s#141 [#25 'texture_storage_3d']: s#142 [#25 'true']: s#86 [#25 'u32']: s#92 [#25 'vec2']: s#97 [#25 'vec3']: s#98 [#25 'vec4']: s#99 [#25 '~']: s#63 [#25 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#25 /0[fh]/]: s#112 [#25 /0[iu]?/]: s#109 [#25 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#25 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#25 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#25 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#25 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#25 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#25 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#25 /[1-9][0-9]*[fh]/]: s#113 [#25 /[1-9][0-9]*[iu]?/]: s#110 [#26 'var']: r#8 [#27 'override']: r#9 [#28 'fn']: r#10 [#29 '@']: s#30 [#30 'align']: s#31 [#30 'binding']: s#32 [#30 'builtin']: s#33 [#30 'compute']: s#44 [#30 'const']: s#34 [#30 'fragment']: s#43 [#30 'group']: s#35 [#30 'id']: s#36 [#30 'interpolate']: s#37 [#30 'invariant']: s#38 [#30 'location']: s#39 [#30 'size']: s#40 [#30 'vertex']: s#42 [#30 'workgroup_size']: s#41 [#31 '(']: s#222 [#32 '(']: s#221 [#33 '(']: s#220 [#34 '@']: r#11 [#34 'array']: r#11 [#34 'atomic']: r#11 [#34 'bool']: r#11 [#34 'f16']: r#11 [#34 'f32']: r#11 [#34 'fn']: r#11 [#34 'i32']: r#11 [#34 'mat2x2']: r#11 [#34 'mat2x3']: r#11 [#34 'mat2x4']: r#11 [#34 'mat3x2']: r#11 [#34 'mat3x3']: r#11 [#34 'mat3x4']: r#11 [#34 'mat4x2']: r#11 [#34 'mat4x3']: r#11 [#34 'mat4x4']: r#11 [#34 'override']: r#11 [#34 'ptr']: r#11 [#34 'sampler']: r#11 [#34 'sampler_comparison']: r#11 [#34 'texture_1d']: r#11 [#34 'texture_2d']: r#11 [#34 'texture_2d_array']: r#11 [#34 'texture_3d']: r#11 [#34 'texture_cube']: r#11 [#34 'texture_cube_array']: r#11 [#34 'texture_depth_2d']: r#11 [#34 'texture_depth_2d_array']: r#11 [#34 'texture_depth_cube']: r#11 [#34 'texture_depth_cube_array']: r#11 [#34 'texture_depth_multisampled_2d']: r#11 [#34 'texture_multisampled_2d']: r#11 [#34 'texture_storage_1d']: r#11 [#34 'texture_storage_2d']: r#11 [#34 'texture_storage_2d_array']: r#11 [#34 'texture_storage_3d']: r#11 [#34 'u32']: r#11 [#34 'var']: r#11 [#34 'vec2']: r#11 [#34 'vec3']: r#11 [#34 'vec4']: r#11 [#34 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#11 [#35 '(']: s#219 [#36 '(']: s#218 [#37 '(']: s#217 [#38 '@']: r#12 [#38 'array']: r#12 [#38 'atomic']: r#12 [#38 'bool']: r#12 [#38 'f16']: r#12 [#38 'f32']: r#12 [#38 'fn']: r#12 [#38 'i32']: r#12 [#38 'mat2x2']: r#12 [#38 'mat2x3']: r#12 [#38 'mat2x4']: r#12 [#38 'mat3x2']: r#12 [#38 'mat3x3']: r#12 [#38 'mat3x4']: r#12 [#38 'mat4x2']: r#12 [#38 'mat4x3']: r#12 [#38 'mat4x4']: r#12 [#38 'override']: r#12 [#38 'ptr']: r#12 [#38 'sampler']: r#12 [#38 'sampler_comparison']: r#12 [#38 'texture_1d']: r#12 [#38 'texture_2d']: r#12 [#38 'texture_2d_array']: r#12 [#38 'texture_3d']: r#12 [#38 'texture_cube']: r#12 [#38 'texture_cube_array']: r#12 [#38 'texture_depth_2d']: r#12 [#38 'texture_depth_2d_array']: r#12 [#38 'texture_depth_cube']: r#12 [#38 'texture_depth_cube_array']: r#12 [#38 'texture_depth_multisampled_2d']: r#12 [#38 'texture_multisampled_2d']: r#12 [#38 'texture_storage_1d']: r#12 [#38 'texture_storage_2d']: r#12 [#38 'texture_storage_2d_array']: r#12 [#38 'texture_storage_3d']: r#12 [#38 'u32']: r#12 [#38 'var']: r#12 [#38 'vec2']: r#12 [#38 'vec3']: r#12 [#38 'vec4']: r#12 [#38 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#12 [#39 '(']: s#216 [#40 '(']: s#215 [#41 '(']: s#214 [#42 '@']: r#13 [#42 'array']: r#13 [#42 'atomic']: r#13 [#42 'bool']: r#13 [#42 'f16']: r#13 [#42 'f32']: r#13 [#42 'fn']: r#13 [#42 'i32']: r#13 [#42 'mat2x2']: r#13 [#42 'mat2x3']: r#13 [#42 'mat2x4']: r#13 [#42 'mat3x2']: r#13 [#42 'mat3x3']: r#13 [#42 'mat3x4']: r#13 [#42 'mat4x2']: r#13 [#42 'mat4x3']: r#13 [#42 'mat4x4']: r#13 [#42 'override']: r#13 [#42 'ptr']: r#13 [#42 'sampler']: r#13 [#42 'sampler_comparison']: r#13 [#42 'texture_1d']: r#13 [#42 'texture_2d']: r#13 [#42 'texture_2d_array']: r#13 [#42 'texture_3d']: r#13 [#42 'texture_cube']: r#13 [#42 'texture_cube_array']: r#13 [#42 'texture_depth_2d']: r#13 [#42 'texture_depth_2d_array']: r#13 [#42 'texture_depth_cube']: r#13 [#42 'texture_depth_cube_array']: r#13 [#42 'texture_depth_multisampled_2d']: r#13 [#42 'texture_multisampled_2d']: r#13 [#42 'texture_storage_1d']: r#13 [#42 'texture_storage_2d']: r#13 [#42 'texture_storage_2d_array']: r#13 [#42 'texture_storage_3d']: r#13 [#42 'u32']: r#13 [#42 'var']: r#13 [#42 'vec2']: r#13 [#42 'vec3']: r#13 [#42 'vec4']: r#13 [#42 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#13 [#43 '@']: r#14 [#43 'array']: r#14 [#43 'atomic']: r#14 [#43 'bool']: r#14 [#43 'f16']: r#14 [#43 'f32']: r#14 [#43 'fn']: r#14 [#43 'i32']: r#14 [#43 'mat2x2']: r#14 [#43 'mat2x3']: r#14 [#43 'mat2x4']: r#14 [#43 'mat3x2']: r#14 [#43 'mat3x3']: r#14 [#43 'mat3x4']: r#14 [#43 'mat4x2']: r#14 [#43 'mat4x3']: r#14 [#43 'mat4x4']: r#14 [#43 'override']: r#14 [#43 'ptr']: r#14 [#43 'sampler']: r#14 [#43 'sampler_comparison']: r#14 [#43 'texture_1d']: r#14 [#43 'texture_2d']: r#14 [#43 'texture_2d_array']: r#14 [#43 'texture_3d']: r#14 [#43 'texture_cube']: r#14 [#43 'texture_cube_array']: r#14 [#43 'texture_depth_2d']: r#14 [#43 'texture_depth_2d_array']: r#14 [#43 'texture_depth_cube']: r#14 [#43 'texture_depth_cube_array']: r#14 [#43 'texture_depth_multisampled_2d']: r#14 [#43 'texture_multisampled_2d']: r#14 [#43 'texture_storage_1d']: r#14 [#43 'texture_storage_2d']: r#14 [#43 'texture_storage_2d_array']: r#14 [#43 'texture_storage_3d']: r#14 [#43 'u32']: r#14 [#43 'var']: r#14 [#43 'vec2']: r#14 [#43 'vec3']: r#14 [#43 'vec4']: r#14 [#43 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#14 [#44 '@']: r#15 [#44 'array']: r#15 [#44 'atomic']: r#15 [#44 'bool']: r#15 [#44 'f16']: r#15 [#44 'f32']: r#15 [#44 'fn']: r#15 [#44 'i32']: r#15 [#44 'mat2x2']: r#15 [#44 'mat2x3']: r#15 [#44 'mat2x4']: r#15 [#44 'mat3x2']: r#15 [#44 'mat3x3']: r#15 [#44 'mat3x4']: r#15 [#44 'mat4x2']: r#15 [#44 'mat4x3']: r#15 [#44 'mat4x4']: r#15 [#44 'override']: r#15 [#44 'ptr']: r#15 [#44 'sampler']: r#15 [#44 'sampler_comparison']: r#15 [#44 'texture_1d']: r#15 [#44 'texture_2d']: r#15 [#44 'texture_2d_array']: r#15 [#44 'texture_3d']: r#15 [#44 'texture_cube']: r#15 [#44 'texture_cube_array']: r#15 [#44 'texture_depth_2d']: r#15 [#44 'texture_depth_2d_array']: r#15 [#44 'texture_depth_cube']: r#15 [#44 'texture_depth_cube_array']: r#15 [#44 'texture_depth_multisampled_2d']: r#15 [#44 'texture_multisampled_2d']: r#15 [#44 'texture_storage_1d']: r#15 [#44 'texture_storage_2d']: r#15 [#44 'texture_storage_2d_array']: r#15 [#44 'texture_storage_3d']: r#15 [#44 'u32']: r#15 [#44 'var']: r#15 [#44 'vec2']: r#15 [#44 'vec3']: r#15 [#44 'vec4']: r#15 [#44 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#15 [#45 'var']: r#16 [#46 'override']: r#17 [#47 'fn']: r#18 [#48 ';']: r#19 [#49 '&&']: r#22 [#49 ')']: r#20 [#49 ',']: r#20 [#49 ':']: r#20 [#49 ';']: r#20 [#49 ']']: r#20 [#49 '{']: r#20 [#49 '||']: r#21 [#50 '||']: s#213 [#51 '&&']: s#212 [#52 ')']: r#23 [#52 ',']: r#23 [#52 ':']: r#23 [#52 ';']: r#23 [#52 ']']: r#23 [#52 '{']: r#23 [#53 '!=']: s#211 [#53 '&&']: r#24 [#53 ')']: r#24 [#53 ',']: r#24 [#53 ':']: r#24 [#53 ';']: r#24 [#53 '<']: s#206 [#53 '<=']: s#208 [#53 '==']: s#210 [#53 '>']: s#207 [#53 '>=']: s#209 [#53 ']']: r#24 [#53 '{']: r#24 [#53 '||']: r#24 [#54 '&']: s#205 [#55 '|']: s#204 [#56 '^']: s#203 [#57 '!=']: r#25 [#57 '&&']: r#25 [#57 ')']: r#25 [#57 '+']: s#201 [#57 ',']: r#25 [#57 '-']: s#202 [#57 ':']: r#25 [#57 ';']: r#25 [#57 '<']: r#25 [#57 '<=']: r#25 [#57 '==']: r#25 [#57 '>']: r#25 [#57 '>=']: r#25 [#57 ']']: r#25 [#57 '{']: r#25 [#57 '||']: r#25 [#58 '!=']: r#29 [#58 '%']: r#29 [#58 '&&']: r#29 [#58 '&']: r#26 [#58 ')']: r#29 [#58 '*']: r#29 [#58 '+']: r#29 [#58 ',']: r#29 [#58 '-']: r#29 [#58 '/']: r#29 [#58 ':']: r#29 [#58 ';']: r#29 [#58 '<']: r#29 [#58 '<<']: s#198 [#58 '<=']: r#29 [#58 '==']: r#29 [#58 '>']: r#29 [#58 '>=']: r#29 [#58 '>>']: s#199 [#58 ']']: r#29 [#58 '^']: r#28 [#58 '{']: r#29 [#58 '|']: r#27 [#58 '||']: r#29 [#59 '!=']: r#30 [#59 '%']: s#197 [#59 '&&']: r#30 [#59 ')']: r#30 [#59 '*']: s#195 [#59 '+']: r#30 [#59 ',']: r#30 [#59 '-']: r#30 [#59 '/']: s#196 [#59 ':']: r#30 [#59 ';']: r#30 [#59 '<']: r#30 [#59 '<=']: r#30 [#59 '==']: r#30 [#59 '>']: r#30 [#59 '>=']: r#30 [#59 ']']: r#30 [#59 '{']: r#30 [#59 '||']: r#30 [#60 '!=']: r#31 [#60 '%']: r#31 [#60 '&&']: r#31 [#60 '&']: r#31 [#60 ')']: r#31 [#60 '*']: r#31 [#60 '+']: r#31 [#60 ',']: r#31 [#60 '-']: r#31 [#60 '/']: r#31 [#60 ':']: r#31 [#60 ';']: r#31 [#60 '<']: r#31 [#60 '<<']: r#31 [#60 '<=']: r#31 [#60 '==']: r#31 [#60 '>']: r#31 [#60 '>=']: r#31 [#60 '>>']: r#31 [#60 ']']: r#31 [#60 '^']: r#31 [#60 '{']: r#31 [#60 '|']: r#31 [#60 '||']: r#31 [#61 '!']: s#62 [#61 '&']: s#65 [#61 '(']: s#77 [#61 '*']: s#64 [#61 '-']: s#61 [#61 'array']: s#81 [#61 'atomic']: s#95 [#61 'bitcast']: s#71 [#61 'bool']: s#88 [#61 'f16']: s#90 [#61 'f32']: s#89 [#61 'false']: s#87 [#61 'i32']: s#91 [#61 'mat2x2']: s#100 [#61 'mat2x3']: s#101 [#61 'mat2x4']: s#102 [#61 'mat3x2']: s#103 [#61 'mat3x3']: s#104 [#61 'mat3x4']: s#105 [#61 'mat4x2']: s#106 [#61 'mat4x3']: s#107 [#61 'mat4x4']: s#108 [#61 'ptr']: s#93 [#61 'sampler']: s#125 [#61 'sampler_comparison']: s#126 [#61 'texture_1d']: s#132 [#61 'texture_2d']: s#133 [#61 'texture_2d_array']: s#134 [#61 'texture_3d']: s#135 [#61 'texture_cube']: s#136 [#61 'texture_cube_array']: s#137 [#61 'texture_depth_2d']: s#127 [#61 'texture_depth_2d_array']: s#128 [#61 'texture_depth_cube']: s#129 [#61 'texture_depth_cube_array']: s#130 [#61 'texture_depth_multisampled_2d']: s#131 [#61 'texture_multisampled_2d']: s#138 [#61 'texture_storage_1d']: s#139 [#61 'texture_storage_2d']: s#140 [#61 'texture_storage_2d_array']: s#141 [#61 'texture_storage_3d']: s#142 [#61 'true']: s#86 [#61 'u32']: s#92 [#61 'vec2']: s#97 [#61 'vec3']: s#98 [#61 'vec4']: s#99 [#61 '~']: s#63 [#61 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#61 /0[fh]/]: s#112 [#61 /0[iu]?/]: s#109 [#61 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#61 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#61 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#61 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#61 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#61 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#61 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#61 /[1-9][0-9]*[fh]/]: s#113 [#61 /[1-9][0-9]*[iu]?/]: s#110 [#62 '!']: s#62 [#62 '&']: s#65 [#62 '(']: s#77 [#62 '*']: s#64 [#62 '-']: s#61 [#62 'array']: s#81 [#62 'atomic']: s#95 [#62 'bitcast']: s#71 [#62 'bool']: s#88 [#62 'f16']: s#90 [#62 'f32']: s#89 [#62 'false']: s#87 [#62 'i32']: s#91 [#62 'mat2x2']: s#100 [#62 'mat2x3']: s#101 [#62 'mat2x4']: s#102 [#62 'mat3x2']: s#103 [#62 'mat3x3']: s#104 [#62 'mat3x4']: s#105 [#62 'mat4x2']: s#106 [#62 'mat4x3']: s#107 [#62 'mat4x4']: s#108 [#62 'ptr']: s#93 [#62 'sampler']: s#125 [#62 'sampler_comparison']: s#126 [#62 'texture_1d']: s#132 [#62 'texture_2d']: s#133 [#62 'texture_2d_array']: s#134 [#62 'texture_3d']: s#135 [#62 'texture_cube']: s#136 [#62 'texture_cube_array']: s#137 [#62 'texture_depth_2d']: s#127 [#62 'texture_depth_2d_array']: s#128 [#62 'texture_depth_cube']: s#129 [#62 'texture_depth_cube_array']: s#130 [#62 'texture_depth_multisampled_2d']: s#131 [#62 'texture_multisampled_2d']: s#138 [#62 'texture_storage_1d']: s#139 [#62 'texture_storage_2d']: s#140 [#62 'texture_storage_2d_array']: s#141 [#62 'texture_storage_3d']: s#142 [#62 'true']: s#86 [#62 'u32']: s#92 [#62 'vec2']: s#97 [#62 'vec3']: s#98 [#62 'vec4']: s#99 [#62 '~']: s#63 [#62 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#62 /0[fh]/]: s#112 [#62 /0[iu]?/]: s#109 [#62 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#62 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#62 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#62 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#62 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#62 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#62 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#62 /[1-9][0-9]*[fh]/]: s#113 [#62 /[1-9][0-9]*[iu]?/]: s#110 [#63 '!']: s#62 [#63 '&']: s#65 [#63 '(']: s#77 [#63 '*']: s#64 [#63 '-']: s#61 [#63 'array']: s#81 [#63 'atomic']: s#95 [#63 'bitcast']: s#71 [#63 'bool']: s#88 [#63 'f16']: s#90 [#63 'f32']: s#89 [#63 'false']: s#87 [#63 'i32']: s#91 [#63 'mat2x2']: s#100 [#63 'mat2x3']: s#101 [#63 'mat2x4']: s#102 [#63 'mat3x2']: s#103 [#63 'mat3x3']: s#104 [#63 'mat3x4']: s#105 [#63 'mat4x2']: s#106 [#63 'mat4x3']: s#107 [#63 'mat4x4']: s#108 [#63 'ptr']: s#93 [#63 'sampler']: s#125 [#63 'sampler_comparison']: s#126 [#63 'texture_1d']: s#132 [#63 'texture_2d']: s#133 [#63 'texture_2d_array']: s#134 [#63 'texture_3d']: s#135 [#63 'texture_cube']: s#136 [#63 'texture_cube_array']: s#137 [#63 'texture_depth_2d']: s#127 [#63 'texture_depth_2d_array']: s#128 [#63 'texture_depth_cube']: s#129 [#63 'texture_depth_cube_array']: s#130 [#63 'texture_depth_multisampled_2d']: s#131 [#63 'texture_multisampled_2d']: s#138 [#63 'texture_storage_1d']: s#139 [#63 'texture_storage_2d']: s#140 [#63 'texture_storage_2d_array']: s#141 [#63 'texture_storage_3d']: s#142 [#63 'true']: s#86 [#63 'u32']: s#92 [#63 'vec2']: s#97 [#63 'vec3']: s#98 [#63 'vec4']: s#99 [#63 '~']: s#63 [#63 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#63 /0[fh]/]: s#112 [#63 /0[iu]?/]: s#109 [#63 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#63 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#63 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#63 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#63 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#63 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#63 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#63 /[1-9][0-9]*[fh]/]: s#113 [#63 /[1-9][0-9]*[iu]?/]: s#110 [#64 '!']: s#62 [#64 '&']: s#65 [#64 '(']: s#77 [#64 '*']: s#64 [#64 '-']: s#61 [#64 'array']: s#81 [#64 'atomic']: s#95 [#64 'bitcast']: s#71 [#64 'bool']: s#88 [#64 'f16']: s#90 [#64 'f32']: s#89 [#64 'false']: s#87 [#64 'i32']: s#91 [#64 'mat2x2']: s#100 [#64 'mat2x3']: s#101 [#64 'mat2x4']: s#102 [#64 'mat3x2']: s#103 [#64 'mat3x3']: s#104 [#64 'mat3x4']: s#105 [#64 'mat4x2']: s#106 [#64 'mat4x3']: s#107 [#64 'mat4x4']: s#108 [#64 'ptr']: s#93 [#64 'sampler']: s#125 [#64 'sampler_comparison']: s#126 [#64 'texture_1d']: s#132 [#64 'texture_2d']: s#133 [#64 'texture_2d_array']: s#134 [#64 'texture_3d']: s#135 [#64 'texture_cube']: s#136 [#64 'texture_cube_array']: s#137 [#64 'texture_depth_2d']: s#127 [#64 'texture_depth_2d_array']: s#128 [#64 'texture_depth_cube']: s#129 [#64 'texture_depth_cube_array']: s#130 [#64 'texture_depth_multisampled_2d']: s#131 [#64 'texture_multisampled_2d']: s#138 [#64 'texture_storage_1d']: s#139 [#64 'texture_storage_2d']: s#140 [#64 'texture_storage_2d_array']: s#141 [#64 'texture_storage_3d']: s#142 [#64 'true']: s#86 [#64 'u32']: s#92 [#64 'vec2']: s#97 [#64 'vec3']: s#98 [#64 'vec4']: s#99 [#64 '~']: s#63 [#64 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#64 /0[fh]/]: s#112 [#64 /0[iu]?/]: s#109 [#64 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#64 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#64 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#64 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#64 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#64 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#64 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#64 /[1-9][0-9]*[fh]/]: s#113 [#64 /[1-9][0-9]*[iu]?/]: s#110 [#65 '!']: s#62 [#65 '&']: s#65 [#65 '(']: s#77 [#65 '*']: s#64 [#65 '-']: s#61 [#65 'array']: s#81 [#65 'atomic']: s#95 [#65 'bitcast']: s#71 [#65 'bool']: s#88 [#65 'f16']: s#90 [#65 'f32']: s#89 [#65 'false']: s#87 [#65 'i32']: s#91 [#65 'mat2x2']: s#100 [#65 'mat2x3']: s#101 [#65 'mat2x4']: s#102 [#65 'mat3x2']: s#103 [#65 'mat3x3']: s#104 [#65 'mat3x4']: s#105 [#65 'mat4x2']: s#106 [#65 'mat4x3']: s#107 [#65 'mat4x4']: s#108 [#65 'ptr']: s#93 [#65 'sampler']: s#125 [#65 'sampler_comparison']: s#126 [#65 'texture_1d']: s#132 [#65 'texture_2d']: s#133 [#65 'texture_2d_array']: s#134 [#65 'texture_3d']: s#135 [#65 'texture_cube']: s#136 [#65 'texture_cube_array']: s#137 [#65 'texture_depth_2d']: s#127 [#65 'texture_depth_2d_array']: s#128 [#65 'texture_depth_cube']: s#129 [#65 'texture_depth_cube_array']: s#130 [#65 'texture_depth_multisampled_2d']: s#131 [#65 'texture_multisampled_2d']: s#138 [#65 'texture_storage_1d']: s#139 [#65 'texture_storage_2d']: s#140 [#65 'texture_storage_2d_array']: s#141 [#65 'texture_storage_3d']: s#142 [#65 'true']: s#86 [#65 'u32']: s#92 [#65 'vec2']: s#97 [#65 'vec3']: s#98 [#65 'vec4']: s#99 [#65 '~']: s#63 [#65 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#65 /0[fh]/]: s#112 [#65 /0[iu]?/]: s#109 [#65 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#65 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#65 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#65 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#65 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#65 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#65 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#65 /[1-9][0-9]*[fh]/]: s#113 [#65 /[1-9][0-9]*[iu]?/]: s#110 [#66 '.']: s#188 [#66 '[']: s#187 [#67 '!=']: r#32 [#67 '%']: r#32 [#67 '&&']: r#32 [#67 '&']: r#32 [#67 '(']: r#33 [#67 ')']: r#32 [#67 '*']: r#32 [#67 '+']: r#32 [#67 ',']: r#32 [#67 '-']: r#32 [#67 '.']: r#32 [#67 '/']: r#32 [#67 ':']: r#32 [#67 ';']: r#32 [#67 '<']: r#32 [#67 '<<']: r#32 [#67 '<=']: r#32 [#67 '==']: r#32 [#67 '>']: r#32 [#67 '>=']: r#32 [#67 '>>']: r#32 [#67 '[']: r#32 [#67 ']']: r#32 [#67 '^']: r#32 [#67 '{']: r#32 [#67 '|']: r#32 [#67 '||']: r#32 [#68 '!=']: r#34 [#68 '%']: r#34 [#68 '&&']: r#34 [#68 '&']: r#34 [#68 ')']: r#34 [#68 '*']: r#34 [#68 '+']: r#34 [#68 ',']: r#34 [#68 '-']: r#34 [#68 '.']: r#34 [#68 '/']: r#34 [#68 ':']: r#34 [#68 ';']: r#34 [#68 '<']: r#34 [#68 '<<']: r#34 [#68 '<=']: r#34 [#68 '==']: r#34 [#68 '>']: r#34 [#68 '>=']: r#34 [#68 '>>']: r#34 [#68 '[']: r#34 [#68 ']']: r#34 [#68 '^']: r#34 [#68 '{']: r#34 [#68 '|']: r#34 [#68 '||']: r#34 [#69 '!=']: r#35 [#69 '%']: r#35 [#69 '&&']: r#35 [#69 '&']: r#35 [#69 ')']: r#35 [#69 '*']: r#35 [#69 '+']: r#35 [#69 ',']: r#35 [#69 '-']: r#35 [#69 '.']: r#35 [#69 '/']: r#35 [#69 ':']: r#35 [#69 ';']: r#35 [#69 '<']: r#35 [#69 '<<']: r#35 [#69 '<=']: r#35 [#69 '==']: r#35 [#69 '>']: r#35 [#69 '>=']: r#35 [#69 '>>']: r#35 [#69 '[']: r#35 [#69 ']']: r#35 [#69 '^']: r#35 [#69 '{']: r#35 [#69 '|']: r#35 [#69 '||']: r#35 [#70 '!=']: r#36 [#70 '%']: r#36 [#70 '&&']: r#36 [#70 '&']: r#36 [#70 ')']: r#36 [#70 '*']: r#36 [#70 '+']: r#36 [#70 ',']: r#36 [#70 '-']: r#36 [#70 '.']: r#36 [#70 '/']: r#36 [#70 ':']: r#36 [#70 ';']: r#36 [#70 '<']: r#36 [#70 '<<']: r#36 [#70 '<=']: r#36 [#70 '==']: r#36 [#70 '>']: r#36 [#70 '>=']: r#36 [#70 '>>']: r#36 [#70 '[']: r#36 [#70 ']']: r#36 [#70 '^']: r#36 [#70 '{']: r#36 [#70 '|']: r#36 [#70 '||']: r#36 [#71 '<']: s#184 [#72 '!=']: r#37 [#72 '%']: r#37 [#72 '%=']: r#37 [#72 '&&']: r#37 [#72 '&']: r#37 [#72 '&=']: r#37 [#72 '(']: r#37 [#72 ')']: r#37 [#72 '*']: r#37 [#72 '*=']: r#37 [#72 '+']: r#37 [#72 '++']: r#37 [#72 '+=']: r#37 [#72 ',']: r#37 [#72 '-']: r#37 [#72 '--']: r#37 [#72 '-=']: r#37 [#72 '.']: r#37 [#72 '/']: r#37 [#72 '/=']: r#37 [#72 ':']: r#37 [#72 ';']: r#37 [#72 '<']: r#37 [#72 '<<']: r#37 [#72 '<<=']: r#37 [#72 '<=']: r#37 [#72 '=']: r#37 [#72 '==']: r#37 [#72 '>']: r#37 [#72 '>=']: r#37 [#72 '>>']: r#37 [#72 '>>=']: r#37 [#72 '[']: r#37 [#72 ']']: r#37 [#72 '^']: r#37 [#72 '^=']: r#37 [#72 '{']: r#37 [#72 '|']: r#37 [#72 '|=']: r#37 [#72 '||']: r#37 [#72 '}']: r#37 [#73 '(']: s#183 [#74 '!=']: r#38 [#74 '%']: r#38 [#74 '&&']: r#38 [#74 '&']: r#38 [#74 ')']: r#38 [#74 '*']: r#38 [#74 '+']: r#38 [#74 ',']: r#38 [#74 '-']: r#38 [#74 '.']: r#38 [#74 '/']: r#38 [#74 ':']: r#38 [#74 ';']: r#38 [#74 '<']: r#38 [#74 '<<']: r#38 [#74 '<=']: r#38 [#74 '==']: r#38 [#74 '>']: r#38 [#74 '>=']: r#38 [#74 '>>']: r#38 [#74 '[']: r#38 [#74 ']']: r#38 [#74 '^']: r#38 [#74 '{']: r#38 [#74 '|']: r#38 [#74 '||']: r#38 [#75 '!=']: r#39 [#75 '%']: r#39 [#75 '&&']: r#39 [#75 '&']: r#39 [#75 ')']: r#39 [#75 '*']: r#39 [#75 '+']: r#39 [#75 ',']: r#39 [#75 '-']: r#39 [#75 '.']: r#39 [#75 '/']: r#39 [#75 ':']: r#39 [#75 ';']: r#39 [#75 '<']: r#39 [#75 '<<']: r#39 [#75 '<=']: r#39 [#75 '==']: r#39 [#75 '>']: r#39 [#75 '>=']: r#39 [#75 '>>']: r#39 [#75 '[']: r#39 [#75 ']']: r#39 [#75 '^']: r#39 [#75 '{']: r#39 [#75 '|']: r#39 [#75 '||']: r#39 [#76 '!=']: r#40 [#76 '%']: r#40 [#76 '&&']: r#40 [#76 '&']: r#40 [#76 ')']: r#40 [#76 '*']: r#40 [#76 '+']: r#40 [#76 ',']: r#40 [#76 '-']: r#40 [#76 '.']: r#40 [#76 '/']: r#40 [#76 ':']: r#40 [#76 ';']: r#40 [#76 '<']: r#40 [#76 '<<']: r#40 [#76 '<=']: r#40 [#76 '==']: r#40 [#76 '>']: r#40 [#76 '>=']: r#40 [#76 '>>']: r#40 [#76 '[']: r#40 [#76 ']']: r#40 [#76 '^']: r#40 [#76 '{']: r#40 [#76 '|']: r#40 [#76 '||']: r#40 [#77 '!']: s#62 [#77 '&']: s#65 [#77 '(']: s#77 [#77 '*']: s#64 [#77 '-']: s#61 [#77 'array']: s#81 [#77 'atomic']: s#95 [#77 'bitcast']: s#71 [#77 'bool']: s#88 [#77 'f16']: s#90 [#77 'f32']: s#89 [#77 'false']: s#87 [#77 'i32']: s#91 [#77 'mat2x2']: s#100 [#77 'mat2x3']: s#101 [#77 'mat2x4']: s#102 [#77 'mat3x2']: s#103 [#77 'mat3x3']: s#104 [#77 'mat3x4']: s#105 [#77 'mat4x2']: s#106 [#77 'mat4x3']: s#107 [#77 'mat4x4']: s#108 [#77 'ptr']: s#93 [#77 'sampler']: s#125 [#77 'sampler_comparison']: s#126 [#77 'texture_1d']: s#132 [#77 'texture_2d']: s#133 [#77 'texture_2d_array']: s#134 [#77 'texture_3d']: s#135 [#77 'texture_cube']: s#136 [#77 'texture_cube_array']: s#137 [#77 'texture_depth_2d']: s#127 [#77 'texture_depth_2d_array']: s#128 [#77 'texture_depth_cube']: s#129 [#77 'texture_depth_cube_array']: s#130 [#77 'texture_depth_multisampled_2d']: s#131 [#77 'texture_multisampled_2d']: s#138 [#77 'texture_storage_1d']: s#139 [#77 'texture_storage_2d']: s#140 [#77 'texture_storage_2d_array']: s#141 [#77 'texture_storage_3d']: s#142 [#77 'true']: s#86 [#77 'u32']: s#92 [#77 'vec2']: s#97 [#77 'vec3']: s#98 [#77 'vec4']: s#99 [#77 '~']: s#63 [#77 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#77 /0[fh]/]: s#112 [#77 /0[iu]?/]: s#109 [#77 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#77 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#77 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#77 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#77 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#77 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#77 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#77 /[1-9][0-9]*[fh]/]: s#113 [#77 /[1-9][0-9]*[iu]?/]: s#110 [#78 '(']: r#41 [#79 '(']: r#42 [#79 '<']: s#180 [#80 '(']: r#43 [#80 '<']: s#179 [#81 '(']: r#44 [#81 '<']: s#178 [#82 '!=']: r#45 [#82 '%']: r#45 [#82 '&&']: r#45 [#82 '&']: r#45 [#82 ')']: r#45 [#82 '*']: r#45 [#82 '+']: r#45 [#82 ',']: r#45 [#82 '-']: r#45 [#82 '.']: r#45 [#82 '/']: r#45 [#82 ':']: r#45 [#82 ';']: r#45 [#82 '<']: r#45 [#82 '<<']: r#45 [#82 '<=']: r#45 [#82 '==']: r#45 [#82 '>']: r#45 [#82 '>=']: r#45 [#82 '>>']: r#45 [#82 '[']: r#45 [#82 ']']: r#45 [#82 '^']: r#45 [#82 '{']: r#45 [#82 '|']: r#45 [#82 '||']: r#45 [#83 '!=']: r#46 [#83 '%']: r#46 [#83 '&&']: r#46 [#83 '&']: r#46 [#83 ')']: r#46 [#83 '*']: r#46 [#83 '+']: r#46 [#83 ',']: r#46 [#83 '-']: r#46 [#83 '.']: r#46 [#83 '/']: r#46 [#83 ':']: r#46 [#83 ';']: r#46 [#83 '<']: r#46 [#83 '<<']: r#46 [#83 '<=']: r#46 [#83 '==']: r#46 [#83 '>']: r#46 [#83 '>=']: r#46 [#83 '>>']: r#46 [#83 '[']: r#46 [#83 ']']: r#46 [#83 '^']: r#46 [#83 '{']: r#46 [#83 '|']: r#46 [#83 '||']: r#46 [#84 '!=']: r#47 [#84 '%']: r#47 [#84 '&&']: r#47 [#84 '&']: r#47 [#84 ')']: r#47 [#84 '*']: r#47 [#84 '+']: r#47 [#84 ',']: r#47 [#84 '-']: r#47 [#84 '.']: r#47 [#84 '/']: r#47 [#84 ':']: r#47 [#84 ';']: r#47 [#84 '<']: r#47 [#84 '<<']: r#47 [#84 '<=']: r#47 [#84 '==']: r#47 [#84 '>']: r#47 [#84 '>=']: r#47 [#84 '>>']: r#47 [#84 '[']: r#47 [#84 ']']: r#47 [#84 '^']: r#47 [#84 '{']: r#47 [#84 '|']: r#47 [#84 '||']: r#47 [#85 '!=']: r#48 [#85 '%']: r#48 [#85 '&&']: r#48 [#85 '&']: r#48 [#85 ')']: r#48 [#85 '*']: r#48 [#85 '+']: r#48 [#85 ',']: r#48 [#85 '-']: r#48 [#85 '.']: r#48 [#85 '/']: r#48 [#85 ':']: r#48 [#85 ';']: r#48 [#85 '<']: r#48 [#85 '<<']: r#48 [#85 '<=']: r#48 [#85 '==']: r#48 [#85 '>']: r#48 [#85 '>=']: r#48 [#85 '>>']: r#48 [#85 '[']: r#48 [#85 ']']: r#48 [#85 '^']: r#48 [#85 '{']: r#48 [#85 '|']: r#48 [#85 '||']: r#48 [#86 '!=']: r#49 [#86 '%']: r#49 [#86 '&&']: r#49 [#86 '&']: r#49 [#86 ')']: r#49 [#86 '*']: r#49 [#86 '+']: r#49 [#86 ',']: r#49 [#86 '-']: r#49 [#86 '.']: r#49 [#86 '/']: r#49 [#86 ':']: r#49 [#86 ';']: r#49 [#86 '<']: r#49 [#86 '<<']: r#49 [#86 '<=']: r#49 [#86 '==']: r#49 [#86 '>']: r#49 [#86 '>=']: r#49 [#86 '>>']: r#49 [#86 '[']: r#49 [#86 ']']: r#49 [#86 '^']: r#49 [#86 '{']: r#49 [#86 '|']: r#49 [#86 '||']: r#49 [#87 '!=']: r#50 [#87 '%']: r#50 [#87 '&&']: r#50 [#87 '&']: r#50 [#87 ')']: r#50 [#87 '*']: r#50 [#87 '+']: r#50 [#87 ',']: r#50 [#87 '-']: r#50 [#87 '.']: r#50 [#87 '/']: r#50 [#87 ':']: r#50 [#87 ';']: r#50 [#87 '<']: r#50 [#87 '<<']: r#50 [#87 '<=']: r#50 [#87 '==']: r#50 [#87 '>']: r#50 [#87 '>=']: r#50 [#87 '>>']: r#50 [#87 '[']: r#50 [#87 ']']: r#50 [#87 '^']: r#50 [#87 '{']: r#50 [#87 '|']: r#50 [#87 '||']: r#50 [#88 '(']: r#51 [#88 ')']: r#51 [#88 ',']: r#51 [#88 ';']: r#51 [#88 '=']: r#51 [#88 '>']: r#51 [#88 '{']: r#51 [#88 '}']: r#51 [#89 '(']: r#52 [#89 ')']: r#52 [#89 ',']: r#52 [#89 ';']: r#52 [#89 '=']: r#52 [#89 '>']: r#52 [#89 '{']: r#52 [#89 '}']: r#52 [#90 '(']: r#53 [#90 ')']: r#53 [#90 ',']: r#53 [#90 ';']: r#53 [#90 '=']: r#53 [#90 '>']: r#53 [#90 '{']: r#53 [#90 '}']: r#53 [#91 '(']: r#54 [#91 ')']: r#54 [#91 ',']: r#54 [#91 ';']: r#54 [#91 '=']: r#54 [#91 '>']: r#54 [#91 '{']: r#54 [#91 '}']: r#54 [#92 '(']: r#55 [#92 ')']: r#55 [#92 ',']: r#55 [#92 ';']: r#55 [#92 '=']: r#55 [#92 '>']: r#55 [#92 '{']: r#55 [#92 '}']: r#55 [#93 '<']: s#177 [#94 '(']: r#56 [#94 ')']: r#56 [#94 ',']: r#56 [#94 ';']: r#56 [#94 '=']: r#56 [#94 '>']: r#56 [#94 '{']: r#56 [#94 '}']: r#56 [#95 '<']: s#176 [#96 '(']: r#57 [#96 ')']: r#57 [#96 ',']: r#57 [#96 ';']: r#57 [#96 '=']: r#57 [#96 '>']: r#57 [#96 '{']: r#57 [#96 '}']: r#57 [#97 '(']: r#58 [#97 '<']: r#58 [#98 '(']: r#59 [#98 '<']: r#59 [#99 '(']: r#60 [#99 '<']: r#60 [#100 '(']: r#61 [#100 '<']: r#61 [#101 '(']: r#62 [#101 '<']: r#62 [#102 '(']: r#63 [#102 '<']: r#63 [#103 '(']: r#64 [#103 '<']: r#64 [#104 '(']: r#65 [#104 '<']: r#65 [#105 '(']: r#66 [#105 '<']: r#66 [#106 '(']: r#67 [#106 '<']: r#67 [#107 '(']: r#68 [#107 '<']: r#68 [#108 '(']: r#69 [#108 '<']: r#69 [#109 '!=']: r#70 [#109 '%']: r#70 [#109 '&&']: r#70 [#109 '&']: r#70 [#109 ')']: r#70 [#109 '*']: r#70 [#109 '+']: r#70 [#109 ',']: r#70 [#109 '-']: r#70 [#109 '.']: r#70 [#109 '/']: r#70 [#109 ':']: r#70 [#109 ';']: r#70 [#109 '<']: r#70 [#109 '<<']: r#70 [#109 '<=']: r#70 [#109 '==']: r#70 [#109 '>']: r#70 [#109 '>=']: r#70 [#109 '>>']: r#70 [#109 '[']: r#70 [#109 ']']: r#70 [#109 '^']: r#70 [#109 '{']: r#70 [#109 '|']: r#70 [#109 '||']: r#70 [#110 '!=']: r#71 [#110 '%']: r#71 [#110 '&&']: r#71 [#110 '&']: r#71 [#110 ')']: r#71 [#110 '*']: r#71 [#110 '+']: r#71 [#110 ',']: r#71 [#110 '-']: r#71 [#110 '.']: r#71 [#110 '/']: r#71 [#110 ':']: r#71 [#110 ';']: r#71 [#110 '<']: r#71 [#110 '<<']: r#71 [#110 '<=']: r#71 [#110 '==']: r#71 [#110 '>']: r#71 [#110 '>=']: r#71 [#110 '>>']: r#71 [#110 '[']: r#71 [#110 ']']: r#71 [#110 '^']: r#71 [#110 '{']: r#71 [#110 '|']: r#71 [#110 '||']: r#71 [#111 '!=']: r#72 [#111 '%']: r#72 [#111 '&&']: r#72 [#111 '&']: r#72 [#111 ')']: r#72 [#111 '*']: r#72 [#111 '+']: r#72 [#111 ',']: r#72 [#111 '-']: r#72 [#111 '.']: r#72 [#111 '/']: r#72 [#111 ':']: r#72 [#111 ';']: r#72 [#111 '<']: r#72 [#111 '<<']: r#72 [#111 '<=']: r#72 [#111 '==']: r#72 [#111 '>']: r#72 [#111 '>=']: r#72 [#111 '>>']: r#72 [#111 '[']: r#72 [#111 ']']: r#72 [#111 '^']: r#72 [#111 '{']: r#72 [#111 '|']: r#72 [#111 '||']: r#72 [#112 '!=']: r#73 [#112 '%']: r#73 [#112 '&&']: r#73 [#112 '&']: r#73 [#112 ')']: r#73 [#112 '*']: r#73 [#112 '+']: r#73 [#112 ',']: r#73 [#112 '-']: r#73 [#112 '.']: r#73 [#112 '/']: r#73 [#112 ':']: r#73 [#112 ';']: r#73 [#112 '<']: r#73 [#112 '<<']: r#73 [#112 '<=']: r#73 [#112 '==']: r#73 [#112 '>']: r#73 [#112 '>=']: r#73 [#112 '>>']: r#73 [#112 '[']: r#73 [#112 ']']: r#73 [#112 '^']: r#73 [#112 '{']: r#73 [#112 '|']: r#73 [#112 '||']: r#73 [#113 '!=']: r#74 [#113 '%']: r#74 [#113 '&&']: r#74 [#113 '&']: r#74 [#113 ')']: r#74 [#113 '*']: r#74 [#113 '+']: r#74 [#113 ',']: r#74 [#113 '-']: r#74 [#113 '.']: r#74 [#113 '/']: r#74 [#113 ':']: r#74 [#113 ';']: r#74 [#113 '<']: r#74 [#113 '<<']: r#74 [#113 '<=']: r#74 [#113 '==']: r#74 [#113 '>']: r#74 [#113 '>=']: r#74 [#113 '>>']: r#74 [#113 '[']: r#74 [#113 ']']: r#74 [#113 '^']: r#74 [#113 '{']: r#74 [#113 '|']: r#74 [#113 '||']: r#74 [#114 '!=']: r#75 [#114 '%']: r#75 [#114 '&&']: r#75 [#114 '&']: r#75 [#114 ')']: r#75 [#114 '*']: r#75 [#114 '+']: r#75 [#114 ',']: r#75 [#114 '-']: r#75 [#114 '.']: r#75 [#114 '/']: r#75 [#114 ':']: r#75 [#114 ';']: r#75 [#114 '<']: r#75 [#114 '<<']: r#75 [#114 '<=']: r#75 [#114 '==']: r#75 [#114 '>']: r#75 [#114 '>=']: r#75 [#114 '>>']: r#75 [#114 '[']: r#75 [#114 ']']: r#75 [#114 '^']: r#75 [#114 '{']: r#75 [#114 '|']: r#75 [#114 '||']: r#75 [#115 '!=']: r#76 [#115 '%']: r#76 [#115 '&&']: r#76 [#115 '&']: r#76 [#115 ')']: r#76 [#115 '*']: r#76 [#115 '+']: r#76 [#115 ',']: r#76 [#115 '-']: r#76 [#115 '.']: r#76 [#115 '/']: r#76 [#115 ':']: r#76 [#115 ';']: r#76 [#115 '<']: r#76 [#115 '<<']: r#76 [#115 '<=']: r#76 [#115 '==']: r#76 [#115 '>']: r#76 [#115 '>=']: r#76 [#115 '>>']: r#76 [#115 '[']: r#76 [#115 ']']: r#76 [#115 '^']: r#76 [#115 '{']: r#76 [#115 '|']: r#76 [#115 '||']: r#76 [#116 '!=']: r#77 [#116 '%']: r#77 [#116 '&&']: r#77 [#116 '&']: r#77 [#116 ')']: r#77 [#116 '*']: r#77 [#116 '+']: r#77 [#116 ',']: r#77 [#116 '-']: r#77 [#116 '.']: r#77 [#116 '/']: r#77 [#116 ':']: r#77 [#116 ';']: r#77 [#116 '<']: r#77 [#116 '<<']: r#77 [#116 '<=']: r#77 [#116 '==']: r#77 [#116 '>']: r#77 [#116 '>=']: r#77 [#116 '>>']: r#77 [#116 '[']: r#77 [#116 ']']: r#77 [#116 '^']: r#77 [#116 '{']: r#77 [#116 '|']: r#77 [#116 '||']: r#77 [#117 '!=']: r#78 [#117 '%']: r#78 [#117 '&&']: r#78 [#117 '&']: r#78 [#117 ')']: r#78 [#117 '*']: r#78 [#117 '+']: r#78 [#117 ',']: r#78 [#117 '-']: r#78 [#117 '.']: r#78 [#117 '/']: r#78 [#117 ':']: r#78 [#117 ';']: r#78 [#117 '<']: r#78 [#117 '<<']: r#78 [#117 '<=']: r#78 [#117 '==']: r#78 [#117 '>']: r#78 [#117 '>=']: r#78 [#117 '>>']: r#78 [#117 '[']: r#78 [#117 ']']: r#78 [#117 '^']: r#78 [#117 '{']: r#78 [#117 '|']: r#78 [#117 '||']: r#78 [#118 '!=']: r#79 [#118 '%']: r#79 [#118 '&&']: r#79 [#118 '&']: r#79 [#118 ')']: r#79 [#118 '*']: r#79 [#118 '+']: r#79 [#118 ',']: r#79 [#118 '-']: r#79 [#118 '.']: r#79 [#118 '/']: r#79 [#118 ':']: r#79 [#118 ';']: r#79 [#118 '<']: r#79 [#118 '<<']: r#79 [#118 '<=']: r#79 [#118 '==']: r#79 [#118 '>']: r#79 [#118 '>=']: r#79 [#118 '>>']: r#79 [#118 '[']: r#79 [#118 ']']: r#79 [#118 '^']: r#79 [#118 '{']: r#79 [#118 '|']: r#79 [#118 '||']: r#79 [#119 '!=']: r#80 [#119 '%']: r#80 [#119 '&&']: r#80 [#119 '&']: r#80 [#119 ')']: r#80 [#119 '*']: r#80 [#119 '+']: r#80 [#119 ',']: r#80 [#119 '-']: r#80 [#119 '.']: r#80 [#119 '/']: r#80 [#119 ':']: r#80 [#119 ';']: r#80 [#119 '<']: r#80 [#119 '<<']: r#80 [#119 '<=']: r#80 [#119 '==']: r#80 [#119 '>']: r#80 [#119 '>=']: r#80 [#119 '>>']: r#80 [#119 '[']: r#80 [#119 ']']: r#80 [#119 '^']: r#80 [#119 '{']: r#80 [#119 '|']: r#80 [#119 '||']: r#80 [#120 '(']: r#81 [#120 ')']: r#81 [#120 ',']: r#81 [#120 ';']: r#81 [#120 '=']: r#81 [#120 '>']: r#81 [#120 '{']: r#81 [#120 '}']: r#81 [#121 '(']: r#82 [#121 ')']: r#82 [#121 ',']: r#82 [#121 ';']: r#82 [#121 '=']: r#82 [#121 '>']: r#82 [#121 '{']: r#82 [#121 '}']: r#82 [#122 '<']: s#175 [#123 '<']: s#174 [#124 '<']: s#173 [#125 '(']: r#83 [#125 ')']: r#83 [#125 ',']: r#83 [#125 ';']: r#83 [#125 '=']: r#83 [#125 '>']: r#83 [#125 '{']: r#83 [#125 '}']: r#83 [#126 '(']: r#84 [#126 ')']: r#84 [#126 ',']: r#84 [#126 ';']: r#84 [#126 '=']: r#84 [#126 '>']: r#84 [#126 '{']: r#84 [#126 '}']: r#84 [#127 '(']: r#85 [#127 ')']: r#85 [#127 ',']: r#85 [#127 ';']: r#85 [#127 '=']: r#85 [#127 '>']: r#85 [#127 '{']: r#85 [#127 '}']: r#85 [#128 '(']: r#86 [#128 ')']: r#86 [#128 ',']: r#86 [#128 ';']: r#86 [#128 '=']: r#86 [#128 '>']: r#86 [#128 '{']: r#86 [#128 '}']: r#86 [#129 '(']: r#87 [#129 ')']: r#87 [#129 ',']: r#87 [#129 ';']: r#87 [#129 '=']: r#87 [#129 '>']: r#87 [#129 '{']: r#87 [#129 '}']: r#87 [#130 '(']: r#88 [#130 ')']: r#88 [#130 ',']: r#88 [#130 ';']: r#88 [#130 '=']: r#88 [#130 '>']: r#88 [#130 '{']: r#88 [#130 '}']: r#88 [#131 '(']: r#89 [#131 ')']: r#89 [#131 ',']: r#89 [#131 ';']: r#89 [#131 '=']: r#89 [#131 '>']: r#89 [#131 '{']: r#89 [#131 '}']: r#89 [#132 '<']: r#90 [#133 '<']: r#91 [#134 '<']: r#92 [#135 '<']: r#93 [#136 '<']: r#94 [#137 '<']: r#95 [#138 '<']: r#96 [#139 '<']: r#97 [#140 '<']: r#98 [#141 '<']: r#99 [#142 '<']: r#100 [#143 '{']: s#172 [#144 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#145 '{']: s#169 [#146 '=']: s#167 [#147 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#148 '=']: s#165 [#149 ':']: s#164 [#150 '=']: s#162 [#151 '<']: s#160 [#152 ';']: r#101 [#152 '@']: r#101 [#152 'alias']: r#101 [#152 'const']: r#101 [#152 'const_assert']: r#101 [#152 'fn']: r#101 [#152 'override']: r#101 [#152 'struct']: r#101 [#152 'var']: r#101 [#152 EndOfText]: r#101 [#153 ';']: r#102 [#153 '@']: r#102 [#153 'alias']: r#102 [#153 'const']: r#102 [#153 'const_assert']: r#102 [#153 'fn']: r#102 [#153 'override']: r#102 [#153 'struct']: r#102 [#153 'var']: r#102 [#153 EndOfText]: r#102 [#154 ';']: r#103 [#154 '@']: r#103 [#154 'alias']: r#103 [#154 'const']: r#103 [#154 'const_assert']: r#103 [#154 'fn']: r#103 [#154 'override']: r#103 [#154 'struct']: r#103 [#154 'var']: r#103 [#154 EndOfText]: r#103 [#155 ';']: r#104 [#155 '@']: r#104 [#155 'alias']: r#104 [#155 'const']: r#104 [#155 'const_assert']: r#104 [#155 'fn']: r#104 [#155 'override']: r#104 [#155 'struct']: r#104 [#155 'var']: r#104 [#155 EndOfText]: r#104 [#156 EndOfText]: r#105 [#157 ';']: r#106 [#157 '@']: r#106 [#157 'alias']: r#106 [#157 'const']: r#106 [#157 'const_assert']: r#106 [#157 'enable']: r#106 [#157 'fn']: r#106 [#157 'override']: r#106 [#157 'struct']: r#106 [#157 'var']: r#106 [#157 EndOfText]: r#106 [#158 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#159 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#107 [#160 'function']: s#290 [#160 'private']: s#291 [#160 'storage']: s#294 [#160 'uniform']: s#293 [#160 'workgroup']: s#292 [#161 ';']: r#108 [#162 '!']: s#62 [#162 '&']: s#65 [#162 '(']: s#77 [#162 '*']: s#64 [#162 '-']: s#61 [#162 'array']: s#81 [#162 'atomic']: s#95 [#162 'bitcast']: s#71 [#162 'bool']: s#88 [#162 'f16']: s#90 [#162 'f32']: s#89 [#162 'false']: s#87 [#162 'i32']: s#91 [#162 'mat2x2']: s#100 [#162 'mat2x3']: s#101 [#162 'mat2x4']: s#102 [#162 'mat3x2']: s#103 [#162 'mat3x3']: s#104 [#162 'mat3x4']: s#105 [#162 'mat4x2']: s#106 [#162 'mat4x3']: s#107 [#162 'mat4x4']: s#108 [#162 'ptr']: s#93 [#162 'sampler']: s#125 [#162 'sampler_comparison']: s#126 [#162 'texture_1d']: s#132 [#162 'texture_2d']: s#133 [#162 'texture_2d_array']: s#134 [#162 'texture_3d']: s#135 [#162 'texture_cube']: s#136 [#162 'texture_cube_array']: s#137 [#162 'texture_depth_2d']: s#127 [#162 'texture_depth_2d_array']: s#128 [#162 'texture_depth_cube']: s#129 [#162 'texture_depth_cube_array']: s#130 [#162 'texture_depth_multisampled_2d']: s#131 [#162 'texture_multisampled_2d']: s#138 [#162 'texture_storage_1d']: s#139 [#162 'texture_storage_2d']: s#140 [#162 'texture_storage_2d_array']: s#141 [#162 'texture_storage_3d']: s#142 [#162 'true']: s#86 [#162 'u32']: s#92 [#162 'vec2']: s#97 [#162 'vec3']: s#98 [#162 'vec4']: s#99 [#162 '~']: s#63 [#162 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#162 /0[fh]/]: s#112 [#162 /0[iu]?/]: s#109 [#162 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#162 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#162 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#162 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#162 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#162 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#162 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#162 /[1-9][0-9]*[fh]/]: s#113 [#162 /[1-9][0-9]*[iu]?/]: s#110 [#163 ';']: r#109 [#163 '=']: r#109 [#164 'array']: s#281 [#164 'atomic']: s#95 [#164 'bool']: s#88 [#164 'f16']: s#90 [#164 'f32']: s#89 [#164 'i32']: s#91 [#164 'mat2x2']: s#100 [#164 'mat2x3']: s#101 [#164 'mat2x4']: s#102 [#164 'mat3x2']: s#103 [#164 'mat3x3']: s#104 [#164 'mat3x4']: s#105 [#164 'mat4x2']: s#106 [#164 'mat4x3']: s#107 [#164 'mat4x4']: s#108 [#164 'ptr']: s#93 [#164 'sampler']: s#125 [#164 'sampler_comparison']: s#126 [#164 'texture_1d']: s#132 [#164 'texture_2d']: s#133 [#164 'texture_2d_array']: s#134 [#164 'texture_3d']: s#135 [#164 'texture_cube']: s#136 [#164 'texture_cube_array']: s#137 [#164 'texture_depth_2d']: s#127 [#164 'texture_depth_2d_array']: s#128 [#164 'texture_depth_cube']: s#129 [#164 'texture_depth_cube_array']: s#130 [#164 'texture_depth_multisampled_2d']: s#131 [#164 'texture_multisampled_2d']: s#138 [#164 'texture_storage_1d']: s#139 [#164 'texture_storage_2d']: s#140 [#164 'texture_storage_2d_array']: s#141 [#164 'texture_storage_3d']: s#142 [#164 'u32']: s#92 [#164 'vec2']: s#97 [#164 'vec3']: s#98 [#164 'vec4']: s#99 [#164 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#165 '!']: s#62 [#165 '&']: s#65 [#165 '(']: s#77 [#165 '*']: s#64 [#165 '-']: s#61 [#165 'array']: s#81 [#165 'atomic']: s#95 [#165 'bitcast']: s#71 [#165 'bool']: s#88 [#165 'f16']: s#90 [#165 'f32']: s#89 [#165 'false']: s#87 [#165 'i32']: s#91 [#165 'mat2x2']: s#100 [#165 'mat2x3']: s#101 [#165 'mat2x4']: s#102 [#165 'mat3x2']: s#103 [#165 'mat3x3']: s#104 [#165 'mat3x4']: s#105 [#165 'mat4x2']: s#106 [#165 'mat4x3']: s#107 [#165 'mat4x4']: s#108 [#165 'ptr']: s#93 [#165 'sampler']: s#125 [#165 'sampler_comparison']: s#126 [#165 'texture_1d']: s#132 [#165 'texture_2d']: s#133 [#165 'texture_2d_array']: s#134 [#165 'texture_3d']: s#135 [#165 'texture_cube']: s#136 [#165 'texture_cube_array']: s#137 [#165 'texture_depth_2d']: s#127 [#165 'texture_depth_2d_array']: s#128 [#165 'texture_depth_cube']: s#129 [#165 'texture_depth_cube_array']: s#130 [#165 'texture_depth_multisampled_2d']: s#131 [#165 'texture_multisampled_2d']: s#138 [#165 'texture_storage_1d']: s#139 [#165 'texture_storage_2d']: s#140 [#165 'texture_storage_2d_array']: s#141 [#165 'texture_storage_3d']: s#142 [#165 'true']: s#86 [#165 'u32']: s#92 [#165 'vec2']: s#97 [#165 'vec3']: s#98 [#165 'vec4']: s#99 [#165 '~']: s#63 [#165 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#165 /0[fh]/]: s#112 [#165 /0[iu]?/]: s#109 [#165 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#165 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#165 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#165 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#165 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#165 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#165 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#165 /[1-9][0-9]*[fh]/]: s#113 [#165 /[1-9][0-9]*[iu]?/]: s#110 [#166 '=']: s#364 [#167 'array']: s#281 [#167 'atomic']: s#95 [#167 'bool']: s#88 [#167 'f16']: s#90 [#167 'f32']: s#89 [#167 'i32']: s#91 [#167 'mat2x2']: s#100 [#167 'mat2x3']: s#101 [#167 'mat2x4']: s#102 [#167 'mat3x2']: s#103 [#167 'mat3x3']: s#104 [#167 'mat3x4']: s#105 [#167 'mat4x2']: s#106 [#167 'mat4x3']: s#107 [#167 'mat4x4']: s#108 [#167 'ptr']: s#93 [#167 'sampler']: s#125 [#167 'sampler_comparison']: s#126 [#167 'texture_1d']: s#132 [#167 'texture_2d']: s#133 [#167 'texture_2d_array']: s#134 [#167 'texture_3d']: s#135 [#167 'texture_cube']: s#136 [#167 'texture_cube_array']: s#137 [#167 'texture_depth_2d']: s#127 [#167 'texture_depth_2d_array']: s#128 [#167 'texture_depth_cube']: s#129 [#167 'texture_depth_cube_array']: s#130 [#167 'texture_depth_multisampled_2d']: s#131 [#167 'texture_multisampled_2d']: s#138 [#167 'texture_storage_1d']: s#139 [#167 'texture_storage_2d']: s#140 [#167 'texture_storage_2d_array']: s#141 [#167 'texture_storage_3d']: s#142 [#167 'u32']: s#92 [#167 'vec2']: s#97 [#167 'vec3']: s#98 [#167 'vec4']: s#99 [#167 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#168 ';']: r#110 [#168 '@']: r#110 [#168 'alias']: r#110 [#168 'const']: r#110 [#168 'const_assert']: r#110 [#168 'fn']: r#110 [#168 'override']: r#110 [#168 'struct']: r#110 [#168 'var']: r#110 [#168 EndOfText]: r#110 [#169 '@']: s#30 [#170 '(']: s#357 [#171 ';']: r#111 [#171 '@']: r#111 [#171 'alias']: r#111 [#171 'const']: r#111 [#171 'const_assert']: r#111 [#171 'fn']: r#111 [#171 'override']: r#111 [#171 'struct']: r#111 [#171 'var']: r#111 [#171 EndOfText]: r#111 [#172 '&']: s#355 [#172 '(']: s#356 [#172 '*']: s#354 [#172 ';']: s#319 [#172 '_']: s#352 [#172 'array']: s#81 [#172 'atomic']: s#95 [#172 'bool']: s#88 [#172 'break']: s#344 [#172 'const']: s#343 [#172 'const_assert']: s#25 [#172 'continue']: s#345 [#172 'discard']: s#330 [#172 'f16']: s#90 [#172 'f32']: s#89 [#172 'for']: s#338 [#172 'i32']: s#91 [#172 'if']: s#349 [#172 'let']: s#342 [#172 'loop']: s#337 [#172 'mat2x2']: s#100 [#172 'mat2x3']: s#101 [#172 'mat2x4']: s#102 [#172 'mat3x2']: s#103 [#172 'mat3x3']: s#104 [#172 'mat3x4']: s#105 [#172 'mat4x2']: s#106 [#172 'mat4x3']: s#107 [#172 'mat4x4']: s#108 [#172 'ptr']: s#93 [#172 'return']: s#334 [#172 'sampler']: s#125 [#172 'sampler_comparison']: s#126 [#172 'switch']: s#336 [#172 'texture_1d']: s#132 [#172 'texture_2d']: s#133 [#172 'texture_2d_array']: s#134 [#172 'texture_3d']: s#135 [#172 'texture_cube']: s#136 [#172 'texture_cube_array']: s#137 [#172 'texture_depth_2d']: s#127 [#172 'texture_depth_2d_array']: s#128 [#172 'texture_depth_cube']: s#129 [#172 'texture_depth_cube_array']: s#130 [#172 'texture_depth_multisampled_2d']: s#131 [#172 'texture_multisampled_2d']: s#138 [#172 'texture_storage_1d']: s#139 [#172 'texture_storage_2d']: s#140 [#172 'texture_storage_2d_array']: s#141 [#172 'texture_storage_3d']: s#142 [#172 'u32']: s#92 [#172 'var']: s#151 [#172 'vec2']: s#97 [#172 'vec3']: s#98 [#172 'vec4']: s#99 [#172 'while']: s#339 [#172 '{']: s#172 [#172 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#173 'bgra8unorm']: s#315 [#173 'r32float']: s#308 [#173 'r32sint']: s#307 [#173 'r32uint']: s#306 [#173 'rg32float']: s#311 [#173 'rg32sint']: s#310 [#173 'rg32uint']: s#309 [#173 'rgba16float']: s#305 [#173 'rgba16sint']: s#304 [#173 'rgba16uint']: s#303 [#173 'rgba32float']: s#314 [#173 'rgba32sint']: s#313 [#173 'rgba32uint']: s#312 [#173 'rgba8sint']: s#302 [#173 'rgba8snorm']: s#300 [#173 'rgba8uint']: s#301 [#173 'rgba8unorm']: s#299 [#174 'array']: s#281 [#174 'atomic']: s#95 [#174 'bool']: s#88 [#174 'f16']: s#90 [#174 'f32']: s#89 [#174 'i32']: s#91 [#174 'mat2x2']: s#100 [#174 'mat2x3']: s#101 [#174 'mat2x4']: s#102 [#174 'mat3x2']: s#103 [#174 'mat3x3']: s#104 [#174 'mat3x4']: s#105 [#174 'mat4x2']: s#106 [#174 'mat4x3']: s#107 [#174 'mat4x4']: s#108 [#174 'ptr']: s#93 [#174 'sampler']: s#125 [#174 'sampler_comparison']: s#126 [#174 'texture_1d']: s#132 [#174 'texture_2d']: s#133 [#174 'texture_2d_array']: s#134 [#174 'texture_3d']: s#135 [#174 'texture_cube']: s#136 [#174 'texture_cube_array']: s#137 [#174 'texture_depth_2d']: s#127 [#174 'texture_depth_2d_array']: s#128 [#174 'texture_depth_cube']: s#129 [#174 'texture_depth_cube_array']: s#130 [#174 'texture_depth_multisampled_2d']: s#131 [#174 'texture_multisampled_2d']: s#138 [#174 'texture_storage_1d']: s#139 [#174 'texture_storage_2d']: s#140 [#174 'texture_storage_2d_array']: s#141 [#174 'texture_storage_3d']: s#142 [#174 'u32']: s#92 [#174 'vec2']: s#97 [#174 'vec3']: s#98 [#174 'vec4']: s#99 [#174 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#175 'array']: s#281 [#175 'atomic']: s#95 [#175 'bool']: s#88 [#175 'f16']: s#90 [#175 'f32']: s#89 [#175 'i32']: s#91 [#175 'mat2x2']: s#100 [#175 'mat2x3']: s#101 [#175 'mat2x4']: s#102 [#175 'mat3x2']: s#103 [#175 'mat3x3']: s#104 [#175 'mat3x4']: s#105 [#175 'mat4x2']: s#106 [#175 'mat4x3']: s#107 [#175 'mat4x4']: s#108 [#175 'ptr']: s#93 [#175 'sampler']: s#125 [#175 'sampler_comparison']: s#126 [#175 'texture_1d']: s#132 [#175 'texture_2d']: s#133 [#175 'texture_2d_array']: s#134 [#175 'texture_3d']: s#135 [#175 'texture_cube']: s#136 [#175 'texture_cube_array']: s#137 [#175 'texture_depth_2d']: s#127 [#175 'texture_depth_2d_array']: s#128 [#175 'texture_depth_cube']: s#129 [#175 'texture_depth_cube_array']: s#130 [#175 'texture_depth_multisampled_2d']: s#131 [#175 'texture_multisampled_2d']: s#138 [#175 'texture_storage_1d']: s#139 [#175 'texture_storage_2d']: s#140 [#175 'texture_storage_2d_array']: s#141 [#175 'texture_storage_3d']: s#142 [#175 'u32']: s#92 [#175 'vec2']: s#97 [#175 'vec3']: s#98 [#175 'vec4']: s#99 [#175 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#176 'array']: s#281 [#176 'atomic']: s#95 [#176 'bool']: s#88 [#176 'f16']: s#90 [#176 'f32']: s#89 [#176 'i32']: s#91 [#176 'mat2x2']: s#100 [#176 'mat2x3']: s#101 [#176 'mat2x4']: s#102 [#176 'mat3x2']: s#103 [#176 'mat3x3']: s#104 [#176 'mat3x4']: s#105 [#176 'mat4x2']: s#106 [#176 'mat4x3']: s#107 [#176 'mat4x4']: s#108 [#176 'ptr']: s#93 [#176 'sampler']: s#125 [#176 'sampler_comparison']: s#126 [#176 'texture_1d']: s#132 [#176 'texture_2d']: s#133 [#176 'texture_2d_array']: s#134 [#176 'texture_3d']: s#135 [#176 'texture_cube']: s#136 [#176 'texture_cube_array']: s#137 [#176 'texture_depth_2d']: s#127 [#176 'texture_depth_2d_array']: s#128 [#176 'texture_depth_cube']: s#129 [#176 'texture_depth_cube_array']: s#130 [#176 'texture_depth_multisampled_2d']: s#131 [#176 'texture_multisampled_2d']: s#138 [#176 'texture_storage_1d']: s#139 [#176 'texture_storage_2d']: s#140 [#176 'texture_storage_2d_array']: s#141 [#176 'texture_storage_3d']: s#142 [#176 'u32']: s#92 [#176 'vec2']: s#97 [#176 'vec3']: s#98 [#176 'vec4']: s#99 [#176 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#177 'function']: s#290 [#177 'private']: s#291 [#177 'storage']: s#294 [#177 'uniform']: s#293 [#177 'workgroup']: s#292 [#178 'array']: s#281 [#178 'atomic']: s#95 [#178 'bool']: s#88 [#178 'f16']: s#90 [#178 'f32']: s#89 [#178 'i32']: s#91 [#178 'mat2x2']: s#100 [#178 'mat2x3']: s#101 [#178 'mat2x4']: s#102 [#178 'mat3x2']: s#103 [#178 'mat3x3']: s#104 [#178 'mat3x4']: s#105 [#178 'mat4x2']: s#106 [#178 'mat4x3']: s#107 [#178 'mat4x4']: s#108 [#178 'ptr']: s#93 [#178 'sampler']: s#125 [#178 'sampler_comparison']: s#126 [#178 'texture_1d']: s#132 [#178 'texture_2d']: s#133 [#178 'texture_2d_array']: s#134 [#178 'texture_3d']: s#135 [#178 'texture_cube']: s#136 [#178 'texture_cube_array']: s#137 [#178 'texture_depth_2d']: s#127 [#178 'texture_depth_2d_array']: s#128 [#178 'texture_depth_cube']: s#129 [#178 'texture_depth_cube_array']: s#130 [#178 'texture_depth_multisampled_2d']: s#131 [#178 'texture_multisampled_2d']: s#138 [#178 'texture_storage_1d']: s#139 [#178 'texture_storage_2d']: s#140 [#178 'texture_storage_2d_array']: s#141 [#178 'texture_storage_3d']: s#142 [#178 'u32']: s#92 [#178 'vec2']: s#97 [#178 'vec3']: s#98 [#178 'vec4']: s#99 [#178 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#179 'array']: s#281 [#179 'atomic']: s#95 [#179 'bool']: s#88 [#179 'f16']: s#90 [#179 'f32']: s#89 [#179 'i32']: s#91 [#179 'mat2x2']: s#100 [#179 'mat2x3']: s#101 [#179 'mat2x4']: s#102 [#179 'mat3x2']: s#103 [#179 'mat3x3']: s#104 [#179 'mat3x4']: s#105 [#179 'mat4x2']: s#106 [#179 'mat4x3']: s#107 [#179 'mat4x4']: s#108 [#179 'ptr']: s#93 [#179 'sampler']: s#125 [#179 'sampler_comparison']: s#126 [#179 'texture_1d']: s#132 [#179 'texture_2d']: s#133 [#179 'texture_2d_array']: s#134 [#179 'texture_3d']: s#135 [#179 'texture_cube']: s#136 [#179 'texture_cube_array']: s#137 [#179 'texture_depth_2d']: s#127 [#179 'texture_depth_2d_array']: s#128 [#179 'texture_depth_cube']: s#129 [#179 'texture_depth_cube_array']: s#130 [#179 'texture_depth_multisampled_2d']: s#131 [#179 'texture_multisampled_2d']: s#138 [#179 'texture_storage_1d']: s#139 [#179 'texture_storage_2d']: s#140 [#179 'texture_storage_2d_array']: s#141 [#179 'texture_storage_3d']: s#142 [#179 'u32']: s#92 [#179 'vec2']: s#97 [#179 'vec3']: s#98 [#179 'vec4']: s#99 [#179 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#180 'array']: s#281 [#180 'atomic']: s#95 [#180 'bool']: s#88 [#180 'f16']: s#90 [#180 'f32']: s#89 [#180 'i32']: s#91 [#180 'mat2x2']: s#100 [#180 'mat2x3']: s#101 [#180 'mat2x4']: s#102 [#180 'mat3x2']: s#103 [#180 'mat3x3']: s#104 [#180 'mat3x4']: s#105 [#180 'mat4x2']: s#106 [#180 'mat4x3']: s#107 [#180 'mat4x4']: s#108 [#180 'ptr']: s#93 [#180 'sampler']: s#125 [#180 'sampler_comparison']: s#126 [#180 'texture_1d']: s#132 [#180 'texture_2d']: s#133 [#180 'texture_2d_array']: s#134 [#180 'texture_3d']: s#135 [#180 'texture_cube']: s#136 [#180 'texture_cube_array']: s#137 [#180 'texture_depth_2d']: s#127 [#180 'texture_depth_2d_array']: s#128 [#180 'texture_depth_cube']: s#129 [#180 'texture_depth_cube_array']: s#130 [#180 'texture_depth_multisampled_2d']: s#131 [#180 'texture_multisampled_2d']: s#138 [#180 'texture_storage_1d']: s#139 [#180 'texture_storage_2d']: s#140 [#180 'texture_storage_2d_array']: s#141 [#180 'texture_storage_3d']: s#142 [#180 'u32']: s#92 [#180 'vec2']: s#97 [#180 'vec3']: s#98 [#180 'vec4']: s#99 [#180 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#181 ')']: s#285 [#182 '!=']: r#112 [#182 '%']: r#112 [#182 '&&']: r#112 [#182 '&']: r#112 [#182 ')']: r#112 [#182 '*']: r#112 [#182 '+']: r#112 [#182 ',']: r#112 [#182 '-']: r#112 [#182 '.']: r#112 [#182 '/']: r#112 [#182 ':']: r#112 [#182 ';']: r#112 [#182 '<']: r#112 [#182 '<<']: r#112 [#182 '<=']: r#112 [#182 '==']: r#112 [#182 '>']: r#112 [#182 '>=']: r#112 [#182 '>>']: r#112 [#182 '[']: r#112 [#182 ']']: r#112 [#182 '^']: r#112 [#182 '{']: r#112 [#182 '|']: r#112 [#182 '||']: r#112 [#183 '!']: s#62 [#183 '&']: s#65 [#183 '(']: s#77 [#183 '*']: s#64 [#183 '-']: s#61 [#183 'array']: s#81 [#183 'atomic']: s#95 [#183 'bitcast']: s#71 [#183 'bool']: s#88 [#183 'f16']: s#90 [#183 'f32']: s#89 [#183 'false']: s#87 [#183 'i32']: s#91 [#183 'mat2x2']: s#100 [#183 'mat2x3']: s#101 [#183 'mat2x4']: s#102 [#183 'mat3x2']: s#103 [#183 'mat3x3']: s#104 [#183 'mat3x4']: s#105 [#183 'mat4x2']: s#106 [#183 'mat4x3']: s#107 [#183 'mat4x4']: s#108 [#183 'ptr']: s#93 [#183 'sampler']: s#125 [#183 'sampler_comparison']: s#126 [#183 'texture_1d']: s#132 [#183 'texture_2d']: s#133 [#183 'texture_2d_array']: s#134 [#183 'texture_3d']: s#135 [#183 'texture_cube']: s#136 [#183 'texture_cube_array']: s#137 [#183 'texture_depth_2d']: s#127 [#183 'texture_depth_2d_array']: s#128 [#183 'texture_depth_cube']: s#129 [#183 'texture_depth_cube_array']: s#130 [#183 'texture_depth_multisampled_2d']: s#131 [#183 'texture_multisampled_2d']: s#138 [#183 'texture_storage_1d']: s#139 [#183 'texture_storage_2d']: s#140 [#183 'texture_storage_2d_array']: s#141 [#183 'texture_storage_3d']: s#142 [#183 'true']: s#86 [#183 'u32']: s#92 [#183 'vec2']: s#97 [#183 'vec3']: s#98 [#183 'vec4']: s#99 [#183 '~']: s#63 [#183 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#183 /0[fh]/]: s#112 [#183 /0[iu]?/]: s#109 [#183 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#183 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#183 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#183 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#183 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#183 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#183 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#183 /[1-9][0-9]*[fh]/]: s#113 [#183 /[1-9][0-9]*[iu]?/]: s#110 [#184 'array']: s#281 [#184 'atomic']: s#95 [#184 'bool']: s#88 [#184 'f16']: s#90 [#184 'f32']: s#89 [#184 'i32']: s#91 [#184 'mat2x2']: s#100 [#184 'mat2x3']: s#101 [#184 'mat2x4']: s#102 [#184 'mat3x2']: s#103 [#184 'mat3x3']: s#104 [#184 'mat3x4']: s#105 [#184 'mat4x2']: s#106 [#184 'mat4x3']: s#107 [#184 'mat4x4']: s#108 [#184 'ptr']: s#93 [#184 'sampler']: s#125 [#184 'sampler_comparison']: s#126 [#184 'texture_1d']: s#132 [#184 'texture_2d']: s#133 [#184 'texture_2d_array']: s#134 [#184 'texture_3d']: s#135 [#184 'texture_cube']: s#136 [#184 'texture_cube_array']: s#137 [#184 'texture_depth_2d']: s#127 [#184 'texture_depth_2d_array']: s#128 [#184 'texture_depth_cube']: s#129 [#184 'texture_depth_cube_array']: s#130 [#184 'texture_depth_multisampled_2d']: s#131 [#184 'texture_multisampled_2d']: s#138 [#184 'texture_storage_1d']: s#139 [#184 'texture_storage_2d']: s#140 [#184 'texture_storage_2d_array']: s#141 [#184 'texture_storage_3d']: s#142 [#184 'u32']: s#92 [#184 'vec2']: s#97 [#184 'vec3']: s#98 [#184 'vec4']: s#99 [#184 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#185 '!=']: r#113 [#185 '%']: r#113 [#185 '&&']: r#113 [#185 '&']: r#113 [#185 ')']: r#113 [#185 '*']: r#113 [#185 '+']: r#113 [#185 ',']: r#113 [#185 '-']: r#113 [#185 '/']: r#113 [#185 ':']: r#113 [#185 ';']: r#113 [#185 '<']: r#113 [#185 '<<']: r#113 [#185 '<=']: r#113 [#185 '==']: r#113 [#185 '>']: r#113 [#185 '>=']: r#113 [#185 '>>']: r#113 [#185 ']']: r#113 [#185 '^']: r#113 [#185 '{']: r#113 [#185 '|']: r#113 [#185 '||']: r#113 [#186 '!=']: r#114 [#186 '%']: r#114 [#186 '&&']: r#114 [#186 '&']: r#114 [#186 ')']: r#114 [#186 '*']: r#114 [#186 '+']: r#114 [#186 ',']: r#114 [#186 '-']: r#114 [#186 '/']: r#114 [#186 ':']: r#114 [#186 ';']: r#114 [#186 '<']: r#114 [#186 '<<']: r#114 [#186 '<=']: r#114 [#186 '==']: r#114 [#186 '>']: r#114 [#186 '>=']: r#114 [#186 '>>']: r#114 [#186 ']']: r#114 [#186 '^']: r#114 [#186 '{']: r#114 [#186 '|']: r#114 [#186 '||']: r#114 [#187 '!']: s#62 [#187 '&']: s#65 [#187 '(']: s#77 [#187 '*']: s#64 [#187 '-']: s#61 [#187 'array']: s#81 [#187 'atomic']: s#95 [#187 'bitcast']: s#71 [#187 'bool']: s#88 [#187 'f16']: s#90 [#187 'f32']: s#89 [#187 'false']: s#87 [#187 'i32']: s#91 [#187 'mat2x2']: s#100 [#187 'mat2x3']: s#101 [#187 'mat2x4']: s#102 [#187 'mat3x2']: s#103 [#187 'mat3x3']: s#104 [#187 'mat3x4']: s#105 [#187 'mat4x2']: s#106 [#187 'mat4x3']: s#107 [#187 'mat4x4']: s#108 [#187 'ptr']: s#93 [#187 'sampler']: s#125 [#187 'sampler_comparison']: s#126 [#187 'texture_1d']: s#132 [#187 'texture_2d']: s#133 [#187 'texture_2d_array']: s#134 [#187 'texture_3d']: s#135 [#187 'texture_cube']: s#136 [#187 'texture_cube_array']: s#137 [#187 'texture_depth_2d']: s#127 [#187 'texture_depth_2d_array']: s#128 [#187 'texture_depth_cube']: s#129 [#187 'texture_depth_cube_array']: s#130 [#187 'texture_depth_multisampled_2d']: s#131 [#187 'texture_multisampled_2d']: s#138 [#187 'texture_storage_1d']: s#139 [#187 'texture_storage_2d']: s#140 [#187 'texture_storage_2d_array']: s#141 [#187 'texture_storage_3d']: s#142 [#187 'true']: s#86 [#187 'u32']: s#92 [#187 'vec2']: s#97 [#187 'vec3']: s#98 [#187 'vec4']: s#99 [#187 '~']: s#63 [#187 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#187 /0[fh]/]: s#112 [#187 /0[iu]?/]: s#109 [#187 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#187 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#187 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#187 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#187 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#187 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#187 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#187 /[1-9][0-9]*[fh]/]: s#113 [#187 /[1-9][0-9]*[iu]?/]: s#110 [#188 '/[rgba]/']: s#267 [#188 '/[rgba][rgba]/']: s#268 [#188 '/[rgba][rgba][rgba]/']: s#269 [#188 '/[rgba][rgba][rgba][rgba]/']: s#270 [#188 '/[xyzw]/']: s#271 [#188 '/[xyzw][xyzw]/']: s#272 [#188 '/[xyzw][xyzw][xyzw]/']: s#273 [#188 '/[xyzw][xyzw][xyzw][xyzw]/']: s#274 [#188 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#266 [#189 '!=']: r#115 [#189 '%']: r#115 [#189 '&&']: r#115 [#189 '&']: r#115 [#189 ')']: r#115 [#189 '*']: r#115 [#189 '+']: r#115 [#189 ',']: r#115 [#189 '-']: r#115 [#189 '/']: r#115 [#189 ':']: r#115 [#189 ';']: r#115 [#189 '<']: r#115 [#189 '<<']: r#115 [#189 '<=']: r#115 [#189 '==']: r#115 [#189 '>']: r#115 [#189 '>=']: r#115 [#189 '>>']: r#115 [#189 ']']: r#115 [#189 '^']: r#115 [#189 '{']: r#115 [#189 '|']: r#115 [#189 '||']: r#115 [#190 '!=']: r#116 [#190 '%']: r#116 [#190 '&&']: r#116 [#190 '&']: r#116 [#190 ')']: r#116 [#190 '*']: r#116 [#190 '+']: r#116 [#190 ',']: r#116 [#190 '-']: r#116 [#190 '/']: r#116 [#190 ':']: r#116 [#190 ';']: r#116 [#190 '<']: r#116 [#190 '<<']: r#116 [#190 '<=']: r#116 [#190 '==']: r#116 [#190 '>']: r#116 [#190 '>=']: r#116 [#190 '>>']: r#116 [#190 ']']: r#116 [#190 '^']: r#116 [#190 '{']: r#116 [#190 '|']: r#116 [#190 '||']: r#116 [#191 '!=']: r#117 [#191 '%']: r#117 [#191 '&&']: r#117 [#191 '&']: r#117 [#191 ')']: r#117 [#191 '*']: r#117 [#191 '+']: r#117 [#191 ',']: r#117 [#191 '-']: r#117 [#191 '/']: r#117 [#191 ':']: r#117 [#191 ';']: r#117 [#191 '<']: r#117 [#191 '<<']: r#117 [#191 '<=']: r#117 [#191 '==']: r#117 [#191 '>']: r#117 [#191 '>=']: r#117 [#191 '>>']: r#117 [#191 ']']: r#117 [#191 '^']: r#117 [#191 '{']: r#117 [#191 '|']: r#117 [#191 '||']: r#117 [#192 '!=']: r#118 [#192 '%']: r#118 [#192 '&&']: r#118 [#192 '&']: r#118 [#192 ')']: r#118 [#192 '*']: r#118 [#192 '+']: r#118 [#192 ',']: r#118 [#192 '-']: r#118 [#192 '/']: r#118 [#192 ':']: r#118 [#192 ';']: r#118 [#192 '<']: r#118 [#192 '<<']: r#118 [#192 '<=']: r#118 [#192 '==']: r#118 [#192 '>']: r#118 [#192 '>=']: r#118 [#192 '>>']: r#118 [#192 ']']: r#118 [#192 '^']: r#118 [#192 '{']: r#118 [#192 '|']: r#118 [#192 '||']: r#118 [#193 '!=']: r#119 [#193 '%']: r#119 [#193 '&&']: r#119 [#193 '&']: r#119 [#193 ')']: r#119 [#193 '*']: r#119 [#193 '+']: r#119 [#193 ',']: r#119 [#193 '-']: r#119 [#193 '/']: r#119 [#193 ':']: r#119 [#193 ';']: r#119 [#193 '<']: r#119 [#193 '<<']: r#119 [#193 '<=']: r#119 [#193 '==']: r#119 [#193 '>']: r#119 [#193 '>=']: r#119 [#193 '>>']: r#119 [#193 ']']: r#119 [#193 '^']: r#119 [#193 '{']: r#119 [#193 '|']: r#119 [#193 '||']: r#119 [#194 '!']: s#62 [#194 '&']: s#65 [#194 '(']: s#77 [#194 '*']: s#64 [#194 '-']: s#61 [#194 'array']: s#81 [#194 'atomic']: s#95 [#194 'bitcast']: s#71 [#194 'bool']: s#88 [#194 'f16']: s#90 [#194 'f32']: s#89 [#194 'false']: s#87 [#194 'i32']: s#91 [#194 'mat2x2']: s#100 [#194 'mat2x3']: s#101 [#194 'mat2x4']: s#102 [#194 'mat3x2']: s#103 [#194 'mat3x3']: s#104 [#194 'mat3x4']: s#105 [#194 'mat4x2']: s#106 [#194 'mat4x3']: s#107 [#194 'mat4x4']: s#108 [#194 'ptr']: s#93 [#194 'sampler']: s#125 [#194 'sampler_comparison']: s#126 [#194 'texture_1d']: s#132 [#194 'texture_2d']: s#133 [#194 'texture_2d_array']: s#134 [#194 'texture_3d']: s#135 [#194 'texture_cube']: s#136 [#194 'texture_cube_array']: s#137 [#194 'texture_depth_2d']: s#127 [#194 'texture_depth_2d_array']: s#128 [#194 'texture_depth_cube']: s#129 [#194 'texture_depth_cube_array']: s#130 [#194 'texture_depth_multisampled_2d']: s#131 [#194 'texture_multisampled_2d']: s#138 [#194 'texture_storage_1d']: s#139 [#194 'texture_storage_2d']: s#140 [#194 'texture_storage_2d_array']: s#141 [#194 'texture_storage_3d']: s#142 [#194 'true']: s#86 [#194 'u32']: s#92 [#194 'vec2']: s#97 [#194 'vec3']: s#98 [#194 'vec4']: s#99 [#194 '~']: s#63 [#194 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#194 /0[fh]/]: s#112 [#194 /0[iu]?/]: s#109 [#194 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#194 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#194 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#194 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#194 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#194 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#194 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#194 /[1-9][0-9]*[fh]/]: s#113 [#194 /[1-9][0-9]*[iu]?/]: s#110 [#195 '!']: r#120 [#195 '&']: r#120 [#195 '(']: r#120 [#195 '*']: r#120 [#195 '-']: r#120 [#195 'array']: r#120 [#195 'atomic']: r#120 [#195 'bitcast']: r#120 [#195 'bool']: r#120 [#195 'f16']: r#120 [#195 'f32']: r#120 [#195 'false']: r#120 [#195 'i32']: r#120 [#195 'mat2x2']: r#120 [#195 'mat2x3']: r#120 [#195 'mat2x4']: r#120 [#195 'mat3x2']: r#120 [#195 'mat3x3']: r#120 [#195 'mat3x4']: r#120 [#195 'mat4x2']: r#120 [#195 'mat4x3']: r#120 [#195 'mat4x4']: r#120 [#195 'ptr']: r#120 [#195 'sampler']: r#120 [#195 'sampler_comparison']: r#120 [#195 'texture_1d']: r#120 [#195 'texture_2d']: r#120 [#195 'texture_2d_array']: r#120 [#195 'texture_3d']: r#120 [#195 'texture_cube']: r#120 [#195 'texture_cube_array']: r#120 [#195 'texture_depth_2d']: r#120 [#195 'texture_depth_2d_array']: r#120 [#195 'texture_depth_cube']: r#120 [#195 'texture_depth_cube_array']: r#120 [#195 'texture_depth_multisampled_2d']: r#120 [#195 'texture_multisampled_2d']: r#120 [#195 'texture_storage_1d']: r#120 [#195 'texture_storage_2d']: r#120 [#195 'texture_storage_2d_array']: r#120 [#195 'texture_storage_3d']: r#120 [#195 'true']: r#120 [#195 'u32']: r#120 [#195 'vec2']: r#120 [#195 'vec3']: r#120 [#195 'vec4']: r#120 [#195 '~']: r#120 [#195 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#120 [#195 /0[fh]/]: r#120 [#195 /0[iu]?/]: r#120 [#195 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#120 [#195 /0[xX][0-9a-fA-F]+[iu]?/]: r#120 [#195 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#120 [#195 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#120 [#195 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#120 [#195 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#120 [#195 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#120 [#195 /[1-9][0-9]*[fh]/]: r#120 [#195 /[1-9][0-9]*[iu]?/]: r#120 [#196 '!']: r#121 [#196 '&']: r#121 [#196 '(']: r#121 [#196 '*']: r#121 [#196 '-']: r#121 [#196 'array']: r#121 [#196 'atomic']: r#121 [#196 'bitcast']: r#121 [#196 'bool']: r#121 [#196 'f16']: r#121 [#196 'f32']: r#121 [#196 'false']: r#121 [#196 'i32']: r#121 [#196 'mat2x2']: r#121 [#196 'mat2x3']: r#121 [#196 'mat2x4']: r#121 [#196 'mat3x2']: r#121 [#196 'mat3x3']: r#121 [#196 'mat3x4']: r#121 [#196 'mat4x2']: r#121 [#196 'mat4x3']: r#121 [#196 'mat4x4']: r#121 [#196 'ptr']: r#121 [#196 'sampler']: r#121 [#196 'sampler_comparison']: r#121 [#196 'texture_1d']: r#121 [#196 'texture_2d']: r#121 [#196 'texture_2d_array']: r#121 [#196 'texture_3d']: r#121 [#196 'texture_cube']: r#121 [#196 'texture_cube_array']: r#121 [#196 'texture_depth_2d']: r#121 [#196 'texture_depth_2d_array']: r#121 [#196 'texture_depth_cube']: r#121 [#196 'texture_depth_cube_array']: r#121 [#196 'texture_depth_multisampled_2d']: r#121 [#196 'texture_multisampled_2d']: r#121 [#196 'texture_storage_1d']: r#121 [#196 'texture_storage_2d']: r#121 [#196 'texture_storage_2d_array']: r#121 [#196 'texture_storage_3d']: r#121 [#196 'true']: r#121 [#196 'u32']: r#121 [#196 'vec2']: r#121 [#196 'vec3']: r#121 [#196 'vec4']: r#121 [#196 '~']: r#121 [#196 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#121 [#196 /0[fh]/]: r#121 [#196 /0[iu]?/]: r#121 [#196 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#121 [#196 /0[xX][0-9a-fA-F]+[iu]?/]: r#121 [#196 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#121 [#196 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#121 [#196 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#121 [#196 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#121 [#196 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#121 [#196 /[1-9][0-9]*[fh]/]: r#121 [#196 /[1-9][0-9]*[iu]?/]: r#121 [#197 '!']: r#122 [#197 '&']: r#122 [#197 '(']: r#122 [#197 '*']: r#122 [#197 '-']: r#122 [#197 'array']: r#122 [#197 'atomic']: r#122 [#197 'bitcast']: r#122 [#197 'bool']: r#122 [#197 'f16']: r#122 [#197 'f32']: r#122 [#197 'false']: r#122 [#197 'i32']: r#122 [#197 'mat2x2']: r#122 [#197 'mat2x3']: r#122 [#197 'mat2x4']: r#122 [#197 'mat3x2']: r#122 [#197 'mat3x3']: r#122 [#197 'mat3x4']: r#122 [#197 'mat4x2']: r#122 [#197 'mat4x3']: r#122 [#197 'mat4x4']: r#122 [#197 'ptr']: r#122 [#197 'sampler']: r#122 [#197 'sampler_comparison']: r#122 [#197 'texture_1d']: r#122 [#197 'texture_2d']: r#122 [#197 'texture_2d_array']: r#122 [#197 'texture_3d']: r#122 [#197 'texture_cube']: r#122 [#197 'texture_cube_array']: r#122 [#197 'texture_depth_2d']: r#122 [#197 'texture_depth_2d_array']: r#122 [#197 'texture_depth_cube']: r#122 [#197 'texture_depth_cube_array']: r#122 [#197 'texture_depth_multisampled_2d']: r#122 [#197 'texture_multisampled_2d']: r#122 [#197 'texture_storage_1d']: r#122 [#197 'texture_storage_2d']: r#122 [#197 'texture_storage_2d_array']: r#122 [#197 'texture_storage_3d']: r#122 [#197 'true']: r#122 [#197 'u32']: r#122 [#197 'vec2']: r#122 [#197 'vec3']: r#122 [#197 'vec4']: r#122 [#197 '~']: r#122 [#197 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#122 [#197 /0[fh]/]: r#122 [#197 /0[iu]?/]: r#122 [#197 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#122 [#197 /0[xX][0-9a-fA-F]+[iu]?/]: r#122 [#197 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#122 [#197 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#122 [#197 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#122 [#197 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#122 [#197 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#122 [#197 /[1-9][0-9]*[fh]/]: r#122 [#197 /[1-9][0-9]*[iu]?/]: r#122 [#198 '!']: s#62 [#198 '&']: s#65 [#198 '(']: s#77 [#198 '*']: s#64 [#198 '-']: s#61 [#198 'array']: s#81 [#198 'atomic']: s#95 [#198 'bitcast']: s#71 [#198 'bool']: s#88 [#198 'f16']: s#90 [#198 'f32']: s#89 [#198 'false']: s#87 [#198 'i32']: s#91 [#198 'mat2x2']: s#100 [#198 'mat2x3']: s#101 [#198 'mat2x4']: s#102 [#198 'mat3x2']: s#103 [#198 'mat3x3']: s#104 [#198 'mat3x4']: s#105 [#198 'mat4x2']: s#106 [#198 'mat4x3']: s#107 [#198 'mat4x4']: s#108 [#198 'ptr']: s#93 [#198 'sampler']: s#125 [#198 'sampler_comparison']: s#126 [#198 'texture_1d']: s#132 [#198 'texture_2d']: s#133 [#198 'texture_2d_array']: s#134 [#198 'texture_3d']: s#135 [#198 'texture_cube']: s#136 [#198 'texture_cube_array']: s#137 [#198 'texture_depth_2d']: s#127 [#198 'texture_depth_2d_array']: s#128 [#198 'texture_depth_cube']: s#129 [#198 'texture_depth_cube_array']: s#130 [#198 'texture_depth_multisampled_2d']: s#131 [#198 'texture_multisampled_2d']: s#138 [#198 'texture_storage_1d']: s#139 [#198 'texture_storage_2d']: s#140 [#198 'texture_storage_2d_array']: s#141 [#198 'texture_storage_3d']: s#142 [#198 'true']: s#86 [#198 'u32']: s#92 [#198 'vec2']: s#97 [#198 'vec3']: s#98 [#198 'vec4']: s#99 [#198 '~']: s#63 [#198 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#198 /0[fh]/]: s#112 [#198 /0[iu]?/]: s#109 [#198 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#198 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#198 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#198 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#198 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#198 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#198 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#198 /[1-9][0-9]*[fh]/]: s#113 [#198 /[1-9][0-9]*[iu]?/]: s#110 [#199 '!']: s#62 [#199 '&']: s#65 [#199 '(']: s#77 [#199 '*']: s#64 [#199 '-']: s#61 [#199 'array']: s#81 [#199 'atomic']: s#95 [#199 'bitcast']: s#71 [#199 'bool']: s#88 [#199 'f16']: s#90 [#199 'f32']: s#89 [#199 'false']: s#87 [#199 'i32']: s#91 [#199 'mat2x2']: s#100 [#199 'mat2x3']: s#101 [#199 'mat2x4']: s#102 [#199 'mat3x2']: s#103 [#199 'mat3x3']: s#104 [#199 'mat3x4']: s#105 [#199 'mat4x2']: s#106 [#199 'mat4x3']: s#107 [#199 'mat4x4']: s#108 [#199 'ptr']: s#93 [#199 'sampler']: s#125 [#199 'sampler_comparison']: s#126 [#199 'texture_1d']: s#132 [#199 'texture_2d']: s#133 [#199 'texture_2d_array']: s#134 [#199 'texture_3d']: s#135 [#199 'texture_cube']: s#136 [#199 'texture_cube_array']: s#137 [#199 'texture_depth_2d']: s#127 [#199 'texture_depth_2d_array']: s#128 [#199 'texture_depth_cube']: s#129 [#199 'texture_depth_cube_array']: s#130 [#199 'texture_depth_multisampled_2d']: s#131 [#199 'texture_multisampled_2d']: s#138 [#199 'texture_storage_1d']: s#139 [#199 'texture_storage_2d']: s#140 [#199 'texture_storage_2d_array']: s#141 [#199 'texture_storage_3d']: s#142 [#199 'true']: s#86 [#199 'u32']: s#92 [#199 'vec2']: s#97 [#199 'vec3']: s#98 [#199 'vec4']: s#99 [#199 '~']: s#63 [#199 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#199 /0[fh]/]: s#112 [#199 /0[iu]?/]: s#109 [#199 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#199 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#199 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#199 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#199 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#199 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#199 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#199 /[1-9][0-9]*[fh]/]: s#113 [#199 /[1-9][0-9]*[iu]?/]: s#110 [#200 '!']: s#62 [#200 '&']: s#65 [#200 '(']: s#77 [#200 '*']: s#64 [#200 '-']: s#61 [#200 'array']: s#81 [#200 'atomic']: s#95 [#200 'bitcast']: s#71 [#200 'bool']: s#88 [#200 'f16']: s#90 [#200 'f32']: s#89 [#200 'false']: s#87 [#200 'i32']: s#91 [#200 'mat2x2']: s#100 [#200 'mat2x3']: s#101 [#200 'mat2x4']: s#102 [#200 'mat3x2']: s#103 [#200 'mat3x3']: s#104 [#200 'mat3x4']: s#105 [#200 'mat4x2']: s#106 [#200 'mat4x3']: s#107 [#200 'mat4x4']: s#108 [#200 'ptr']: s#93 [#200 'sampler']: s#125 [#200 'sampler_comparison']: s#126 [#200 'texture_1d']: s#132 [#200 'texture_2d']: s#133 [#200 'texture_2d_array']: s#134 [#200 'texture_3d']: s#135 [#200 'texture_cube']: s#136 [#200 'texture_cube_array']: s#137 [#200 'texture_depth_2d']: s#127 [#200 'texture_depth_2d_array']: s#128 [#200 'texture_depth_cube']: s#129 [#200 'texture_depth_cube_array']: s#130 [#200 'texture_depth_multisampled_2d']: s#131 [#200 'texture_multisampled_2d']: s#138 [#200 'texture_storage_1d']: s#139 [#200 'texture_storage_2d']: s#140 [#200 'texture_storage_2d_array']: s#141 [#200 'texture_storage_3d']: s#142 [#200 'true']: s#86 [#200 'u32']: s#92 [#200 'vec2']: s#97 [#200 'vec3']: s#98 [#200 'vec4']: s#99 [#200 '~']: s#63 [#200 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#200 /0[fh]/]: s#112 [#200 /0[iu]?/]: s#109 [#200 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#200 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#200 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#200 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#200 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#200 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#200 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#200 /[1-9][0-9]*[fh]/]: s#113 [#200 /[1-9][0-9]*[iu]?/]: s#110 [#201 '!']: r#123 [#201 '&']: r#123 [#201 '(']: r#123 [#201 '*']: r#123 [#201 '-']: r#123 [#201 'array']: r#123 [#201 'atomic']: r#123 [#201 'bitcast']: r#123 [#201 'bool']: r#123 [#201 'f16']: r#123 [#201 'f32']: r#123 [#201 'false']: r#123 [#201 'i32']: r#123 [#201 'mat2x2']: r#123 [#201 'mat2x3']: r#123 [#201 'mat2x4']: r#123 [#201 'mat3x2']: r#123 [#201 'mat3x3']: r#123 [#201 'mat3x4']: r#123 [#201 'mat4x2']: r#123 [#201 'mat4x3']: r#123 [#201 'mat4x4']: r#123 [#201 'ptr']: r#123 [#201 'sampler']: r#123 [#201 'sampler_comparison']: r#123 [#201 'texture_1d']: r#123 [#201 'texture_2d']: r#123 [#201 'texture_2d_array']: r#123 [#201 'texture_3d']: r#123 [#201 'texture_cube']: r#123 [#201 'texture_cube_array']: r#123 [#201 'texture_depth_2d']: r#123 [#201 'texture_depth_2d_array']: r#123 [#201 'texture_depth_cube']: r#123 [#201 'texture_depth_cube_array']: r#123 [#201 'texture_depth_multisampled_2d']: r#123 [#201 'texture_multisampled_2d']: r#123 [#201 'texture_storage_1d']: r#123 [#201 'texture_storage_2d']: r#123 [#201 'texture_storage_2d_array']: r#123 [#201 'texture_storage_3d']: r#123 [#201 'true']: r#123 [#201 'u32']: r#123 [#201 'vec2']: r#123 [#201 'vec3']: r#123 [#201 'vec4']: r#123 [#201 '~']: r#123 [#201 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#123 [#201 /0[fh]/]: r#123 [#201 /0[iu]?/]: r#123 [#201 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#123 [#201 /0[xX][0-9a-fA-F]+[iu]?/]: r#123 [#201 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#123 [#201 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#123 [#201 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#123 [#201 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#123 [#201 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#123 [#201 /[1-9][0-9]*[fh]/]: r#123 [#201 /[1-9][0-9]*[iu]?/]: r#123 [#202 '!']: r#124 [#202 '&']: r#124 [#202 '(']: r#124 [#202 '*']: r#124 [#202 '-']: r#124 [#202 'array']: r#124 [#202 'atomic']: r#124 [#202 'bitcast']: r#124 [#202 'bool']: r#124 [#202 'f16']: r#124 [#202 'f32']: r#124 [#202 'false']: r#124 [#202 'i32']: r#124 [#202 'mat2x2']: r#124 [#202 'mat2x3']: r#124 [#202 'mat2x4']: r#124 [#202 'mat3x2']: r#124 [#202 'mat3x3']: r#124 [#202 'mat3x4']: r#124 [#202 'mat4x2']: r#124 [#202 'mat4x3']: r#124 [#202 'mat4x4']: r#124 [#202 'ptr']: r#124 [#202 'sampler']: r#124 [#202 'sampler_comparison']: r#124 [#202 'texture_1d']: r#124 [#202 'texture_2d']: r#124 [#202 'texture_2d_array']: r#124 [#202 'texture_3d']: r#124 [#202 'texture_cube']: r#124 [#202 'texture_cube_array']: r#124 [#202 'texture_depth_2d']: r#124 [#202 'texture_depth_2d_array']: r#124 [#202 'texture_depth_cube']: r#124 [#202 'texture_depth_cube_array']: r#124 [#202 'texture_depth_multisampled_2d']: r#124 [#202 'texture_multisampled_2d']: r#124 [#202 'texture_storage_1d']: r#124 [#202 'texture_storage_2d']: r#124 [#202 'texture_storage_2d_array']: r#124 [#202 'texture_storage_3d']: r#124 [#202 'true']: r#124 [#202 'u32']: r#124 [#202 'vec2']: r#124 [#202 'vec3']: r#124 [#202 'vec4']: r#124 [#202 '~']: r#124 [#202 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#124 [#202 /0[fh]/]: r#124 [#202 /0[iu]?/]: r#124 [#202 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#124 [#202 /0[xX][0-9a-fA-F]+[iu]?/]: r#124 [#202 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#124 [#202 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#124 [#202 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#124 [#202 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#124 [#202 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#124 [#202 /[1-9][0-9]*[fh]/]: r#124 [#202 /[1-9][0-9]*[iu]?/]: r#124 [#203 '!']: s#62 [#203 '&']: s#65 [#203 '(']: s#77 [#203 '*']: s#64 [#203 '-']: s#61 [#203 'array']: s#81 [#203 'atomic']: s#95 [#203 'bitcast']: s#71 [#203 'bool']: s#88 [#203 'f16']: s#90 [#203 'f32']: s#89 [#203 'false']: s#87 [#203 'i32']: s#91 [#203 'mat2x2']: s#100 [#203 'mat2x3']: s#101 [#203 'mat2x4']: s#102 [#203 'mat3x2']: s#103 [#203 'mat3x3']: s#104 [#203 'mat3x4']: s#105 [#203 'mat4x2']: s#106 [#203 'mat4x3']: s#107 [#203 'mat4x4']: s#108 [#203 'ptr']: s#93 [#203 'sampler']: s#125 [#203 'sampler_comparison']: s#126 [#203 'texture_1d']: s#132 [#203 'texture_2d']: s#133 [#203 'texture_2d_array']: s#134 [#203 'texture_3d']: s#135 [#203 'texture_cube']: s#136 [#203 'texture_cube_array']: s#137 [#203 'texture_depth_2d']: s#127 [#203 'texture_depth_2d_array']: s#128 [#203 'texture_depth_cube']: s#129 [#203 'texture_depth_cube_array']: s#130 [#203 'texture_depth_multisampled_2d']: s#131 [#203 'texture_multisampled_2d']: s#138 [#203 'texture_storage_1d']: s#139 [#203 'texture_storage_2d']: s#140 [#203 'texture_storage_2d_array']: s#141 [#203 'texture_storage_3d']: s#142 [#203 'true']: s#86 [#203 'u32']: s#92 [#203 'vec2']: s#97 [#203 'vec3']: s#98 [#203 'vec4']: s#99 [#203 '~']: s#63 [#203 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#203 /0[fh]/]: s#112 [#203 /0[iu]?/]: s#109 [#203 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#203 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#203 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#203 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#203 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#203 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#203 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#203 /[1-9][0-9]*[fh]/]: s#113 [#203 /[1-9][0-9]*[iu]?/]: s#110 [#204 '!']: s#62 [#204 '&']: s#65 [#204 '(']: s#77 [#204 '*']: s#64 [#204 '-']: s#61 [#204 'array']: s#81 [#204 'atomic']: s#95 [#204 'bitcast']: s#71 [#204 'bool']: s#88 [#204 'f16']: s#90 [#204 'f32']: s#89 [#204 'false']: s#87 [#204 'i32']: s#91 [#204 'mat2x2']: s#100 [#204 'mat2x3']: s#101 [#204 'mat2x4']: s#102 [#204 'mat3x2']: s#103 [#204 'mat3x3']: s#104 [#204 'mat3x4']: s#105 [#204 'mat4x2']: s#106 [#204 'mat4x3']: s#107 [#204 'mat4x4']: s#108 [#204 'ptr']: s#93 [#204 'sampler']: s#125 [#204 'sampler_comparison']: s#126 [#204 'texture_1d']: s#132 [#204 'texture_2d']: s#133 [#204 'texture_2d_array']: s#134 [#204 'texture_3d']: s#135 [#204 'texture_cube']: s#136 [#204 'texture_cube_array']: s#137 [#204 'texture_depth_2d']: s#127 [#204 'texture_depth_2d_array']: s#128 [#204 'texture_depth_cube']: s#129 [#204 'texture_depth_cube_array']: s#130 [#204 'texture_depth_multisampled_2d']: s#131 [#204 'texture_multisampled_2d']: s#138 [#204 'texture_storage_1d']: s#139 [#204 'texture_storage_2d']: s#140 [#204 'texture_storage_2d_array']: s#141 [#204 'texture_storage_3d']: s#142 [#204 'true']: s#86 [#204 'u32']: s#92 [#204 'vec2']: s#97 [#204 'vec3']: s#98 [#204 'vec4']: s#99 [#204 '~']: s#63 [#204 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#204 /0[fh]/]: s#112 [#204 /0[iu]?/]: s#109 [#204 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#204 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#204 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#204 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#204 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#204 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#204 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#204 /[1-9][0-9]*[fh]/]: s#113 [#204 /[1-9][0-9]*[iu]?/]: s#110 [#205 '!']: s#62 [#205 '&']: s#65 [#205 '(']: s#77 [#205 '*']: s#64 [#205 '-']: s#61 [#205 'array']: s#81 [#205 'atomic']: s#95 [#205 'bitcast']: s#71 [#205 'bool']: s#88 [#205 'f16']: s#90 [#205 'f32']: s#89 [#205 'false']: s#87 [#205 'i32']: s#91 [#205 'mat2x2']: s#100 [#205 'mat2x3']: s#101 [#205 'mat2x4']: s#102 [#205 'mat3x2']: s#103 [#205 'mat3x3']: s#104 [#205 'mat3x4']: s#105 [#205 'mat4x2']: s#106 [#205 'mat4x3']: s#107 [#205 'mat4x4']: s#108 [#205 'ptr']: s#93 [#205 'sampler']: s#125 [#205 'sampler_comparison']: s#126 [#205 'texture_1d']: s#132 [#205 'texture_2d']: s#133 [#205 'texture_2d_array']: s#134 [#205 'texture_3d']: s#135 [#205 'texture_cube']: s#136 [#205 'texture_cube_array']: s#137 [#205 'texture_depth_2d']: s#127 [#205 'texture_depth_2d_array']: s#128 [#205 'texture_depth_cube']: s#129 [#205 'texture_depth_cube_array']: s#130 [#205 'texture_depth_multisampled_2d']: s#131 [#205 'texture_multisampled_2d']: s#138 [#205 'texture_storage_1d']: s#139 [#205 'texture_storage_2d']: s#140 [#205 'texture_storage_2d_array']: s#141 [#205 'texture_storage_3d']: s#142 [#205 'true']: s#86 [#205 'u32']: s#92 [#205 'vec2']: s#97 [#205 'vec3']: s#98 [#205 'vec4']: s#99 [#205 '~']: s#63 [#205 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#205 /0[fh]/]: s#112 [#205 /0[iu]?/]: s#109 [#205 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#205 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#205 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#205 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#205 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#205 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#205 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#205 /[1-9][0-9]*[fh]/]: s#113 [#205 /[1-9][0-9]*[iu]?/]: s#110 [#206 '!']: s#62 [#206 '&']: s#65 [#206 '(']: s#77 [#206 '*']: s#64 [#206 '-']: s#61 [#206 'array']: s#81 [#206 'atomic']: s#95 [#206 'bitcast']: s#71 [#206 'bool']: s#88 [#206 'f16']: s#90 [#206 'f32']: s#89 [#206 'false']: s#87 [#206 'i32']: s#91 [#206 'mat2x2']: s#100 [#206 'mat2x3']: s#101 [#206 'mat2x4']: s#102 [#206 'mat3x2']: s#103 [#206 'mat3x3']: s#104 [#206 'mat3x4']: s#105 [#206 'mat4x2']: s#106 [#206 'mat4x3']: s#107 [#206 'mat4x4']: s#108 [#206 'ptr']: s#93 [#206 'sampler']: s#125 [#206 'sampler_comparison']: s#126 [#206 'texture_1d']: s#132 [#206 'texture_2d']: s#133 [#206 'texture_2d_array']: s#134 [#206 'texture_3d']: s#135 [#206 'texture_cube']: s#136 [#206 'texture_cube_array']: s#137 [#206 'texture_depth_2d']: s#127 [#206 'texture_depth_2d_array']: s#128 [#206 'texture_depth_cube']: s#129 [#206 'texture_depth_cube_array']: s#130 [#206 'texture_depth_multisampled_2d']: s#131 [#206 'texture_multisampled_2d']: s#138 [#206 'texture_storage_1d']: s#139 [#206 'texture_storage_2d']: s#140 [#206 'texture_storage_2d_array']: s#141 [#206 'texture_storage_3d']: s#142 [#206 'true']: s#86 [#206 'u32']: s#92 [#206 'vec2']: s#97 [#206 'vec3']: s#98 [#206 'vec4']: s#99 [#206 '~']: s#63 [#206 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#206 /0[fh]/]: s#112 [#206 /0[iu]?/]: s#109 [#206 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#206 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#206 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#206 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#206 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#206 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#206 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#206 /[1-9][0-9]*[fh]/]: s#113 [#206 /[1-9][0-9]*[iu]?/]: s#110 [#207 '!']: s#62 [#207 '&']: s#65 [#207 '(']: s#77 [#207 '*']: s#64 [#207 '-']: s#61 [#207 'array']: s#81 [#207 'atomic']: s#95 [#207 'bitcast']: s#71 [#207 'bool']: s#88 [#207 'f16']: s#90 [#207 'f32']: s#89 [#207 'false']: s#87 [#207 'i32']: s#91 [#207 'mat2x2']: s#100 [#207 'mat2x3']: s#101 [#207 'mat2x4']: s#102 [#207 'mat3x2']: s#103 [#207 'mat3x3']: s#104 [#207 'mat3x4']: s#105 [#207 'mat4x2']: s#106 [#207 'mat4x3']: s#107 [#207 'mat4x4']: s#108 [#207 'ptr']: s#93 [#207 'sampler']: s#125 [#207 'sampler_comparison']: s#126 [#207 'texture_1d']: s#132 [#207 'texture_2d']: s#133 [#207 'texture_2d_array']: s#134 [#207 'texture_3d']: s#135 [#207 'texture_cube']: s#136 [#207 'texture_cube_array']: s#137 [#207 'texture_depth_2d']: s#127 [#207 'texture_depth_2d_array']: s#128 [#207 'texture_depth_cube']: s#129 [#207 'texture_depth_cube_array']: s#130 [#207 'texture_depth_multisampled_2d']: s#131 [#207 'texture_multisampled_2d']: s#138 [#207 'texture_storage_1d']: s#139 [#207 'texture_storage_2d']: s#140 [#207 'texture_storage_2d_array']: s#141 [#207 'texture_storage_3d']: s#142 [#207 'true']: s#86 [#207 'u32']: s#92 [#207 'vec2']: s#97 [#207 'vec3']: s#98 [#207 'vec4']: s#99 [#207 '~']: s#63 [#207 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#207 /0[fh]/]: s#112 [#207 /0[iu]?/]: s#109 [#207 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#207 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#207 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#207 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#207 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#207 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#207 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#207 /[1-9][0-9]*[fh]/]: s#113 [#207 /[1-9][0-9]*[iu]?/]: s#110 [#208 '!']: s#62 [#208 '&']: s#65 [#208 '(']: s#77 [#208 '*']: s#64 [#208 '-']: s#61 [#208 'array']: s#81 [#208 'atomic']: s#95 [#208 'bitcast']: s#71 [#208 'bool']: s#88 [#208 'f16']: s#90 [#208 'f32']: s#89 [#208 'false']: s#87 [#208 'i32']: s#91 [#208 'mat2x2']: s#100 [#208 'mat2x3']: s#101 [#208 'mat2x4']: s#102 [#208 'mat3x2']: s#103 [#208 'mat3x3']: s#104 [#208 'mat3x4']: s#105 [#208 'mat4x2']: s#106 [#208 'mat4x3']: s#107 [#208 'mat4x4']: s#108 [#208 'ptr']: s#93 [#208 'sampler']: s#125 [#208 'sampler_comparison']: s#126 [#208 'texture_1d']: s#132 [#208 'texture_2d']: s#133 [#208 'texture_2d_array']: s#134 [#208 'texture_3d']: s#135 [#208 'texture_cube']: s#136 [#208 'texture_cube_array']: s#137 [#208 'texture_depth_2d']: s#127 [#208 'texture_depth_2d_array']: s#128 [#208 'texture_depth_cube']: s#129 [#208 'texture_depth_cube_array']: s#130 [#208 'texture_depth_multisampled_2d']: s#131 [#208 'texture_multisampled_2d']: s#138 [#208 'texture_storage_1d']: s#139 [#208 'texture_storage_2d']: s#140 [#208 'texture_storage_2d_array']: s#141 [#208 'texture_storage_3d']: s#142 [#208 'true']: s#86 [#208 'u32']: s#92 [#208 'vec2']: s#97 [#208 'vec3']: s#98 [#208 'vec4']: s#99 [#208 '~']: s#63 [#208 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#208 /0[fh]/]: s#112 [#208 /0[iu]?/]: s#109 [#208 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#208 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#208 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#208 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#208 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#208 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#208 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#208 /[1-9][0-9]*[fh]/]: s#113 [#208 /[1-9][0-9]*[iu]?/]: s#110 [#209 '!']: s#62 [#209 '&']: s#65 [#209 '(']: s#77 [#209 '*']: s#64 [#209 '-']: s#61 [#209 'array']: s#81 [#209 'atomic']: s#95 [#209 'bitcast']: s#71 [#209 'bool']: s#88 [#209 'f16']: s#90 [#209 'f32']: s#89 [#209 'false']: s#87 [#209 'i32']: s#91 [#209 'mat2x2']: s#100 [#209 'mat2x3']: s#101 [#209 'mat2x4']: s#102 [#209 'mat3x2']: s#103 [#209 'mat3x3']: s#104 [#209 'mat3x4']: s#105 [#209 'mat4x2']: s#106 [#209 'mat4x3']: s#107 [#209 'mat4x4']: s#108 [#209 'ptr']: s#93 [#209 'sampler']: s#125 [#209 'sampler_comparison']: s#126 [#209 'texture_1d']: s#132 [#209 'texture_2d']: s#133 [#209 'texture_2d_array']: s#134 [#209 'texture_3d']: s#135 [#209 'texture_cube']: s#136 [#209 'texture_cube_array']: s#137 [#209 'texture_depth_2d']: s#127 [#209 'texture_depth_2d_array']: s#128 [#209 'texture_depth_cube']: s#129 [#209 'texture_depth_cube_array']: s#130 [#209 'texture_depth_multisampled_2d']: s#131 [#209 'texture_multisampled_2d']: s#138 [#209 'texture_storage_1d']: s#139 [#209 'texture_storage_2d']: s#140 [#209 'texture_storage_2d_array']: s#141 [#209 'texture_storage_3d']: s#142 [#209 'true']: s#86 [#209 'u32']: s#92 [#209 'vec2']: s#97 [#209 'vec3']: s#98 [#209 'vec4']: s#99 [#209 '~']: s#63 [#209 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#209 /0[fh]/]: s#112 [#209 /0[iu]?/]: s#109 [#209 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#209 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#209 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#209 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#209 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#209 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#209 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#209 /[1-9][0-9]*[fh]/]: s#113 [#209 /[1-9][0-9]*[iu]?/]: s#110 [#210 '!']: s#62 [#210 '&']: s#65 [#210 '(']: s#77 [#210 '*']: s#64 [#210 '-']: s#61 [#210 'array']: s#81 [#210 'atomic']: s#95 [#210 'bitcast']: s#71 [#210 'bool']: s#88 [#210 'f16']: s#90 [#210 'f32']: s#89 [#210 'false']: s#87 [#210 'i32']: s#91 [#210 'mat2x2']: s#100 [#210 'mat2x3']: s#101 [#210 'mat2x4']: s#102 [#210 'mat3x2']: s#103 [#210 'mat3x3']: s#104 [#210 'mat3x4']: s#105 [#210 'mat4x2']: s#106 [#210 'mat4x3']: s#107 [#210 'mat4x4']: s#108 [#210 'ptr']: s#93 [#210 'sampler']: s#125 [#210 'sampler_comparison']: s#126 [#210 'texture_1d']: s#132 [#210 'texture_2d']: s#133 [#210 'texture_2d_array']: s#134 [#210 'texture_3d']: s#135 [#210 'texture_cube']: s#136 [#210 'texture_cube_array']: s#137 [#210 'texture_depth_2d']: s#127 [#210 'texture_depth_2d_array']: s#128 [#210 'texture_depth_cube']: s#129 [#210 'texture_depth_cube_array']: s#130 [#210 'texture_depth_multisampled_2d']: s#131 [#210 'texture_multisampled_2d']: s#138 [#210 'texture_storage_1d']: s#139 [#210 'texture_storage_2d']: s#140 [#210 'texture_storage_2d_array']: s#141 [#210 'texture_storage_3d']: s#142 [#210 'true']: s#86 [#210 'u32']: s#92 [#210 'vec2']: s#97 [#210 'vec3']: s#98 [#210 'vec4']: s#99 [#210 '~']: s#63 [#210 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#210 /0[fh]/]: s#112 [#210 /0[iu]?/]: s#109 [#210 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#210 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#210 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#210 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#210 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#210 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#210 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#210 /[1-9][0-9]*[fh]/]: s#113 [#210 /[1-9][0-9]*[iu]?/]: s#110 [#211 '!']: s#62 [#211 '&']: s#65 [#211 '(']: s#77 [#211 '*']: s#64 [#211 '-']: s#61 [#211 'array']: s#81 [#211 'atomic']: s#95 [#211 'bitcast']: s#71 [#211 'bool']: s#88 [#211 'f16']: s#90 [#211 'f32']: s#89 [#211 'false']: s#87 [#211 'i32']: s#91 [#211 'mat2x2']: s#100 [#211 'mat2x3']: s#101 [#211 'mat2x4']: s#102 [#211 'mat3x2']: s#103 [#211 'mat3x3']: s#104 [#211 'mat3x4']: s#105 [#211 'mat4x2']: s#106 [#211 'mat4x3']: s#107 [#211 'mat4x4']: s#108 [#211 'ptr']: s#93 [#211 'sampler']: s#125 [#211 'sampler_comparison']: s#126 [#211 'texture_1d']: s#132 [#211 'texture_2d']: s#133 [#211 'texture_2d_array']: s#134 [#211 'texture_3d']: s#135 [#211 'texture_cube']: s#136 [#211 'texture_cube_array']: s#137 [#211 'texture_depth_2d']: s#127 [#211 'texture_depth_2d_array']: s#128 [#211 'texture_depth_cube']: s#129 [#211 'texture_depth_cube_array']: s#130 [#211 'texture_depth_multisampled_2d']: s#131 [#211 'texture_multisampled_2d']: s#138 [#211 'texture_storage_1d']: s#139 [#211 'texture_storage_2d']: s#140 [#211 'texture_storage_2d_array']: s#141 [#211 'texture_storage_3d']: s#142 [#211 'true']: s#86 [#211 'u32']: s#92 [#211 'vec2']: s#97 [#211 'vec3']: s#98 [#211 'vec4']: s#99 [#211 '~']: s#63 [#211 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#211 /0[fh]/]: s#112 [#211 /0[iu]?/]: s#109 [#211 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#211 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#211 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#211 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#211 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#211 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#211 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#211 /[1-9][0-9]*[fh]/]: s#113 [#211 /[1-9][0-9]*[iu]?/]: s#110 [#212 '!']: s#62 [#212 '&']: s#65 [#212 '(']: s#77 [#212 '*']: s#64 [#212 '-']: s#61 [#212 'array']: s#81 [#212 'atomic']: s#95 [#212 'bitcast']: s#71 [#212 'bool']: s#88 [#212 'f16']: s#90 [#212 'f32']: s#89 [#212 'false']: s#87 [#212 'i32']: s#91 [#212 'mat2x2']: s#100 [#212 'mat2x3']: s#101 [#212 'mat2x4']: s#102 [#212 'mat3x2']: s#103 [#212 'mat3x3']: s#104 [#212 'mat3x4']: s#105 [#212 'mat4x2']: s#106 [#212 'mat4x3']: s#107 [#212 'mat4x4']: s#108 [#212 'ptr']: s#93 [#212 'sampler']: s#125 [#212 'sampler_comparison']: s#126 [#212 'texture_1d']: s#132 [#212 'texture_2d']: s#133 [#212 'texture_2d_array']: s#134 [#212 'texture_3d']: s#135 [#212 'texture_cube']: s#136 [#212 'texture_cube_array']: s#137 [#212 'texture_depth_2d']: s#127 [#212 'texture_depth_2d_array']: s#128 [#212 'texture_depth_cube']: s#129 [#212 'texture_depth_cube_array']: s#130 [#212 'texture_depth_multisampled_2d']: s#131 [#212 'texture_multisampled_2d']: s#138 [#212 'texture_storage_1d']: s#139 [#212 'texture_storage_2d']: s#140 [#212 'texture_storage_2d_array']: s#141 [#212 'texture_storage_3d']: s#142 [#212 'true']: s#86 [#212 'u32']: s#92 [#212 'vec2']: s#97 [#212 'vec3']: s#98 [#212 'vec4']: s#99 [#212 '~']: s#63 [#212 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#212 /0[fh]/]: s#112 [#212 /0[iu]?/]: s#109 [#212 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#212 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#212 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#212 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#212 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#212 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#212 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#212 /[1-9][0-9]*[fh]/]: s#113 [#212 /[1-9][0-9]*[iu]?/]: s#110 [#213 '!']: s#62 [#213 '&']: s#65 [#213 '(']: s#77 [#213 '*']: s#64 [#213 '-']: s#61 [#213 'array']: s#81 [#213 'atomic']: s#95 [#213 'bitcast']: s#71 [#213 'bool']: s#88 [#213 'f16']: s#90 [#213 'f32']: s#89 [#213 'false']: s#87 [#213 'i32']: s#91 [#213 'mat2x2']: s#100 [#213 'mat2x3']: s#101 [#213 'mat2x4']: s#102 [#213 'mat3x2']: s#103 [#213 'mat3x3']: s#104 [#213 'mat3x4']: s#105 [#213 'mat4x2']: s#106 [#213 'mat4x3']: s#107 [#213 'mat4x4']: s#108 [#213 'ptr']: s#93 [#213 'sampler']: s#125 [#213 'sampler_comparison']: s#126 [#213 'texture_1d']: s#132 [#213 'texture_2d']: s#133 [#213 'texture_2d_array']: s#134 [#213 'texture_3d']: s#135 [#213 'texture_cube']: s#136 [#213 'texture_cube_array']: s#137 [#213 'texture_depth_2d']: s#127 [#213 'texture_depth_2d_array']: s#128 [#213 'texture_depth_cube']: s#129 [#213 'texture_depth_cube_array']: s#130 [#213 'texture_depth_multisampled_2d']: s#131 [#213 'texture_multisampled_2d']: s#138 [#213 'texture_storage_1d']: s#139 [#213 'texture_storage_2d']: s#140 [#213 'texture_storage_2d_array']: s#141 [#213 'texture_storage_3d']: s#142 [#213 'true']: s#86 [#213 'u32']: s#92 [#213 'vec2']: s#97 [#213 'vec3']: s#98 [#213 'vec4']: s#99 [#213 '~']: s#63 [#213 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#213 /0[fh]/]: s#112 [#213 /0[iu]?/]: s#109 [#213 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#213 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#213 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#213 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#213 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#213 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#213 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#213 /[1-9][0-9]*[fh]/]: s#113 [#213 /[1-9][0-9]*[iu]?/]: s#110 [#214 '!']: s#62 [#214 '&']: s#65 [#214 '(']: s#77 [#214 '*']: s#64 [#214 '-']: s#61 [#214 'array']: s#81 [#214 'atomic']: s#95 [#214 'bitcast']: s#71 [#214 'bool']: s#88 [#214 'f16']: s#90 [#214 'f32']: s#89 [#214 'false']: s#87 [#214 'i32']: s#91 [#214 'mat2x2']: s#100 [#214 'mat2x3']: s#101 [#214 'mat2x4']: s#102 [#214 'mat3x2']: s#103 [#214 'mat3x3']: s#104 [#214 'mat3x4']: s#105 [#214 'mat4x2']: s#106 [#214 'mat4x3']: s#107 [#214 'mat4x4']: s#108 [#214 'ptr']: s#93 [#214 'sampler']: s#125 [#214 'sampler_comparison']: s#126 [#214 'texture_1d']: s#132 [#214 'texture_2d']: s#133 [#214 'texture_2d_array']: s#134 [#214 'texture_3d']: s#135 [#214 'texture_cube']: s#136 [#214 'texture_cube_array']: s#137 [#214 'texture_depth_2d']: s#127 [#214 'texture_depth_2d_array']: s#128 [#214 'texture_depth_cube']: s#129 [#214 'texture_depth_cube_array']: s#130 [#214 'texture_depth_multisampled_2d']: s#131 [#214 'texture_multisampled_2d']: s#138 [#214 'texture_storage_1d']: s#139 [#214 'texture_storage_2d']: s#140 [#214 'texture_storage_2d_array']: s#141 [#214 'texture_storage_3d']: s#142 [#214 'true']: s#86 [#214 'u32']: s#92 [#214 'vec2']: s#97 [#214 'vec3']: s#98 [#214 'vec4']: s#99 [#214 '~']: s#63 [#214 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#214 /0[fh]/]: s#112 [#214 /0[iu]?/]: s#109 [#214 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#214 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#214 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#214 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#214 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#214 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#214 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#214 /[1-9][0-9]*[fh]/]: s#113 [#214 /[1-9][0-9]*[iu]?/]: s#110 [#215 '!']: s#62 [#215 '&']: s#65 [#215 '(']: s#77 [#215 '*']: s#64 [#215 '-']: s#61 [#215 'array']: s#81 [#215 'atomic']: s#95 [#215 'bitcast']: s#71 [#215 'bool']: s#88 [#215 'f16']: s#90 [#215 'f32']: s#89 [#215 'false']: s#87 [#215 'i32']: s#91 [#215 'mat2x2']: s#100 [#215 'mat2x3']: s#101 [#215 'mat2x4']: s#102 [#215 'mat3x2']: s#103 [#215 'mat3x3']: s#104 [#215 'mat3x4']: s#105 [#215 'mat4x2']: s#106 [#215 'mat4x3']: s#107 [#215 'mat4x4']: s#108 [#215 'ptr']: s#93 [#215 'sampler']: s#125 [#215 'sampler_comparison']: s#126 [#215 'texture_1d']: s#132 [#215 'texture_2d']: s#133 [#215 'texture_2d_array']: s#134 [#215 'texture_3d']: s#135 [#215 'texture_cube']: s#136 [#215 'texture_cube_array']: s#137 [#215 'texture_depth_2d']: s#127 [#215 'texture_depth_2d_array']: s#128 [#215 'texture_depth_cube']: s#129 [#215 'texture_depth_cube_array']: s#130 [#215 'texture_depth_multisampled_2d']: s#131 [#215 'texture_multisampled_2d']: s#138 [#215 'texture_storage_1d']: s#139 [#215 'texture_storage_2d']: s#140 [#215 'texture_storage_2d_array']: s#141 [#215 'texture_storage_3d']: s#142 [#215 'true']: s#86 [#215 'u32']: s#92 [#215 'vec2']: s#97 [#215 'vec3']: s#98 [#215 'vec4']: s#99 [#215 '~']: s#63 [#215 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#215 /0[fh]/]: s#112 [#215 /0[iu]?/]: s#109 [#215 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#215 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#215 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#215 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#215 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#215 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#215 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#215 /[1-9][0-9]*[fh]/]: s#113 [#215 /[1-9][0-9]*[iu]?/]: s#110 [#216 '!']: s#62 [#216 '&']: s#65 [#216 '(']: s#77 [#216 '*']: s#64 [#216 '-']: s#61 [#216 'array']: s#81 [#216 'atomic']: s#95 [#216 'bitcast']: s#71 [#216 'bool']: s#88 [#216 'f16']: s#90 [#216 'f32']: s#89 [#216 'false']: s#87 [#216 'i32']: s#91 [#216 'mat2x2']: s#100 [#216 'mat2x3']: s#101 [#216 'mat2x4']: s#102 [#216 'mat3x2']: s#103 [#216 'mat3x3']: s#104 [#216 'mat3x4']: s#105 [#216 'mat4x2']: s#106 [#216 'mat4x3']: s#107 [#216 'mat4x4']: s#108 [#216 'ptr']: s#93 [#216 'sampler']: s#125 [#216 'sampler_comparison']: s#126 [#216 'texture_1d']: s#132 [#216 'texture_2d']: s#133 [#216 'texture_2d_array']: s#134 [#216 'texture_3d']: s#135 [#216 'texture_cube']: s#136 [#216 'texture_cube_array']: s#137 [#216 'texture_depth_2d']: s#127 [#216 'texture_depth_2d_array']: s#128 [#216 'texture_depth_cube']: s#129 [#216 'texture_depth_cube_array']: s#130 [#216 'texture_depth_multisampled_2d']: s#131 [#216 'texture_multisampled_2d']: s#138 [#216 'texture_storage_1d']: s#139 [#216 'texture_storage_2d']: s#140 [#216 'texture_storage_2d_array']: s#141 [#216 'texture_storage_3d']: s#142 [#216 'true']: s#86 [#216 'u32']: s#92 [#216 'vec2']: s#97 [#216 'vec3']: s#98 [#216 'vec4']: s#99 [#216 '~']: s#63 [#216 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#216 /0[fh]/]: s#112 [#216 /0[iu]?/]: s#109 [#216 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#216 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#216 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#216 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#216 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#216 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#216 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#216 /[1-9][0-9]*[fh]/]: s#113 [#216 /[1-9][0-9]*[iu]?/]: s#110 [#217 'flat']: s#243 [#217 'linear']: s#242 [#217 'perspective']: s#241 [#218 '!']: s#62 [#218 '&']: s#65 [#218 '(']: s#77 [#218 '*']: s#64 [#218 '-']: s#61 [#218 'array']: s#81 [#218 'atomic']: s#95 [#218 'bitcast']: s#71 [#218 'bool']: s#88 [#218 'f16']: s#90 [#218 'f32']: s#89 [#218 'false']: s#87 [#218 'i32']: s#91 [#218 'mat2x2']: s#100 [#218 'mat2x3']: s#101 [#218 'mat2x4']: s#102 [#218 'mat3x2']: s#103 [#218 'mat3x3']: s#104 [#218 'mat3x4']: s#105 [#218 'mat4x2']: s#106 [#218 'mat4x3']: s#107 [#218 'mat4x4']: s#108 [#218 'ptr']: s#93 [#218 'sampler']: s#125 [#218 'sampler_comparison']: s#126 [#218 'texture_1d']: s#132 [#218 'texture_2d']: s#133 [#218 'texture_2d_array']: s#134 [#218 'texture_3d']: s#135 [#218 'texture_cube']: s#136 [#218 'texture_cube_array']: s#137 [#218 'texture_depth_2d']: s#127 [#218 'texture_depth_2d_array']: s#128 [#218 'texture_depth_cube']: s#129 [#218 'texture_depth_cube_array']: s#130 [#218 'texture_depth_multisampled_2d']: s#131 [#218 'texture_multisampled_2d']: s#138 [#218 'texture_storage_1d']: s#139 [#218 'texture_storage_2d']: s#140 [#218 'texture_storage_2d_array']: s#141 [#218 'texture_storage_3d']: s#142 [#218 'true']: s#86 [#218 'u32']: s#92 [#218 'vec2']: s#97 [#218 'vec3']: s#98 [#218 'vec4']: s#99 [#218 '~']: s#63 [#218 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#218 /0[fh]/]: s#112 [#218 /0[iu]?/]: s#109 [#218 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#218 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#218 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#218 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#218 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#218 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#218 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#218 /[1-9][0-9]*[fh]/]: s#113 [#218 /[1-9][0-9]*[iu]?/]: s#110 [#219 '!']: s#62 [#219 '&']: s#65 [#219 '(']: s#77 [#219 '*']: s#64 [#219 '-']: s#61 [#219 'array']: s#81 [#219 'atomic']: s#95 [#219 'bitcast']: s#71 [#219 'bool']: s#88 [#219 'f16']: s#90 [#219 'f32']: s#89 [#219 'false']: s#87 [#219 'i32']: s#91 [#219 'mat2x2']: s#100 [#219 'mat2x3']: s#101 [#219 'mat2x4']: s#102 [#219 'mat3x2']: s#103 [#219 'mat3x3']: s#104 [#219 'mat3x4']: s#105 [#219 'mat4x2']: s#106 [#219 'mat4x3']: s#107 [#219 'mat4x4']: s#108 [#219 'ptr']: s#93 [#219 'sampler']: s#125 [#219 'sampler_comparison']: s#126 [#219 'texture_1d']: s#132 [#219 'texture_2d']: s#133 [#219 'texture_2d_array']: s#134 [#219 'texture_3d']: s#135 [#219 'texture_cube']: s#136 [#219 'texture_cube_array']: s#137 [#219 'texture_depth_2d']: s#127 [#219 'texture_depth_2d_array']: s#128 [#219 'texture_depth_cube']: s#129 [#219 'texture_depth_cube_array']: s#130 [#219 'texture_depth_multisampled_2d']: s#131 [#219 'texture_multisampled_2d']: s#138 [#219 'texture_storage_1d']: s#139 [#219 'texture_storage_2d']: s#140 [#219 'texture_storage_2d_array']: s#141 [#219 'texture_storage_3d']: s#142 [#219 'true']: s#86 [#219 'u32']: s#92 [#219 'vec2']: s#97 [#219 'vec3']: s#98 [#219 'vec4']: s#99 [#219 '~']: s#63 [#219 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#219 /0[fh]/]: s#112 [#219 /0[iu]?/]: s#109 [#219 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#219 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#219 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#219 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#219 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#219 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#219 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#219 /[1-9][0-9]*[fh]/]: s#113 [#219 /[1-9][0-9]*[iu]?/]: s#110 [#220 'frag_depth']: s#230 [#220 'front_facing']: s#229 [#220 'global_invocation_id']: s#233 [#220 'instance_index']: s#227 [#220 'local_invocation_id']: s#231 [#220 'local_invocation_index']: s#232 [#220 'num_workgroups']: s#235 [#220 'position']: s#228 [#220 'sample_index']: s#236 [#220 'sample_mask']: s#237 [#220 'vertex_index']: s#226 [#220 'workgroup_id']: s#234 [#221 '!']: s#62 [#221 '&']: s#65 [#221 '(']: s#77 [#221 '*']: s#64 [#221 '-']: s#61 [#221 'array']: s#81 [#221 'atomic']: s#95 [#221 'bitcast']: s#71 [#221 'bool']: s#88 [#221 'f16']: s#90 [#221 'f32']: s#89 [#221 'false']: s#87 [#221 'i32']: s#91 [#221 'mat2x2']: s#100 [#221 'mat2x3']: s#101 [#221 'mat2x4']: s#102 [#221 'mat3x2']: s#103 [#221 'mat3x3']: s#104 [#221 'mat3x4']: s#105 [#221 'mat4x2']: s#106 [#221 'mat4x3']: s#107 [#221 'mat4x4']: s#108 [#221 'ptr']: s#93 [#221 'sampler']: s#125 [#221 'sampler_comparison']: s#126 [#221 'texture_1d']: s#132 [#221 'texture_2d']: s#133 [#221 'texture_2d_array']: s#134 [#221 'texture_3d']: s#135 [#221 'texture_cube']: s#136 [#221 'texture_cube_array']: s#137 [#221 'texture_depth_2d']: s#127 [#221 'texture_depth_2d_array']: s#128 [#221 'texture_depth_cube']: s#129 [#221 'texture_depth_cube_array']: s#130 [#221 'texture_depth_multisampled_2d']: s#131 [#221 'texture_multisampled_2d']: s#138 [#221 'texture_storage_1d']: s#139 [#221 'texture_storage_2d']: s#140 [#221 'texture_storage_2d_array']: s#141 [#221 'texture_storage_3d']: s#142 [#221 'true']: s#86 [#221 'u32']: s#92 [#221 'vec2']: s#97 [#221 'vec3']: s#98 [#221 'vec4']: s#99 [#221 '~']: s#63 [#221 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#221 /0[fh]/]: s#112 [#221 /0[iu]?/]: s#109 [#221 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#221 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#221 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#221 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#221 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#221 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#221 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#221 /[1-9][0-9]*[fh]/]: s#113 [#221 /[1-9][0-9]*[iu]?/]: s#110 [#222 '!']: s#62 [#222 '&']: s#65 [#222 '(']: s#77 [#222 '*']: s#64 [#222 '-']: s#61 [#222 'array']: s#81 [#222 'atomic']: s#95 [#222 'bitcast']: s#71 [#222 'bool']: s#88 [#222 'f16']: s#90 [#222 'f32']: s#89 [#222 'false']: s#87 [#222 'i32']: s#91 [#222 'mat2x2']: s#100 [#222 'mat2x3']: s#101 [#222 'mat2x4']: s#102 [#222 'mat3x2']: s#103 [#222 'mat3x3']: s#104 [#222 'mat3x4']: s#105 [#222 'mat4x2']: s#106 [#222 'mat4x3']: s#107 [#222 'mat4x4']: s#108 [#222 'ptr']: s#93 [#222 'sampler']: s#125 [#222 'sampler_comparison']: s#126 [#222 'texture_1d']: s#132 [#222 'texture_2d']: s#133 [#222 'texture_2d_array']: s#134 [#222 'texture_3d']: s#135 [#222 'texture_cube']: s#136 [#222 'texture_cube_array']: s#137 [#222 'texture_depth_2d']: s#127 [#222 'texture_depth_2d_array']: s#128 [#222 'texture_depth_cube']: s#129 [#222 'texture_depth_cube_array']: s#130 [#222 'texture_depth_multisampled_2d']: s#131 [#222 'texture_multisampled_2d']: s#138 [#222 'texture_storage_1d']: s#139 [#222 'texture_storage_2d']: s#140 [#222 'texture_storage_2d_array']: s#141 [#222 'texture_storage_3d']: s#142 [#222 'true']: s#86 [#222 'u32']: s#92 [#222 'vec2']: s#97 [#222 'vec3']: s#98 [#222 'vec4']: s#99 [#222 '~']: s#63 [#222 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#222 /0[fh]/]: s#112 [#222 /0[iu]?/]: s#109 [#222 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#222 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#222 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#222 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#222 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#222 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#222 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#222 /[1-9][0-9]*[fh]/]: s#113 [#222 /[1-9][0-9]*[iu]?/]: s#110 [#223 ',']: s#456 [#224 ',']: s#456 [#225 ',']: s#456 [#226 ')']: r#125 [#226 ',']: r#125 [#227 ')']: r#126 [#227 ',']: r#126 [#228 ')']: r#127 [#228 ',']: r#127 [#229 ')']: r#128 [#229 ',']: r#128 [#230 ')']: r#129 [#230 ',']: r#129 [#231 ')']: r#130 [#231 ',']: r#130 [#232 ')']: r#131 [#232 ',']: r#131 [#233 ')']: r#132 [#233 ',']: r#132 [#234 ')']: r#133 [#234 ',']: r#133 [#235 ')']: r#134 [#235 ',']: r#134 [#236 ')']: r#135 [#236 ',']: r#135 [#237 ')']: r#136 [#237 ',']: r#136 [#238 ',']: s#456 [#239 ',']: s#456 [#240 ',']: s#459 [#241 ')']: r#137 [#241 ',']: r#137 [#242 ')']: r#138 [#242 ',']: r#138 [#243 ')']: r#139 [#243 ',']: r#139 [#244 ',']: s#456 [#245 ',']: s#456 [#246 ',']: s#453 [#247 ')']: r#140 [#247 ',']: r#140 [#247 ':']: r#140 [#247 ';']: r#140 [#247 ']']: r#140 [#247 '{']: r#140 [#247 '||']: r#141 [#248 '!=']: r#29 [#248 '%']: r#29 [#248 '&&']: r#29 [#248 ')']: r#29 [#248 '*']: r#29 [#248 '+']: r#29 [#248 ',']: r#29 [#248 '-']: r#29 [#248 '/']: r#29 [#248 ':']: r#29 [#248 ';']: r#29 [#248 '<']: r#29 [#248 '<<']: s#198 [#248 '<=']: r#29 [#248 '==']: r#29 [#248 '>']: r#29 [#248 '>=']: r#29 [#248 '>>']: s#199 [#248 ']']: r#29 [#248 '{']: r#29 [#248 '||']: r#29 [#249 '&&']: r#143 [#249 ')']: r#142 [#249 ',']: r#142 [#249 ':']: r#142 [#249 ';']: r#142 [#249 ']']: r#142 [#249 '{']: r#142 [#250 '&&']: r#144 [#250 ')']: r#144 [#250 ',']: r#144 [#250 ':']: r#144 [#250 ';']: r#144 [#250 ']']: r#144 [#250 '{']: r#144 [#250 '||']: r#144 [#251 '&&']: r#145 [#251 ')']: r#145 [#251 ',']: r#145 [#251 ':']: r#145 [#251 ';']: r#145 [#251 ']']: r#145 [#251 '{']: r#145 [#251 '||']: r#145 [#252 '&&']: r#146 [#252 ')']: r#146 [#252 ',']: r#146 [#252 ':']: r#146 [#252 ';']: r#146 [#252 ']']: r#146 [#252 '{']: r#146 [#252 '||']: r#146 [#253 '&&']: r#147 [#253 ')']: r#147 [#253 ',']: r#147 [#253 ':']: r#147 [#253 ';']: r#147 [#253 ']']: r#147 [#253 '{']: r#147 [#253 '||']: r#147 [#254 '&&']: r#148 [#254 ')']: r#148 [#254 ',']: r#148 [#254 ':']: r#148 [#254 ';']: r#148 [#254 ']']: r#148 [#254 '{']: r#148 [#254 '||']: r#148 [#255 '&&']: r#149 [#255 ')']: r#149 [#255 ',']: r#149 [#255 ':']: r#149 [#255 ';']: r#149 [#255 ']']: r#149 [#255 '{']: r#149 [#255 '||']: r#149 [#256 '&']: r#151 [#256 ')']: r#150 [#256 ',']: r#150 [#256 ':']: r#150 [#256 ';']: r#150 [#256 '>']: r#150 [#256 ']']: r#150 [#256 '{']: r#150 [#257 ')']: r#152 [#257 ',']: r#152 [#257 ':']: r#152 [#257 ';']: r#152 [#257 '>']: r#152 [#257 ']']: r#152 [#257 '{']: r#152 [#257 '|']: r#153 [#258 ')']: r#154 [#258 ',']: r#154 [#258 ':']: r#154 [#258 ';']: r#154 [#258 '>']: r#154 [#258 ']']: r#154 [#258 '^']: r#155 [#258 '{']: r#154 [#259 '!=']: r#156 [#259 '%']: s#197 [#259 '&&']: r#156 [#259 ')']: r#156 [#259 '*']: s#195 [#259 '+']: r#156 [#259 ',']: r#156 [#259 '-']: r#156 [#259 '/']: s#196 [#259 ':']: r#156 [#259 ';']: r#156 [#259 '<']: r#156 [#259 '<=']: r#156 [#259 '==']: r#156 [#259 '>']: r#156 [#259 '>=']: r#156 [#259 ']']: r#156 [#259 '{']: r#156 [#259 '||']: r#156 [#260 '!=']: r#29 [#260 '%']: r#29 [#260 '&&']: r#29 [#260 ')']: r#29 [#260 '*']: r#29 [#260 '+']: r#29 [#260 ',']: r#29 [#260 '-']: r#29 [#260 '/']: r#29 [#260 ':']: r#29 [#260 ';']: r#29 [#260 '<']: r#29 [#260 '<=']: r#29 [#260 '==']: r#29 [#260 '>']: r#29 [#260 '>=']: r#29 [#260 ']']: r#29 [#260 '{']: r#29 [#260 '||']: r#29 [#261 '!=']: r#157 [#261 '&&']: r#157 [#261 ')']: r#157 [#261 ',']: r#157 [#261 ':']: r#157 [#261 ';']: r#157 [#261 '<']: r#157 [#261 '<=']: r#157 [#261 '==']: r#157 [#261 '>']: r#157 [#261 '>=']: r#157 [#261 ']']: r#157 [#261 '{']: r#157 [#261 '||']: r#157 [#262 '!=']: r#158 [#262 '&&']: r#158 [#262 ')']: r#158 [#262 ',']: r#158 [#262 ':']: r#158 [#262 ';']: r#158 [#262 '<']: r#158 [#262 '<=']: r#158 [#262 '==']: r#158 [#262 '>']: r#158 [#262 '>=']: r#158 [#262 ']']: r#158 [#262 '{']: r#158 [#262 '||']: r#158 [#263 '!=']: r#159 [#263 '%']: r#159 [#263 '&&']: r#159 [#263 ')']: r#159 [#263 '*']: r#159 [#263 '+']: r#159 [#263 ',']: r#159 [#263 '-']: r#159 [#263 '/']: r#159 [#263 ':']: r#159 [#263 ';']: r#159 [#263 '<']: r#159 [#263 '<=']: r#159 [#263 '==']: r#159 [#263 '>']: r#159 [#263 '>=']: r#159 [#263 ']']: r#159 [#263 '{']: r#159 [#263 '||']: r#159 [#264 '.']: s#188 [#264 '[']: s#187 [#265 '.']: s#188 [#265 '[']: s#187 [#266 '!=']: r#160 [#266 '%']: r#160 [#266 '%=']: r#160 [#266 '&&']: r#160 [#266 '&']: r#160 [#266 '&=']: r#160 [#266 ')']: r#160 [#266 '*']: r#160 [#266 '*=']: r#160 [#266 '+']: r#160 [#266 '++']: r#160 [#266 '+=']: r#160 [#266 ',']: r#160 [#266 '-']: r#160 [#266 '--']: r#160 [#266 '-=']: r#160 [#266 '.']: r#160 [#266 '/']: r#160 [#266 '/=']: r#160 [#266 ':']: r#160 [#266 ';']: r#160 [#266 '<']: r#160 [#266 '<<']: r#160 [#266 '<<=']: r#160 [#266 '<=']: r#160 [#266 '=']: r#160 [#266 '==']: r#160 [#266 '>']: r#160 [#266 '>=']: r#160 [#266 '>>']: r#160 [#266 '>>=']: r#160 [#266 '[']: r#160 [#266 ']']: r#160 [#266 '^']: r#160 [#266 '^=']: r#160 [#266 '{']: r#160 [#266 '|']: r#160 [#266 '|=']: r#160 [#266 '||']: r#160 [#267 '!=']: r#161 [#267 '%']: r#161 [#267 '%=']: r#161 [#267 '&&']: r#161 [#267 '&']: r#161 [#267 '&=']: r#161 [#267 ')']: r#161 [#267 '*']: r#161 [#267 '*=']: r#161 [#267 '+']: r#161 [#267 '++']: r#161 [#267 '+=']: r#161 [#267 ',']: r#161 [#267 '-']: r#161 [#267 '--']: r#161 [#267 '-=']: r#161 [#267 '.']: r#161 [#267 '/']: r#161 [#267 '/=']: r#161 [#267 ':']: r#161 [#267 ';']: r#161 [#267 '<']: r#161 [#267 '<<']: r#161 [#267 '<<=']: r#161 [#267 '<=']: r#161 [#267 '=']: r#161 [#267 '==']: r#161 [#267 '>']: r#161 [#267 '>=']: r#161 [#267 '>>']: r#161 [#267 '>>=']: r#161 [#267 '[']: r#161 [#267 ']']: r#161 [#267 '^']: r#161 [#267 '^=']: r#161 [#267 '{']: r#161 [#267 '|']: r#161 [#267 '|=']: r#161 [#267 '||']: r#161 [#268 '!=']: r#162 [#268 '%']: r#162 [#268 '%=']: r#162 [#268 '&&']: r#162 [#268 '&']: r#162 [#268 '&=']: r#162 [#268 ')']: r#162 [#268 '*']: r#162 [#268 '*=']: r#162 [#268 '+']: r#162 [#268 '++']: r#162 [#268 '+=']: r#162 [#268 ',']: r#162 [#268 '-']: r#162 [#268 '--']: r#162 [#268 '-=']: r#162 [#268 '.']: r#162 [#268 '/']: r#162 [#268 '/=']: r#162 [#268 ':']: r#162 [#268 ';']: r#162 [#268 '<']: r#162 [#268 '<<']: r#162 [#268 '<<=']: r#162 [#268 '<=']: r#162 [#268 '=']: r#162 [#268 '==']: r#162 [#268 '>']: r#162 [#268 '>=']: r#162 [#268 '>>']: r#162 [#268 '>>=']: r#162 [#268 '[']: r#162 [#268 ']']: r#162 [#268 '^']: r#162 [#268 '^=']: r#162 [#268 '{']: r#162 [#268 '|']: r#162 [#268 '|=']: r#162 [#268 '||']: r#162 [#269 '!=']: r#163 [#269 '%']: r#163 [#269 '%=']: r#163 [#269 '&&']: r#163 [#269 '&']: r#163 [#269 '&=']: r#163 [#269 ')']: r#163 [#269 '*']: r#163 [#269 '*=']: r#163 [#269 '+']: r#163 [#269 '++']: r#163 [#269 '+=']: r#163 [#269 ',']: r#163 [#269 '-']: r#163 [#269 '--']: r#163 [#269 '-=']: r#163 [#269 '.']: r#163 [#269 '/']: r#163 [#269 '/=']: r#163 [#269 ':']: r#163 [#269 ';']: r#163 [#269 '<']: r#163 [#269 '<<']: r#163 [#269 '<<=']: r#163 [#269 '<=']: r#163 [#269 '=']: r#163 [#269 '==']: r#163 [#269 '>']: r#163 [#269 '>=']: r#163 [#269 '>>']: r#163 [#269 '>>=']: r#163 [#269 '[']: r#163 [#269 ']']: r#163 [#269 '^']: r#163 [#269 '^=']: r#163 [#269 '{']: r#163 [#269 '|']: r#163 [#269 '|=']: r#163 [#269 '||']: r#163 [#270 '!=']: r#164 [#270 '%']: r#164 [#270 '%=']: r#164 [#270 '&&']: r#164 [#270 '&']: r#164 [#270 '&=']: r#164 [#270 ')']: r#164 [#270 '*']: r#164 [#270 '*=']: r#164 [#270 '+']: r#164 [#270 '++']: r#164 [#270 '+=']: r#164 [#270 ',']: r#164 [#270 '-']: r#164 [#270 '--']: r#164 [#270 '-=']: r#164 [#270 '.']: r#164 [#270 '/']: r#164 [#270 '/=']: r#164 [#270 ':']: r#164 [#270 ';']: r#164 [#270 '<']: r#164 [#270 '<<']: r#164 [#270 '<<=']: r#164 [#270 '<=']: r#164 [#270 '=']: r#164 [#270 '==']: r#164 [#270 '>']: r#164 [#270 '>=']: r#164 [#270 '>>']: r#164 [#270 '>>=']: r#164 [#270 '[']: r#164 [#270 ']']: r#164 [#270 '^']: r#164 [#270 '^=']: r#164 [#270 '{']: r#164 [#270 '|']: r#164 [#270 '|=']: r#164 [#270 '||']: r#164 [#271 '!=']: r#165 [#271 '%']: r#165 [#271 '%=']: r#165 [#271 '&&']: r#165 [#271 '&']: r#165 [#271 '&=']: r#165 [#271 ')']: r#165 [#271 '*']: r#165 [#271 '*=']: r#165 [#271 '+']: r#165 [#271 '++']: r#165 [#271 '+=']: r#165 [#271 ',']: r#165 [#271 '-']: r#165 [#271 '--']: r#165 [#271 '-=']: r#165 [#271 '.']: r#165 [#271 '/']: r#165 [#271 '/=']: r#165 [#271 ':']: r#165 [#271 ';']: r#165 [#271 '<']: r#165 [#271 '<<']: r#165 [#271 '<<=']: r#165 [#271 '<=']: r#165 [#271 '=']: r#165 [#271 '==']: r#165 [#271 '>']: r#165 [#271 '>=']: r#165 [#271 '>>']: r#165 [#271 '>>=']: r#165 [#271 '[']: r#165 [#271 ']']: r#165 [#271 '^']: r#165 [#271 '^=']: r#165 [#271 '{']: r#165 [#271 '|']: r#165 [#271 '|=']: r#165 [#271 '||']: r#165 [#272 '!=']: r#166 [#272 '%']: r#166 [#272 '%=']: r#166 [#272 '&&']: r#166 [#272 '&']: r#166 [#272 '&=']: r#166 [#272 ')']: r#166 [#272 '*']: r#166 [#272 '*=']: r#166 [#272 '+']: r#166 [#272 '++']: r#166 [#272 '+=']: r#166 [#272 ',']: r#166 [#272 '-']: r#166 [#272 '--']: r#166 [#272 '-=']: r#166 [#272 '.']: r#166 [#272 '/']: r#166 [#272 '/=']: r#166 [#272 ':']: r#166 [#272 ';']: r#166 [#272 '<']: r#166 [#272 '<<']: r#166 [#272 '<<=']: r#166 [#272 '<=']: r#166 [#272 '=']: r#166 [#272 '==']: r#166 [#272 '>']: r#166 [#272 '>=']: r#166 [#272 '>>']: r#166 [#272 '>>=']: r#166 [#272 '[']: r#166 [#272 ']']: r#166 [#272 '^']: r#166 [#272 '^=']: r#166 [#272 '{']: r#166 [#272 '|']: r#166 [#272 '|=']: r#166 [#272 '||']: r#166 [#273 '!=']: r#167 [#273 '%']: r#167 [#273 '%=']: r#167 [#273 '&&']: r#167 [#273 '&']: r#167 [#273 '&=']: r#167 [#273 ')']: r#167 [#273 '*']: r#167 [#273 '*=']: r#167 [#273 '+']: r#167 [#273 '++']: r#167 [#273 '+=']: r#167 [#273 ',']: r#167 [#273 '-']: r#167 [#273 '--']: r#167 [#273 '-=']: r#167 [#273 '.']: r#167 [#273 '/']: r#167 [#273 '/=']: r#167 [#273 ':']: r#167 [#273 ';']: r#167 [#273 '<']: r#167 [#273 '<<']: r#167 [#273 '<<=']: r#167 [#273 '<=']: r#167 [#273 '=']: r#167 [#273 '==']: r#167 [#273 '>']: r#167 [#273 '>=']: r#167 [#273 '>>']: r#167 [#273 '>>=']: r#167 [#273 '[']: r#167 [#273 ']']: r#167 [#273 '^']: r#167 [#273 '^=']: r#167 [#273 '{']: r#167 [#273 '|']: r#167 [#273 '|=']: r#167 [#273 '||']: r#167 [#274 '!=']: r#168 [#274 '%']: r#168 [#274 '%=']: r#168 [#274 '&&']: r#168 [#274 '&']: r#168 [#274 '&=']: r#168 [#274 ')']: r#168 [#274 '*']: r#168 [#274 '*=']: r#168 [#274 '+']: r#168 [#274 '++']: r#168 [#274 '+=']: r#168 [#274 ',']: r#168 [#274 '-']: r#168 [#274 '--']: r#168 [#274 '-=']: r#168 [#274 '.']: r#168 [#274 '/']: r#168 [#274 '/=']: r#168 [#274 ':']: r#168 [#274 ';']: r#168 [#274 '<']: r#168 [#274 '<<']: r#168 [#274 '<<=']: r#168 [#274 '<=']: r#168 [#274 '=']: r#168 [#274 '==']: r#168 [#274 '>']: r#168 [#274 '>=']: r#168 [#274 '>>']: r#168 [#274 '>>=']: r#168 [#274 '[']: r#168 [#274 ']']: r#168 [#274 '^']: r#168 [#274 '^=']: r#168 [#274 '{']: r#168 [#274 '|']: r#168 [#274 '|=']: r#168 [#274 '||']: r#168 [#275 ']']: s#447 [#276 '>']: s#446 [#277 ')']: r#169 [#277 ',']: r#169 [#277 ';']: r#169 [#277 '=']: r#169 [#277 '>']: r#169 [#277 '{']: r#169 [#277 '}']: r#169 [#278 ')']: r#170 [#278 ',']: r#170 [#278 ';']: r#170 [#278 '=']: r#170 [#278 '>']: r#170 [#278 '{']: r#170 [#278 '}']: r#170 [#279 '<']: s#180 [#280 '<']: s#179 [#281 '<']: s#178 [#282 ')']: s#445 [#283 ')']: r#171 [#284 ',']: s#444 [#285 '!=']: r#172 [#285 '%']: r#172 [#285 '&&']: r#172 [#285 '&']: r#172 [#285 ')']: r#172 [#285 '*']: r#172 [#285 '+']: r#172 [#285 ',']: r#172 [#285 '-']: r#172 [#285 '.']: r#172 [#285 '/']: r#172 [#285 ':']: r#172 [#285 ';']: r#172 [#285 '<']: r#172 [#285 '<<']: r#172 [#285 '<=']: r#172 [#285 '==']: r#172 [#285 '>']: r#172 [#285 '>=']: r#172 [#285 '>>']: r#172 [#285 '[']: r#172 [#285 ']']: r#172 [#285 '^']: r#172 [#285 '{']: r#172 [#285 '|']: r#172 [#285 '||']: r#172 [#286 '>']: s#440 [#287 '>']: s#439 [#288 ',']: s#438 [#289 ',']: s#436 [#290 ',']: r#173 [#290 '>']: r#173 [#291 ',']: r#174 [#291 '>']: r#174 [#292 ',']: r#175 [#292 '>']: r#175 [#293 ',']: r#176 [#293 '>']: r#176 [#294 ',']: r#177 [#294 '>']: r#177 [#295 '>']: s#435 [#296 '>']: s#434 [#297 '>']: s#433 [#298 ',']: s#432 [#299 ',']: r#178 [#300 ',']: r#179 [#301 ',']: r#180 [#302 ',']: r#181 [#303 ',']: r#182 [#304 ',']: r#183 [#305 ',']: r#184 [#306 ',']: r#185 [#307 ',']: r#186 [#308 ',']: r#187 [#309 ',']: r#188 [#310 ',']: r#189 [#311 ',']: r#190 [#312 ',']: r#191 [#313 ',']: r#192 [#314 ',']: r#193 [#315 ',']: r#194 [#316 '}']: s#431 [#317 '}']: r#195 [#318 '&']: s#355 [#318 '(']: s#356 [#318 '*']: s#354 [#318 ';']: s#319 [#318 '_']: s#352 [#318 'array']: s#81 [#318 'atomic']: s#95 [#318 'bool']: s#88 [#318 'break']: s#344 [#318 'const']: s#343 [#318 'const_assert']: s#25 [#318 'continue']: s#345 [#318 'discard']: s#330 [#318 'f16']: s#90 [#318 'f32']: s#89 [#318 'for']: s#338 [#318 'i32']: s#91 [#318 'if']: s#349 [#318 'let']: s#342 [#318 'loop']: s#337 [#318 'mat2x2']: s#100 [#318 'mat2x3']: s#101 [#318 'mat2x4']: s#102 [#318 'mat3x2']: s#103 [#318 'mat3x3']: s#104 [#318 'mat3x4']: s#105 [#318 'mat4x2']: s#106 [#318 'mat4x3']: s#107 [#318 'mat4x4']: s#108 [#318 'ptr']: s#93 [#318 'return']: s#334 [#318 'sampler']: s#125 [#318 'sampler_comparison']: s#126 [#318 'switch']: s#336 [#318 'texture_1d']: s#132 [#318 'texture_2d']: s#133 [#318 'texture_2d_array']: s#134 [#318 'texture_3d']: s#135 [#318 'texture_cube']: s#136 [#318 'texture_cube_array']: s#137 [#318 'texture_depth_2d']: s#127 [#318 'texture_depth_2d_array']: s#128 [#318 'texture_depth_cube']: s#129 [#318 'texture_depth_cube_array']: s#130 [#318 'texture_depth_multisampled_2d']: s#131 [#318 'texture_multisampled_2d']: s#138 [#318 'texture_storage_1d']: s#139 [#318 'texture_storage_2d']: s#140 [#318 'texture_storage_2d_array']: s#141 [#318 'texture_storage_3d']: s#142 [#318 'u32']: s#92 [#318 'var']: s#151 [#318 'vec2']: s#97 [#318 'vec3']: s#98 [#318 'vec4']: s#99 [#318 'while']: s#339 [#318 '{']: s#172 [#318 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#319 '&']: r#196 [#319 '(']: r#196 [#319 '*']: r#196 [#319 ';']: r#196 [#319 '_']: r#196 [#319 'array']: r#196 [#319 'atomic']: r#196 [#319 'bool']: r#196 [#319 'break']: r#196 [#319 'const']: r#196 [#319 'const_assert']: r#196 [#319 'continue']: r#196 [#319 'continuing']: r#196 [#319 'discard']: r#196 [#319 'f16']: r#196 [#319 'f32']: r#196 [#319 'for']: r#196 [#319 'i32']: r#196 [#319 'if']: r#196 [#319 'let']: r#196 [#319 'loop']: r#196 [#319 'mat2x2']: r#196 [#319 'mat2x3']: r#196 [#319 'mat2x4']: r#196 [#319 'mat3x2']: r#196 [#319 'mat3x3']: r#196 [#319 'mat3x4']: r#196 [#319 'mat4x2']: r#196 [#319 'mat4x3']: r#196 [#319 'mat4x4']: r#196 [#319 'ptr']: r#196 [#319 'return']: r#196 [#319 'sampler']: r#196 [#319 'sampler_comparison']: r#196 [#319 'switch']: r#196 [#319 'texture_1d']: r#196 [#319 'texture_2d']: r#196 [#319 'texture_2d_array']: r#196 [#319 'texture_3d']: r#196 [#319 'texture_cube']: r#196 [#319 'texture_cube_array']: r#196 [#319 'texture_depth_2d']: r#196 [#319 'texture_depth_2d_array']: r#196 [#319 'texture_depth_cube']: r#196 [#319 'texture_depth_cube_array']: r#196 [#319 'texture_depth_multisampled_2d']: r#196 [#319 'texture_multisampled_2d']: r#196 [#319 'texture_storage_1d']: r#196 [#319 'texture_storage_2d']: r#196 [#319 'texture_storage_2d_array']: r#196 [#319 'texture_storage_3d']: r#196 [#319 'u32']: r#196 [#319 'var']: r#196 [#319 'vec2']: r#196 [#319 'vec3']: r#196 [#319 'vec4']: r#196 [#319 'while']: r#196 [#319 '{']: r#196 [#319 '}']: r#196 [#319 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#196 [#320 ';']: s#429 [#321 '&']: r#197 [#321 '(']: r#197 [#321 '*']: r#197 [#321 ';']: r#197 [#321 '_']: r#197 [#321 'array']: r#197 [#321 'atomic']: r#197 [#321 'bool']: r#197 [#321 'break']: r#197 [#321 'const']: r#197 [#321 'const_assert']: r#197 [#321 'continue']: r#197 [#321 'continuing']: r#197 [#321 'discard']: r#197 [#321 'f16']: r#197 [#321 'f32']: r#197 [#321 'for']: r#197 [#321 'i32']: r#197 [#321 'if']: r#197 [#321 'let']: r#197 [#321 'loop']: r#197 [#321 'mat2x2']: r#197 [#321 'mat2x3']: r#197 [#321 'mat2x4']: r#197 [#321 'mat3x2']: r#197 [#321 'mat3x3']: r#197 [#321 'mat3x4']: r#197 [#321 'mat4x2']: r#197 [#321 'mat4x3']: r#197 [#321 'mat4x4']: r#197 [#321 'ptr']: r#197 [#321 'return']: r#197 [#321 'sampler']: r#197 [#321 'sampler_comparison']: r#197 [#321 'switch']: r#197 [#321 'texture_1d']: r#197 [#321 'texture_2d']: r#197 [#321 'texture_2d_array']: r#197 [#321 'texture_3d']: r#197 [#321 'texture_cube']: r#197 [#321 'texture_cube_array']: r#197 [#321 'texture_depth_2d']: r#197 [#321 'texture_depth_2d_array']: r#197 [#321 'texture_depth_cube']: r#197 [#321 'texture_depth_cube_array']: r#197 [#321 'texture_depth_multisampled_2d']: r#197 [#321 'texture_multisampled_2d']: r#197 [#321 'texture_storage_1d']: r#197 [#321 'texture_storage_2d']: r#197 [#321 'texture_storage_2d_array']: r#197 [#321 'texture_storage_3d']: r#197 [#321 'u32']: r#197 [#321 'var']: r#197 [#321 'vec2']: r#197 [#321 'vec3']: r#197 [#321 'vec4']: r#197 [#321 'while']: r#197 [#321 '{']: r#197 [#321 '}']: r#197 [#321 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#197 [#322 '&']: r#198 [#322 '(']: r#198 [#322 '*']: r#198 [#322 ';']: r#198 [#322 '_']: r#198 [#322 'array']: r#198 [#322 'atomic']: r#198 [#322 'bool']: r#198 [#322 'break']: r#198 [#322 'const']: r#198 [#322 'const_assert']: r#198 [#322 'continue']: r#198 [#322 'continuing']: r#198 [#322 'discard']: r#198 [#322 'f16']: r#198 [#322 'f32']: r#198 [#322 'for']: r#198 [#322 'i32']: r#198 [#322 'if']: r#198 [#322 'let']: r#198 [#322 'loop']: r#198 [#322 'mat2x2']: r#198 [#322 'mat2x3']: r#198 [#322 'mat2x4']: r#198 [#322 'mat3x2']: r#198 [#322 'mat3x3']: r#198 [#322 'mat3x4']: r#198 [#322 'mat4x2']: r#198 [#322 'mat4x3']: r#198 [#322 'mat4x4']: r#198 [#322 'ptr']: r#198 [#322 'return']: r#198 [#322 'sampler']: r#198 [#322 'sampler_comparison']: r#198 [#322 'switch']: r#198 [#322 'texture_1d']: r#198 [#322 'texture_2d']: r#198 [#322 'texture_2d_array']: r#198 [#322 'texture_3d']: r#198 [#322 'texture_cube']: r#198 [#322 'texture_cube_array']: r#198 [#322 'texture_depth_2d']: r#198 [#322 'texture_depth_2d_array']: r#198 [#322 'texture_depth_cube']: r#198 [#322 'texture_depth_cube_array']: r#198 [#322 'texture_depth_multisampled_2d']: r#198 [#322 'texture_multisampled_2d']: r#198 [#322 'texture_storage_1d']: r#198 [#322 'texture_storage_2d']: r#198 [#322 'texture_storage_2d_array']: r#198 [#322 'texture_storage_3d']: r#198 [#322 'u32']: r#198 [#322 'var']: r#198 [#322 'vec2']: r#198 [#322 'vec3']: r#198 [#322 'vec4']: r#198 [#322 'while']: r#198 [#322 '{']: r#198 [#322 '}']: r#198 [#322 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#198 [#323 '&']: r#199 [#323 '(']: r#199 [#323 '*']: r#199 [#323 ';']: r#199 [#323 '_']: r#199 [#323 'array']: r#199 [#323 'atomic']: r#199 [#323 'bool']: r#199 [#323 'break']: r#199 [#323 'const']: r#199 [#323 'const_assert']: r#199 [#323 'continue']: r#199 [#323 'continuing']: r#199 [#323 'discard']: r#199 [#323 'f16']: r#199 [#323 'f32']: r#199 [#323 'for']: r#199 [#323 'i32']: r#199 [#323 'if']: r#199 [#323 'let']: r#199 [#323 'loop']: r#199 [#323 'mat2x2']: r#199 [#323 'mat2x3']: r#199 [#323 'mat2x4']: r#199 [#323 'mat3x2']: r#199 [#323 'mat3x3']: r#199 [#323 'mat3x4']: r#199 [#323 'mat4x2']: r#199 [#323 'mat4x3']: r#199 [#323 'mat4x4']: r#199 [#323 'ptr']: r#199 [#323 'return']: r#199 [#323 'sampler']: r#199 [#323 'sampler_comparison']: r#199 [#323 'switch']: r#199 [#323 'texture_1d']: r#199 [#323 'texture_2d']: r#199 [#323 'texture_2d_array']: r#199 [#323 'texture_3d']: r#199 [#323 'texture_cube']: r#199 [#323 'texture_cube_array']: r#199 [#323 'texture_depth_2d']: r#199 [#323 'texture_depth_2d_array']: r#199 [#323 'texture_depth_cube']: r#199 [#323 'texture_depth_cube_array']: r#199 [#323 'texture_depth_multisampled_2d']: r#199 [#323 'texture_multisampled_2d']: r#199 [#323 'texture_storage_1d']: r#199 [#323 'texture_storage_2d']: r#199 [#323 'texture_storage_2d_array']: r#199 [#323 'texture_storage_3d']: r#199 [#323 'u32']: r#199 [#323 'var']: r#199 [#323 'vec2']: r#199 [#323 'vec3']: r#199 [#323 'vec4']: r#199 [#323 'while']: r#199 [#323 '{']: r#199 [#323 '}']: r#199 [#323 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#199 [#324 '&']: r#200 [#324 '(']: r#200 [#324 '*']: r#200 [#324 ';']: r#200 [#324 '_']: r#200 [#324 'array']: r#200 [#324 'atomic']: r#200 [#324 'bool']: r#200 [#324 'break']: r#200 [#324 'const']: r#200 [#324 'const_assert']: r#200 [#324 'continue']: r#200 [#324 'continuing']: r#200 [#324 'discard']: r#200 [#324 'f16']: r#200 [#324 'f32']: r#200 [#324 'for']: r#200 [#324 'i32']: r#200 [#324 'if']: r#200 [#324 'let']: r#200 [#324 'loop']: r#200 [#324 'mat2x2']: r#200 [#324 'mat2x3']: r#200 [#324 'mat2x4']: r#200 [#324 'mat3x2']: r#200 [#324 'mat3x3']: r#200 [#324 'mat3x4']: r#200 [#324 'mat4x2']: r#200 [#324 'mat4x3']: r#200 [#324 'mat4x4']: r#200 [#324 'ptr']: r#200 [#324 'return']: r#200 [#324 'sampler']: r#200 [#324 'sampler_comparison']: r#200 [#324 'switch']: r#200 [#324 'texture_1d']: r#200 [#324 'texture_2d']: r#200 [#324 'texture_2d_array']: r#200 [#324 'texture_3d']: r#200 [#324 'texture_cube']: r#200 [#324 'texture_cube_array']: r#200 [#324 'texture_depth_2d']: r#200 [#324 'texture_depth_2d_array']: r#200 [#324 'texture_depth_cube']: r#200 [#324 'texture_depth_cube_array']: r#200 [#324 'texture_depth_multisampled_2d']: r#200 [#324 'texture_multisampled_2d']: r#200 [#324 'texture_storage_1d']: r#200 [#324 'texture_storage_2d']: r#200 [#324 'texture_storage_2d_array']: r#200 [#324 'texture_storage_3d']: r#200 [#324 'u32']: r#200 [#324 'var']: r#200 [#324 'vec2']: r#200 [#324 'vec3']: r#200 [#324 'vec4']: r#200 [#324 'while']: r#200 [#324 '{']: r#200 [#324 '}']: r#200 [#324 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#200 [#325 '&']: r#201 [#325 '(']: r#201 [#325 '*']: r#201 [#325 ';']: r#201 [#325 '_']: r#201 [#325 'array']: r#201 [#325 'atomic']: r#201 [#325 'bool']: r#201 [#325 'break']: r#201 [#325 'const']: r#201 [#325 'const_assert']: r#201 [#325 'continue']: r#201 [#325 'continuing']: r#201 [#325 'discard']: r#201 [#325 'f16']: r#201 [#325 'f32']: r#201 [#325 'for']: r#201 [#325 'i32']: r#201 [#325 'if']: r#201 [#325 'let']: r#201 [#325 'loop']: r#201 [#325 'mat2x2']: r#201 [#325 'mat2x3']: r#201 [#325 'mat2x4']: r#201 [#325 'mat3x2']: r#201 [#325 'mat3x3']: r#201 [#325 'mat3x4']: r#201 [#325 'mat4x2']: r#201 [#325 'mat4x3']: r#201 [#325 'mat4x4']: r#201 [#325 'ptr']: r#201 [#325 'return']: r#201 [#325 'sampler']: r#201 [#325 'sampler_comparison']: r#201 [#325 'switch']: r#201 [#325 'texture_1d']: r#201 [#325 'texture_2d']: r#201 [#325 'texture_2d_array']: r#201 [#325 'texture_3d']: r#201 [#325 'texture_cube']: r#201 [#325 'texture_cube_array']: r#201 [#325 'texture_depth_2d']: r#201 [#325 'texture_depth_2d_array']: r#201 [#325 'texture_depth_cube']: r#201 [#325 'texture_depth_cube_array']: r#201 [#325 'texture_depth_multisampled_2d']: r#201 [#325 'texture_multisampled_2d']: r#201 [#325 'texture_storage_1d']: r#201 [#325 'texture_storage_2d']: r#201 [#325 'texture_storage_2d_array']: r#201 [#325 'texture_storage_3d']: r#201 [#325 'u32']: r#201 [#325 'var']: r#201 [#325 'vec2']: r#201 [#325 'vec3']: r#201 [#325 'vec4']: r#201 [#325 'while']: r#201 [#325 '{']: r#201 [#325 '}']: r#201 [#325 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#201 [#326 ';']: s#428 [#327 ';']: s#427 [#328 ';']: s#426 [#329 ';']: s#425 [#330 ';']: s#424 [#331 ';']: s#423 [#332 '&']: r#202 [#332 '(']: r#202 [#332 '*']: r#202 [#332 ';']: r#202 [#332 '_']: r#202 [#332 'array']: r#202 [#332 'atomic']: r#202 [#332 'bool']: r#202 [#332 'break']: r#202 [#332 'const']: r#202 [#332 'const_assert']: r#202 [#332 'continue']: r#202 [#332 'continuing']: r#202 [#332 'discard']: r#202 [#332 'f16']: r#202 [#332 'f32']: r#202 [#332 'for']: r#202 [#332 'i32']: r#202 [#332 'if']: r#202 [#332 'let']: r#202 [#332 'loop']: r#202 [#332 'mat2x2']: r#202 [#332 'mat2x3']: r#202 [#332 'mat2x4']: r#202 [#332 'mat3x2']: r#202 [#332 'mat3x3']: r#202 [#332 'mat3x4']: r#202 [#332 'mat4x2']: r#202 [#332 'mat4x3']: r#202 [#332 'mat4x4']: r#202 [#332 'ptr']: r#202 [#332 'return']: r#202 [#332 'sampler']: r#202 [#332 'sampler_comparison']: r#202 [#332 'switch']: r#202 [#332 'texture_1d']: r#202 [#332 'texture_2d']: r#202 [#332 'texture_2d_array']: r#202 [#332 'texture_3d']: r#202 [#332 'texture_cube']: r#202 [#332 'texture_cube_array']: r#202 [#332 'texture_depth_2d']: r#202 [#332 'texture_depth_2d_array']: r#202 [#332 'texture_depth_cube']: r#202 [#332 'texture_depth_cube_array']: r#202 [#332 'texture_depth_multisampled_2d']: r#202 [#332 'texture_multisampled_2d']: r#202 [#332 'texture_storage_1d']: r#202 [#332 'texture_storage_2d']: r#202 [#332 'texture_storage_2d_array']: r#202 [#332 'texture_storage_3d']: r#202 [#332 'u32']: r#202 [#332 'var']: r#202 [#332 'vec2']: r#202 [#332 'vec3']: r#202 [#332 'vec4']: r#202 [#332 'while']: r#202 [#332 '{']: r#202 [#332 '}']: r#202 [#332 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#202 [#333 ';']: s#422 [#334 '!']: s#62 [#334 '&']: s#65 [#334 '(']: s#77 [#334 '*']: s#64 [#334 '-']: s#61 [#334 'array']: s#81 [#334 'atomic']: s#95 [#334 'bitcast']: s#71 [#334 'bool']: s#88 [#334 'f16']: s#90 [#334 'f32']: s#89 [#334 'false']: s#87 [#334 'i32']: s#91 [#334 'mat2x2']: s#100 [#334 'mat2x3']: s#101 [#334 'mat2x4']: s#102 [#334 'mat3x2']: s#103 [#334 'mat3x3']: s#104 [#334 'mat3x4']: s#105 [#334 'mat4x2']: s#106 [#334 'mat4x3']: s#107 [#334 'mat4x4']: s#108 [#334 'ptr']: s#93 [#334 'sampler']: s#125 [#334 'sampler_comparison']: s#126 [#334 'texture_1d']: s#132 [#334 'texture_2d']: s#133 [#334 'texture_2d_array']: s#134 [#334 'texture_3d']: s#135 [#334 'texture_cube']: s#136 [#334 'texture_cube_array']: s#137 [#334 'texture_depth_2d']: s#127 [#334 'texture_depth_2d_array']: s#128 [#334 'texture_depth_cube']: s#129 [#334 'texture_depth_cube_array']: s#130 [#334 'texture_depth_multisampled_2d']: s#131 [#334 'texture_multisampled_2d']: s#138 [#334 'texture_storage_1d']: s#139 [#334 'texture_storage_2d']: s#140 [#334 'texture_storage_2d_array']: s#141 [#334 'texture_storage_3d']: s#142 [#334 'true']: s#86 [#334 'u32']: s#92 [#334 'vec2']: s#97 [#334 'vec3']: s#98 [#334 'vec4']: s#99 [#334 '~']: s#63 [#334 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#334 /0[fh]/]: s#112 [#334 /0[iu]?/]: s#109 [#334 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#334 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#334 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#334 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#334 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#334 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#334 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#334 /[1-9][0-9]*[fh]/]: s#113 [#334 /[1-9][0-9]*[iu]?/]: s#110 [#335 'else']: s#419 [#336 '!']: s#62 [#336 '&']: s#65 [#336 '(']: s#77 [#336 '*']: s#64 [#336 '-']: s#61 [#336 'array']: s#81 [#336 'atomic']: s#95 [#336 'bitcast']: s#71 [#336 'bool']: s#88 [#336 'f16']: s#90 [#336 'f32']: s#89 [#336 'false']: s#87 [#336 'i32']: s#91 [#336 'mat2x2']: s#100 [#336 'mat2x3']: s#101 [#336 'mat2x4']: s#102 [#336 'mat3x2']: s#103 [#336 'mat3x3']: s#104 [#336 'mat3x4']: s#105 [#336 'mat4x2']: s#106 [#336 'mat4x3']: s#107 [#336 'mat4x4']: s#108 [#336 'ptr']: s#93 [#336 'sampler']: s#125 [#336 'sampler_comparison']: s#126 [#336 'texture_1d']: s#132 [#336 'texture_2d']: s#133 [#336 'texture_2d_array']: s#134 [#336 'texture_3d']: s#135 [#336 'texture_cube']: s#136 [#336 'texture_cube_array']: s#137 [#336 'texture_depth_2d']: s#127 [#336 'texture_depth_2d_array']: s#128 [#336 'texture_depth_cube']: s#129 [#336 'texture_depth_cube_array']: s#130 [#336 'texture_depth_multisampled_2d']: s#131 [#336 'texture_multisampled_2d']: s#138 [#336 'texture_storage_1d']: s#139 [#336 'texture_storage_2d']: s#140 [#336 'texture_storage_2d_array']: s#141 [#336 'texture_storage_3d']: s#142 [#336 'true']: s#86 [#336 'u32']: s#92 [#336 'vec2']: s#97 [#336 'vec3']: s#98 [#336 'vec4']: s#99 [#336 '~']: s#63 [#336 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#336 /0[fh]/]: s#112 [#336 /0[iu]?/]: s#109 [#336 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#336 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#336 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#336 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#336 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#336 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#336 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#336 /[1-9][0-9]*[fh]/]: s#113 [#336 /[1-9][0-9]*[iu]?/]: s#110 [#337 '{']: s#414 [#338 '(']: s#413 [#339 '!']: s#62 [#339 '&']: s#65 [#339 '(']: s#77 [#339 '*']: s#64 [#339 '-']: s#61 [#339 'array']: s#81 [#339 'atomic']: s#95 [#339 'bitcast']: s#71 [#339 'bool']: s#88 [#339 'f16']: s#90 [#339 'f32']: s#89 [#339 'false']: s#87 [#339 'i32']: s#91 [#339 'mat2x2']: s#100 [#339 'mat2x3']: s#101 [#339 'mat2x4']: s#102 [#339 'mat3x2']: s#103 [#339 'mat3x3']: s#104 [#339 'mat3x4']: s#105 [#339 'mat4x2']: s#106 [#339 'mat4x3']: s#107 [#339 'mat4x4']: s#108 [#339 'ptr']: s#93 [#339 'sampler']: s#125 [#339 'sampler_comparison']: s#126 [#339 'texture_1d']: s#132 [#339 'texture_2d']: s#133 [#339 'texture_2d_array']: s#134 [#339 'texture_3d']: s#135 [#339 'texture_cube']: s#136 [#339 'texture_cube_array']: s#137 [#339 'texture_depth_2d']: s#127 [#339 'texture_depth_2d_array']: s#128 [#339 'texture_depth_cube']: s#129 [#339 'texture_depth_cube_array']: s#130 [#339 'texture_depth_multisampled_2d']: s#131 [#339 'texture_multisampled_2d']: s#138 [#339 'texture_storage_1d']: s#139 [#339 'texture_storage_2d']: s#140 [#339 'texture_storage_2d_array']: s#141 [#339 'texture_storage_3d']: s#142 [#339 'true']: s#86 [#339 'u32']: s#92 [#339 'vec2']: s#97 [#339 'vec3']: s#98 [#339 'vec4']: s#99 [#339 '~']: s#63 [#339 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#339 /0[fh]/]: s#112 [#339 /0[iu]?/]: s#109 [#339 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#339 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#339 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#339 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#339 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#339 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#339 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#339 /[1-9][0-9]*[fh]/]: s#113 [#339 /[1-9][0-9]*[iu]?/]: s#110 [#340 '(']: s#183 [#341 ';']: r#203 [#341 '=']: s#410 [#342 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#343 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#344 ';']: r#204 [#345 ';']: r#205 [#346 ')']: r#206 [#346 ';']: r#206 [#347 ')']: r#207 [#347 ';']: r#207 [#348 ')']: r#208 [#348 ';']: r#208 [#349 '!']: s#62 [#349 '&']: s#65 [#349 '(']: s#77 [#349 '*']: s#64 [#349 '-']: s#61 [#349 'array']: s#81 [#349 'atomic']: s#95 [#349 'bitcast']: s#71 [#349 'bool']: s#88 [#349 'f16']: s#90 [#349 'f32']: s#89 [#349 'false']: s#87 [#349 'i32']: s#91 [#349 'mat2x2']: s#100 [#349 'mat2x3']: s#101 [#349 'mat2x4']: s#102 [#349 'mat3x2']: s#103 [#349 'mat3x3']: s#104 [#349 'mat3x4']: s#105 [#349 'mat4x2']: s#106 [#349 'mat4x3']: s#107 [#349 'mat4x4']: s#108 [#349 'ptr']: s#93 [#349 'sampler']: s#125 [#349 'sampler_comparison']: s#126 [#349 'texture_1d']: s#132 [#349 'texture_2d']: s#133 [#349 'texture_2d_array']: s#134 [#349 'texture_3d']: s#135 [#349 'texture_cube']: s#136 [#349 'texture_cube_array']: s#137 [#349 'texture_depth_2d']: s#127 [#349 'texture_depth_2d_array']: s#128 [#349 'texture_depth_cube']: s#129 [#349 'texture_depth_cube_array']: s#130 [#349 'texture_depth_multisampled_2d']: s#131 [#349 'texture_multisampled_2d']: s#138 [#349 'texture_storage_1d']: s#139 [#349 'texture_storage_2d']: s#140 [#349 'texture_storage_2d_array']: s#141 [#349 'texture_storage_3d']: s#142 [#349 'true']: s#86 [#349 'u32']: s#92 [#349 'vec2']: s#97 [#349 'vec3']: s#98 [#349 'vec4']: s#99 [#349 '~']: s#63 [#349 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#349 /0[fh]/]: s#112 [#349 /0[iu]?/]: s#109 [#349 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#349 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#349 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#349 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#349 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#349 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#349 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#349 /[1-9][0-9]*[fh]/]: s#113 [#349 /[1-9][0-9]*[iu]?/]: s#110 [#350 '%=']: r#209 [#350 '&=']: r#209 [#350 '(']: r#33 [#350 '*=']: r#209 [#350 '++']: r#209 [#350 '+=']: r#209 [#350 '--']: r#209 [#350 '-=']: r#209 [#350 '.']: r#209 [#350 '/=']: r#209 [#350 '<<=']: r#209 [#350 '=']: r#209 [#350 '>>=']: r#209 [#350 '[']: r#209 [#350 '^=']: r#209 [#350 '|=']: r#209 [#351 '%=']: s#401 [#351 '&=']: s#402 [#351 '*=']: s#399 [#351 '++']: s#393 [#351 '+=']: s#397 [#351 '--']: s#394 [#351 '-=']: s#398 [#351 '/=']: s#400 [#351 '<<=']: s#406 [#351 '=']: s#395 [#351 '>>=']: s#405 [#351 '^=']: s#404 [#351 '|=']: s#403 [#352 '=']: s#391 [#353 '.']: s#188 [#353 '[']: s#187 [#354 '&']: s#355 [#354 '(']: s#356 [#354 '*']: s#354 [#354 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#355 '&']: s#355 [#355 '(']: s#356 [#355 '*']: s#354 [#355 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#356 '&']: s#355 [#356 '(']: s#356 [#356 '*']: s#354 [#356 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#357 '@']: s#30 [#358 ',']: s#378 [#359 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#266 [#360 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#210 [#361 '@']: s#30 [#362 ';']: r#211 [#363 ';']: r#212 [#364 '!']: s#62 [#364 '&']: s#65 [#364 '(']: s#77 [#364 '*']: s#64 [#364 '-']: s#61 [#364 'array']: s#81 [#364 'atomic']: s#95 [#364 'bitcast']: s#71 [#364 'bool']: s#88 [#364 'f16']: s#90 [#364 'f32']: s#89 [#364 'false']: s#87 [#364 'i32']: s#91 [#364 'mat2x2']: s#100 [#364 'mat2x3']: s#101 [#364 'mat2x4']: s#102 [#364 'mat3x2']: s#103 [#364 'mat3x3']: s#104 [#364 'mat3x4']: s#105 [#364 'mat4x2']: s#106 [#364 'mat4x3']: s#107 [#364 'mat4x4']: s#108 [#364 'ptr']: s#93 [#364 'sampler']: s#125 [#364 'sampler_comparison']: s#126 [#364 'texture_1d']: s#132 [#364 'texture_2d']: s#133 [#364 'texture_2d_array']: s#134 [#364 'texture_3d']: s#135 [#364 'texture_cube']: s#136 [#364 'texture_cube_array']: s#137 [#364 'texture_depth_2d']: s#127 [#364 'texture_depth_2d_array']: s#128 [#364 'texture_depth_cube']: s#129 [#364 'texture_depth_cube_array']: s#130 [#364 'texture_depth_multisampled_2d']: s#131 [#364 'texture_multisampled_2d']: s#138 [#364 'texture_storage_1d']: s#139 [#364 'texture_storage_2d']: s#140 [#364 'texture_storage_2d_array']: s#141 [#364 'texture_storage_3d']: s#142 [#364 'true']: s#86 [#364 'u32']: s#92 [#364 'vec2']: s#97 [#364 'vec3']: s#98 [#364 'vec4']: s#99 [#364 '~']: s#63 [#364 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#364 /0[fh]/]: s#112 [#364 /0[iu]?/]: s#109 [#364 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#364 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#364 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#364 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#364 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#364 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#364 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#364 /[1-9][0-9]*[fh]/]: s#113 [#364 /[1-9][0-9]*[iu]?/]: s#110 [#365 ';']: r#213 [#366 ';']: r#214 [#366 '=']: r#214 [#367 ';']: r#215 [#368 ',']: s#371 [#369 ';']: r#216 [#369 '=']: r#216 [#370 '>']: s#524 [#371 'read']: s#485 [#371 'read_write']: s#487 [#371 'write']: s#486 [#372 ';']: r#217 [#373 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#218 [#374 ':']: s#522 [#375 ',']: s#521 [#376 ',']: r#219 [#376 '}']: r#219 [#377 ',']: s#378 [#378 '@']: s#30 [#379 ')']: s#517 [#380 ')']: r#220 [#381 ',']: s#516 [#382 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#383 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#221 [#384 '@']: s#30 [#385 ')']: s#510 [#386 '%=']: r#209 [#386 '&=']: r#209 [#386 ')']: r#209 [#386 '*=']: r#209 [#386 '++']: r#209 [#386 '+=']: r#209 [#386 '--']: r#209 [#386 '-=']: r#209 [#386 '.']: r#209 [#386 '/=']: r#209 [#386 '<<=']: r#209 [#386 '=']: r#209 [#386 '>>=']: r#209 [#386 '[']: r#209 [#386 '^=']: r#209 [#386 '|=']: r#209 [#387 '%=']: r#222 [#387 '&=']: r#222 [#387 ')']: r#222 [#387 '*=']: r#222 [#387 '++']: r#222 [#387 '+=']: r#222 [#387 '--']: r#222 [#387 '-=']: r#222 [#387 '/=']: r#222 [#387 '<<=']: r#222 [#387 '=']: r#222 [#387 '>>=']: r#222 [#387 '^=']: r#222 [#387 '|=']: r#222 [#388 '%=']: r#223 [#388 '&=']: r#223 [#388 ')']: r#223 [#388 '*=']: r#223 [#388 '++']: r#223 [#388 '+=']: r#223 [#388 '--']: r#223 [#388 '-=']: r#223 [#388 '/=']: r#223 [#388 '<<=']: r#223 [#388 '=']: r#223 [#388 '>>=']: r#223 [#388 '^=']: r#223 [#388 '|=']: r#223 [#389 '%=']: r#224 [#389 '&=']: r#224 [#389 ')']: r#224 [#389 '*=']: r#224 [#389 '++']: r#224 [#389 '+=']: r#224 [#389 '--']: r#224 [#389 '-=']: r#224 [#389 '/=']: r#224 [#389 '<<=']: r#224 [#389 '=']: r#224 [#389 '>>=']: r#224 [#389 '^=']: r#224 [#389 '|=']: r#224 [#390 '%=']: r#225 [#390 '&=']: r#225 [#390 ')']: r#225 [#390 '*=']: r#225 [#390 '++']: r#225 [#390 '+=']: r#225 [#390 '--']: r#225 [#390 '-=']: r#225 [#390 '/=']: r#225 [#390 '<<=']: r#225 [#390 '=']: r#225 [#390 '>>=']: r#225 [#390 '^=']: r#225 [#390 '|=']: r#225 [#391 '!']: s#62 [#391 '&']: s#65 [#391 '(']: s#77 [#391 '*']: s#64 [#391 '-']: s#61 [#391 'array']: s#81 [#391 'atomic']: s#95 [#391 'bitcast']: s#71 [#391 'bool']: s#88 [#391 'f16']: s#90 [#391 'f32']: s#89 [#391 'false']: s#87 [#391 'i32']: s#91 [#391 'mat2x2']: s#100 [#391 'mat2x3']: s#101 [#391 'mat2x4']: s#102 [#391 'mat3x2']: s#103 [#391 'mat3x3']: s#104 [#391 'mat3x4']: s#105 [#391 'mat4x2']: s#106 [#391 'mat4x3']: s#107 [#391 'mat4x4']: s#108 [#391 'ptr']: s#93 [#391 'sampler']: s#125 [#391 'sampler_comparison']: s#126 [#391 'texture_1d']: s#132 [#391 'texture_2d']: s#133 [#391 'texture_2d_array']: s#134 [#391 'texture_3d']: s#135 [#391 'texture_cube']: s#136 [#391 'texture_cube_array']: s#137 [#391 'texture_depth_2d']: s#127 [#391 'texture_depth_2d_array']: s#128 [#391 'texture_depth_cube']: s#129 [#391 'texture_depth_cube_array']: s#130 [#391 'texture_depth_multisampled_2d']: s#131 [#391 'texture_multisampled_2d']: s#138 [#391 'texture_storage_1d']: s#139 [#391 'texture_storage_2d']: s#140 [#391 'texture_storage_2d_array']: s#141 [#391 'texture_storage_3d']: s#142 [#391 'true']: s#86 [#391 'u32']: s#92 [#391 'vec2']: s#97 [#391 'vec3']: s#98 [#391 'vec4']: s#99 [#391 '~']: s#63 [#391 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#391 /0[fh]/]: s#112 [#391 /0[iu]?/]: s#109 [#391 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#391 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#391 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#391 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#391 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#391 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#391 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#391 /[1-9][0-9]*[fh]/]: s#113 [#391 /[1-9][0-9]*[iu]?/]: s#110 [#392 '!']: s#62 [#392 '&']: s#65 [#392 '(']: s#77 [#392 '*']: s#64 [#392 '-']: s#61 [#392 'array']: s#81 [#392 'atomic']: s#95 [#392 'bitcast']: s#71 [#392 'bool']: s#88 [#392 'f16']: s#90 [#392 'f32']: s#89 [#392 'false']: s#87 [#392 'i32']: s#91 [#392 'mat2x2']: s#100 [#392 'mat2x3']: s#101 [#392 'mat2x4']: s#102 [#392 'mat3x2']: s#103 [#392 'mat3x3']: s#104 [#392 'mat3x4']: s#105 [#392 'mat4x2']: s#106 [#392 'mat4x3']: s#107 [#392 'mat4x4']: s#108 [#392 'ptr']: s#93 [#392 'sampler']: s#125 [#392 'sampler_comparison']: s#126 [#392 'texture_1d']: s#132 [#392 'texture_2d']: s#133 [#392 'texture_2d_array']: s#134 [#392 'texture_3d']: s#135 [#392 'texture_cube']: s#136 [#392 'texture_cube_array']: s#137 [#392 'texture_depth_2d']: s#127 [#392 'texture_depth_2d_array']: s#128 [#392 'texture_depth_cube']: s#129 [#392 'texture_depth_cube_array']: s#130 [#392 'texture_depth_multisampled_2d']: s#131 [#392 'texture_multisampled_2d']: s#138 [#392 'texture_storage_1d']: s#139 [#392 'texture_storage_2d']: s#140 [#392 'texture_storage_2d_array']: s#141 [#392 'texture_storage_3d']: s#142 [#392 'true']: s#86 [#392 'u32']: s#92 [#392 'vec2']: s#97 [#392 'vec3']: s#98 [#392 'vec4']: s#99 [#392 '~']: s#63 [#392 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#392 /0[fh]/]: s#112 [#392 /0[iu]?/]: s#109 [#392 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#392 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#392 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#392 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#392 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#392 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#392 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#392 /[1-9][0-9]*[fh]/]: s#113 [#392 /[1-9][0-9]*[iu]?/]: s#110 [#393 ')']: r#226 [#393 ';']: r#226 [#394 ')']: r#227 [#394 ';']: r#227 [#395 '!']: r#228 [#395 '&']: r#228 [#395 '(']: r#228 [#395 '*']: r#228 [#395 '-']: r#228 [#395 'array']: r#228 [#395 'atomic']: r#228 [#395 'bitcast']: r#228 [#395 'bool']: r#228 [#395 'f16']: r#228 [#395 'f32']: r#228 [#395 'false']: r#228 [#395 'i32']: r#228 [#395 'mat2x2']: r#228 [#395 'mat2x3']: r#228 [#395 'mat2x4']: r#228 [#395 'mat3x2']: r#228 [#395 'mat3x3']: r#228 [#395 'mat3x4']: r#228 [#395 'mat4x2']: r#228 [#395 'mat4x3']: r#228 [#395 'mat4x4']: r#228 [#395 'ptr']: r#228 [#395 'sampler']: r#228 [#395 'sampler_comparison']: r#228 [#395 'texture_1d']: r#228 [#395 'texture_2d']: r#228 [#395 'texture_2d_array']: r#228 [#395 'texture_3d']: r#228 [#395 'texture_cube']: r#228 [#395 'texture_cube_array']: r#228 [#395 'texture_depth_2d']: r#228 [#395 'texture_depth_2d_array']: r#228 [#395 'texture_depth_cube']: r#228 [#395 'texture_depth_cube_array']: r#228 [#395 'texture_depth_multisampled_2d']: r#228 [#395 'texture_multisampled_2d']: r#228 [#395 'texture_storage_1d']: r#228 [#395 'texture_storage_2d']: r#228 [#395 'texture_storage_2d_array']: r#228 [#395 'texture_storage_3d']: r#228 [#395 'true']: r#228 [#395 'u32']: r#228 [#395 'vec2']: r#228 [#395 'vec3']: r#228 [#395 'vec4']: r#228 [#395 '~']: r#228 [#395 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#228 [#395 /0[fh]/]: r#228 [#395 /0[iu]?/]: r#228 [#395 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#228 [#395 /0[xX][0-9a-fA-F]+[iu]?/]: r#228 [#395 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#228 [#395 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#228 [#395 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#228 [#395 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#228 [#395 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#228 [#395 /[1-9][0-9]*[fh]/]: r#228 [#395 /[1-9][0-9]*[iu]?/]: r#228 [#396 '!']: r#229 [#396 '&']: r#229 [#396 '(']: r#229 [#396 '*']: r#229 [#396 '-']: r#229 [#396 'array']: r#229 [#396 'atomic']: r#229 [#396 'bitcast']: r#229 [#396 'bool']: r#229 [#396 'f16']: r#229 [#396 'f32']: r#229 [#396 'false']: r#229 [#396 'i32']: r#229 [#396 'mat2x2']: r#229 [#396 'mat2x3']: r#229 [#396 'mat2x4']: r#229 [#396 'mat3x2']: r#229 [#396 'mat3x3']: r#229 [#396 'mat3x4']: r#229 [#396 'mat4x2']: r#229 [#396 'mat4x3']: r#229 [#396 'mat4x4']: r#229 [#396 'ptr']: r#229 [#396 'sampler']: r#229 [#396 'sampler_comparison']: r#229 [#396 'texture_1d']: r#229 [#396 'texture_2d']: r#229 [#396 'texture_2d_array']: r#229 [#396 'texture_3d']: r#229 [#396 'texture_cube']: r#229 [#396 'texture_cube_array']: r#229 [#396 'texture_depth_2d']: r#229 [#396 'texture_depth_2d_array']: r#229 [#396 'texture_depth_cube']: r#229 [#396 'texture_depth_cube_array']: r#229 [#396 'texture_depth_multisampled_2d']: r#229 [#396 'texture_multisampled_2d']: r#229 [#396 'texture_storage_1d']: r#229 [#396 'texture_storage_2d']: r#229 [#396 'texture_storage_2d_array']: r#229 [#396 'texture_storage_3d']: r#229 [#396 'true']: r#229 [#396 'u32']: r#229 [#396 'vec2']: r#229 [#396 'vec3']: r#229 [#396 'vec4']: r#229 [#396 '~']: r#229 [#396 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#229 [#396 /0[fh]/]: r#229 [#396 /0[iu]?/]: r#229 [#396 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#229 [#396 /0[xX][0-9a-fA-F]+[iu]?/]: r#229 [#396 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#229 [#396 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#229 [#396 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#229 [#396 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#229 [#396 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#229 [#396 /[1-9][0-9]*[fh]/]: r#229 [#396 /[1-9][0-9]*[iu]?/]: r#229 [#397 '!']: r#230 [#397 '&']: r#230 [#397 '(']: r#230 [#397 '*']: r#230 [#397 '-']: r#230 [#397 'array']: r#230 [#397 'atomic']: r#230 [#397 'bitcast']: r#230 [#397 'bool']: r#230 [#397 'f16']: r#230 [#397 'f32']: r#230 [#397 'false']: r#230 [#397 'i32']: r#230 [#397 'mat2x2']: r#230 [#397 'mat2x3']: r#230 [#397 'mat2x4']: r#230 [#397 'mat3x2']: r#230 [#397 'mat3x3']: r#230 [#397 'mat3x4']: r#230 [#397 'mat4x2']: r#230 [#397 'mat4x3']: r#230 [#397 'mat4x4']: r#230 [#397 'ptr']: r#230 [#397 'sampler']: r#230 [#397 'sampler_comparison']: r#230 [#397 'texture_1d']: r#230 [#397 'texture_2d']: r#230 [#397 'texture_2d_array']: r#230 [#397 'texture_3d']: r#230 [#397 'texture_cube']: r#230 [#397 'texture_cube_array']: r#230 [#397 'texture_depth_2d']: r#230 [#397 'texture_depth_2d_array']: r#230 [#397 'texture_depth_cube']: r#230 [#397 'texture_depth_cube_array']: r#230 [#397 'texture_depth_multisampled_2d']: r#230 [#397 'texture_multisampled_2d']: r#230 [#397 'texture_storage_1d']: r#230 [#397 'texture_storage_2d']: r#230 [#397 'texture_storage_2d_array']: r#230 [#397 'texture_storage_3d']: r#230 [#397 'true']: r#230 [#397 'u32']: r#230 [#397 'vec2']: r#230 [#397 'vec3']: r#230 [#397 'vec4']: r#230 [#397 '~']: r#230 [#397 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#230 [#397 /0[fh]/]: r#230 [#397 /0[iu]?/]: r#230 [#397 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#230 [#397 /0[xX][0-9a-fA-F]+[iu]?/]: r#230 [#397 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#230 [#397 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#230 [#397 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#230 [#397 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#230 [#397 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#230 [#397 /[1-9][0-9]*[fh]/]: r#230 [#397 /[1-9][0-9]*[iu]?/]: r#230 [#398 '!']: r#231 [#398 '&']: r#231 [#398 '(']: r#231 [#398 '*']: r#231 [#398 '-']: r#231 [#398 'array']: r#231 [#398 'atomic']: r#231 [#398 'bitcast']: r#231 [#398 'bool']: r#231 [#398 'f16']: r#231 [#398 'f32']: r#231 [#398 'false']: r#231 [#398 'i32']: r#231 [#398 'mat2x2']: r#231 [#398 'mat2x3']: r#231 [#398 'mat2x4']: r#231 [#398 'mat3x2']: r#231 [#398 'mat3x3']: r#231 [#398 'mat3x4']: r#231 [#398 'mat4x2']: r#231 [#398 'mat4x3']: r#231 [#398 'mat4x4']: r#231 [#398 'ptr']: r#231 [#398 'sampler']: r#231 [#398 'sampler_comparison']: r#231 [#398 'texture_1d']: r#231 [#398 'texture_2d']: r#231 [#398 'texture_2d_array']: r#231 [#398 'texture_3d']: r#231 [#398 'texture_cube']: r#231 [#398 'texture_cube_array']: r#231 [#398 'texture_depth_2d']: r#231 [#398 'texture_depth_2d_array']: r#231 [#398 'texture_depth_cube']: r#231 [#398 'texture_depth_cube_array']: r#231 [#398 'texture_depth_multisampled_2d']: r#231 [#398 'texture_multisampled_2d']: r#231 [#398 'texture_storage_1d']: r#231 [#398 'texture_storage_2d']: r#231 [#398 'texture_storage_2d_array']: r#231 [#398 'texture_storage_3d']: r#231 [#398 'true']: r#231 [#398 'u32']: r#231 [#398 'vec2']: r#231 [#398 'vec3']: r#231 [#398 'vec4']: r#231 [#398 '~']: r#231 [#398 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#231 [#398 /0[fh]/]: r#231 [#398 /0[iu]?/]: r#231 [#398 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#231 [#398 /0[xX][0-9a-fA-F]+[iu]?/]: r#231 [#398 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#231 [#398 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#231 [#398 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#231 [#398 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#231 [#398 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#231 [#398 /[1-9][0-9]*[fh]/]: r#231 [#398 /[1-9][0-9]*[iu]?/]: r#231 [#399 '!']: r#232 [#399 '&']: r#232 [#399 '(']: r#232 [#399 '*']: r#232 [#399 '-']: r#232 [#399 'array']: r#232 [#399 'atomic']: r#232 [#399 'bitcast']: r#232 [#399 'bool']: r#232 [#399 'f16']: r#232 [#399 'f32']: r#232 [#399 'false']: r#232 [#399 'i32']: r#232 [#399 'mat2x2']: r#232 [#399 'mat2x3']: r#232 [#399 'mat2x4']: r#232 [#399 'mat3x2']: r#232 [#399 'mat3x3']: r#232 [#399 'mat3x4']: r#232 [#399 'mat4x2']: r#232 [#399 'mat4x3']: r#232 [#399 'mat4x4']: r#232 [#399 'ptr']: r#232 [#399 'sampler']: r#232 [#399 'sampler_comparison']: r#232 [#399 'texture_1d']: r#232 [#399 'texture_2d']: r#232 [#399 'texture_2d_array']: r#232 [#399 'texture_3d']: r#232 [#399 'texture_cube']: r#232 [#399 'texture_cube_array']: r#232 [#399 'texture_depth_2d']: r#232 [#399 'texture_depth_2d_array']: r#232 [#399 'texture_depth_cube']: r#232 [#399 'texture_depth_cube_array']: r#232 [#399 'texture_depth_multisampled_2d']: r#232 [#399 'texture_multisampled_2d']: r#232 [#399 'texture_storage_1d']: r#232 [#399 'texture_storage_2d']: r#232 [#399 'texture_storage_2d_array']: r#232 [#399 'texture_storage_3d']: r#232 [#399 'true']: r#232 [#399 'u32']: r#232 [#399 'vec2']: r#232 [#399 'vec3']: r#232 [#399 'vec4']: r#232 [#399 '~']: r#232 [#399 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#232 [#399 /0[fh]/]: r#232 [#399 /0[iu]?/]: r#232 [#399 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#232 [#399 /0[xX][0-9a-fA-F]+[iu]?/]: r#232 [#399 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#232 [#399 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#232 [#399 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#232 [#399 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#232 [#399 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#232 [#399 /[1-9][0-9]*[fh]/]: r#232 [#399 /[1-9][0-9]*[iu]?/]: r#232 [#400 '!']: r#233 [#400 '&']: r#233 [#400 '(']: r#233 [#400 '*']: r#233 [#400 '-']: r#233 [#400 'array']: r#233 [#400 'atomic']: r#233 [#400 'bitcast']: r#233 [#400 'bool']: r#233 [#400 'f16']: r#233 [#400 'f32']: r#233 [#400 'false']: r#233 [#400 'i32']: r#233 [#400 'mat2x2']: r#233 [#400 'mat2x3']: r#233 [#400 'mat2x4']: r#233 [#400 'mat3x2']: r#233 [#400 'mat3x3']: r#233 [#400 'mat3x4']: r#233 [#400 'mat4x2']: r#233 [#400 'mat4x3']: r#233 [#400 'mat4x4']: r#233 [#400 'ptr']: r#233 [#400 'sampler']: r#233 [#400 'sampler_comparison']: r#233 [#400 'texture_1d']: r#233 [#400 'texture_2d']: r#233 [#400 'texture_2d_array']: r#233 [#400 'texture_3d']: r#233 [#400 'texture_cube']: r#233 [#400 'texture_cube_array']: r#233 [#400 'texture_depth_2d']: r#233 [#400 'texture_depth_2d_array']: r#233 [#400 'texture_depth_cube']: r#233 [#400 'texture_depth_cube_array']: r#233 [#400 'texture_depth_multisampled_2d']: r#233 [#400 'texture_multisampled_2d']: r#233 [#400 'texture_storage_1d']: r#233 [#400 'texture_storage_2d']: r#233 [#400 'texture_storage_2d_array']: r#233 [#400 'texture_storage_3d']: r#233 [#400 'true']: r#233 [#400 'u32']: r#233 [#400 'vec2']: r#233 [#400 'vec3']: r#233 [#400 'vec4']: r#233 [#400 '~']: r#233 [#400 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#233 [#400 /0[fh]/]: r#233 [#400 /0[iu]?/]: r#233 [#400 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#233 [#400 /0[xX][0-9a-fA-F]+[iu]?/]: r#233 [#400 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#233 [#400 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#233 [#400 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#233 [#400 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#233 [#400 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#233 [#400 /[1-9][0-9]*[fh]/]: r#233 [#400 /[1-9][0-9]*[iu]?/]: r#233 [#401 '!']: r#234 [#401 '&']: r#234 [#401 '(']: r#234 [#401 '*']: r#234 [#401 '-']: r#234 [#401 'array']: r#234 [#401 'atomic']: r#234 [#401 'bitcast']: r#234 [#401 'bool']: r#234 [#401 'f16']: r#234 [#401 'f32']: r#234 [#401 'false']: r#234 [#401 'i32']: r#234 [#401 'mat2x2']: r#234 [#401 'mat2x3']: r#234 [#401 'mat2x4']: r#234 [#401 'mat3x2']: r#234 [#401 'mat3x3']: r#234 [#401 'mat3x4']: r#234 [#401 'mat4x2']: r#234 [#401 'mat4x3']: r#234 [#401 'mat4x4']: r#234 [#401 'ptr']: r#234 [#401 'sampler']: r#234 [#401 'sampler_comparison']: r#234 [#401 'texture_1d']: r#234 [#401 'texture_2d']: r#234 [#401 'texture_2d_array']: r#234 [#401 'texture_3d']: r#234 [#401 'texture_cube']: r#234 [#401 'texture_cube_array']: r#234 [#401 'texture_depth_2d']: r#234 [#401 'texture_depth_2d_array']: r#234 [#401 'texture_depth_cube']: r#234 [#401 'texture_depth_cube_array']: r#234 [#401 'texture_depth_multisampled_2d']: r#234 [#401 'texture_multisampled_2d']: r#234 [#401 'texture_storage_1d']: r#234 [#401 'texture_storage_2d']: r#234 [#401 'texture_storage_2d_array']: r#234 [#401 'texture_storage_3d']: r#234 [#401 'true']: r#234 [#401 'u32']: r#234 [#401 'vec2']: r#234 [#401 'vec3']: r#234 [#401 'vec4']: r#234 [#401 '~']: r#234 [#401 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#234 [#401 /0[fh]/]: r#234 [#401 /0[iu]?/]: r#234 [#401 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#234 [#401 /0[xX][0-9a-fA-F]+[iu]?/]: r#234 [#401 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#234 [#401 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#234 [#401 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#234 [#401 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#234 [#401 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#234 [#401 /[1-9][0-9]*[fh]/]: r#234 [#401 /[1-9][0-9]*[iu]?/]: r#234 [#402 '!']: r#235 [#402 '&']: r#235 [#402 '(']: r#235 [#402 '*']: r#235 [#402 '-']: r#235 [#402 'array']: r#235 [#402 'atomic']: r#235 [#402 'bitcast']: r#235 [#402 'bool']: r#235 [#402 'f16']: r#235 [#402 'f32']: r#235 [#402 'false']: r#235 [#402 'i32']: r#235 [#402 'mat2x2']: r#235 [#402 'mat2x3']: r#235 [#402 'mat2x4']: r#235 [#402 'mat3x2']: r#235 [#402 'mat3x3']: r#235 [#402 'mat3x4']: r#235 [#402 'mat4x2']: r#235 [#402 'mat4x3']: r#235 [#402 'mat4x4']: r#235 [#402 'ptr']: r#235 [#402 'sampler']: r#235 [#402 'sampler_comparison']: r#235 [#402 'texture_1d']: r#235 [#402 'texture_2d']: r#235 [#402 'texture_2d_array']: r#235 [#402 'texture_3d']: r#235 [#402 'texture_cube']: r#235 [#402 'texture_cube_array']: r#235 [#402 'texture_depth_2d']: r#235 [#402 'texture_depth_2d_array']: r#235 [#402 'texture_depth_cube']: r#235 [#402 'texture_depth_cube_array']: r#235 [#402 'texture_depth_multisampled_2d']: r#235 [#402 'texture_multisampled_2d']: r#235 [#402 'texture_storage_1d']: r#235 [#402 'texture_storage_2d']: r#235 [#402 'texture_storage_2d_array']: r#235 [#402 'texture_storage_3d']: r#235 [#402 'true']: r#235 [#402 'u32']: r#235 [#402 'vec2']: r#235 [#402 'vec3']: r#235 [#402 'vec4']: r#235 [#402 '~']: r#235 [#402 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#235 [#402 /0[fh]/]: r#235 [#402 /0[iu]?/]: r#235 [#402 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#235 [#402 /0[xX][0-9a-fA-F]+[iu]?/]: r#235 [#402 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#235 [#402 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#235 [#402 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#235 [#402 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#235 [#402 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#235 [#402 /[1-9][0-9]*[fh]/]: r#235 [#402 /[1-9][0-9]*[iu]?/]: r#235 [#403 '!']: r#236 [#403 '&']: r#236 [#403 '(']: r#236 [#403 '*']: r#236 [#403 '-']: r#236 [#403 'array']: r#236 [#403 'atomic']: r#236 [#403 'bitcast']: r#236 [#403 'bool']: r#236 [#403 'f16']: r#236 [#403 'f32']: r#236 [#403 'false']: r#236 [#403 'i32']: r#236 [#403 'mat2x2']: r#236 [#403 'mat2x3']: r#236 [#403 'mat2x4']: r#236 [#403 'mat3x2']: r#236 [#403 'mat3x3']: r#236 [#403 'mat3x4']: r#236 [#403 'mat4x2']: r#236 [#403 'mat4x3']: r#236 [#403 'mat4x4']: r#236 [#403 'ptr']: r#236 [#403 'sampler']: r#236 [#403 'sampler_comparison']: r#236 [#403 'texture_1d']: r#236 [#403 'texture_2d']: r#236 [#403 'texture_2d_array']: r#236 [#403 'texture_3d']: r#236 [#403 'texture_cube']: r#236 [#403 'texture_cube_array']: r#236 [#403 'texture_depth_2d']: r#236 [#403 'texture_depth_2d_array']: r#236 [#403 'texture_depth_cube']: r#236 [#403 'texture_depth_cube_array']: r#236 [#403 'texture_depth_multisampled_2d']: r#236 [#403 'texture_multisampled_2d']: r#236 [#403 'texture_storage_1d']: r#236 [#403 'texture_storage_2d']: r#236 [#403 'texture_storage_2d_array']: r#236 [#403 'texture_storage_3d']: r#236 [#403 'true']: r#236 [#403 'u32']: r#236 [#403 'vec2']: r#236 [#403 'vec3']: r#236 [#403 'vec4']: r#236 [#403 '~']: r#236 [#403 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#236 [#403 /0[fh]/]: r#236 [#403 /0[iu]?/]: r#236 [#403 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#236 [#403 /0[xX][0-9a-fA-F]+[iu]?/]: r#236 [#403 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#236 [#403 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#236 [#403 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#236 [#403 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#236 [#403 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#236 [#403 /[1-9][0-9]*[fh]/]: r#236 [#403 /[1-9][0-9]*[iu]?/]: r#236 [#404 '!']: r#237 [#404 '&']: r#237 [#404 '(']: r#237 [#404 '*']: r#237 [#404 '-']: r#237 [#404 'array']: r#237 [#404 'atomic']: r#237 [#404 'bitcast']: r#237 [#404 'bool']: r#237 [#404 'f16']: r#237 [#404 'f32']: r#237 [#404 'false']: r#237 [#404 'i32']: r#237 [#404 'mat2x2']: r#237 [#404 'mat2x3']: r#237 [#404 'mat2x4']: r#237 [#404 'mat3x2']: r#237 [#404 'mat3x3']: r#237 [#404 'mat3x4']: r#237 [#404 'mat4x2']: r#237 [#404 'mat4x3']: r#237 [#404 'mat4x4']: r#237 [#404 'ptr']: r#237 [#404 'sampler']: r#237 [#404 'sampler_comparison']: r#237 [#404 'texture_1d']: r#237 [#404 'texture_2d']: r#237 [#404 'texture_2d_array']: r#237 [#404 'texture_3d']: r#237 [#404 'texture_cube']: r#237 [#404 'texture_cube_array']: r#237 [#404 'texture_depth_2d']: r#237 [#404 'texture_depth_2d_array']: r#237 [#404 'texture_depth_cube']: r#237 [#404 'texture_depth_cube_array']: r#237 [#404 'texture_depth_multisampled_2d']: r#237 [#404 'texture_multisampled_2d']: r#237 [#404 'texture_storage_1d']: r#237 [#404 'texture_storage_2d']: r#237 [#404 'texture_storage_2d_array']: r#237 [#404 'texture_storage_3d']: r#237 [#404 'true']: r#237 [#404 'u32']: r#237 [#404 'vec2']: r#237 [#404 'vec3']: r#237 [#404 'vec4']: r#237 [#404 '~']: r#237 [#404 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#237 [#404 /0[fh]/]: r#237 [#404 /0[iu]?/]: r#237 [#404 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#237 [#404 /0[xX][0-9a-fA-F]+[iu]?/]: r#237 [#404 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#237 [#404 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#237 [#404 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#237 [#404 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#237 [#404 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#237 [#404 /[1-9][0-9]*[fh]/]: r#237 [#404 /[1-9][0-9]*[iu]?/]: r#237 [#405 '!']: r#238 [#405 '&']: r#238 [#405 '(']: r#238 [#405 '*']: r#238 [#405 '-']: r#238 [#405 'array']: r#238 [#405 'atomic']: r#238 [#405 'bitcast']: r#238 [#405 'bool']: r#238 [#405 'f16']: r#238 [#405 'f32']: r#238 [#405 'false']: r#238 [#405 'i32']: r#238 [#405 'mat2x2']: r#238 [#405 'mat2x3']: r#238 [#405 'mat2x4']: r#238 [#405 'mat3x2']: r#238 [#405 'mat3x3']: r#238 [#405 'mat3x4']: r#238 [#405 'mat4x2']: r#238 [#405 'mat4x3']: r#238 [#405 'mat4x4']: r#238 [#405 'ptr']: r#238 [#405 'sampler']: r#238 [#405 'sampler_comparison']: r#238 [#405 'texture_1d']: r#238 [#405 'texture_2d']: r#238 [#405 'texture_2d_array']: r#238 [#405 'texture_3d']: r#238 [#405 'texture_cube']: r#238 [#405 'texture_cube_array']: r#238 [#405 'texture_depth_2d']: r#238 [#405 'texture_depth_2d_array']: r#238 [#405 'texture_depth_cube']: r#238 [#405 'texture_depth_cube_array']: r#238 [#405 'texture_depth_multisampled_2d']: r#238 [#405 'texture_multisampled_2d']: r#238 [#405 'texture_storage_1d']: r#238 [#405 'texture_storage_2d']: r#238 [#405 'texture_storage_2d_array']: r#238 [#405 'texture_storage_3d']: r#238 [#405 'true']: r#238 [#405 'u32']: r#238 [#405 'vec2']: r#238 [#405 'vec3']: r#238 [#405 'vec4']: r#238 [#405 '~']: r#238 [#405 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#238 [#405 /0[fh]/]: r#238 [#405 /0[iu]?/]: r#238 [#405 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#238 [#405 /0[xX][0-9a-fA-F]+[iu]?/]: r#238 [#405 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#238 [#405 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#238 [#405 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#238 [#405 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#238 [#405 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#238 [#405 /[1-9][0-9]*[fh]/]: r#238 [#405 /[1-9][0-9]*[iu]?/]: r#238 [#406 '!']: r#239 [#406 '&']: r#239 [#406 '(']: r#239 [#406 '*']: r#239 [#406 '-']: r#239 [#406 'array']: r#239 [#406 'atomic']: r#239 [#406 'bitcast']: r#239 [#406 'bool']: r#239 [#406 'f16']: r#239 [#406 'f32']: r#239 [#406 'false']: r#239 [#406 'i32']: r#239 [#406 'mat2x2']: r#239 [#406 'mat2x3']: r#239 [#406 'mat2x4']: r#239 [#406 'mat3x2']: r#239 [#406 'mat3x3']: r#239 [#406 'mat3x4']: r#239 [#406 'mat4x2']: r#239 [#406 'mat4x3']: r#239 [#406 'mat4x4']: r#239 [#406 'ptr']: r#239 [#406 'sampler']: r#239 [#406 'sampler_comparison']: r#239 [#406 'texture_1d']: r#239 [#406 'texture_2d']: r#239 [#406 'texture_2d_array']: r#239 [#406 'texture_3d']: r#239 [#406 'texture_cube']: r#239 [#406 'texture_cube_array']: r#239 [#406 'texture_depth_2d']: r#239 [#406 'texture_depth_2d_array']: r#239 [#406 'texture_depth_cube']: r#239 [#406 'texture_depth_cube_array']: r#239 [#406 'texture_depth_multisampled_2d']: r#239 [#406 'texture_multisampled_2d']: r#239 [#406 'texture_storage_1d']: r#239 [#406 'texture_storage_2d']: r#239 [#406 'texture_storage_2d_array']: r#239 [#406 'texture_storage_3d']: r#239 [#406 'true']: r#239 [#406 'u32']: r#239 [#406 'vec2']: r#239 [#406 'vec3']: r#239 [#406 'vec4']: r#239 [#406 '~']: r#239 [#406 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#239 [#406 /0[fh]/]: r#239 [#406 /0[iu]?/]: r#239 [#406 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: r#239 [#406 /0[xX][0-9a-fA-F]+[iu]?/]: r#239 [#406 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: r#239 [#406 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: r#239 [#406 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: r#239 [#406 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: r#239 [#406 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: r#239 [#406 /[1-9][0-9]*[fh]/]: r#239 [#406 /[1-9][0-9]*[iu]?/]: r#239 [#407 '{']: s#172 [#408 '=']: s#506 [#409 '=']: s#505 [#410 '!']: s#62 [#410 '&']: s#65 [#410 '(']: s#77 [#410 '*']: s#64 [#410 '-']: s#61 [#410 'array']: s#81 [#410 'atomic']: s#95 [#410 'bitcast']: s#71 [#410 'bool']: s#88 [#410 'f16']: s#90 [#410 'f32']: s#89 [#410 'false']: s#87 [#410 'i32']: s#91 [#410 'mat2x2']: s#100 [#410 'mat2x3']: s#101 [#410 'mat2x4']: s#102 [#410 'mat3x2']: s#103 [#410 'mat3x3']: s#104 [#410 'mat3x4']: s#105 [#410 'mat4x2']: s#106 [#410 'mat4x3']: s#107 [#410 'mat4x4']: s#108 [#410 'ptr']: s#93 [#410 'sampler']: s#125 [#410 'sampler_comparison']: s#126 [#410 'texture_1d']: s#132 [#410 'texture_2d']: s#133 [#410 'texture_2d_array']: s#134 [#410 'texture_3d']: s#135 [#410 'texture_cube']: s#136 [#410 'texture_cube_array']: s#137 [#410 'texture_depth_2d']: s#127 [#410 'texture_depth_2d_array']: s#128 [#410 'texture_depth_cube']: s#129 [#410 'texture_depth_cube_array']: s#130 [#410 'texture_depth_multisampled_2d']: s#131 [#410 'texture_multisampled_2d']: s#138 [#410 'texture_storage_1d']: s#139 [#410 'texture_storage_2d']: s#140 [#410 'texture_storage_2d_array']: s#141 [#410 'texture_storage_3d']: s#142 [#410 'true']: s#86 [#410 'u32']: s#92 [#410 'vec2']: s#97 [#410 'vec3']: s#98 [#410 'vec4']: s#99 [#410 '~']: s#63 [#410 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#410 /0[fh]/]: s#112 [#410 /0[iu]?/]: s#109 [#410 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#410 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#410 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#410 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#410 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#410 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#410 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#410 /[1-9][0-9]*[fh]/]: s#113 [#410 /[1-9][0-9]*[iu]?/]: s#110 [#411 ')']: r#240 [#411 ';']: r#240 [#412 '{']: s#172 [#413 '&']: s#355 [#413 '(']: s#356 [#413 '*']: s#354 [#413 '_']: s#352 [#413 'array']: s#81 [#413 'atomic']: s#95 [#413 'bool']: s#88 [#413 'const']: s#343 [#413 'f16']: s#90 [#413 'f32']: s#89 [#413 'i32']: s#91 [#413 'let']: s#342 [#413 'mat2x2']: s#100 [#413 'mat2x3']: s#101 [#413 'mat2x4']: s#102 [#413 'mat3x2']: s#103 [#413 'mat3x3']: s#104 [#413 'mat3x4']: s#105 [#413 'mat4x2']: s#106 [#413 'mat4x3']: s#107 [#413 'mat4x4']: s#108 [#413 'ptr']: s#93 [#413 'sampler']: s#125 [#413 'sampler_comparison']: s#126 [#413 'texture_1d']: s#132 [#413 'texture_2d']: s#133 [#413 'texture_2d_array']: s#134 [#413 'texture_3d']: s#135 [#413 'texture_cube']: s#136 [#413 'texture_cube_array']: s#137 [#413 'texture_depth_2d']: s#127 [#413 'texture_depth_2d_array']: s#128 [#413 'texture_depth_cube']: s#129 [#413 'texture_depth_cube_array']: s#130 [#413 'texture_depth_multisampled_2d']: s#131 [#413 'texture_multisampled_2d']: s#138 [#413 'texture_storage_1d']: s#139 [#413 'texture_storage_2d']: s#140 [#413 'texture_storage_2d_array']: s#141 [#413 'texture_storage_3d']: s#142 [#413 'u32']: s#92 [#413 'var']: s#151 [#413 'vec2']: s#97 [#413 'vec3']: s#98 [#413 'vec4']: s#99 [#413 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#414 '&']: s#355 [#414 '(']: s#356 [#414 '*']: s#354 [#414 ';']: s#319 [#414 '_']: s#352 [#414 'array']: s#81 [#414 'atomic']: s#95 [#414 'bool']: s#88 [#414 'break']: s#344 [#414 'const']: s#343 [#414 'const_assert']: s#25 [#414 'continue']: s#345 [#414 'discard']: s#330 [#414 'f16']: s#90 [#414 'f32']: s#89 [#414 'for']: s#338 [#414 'i32']: s#91 [#414 'if']: s#349 [#414 'let']: s#342 [#414 'loop']: s#337 [#414 'mat2x2']: s#100 [#414 'mat2x3']: s#101 [#414 'mat2x4']: s#102 [#414 'mat3x2']: s#103 [#414 'mat3x3']: s#104 [#414 'mat3x4']: s#105 [#414 'mat4x2']: s#106 [#414 'mat4x3']: s#107 [#414 'mat4x4']: s#108 [#414 'ptr']: s#93 [#414 'return']: s#334 [#414 'sampler']: s#125 [#414 'sampler_comparison']: s#126 [#414 'switch']: s#336 [#414 'texture_1d']: s#132 [#414 'texture_2d']: s#133 [#414 'texture_2d_array']: s#134 [#414 'texture_3d']: s#135 [#414 'texture_cube']: s#136 [#414 'texture_cube_array']: s#137 [#414 'texture_depth_2d']: s#127 [#414 'texture_depth_2d_array']: s#128 [#414 'texture_depth_cube']: s#129 [#414 'texture_depth_cube_array']: s#130 [#414 'texture_depth_multisampled_2d']: s#131 [#414 'texture_multisampled_2d']: s#138 [#414 'texture_storage_1d']: s#139 [#414 'texture_storage_2d']: s#140 [#414 'texture_storage_2d_array']: s#141 [#414 'texture_storage_3d']: s#142 [#414 'u32']: s#92 [#414 'var']: s#151 [#414 'vec2']: s#97 [#414 'vec3']: s#98 [#414 'vec4']: s#99 [#414 'while']: s#339 [#414 '{']: s#172 [#414 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#415 '{']: s#493 [#416 'else']: s#492 [#417 '&']: r#241 [#417 '(']: r#241 [#417 '*']: r#241 [#417 ';']: r#241 [#417 '_']: r#241 [#417 'array']: r#241 [#417 'atomic']: r#241 [#417 'bool']: r#241 [#417 'break']: r#241 [#417 'const']: r#241 [#417 'const_assert']: r#241 [#417 'continue']: r#241 [#417 'continuing']: r#241 [#417 'discard']: r#241 [#417 'else']: r#241 [#417 'f16']: r#241 [#417 'f32']: r#241 [#417 'for']: r#241 [#417 'i32']: r#241 [#417 'if']: r#241 [#417 'let']: r#241 [#417 'loop']: r#241 [#417 'mat2x2']: r#241 [#417 'mat2x3']: r#241 [#417 'mat2x4']: r#241 [#417 'mat3x2']: r#241 [#417 'mat3x3']: r#241 [#417 'mat3x4']: r#241 [#417 'mat4x2']: r#241 [#417 'mat4x3']: r#241 [#417 'mat4x4']: r#241 [#417 'ptr']: r#241 [#417 'return']: r#241 [#417 'sampler']: r#241 [#417 'sampler_comparison']: r#241 [#417 'switch']: r#241 [#417 'texture_1d']: r#241 [#417 'texture_2d']: r#241 [#417 'texture_2d_array']: r#241 [#417 'texture_3d']: r#241 [#417 'texture_cube']: r#241 [#417 'texture_cube_array']: r#241 [#417 'texture_depth_2d']: r#241 [#417 'texture_depth_2d_array']: r#241 [#417 'texture_depth_cube']: r#241 [#417 'texture_depth_cube_array']: r#241 [#417 'texture_depth_multisampled_2d']: r#241 [#417 'texture_multisampled_2d']: r#241 [#417 'texture_storage_1d']: r#241 [#417 'texture_storage_2d']: r#241 [#417 'texture_storage_2d_array']: r#241 [#417 'texture_storage_3d']: r#241 [#417 'u32']: r#241 [#417 'var']: r#241 [#417 'vec2']: r#241 [#417 'vec3']: r#241 [#417 'vec4']: r#241 [#417 'while']: r#241 [#417 '{']: r#241 [#417 '}']: r#241 [#417 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#241 [#418 'else']: s#419 [#419 'if']: s#488 [#420 ';']: r#242 [#421 ';']: r#243 [#422 '&']: r#244 [#422 '(']: r#244 [#422 '*']: r#244 [#422 ';']: r#244 [#422 '_']: r#244 [#422 'array']: r#244 [#422 'atomic']: r#244 [#422 'bool']: r#244 [#422 'break']: r#244 [#422 'const']: r#244 [#422 'const_assert']: r#244 [#422 'continue']: r#244 [#422 'continuing']: r#244 [#422 'discard']: r#244 [#422 'f16']: r#244 [#422 'f32']: r#244 [#422 'for']: r#244 [#422 'i32']: r#244 [#422 'if']: r#244 [#422 'let']: r#244 [#422 'loop']: r#244 [#422 'mat2x2']: r#244 [#422 'mat2x3']: r#244 [#422 'mat2x4']: r#244 [#422 'mat3x2']: r#244 [#422 'mat3x3']: r#244 [#422 'mat3x4']: r#244 [#422 'mat4x2']: r#244 [#422 'mat4x3']: r#244 [#422 'mat4x4']: r#244 [#422 'ptr']: r#244 [#422 'return']: r#244 [#422 'sampler']: r#244 [#422 'sampler_comparison']: r#244 [#422 'switch']: r#244 [#422 'texture_1d']: r#244 [#422 'texture_2d']: r#244 [#422 'texture_2d_array']: r#244 [#422 'texture_3d']: r#244 [#422 'texture_cube']: r#244 [#422 'texture_cube_array']: r#244 [#422 'texture_depth_2d']: r#244 [#422 'texture_depth_2d_array']: r#244 [#422 'texture_depth_cube']: r#244 [#422 'texture_depth_cube_array']: r#244 [#422 'texture_depth_multisampled_2d']: r#244 [#422 'texture_multisampled_2d']: r#244 [#422 'texture_storage_1d']: r#244 [#422 'texture_storage_2d']: r#244 [#422 'texture_storage_2d_array']: r#244 [#422 'texture_storage_3d']: r#244 [#422 'u32']: r#244 [#422 'var']: r#244 [#422 'vec2']: r#244 [#422 'vec3']: r#244 [#422 'vec4']: r#244 [#422 'while']: r#244 [#422 '{']: r#244 [#422 '}']: r#244 [#422 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#244 [#423 '&']: r#245 [#423 '(']: r#245 [#423 '*']: r#245 [#423 ';']: r#245 [#423 '_']: r#245 [#423 'array']: r#245 [#423 'atomic']: r#245 [#423 'bool']: r#245 [#423 'break']: r#245 [#423 'const']: r#245 [#423 'const_assert']: r#245 [#423 'continue']: r#245 [#423 'continuing']: r#245 [#423 'discard']: r#245 [#423 'f16']: r#245 [#423 'f32']: r#245 [#423 'for']: r#245 [#423 'i32']: r#245 [#423 'if']: r#245 [#423 'let']: r#245 [#423 'loop']: r#245 [#423 'mat2x2']: r#245 [#423 'mat2x3']: r#245 [#423 'mat2x4']: r#245 [#423 'mat3x2']: r#245 [#423 'mat3x3']: r#245 [#423 'mat3x4']: r#245 [#423 'mat4x2']: r#245 [#423 'mat4x3']: r#245 [#423 'mat4x4']: r#245 [#423 'ptr']: r#245 [#423 'return']: r#245 [#423 'sampler']: r#245 [#423 'sampler_comparison']: r#245 [#423 'switch']: r#245 [#423 'texture_1d']: r#245 [#423 'texture_2d']: r#245 [#423 'texture_2d_array']: r#245 [#423 'texture_3d']: r#245 [#423 'texture_cube']: r#245 [#423 'texture_cube_array']: r#245 [#423 'texture_depth_2d']: r#245 [#423 'texture_depth_2d_array']: r#245 [#423 'texture_depth_cube']: r#245 [#423 'texture_depth_cube_array']: r#245 [#423 'texture_depth_multisampled_2d']: r#245 [#423 'texture_multisampled_2d']: r#245 [#423 'texture_storage_1d']: r#245 [#423 'texture_storage_2d']: r#245 [#423 'texture_storage_2d_array']: r#245 [#423 'texture_storage_3d']: r#245 [#423 'u32']: r#245 [#423 'var']: r#245 [#423 'vec2']: r#245 [#423 'vec3']: r#245 [#423 'vec4']: r#245 [#423 'while']: r#245 [#423 '{']: r#245 [#423 '}']: r#245 [#423 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#245 [#424 '&']: r#246 [#424 '(']: r#246 [#424 '*']: r#246 [#424 ';']: r#246 [#424 '_']: r#246 [#424 'array']: r#246 [#424 'atomic']: r#246 [#424 'bool']: r#246 [#424 'break']: r#246 [#424 'const']: r#246 [#424 'const_assert']: r#246 [#424 'continue']: r#246 [#424 'continuing']: r#246 [#424 'discard']: r#246 [#424 'f16']: r#246 [#424 'f32']: r#246 [#424 'for']: r#246 [#424 'i32']: r#246 [#424 'if']: r#246 [#424 'let']: r#246 [#424 'loop']: r#246 [#424 'mat2x2']: r#246 [#424 'mat2x3']: r#246 [#424 'mat2x4']: r#246 [#424 'mat3x2']: r#246 [#424 'mat3x3']: r#246 [#424 'mat3x4']: r#246 [#424 'mat4x2']: r#246 [#424 'mat4x3']: r#246 [#424 'mat4x4']: r#246 [#424 'ptr']: r#246 [#424 'return']: r#246 [#424 'sampler']: r#246 [#424 'sampler_comparison']: r#246 [#424 'switch']: r#246 [#424 'texture_1d']: r#246 [#424 'texture_2d']: r#246 [#424 'texture_2d_array']: r#246 [#424 'texture_3d']: r#246 [#424 'texture_cube']: r#246 [#424 'texture_cube_array']: r#246 [#424 'texture_depth_2d']: r#246 [#424 'texture_depth_2d_array']: r#246 [#424 'texture_depth_cube']: r#246 [#424 'texture_depth_cube_array']: r#246 [#424 'texture_depth_multisampled_2d']: r#246 [#424 'texture_multisampled_2d']: r#246 [#424 'texture_storage_1d']: r#246 [#424 'texture_storage_2d']: r#246 [#424 'texture_storage_2d_array']: r#246 [#424 'texture_storage_3d']: r#246 [#424 'u32']: r#246 [#424 'var']: r#246 [#424 'vec2']: r#246 [#424 'vec3']: r#246 [#424 'vec4']: r#246 [#424 'while']: r#246 [#424 '{']: r#246 [#424 '}']: r#246 [#424 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#246 [#425 '&']: r#247 [#425 '(']: r#247 [#425 '*']: r#247 [#425 ';']: r#247 [#425 '_']: r#247 [#425 'array']: r#247 [#425 'atomic']: r#247 [#425 'bool']: r#247 [#425 'break']: r#247 [#425 'const']: r#247 [#425 'const_assert']: r#247 [#425 'continue']: r#247 [#425 'continuing']: r#247 [#425 'discard']: r#247 [#425 'f16']: r#247 [#425 'f32']: r#247 [#425 'for']: r#247 [#425 'i32']: r#247 [#425 'if']: r#247 [#425 'let']: r#247 [#425 'loop']: r#247 [#425 'mat2x2']: r#247 [#425 'mat2x3']: r#247 [#425 'mat2x4']: r#247 [#425 'mat3x2']: r#247 [#425 'mat3x3']: r#247 [#425 'mat3x4']: r#247 [#425 'mat4x2']: r#247 [#425 'mat4x3']: r#247 [#425 'mat4x4']: r#247 [#425 'ptr']: r#247 [#425 'return']: r#247 [#425 'sampler']: r#247 [#425 'sampler_comparison']: r#247 [#425 'switch']: r#247 [#425 'texture_1d']: r#247 [#425 'texture_2d']: r#247 [#425 'texture_2d_array']: r#247 [#425 'texture_3d']: r#247 [#425 'texture_cube']: r#247 [#425 'texture_cube_array']: r#247 [#425 'texture_depth_2d']: r#247 [#425 'texture_depth_2d_array']: r#247 [#425 'texture_depth_cube']: r#247 [#425 'texture_depth_cube_array']: r#247 [#425 'texture_depth_multisampled_2d']: r#247 [#425 'texture_multisampled_2d']: r#247 [#425 'texture_storage_1d']: r#247 [#425 'texture_storage_2d']: r#247 [#425 'texture_storage_2d_array']: r#247 [#425 'texture_storage_3d']: r#247 [#425 'u32']: r#247 [#425 'var']: r#247 [#425 'vec2']: r#247 [#425 'vec3']: r#247 [#425 'vec4']: r#247 [#425 'while']: r#247 [#425 '{']: r#247 [#425 '}']: r#247 [#425 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#247 [#426 '&']: r#248 [#426 '(']: r#248 [#426 '*']: r#248 [#426 ';']: r#248 [#426 '_']: r#248 [#426 'array']: r#248 [#426 'atomic']: r#248 [#426 'bool']: r#248 [#426 'break']: r#248 [#426 'const']: r#248 [#426 'const_assert']: r#248 [#426 'continue']: r#248 [#426 'continuing']: r#248 [#426 'discard']: r#248 [#426 'f16']: r#248 [#426 'f32']: r#248 [#426 'for']: r#248 [#426 'i32']: r#248 [#426 'if']: r#248 [#426 'let']: r#248 [#426 'loop']: r#248 [#426 'mat2x2']: r#248 [#426 'mat2x3']: r#248 [#426 'mat2x4']: r#248 [#426 'mat3x2']: r#248 [#426 'mat3x3']: r#248 [#426 'mat3x4']: r#248 [#426 'mat4x2']: r#248 [#426 'mat4x3']: r#248 [#426 'mat4x4']: r#248 [#426 'ptr']: r#248 [#426 'return']: r#248 [#426 'sampler']: r#248 [#426 'sampler_comparison']: r#248 [#426 'switch']: r#248 [#426 'texture_1d']: r#248 [#426 'texture_2d']: r#248 [#426 'texture_2d_array']: r#248 [#426 'texture_3d']: r#248 [#426 'texture_cube']: r#248 [#426 'texture_cube_array']: r#248 [#426 'texture_depth_2d']: r#248 [#426 'texture_depth_2d_array']: r#248 [#426 'texture_depth_cube']: r#248 [#426 'texture_depth_cube_array']: r#248 [#426 'texture_depth_multisampled_2d']: r#248 [#426 'texture_multisampled_2d']: r#248 [#426 'texture_storage_1d']: r#248 [#426 'texture_storage_2d']: r#248 [#426 'texture_storage_2d_array']: r#248 [#426 'texture_storage_3d']: r#248 [#426 'u32']: r#248 [#426 'var']: r#248 [#426 'vec2']: r#248 [#426 'vec3']: r#248 [#426 'vec4']: r#248 [#426 'while']: r#248 [#426 '{']: r#248 [#426 '}']: r#248 [#426 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#248 [#427 '&']: r#249 [#427 '(']: r#249 [#427 '*']: r#249 [#427 ';']: r#249 [#427 '_']: r#249 [#427 'array']: r#249 [#427 'atomic']: r#249 [#427 'bool']: r#249 [#427 'break']: r#249 [#427 'const']: r#249 [#427 'const_assert']: r#249 [#427 'continue']: r#249 [#427 'continuing']: r#249 [#427 'discard']: r#249 [#427 'f16']: r#249 [#427 'f32']: r#249 [#427 'for']: r#249 [#427 'i32']: r#249 [#427 'if']: r#249 [#427 'let']: r#249 [#427 'loop']: r#249 [#427 'mat2x2']: r#249 [#427 'mat2x3']: r#249 [#427 'mat2x4']: r#249 [#427 'mat3x2']: r#249 [#427 'mat3x3']: r#249 [#427 'mat3x4']: r#249 [#427 'mat4x2']: r#249 [#427 'mat4x3']: r#249 [#427 'mat4x4']: r#249 [#427 'ptr']: r#249 [#427 'return']: r#249 [#427 'sampler']: r#249 [#427 'sampler_comparison']: r#249 [#427 'switch']: r#249 [#427 'texture_1d']: r#249 [#427 'texture_2d']: r#249 [#427 'texture_2d_array']: r#249 [#427 'texture_3d']: r#249 [#427 'texture_cube']: r#249 [#427 'texture_cube_array']: r#249 [#427 'texture_depth_2d']: r#249 [#427 'texture_depth_2d_array']: r#249 [#427 'texture_depth_cube']: r#249 [#427 'texture_depth_cube_array']: r#249 [#427 'texture_depth_multisampled_2d']: r#249 [#427 'texture_multisampled_2d']: r#249 [#427 'texture_storage_1d']: r#249 [#427 'texture_storage_2d']: r#249 [#427 'texture_storage_2d_array']: r#249 [#427 'texture_storage_3d']: r#249 [#427 'u32']: r#249 [#427 'var']: r#249 [#427 'vec2']: r#249 [#427 'vec3']: r#249 [#427 'vec4']: r#249 [#427 'while']: r#249 [#427 '{']: r#249 [#427 '}']: r#249 [#427 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#249 [#428 '&']: r#250 [#428 '(']: r#250 [#428 '*']: r#250 [#428 ';']: r#250 [#428 '_']: r#250 [#428 'array']: r#250 [#428 'atomic']: r#250 [#428 'bool']: r#250 [#428 'break']: r#250 [#428 'const']: r#250 [#428 'const_assert']: r#250 [#428 'continue']: r#250 [#428 'continuing']: r#250 [#428 'discard']: r#250 [#428 'f16']: r#250 [#428 'f32']: r#250 [#428 'for']: r#250 [#428 'i32']: r#250 [#428 'if']: r#250 [#428 'let']: r#250 [#428 'loop']: r#250 [#428 'mat2x2']: r#250 [#428 'mat2x3']: r#250 [#428 'mat2x4']: r#250 [#428 'mat3x2']: r#250 [#428 'mat3x3']: r#250 [#428 'mat3x4']: r#250 [#428 'mat4x2']: r#250 [#428 'mat4x3']: r#250 [#428 'mat4x4']: r#250 [#428 'ptr']: r#250 [#428 'return']: r#250 [#428 'sampler']: r#250 [#428 'sampler_comparison']: r#250 [#428 'switch']: r#250 [#428 'texture_1d']: r#250 [#428 'texture_2d']: r#250 [#428 'texture_2d_array']: r#250 [#428 'texture_3d']: r#250 [#428 'texture_cube']: r#250 [#428 'texture_cube_array']: r#250 [#428 'texture_depth_2d']: r#250 [#428 'texture_depth_2d_array']: r#250 [#428 'texture_depth_cube']: r#250 [#428 'texture_depth_cube_array']: r#250 [#428 'texture_depth_multisampled_2d']: r#250 [#428 'texture_multisampled_2d']: r#250 [#428 'texture_storage_1d']: r#250 [#428 'texture_storage_2d']: r#250 [#428 'texture_storage_2d_array']: r#250 [#428 'texture_storage_3d']: r#250 [#428 'u32']: r#250 [#428 'var']: r#250 [#428 'vec2']: r#250 [#428 'vec3']: r#250 [#428 'vec4']: r#250 [#428 'while']: r#250 [#428 '{']: r#250 [#428 '}']: r#250 [#428 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#250 [#429 '&']: r#251 [#429 '(']: r#251 [#429 '*']: r#251 [#429 ';']: r#251 [#429 '_']: r#251 [#429 'array']: r#251 [#429 'atomic']: r#251 [#429 'bool']: r#251 [#429 'break']: r#251 [#429 'const']: r#251 [#429 'const_assert']: r#251 [#429 'continue']: r#251 [#429 'continuing']: r#251 [#429 'discard']: r#251 [#429 'f16']: r#251 [#429 'f32']: r#251 [#429 'for']: r#251 [#429 'i32']: r#251 [#429 'if']: r#251 [#429 'let']: r#251 [#429 'loop']: r#251 [#429 'mat2x2']: r#251 [#429 'mat2x3']: r#251 [#429 'mat2x4']: r#251 [#429 'mat3x2']: r#251 [#429 'mat3x3']: r#251 [#429 'mat3x4']: r#251 [#429 'mat4x2']: r#251 [#429 'mat4x3']: r#251 [#429 'mat4x4']: r#251 [#429 'ptr']: r#251 [#429 'return']: r#251 [#429 'sampler']: r#251 [#429 'sampler_comparison']: r#251 [#429 'switch']: r#251 [#429 'texture_1d']: r#251 [#429 'texture_2d']: r#251 [#429 'texture_2d_array']: r#251 [#429 'texture_3d']: r#251 [#429 'texture_cube']: r#251 [#429 'texture_cube_array']: r#251 [#429 'texture_depth_2d']: r#251 [#429 'texture_depth_2d_array']: r#251 [#429 'texture_depth_cube']: r#251 [#429 'texture_depth_cube_array']: r#251 [#429 'texture_depth_multisampled_2d']: r#251 [#429 'texture_multisampled_2d']: r#251 [#429 'texture_storage_1d']: r#251 [#429 'texture_storage_2d']: r#251 [#429 'texture_storage_2d_array']: r#251 [#429 'texture_storage_3d']: r#251 [#429 'u32']: r#251 [#429 'var']: r#251 [#429 'vec2']: r#251 [#429 'vec3']: r#251 [#429 'vec4']: r#251 [#429 'while']: r#251 [#429 '{']: r#251 [#429 '}']: r#251 [#429 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#251 [#430 '}']: r#252 [#431 '&']: r#253 [#431 '(']: r#253 [#431 '*']: r#253 [#431 ';']: r#253 [#431 '@']: r#253 [#431 '_']: r#253 [#431 'alias']: r#253 [#431 'array']: r#253 [#431 'atomic']: r#253 [#431 'bool']: r#253 [#431 'break']: r#253 [#431 'case']: r#253 [#431 'const']: r#253 [#431 'const_assert']: r#253 [#431 'continue']: r#253 [#431 'continuing']: r#253 [#431 'default']: r#253 [#431 'discard']: r#253 [#431 'else']: r#253 [#431 'f16']: r#253 [#431 'f32']: r#253 [#431 'fn']: r#253 [#431 'for']: r#253 [#431 'i32']: r#253 [#431 'if']: r#253 [#431 'let']: r#253 [#431 'loop']: r#253 [#431 'mat2x2']: r#253 [#431 'mat2x3']: r#253 [#431 'mat2x4']: r#253 [#431 'mat3x2']: r#253 [#431 'mat3x3']: r#253 [#431 'mat3x4']: r#253 [#431 'mat4x2']: r#253 [#431 'mat4x3']: r#253 [#431 'mat4x4']: r#253 [#431 'override']: r#253 [#431 'ptr']: r#253 [#431 'return']: r#253 [#431 'sampler']: r#253 [#431 'sampler_comparison']: r#253 [#431 'struct']: r#253 [#431 'switch']: r#253 [#431 'texture_1d']: r#253 [#431 'texture_2d']: r#253 [#431 'texture_2d_array']: r#253 [#431 'texture_3d']: r#253 [#431 'texture_cube']: r#253 [#431 'texture_cube_array']: r#253 [#431 'texture_depth_2d']: r#253 [#431 'texture_depth_2d_array']: r#253 [#431 'texture_depth_cube']: r#253 [#431 'texture_depth_cube_array']: r#253 [#431 'texture_depth_multisampled_2d']: r#253 [#431 'texture_multisampled_2d']: r#253 [#431 'texture_storage_1d']: r#253 [#431 'texture_storage_2d']: r#253 [#431 'texture_storage_2d_array']: r#253 [#431 'texture_storage_3d']: r#253 [#431 'u32']: r#253 [#431 'var']: r#253 [#431 'vec2']: r#253 [#431 'vec3']: r#253 [#431 'vec4']: r#253 [#431 'while']: r#253 [#431 '{']: r#253 [#431 '}']: r#253 [#431 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#253 [#431 EndOfText]: r#253 [#432 'read']: s#485 [#432 'read_write']: s#487 [#432 'write']: s#486 [#433 '(']: r#254 [#433 ')']: r#254 [#433 ',']: r#254 [#433 ';']: r#254 [#433 '=']: r#254 [#433 '>']: r#254 [#433 '{']: r#254 [#433 '}']: r#254 [#434 '(']: r#255 [#434 ')']: r#255 [#434 ',']: r#255 [#434 ';']: r#255 [#434 '=']: r#255 [#434 '>']: r#255 [#434 '{']: r#255 [#434 '}']: r#255 [#435 '(']: r#256 [#435 ')']: r#256 [#435 ',']: r#256 [#435 ';']: r#256 [#435 '=']: r#256 [#435 '>']: r#256 [#435 '{']: r#256 [#435 '}']: r#256 [#436 'array']: s#281 [#436 'atomic']: s#95 [#436 'bool']: s#88 [#436 'f16']: s#90 [#436 'f32']: s#89 [#436 'i32']: s#91 [#436 'mat2x2']: s#100 [#436 'mat2x3']: s#101 [#436 'mat2x4']: s#102 [#436 'mat3x2']: s#103 [#436 'mat3x3']: s#104 [#436 'mat3x4']: s#105 [#436 'mat4x2']: s#106 [#436 'mat4x3']: s#107 [#436 'mat4x4']: s#108 [#436 'ptr']: s#93 [#436 'sampler']: s#125 [#436 'sampler_comparison']: s#126 [#436 'texture_1d']: s#132 [#436 'texture_2d']: s#133 [#436 'texture_2d_array']: s#134 [#436 'texture_3d']: s#135 [#436 'texture_cube']: s#136 [#436 'texture_cube_array']: s#137 [#436 'texture_depth_2d']: s#127 [#436 'texture_depth_2d_array']: s#128 [#436 'texture_depth_cube']: s#129 [#436 'texture_depth_cube_array']: s#130 [#436 'texture_depth_multisampled_2d']: s#131 [#436 'texture_multisampled_2d']: s#138 [#436 'texture_storage_1d']: s#139 [#436 'texture_storage_2d']: s#140 [#436 'texture_storage_2d_array']: s#141 [#436 'texture_storage_3d']: s#142 [#436 'u32']: s#92 [#436 'vec2']: s#97 [#436 'vec3']: s#98 [#436 'vec4']: s#99 [#436 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#437 '>']: s#482 [#438 '!']: s#62 [#438 '&']: s#65 [#438 '(']: s#77 [#438 '*']: s#64 [#438 '-']: s#61 [#438 'array']: s#81 [#438 'atomic']: s#95 [#438 'bitcast']: s#71 [#438 'bool']: s#88 [#438 'f16']: s#90 [#438 'f32']: s#89 [#438 'false']: s#87 [#438 'i32']: s#91 [#438 'mat2x2']: s#100 [#438 'mat2x3']: s#101 [#438 'mat2x4']: s#102 [#438 'mat3x2']: s#103 [#438 'mat3x3']: s#104 [#438 'mat3x4']: s#105 [#438 'mat4x2']: s#106 [#438 'mat4x3']: s#107 [#438 'mat4x4']: s#108 [#438 'ptr']: s#93 [#438 'sampler']: s#125 [#438 'sampler_comparison']: s#126 [#438 'texture_1d']: s#132 [#438 'texture_2d']: s#133 [#438 'texture_2d_array']: s#134 [#438 'texture_3d']: s#135 [#438 'texture_cube']: s#136 [#438 'texture_cube_array']: s#137 [#438 'texture_depth_2d']: s#127 [#438 'texture_depth_2d_array']: s#128 [#438 'texture_depth_cube']: s#129 [#438 'texture_depth_cube_array']: s#130 [#438 'texture_depth_multisampled_2d']: s#131 [#438 'texture_multisampled_2d']: s#138 [#438 'texture_storage_1d']: s#139 [#438 'texture_storage_2d']: s#140 [#438 'texture_storage_2d_array']: s#141 [#438 'texture_storage_3d']: s#142 [#438 'true']: s#86 [#438 'u32']: s#92 [#438 'vec2']: s#97 [#438 'vec3']: s#98 [#438 'vec4']: s#99 [#438 '~']: s#63 [#438 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#438 /0[fh]/]: s#112 [#438 /0[iu]?/]: s#109 [#438 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#438 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#438 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#438 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#438 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#438 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#438 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#438 /[1-9][0-9]*[fh]/]: s#113 [#438 /[1-9][0-9]*[iu]?/]: s#110 [#439 '(']: r#257 [#439 ')']: r#257 [#439 ',']: r#257 [#439 ';']: r#257 [#439 '=']: r#257 [#439 '>']: r#257 [#439 '{']: r#257 [#439 '}']: r#257 [#440 '(']: r#258 [#440 ')']: r#258 [#440 ',']: r#258 [#440 ';']: r#258 [#440 '=']: r#258 [#440 '>']: r#258 [#440 '{']: r#258 [#440 '}']: r#258 [#441 ',']: s#477 [#442 ')']: r#259 [#442 ',']: r#259 [#443 ',']: s#444 [#444 '!']: s#62 [#444 '&']: s#65 [#444 '(']: s#77 [#444 '*']: s#64 [#444 '-']: s#61 [#444 'array']: s#81 [#444 'atomic']: s#95 [#444 'bitcast']: s#71 [#444 'bool']: s#88 [#444 'f16']: s#90 [#444 'f32']: s#89 [#444 'false']: s#87 [#444 'i32']: s#91 [#444 'mat2x2']: s#100 [#444 'mat2x3']: s#101 [#444 'mat2x4']: s#102 [#444 'mat3x2']: s#103 [#444 'mat3x3']: s#104 [#444 'mat3x4']: s#105 [#444 'mat4x2']: s#106 [#444 'mat4x3']: s#107 [#444 'mat4x4']: s#108 [#444 'ptr']: s#93 [#444 'sampler']: s#125 [#444 'sampler_comparison']: s#126 [#444 'texture_1d']: s#132 [#444 'texture_2d']: s#133 [#444 'texture_2d_array']: s#134 [#444 'texture_3d']: s#135 [#444 'texture_cube']: s#136 [#444 'texture_cube_array']: s#137 [#444 'texture_depth_2d']: s#127 [#444 'texture_depth_2d_array']: s#128 [#444 'texture_depth_cube']: s#129 [#444 'texture_depth_cube_array']: s#130 [#444 'texture_depth_multisampled_2d']: s#131 [#444 'texture_multisampled_2d']: s#138 [#444 'texture_storage_1d']: s#139 [#444 'texture_storage_2d']: s#140 [#444 'texture_storage_2d_array']: s#141 [#444 'texture_storage_3d']: s#142 [#444 'true']: s#86 [#444 'u32']: s#92 [#444 'vec2']: s#97 [#444 'vec3']: s#98 [#444 'vec4']: s#99 [#444 '~']: s#63 [#444 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#444 /0[fh]/]: s#112 [#444 /0[iu]?/]: s#109 [#444 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#444 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#444 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#444 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#444 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#444 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#444 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#444 /[1-9][0-9]*[fh]/]: s#113 [#444 /[1-9][0-9]*[iu]?/]: s#110 [#445 '!=']: r#260 [#445 '%']: r#260 [#445 '&&']: r#260 [#445 '&']: r#260 [#445 ')']: r#260 [#445 '*']: r#260 [#445 '+']: r#260 [#445 ',']: r#260 [#445 '-']: r#260 [#445 '.']: r#260 [#445 '/']: r#260 [#445 ':']: r#260 [#445 ';']: r#260 [#445 '<']: r#260 [#445 '<<']: r#260 [#445 '<=']: r#260 [#445 '==']: r#260 [#445 '>']: r#260 [#445 '>=']: r#260 [#445 '>>']: r#260 [#445 '[']: r#260 [#445 ']']: r#260 [#445 '^']: r#260 [#445 '{']: r#260 [#445 '|']: r#260 [#445 '||']: r#260 [#446 '(']: s#77 [#447 '.']: s#188 [#447 '[']: s#187 [#448 '!=']: r#261 [#448 '%']: r#261 [#448 '%=']: r#261 [#448 '&&']: r#261 [#448 '&']: r#261 [#448 '&=']: r#261 [#448 ')']: r#261 [#448 '*']: r#261 [#448 '*=']: r#261 [#448 '+']: r#261 [#448 '++']: r#261 [#448 '+=']: r#261 [#448 ',']: r#261 [#448 '-']: r#261 [#448 '--']: r#261 [#448 '-=']: r#261 [#448 '/']: r#261 [#448 '/=']: r#261 [#448 ':']: r#261 [#448 ';']: r#261 [#448 '<']: r#261 [#448 '<<']: r#261 [#448 '<<=']: r#261 [#448 '<=']: r#261 [#448 '=']: r#261 [#448 '==']: r#261 [#448 '>']: r#261 [#448 '>=']: r#261 [#448 '>>']: r#261 [#448 '>>=']: r#261 [#448 ']']: r#261 [#448 '^']: r#261 [#448 '^=']: r#261 [#448 '{']: r#261 [#448 '|']: r#261 [#448 '|=']: r#261 [#448 '||']: r#261 [#449 '!=']: r#262 [#449 '%']: r#262 [#449 '%=']: r#262 [#449 '&&']: r#262 [#449 '&']: r#262 [#449 '&=']: r#262 [#449 ')']: r#262 [#449 '*']: r#262 [#449 '*=']: r#262 [#449 '+']: r#262 [#449 '++']: r#262 [#449 '+=']: r#262 [#449 ',']: r#262 [#449 '-']: r#262 [#449 '--']: r#262 [#449 '-=']: r#262 [#449 '/']: r#262 [#449 '/=']: r#262 [#449 ':']: r#262 [#449 ';']: r#262 [#449 '<']: r#262 [#449 '<<']: r#262 [#449 '<<=']: r#262 [#449 '<=']: r#262 [#449 '=']: r#262 [#449 '==']: r#262 [#449 '>']: r#262 [#449 '>=']: r#262 [#449 '>>']: r#262 [#449 '>>=']: r#262 [#449 ']']: r#262 [#449 '^']: r#262 [#449 '^=']: r#262 [#449 '{']: r#262 [#449 '|']: r#262 [#449 '|=']: r#262 [#449 '||']: r#262 [#450 '!=']: r#263 [#450 '%']: r#263 [#450 '%=']: r#263 [#450 '&&']: r#263 [#450 '&']: r#263 [#450 '&=']: r#263 [#450 ')']: r#263 [#450 '*']: r#263 [#450 '*=']: r#263 [#450 '+']: r#263 [#450 '++']: r#263 [#450 '+=']: r#263 [#450 ',']: r#263 [#450 '-']: r#263 [#450 '--']: r#263 [#450 '-=']: r#263 [#450 '/']: r#263 [#450 '/=']: r#263 [#450 ':']: r#263 [#450 ';']: r#263 [#450 '<']: r#263 [#450 '<<']: r#263 [#450 '<<=']: r#263 [#450 '<=']: r#263 [#450 '=']: r#263 [#450 '==']: r#263 [#450 '>']: r#263 [#450 '>=']: r#263 [#450 '>>']: r#263 [#450 '>>=']: r#263 [#450 ']']: r#263 [#450 '^']: r#263 [#450 '^=']: r#263 [#450 '{']: r#263 [#450 '|']: r#263 [#450 '|=']: r#263 [#450 '||']: r#263 [#451 '!=']: r#264 [#451 '%']: r#264 [#451 '%=']: r#264 [#451 '&&']: r#264 [#451 '&']: r#264 [#451 '&=']: r#264 [#451 ')']: r#264 [#451 '*']: r#264 [#451 '*=']: r#264 [#451 '+']: r#264 [#451 '++']: r#264 [#451 '+=']: r#264 [#451 ',']: r#264 [#451 '-']: r#264 [#451 '--']: r#264 [#451 '-=']: r#264 [#451 '/']: r#264 [#451 '/=']: r#264 [#451 ':']: r#264 [#451 ';']: r#264 [#451 '<']: r#264 [#451 '<<']: r#264 [#451 '<<=']: r#264 [#451 '<=']: r#264 [#451 '=']: r#264 [#451 '==']: r#264 [#451 '>']: r#264 [#451 '>=']: r#264 [#451 '>>']: r#264 [#451 '>>=']: r#264 [#451 ']']: r#264 [#451 '^']: r#264 [#451 '^=']: r#264 [#451 '{']: r#264 [#451 '|']: r#264 [#451 '|=']: r#264 [#451 '||']: r#264 [#452 '@']: r#265 [#452 'array']: r#265 [#452 'atomic']: r#265 [#452 'bool']: r#265 [#452 'f16']: r#265 [#452 'f32']: r#265 [#452 'fn']: r#265 [#452 'i32']: r#265 [#452 'mat2x2']: r#265 [#452 'mat2x3']: r#265 [#452 'mat2x4']: r#265 [#452 'mat3x2']: r#265 [#452 'mat3x3']: r#265 [#452 'mat3x4']: r#265 [#452 'mat4x2']: r#265 [#452 'mat4x3']: r#265 [#452 'mat4x4']: r#265 [#452 'override']: r#265 [#452 'ptr']: r#265 [#452 'sampler']: r#265 [#452 'sampler_comparison']: r#265 [#452 'texture_1d']: r#265 [#452 'texture_2d']: r#265 [#452 'texture_2d_array']: r#265 [#452 'texture_3d']: r#265 [#452 'texture_cube']: r#265 [#452 'texture_cube_array']: r#265 [#452 'texture_depth_2d']: r#265 [#452 'texture_depth_2d_array']: r#265 [#452 'texture_depth_cube']: r#265 [#452 'texture_depth_cube_array']: r#265 [#452 'texture_depth_multisampled_2d']: r#265 [#452 'texture_multisampled_2d']: r#265 [#452 'texture_storage_1d']: r#265 [#452 'texture_storage_2d']: r#265 [#452 'texture_storage_2d_array']: r#265 [#452 'texture_storage_3d']: r#265 [#452 'u32']: r#265 [#452 'var']: r#265 [#452 'vec2']: r#265 [#452 'vec3']: r#265 [#452 'vec4']: r#265 [#452 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#265 [#453 '!']: s#62 [#453 '&']: s#65 [#453 '(']: s#77 [#453 ')']: r#266 [#453 '*']: s#64 [#453 '-']: s#61 [#453 'array']: s#81 [#453 'atomic']: s#95 [#453 'bitcast']: s#71 [#453 'bool']: s#88 [#453 'f16']: s#90 [#453 'f32']: s#89 [#453 'false']: s#87 [#453 'i32']: s#91 [#453 'mat2x2']: s#100 [#453 'mat2x3']: s#101 [#453 'mat2x4']: s#102 [#453 'mat3x2']: s#103 [#453 'mat3x3']: s#104 [#453 'mat3x4']: s#105 [#453 'mat4x2']: s#106 [#453 'mat4x3']: s#107 [#453 'mat4x4']: s#108 [#453 'ptr']: s#93 [#453 'sampler']: s#125 [#453 'sampler_comparison']: s#126 [#453 'texture_1d']: s#132 [#453 'texture_2d']: s#133 [#453 'texture_2d_array']: s#134 [#453 'texture_3d']: s#135 [#453 'texture_cube']: s#136 [#453 'texture_cube_array']: s#137 [#453 'texture_depth_2d']: s#127 [#453 'texture_depth_2d_array']: s#128 [#453 'texture_depth_cube']: s#129 [#453 'texture_depth_cube_array']: s#130 [#453 'texture_depth_multisampled_2d']: s#131 [#453 'texture_multisampled_2d']: s#138 [#453 'texture_storage_1d']: s#139 [#453 'texture_storage_2d']: s#140 [#453 'texture_storage_2d_array']: s#141 [#453 'texture_storage_3d']: s#142 [#453 'true']: s#86 [#453 'u32']: s#92 [#453 'vec2']: s#97 [#453 'vec3']: s#98 [#453 'vec4']: s#99 [#453 '~']: s#63 [#453 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#453 /0[fh]/]: s#112 [#453 /0[iu]?/]: s#109 [#453 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#453 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#453 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#453 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#453 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#453 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#453 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#453 /[1-9][0-9]*[fh]/]: s#113 [#453 /[1-9][0-9]*[iu]?/]: s#110 [#454 ')']: s#469 [#455 '@']: r#267 [#455 'array']: r#267 [#455 'atomic']: r#267 [#455 'bool']: r#267 [#455 'f16']: r#267 [#455 'f32']: r#267 [#455 'fn']: r#267 [#455 'i32']: r#267 [#455 'mat2x2']: r#267 [#455 'mat2x3']: r#267 [#455 'mat2x4']: r#267 [#455 'mat3x2']: r#267 [#455 'mat3x3']: r#267 [#455 'mat3x4']: r#267 [#455 'mat4x2']: r#267 [#455 'mat4x3']: r#267 [#455 'mat4x4']: r#267 [#455 'override']: r#267 [#455 'ptr']: r#267 [#455 'sampler']: r#267 [#455 'sampler_comparison']: r#267 [#455 'texture_1d']: r#267 [#455 'texture_2d']: r#267 [#455 'texture_2d_array']: r#267 [#455 'texture_3d']: r#267 [#455 'texture_cube']: r#267 [#455 'texture_cube_array']: r#267 [#455 'texture_depth_2d']: r#267 [#455 'texture_depth_2d_array']: r#267 [#455 'texture_depth_cube']: r#267 [#455 'texture_depth_cube_array']: r#267 [#455 'texture_depth_multisampled_2d']: r#267 [#455 'texture_multisampled_2d']: r#267 [#455 'texture_storage_1d']: r#267 [#455 'texture_storage_2d']: r#267 [#455 'texture_storage_2d_array']: r#267 [#455 'texture_storage_3d']: r#267 [#455 'u32']: r#267 [#455 'var']: r#267 [#455 'vec2']: r#267 [#455 'vec3']: r#267 [#455 'vec4']: r#267 [#455 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#267 [#456 ')']: r#266 [#457 '@']: r#268 [#457 'array']: r#268 [#457 'atomic']: r#268 [#457 'bool']: r#268 [#457 'f16']: r#268 [#457 'f32']: r#268 [#457 'fn']: r#268 [#457 'i32']: r#268 [#457 'mat2x2']: r#268 [#457 'mat2x3']: r#268 [#457 'mat2x4']: r#268 [#457 'mat3x2']: r#268 [#457 'mat3x3']: r#268 [#457 'mat3x4']: r#268 [#457 'mat4x2']: r#268 [#457 'mat4x3']: r#268 [#457 'mat4x4']: r#268 [#457 'override']: r#268 [#457 'ptr']: r#268 [#457 'sampler']: r#268 [#457 'sampler_comparison']: r#268 [#457 'texture_1d']: r#268 [#457 'texture_2d']: r#268 [#457 'texture_2d_array']: r#268 [#457 'texture_3d']: r#268 [#457 'texture_cube']: r#268 [#457 'texture_cube_array']: r#268 [#457 'texture_depth_2d']: r#268 [#457 'texture_depth_2d_array']: r#268 [#457 'texture_depth_cube']: r#268 [#457 'texture_depth_cube_array']: r#268 [#457 'texture_depth_multisampled_2d']: r#268 [#457 'texture_multisampled_2d']: r#268 [#457 'texture_storage_1d']: r#268 [#457 'texture_storage_2d']: r#268 [#457 'texture_storage_2d_array']: r#268 [#457 'texture_storage_3d']: r#268 [#457 'u32']: r#268 [#457 'var']: r#268 [#457 'vec2']: r#268 [#457 'vec3']: r#268 [#457 'vec4']: r#268 [#457 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#268 [#458 '@']: r#269 [#458 'array']: r#269 [#458 'atomic']: r#269 [#458 'bool']: r#269 [#458 'f16']: r#269 [#458 'f32']: r#269 [#458 'fn']: r#269 [#458 'i32']: r#269 [#458 'mat2x2']: r#269 [#458 'mat2x3']: r#269 [#458 'mat2x4']: r#269 [#458 'mat3x2']: r#269 [#458 'mat3x3']: r#269 [#458 'mat3x4']: r#269 [#458 'mat4x2']: r#269 [#458 'mat4x3']: r#269 [#458 'mat4x4']: r#269 [#458 'override']: r#269 [#458 'ptr']: r#269 [#458 'sampler']: r#269 [#458 'sampler_comparison']: r#269 [#458 'texture_1d']: r#269 [#458 'texture_2d']: r#269 [#458 'texture_2d_array']: r#269 [#458 'texture_3d']: r#269 [#458 'texture_cube']: r#269 [#458 'texture_cube_array']: r#269 [#458 'texture_depth_2d']: r#269 [#458 'texture_depth_2d_array']: r#269 [#458 'texture_depth_cube']: r#269 [#458 'texture_depth_cube_array']: r#269 [#458 'texture_depth_multisampled_2d']: r#269 [#458 'texture_multisampled_2d']: r#269 [#458 'texture_storage_1d']: r#269 [#458 'texture_storage_2d']: r#269 [#458 'texture_storage_2d_array']: r#269 [#458 'texture_storage_3d']: r#269 [#458 'u32']: r#269 [#458 'var']: r#269 [#458 'vec2']: r#269 [#458 'vec3']: r#269 [#458 'vec4']: r#269 [#458 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#269 [#459 ')']: r#266 [#459 'center']: s#466 [#459 'centroid']: s#467 [#459 'sample']: s#468 [#460 '@']: r#270 [#460 'array']: r#270 [#460 'atomic']: r#270 [#460 'bool']: r#270 [#460 'f16']: r#270 [#460 'f32']: r#270 [#460 'fn']: r#270 [#460 'i32']: r#270 [#460 'mat2x2']: r#270 [#460 'mat2x3']: r#270 [#460 'mat2x4']: r#270 [#460 'mat3x2']: r#270 [#460 'mat3x3']: r#270 [#460 'mat3x4']: r#270 [#460 'mat4x2']: r#270 [#460 'mat4x3']: r#270 [#460 'mat4x4']: r#270 [#460 'override']: r#270 [#460 'ptr']: r#270 [#460 'sampler']: r#270 [#460 'sampler_comparison']: r#270 [#460 'texture_1d']: r#270 [#460 'texture_2d']: r#270 [#460 'texture_2d_array']: r#270 [#460 'texture_3d']: r#270 [#460 'texture_cube']: r#270 [#460 'texture_cube_array']: r#270 [#460 'texture_depth_2d']: r#270 [#460 'texture_depth_2d_array']: r#270 [#460 'texture_depth_cube']: r#270 [#460 'texture_depth_cube_array']: r#270 [#460 'texture_depth_multisampled_2d']: r#270 [#460 'texture_multisampled_2d']: r#270 [#460 'texture_storage_1d']: r#270 [#460 'texture_storage_2d']: r#270 [#460 'texture_storage_2d_array']: r#270 [#460 'texture_storage_3d']: r#270 [#460 'u32']: r#270 [#460 'var']: r#270 [#460 'vec2']: r#270 [#460 'vec3']: r#270 [#460 'vec4']: r#270 [#460 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#270 [#461 '@']: r#271 [#461 'array']: r#271 [#461 'atomic']: r#271 [#461 'bool']: r#271 [#461 'f16']: r#271 [#461 'f32']: r#271 [#461 'fn']: r#271 [#461 'i32']: r#271 [#461 'mat2x2']: r#271 [#461 'mat2x3']: r#271 [#461 'mat2x4']: r#271 [#461 'mat3x2']: r#271 [#461 'mat3x3']: r#271 [#461 'mat3x4']: r#271 [#461 'mat4x2']: r#271 [#461 'mat4x3']: r#271 [#461 'mat4x4']: r#271 [#461 'override']: r#271 [#461 'ptr']: r#271 [#461 'sampler']: r#271 [#461 'sampler_comparison']: r#271 [#461 'texture_1d']: r#271 [#461 'texture_2d']: r#271 [#461 'texture_2d_array']: r#271 [#461 'texture_3d']: r#271 [#461 'texture_cube']: r#271 [#461 'texture_cube_array']: r#271 [#461 'texture_depth_2d']: r#271 [#461 'texture_depth_2d_array']: r#271 [#461 'texture_depth_cube']: r#271 [#461 'texture_depth_cube_array']: r#271 [#461 'texture_depth_multisampled_2d']: r#271 [#461 'texture_multisampled_2d']: r#271 [#461 'texture_storage_1d']: r#271 [#461 'texture_storage_2d']: r#271 [#461 'texture_storage_2d_array']: r#271 [#461 'texture_storage_3d']: r#271 [#461 'u32']: r#271 [#461 'var']: r#271 [#461 'vec2']: r#271 [#461 'vec3']: r#271 [#461 'vec4']: r#271 [#461 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#271 [#462 '@']: r#272 [#462 'array']: r#272 [#462 'atomic']: r#272 [#462 'bool']: r#272 [#462 'f16']: r#272 [#462 'f32']: r#272 [#462 'fn']: r#272 [#462 'i32']: r#272 [#462 'mat2x2']: r#272 [#462 'mat2x3']: r#272 [#462 'mat2x4']: r#272 [#462 'mat3x2']: r#272 [#462 'mat3x3']: r#272 [#462 'mat3x4']: r#272 [#462 'mat4x2']: r#272 [#462 'mat4x3']: r#272 [#462 'mat4x4']: r#272 [#462 'override']: r#272 [#462 'ptr']: r#272 [#462 'sampler']: r#272 [#462 'sampler_comparison']: r#272 [#462 'texture_1d']: r#272 [#462 'texture_2d']: r#272 [#462 'texture_2d_array']: r#272 [#462 'texture_3d']: r#272 [#462 'texture_cube']: r#272 [#462 'texture_cube_array']: r#272 [#462 'texture_depth_2d']: r#272 [#462 'texture_depth_2d_array']: r#272 [#462 'texture_depth_cube']: r#272 [#462 'texture_depth_cube_array']: r#272 [#462 'texture_depth_multisampled_2d']: r#272 [#462 'texture_multisampled_2d']: r#272 [#462 'texture_storage_1d']: r#272 [#462 'texture_storage_2d']: r#272 [#462 'texture_storage_2d_array']: r#272 [#462 'texture_storage_3d']: r#272 [#462 'u32']: r#272 [#462 'var']: r#272 [#462 'vec2']: r#272 [#462 'vec3']: r#272 [#462 'vec4']: r#272 [#462 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#272 [#463 '@']: r#273 [#463 'array']: r#273 [#463 'atomic']: r#273 [#463 'bool']: r#273 [#463 'f16']: r#273 [#463 'f32']: r#273 [#463 'fn']: r#273 [#463 'i32']: r#273 [#463 'mat2x2']: r#273 [#463 'mat2x3']: r#273 [#463 'mat2x4']: r#273 [#463 'mat3x2']: r#273 [#463 'mat3x3']: r#273 [#463 'mat3x4']: r#273 [#463 'mat4x2']: r#273 [#463 'mat4x3']: r#273 [#463 'mat4x4']: r#273 [#463 'override']: r#273 [#463 'ptr']: r#273 [#463 'sampler']: r#273 [#463 'sampler_comparison']: r#273 [#463 'texture_1d']: r#273 [#463 'texture_2d']: r#273 [#463 'texture_2d_array']: r#273 [#463 'texture_3d']: r#273 [#463 'texture_cube']: r#273 [#463 'texture_cube_array']: r#273 [#463 'texture_depth_2d']: r#273 [#463 'texture_depth_2d_array']: r#273 [#463 'texture_depth_cube']: r#273 [#463 'texture_depth_cube_array']: r#273 [#463 'texture_depth_multisampled_2d']: r#273 [#463 'texture_multisampled_2d']: r#273 [#463 'texture_storage_1d']: r#273 [#463 'texture_storage_2d']: r#273 [#463 'texture_storage_2d_array']: r#273 [#463 'texture_storage_3d']: r#273 [#463 'u32']: r#273 [#463 'var']: r#273 [#463 'vec2']: r#273 [#463 'vec3']: r#273 [#463 'vec4']: r#273 [#463 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#273 [#464 '@']: r#274 [#464 'array']: r#274 [#464 'atomic']: r#274 [#464 'bool']: r#274 [#464 'f16']: r#274 [#464 'f32']: r#274 [#464 'fn']: r#274 [#464 'i32']: r#274 [#464 'mat2x2']: r#274 [#464 'mat2x3']: r#274 [#464 'mat2x4']: r#274 [#464 'mat3x2']: r#274 [#464 'mat3x3']: r#274 [#464 'mat3x4']: r#274 [#464 'mat4x2']: r#274 [#464 'mat4x3']: r#274 [#464 'mat4x4']: r#274 [#464 'override']: r#274 [#464 'ptr']: r#274 [#464 'sampler']: r#274 [#464 'sampler_comparison']: r#274 [#464 'texture_1d']: r#274 [#464 'texture_2d']: r#274 [#464 'texture_2d_array']: r#274 [#464 'texture_3d']: r#274 [#464 'texture_cube']: r#274 [#464 'texture_cube_array']: r#274 [#464 'texture_depth_2d']: r#274 [#464 'texture_depth_2d_array']: r#274 [#464 'texture_depth_cube']: r#274 [#464 'texture_depth_cube_array']: r#274 [#464 'texture_depth_multisampled_2d']: r#274 [#464 'texture_multisampled_2d']: r#274 [#464 'texture_storage_1d']: r#274 [#464 'texture_storage_2d']: r#274 [#464 'texture_storage_2d_array']: r#274 [#464 'texture_storage_3d']: r#274 [#464 'u32']: r#274 [#464 'var']: r#274 [#464 'vec2']: r#274 [#464 'vec3']: r#274 [#464 'vec4']: r#274 [#464 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#274 [#465 ',']: s#456 [#466 ')']: r#275 [#466 ',']: r#275 [#467 ')']: r#276 [#467 ',']: r#276 [#468 ')']: r#277 [#468 ',']: r#277 [#469 '@']: r#278 [#469 'array']: r#278 [#469 'atomic']: r#278 [#469 'bool']: r#278 [#469 'f16']: r#278 [#469 'f32']: r#278 [#469 'fn']: r#278 [#469 'i32']: r#278 [#469 'mat2x2']: r#278 [#469 'mat2x3']: r#278 [#469 'mat2x4']: r#278 [#469 'mat3x2']: r#278 [#469 'mat3x3']: r#278 [#469 'mat3x4']: r#278 [#469 'mat4x2']: r#278 [#469 'mat4x3']: r#278 [#469 'mat4x4']: r#278 [#469 'override']: r#278 [#469 'ptr']: r#278 [#469 'sampler']: r#278 [#469 'sampler_comparison']: r#278 [#469 'texture_1d']: r#278 [#469 'texture_2d']: r#278 [#469 'texture_2d_array']: r#278 [#469 'texture_3d']: r#278 [#469 'texture_cube']: r#278 [#469 'texture_cube_array']: r#278 [#469 'texture_depth_2d']: r#278 [#469 'texture_depth_2d_array']: r#278 [#469 'texture_depth_cube']: r#278 [#469 'texture_depth_cube_array']: r#278 [#469 'texture_depth_multisampled_2d']: r#278 [#469 'texture_multisampled_2d']: r#278 [#469 'texture_storage_1d']: r#278 [#469 'texture_storage_2d']: r#278 [#469 'texture_storage_2d_array']: r#278 [#469 'texture_storage_3d']: r#278 [#469 'u32']: r#278 [#469 'var']: r#278 [#469 'vec2']: r#278 [#469 'vec3']: r#278 [#469 'vec4']: r#278 [#469 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#278 [#470 ',']: s#555 [#471 '!=']: r#279 [#471 '%']: r#279 [#471 '%=']: r#279 [#471 '&&']: r#279 [#471 '&']: r#279 [#471 '&=']: r#279 [#471 ')']: r#279 [#471 '*']: r#279 [#471 '*=']: r#279 [#471 '+']: r#279 [#471 '++']: r#279 [#471 '+=']: r#279 [#471 ',']: r#279 [#471 '-']: r#279 [#471 '--']: r#279 [#471 '-=']: r#279 [#471 '/']: r#279 [#471 '/=']: r#279 [#471 ':']: r#279 [#471 ';']: r#279 [#471 '<']: r#279 [#471 '<<']: r#279 [#471 '<<=']: r#279 [#471 '<=']: r#279 [#471 '=']: r#279 [#471 '==']: r#279 [#471 '>']: r#279 [#471 '>=']: r#279 [#471 '>>']: r#279 [#471 '>>=']: r#279 [#471 ']']: r#279 [#471 '^']: r#279 [#471 '^=']: r#279 [#471 '{']: r#279 [#471 '|']: r#279 [#471 '|=']: r#279 [#471 '||']: r#279 [#472 '!=']: r#280 [#472 '%']: r#280 [#472 '%=']: r#280 [#472 '&&']: r#280 [#472 '&']: r#280 [#472 '&=']: r#280 [#472 ')']: r#280 [#472 '*']: r#280 [#472 '*=']: r#280 [#472 '+']: r#280 [#472 '++']: r#280 [#472 '+=']: r#280 [#472 ',']: r#280 [#472 '-']: r#280 [#472 '--']: r#280 [#472 '-=']: r#280 [#472 '/']: r#280 [#472 '/=']: r#280 [#472 ':']: r#280 [#472 ';']: r#280 [#472 '<']: r#280 [#472 '<<']: r#280 [#472 '<<=']: r#280 [#472 '<=']: r#280 [#472 '=']: r#280 [#472 '==']: r#280 [#472 '>']: r#280 [#472 '>=']: r#280 [#472 '>>']: r#280 [#472 '>>=']: r#280 [#472 ']']: r#280 [#472 '^']: r#280 [#472 '^=']: r#280 [#472 '{']: r#280 [#472 '|']: r#280 [#472 '|=']: r#280 [#472 '||']: r#280 [#473 '!=']: r#281 [#473 '%']: r#281 [#473 '&&']: r#281 [#473 '&']: r#281 [#473 ')']: r#281 [#473 '*']: r#281 [#473 '+']: r#281 [#473 ',']: r#281 [#473 '-']: r#281 [#473 '.']: r#281 [#473 '/']: r#281 [#473 ':']: r#281 [#473 ';']: r#281 [#473 '<']: r#281 [#473 '<<']: r#281 [#473 '<=']: r#281 [#473 '==']: r#281 [#473 '>']: r#281 [#473 '>=']: r#281 [#473 '>>']: r#281 [#473 '[']: r#281 [#473 ']']: r#281 [#473 '^']: r#281 [#473 '{']: r#281 [#473 '|']: r#281 [#473 '||']: r#281 [#474 ')']: r#282 [#474 ',']: r#282 [#475 ')']: r#283 [#475 ',']: r#283 [#476 ')']: r#284 [#477 ')']: r#285 [#478 '>']: r#286 [#479 '+']: s#201 [#479 '-']: s#202 [#479 '>']: r#287 [#480 '>']: r#288 [#481 '%']: r#29 [#481 '&']: r#26 [#481 '*']: r#29 [#481 '+']: r#29 [#481 '-']: r#29 [#481 '/']: r#29 [#481 '>']: r#29 [#481 '^']: r#28 [#481 '|']: r#27 [#482 '(']: r#289 [#482 ')']: r#289 [#482 ',']: r#289 [#482 ';']: r#289 [#482 '=']: r#289 [#482 '>']: r#289 [#482 '{']: r#289 [#482 '}']: r#289 [#483 ',']: s#553 [#484 '>']: s#551 [#485 '>']: r#290 [#486 '>']: r#291 [#487 '>']: r#292 [#488 '!']: s#62 [#488 '&']: s#65 [#488 '(']: s#77 [#488 '*']: s#64 [#488 '-']: s#61 [#488 'array']: s#81 [#488 'atomic']: s#95 [#488 'bitcast']: s#71 [#488 'bool']: s#88 [#488 'f16']: s#90 [#488 'f32']: s#89 [#488 'false']: s#87 [#488 'i32']: s#91 [#488 'mat2x2']: s#100 [#488 'mat2x3']: s#101 [#488 'mat2x4']: s#102 [#488 'mat3x2']: s#103 [#488 'mat3x3']: s#104 [#488 'mat3x4']: s#105 [#488 'mat4x2']: s#106 [#488 'mat4x3']: s#107 [#488 'mat4x4']: s#108 [#488 'ptr']: s#93 [#488 'sampler']: s#125 [#488 'sampler_comparison']: s#126 [#488 'texture_1d']: s#132 [#488 'texture_2d']: s#133 [#488 'texture_2d_array']: s#134 [#488 'texture_3d']: s#135 [#488 'texture_cube']: s#136 [#488 'texture_cube_array']: s#137 [#488 'texture_depth_2d']: s#127 [#488 'texture_depth_2d_array']: s#128 [#488 'texture_depth_cube']: s#129 [#488 'texture_depth_cube_array']: s#130 [#488 'texture_depth_multisampled_2d']: s#131 [#488 'texture_multisampled_2d']: s#138 [#488 'texture_storage_1d']: s#139 [#488 'texture_storage_2d']: s#140 [#488 'texture_storage_2d_array']: s#141 [#488 'texture_storage_3d']: s#142 [#488 'true']: s#86 [#488 'u32']: s#92 [#488 'vec2']: s#97 [#488 'vec3']: s#98 [#488 'vec4']: s#99 [#488 '~']: s#63 [#488 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#488 /0[fh]/]: s#112 [#488 /0[iu]?/]: s#109 [#488 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#488 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#488 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#488 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#488 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#488 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#488 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#488 /[1-9][0-9]*[fh]/]: s#113 [#488 /[1-9][0-9]*[iu]?/]: s#110 [#489 '&']: r#293 [#489 '(']: r#293 [#489 '*']: r#293 [#489 ';']: r#293 [#489 '_']: r#293 [#489 'array']: r#293 [#489 'atomic']: r#293 [#489 'bool']: r#293 [#489 'break']: r#293 [#489 'const']: r#293 [#489 'const_assert']: r#293 [#489 'continue']: r#293 [#489 'continuing']: r#293 [#489 'discard']: r#293 [#489 'else']: r#293 [#489 'f16']: r#293 [#489 'f32']: r#293 [#489 'for']: r#293 [#489 'i32']: r#293 [#489 'if']: r#293 [#489 'let']: r#293 [#489 'loop']: r#293 [#489 'mat2x2']: r#293 [#489 'mat2x3']: r#293 [#489 'mat2x4']: r#293 [#489 'mat3x2']: r#293 [#489 'mat3x3']: r#293 [#489 'mat3x4']: r#293 [#489 'mat4x2']: r#293 [#489 'mat4x3']: r#293 [#489 'mat4x4']: r#293 [#489 'ptr']: r#293 [#489 'return']: r#293 [#489 'sampler']: r#293 [#489 'sampler_comparison']: r#293 [#489 'switch']: r#293 [#489 'texture_1d']: r#293 [#489 'texture_2d']: r#293 [#489 'texture_2d_array']: r#293 [#489 'texture_3d']: r#293 [#489 'texture_cube']: r#293 [#489 'texture_cube_array']: r#293 [#489 'texture_depth_2d']: r#293 [#489 'texture_depth_2d_array']: r#293 [#489 'texture_depth_cube']: r#293 [#489 'texture_depth_cube_array']: r#293 [#489 'texture_depth_multisampled_2d']: r#293 [#489 'texture_multisampled_2d']: r#293 [#489 'texture_storage_1d']: r#293 [#489 'texture_storage_2d']: r#293 [#489 'texture_storage_2d_array']: r#293 [#489 'texture_storage_3d']: r#293 [#489 'u32']: r#293 [#489 'var']: r#293 [#489 'vec2']: r#293 [#489 'vec3']: r#293 [#489 'vec4']: r#293 [#489 'while']: r#293 [#489 '{']: r#293 [#489 '}']: r#293 [#489 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#293 [#490 '&']: r#294 [#490 '(']: r#294 [#490 '*']: r#294 [#490 ';']: r#294 [#490 '_']: r#294 [#490 'array']: r#294 [#490 'atomic']: r#294 [#490 'bool']: r#294 [#490 'break']: r#294 [#490 'const']: r#294 [#490 'const_assert']: r#294 [#490 'continue']: r#294 [#490 'continuing']: r#294 [#490 'discard']: r#294 [#490 'f16']: r#294 [#490 'f32']: r#294 [#490 'for']: r#294 [#490 'i32']: r#294 [#490 'if']: r#294 [#490 'let']: r#294 [#490 'loop']: r#294 [#490 'mat2x2']: r#294 [#490 'mat2x3']: r#294 [#490 'mat2x4']: r#294 [#490 'mat3x2']: r#294 [#490 'mat3x3']: r#294 [#490 'mat3x4']: r#294 [#490 'mat4x2']: r#294 [#490 'mat4x3']: r#294 [#490 'mat4x4']: r#294 [#490 'ptr']: r#294 [#490 'return']: r#294 [#490 'sampler']: r#294 [#490 'sampler_comparison']: r#294 [#490 'switch']: r#294 [#490 'texture_1d']: r#294 [#490 'texture_2d']: r#294 [#490 'texture_2d_array']: r#294 [#490 'texture_3d']: r#294 [#490 'texture_cube']: r#294 [#490 'texture_cube_array']: r#294 [#490 'texture_depth_2d']: r#294 [#490 'texture_depth_2d_array']: r#294 [#490 'texture_depth_cube']: r#294 [#490 'texture_depth_cube_array']: r#294 [#490 'texture_depth_multisampled_2d']: r#294 [#490 'texture_multisampled_2d']: r#294 [#490 'texture_storage_1d']: r#294 [#490 'texture_storage_2d']: r#294 [#490 'texture_storage_2d_array']: r#294 [#490 'texture_storage_3d']: r#294 [#490 'u32']: r#294 [#490 'var']: r#294 [#490 'vec2']: r#294 [#490 'vec3']: r#294 [#490 'vec4']: r#294 [#490 'while']: r#294 [#490 '{']: r#294 [#490 '}']: r#294 [#490 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#294 [#491 '&']: r#295 [#491 '(']: r#295 [#491 '*']: r#295 [#491 ';']: r#295 [#491 '_']: r#295 [#491 'array']: r#295 [#491 'atomic']: r#295 [#491 'bool']: r#295 [#491 'break']: r#295 [#491 'const']: r#295 [#491 'const_assert']: r#295 [#491 'continue']: r#295 [#491 'continuing']: r#295 [#491 'discard']: r#295 [#491 'f16']: r#295 [#491 'f32']: r#295 [#491 'for']: r#295 [#491 'i32']: r#295 [#491 'if']: r#295 [#491 'let']: r#295 [#491 'loop']: r#295 [#491 'mat2x2']: r#295 [#491 'mat2x3']: r#295 [#491 'mat2x4']: r#295 [#491 'mat3x2']: r#295 [#491 'mat3x3']: r#295 [#491 'mat3x4']: r#295 [#491 'mat4x2']: r#295 [#491 'mat4x3']: r#295 [#491 'mat4x4']: r#295 [#491 'ptr']: r#295 [#491 'return']: r#295 [#491 'sampler']: r#295 [#491 'sampler_comparison']: r#295 [#491 'switch']: r#295 [#491 'texture_1d']: r#295 [#491 'texture_2d']: r#295 [#491 'texture_2d_array']: r#295 [#491 'texture_3d']: r#295 [#491 'texture_cube']: r#295 [#491 'texture_cube_array']: r#295 [#491 'texture_depth_2d']: r#295 [#491 'texture_depth_2d_array']: r#295 [#491 'texture_depth_cube']: r#295 [#491 'texture_depth_cube_array']: r#295 [#491 'texture_depth_multisampled_2d']: r#295 [#491 'texture_multisampled_2d']: r#295 [#491 'texture_storage_1d']: r#295 [#491 'texture_storage_2d']: r#295 [#491 'texture_storage_2d_array']: r#295 [#491 'texture_storage_3d']: r#295 [#491 'u32']: r#295 [#491 'var']: r#295 [#491 'vec2']: r#295 [#491 'vec3']: r#295 [#491 'vec4']: r#295 [#491 'while']: r#295 [#491 '{']: r#295 [#491 '}']: r#295 [#491 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#295 [#492 '{']: s#172 [#493 'case']: s#547 [#493 'default']: s#548 [#494 'continuing']: s#541 [#495 'continuing']: r#296 [#495 '}']: r#296 [#496 '&']: s#355 [#496 '(']: s#356 [#496 '*']: s#354 [#496 ';']: s#319 [#496 '_']: s#352 [#496 'array']: s#81 [#496 'atomic']: s#95 [#496 'bool']: s#88 [#496 'break']: s#344 [#496 'const']: s#343 [#496 'const_assert']: s#25 [#496 'continue']: s#345 [#496 'discard']: s#330 [#496 'f16']: s#90 [#496 'f32']: s#89 [#496 'for']: s#338 [#496 'i32']: s#91 [#496 'if']: s#349 [#496 'let']: s#342 [#496 'loop']: s#337 [#496 'mat2x2']: s#100 [#496 'mat2x3']: s#101 [#496 'mat2x4']: s#102 [#496 'mat3x2']: s#103 [#496 'mat3x3']: s#104 [#496 'mat3x4']: s#105 [#496 'mat4x2']: s#106 [#496 'mat4x3']: s#107 [#496 'mat4x4']: s#108 [#496 'ptr']: s#93 [#496 'return']: s#334 [#496 'sampler']: s#125 [#496 'sampler_comparison']: s#126 [#496 'switch']: s#336 [#496 'texture_1d']: s#132 [#496 'texture_2d']: s#133 [#496 'texture_2d_array']: s#134 [#496 'texture_3d']: s#135 [#496 'texture_cube']: s#136 [#496 'texture_cube_array']: s#137 [#496 'texture_depth_2d']: s#127 [#496 'texture_depth_2d_array']: s#128 [#496 'texture_depth_cube']: s#129 [#496 'texture_depth_cube_array']: s#130 [#496 'texture_depth_multisampled_2d']: s#131 [#496 'texture_multisampled_2d']: s#138 [#496 'texture_storage_1d']: s#139 [#496 'texture_storage_2d']: s#140 [#496 'texture_storage_2d_array']: s#141 [#496 'texture_storage_3d']: s#142 [#496 'u32']: s#92 [#496 'var']: s#151 [#496 'vec2']: s#97 [#496 'vec3']: s#98 [#496 'vec4']: s#99 [#496 'while']: s#339 [#496 '{']: s#172 [#496 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#497 ')']: s#537 [#498 ';']: s#536 [#499 ';']: r#297 [#500 ';']: r#298 [#501 ';']: r#299 [#502 ';']: r#300 [#503 '&']: r#301 [#503 '(']: r#301 [#503 '*']: r#301 [#503 ';']: r#301 [#503 '_']: r#301 [#503 'array']: r#301 [#503 'atomic']: r#301 [#503 'bool']: r#301 [#503 'break']: r#301 [#503 'const']: r#301 [#503 'const_assert']: r#301 [#503 'continue']: r#301 [#503 'continuing']: r#301 [#503 'discard']: r#301 [#503 'f16']: r#301 [#503 'f32']: r#301 [#503 'for']: r#301 [#503 'i32']: r#301 [#503 'if']: r#301 [#503 'let']: r#301 [#503 'loop']: r#301 [#503 'mat2x2']: r#301 [#503 'mat2x3']: r#301 [#503 'mat2x4']: r#301 [#503 'mat3x2']: r#301 [#503 'mat3x3']: r#301 [#503 'mat3x4']: r#301 [#503 'mat4x2']: r#301 [#503 'mat4x3']: r#301 [#503 'mat4x4']: r#301 [#503 'ptr']: r#301 [#503 'return']: r#301 [#503 'sampler']: r#301 [#503 'sampler_comparison']: r#301 [#503 'switch']: r#301 [#503 'texture_1d']: r#301 [#503 'texture_2d']: r#301 [#503 'texture_2d_array']: r#301 [#503 'texture_3d']: r#301 [#503 'texture_cube']: r#301 [#503 'texture_cube_array']: r#301 [#503 'texture_depth_2d']: r#301 [#503 'texture_depth_2d_array']: r#301 [#503 'texture_depth_cube']: r#301 [#503 'texture_depth_cube_array']: r#301 [#503 'texture_depth_multisampled_2d']: r#301 [#503 'texture_multisampled_2d']: r#301 [#503 'texture_storage_1d']: r#301 [#503 'texture_storage_2d']: r#301 [#503 'texture_storage_2d_array']: r#301 [#503 'texture_storage_3d']: r#301 [#503 'u32']: r#301 [#503 'var']: r#301 [#503 'vec2']: r#301 [#503 'vec3']: r#301 [#503 'vec4']: r#301 [#503 'while']: r#301 [#503 '{']: r#301 [#503 '}']: r#301 [#503 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#301 [#504 ';']: r#302 [#505 '!']: s#62 [#505 '&']: s#65 [#505 '(']: s#77 [#505 '*']: s#64 [#505 '-']: s#61 [#505 'array']: s#81 [#505 'atomic']: s#95 [#505 'bitcast']: s#71 [#505 'bool']: s#88 [#505 'f16']: s#90 [#505 'f32']: s#89 [#505 'false']: s#87 [#505 'i32']: s#91 [#505 'mat2x2']: s#100 [#505 'mat2x3']: s#101 [#505 'mat2x4']: s#102 [#505 'mat3x2']: s#103 [#505 'mat3x3']: s#104 [#505 'mat3x4']: s#105 [#505 'mat4x2']: s#106 [#505 'mat4x3']: s#107 [#505 'mat4x4']: s#108 [#505 'ptr']: s#93 [#505 'sampler']: s#125 [#505 'sampler_comparison']: s#126 [#505 'texture_1d']: s#132 [#505 'texture_2d']: s#133 [#505 'texture_2d_array']: s#134 [#505 'texture_3d']: s#135 [#505 'texture_cube']: s#136 [#505 'texture_cube_array']: s#137 [#505 'texture_depth_2d']: s#127 [#505 'texture_depth_2d_array']: s#128 [#505 'texture_depth_cube']: s#129 [#505 'texture_depth_cube_array']: s#130 [#505 'texture_depth_multisampled_2d']: s#131 [#505 'texture_multisampled_2d']: s#138 [#505 'texture_storage_1d']: s#139 [#505 'texture_storage_2d']: s#140 [#505 'texture_storage_2d_array']: s#141 [#505 'texture_storage_3d']: s#142 [#505 'true']: s#86 [#505 'u32']: s#92 [#505 'vec2']: s#97 [#505 'vec3']: s#98 [#505 'vec4']: s#99 [#505 '~']: s#63 [#505 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#505 /0[fh]/]: s#112 [#505 /0[iu]?/]: s#109 [#505 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#505 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#505 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#505 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#505 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#505 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#505 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#505 /[1-9][0-9]*[fh]/]: s#113 [#505 /[1-9][0-9]*[iu]?/]: s#110 [#506 '!']: s#62 [#506 '&']: s#65 [#506 '(']: s#77 [#506 '*']: s#64 [#506 '-']: s#61 [#506 'array']: s#81 [#506 'atomic']: s#95 [#506 'bitcast']: s#71 [#506 'bool']: s#88 [#506 'f16']: s#90 [#506 'f32']: s#89 [#506 'false']: s#87 [#506 'i32']: s#91 [#506 'mat2x2']: s#100 [#506 'mat2x3']: s#101 [#506 'mat2x4']: s#102 [#506 'mat3x2']: s#103 [#506 'mat3x3']: s#104 [#506 'mat3x4']: s#105 [#506 'mat4x2']: s#106 [#506 'mat4x3']: s#107 [#506 'mat4x4']: s#108 [#506 'ptr']: s#93 [#506 'sampler']: s#125 [#506 'sampler_comparison']: s#126 [#506 'texture_1d']: s#132 [#506 'texture_2d']: s#133 [#506 'texture_2d_array']: s#134 [#506 'texture_3d']: s#135 [#506 'texture_cube']: s#136 [#506 'texture_cube_array']: s#137 [#506 'texture_depth_2d']: s#127 [#506 'texture_depth_2d_array']: s#128 [#506 'texture_depth_cube']: s#129 [#506 'texture_depth_cube_array']: s#130 [#506 'texture_depth_multisampled_2d']: s#131 [#506 'texture_multisampled_2d']: s#138 [#506 'texture_storage_1d']: s#139 [#506 'texture_storage_2d']: s#140 [#506 'texture_storage_2d_array']: s#141 [#506 'texture_storage_3d']: s#142 [#506 'true']: s#86 [#506 'u32']: s#92 [#506 'vec2']: s#97 [#506 'vec3']: s#98 [#506 'vec4']: s#99 [#506 '~']: s#63 [#506 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#506 /0[fh]/]: s#112 [#506 /0[iu]?/]: s#109 [#506 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#506 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#506 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#506 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#506 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#506 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#506 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#506 /[1-9][0-9]*[fh]/]: s#113 [#506 /[1-9][0-9]*[iu]?/]: s#110 [#507 '&']: r#303 [#507 '(']: r#303 [#507 '*']: r#303 [#507 ';']: r#303 [#507 '_']: r#303 [#507 'array']: r#303 [#507 'atomic']: r#303 [#507 'bool']: r#303 [#507 'break']: r#303 [#507 'const']: r#303 [#507 'const_assert']: r#303 [#507 'continue']: r#303 [#507 'continuing']: r#303 [#507 'discard']: r#303 [#507 'else']: r#303 [#507 'f16']: r#303 [#507 'f32']: r#303 [#507 'for']: r#303 [#507 'i32']: r#303 [#507 'if']: r#303 [#507 'let']: r#303 [#507 'loop']: r#303 [#507 'mat2x2']: r#303 [#507 'mat2x3']: r#303 [#507 'mat2x4']: r#303 [#507 'mat3x2']: r#303 [#507 'mat3x3']: r#303 [#507 'mat3x4']: r#303 [#507 'mat4x2']: r#303 [#507 'mat4x3']: r#303 [#507 'mat4x4']: r#303 [#507 'ptr']: r#303 [#507 'return']: r#303 [#507 'sampler']: r#303 [#507 'sampler_comparison']: r#303 [#507 'switch']: r#303 [#507 'texture_1d']: r#303 [#507 'texture_2d']: r#303 [#507 'texture_2d_array']: r#303 [#507 'texture_3d']: r#303 [#507 'texture_cube']: r#303 [#507 'texture_cube_array']: r#303 [#507 'texture_depth_2d']: r#303 [#507 'texture_depth_2d_array']: r#303 [#507 'texture_depth_cube']: r#303 [#507 'texture_depth_cube_array']: r#303 [#507 'texture_depth_multisampled_2d']: r#303 [#507 'texture_multisampled_2d']: r#303 [#507 'texture_storage_1d']: r#303 [#507 'texture_storage_2d']: r#303 [#507 'texture_storage_2d_array']: r#303 [#507 'texture_storage_3d']: r#303 [#507 'u32']: r#303 [#507 'var']: r#303 [#507 'vec2']: r#303 [#507 'vec3']: r#303 [#507 'vec4']: r#303 [#507 'while']: r#303 [#507 '{']: r#303 [#507 '}']: r#303 [#507 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#303 [#508 ')']: r#304 [#508 ';']: r#304 [#509 ')']: r#305 [#509 ';']: r#305 [#510 '%=']: r#306 [#510 '&=']: r#306 [#510 ')']: r#306 [#510 '*=']: r#306 [#510 '++']: r#306 [#510 '+=']: r#306 [#510 '--']: r#306 [#510 '-=']: r#306 [#510 '.']: r#306 [#510 '/=']: r#306 [#510 '<<=']: r#306 [#510 '=']: r#306 [#510 '>>=']: r#306 [#510 '[']: r#306 [#510 '^=']: r#306 [#510 '|=']: r#306 [#511 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#307 [#512 ':']: s#533 [#513 ',']: s#532 [#514 ')']: r#308 [#514 ',']: r#308 [#515 ',']: s#516 [#516 '@']: s#30 [#517 '->']: s#528 [#518 ',']: r#309 [#518 '}']: r#309 [#519 ',']: r#310 [#519 '}']: r#310 [#520 '}']: s#526 [#521 '}']: r#311 [#522 'array']: s#281 [#522 'atomic']: s#95 [#522 'bool']: s#88 [#522 'f16']: s#90 [#522 'f32']: s#89 [#522 'i32']: s#91 [#522 'mat2x2']: s#100 [#522 'mat2x3']: s#101 [#522 'mat2x4']: s#102 [#522 'mat3x2']: s#103 [#522 'mat3x3']: s#104 [#522 'mat3x4']: s#105 [#522 'mat4x2']: s#106 [#522 'mat4x3']: s#107 [#522 'mat4x4']: s#108 [#522 'ptr']: s#93 [#522 'sampler']: s#125 [#522 'sampler_comparison']: s#126 [#522 'texture_1d']: s#132 [#522 'texture_2d']: s#133 [#522 'texture_2d_array']: s#134 [#522 'texture_3d']: s#135 [#522 'texture_cube']: s#136 [#522 'texture_cube_array']: s#137 [#522 'texture_depth_2d']: s#127 [#522 'texture_depth_2d_array']: s#128 [#522 'texture_depth_cube']: s#129 [#522 'texture_depth_cube_array']: s#130 [#522 'texture_depth_multisampled_2d']: s#131 [#522 'texture_multisampled_2d']: s#138 [#522 'texture_storage_1d']: s#139 [#522 'texture_storage_2d']: s#140 [#522 'texture_storage_2d_array']: s#141 [#522 'texture_storage_3d']: s#142 [#522 'u32']: s#92 [#522 'vec2']: s#97 [#522 'vec3']: s#98 [#522 'vec4']: s#99 [#522 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#523 '>']: r#312 [#524 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#313 [#525 ',']: r#314 [#525 '}']: r#314 [#526 ';']: r#315 [#526 '@']: r#315 [#526 'alias']: r#315 [#526 'const']: r#315 [#526 'const_assert']: r#315 [#526 'fn']: r#315 [#526 'override']: r#315 [#526 'struct']: r#315 [#526 'var']: r#315 [#526 EndOfText]: r#315 [#527 '{']: r#316 [#528 '@']: s#30 [#529 ')']: r#317 [#529 ',']: r#317 [#530 ')']: r#318 [#530 ',']: r#318 [#531 ')']: r#319 [#532 ')']: r#320 [#533 'array']: s#281 [#533 'atomic']: s#95 [#533 'bool']: s#88 [#533 'f16']: s#90 [#533 'f32']: s#89 [#533 'i32']: s#91 [#533 'mat2x2']: s#100 [#533 'mat2x3']: s#101 [#533 'mat2x4']: s#102 [#533 'mat3x2']: s#103 [#533 'mat3x3']: s#104 [#533 'mat3x4']: s#105 [#533 'mat4x2']: s#106 [#533 'mat4x3']: s#107 [#533 'mat4x4']: s#108 [#533 'ptr']: s#93 [#533 'sampler']: s#125 [#533 'sampler_comparison']: s#126 [#533 'texture_1d']: s#132 [#533 'texture_2d']: s#133 [#533 'texture_2d_array']: s#134 [#533 'texture_3d']: s#135 [#533 'texture_cube']: s#136 [#533 'texture_cube_array']: s#137 [#533 'texture_depth_2d']: s#127 [#533 'texture_depth_2d_array']: s#128 [#533 'texture_depth_cube']: s#129 [#533 'texture_depth_cube_array']: s#130 [#533 'texture_depth_multisampled_2d']: s#131 [#533 'texture_multisampled_2d']: s#138 [#533 'texture_storage_1d']: s#139 [#533 'texture_storage_2d']: s#140 [#533 'texture_storage_2d_array']: s#141 [#533 'texture_storage_3d']: s#142 [#533 'u32']: s#92 [#533 'vec2']: s#97 [#533 'vec3']: s#98 [#533 'vec4']: s#99 [#533 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#534 ';']: r#321 [#535 ';']: r#322 [#536 '!']: s#62 [#536 '&']: s#65 [#536 '(']: s#77 [#536 '*']: s#64 [#536 '-']: s#61 [#536 'array']: s#81 [#536 'atomic']: s#95 [#536 'bitcast']: s#71 [#536 'bool']: s#88 [#536 'f16']: s#90 [#536 'f32']: s#89 [#536 'false']: s#87 [#536 'i32']: s#91 [#536 'mat2x2']: s#100 [#536 'mat2x3']: s#101 [#536 'mat2x4']: s#102 [#536 'mat3x2']: s#103 [#536 'mat3x3']: s#104 [#536 'mat3x4']: s#105 [#536 'mat4x2']: s#106 [#536 'mat4x3']: s#107 [#536 'mat4x4']: s#108 [#536 'ptr']: s#93 [#536 'sampler']: s#125 [#536 'sampler_comparison']: s#126 [#536 'texture_1d']: s#132 [#536 'texture_2d']: s#133 [#536 'texture_2d_array']: s#134 [#536 'texture_3d']: s#135 [#536 'texture_cube']: s#136 [#536 'texture_cube_array']: s#137 [#536 'texture_depth_2d']: s#127 [#536 'texture_depth_2d_array']: s#128 [#536 'texture_depth_cube']: s#129 [#536 'texture_depth_cube_array']: s#130 [#536 'texture_depth_multisampled_2d']: s#131 [#536 'texture_multisampled_2d']: s#138 [#536 'texture_storage_1d']: s#139 [#536 'texture_storage_2d']: s#140 [#536 'texture_storage_2d_array']: s#141 [#536 'texture_storage_3d']: s#142 [#536 'true']: s#86 [#536 'u32']: s#92 [#536 'vec2']: s#97 [#536 'vec3']: s#98 [#536 'vec4']: s#99 [#536 '~']: s#63 [#536 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#536 /0[fh]/]: s#112 [#536 /0[iu]?/]: s#109 [#536 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#536 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#536 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#536 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#536 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#536 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#536 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#536 /[1-9][0-9]*[fh]/]: s#113 [#536 /[1-9][0-9]*[iu]?/]: s#110 [#537 '{']: s#172 [#538 'continuing']: r#323 [#538 '}']: r#323 [#539 '}']: s#571 [#540 '}']: r#324 [#541 '{']: s#570 [#542 '}']: s#568 [#543 '}']: r#325 [#544 'case']: s#547 [#544 'default']: s#548 [#545 'case']: r#326 [#545 'default']: r#326 [#545 '}']: r#326 [#546 'case']: r#327 [#546 'default']: r#327 [#546 '}']: r#327 [#547 '!']: s#62 [#547 '&']: s#65 [#547 '(']: s#77 [#547 '*']: s#64 [#547 '-']: s#61 [#547 'array']: s#81 [#547 'atomic']: s#95 [#547 'bitcast']: s#71 [#547 'bool']: s#88 [#547 'default']: s#565 [#547 'f16']: s#90 [#547 'f32']: s#89 [#547 'false']: s#87 [#547 'i32']: s#91 [#547 'mat2x2']: s#100 [#547 'mat2x3']: s#101 [#547 'mat2x4']: s#102 [#547 'mat3x2']: s#103 [#547 'mat3x3']: s#104 [#547 'mat3x4']: s#105 [#547 'mat4x2']: s#106 [#547 'mat4x3']: s#107 [#547 'mat4x4']: s#108 [#547 'ptr']: s#93 [#547 'sampler']: s#125 [#547 'sampler_comparison']: s#126 [#547 'texture_1d']: s#132 [#547 'texture_2d']: s#133 [#547 'texture_2d_array']: s#134 [#547 'texture_3d']: s#135 [#547 'texture_cube']: s#136 [#547 'texture_cube_array']: s#137 [#547 'texture_depth_2d']: s#127 [#547 'texture_depth_2d_array']: s#128 [#547 'texture_depth_cube']: s#129 [#547 'texture_depth_cube_array']: s#130 [#547 'texture_depth_multisampled_2d']: s#131 [#547 'texture_multisampled_2d']: s#138 [#547 'texture_storage_1d']: s#139 [#547 'texture_storage_2d']: s#140 [#547 'texture_storage_2d_array']: s#141 [#547 'texture_storage_3d']: s#142 [#547 'true']: s#86 [#547 'u32']: s#92 [#547 'vec2']: s#97 [#547 'vec3']: s#98 [#547 'vec4']: s#99 [#547 '~']: s#63 [#547 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#547 /0[fh]/]: s#112 [#547 /0[iu]?/]: s#109 [#547 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#547 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#547 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#547 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#547 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#547 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#547 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#547 /[1-9][0-9]*[fh]/]: s#113 [#547 /[1-9][0-9]*[iu]?/]: s#110 [#548 ':']: s#562 [#549 '&']: r#328 [#549 '(']: r#328 [#549 '*']: r#328 [#549 ';']: r#328 [#549 '_']: r#328 [#549 'array']: r#328 [#549 'atomic']: r#328 [#549 'bool']: r#328 [#549 'break']: r#328 [#549 'const']: r#328 [#549 'const_assert']: r#328 [#549 'continue']: r#328 [#549 'continuing']: r#328 [#549 'discard']: r#328 [#549 'f16']: r#328 [#549 'f32']: r#328 [#549 'for']: r#328 [#549 'i32']: r#328 [#549 'if']: r#328 [#549 'let']: r#328 [#549 'loop']: r#328 [#549 'mat2x2']: r#328 [#549 'mat2x3']: r#328 [#549 'mat2x4']: r#328 [#549 'mat3x2']: r#328 [#549 'mat3x3']: r#328 [#549 'mat3x4']: r#328 [#549 'mat4x2']: r#328 [#549 'mat4x3']: r#328 [#549 'mat4x4']: r#328 [#549 'ptr']: r#328 [#549 'return']: r#328 [#549 'sampler']: r#328 [#549 'sampler_comparison']: r#328 [#549 'switch']: r#328 [#549 'texture_1d']: r#328 [#549 'texture_2d']: r#328 [#549 'texture_2d_array']: r#328 [#549 'texture_3d']: r#328 [#549 'texture_cube']: r#328 [#549 'texture_cube_array']: r#328 [#549 'texture_depth_2d']: r#328 [#549 'texture_depth_2d_array']: r#328 [#549 'texture_depth_cube']: r#328 [#549 'texture_depth_cube_array']: r#328 [#549 'texture_depth_multisampled_2d']: r#328 [#549 'texture_multisampled_2d']: r#328 [#549 'texture_storage_1d']: r#328 [#549 'texture_storage_2d']: r#328 [#549 'texture_storage_2d_array']: r#328 [#549 'texture_storage_3d']: r#328 [#549 'u32']: r#328 [#549 'var']: r#328 [#549 'vec2']: r#328 [#549 'vec3']: r#328 [#549 'vec4']: r#328 [#549 'while']: r#328 [#549 '{']: r#328 [#549 '}']: r#328 [#549 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#328 [#550 '{']: s#172 [#551 '(']: r#329 [#551 ')']: r#329 [#551 ',']: r#329 [#551 ';']: r#329 [#551 '=']: r#329 [#551 '>']: r#329 [#551 '{']: r#329 [#551 '}']: r#329 [#552 '>']: s#559 [#553 'read']: s#485 [#553 'read_write']: s#487 [#553 'write']: s#486 [#554 '@']: r#330 [#554 'array']: r#330 [#554 'atomic']: r#330 [#554 'bool']: r#330 [#554 'f16']: r#330 [#554 'f32']: r#330 [#554 'fn']: r#330 [#554 'i32']: r#330 [#554 'mat2x2']: r#330 [#554 'mat2x3']: r#330 [#554 'mat2x4']: r#330 [#554 'mat3x2']: r#330 [#554 'mat3x3']: r#330 [#554 'mat3x4']: r#330 [#554 'mat4x2']: r#330 [#554 'mat4x3']: r#330 [#554 'mat4x4']: r#330 [#554 'override']: r#330 [#554 'ptr']: r#330 [#554 'sampler']: r#330 [#554 'sampler_comparison']: r#330 [#554 'texture_1d']: r#330 [#554 'texture_2d']: r#330 [#554 'texture_2d_array']: r#330 [#554 'texture_3d']: r#330 [#554 'texture_cube']: r#330 [#554 'texture_cube_array']: r#330 [#554 'texture_depth_2d']: r#330 [#554 'texture_depth_2d_array']: r#330 [#554 'texture_depth_cube']: r#330 [#554 'texture_depth_cube_array']: r#330 [#554 'texture_depth_multisampled_2d']: r#330 [#554 'texture_multisampled_2d']: r#330 [#554 'texture_storage_1d']: r#330 [#554 'texture_storage_2d']: r#330 [#554 'texture_storage_2d_array']: r#330 [#554 'texture_storage_3d']: r#330 [#554 'u32']: r#330 [#554 'var']: r#330 [#554 'vec2']: r#330 [#554 'vec3']: r#330 [#554 'vec4']: r#330 [#554 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#330 [#555 '!']: s#62 [#555 '&']: s#65 [#555 '(']: s#77 [#555 ')']: r#266 [#555 '*']: s#64 [#555 '-']: s#61 [#555 'array']: s#81 [#555 'atomic']: s#95 [#555 'bitcast']: s#71 [#555 'bool']: s#88 [#555 'f16']: s#90 [#555 'f32']: s#89 [#555 'false']: s#87 [#555 'i32']: s#91 [#555 'mat2x2']: s#100 [#555 'mat2x3']: s#101 [#555 'mat2x4']: s#102 [#555 'mat3x2']: s#103 [#555 'mat3x3']: s#104 [#555 'mat3x4']: s#105 [#555 'mat4x2']: s#106 [#555 'mat4x3']: s#107 [#555 'mat4x4']: s#108 [#555 'ptr']: s#93 [#555 'sampler']: s#125 [#555 'sampler_comparison']: s#126 [#555 'texture_1d']: s#132 [#555 'texture_2d']: s#133 [#555 'texture_2d_array']: s#134 [#555 'texture_3d']: s#135 [#555 'texture_cube']: s#136 [#555 'texture_cube_array']: s#137 [#555 'texture_depth_2d']: s#127 [#555 'texture_depth_2d_array']: s#128 [#555 'texture_depth_cube']: s#129 [#555 'texture_depth_cube_array']: s#130 [#555 'texture_depth_multisampled_2d']: s#131 [#555 'texture_multisampled_2d']: s#138 [#555 'texture_storage_1d']: s#139 [#555 'texture_storage_2d']: s#140 [#555 'texture_storage_2d_array']: s#141 [#555 'texture_storage_3d']: s#142 [#555 'true']: s#86 [#555 'u32']: s#92 [#555 'vec2']: s#97 [#555 'vec3']: s#98 [#555 'vec4']: s#99 [#555 '~']: s#63 [#555 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#555 /0[fh]/]: s#112 [#555 /0[iu]?/]: s#109 [#555 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#555 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#555 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#555 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#555 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#555 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#555 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#555 /[1-9][0-9]*[fh]/]: s#113 [#555 /[1-9][0-9]*[iu]?/]: s#110 [#556 '@']: r#331 [#556 'array']: r#331 [#556 'atomic']: r#331 [#556 'bool']: r#331 [#556 'f16']: r#331 [#556 'f32']: r#331 [#556 'fn']: r#331 [#556 'i32']: r#331 [#556 'mat2x2']: r#331 [#556 'mat2x3']: r#331 [#556 'mat2x4']: r#331 [#556 'mat3x2']: r#331 [#556 'mat3x3']: r#331 [#556 'mat3x4']: r#331 [#556 'mat4x2']: r#331 [#556 'mat4x3']: r#331 [#556 'mat4x4']: r#331 [#556 'override']: r#331 [#556 'ptr']: r#331 [#556 'sampler']: r#331 [#556 'sampler_comparison']: r#331 [#556 'texture_1d']: r#331 [#556 'texture_2d']: r#331 [#556 'texture_2d_array']: r#331 [#556 'texture_3d']: r#331 [#556 'texture_cube']: r#331 [#556 'texture_cube_array']: r#331 [#556 'texture_depth_2d']: r#331 [#556 'texture_depth_2d_array']: r#331 [#556 'texture_depth_cube']: r#331 [#556 'texture_depth_cube_array']: r#331 [#556 'texture_depth_multisampled_2d']: r#331 [#556 'texture_multisampled_2d']: r#331 [#556 'texture_storage_1d']: r#331 [#556 'texture_storage_2d']: r#331 [#556 'texture_storage_2d_array']: r#331 [#556 'texture_storage_3d']: r#331 [#556 'u32']: r#331 [#556 'var']: r#331 [#556 'vec2']: r#331 [#556 'vec3']: r#331 [#556 'vec4']: r#331 [#556 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#331 [#557 ',']: s#456 [#558 '>']: r#332 [#559 '(']: r#333 [#559 ')']: r#333 [#559 ',']: r#333 [#559 ';']: r#333 [#559 '=']: r#333 [#559 '>']: r#333 [#559 '{']: r#333 [#559 '}']: r#333 [#560 '&']: r#334 [#560 '(']: r#334 [#560 '*']: r#334 [#560 ';']: r#334 [#560 '_']: r#334 [#560 'array']: r#334 [#560 'atomic']: r#334 [#560 'bool']: r#334 [#560 'break']: r#334 [#560 'const']: r#334 [#560 'const_assert']: r#334 [#560 'continue']: r#334 [#560 'continuing']: r#334 [#560 'discard']: r#334 [#560 'else']: r#334 [#560 'f16']: r#334 [#560 'f32']: r#334 [#560 'for']: r#334 [#560 'i32']: r#334 [#560 'if']: r#334 [#560 'let']: r#334 [#560 'loop']: r#334 [#560 'mat2x2']: r#334 [#560 'mat2x3']: r#334 [#560 'mat2x4']: r#334 [#560 'mat3x2']: r#334 [#560 'mat3x3']: r#334 [#560 'mat3x4']: r#334 [#560 'mat4x2']: r#334 [#560 'mat4x3']: r#334 [#560 'mat4x4']: r#334 [#560 'ptr']: r#334 [#560 'return']: r#334 [#560 'sampler']: r#334 [#560 'sampler_comparison']: r#334 [#560 'switch']: r#334 [#560 'texture_1d']: r#334 [#560 'texture_2d']: r#334 [#560 'texture_2d_array']: r#334 [#560 'texture_3d']: r#334 [#560 'texture_cube']: r#334 [#560 'texture_cube_array']: r#334 [#560 'texture_depth_2d']: r#334 [#560 'texture_depth_2d_array']: r#334 [#560 'texture_depth_cube']: r#334 [#560 'texture_depth_cube_array']: r#334 [#560 'texture_depth_multisampled_2d']: r#334 [#560 'texture_multisampled_2d']: r#334 [#560 'texture_storage_1d']: r#334 [#560 'texture_storage_2d']: r#334 [#560 'texture_storage_2d_array']: r#334 [#560 'texture_storage_3d']: r#334 [#560 'u32']: r#334 [#560 'var']: r#334 [#560 'vec2']: r#334 [#560 'vec3']: r#334 [#560 'vec4']: r#334 [#560 'while']: r#334 [#560 '{']: r#334 [#560 '}']: r#334 [#560 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#334 [#561 '{']: s#172 [#562 '{']: r#335 [#563 ':']: s#590 [#564 ',']: s#588 [#565 ',']: r#336 [#565 ':']: r#336 [#565 '{']: r#336 [#566 ',']: r#337 [#566 ':']: r#337 [#566 '{']: r#337 [#567 '}']: r#338 [#568 '&']: r#339 [#568 '(']: r#339 [#568 '*']: r#339 [#568 ';']: r#339 [#568 '_']: r#339 [#568 'array']: r#339 [#568 'atomic']: r#339 [#568 'bool']: r#339 [#568 'break']: r#339 [#568 'const']: r#339 [#568 'const_assert']: r#339 [#568 'continue']: r#339 [#568 'continuing']: r#339 [#568 'discard']: r#339 [#568 'f16']: r#339 [#568 'f32']: r#339 [#568 'for']: r#339 [#568 'i32']: r#339 [#568 'if']: r#339 [#568 'let']: r#339 [#568 'loop']: r#339 [#568 'mat2x2']: r#339 [#568 'mat2x3']: r#339 [#568 'mat2x4']: r#339 [#568 'mat3x2']: r#339 [#568 'mat3x3']: r#339 [#568 'mat3x4']: r#339 [#568 'mat4x2']: r#339 [#568 'mat4x3']: r#339 [#568 'mat4x4']: r#339 [#568 'ptr']: r#339 [#568 'return']: r#339 [#568 'sampler']: r#339 [#568 'sampler_comparison']: r#339 [#568 'switch']: r#339 [#568 'texture_1d']: r#339 [#568 'texture_2d']: r#339 [#568 'texture_2d_array']: r#339 [#568 'texture_3d']: r#339 [#568 'texture_cube']: r#339 [#568 'texture_cube_array']: r#339 [#568 'texture_depth_2d']: r#339 [#568 'texture_depth_2d_array']: r#339 [#568 'texture_depth_cube']: r#339 [#568 'texture_depth_cube_array']: r#339 [#568 'texture_depth_multisampled_2d']: r#339 [#568 'texture_multisampled_2d']: r#339 [#568 'texture_storage_1d']: r#339 [#568 'texture_storage_2d']: r#339 [#568 'texture_storage_2d_array']: r#339 [#568 'texture_storage_3d']: r#339 [#568 'u32']: r#339 [#568 'var']: r#339 [#568 'vec2']: r#339 [#568 'vec3']: r#339 [#568 'vec4']: r#339 [#568 'while']: r#339 [#568 '{']: r#339 [#568 '}']: r#339 [#568 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#339 [#569 '}']: r#340 [#570 '&']: s#355 [#570 '(']: s#356 [#570 '*']: s#354 [#570 ';']: s#319 [#570 '_']: s#352 [#570 'array']: s#81 [#570 'atomic']: s#95 [#570 'bool']: s#88 [#570 'break']: s#344 [#570 'const']: s#343 [#570 'const_assert']: s#25 [#570 'continue']: s#345 [#570 'discard']: s#330 [#570 'f16']: s#90 [#570 'f32']: s#89 [#570 'for']: s#338 [#570 'i32']: s#91 [#570 'if']: s#349 [#570 'let']: s#342 [#570 'loop']: s#337 [#570 'mat2x2']: s#100 [#570 'mat2x3']: s#101 [#570 'mat2x4']: s#102 [#570 'mat3x2']: s#103 [#570 'mat3x3']: s#104 [#570 'mat3x4']: s#105 [#570 'mat4x2']: s#106 [#570 'mat4x3']: s#107 [#570 'mat4x4']: s#108 [#570 'ptr']: s#93 [#570 'return']: s#334 [#570 'sampler']: s#125 [#570 'sampler_comparison']: s#126 [#570 'switch']: s#336 [#570 'texture_1d']: s#132 [#570 'texture_2d']: s#133 [#570 'texture_2d_array']: s#134 [#570 'texture_3d']: s#135 [#570 'texture_cube']: s#136 [#570 'texture_cube_array']: s#137 [#570 'texture_depth_2d']: s#127 [#570 'texture_depth_2d_array']: s#128 [#570 'texture_depth_cube']: s#129 [#570 'texture_depth_cube_array']: s#130 [#570 'texture_depth_multisampled_2d']: s#131 [#570 'texture_multisampled_2d']: s#138 [#570 'texture_storage_1d']: s#139 [#570 'texture_storage_2d']: s#140 [#570 'texture_storage_2d_array']: s#141 [#570 'texture_storage_3d']: s#142 [#570 'u32']: s#92 [#570 'var']: s#151 [#570 'vec2']: s#97 [#570 'vec3']: s#98 [#570 'vec4']: s#99 [#570 'while']: s#339 [#570 '{']: s#172 [#570 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#571 '&']: r#341 [#571 '(']: r#341 [#571 '*']: r#341 [#571 ';']: r#341 [#571 '_']: r#341 [#571 'array']: r#341 [#571 'atomic']: r#341 [#571 'bool']: r#341 [#571 'break']: r#341 [#571 'const']: r#341 [#571 'const_assert']: r#341 [#571 'continue']: r#341 [#571 'continuing']: r#341 [#571 'discard']: r#341 [#571 'f16']: r#341 [#571 'f32']: r#341 [#571 'for']: r#341 [#571 'i32']: r#341 [#571 'if']: r#341 [#571 'let']: r#341 [#571 'loop']: r#341 [#571 'mat2x2']: r#341 [#571 'mat2x3']: r#341 [#571 'mat2x4']: r#341 [#571 'mat3x2']: r#341 [#571 'mat3x3']: r#341 [#571 'mat3x4']: r#341 [#571 'mat4x2']: r#341 [#571 'mat4x3']: r#341 [#571 'mat4x4']: r#341 [#571 'ptr']: r#341 [#571 'return']: r#341 [#571 'sampler']: r#341 [#571 'sampler_comparison']: r#341 [#571 'switch']: r#341 [#571 'texture_1d']: r#341 [#571 'texture_2d']: r#341 [#571 'texture_2d_array']: r#341 [#571 'texture_3d']: r#341 [#571 'texture_cube']: r#341 [#571 'texture_cube_array']: r#341 [#571 'texture_depth_2d']: r#341 [#571 'texture_depth_2d_array']: r#341 [#571 'texture_depth_cube']: r#341 [#571 'texture_depth_cube_array']: r#341 [#571 'texture_depth_multisampled_2d']: r#341 [#571 'texture_multisampled_2d']: r#341 [#571 'texture_storage_1d']: r#341 [#571 'texture_storage_2d']: r#341 [#571 'texture_storage_2d_array']: r#341 [#571 'texture_storage_3d']: r#341 [#571 'u32']: r#341 [#571 'var']: r#341 [#571 'vec2']: r#341 [#571 'vec3']: r#341 [#571 'vec4']: r#341 [#571 'while']: r#341 [#571 '{']: r#341 [#571 '}']: r#341 [#571 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#341 [#572 '&']: r#342 [#572 '(']: r#342 [#572 '*']: r#342 [#572 ';']: r#342 [#572 '_']: r#342 [#572 'array']: r#342 [#572 'atomic']: r#342 [#572 'bool']: r#342 [#572 'break']: r#342 [#572 'const']: r#342 [#572 'const_assert']: r#342 [#572 'continue']: r#342 [#572 'continuing']: r#342 [#572 'discard']: r#342 [#572 'f16']: r#342 [#572 'f32']: r#342 [#572 'for']: r#342 [#572 'i32']: r#342 [#572 'if']: r#342 [#572 'let']: r#342 [#572 'loop']: r#342 [#572 'mat2x2']: r#342 [#572 'mat2x3']: r#342 [#572 'mat2x4']: r#342 [#572 'mat3x2']: r#342 [#572 'mat3x3']: r#342 [#572 'mat3x4']: r#342 [#572 'mat4x2']: r#342 [#572 'mat4x3']: r#342 [#572 'mat4x4']: r#342 [#572 'ptr']: r#342 [#572 'return']: r#342 [#572 'sampler']: r#342 [#572 'sampler_comparison']: r#342 [#572 'switch']: r#342 [#572 'texture_1d']: r#342 [#572 'texture_2d']: r#342 [#572 'texture_2d_array']: r#342 [#572 'texture_3d']: r#342 [#572 'texture_cube']: r#342 [#572 'texture_cube_array']: r#342 [#572 'texture_depth_2d']: r#342 [#572 'texture_depth_2d_array']: r#342 [#572 'texture_depth_cube']: r#342 [#572 'texture_depth_cube_array']: r#342 [#572 'texture_depth_multisampled_2d']: r#342 [#572 'texture_multisampled_2d']: r#342 [#572 'texture_storage_1d']: r#342 [#572 'texture_storage_2d']: r#342 [#572 'texture_storage_2d_array']: r#342 [#572 'texture_storage_3d']: r#342 [#572 'u32']: r#342 [#572 'var']: r#342 [#572 'vec2']: r#342 [#572 'vec3']: r#342 [#572 'vec4']: r#342 [#572 'while']: r#342 [#572 '{']: r#342 [#572 '}']: r#342 [#572 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#342 [#573 ';']: s#581 [#574 ';']: r#343 [#575 ')']: r#344 [#575 ',']: r#344 [#576 'array']: s#281 [#576 'atomic']: s#95 [#576 'bool']: s#88 [#576 'f16']: s#90 [#576 'f32']: s#89 [#576 'i32']: s#91 [#576 'mat2x2']: s#100 [#576 'mat2x3']: s#101 [#576 'mat2x4']: s#102 [#576 'mat3x2']: s#103 [#576 'mat3x3']: s#104 [#576 'mat3x4']: s#105 [#576 'mat4x2']: s#106 [#576 'mat4x3']: s#107 [#576 'mat4x4']: s#108 [#576 'ptr']: s#93 [#576 'sampler']: s#125 [#576 'sampler_comparison']: s#126 [#576 'texture_1d']: s#132 [#576 'texture_2d']: s#133 [#576 'texture_2d_array']: s#134 [#576 'texture_3d']: s#135 [#576 'texture_cube']: s#136 [#576 'texture_cube_array']: s#137 [#576 'texture_depth_2d']: s#127 [#576 'texture_depth_2d_array']: s#128 [#576 'texture_depth_cube']: s#129 [#576 'texture_depth_cube_array']: s#130 [#576 'texture_depth_multisampled_2d']: s#131 [#576 'texture_multisampled_2d']: s#138 [#576 'texture_storage_1d']: s#139 [#576 'texture_storage_2d']: s#140 [#576 'texture_storage_2d_array']: s#141 [#576 'texture_storage_3d']: s#142 [#576 'u32']: s#92 [#576 'vec2']: s#97 [#576 'vec3']: s#98 [#576 'vec4']: s#99 [#576 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#577 'array']: r#345 [#577 'atomic']: r#345 [#577 'bool']: r#345 [#577 'f16']: r#345 [#577 'f32']: r#345 [#577 'i32']: r#345 [#577 'mat2x2']: r#345 [#577 'mat2x3']: r#345 [#577 'mat2x4']: r#345 [#577 'mat3x2']: r#345 [#577 'mat3x3']: r#345 [#577 'mat3x4']: r#345 [#577 'mat4x2']: r#345 [#577 'mat4x3']: r#345 [#577 'mat4x4']: r#345 [#577 'ptr']: r#345 [#577 'sampler']: r#345 [#577 'sampler_comparison']: r#345 [#577 'texture_1d']: r#345 [#577 'texture_2d']: r#345 [#577 'texture_2d_array']: r#345 [#577 'texture_3d']: r#345 [#577 'texture_cube']: r#345 [#577 'texture_cube_array']: r#345 [#577 'texture_depth_2d']: r#345 [#577 'texture_depth_2d_array']: r#345 [#577 'texture_depth_cube']: r#345 [#577 'texture_depth_cube_array']: r#345 [#577 'texture_depth_multisampled_2d']: r#345 [#577 'texture_multisampled_2d']: r#345 [#577 'texture_storage_1d']: r#345 [#577 'texture_storage_2d']: r#345 [#577 'texture_storage_2d_array']: r#345 [#577 'texture_storage_3d']: r#345 [#577 'u32']: r#345 [#577 'vec2']: r#345 [#577 'vec3']: r#345 [#577 'vec4']: r#345 [#577 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#345 [#578 '@']: s#30 [#579 'array']: r#346 [#579 'atomic']: r#346 [#579 'bool']: r#346 [#579 'f16']: r#346 [#579 'f32']: r#346 [#579 'i32']: r#346 [#579 'mat2x2']: r#346 [#579 'mat2x3']: r#346 [#579 'mat2x4']: r#346 [#579 'mat3x2']: r#346 [#579 'mat3x3']: r#346 [#579 'mat3x4']: r#346 [#579 'mat4x2']: r#346 [#579 'mat4x3']: r#346 [#579 'mat4x4']: r#346 [#579 'ptr']: r#346 [#579 'sampler']: r#346 [#579 'sampler_comparison']: r#346 [#579 'texture_1d']: r#346 [#579 'texture_2d']: r#346 [#579 'texture_2d_array']: r#346 [#579 'texture_3d']: r#346 [#579 'texture_cube']: r#346 [#579 'texture_cube_array']: r#346 [#579 'texture_depth_2d']: r#346 [#579 'texture_depth_2d_array']: r#346 [#579 'texture_depth_cube']: r#346 [#579 'texture_depth_cube_array']: r#346 [#579 'texture_depth_multisampled_2d']: r#346 [#579 'texture_multisampled_2d']: r#346 [#579 'texture_storage_1d']: r#346 [#579 'texture_storage_2d']: r#346 [#579 'texture_storage_2d_array']: r#346 [#579 'texture_storage_3d']: r#346 [#579 'u32']: r#346 [#579 'vec2']: r#346 [#579 'vec3']: r#346 [#579 'vec4']: r#346 [#579 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#346 [#580 '{']: r#347 [#581 '&']: s#355 [#581 '(']: s#356 [#581 '*']: s#354 [#581 '_']: s#352 [#581 'array']: s#81 [#581 'atomic']: s#95 [#581 'bool']: s#88 [#581 'f16']: s#90 [#581 'f32']: s#89 [#581 'i32']: s#91 [#581 'mat2x2']: s#100 [#581 'mat2x3']: s#101 [#581 'mat2x4']: s#102 [#581 'mat3x2']: s#103 [#581 'mat3x3']: s#104 [#581 'mat3x4']: s#105 [#581 'mat4x2']: s#106 [#581 'mat4x3']: s#107 [#581 'mat4x4']: s#108 [#581 'ptr']: s#93 [#581 'sampler']: s#125 [#581 'sampler_comparison']: s#126 [#581 'texture_1d']: s#132 [#581 'texture_2d']: s#133 [#581 'texture_2d_array']: s#134 [#581 'texture_3d']: s#135 [#581 'texture_cube']: s#136 [#581 'texture_cube_array']: s#137 [#581 'texture_depth_2d']: s#127 [#581 'texture_depth_2d_array']: s#128 [#581 'texture_depth_cube']: s#129 [#581 'texture_depth_cube_array']: s#130 [#581 'texture_depth_multisampled_2d']: s#131 [#581 'texture_multisampled_2d']: s#138 [#581 'texture_storage_1d']: s#139 [#581 'texture_storage_2d']: s#140 [#581 'texture_storage_2d_array']: s#141 [#581 'texture_storage_3d']: s#142 [#581 'u32']: s#92 [#581 'vec2']: s#97 [#581 'vec3']: s#98 [#581 'vec4']: s#99 [#581 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#582 'break']: s#601 [#583 'break']: r#348 [#583 '}']: r#348 [#584 '&']: s#355 [#584 '(']: s#356 [#584 '*']: s#354 [#584 ';']: s#319 [#584 '_']: s#352 [#584 'array']: s#81 [#584 'atomic']: s#95 [#584 'bool']: s#88 [#584 'break']: s#344 [#584 'const']: s#343 [#584 'const_assert']: s#25 [#584 'continue']: s#345 [#584 'discard']: s#330 [#584 'f16']: s#90 [#584 'f32']: s#89 [#584 'for']: s#338 [#584 'i32']: s#91 [#584 'if']: s#349 [#584 'let']: s#342 [#584 'loop']: s#337 [#584 'mat2x2']: s#100 [#584 'mat2x3']: s#101 [#584 'mat2x4']: s#102 [#584 'mat3x2']: s#103 [#584 'mat3x3']: s#104 [#584 'mat3x4']: s#105 [#584 'mat4x2']: s#106 [#584 'mat4x3']: s#107 [#584 'mat4x4']: s#108 [#584 'ptr']: s#93 [#584 'return']: s#334 [#584 'sampler']: s#125 [#584 'sampler_comparison']: s#126 [#584 'switch']: s#336 [#584 'texture_1d']: s#132 [#584 'texture_2d']: s#133 [#584 'texture_2d_array']: s#134 [#584 'texture_3d']: s#135 [#584 'texture_cube']: s#136 [#584 'texture_cube_array']: s#137 [#584 'texture_depth_2d']: s#127 [#584 'texture_depth_2d_array']: s#128 [#584 'texture_depth_cube']: s#129 [#584 'texture_depth_cube_array']: s#130 [#584 'texture_depth_multisampled_2d']: s#131 [#584 'texture_multisampled_2d']: s#138 [#584 'texture_storage_1d']: s#139 [#584 'texture_storage_2d']: s#140 [#584 'texture_storage_2d_array']: s#141 [#584 'texture_storage_3d']: s#142 [#584 'u32']: s#92 [#584 'var']: s#151 [#584 'vec2']: s#97 [#584 'vec3']: s#98 [#584 'vec4']: s#99 [#584 'while']: s#339 [#584 '{']: s#172 [#584 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#585 ',']: s#597 [#586 ',']: r#349 [#586 ':']: r#349 [#586 '{']: r#349 [#587 ',']: s#588 [#588 '!']: s#62 [#588 '&']: s#65 [#588 '(']: s#77 [#588 '*']: s#64 [#588 '-']: s#61 [#588 'array']: s#81 [#588 'atomic']: s#95 [#588 'bitcast']: s#71 [#588 'bool']: s#88 [#588 'default']: s#565 [#588 'f16']: s#90 [#588 'f32']: s#89 [#588 'false']: s#87 [#588 'i32']: s#91 [#588 'mat2x2']: s#100 [#588 'mat2x3']: s#101 [#588 'mat2x4']: s#102 [#588 'mat3x2']: s#103 [#588 'mat3x3']: s#104 [#588 'mat3x4']: s#105 [#588 'mat4x2']: s#106 [#588 'mat4x3']: s#107 [#588 'mat4x4']: s#108 [#588 'ptr']: s#93 [#588 'sampler']: s#125 [#588 'sampler_comparison']: s#126 [#588 'texture_1d']: s#132 [#588 'texture_2d']: s#133 [#588 'texture_2d_array']: s#134 [#588 'texture_3d']: s#135 [#588 'texture_cube']: s#136 [#588 'texture_cube_array']: s#137 [#588 'texture_depth_2d']: s#127 [#588 'texture_depth_2d_array']: s#128 [#588 'texture_depth_cube']: s#129 [#588 'texture_depth_cube_array']: s#130 [#588 'texture_depth_multisampled_2d']: s#131 [#588 'texture_multisampled_2d']: s#138 [#588 'texture_storage_1d']: s#139 [#588 'texture_storage_2d']: s#140 [#588 'texture_storage_2d_array']: s#141 [#588 'texture_storage_3d']: s#142 [#588 'true']: s#86 [#588 'u32']: s#92 [#588 'vec2']: s#97 [#588 'vec3']: s#98 [#588 'vec4']: s#99 [#588 '~']: s#63 [#588 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#588 /0[fh]/]: s#112 [#588 /0[iu]?/]: s#109 [#588 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#588 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#588 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#588 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#588 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#588 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#588 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#588 /[1-9][0-9]*[fh]/]: s#113 [#588 /[1-9][0-9]*[iu]?/]: s#110 [#589 '{']: s#172 [#590 '{']: r#350 [#591 'case']: r#351 [#591 'default']: r#351 [#591 '}']: r#351 [#592 '@']: r#352 [#592 'array']: r#352 [#592 'atomic']: r#352 [#592 'bool']: r#352 [#592 'f16']: r#352 [#592 'f32']: r#352 [#592 'fn']: r#352 [#592 'i32']: r#352 [#592 'mat2x2']: r#352 [#592 'mat2x3']: r#352 [#592 'mat2x4']: r#352 [#592 'mat3x2']: r#352 [#592 'mat3x3']: r#352 [#592 'mat3x4']: r#352 [#592 'mat4x2']: r#352 [#592 'mat4x3']: r#352 [#592 'mat4x4']: r#352 [#592 'override']: r#352 [#592 'ptr']: r#352 [#592 'sampler']: r#352 [#592 'sampler_comparison']: r#352 [#592 'texture_1d']: r#352 [#592 'texture_2d']: r#352 [#592 'texture_2d_array']: r#352 [#592 'texture_3d']: r#352 [#592 'texture_cube']: r#352 [#592 'texture_cube_array']: r#352 [#592 'texture_depth_2d']: r#352 [#592 'texture_depth_2d_array']: r#352 [#592 'texture_depth_cube']: r#352 [#592 'texture_depth_cube_array']: r#352 [#592 'texture_depth_multisampled_2d']: r#352 [#592 'texture_multisampled_2d']: r#352 [#592 'texture_storage_1d']: r#352 [#592 'texture_storage_2d']: r#352 [#592 'texture_storage_2d_array']: r#352 [#592 'texture_storage_3d']: r#352 [#592 'u32']: r#352 [#592 'var']: r#352 [#592 'vec2']: r#352 [#592 'vec3']: r#352 [#592 'vec4']: r#352 [#592 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: r#352 [#593 'case']: r#353 [#593 'default']: r#353 [#593 '}']: r#353 [#594 ',']: r#354 [#594 ':']: r#354 [#594 '{']: r#354 [#595 ',']: r#355 [#595 ':']: r#355 [#595 '{']: r#355 [#596 ':']: r#356 [#596 '{']: r#356 [#597 ':']: r#357 [#597 '{']: r#357 [#598 'break']: r#358 [#598 '}']: r#358 [#599 '}']: s#607 [#600 '}']: r#359 [#601 'if']: s#606 [#602 ')']: r#360 [#603 ')']: r#361 [#604 ')']: r#362 [#605 ')']: r#363 [#606 '!']: s#62 [#606 '&']: s#65 [#606 '(']: s#77 [#606 '*']: s#64 [#606 '-']: s#61 [#606 'array']: s#81 [#606 'atomic']: s#95 [#606 'bitcast']: s#71 [#606 'bool']: s#88 [#606 'f16']: s#90 [#606 'f32']: s#89 [#606 'false']: s#87 [#606 'i32']: s#91 [#606 'mat2x2']: s#100 [#606 'mat2x3']: s#101 [#606 'mat2x4']: s#102 [#606 'mat3x2']: s#103 [#606 'mat3x3']: s#104 [#606 'mat3x4']: s#105 [#606 'mat4x2']: s#106 [#606 'mat4x3']: s#107 [#606 'mat4x4']: s#108 [#606 'ptr']: s#93 [#606 'sampler']: s#125 [#606 'sampler_comparison']: s#126 [#606 'texture_1d']: s#132 [#606 'texture_2d']: s#133 [#606 'texture_2d_array']: s#134 [#606 'texture_3d']: s#135 [#606 'texture_cube']: s#136 [#606 'texture_cube_array']: s#137 [#606 'texture_depth_2d']: s#127 [#606 'texture_depth_2d_array']: s#128 [#606 'texture_depth_cube']: s#129 [#606 'texture_depth_cube_array']: s#130 [#606 'texture_depth_multisampled_2d']: s#131 [#606 'texture_multisampled_2d']: s#138 [#606 'texture_storage_1d']: s#139 [#606 'texture_storage_2d']: s#140 [#606 'texture_storage_2d_array']: s#141 [#606 'texture_storage_3d']: s#142 [#606 'true']: s#86 [#606 'u32']: s#92 [#606 'vec2']: s#97 [#606 'vec3']: s#98 [#606 'vec4']: s#99 [#606 '~']: s#63 [#606 /([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/]: s#72 [#606 /0[fh]/]: s#112 [#606 /0[iu]?/]: s#109 [#606 /0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+([pP][+-]?[0-9]+[fh]?)?/]: s#117 [#606 /0[xX][0-9a-fA-F]+[iu]?/]: s#111 [#606 /0[xX][0-9a-fA-F]+[pP][+-]?[0-9]+[fh]?/]: s#119 [#606 /0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*([pP][+-]?[0-9]+[fh]?)?/]: s#118 [#606 /[0-9]*\.[0-9]+([eE][+-]?[0-9]+)?[fh]?/]: s#114 [#606 /[0-9]+[eE][+-]?[0-9]+[fh]?/]: s#116 [#606 /[0-9]+\.[0-9]*([eE][+-]?[0-9]+)?[fh]?/]: s#115 [#606 /[1-9][0-9]*[fh]/]: s#113 [#606 /[1-9][0-9]*[iu]?/]: s#110 [#607 '}']: r#364 [#608 ';']: s#609 [#609 '}']: r#365 =Goto: [#0 global_directive]: #4 [#0 translation_unit]: #1 [#0 translation_unit/0.0]: #2 [#0 translation_unit/0.0/0]: #3 [#2 attribute]: #29 [#2 const_assert_statement]: #18 [#2 function_decl]: #17 [#2 function_decl/0.0]: #24 [#2 function_decl/0.0/0]: #28 [#2 global_constant_decl]: #14 [#2 global_constant_decl/1.0]: #21 [#2 global_constant_decl/1.0/0]: #27 [#2 global_decl]: #11 [#2 global_variable_decl]: #13 [#2 global_variable_decl/0.0]: #19 [#2 global_variable_decl/0.0/0]: #26 [#2 struct_decl]: #16 [#2 translation_unit/0.1]: #9 [#2 translation_unit/0.1/0]: #10 [#2 type_alias_decl]: #15 [#4 global_directive]: #4 [#4 translation_unit/0.0/0]: #8 [#5 extension_name]: #6 [#11 attribute]: #29 [#11 const_assert_statement]: #18 [#11 function_decl]: #17 [#11 function_decl/0.0]: #24 [#11 function_decl/0.0/0]: #28 [#11 global_constant_decl]: #14 [#11 global_constant_decl/1.0]: #21 [#11 global_constant_decl/1.0/0]: #27 [#11 global_decl]: #11 [#11 global_variable_decl]: #13 [#11 global_variable_decl/0.0]: #19 [#11 global_variable_decl/0.0/0]: #26 [#11 struct_decl]: #16 [#11 translation_unit/0.1/0]: #156 [#11 type_alias_decl]: #15 [#19 variable_decl]: #150 [#20 ident]: #149 [#20 optionally_typed_ident]: #148 [#22 ident]: #146 [#23 ident]: #145 [#24 function_header]: #143 [#25 additive_expression]: #57 [#25 array_type_specifier]: #94 [#25 binary_and_expression]: #54 [#25 binary_or_expression]: #55 [#25 binary_xor_expression]: #56 [#25 bitwise_expression]: #52 [#25 bool_literal]: #76 [#25 call_expression]: #68 [#25 callable]: #73 [#25 decimal_float_literal]: #84 [#25 decimal_int_literal]: #82 [#25 depth_texture_type]: #121 [#25 expression]: #48 [#25 float_literal]: #75 [#25 hex_float_literal]: #85 [#25 hex_int_literal]: #83 [#25 ident]: #67 [#25 int_literal]: #74 [#25 literal]: #69 [#25 mat_prefix]: #80 [#25 multiplicative_expression]: #59 [#25 multisampled_texture_type]: #123 [#25 paren_expression]: #70 [#25 primary_expression]: #66 [#25 relational_expression]: #49 [#25 sampled_texture_type]: #122 [#25 sampler_type]: #120 [#25 shift_expression]: #53 [#25 short_circuit_and_expression]: #51 [#25 short_circuit_or_expression]: #50 [#25 singular_expression]: #60 [#25 storage_texture_type]: #124 [#25 texture_and_sampler_types]: #96 [#25 type_specifier_without_ident]: #78 [#25 unary_expression]: #58 [#25 vec_prefix]: #79 [#29 attribute]: #29 [#29 function_decl/0.0/0]: #47 [#29 global_constant_decl/1.0/0]: #46 [#29 global_variable_decl/0.0/0]: #45 [#57 additive_operator]: #200 [#59 multiplicative_operator]: #194 [#61 array_type_specifier]: #94 [#61 bool_literal]: #76 [#61 call_expression]: #68 [#61 callable]: #73 [#61 decimal_float_literal]: #84 [#61 decimal_int_literal]: #82 [#61 depth_texture_type]: #121 [#61 float_literal]: #75 [#61 hex_float_literal]: #85 [#61 hex_int_literal]: #83 [#61 ident]: #67 [#61 int_literal]: #74 [#61 literal]: #69 [#61 mat_prefix]: #80 [#61 multisampled_texture_type]: #123 [#61 paren_expression]: #70 [#61 primary_expression]: #66 [#61 sampled_texture_type]: #122 [#61 sampler_type]: #120 [#61 singular_expression]: #60 [#61 storage_texture_type]: #124 [#61 texture_and_sampler_types]: #96 [#61 type_specifier_without_ident]: #78 [#61 unary_expression]: #193 [#61 vec_prefix]: #79 [#62 array_type_specifier]: #94 [#62 bool_literal]: #76 [#62 call_expression]: #68 [#62 callable]: #73 [#62 decimal_float_literal]: #84 [#62 decimal_int_literal]: #82 [#62 depth_texture_type]: #121 [#62 float_literal]: #75 [#62 hex_float_literal]: #85 [#62 hex_int_literal]: #83 [#62 ident]: #67 [#62 int_literal]: #74 [#62 literal]: #69 [#62 mat_prefix]: #80 [#62 multisampled_texture_type]: #123 [#62 paren_expression]: #70 [#62 primary_expression]: #66 [#62 sampled_texture_type]: #122 [#62 sampler_type]: #120 [#62 singular_expression]: #60 [#62 storage_texture_type]: #124 [#62 texture_and_sampler_types]: #96 [#62 type_specifier_without_ident]: #78 [#62 unary_expression]: #192 [#62 vec_prefix]: #79 [#63 array_type_specifier]: #94 [#63 bool_literal]: #76 [#63 call_expression]: #68 [#63 callable]: #73 [#63 decimal_float_literal]: #84 [#63 decimal_int_literal]: #82 [#63 depth_texture_type]: #121 [#63 float_literal]: #75 [#63 hex_float_literal]: #85 [#63 hex_int_literal]: #83 [#63 ident]: #67 [#63 int_literal]: #74 [#63 literal]: #69 [#63 mat_prefix]: #80 [#63 multisampled_texture_type]: #123 [#63 paren_expression]: #70 [#63 primary_expression]: #66 [#63 sampled_texture_type]: #122 [#63 sampler_type]: #120 [#63 singular_expression]: #60 [#63 storage_texture_type]: #124 [#63 texture_and_sampler_types]: #96 [#63 type_specifier_without_ident]: #78 [#63 unary_expression]: #191 [#63 vec_prefix]: #79 [#64 array_type_specifier]: #94 [#64 bool_literal]: #76 [#64 call_expression]: #68 [#64 callable]: #73 [#64 decimal_float_literal]: #84 [#64 decimal_int_literal]: #82 [#64 depth_texture_type]: #121 [#64 float_literal]: #75 [#64 hex_float_literal]: #85 [#64 hex_int_literal]: #83 [#64 ident]: #67 [#64 int_literal]: #74 [#64 literal]: #69 [#64 mat_prefix]: #80 [#64 multisampled_texture_type]: #123 [#64 paren_expression]: #70 [#64 primary_expression]: #66 [#64 sampled_texture_type]: #122 [#64 sampler_type]: #120 [#64 singular_expression]: #60 [#64 storage_texture_type]: #124 [#64 texture_and_sampler_types]: #96 [#64 type_specifier_without_ident]: #78 [#64 unary_expression]: #190 [#64 vec_prefix]: #79 [#65 array_type_specifier]: #94 [#65 bool_literal]: #76 [#65 call_expression]: #68 [#65 callable]: #73 [#65 decimal_float_literal]: #84 [#65 decimal_int_literal]: #82 [#65 depth_texture_type]: #121 [#65 float_literal]: #75 [#65 hex_float_literal]: #85 [#65 hex_int_literal]: #83 [#65 ident]: #67 [#65 int_literal]: #74 [#65 literal]: #69 [#65 mat_prefix]: #80 [#65 multisampled_texture_type]: #123 [#65 paren_expression]: #70 [#65 primary_expression]: #66 [#65 sampled_texture_type]: #122 [#65 sampler_type]: #120 [#65 singular_expression]: #60 [#65 storage_texture_type]: #124 [#65 texture_and_sampler_types]: #96 [#65 type_specifier_without_ident]: #78 [#65 unary_expression]: #189 [#65 vec_prefix]: #79 [#66 component_or_swizzle_specifier]: #186 [#66 singular_expression/0.1]: #185 [#73 argument_expression_list]: #182 [#77 additive_expression]: #57 [#77 array_type_specifier]: #94 [#77 binary_and_expression]: #54 [#77 binary_or_expression]: #55 [#77 binary_xor_expression]: #56 [#77 bitwise_expression]: #52 [#77 bool_literal]: #76 [#77 call_expression]: #68 [#77 callable]: #73 [#77 decimal_float_literal]: #84 [#77 decimal_int_literal]: #82 [#77 depth_texture_type]: #121 [#77 expression]: #181 [#77 float_literal]: #75 [#77 hex_float_literal]: #85 [#77 hex_int_literal]: #83 [#77 ident]: #67 [#77 int_literal]: #74 [#77 literal]: #69 [#77 mat_prefix]: #80 [#77 multiplicative_expression]: #59 [#77 multisampled_texture_type]: #123 [#77 paren_expression]: #70 [#77 primary_expression]: #66 [#77 relational_expression]: #49 [#77 sampled_texture_type]: #122 [#77 sampler_type]: #120 [#77 shift_expression]: #53 [#77 short_circuit_and_expression]: #51 [#77 short_circuit_or_expression]: #50 [#77 singular_expression]: #60 [#77 storage_texture_type]: #124 [#77 texture_and_sampler_types]: #96 [#77 type_specifier_without_ident]: #78 [#77 unary_expression]: #58 [#77 vec_prefix]: #79 [#143 compound_statement]: #171 [#144 ident]: #170 [#145 struct_body_decl]: #168 [#147 ident]: #149 [#147 optionally_typed_ident]: #166 [#149 optionally_typed_ident/0.1]: #163 [#150 global_variable_decl/0.2]: #161 [#151 variable_decl/0.1]: #158 [#151 variable_qualifier]: #159 [#158 ident]: #149 [#158 optionally_typed_ident]: #369 [#160 address_space]: #368 [#162 additive_expression]: #57 [#162 array_type_specifier]: #94 [#162 binary_and_expression]: #54 [#162 binary_or_expression]: #55 [#162 binary_xor_expression]: #56 [#162 bitwise_expression]: #52 [#162 bool_literal]: #76 [#162 call_expression]: #68 [#162 callable]: #73 [#162 decimal_float_literal]: #84 [#162 decimal_int_literal]: #82 [#162 depth_texture_type]: #121 [#162 expression]: #367 [#162 float_literal]: #75 [#162 hex_float_literal]: #85 [#162 hex_int_literal]: #83 [#162 ident]: #67 [#162 int_literal]: #74 [#162 literal]: #69 [#162 mat_prefix]: #80 [#162 multiplicative_expression]: #59 [#162 multisampled_texture_type]: #123 [#162 paren_expression]: #70 [#162 primary_expression]: #66 [#162 relational_expression]: #49 [#162 sampled_texture_type]: #122 [#162 sampler_type]: #120 [#162 shift_expression]: #53 [#162 short_circuit_and_expression]: #51 [#162 short_circuit_or_expression]: #50 [#162 singular_expression]: #60 [#162 storage_texture_type]: #124 [#162 texture_and_sampler_types]: #96 [#162 type_specifier_without_ident]: #78 [#162 unary_expression]: #58 [#162 vec_prefix]: #79 [#164 array_type_specifier]: #94 [#164 depth_texture_type]: #121 [#164 ident]: #277 [#164 mat_prefix]: #280 [#164 multisampled_texture_type]: #123 [#164 sampled_texture_type]: #122 [#164 sampler_type]: #120 [#164 storage_texture_type]: #124 [#164 texture_and_sampler_types]: #96 [#164 type_specifier]: #366 [#164 type_specifier_without_ident]: #278 [#164 vec_prefix]: #279 [#165 additive_expression]: #57 [#165 array_type_specifier]: #94 [#165 binary_and_expression]: #54 [#165 binary_or_expression]: #55 [#165 binary_xor_expression]: #56 [#165 bitwise_expression]: #52 [#165 bool_literal]: #76 [#165 call_expression]: #68 [#165 callable]: #73 [#165 decimal_float_literal]: #84 [#165 decimal_int_literal]: #82 [#165 depth_texture_type]: #121 [#165 expression]: #365 [#165 float_literal]: #75 [#165 hex_float_literal]: #85 [#165 hex_int_literal]: #83 [#165 ident]: #67 [#165 int_literal]: #74 [#165 literal]: #69 [#165 mat_prefix]: #80 [#165 multiplicative_expression]: #59 [#165 multisampled_texture_type]: #123 [#165 paren_expression]: #70 [#165 primary_expression]: #66 [#165 relational_expression]: #49 [#165 sampled_texture_type]: #122 [#165 sampler_type]: #120 [#165 shift_expression]: #53 [#165 short_circuit_and_expression]: #51 [#165 short_circuit_or_expression]: #50 [#165 singular_expression]: #60 [#165 storage_texture_type]: #124 [#165 texture_and_sampler_types]: #96 [#165 type_specifier_without_ident]: #78 [#165 unary_expression]: #58 [#165 vec_prefix]: #79 [#166 global_constant_decl/1.3]: #363 [#167 array_type_specifier]: #94 [#167 depth_texture_type]: #121 [#167 ident]: #277 [#167 mat_prefix]: #280 [#167 multisampled_texture_type]: #123 [#167 sampled_texture_type]: #122 [#167 sampler_type]: #120 [#167 storage_texture_type]: #124 [#167 texture_and_sampler_types]: #96 [#167 type_specifier]: #362 [#167 type_specifier_without_ident]: #278 [#167 vec_prefix]: #279 [#169 attribute]: #361 [#169 struct_member]: #358 [#169 struct_member/0.0]: #359 [#169 struct_member/0.0/0]: #360 [#172 array_type_specifier]: #94 [#172 assignment_statement]: #346 [#172 break_statement]: #328 [#172 callable]: #340 [#172 compound_statement]: #332 [#172 compound_statement/0.1]: #316 [#172 compound_statement/0.1/0]: #317 [#172 const_assert_statement]: #333 [#172 continue_statement]: #329 [#172 core_lhs_expression]: #353 [#172 decrement_statement]: #348 [#172 depth_texture_type]: #121 [#172 for_statement]: #324 [#172 func_call_statement]: #326 [#172 ident]: #350 [#172 if_clause]: #335 [#172 if_statement]: #321 [#172 increment_statement]: #347 [#172 lhs_expression]: #351 [#172 loop_statement]: #323 [#172 mat_prefix]: #80 [#172 multisampled_texture_type]: #123 [#172 return_statement]: #320 [#172 sampled_texture_type]: #122 [#172 sampler_type]: #120 [#172 statement]: #318 [#172 storage_texture_type]: #124 [#172 switch_statement]: #322 [#172 texture_and_sampler_types]: #96 [#172 type_specifier_without_ident]: #78 [#172 variable_decl]: #341 [#172 variable_statement]: #327 [#172 variable_updating_statement]: #331 [#172 vec_prefix]: #79 [#172 while_statement]: #325 [#173 texel_format]: #298 [#174 array_type_specifier]: #94 [#174 depth_texture_type]: #121 [#174 ident]: #277 [#174 mat_prefix]: #280 [#174 multisampled_texture_type]: #123 [#174 sampled_texture_type]: #122 [#174 sampler_type]: #120 [#174 storage_texture_type]: #124 [#174 texture_and_sampler_types]: #96 [#174 type_specifier]: #297 [#174 type_specifier_without_ident]: #278 [#174 vec_prefix]: #279 [#175 array_type_specifier]: #94 [#175 depth_texture_type]: #121 [#175 ident]: #277 [#175 mat_prefix]: #280 [#175 multisampled_texture_type]: #123 [#175 sampled_texture_type]: #122 [#175 sampler_type]: #120 [#175 storage_texture_type]: #124 [#175 texture_and_sampler_types]: #96 [#175 type_specifier]: #296 [#175 type_specifier_without_ident]: #278 [#175 vec_prefix]: #279 [#176 array_type_specifier]: #94 [#176 depth_texture_type]: #121 [#176 ident]: #277 [#176 mat_prefix]: #280 [#176 multisampled_texture_type]: #123 [#176 sampled_texture_type]: #122 [#176 sampler_type]: #120 [#176 storage_texture_type]: #124 [#176 texture_and_sampler_types]: #96 [#176 type_specifier]: #295 [#176 type_specifier_without_ident]: #278 [#176 vec_prefix]: #279 [#177 address_space]: #289 [#178 array_type_specifier]: #94 [#178 depth_texture_type]: #121 [#178 ident]: #277 [#178 mat_prefix]: #280 [#178 multisampled_texture_type]: #123 [#178 sampled_texture_type]: #122 [#178 sampler_type]: #120 [#178 storage_texture_type]: #124 [#178 texture_and_sampler_types]: #96 [#178 type_specifier]: #288 [#178 type_specifier_without_ident]: #278 [#178 vec_prefix]: #279 [#179 array_type_specifier]: #94 [#179 depth_texture_type]: #121 [#179 ident]: #277 [#179 mat_prefix]: #280 [#179 multisampled_texture_type]: #123 [#179 sampled_texture_type]: #122 [#179 sampler_type]: #120 [#179 storage_texture_type]: #124 [#179 texture_and_sampler_types]: #96 [#179 type_specifier]: #287 [#179 type_specifier_without_ident]: #278 [#179 vec_prefix]: #279 [#180 array_type_specifier]: #94 [#180 depth_texture_type]: #121 [#180 ident]: #277 [#180 mat_prefix]: #280 [#180 multisampled_texture_type]: #123 [#180 sampled_texture_type]: #122 [#180 sampler_type]: #120 [#180 storage_texture_type]: #124 [#180 texture_and_sampler_types]: #96 [#180 type_specifier]: #286 [#180 type_specifier_without_ident]: #278 [#180 vec_prefix]: #279 [#183 additive_expression]: #57 [#183 argument_expression_list/0.1]: #282 [#183 array_type_specifier]: #94 [#183 binary_and_expression]: #54 [#183 binary_or_expression]: #55 [#183 binary_xor_expression]: #56 [#183 bitwise_expression]: #52 [#183 bool_literal]: #76 [#183 call_expression]: #68 [#183 callable]: #73 [#183 decimal_float_literal]: #84 [#183 decimal_int_literal]: #82 [#183 depth_texture_type]: #121 [#183 expression]: #284 [#183 expression_comma_list]: #283 [#183 float_literal]: #75 [#183 hex_float_literal]: #85 [#183 hex_int_literal]: #83 [#183 ident]: #67 [#183 int_literal]: #74 [#183 literal]: #69 [#183 mat_prefix]: #80 [#183 multiplicative_expression]: #59 [#183 multisampled_texture_type]: #123 [#183 paren_expression]: #70 [#183 primary_expression]: #66 [#183 relational_expression]: #49 [#183 sampled_texture_type]: #122 [#183 sampler_type]: #120 [#183 shift_expression]: #53 [#183 short_circuit_and_expression]: #51 [#183 short_circuit_or_expression]: #50 [#183 singular_expression]: #60 [#183 storage_texture_type]: #124 [#183 texture_and_sampler_types]: #96 [#183 type_specifier_without_ident]: #78 [#183 unary_expression]: #58 [#183 vec_prefix]: #79 [#184 array_type_specifier]: #94 [#184 depth_texture_type]: #121 [#184 ident]: #277 [#184 mat_prefix]: #280 [#184 multisampled_texture_type]: #123 [#184 sampled_texture_type]: #122 [#184 sampler_type]: #120 [#184 storage_texture_type]: #124 [#184 texture_and_sampler_types]: #96 [#184 type_specifier]: #276 [#184 type_specifier_without_ident]: #278 [#184 vec_prefix]: #279 [#187 additive_expression]: #57 [#187 array_type_specifier]: #94 [#187 binary_and_expression]: #54 [#187 binary_or_expression]: #55 [#187 binary_xor_expression]: #56 [#187 bitwise_expression]: #52 [#187 bool_literal]: #76 [#187 call_expression]: #68 [#187 callable]: #73 [#187 decimal_float_literal]: #84 [#187 decimal_int_literal]: #82 [#187 depth_texture_type]: #121 [#187 expression]: #275 [#187 float_literal]: #75 [#187 hex_float_literal]: #85 [#187 hex_int_literal]: #83 [#187 ident]: #67 [#187 int_literal]: #74 [#187 literal]: #69 [#187 mat_prefix]: #80 [#187 multiplicative_expression]: #59 [#187 multisampled_texture_type]: #123 [#187 paren_expression]: #70 [#187 primary_expression]: #66 [#187 relational_expression]: #49 [#187 sampled_texture_type]: #122 [#187 sampler_type]: #120 [#187 shift_expression]: #53 [#187 short_circuit_and_expression]: #51 [#187 short_circuit_or_expression]: #50 [#187 singular_expression]: #60 [#187 storage_texture_type]: #124 [#187 texture_and_sampler_types]: #96 [#187 type_specifier_without_ident]: #78 [#187 unary_expression]: #58 [#187 vec_prefix]: #79 [#188 member_ident]: #264 [#188 swizzle_name]: #265 [#194 array_type_specifier]: #94 [#194 bool_literal]: #76 [#194 call_expression]: #68 [#194 callable]: #73 [#194 decimal_float_literal]: #84 [#194 decimal_int_literal]: #82 [#194 depth_texture_type]: #121 [#194 float_literal]: #75 [#194 hex_float_literal]: #85 [#194 hex_int_literal]: #83 [#194 ident]: #67 [#194 int_literal]: #74 [#194 literal]: #69 [#194 mat_prefix]: #80 [#194 multisampled_texture_type]: #123 [#194 paren_expression]: #70 [#194 primary_expression]: #66 [#194 sampled_texture_type]: #122 [#194 sampler_type]: #120 [#194 singular_expression]: #60 [#194 storage_texture_type]: #124 [#194 texture_and_sampler_types]: #96 [#194 type_specifier_without_ident]: #78 [#194 unary_expression]: #263 [#194 vec_prefix]: #79 [#198 array_type_specifier]: #94 [#198 bool_literal]: #76 [#198 call_expression]: #68 [#198 callable]: #73 [#198 decimal_float_literal]: #84 [#198 decimal_int_literal]: #82 [#198 depth_texture_type]: #121 [#198 float_literal]: #75 [#198 hex_float_literal]: #85 [#198 hex_int_literal]: #83 [#198 ident]: #67 [#198 int_literal]: #74 [#198 literal]: #69 [#198 mat_prefix]: #80 [#198 multisampled_texture_type]: #123 [#198 paren_expression]: #70 [#198 primary_expression]: #66 [#198 sampled_texture_type]: #122 [#198 sampler_type]: #120 [#198 singular_expression]: #60 [#198 storage_texture_type]: #124 [#198 texture_and_sampler_types]: #96 [#198 type_specifier_without_ident]: #78 [#198 unary_expression]: #262 [#198 vec_prefix]: #79 [#199 array_type_specifier]: #94 [#199 bool_literal]: #76 [#199 call_expression]: #68 [#199 callable]: #73 [#199 decimal_float_literal]: #84 [#199 decimal_int_literal]: #82 [#199 depth_texture_type]: #121 [#199 float_literal]: #75 [#199 hex_float_literal]: #85 [#199 hex_int_literal]: #83 [#199 ident]: #67 [#199 int_literal]: #74 [#199 literal]: #69 [#199 mat_prefix]: #80 [#199 multisampled_texture_type]: #123 [#199 paren_expression]: #70 [#199 primary_expression]: #66 [#199 sampled_texture_type]: #122 [#199 sampler_type]: #120 [#199 singular_expression]: #60 [#199 storage_texture_type]: #124 [#199 texture_and_sampler_types]: #96 [#199 type_specifier_without_ident]: #78 [#199 unary_expression]: #261 [#199 vec_prefix]: #79 [#200 array_type_specifier]: #94 [#200 bool_literal]: #76 [#200 call_expression]: #68 [#200 callable]: #73 [#200 decimal_float_literal]: #84 [#200 decimal_int_literal]: #82 [#200 depth_texture_type]: #121 [#200 float_literal]: #75 [#200 hex_float_literal]: #85 [#200 hex_int_literal]: #83 [#200 ident]: #67 [#200 int_literal]: #74 [#200 literal]: #69 [#200 mat_prefix]: #80 [#200 multiplicative_expression]: #259 [#200 multisampled_texture_type]: #123 [#200 paren_expression]: #70 [#200 primary_expression]: #66 [#200 sampled_texture_type]: #122 [#200 sampler_type]: #120 [#200 singular_expression]: #60 [#200 storage_texture_type]: #124 [#200 texture_and_sampler_types]: #96 [#200 type_specifier_without_ident]: #78 [#200 unary_expression]: #260 [#200 vec_prefix]: #79 [#203 array_type_specifier]: #94 [#203 bool_literal]: #76 [#203 call_expression]: #68 [#203 callable]: #73 [#203 decimal_float_literal]: #84 [#203 decimal_int_literal]: #82 [#203 depth_texture_type]: #121 [#203 float_literal]: #75 [#203 hex_float_literal]: #85 [#203 hex_int_literal]: #83 [#203 ident]: #67 [#203 int_literal]: #74 [#203 literal]: #69 [#203 mat_prefix]: #80 [#203 multisampled_texture_type]: #123 [#203 paren_expression]: #70 [#203 primary_expression]: #66 [#203 sampled_texture_type]: #122 [#203 sampler_type]: #120 [#203 singular_expression]: #60 [#203 storage_texture_type]: #124 [#203 texture_and_sampler_types]: #96 [#203 type_specifier_without_ident]: #78 [#203 unary_expression]: #258 [#203 vec_prefix]: #79 [#204 array_type_specifier]: #94 [#204 bool_literal]: #76 [#204 call_expression]: #68 [#204 callable]: #73 [#204 decimal_float_literal]: #84 [#204 decimal_int_literal]: #82 [#204 depth_texture_type]: #121 [#204 float_literal]: #75 [#204 hex_float_literal]: #85 [#204 hex_int_literal]: #83 [#204 ident]: #67 [#204 int_literal]: #74 [#204 literal]: #69 [#204 mat_prefix]: #80 [#204 multisampled_texture_type]: #123 [#204 paren_expression]: #70 [#204 primary_expression]: #66 [#204 sampled_texture_type]: #122 [#204 sampler_type]: #120 [#204 singular_expression]: #60 [#204 storage_texture_type]: #124 [#204 texture_and_sampler_types]: #96 [#204 type_specifier_without_ident]: #78 [#204 unary_expression]: #257 [#204 vec_prefix]: #79 [#205 array_type_specifier]: #94 [#205 bool_literal]: #76 [#205 call_expression]: #68 [#205 callable]: #73 [#205 decimal_float_literal]: #84 [#205 decimal_int_literal]: #82 [#205 depth_texture_type]: #121 [#205 float_literal]: #75 [#205 hex_float_literal]: #85 [#205 hex_int_literal]: #83 [#205 ident]: #67 [#205 int_literal]: #74 [#205 literal]: #69 [#205 mat_prefix]: #80 [#205 multisampled_texture_type]: #123 [#205 paren_expression]: #70 [#205 primary_expression]: #66 [#205 sampled_texture_type]: #122 [#205 sampler_type]: #120 [#205 singular_expression]: #60 [#205 storage_texture_type]: #124 [#205 texture_and_sampler_types]: #96 [#205 type_specifier_without_ident]: #78 [#205 unary_expression]: #256 [#205 vec_prefix]: #79 [#206 additive_expression]: #57 [#206 array_type_specifier]: #94 [#206 bool_literal]: #76 [#206 call_expression]: #68 [#206 callable]: #73 [#206 decimal_float_literal]: #84 [#206 decimal_int_literal]: #82 [#206 depth_texture_type]: #121 [#206 float_literal]: #75 [#206 hex_float_literal]: #85 [#206 hex_int_literal]: #83 [#206 ident]: #67 [#206 int_literal]: #74 [#206 literal]: #69 [#206 mat_prefix]: #80 [#206 multiplicative_expression]: #59 [#206 multisampled_texture_type]: #123 [#206 paren_expression]: #70 [#206 primary_expression]: #66 [#206 sampled_texture_type]: #122 [#206 sampler_type]: #120 [#206 shift_expression]: #255 [#206 singular_expression]: #60 [#206 storage_texture_type]: #124 [#206 texture_and_sampler_types]: #96 [#206 type_specifier_without_ident]: #78 [#206 unary_expression]: #248 [#206 vec_prefix]: #79 [#207 additive_expression]: #57 [#207 array_type_specifier]: #94 [#207 bool_literal]: #76 [#207 call_expression]: #68 [#207 callable]: #73 [#207 decimal_float_literal]: #84 [#207 decimal_int_literal]: #82 [#207 depth_texture_type]: #121 [#207 float_literal]: #75 [#207 hex_float_literal]: #85 [#207 hex_int_literal]: #83 [#207 ident]: #67 [#207 int_literal]: #74 [#207 literal]: #69 [#207 mat_prefix]: #80 [#207 multiplicative_expression]: #59 [#207 multisampled_texture_type]: #123 [#207 paren_expression]: #70 [#207 primary_expression]: #66 [#207 sampled_texture_type]: #122 [#207 sampler_type]: #120 [#207 shift_expression]: #254 [#207 singular_expression]: #60 [#207 storage_texture_type]: #124 [#207 texture_and_sampler_types]: #96 [#207 type_specifier_without_ident]: #78 [#207 unary_expression]: #248 [#207 vec_prefix]: #79 [#208 additive_expression]: #57 [#208 array_type_specifier]: #94 [#208 bool_literal]: #76 [#208 call_expression]: #68 [#208 callable]: #73 [#208 decimal_float_literal]: #84 [#208 decimal_int_literal]: #82 [#208 depth_texture_type]: #121 [#208 float_literal]: #75 [#208 hex_float_literal]: #85 [#208 hex_int_literal]: #83 [#208 ident]: #67 [#208 int_literal]: #74 [#208 literal]: #69 [#208 mat_prefix]: #80 [#208 multiplicative_expression]: #59 [#208 multisampled_texture_type]: #123 [#208 paren_expression]: #70 [#208 primary_expression]: #66 [#208 sampled_texture_type]: #122 [#208 sampler_type]: #120 [#208 shift_expression]: #253 [#208 singular_expression]: #60 [#208 storage_texture_type]: #124 [#208 texture_and_sampler_types]: #96 [#208 type_specifier_without_ident]: #78 [#208 unary_expression]: #248 [#208 vec_prefix]: #79 [#209 additive_expression]: #57 [#209 array_type_specifier]: #94 [#209 bool_literal]: #76 [#209 call_expression]: #68 [#209 callable]: #73 [#209 decimal_float_literal]: #84 [#209 decimal_int_literal]: #82 [#209 depth_texture_type]: #121 [#209 float_literal]: #75 [#209 hex_float_literal]: #85 [#209 hex_int_literal]: #83 [#209 ident]: #67 [#209 int_literal]: #74 [#209 literal]: #69 [#209 mat_prefix]: #80 [#209 multiplicative_expression]: #59 [#209 multisampled_texture_type]: #123 [#209 paren_expression]: #70 [#209 primary_expression]: #66 [#209 sampled_texture_type]: #122 [#209 sampler_type]: #120 [#209 shift_expression]: #252 [#209 singular_expression]: #60 [#209 storage_texture_type]: #124 [#209 texture_and_sampler_types]: #96 [#209 type_specifier_without_ident]: #78 [#209 unary_expression]: #248 [#209 vec_prefix]: #79 [#210 additive_expression]: #57 [#210 array_type_specifier]: #94 [#210 bool_literal]: #76 [#210 call_expression]: #68 [#210 callable]: #73 [#210 decimal_float_literal]: #84 [#210 decimal_int_literal]: #82 [#210 depth_texture_type]: #121 [#210 float_literal]: #75 [#210 hex_float_literal]: #85 [#210 hex_int_literal]: #83 [#210 ident]: #67 [#210 int_literal]: #74 [#210 literal]: #69 [#210 mat_prefix]: #80 [#210 multiplicative_expression]: #59 [#210 multisampled_texture_type]: #123 [#210 paren_expression]: #70 [#210 primary_expression]: #66 [#210 sampled_texture_type]: #122 [#210 sampler_type]: #120 [#210 shift_expression]: #251 [#210 singular_expression]: #60 [#210 storage_texture_type]: #124 [#210 texture_and_sampler_types]: #96 [#210 type_specifier_without_ident]: #78 [#210 unary_expression]: #248 [#210 vec_prefix]: #79 [#211 additive_expression]: #57 [#211 array_type_specifier]: #94 [#211 bool_literal]: #76 [#211 call_expression]: #68 [#211 callable]: #73 [#211 decimal_float_literal]: #84 [#211 decimal_int_literal]: #82 [#211 depth_texture_type]: #121 [#211 float_literal]: #75 [#211 hex_float_literal]: #85 [#211 hex_int_literal]: #83 [#211 ident]: #67 [#211 int_literal]: #74 [#211 literal]: #69 [#211 mat_prefix]: #80 [#211 multiplicative_expression]: #59 [#211 multisampled_texture_type]: #123 [#211 paren_expression]: #70 [#211 primary_expression]: #66 [#211 sampled_texture_type]: #122 [#211 sampler_type]: #120 [#211 shift_expression]: #250 [#211 singular_expression]: #60 [#211 storage_texture_type]: #124 [#211 texture_and_sampler_types]: #96 [#211 type_specifier_without_ident]: #78 [#211 unary_expression]: #248 [#211 vec_prefix]: #79 [#212 additive_expression]: #57 [#212 array_type_specifier]: #94 [#212 bool_literal]: #76 [#212 call_expression]: #68 [#212 callable]: #73 [#212 decimal_float_literal]: #84 [#212 decimal_int_literal]: #82 [#212 depth_texture_type]: #121 [#212 float_literal]: #75 [#212 hex_float_literal]: #85 [#212 hex_int_literal]: #83 [#212 ident]: #67 [#212 int_literal]: #74 [#212 literal]: #69 [#212 mat_prefix]: #80 [#212 multiplicative_expression]: #59 [#212 multisampled_texture_type]: #123 [#212 paren_expression]: #70 [#212 primary_expression]: #66 [#212 relational_expression]: #249 [#212 sampled_texture_type]: #122 [#212 sampler_type]: #120 [#212 shift_expression]: #53 [#212 singular_expression]: #60 [#212 storage_texture_type]: #124 [#212 texture_and_sampler_types]: #96 [#212 type_specifier_without_ident]: #78 [#212 unary_expression]: #248 [#212 vec_prefix]: #79 [#213 additive_expression]: #57 [#213 array_type_specifier]: #94 [#213 bool_literal]: #76 [#213 call_expression]: #68 [#213 callable]: #73 [#213 decimal_float_literal]: #84 [#213 decimal_int_literal]: #82 [#213 depth_texture_type]: #121 [#213 float_literal]: #75 [#213 hex_float_literal]: #85 [#213 hex_int_literal]: #83 [#213 ident]: #67 [#213 int_literal]: #74 [#213 literal]: #69 [#213 mat_prefix]: #80 [#213 multiplicative_expression]: #59 [#213 multisampled_texture_type]: #123 [#213 paren_expression]: #70 [#213 primary_expression]: #66 [#213 relational_expression]: #247 [#213 sampled_texture_type]: #122 [#213 sampler_type]: #120 [#213 shift_expression]: #53 [#213 singular_expression]: #60 [#213 storage_texture_type]: #124 [#213 texture_and_sampler_types]: #96 [#213 type_specifier_without_ident]: #78 [#213 unary_expression]: #248 [#213 vec_prefix]: #79 [#214 additive_expression]: #57 [#214 array_type_specifier]: #94 [#214 binary_and_expression]: #54 [#214 binary_or_expression]: #55 [#214 binary_xor_expression]: #56 [#214 bitwise_expression]: #52 [#214 bool_literal]: #76 [#214 call_expression]: #68 [#214 callable]: #73 [#214 decimal_float_literal]: #84 [#214 decimal_int_literal]: #82 [#214 depth_texture_type]: #121 [#214 expression]: #246 [#214 float_literal]: #75 [#214 hex_float_literal]: #85 [#214 hex_int_literal]: #83 [#214 ident]: #67 [#214 int_literal]: #74 [#214 literal]: #69 [#214 mat_prefix]: #80 [#214 multiplicative_expression]: #59 [#214 multisampled_texture_type]: #123 [#214 paren_expression]: #70 [#214 primary_expression]: #66 [#214 relational_expression]: #49 [#214 sampled_texture_type]: #122 [#214 sampler_type]: #120 [#214 shift_expression]: #53 [#214 short_circuit_and_expression]: #51 [#214 short_circuit_or_expression]: #50 [#214 singular_expression]: #60 [#214 storage_texture_type]: #124 [#214 texture_and_sampler_types]: #96 [#214 type_specifier_without_ident]: #78 [#214 unary_expression]: #58 [#214 vec_prefix]: #79 [#215 additive_expression]: #57 [#215 array_type_specifier]: #94 [#215 binary_and_expression]: #54 [#215 binary_or_expression]: #55 [#215 binary_xor_expression]: #56 [#215 bitwise_expression]: #52 [#215 bool_literal]: #76 [#215 call_expression]: #68 [#215 callable]: #73 [#215 decimal_float_literal]: #84 [#215 decimal_int_literal]: #82 [#215 depth_texture_type]: #121 [#215 expression]: #245 [#215 float_literal]: #75 [#215 hex_float_literal]: #85 [#215 hex_int_literal]: #83 [#215 ident]: #67 [#215 int_literal]: #74 [#215 literal]: #69 [#215 mat_prefix]: #80 [#215 multiplicative_expression]: #59 [#215 multisampled_texture_type]: #123 [#215 paren_expression]: #70 [#215 primary_expression]: #66 [#215 relational_expression]: #49 [#215 sampled_texture_type]: #122 [#215 sampler_type]: #120 [#215 shift_expression]: #53 [#215 short_circuit_and_expression]: #51 [#215 short_circuit_or_expression]: #50 [#215 singular_expression]: #60 [#215 storage_texture_type]: #124 [#215 texture_and_sampler_types]: #96 [#215 type_specifier_without_ident]: #78 [#215 unary_expression]: #58 [#215 vec_prefix]: #79 [#216 additive_expression]: #57 [#216 array_type_specifier]: #94 [#216 binary_and_expression]: #54 [#216 binary_or_expression]: #55 [#216 binary_xor_expression]: #56 [#216 bitwise_expression]: #52 [#216 bool_literal]: #76 [#216 call_expression]: #68 [#216 callable]: #73 [#216 decimal_float_literal]: #84 [#216 decimal_int_literal]: #82 [#216 depth_texture_type]: #121 [#216 expression]: #244 [#216 float_literal]: #75 [#216 hex_float_literal]: #85 [#216 hex_int_literal]: #83 [#216 ident]: #67 [#216 int_literal]: #74 [#216 literal]: #69 [#216 mat_prefix]: #80 [#216 multiplicative_expression]: #59 [#216 multisampled_texture_type]: #123 [#216 paren_expression]: #70 [#216 primary_expression]: #66 [#216 relational_expression]: #49 [#216 sampled_texture_type]: #122 [#216 sampler_type]: #120 [#216 shift_expression]: #53 [#216 short_circuit_and_expression]: #51 [#216 short_circuit_or_expression]: #50 [#216 singular_expression]: #60 [#216 storage_texture_type]: #124 [#216 texture_and_sampler_types]: #96 [#216 type_specifier_without_ident]: #78 [#216 unary_expression]: #58 [#216 vec_prefix]: #79 [#217 interpolation_type_name]: #240 [#218 additive_expression]: #57 [#218 array_type_specifier]: #94 [#218 binary_and_expression]: #54 [#218 binary_or_expression]: #55 [#218 binary_xor_expression]: #56 [#218 bitwise_expression]: #52 [#218 bool_literal]: #76 [#218 call_expression]: #68 [#218 callable]: #73 [#218 decimal_float_literal]: #84 [#218 decimal_int_literal]: #82 [#218 depth_texture_type]: #121 [#218 expression]: #239 [#218 float_literal]: #75 [#218 hex_float_literal]: #85 [#218 hex_int_literal]: #83 [#218 ident]: #67 [#218 int_literal]: #74 [#218 literal]: #69 [#218 mat_prefix]: #80 [#218 multiplicative_expression]: #59 [#218 multisampled_texture_type]: #123 [#218 paren_expression]: #70 [#218 primary_expression]: #66 [#218 relational_expression]: #49 [#218 sampled_texture_type]: #122 [#218 sampler_type]: #120 [#218 shift_expression]: #53 [#218 short_circuit_and_expression]: #51 [#218 short_circuit_or_expression]: #50 [#218 singular_expression]: #60 [#218 storage_texture_type]: #124 [#218 texture_and_sampler_types]: #96 [#218 type_specifier_without_ident]: #78 [#218 unary_expression]: #58 [#218 vec_prefix]: #79 [#219 additive_expression]: #57 [#219 array_type_specifier]: #94 [#219 binary_and_expression]: #54 [#219 binary_or_expression]: #55 [#219 binary_xor_expression]: #56 [#219 bitwise_expression]: #52 [#219 bool_literal]: #76 [#219 call_expression]: #68 [#219 callable]: #73 [#219 decimal_float_literal]: #84 [#219 decimal_int_literal]: #82 [#219 depth_texture_type]: #121 [#219 expression]: #238 [#219 float_literal]: #75 [#219 hex_float_literal]: #85 [#219 hex_int_literal]: #83 [#219 ident]: #67 [#219 int_literal]: #74 [#219 literal]: #69 [#219 mat_prefix]: #80 [#219 multiplicative_expression]: #59 [#219 multisampled_texture_type]: #123 [#219 paren_expression]: #70 [#219 primary_expression]: #66 [#219 relational_expression]: #49 [#219 sampled_texture_type]: #122 [#219 sampler_type]: #120 [#219 shift_expression]: #53 [#219 short_circuit_and_expression]: #51 [#219 short_circuit_or_expression]: #50 [#219 singular_expression]: #60 [#219 storage_texture_type]: #124 [#219 texture_and_sampler_types]: #96 [#219 type_specifier_without_ident]: #78 [#219 unary_expression]: #58 [#219 vec_prefix]: #79 [#220 builtin_value_name]: #225 [#221 additive_expression]: #57 [#221 array_type_specifier]: #94 [#221 binary_and_expression]: #54 [#221 binary_or_expression]: #55 [#221 binary_xor_expression]: #56 [#221 bitwise_expression]: #52 [#221 bool_literal]: #76 [#221 call_expression]: #68 [#221 callable]: #73 [#221 decimal_float_literal]: #84 [#221 decimal_int_literal]: #82 [#221 depth_texture_type]: #121 [#221 expression]: #224 [#221 float_literal]: #75 [#221 hex_float_literal]: #85 [#221 hex_int_literal]: #83 [#221 ident]: #67 [#221 int_literal]: #74 [#221 literal]: #69 [#221 mat_prefix]: #80 [#221 multiplicative_expression]: #59 [#221 multisampled_texture_type]: #123 [#221 paren_expression]: #70 [#221 primary_expression]: #66 [#221 relational_expression]: #49 [#221 sampled_texture_type]: #122 [#221 sampler_type]: #120 [#221 shift_expression]: #53 [#221 short_circuit_and_expression]: #51 [#221 short_circuit_or_expression]: #50 [#221 singular_expression]: #60 [#221 storage_texture_type]: #124 [#221 texture_and_sampler_types]: #96 [#221 type_specifier_without_ident]: #78 [#221 unary_expression]: #58 [#221 vec_prefix]: #79 [#222 additive_expression]: #57 [#222 array_type_specifier]: #94 [#222 binary_and_expression]: #54 [#222 binary_or_expression]: #55 [#222 binary_xor_expression]: #56 [#222 bitwise_expression]: #52 [#222 bool_literal]: #76 [#222 call_expression]: #68 [#222 callable]: #73 [#222 decimal_float_literal]: #84 [#222 decimal_int_literal]: #82 [#222 depth_texture_type]: #121 [#222 expression]: #223 [#222 float_literal]: #75 [#222 hex_float_literal]: #85 [#222 hex_int_literal]: #83 [#222 ident]: #67 [#222 int_literal]: #74 [#222 literal]: #69 [#222 mat_prefix]: #80 [#222 multiplicative_expression]: #59 [#222 multisampled_texture_type]: #123 [#222 paren_expression]: #70 [#222 primary_expression]: #66 [#222 relational_expression]: #49 [#222 sampled_texture_type]: #122 [#222 sampler_type]: #120 [#222 shift_expression]: #53 [#222 short_circuit_and_expression]: #51 [#222 short_circuit_or_expression]: #50 [#222 singular_expression]: #60 [#222 storage_texture_type]: #124 [#222 texture_and_sampler_types]: #96 [#222 type_specifier_without_ident]: #78 [#222 unary_expression]: #58 [#222 vec_prefix]: #79 [#223 attrib_end]: #464 [#223 attrib_end/0.0]: #454 [#224 attrib_end]: #463 [#224 attrib_end/0.0]: #454 [#225 attrib_end]: #462 [#225 attrib_end/0.0]: #454 [#238 attrib_end]: #461 [#238 attrib_end/0.0]: #454 [#239 attrib_end]: #460 [#239 attrib_end/0.0]: #454 [#240 attrib_end]: #458 [#240 attrib_end/0.0]: #454 [#244 attrib_end]: #457 [#244 attrib_end/0.0]: #454 [#245 attrib_end]: #455 [#245 attrib_end/0.0]: #454 [#246 attrib_end]: #452 [#246 attrib_end/0.0]: #454 [#259 multiplicative_operator]: #194 [#264 component_or_swizzle_specifier]: #451 [#264 component_or_swizzle_specifier/1.2]: #450 [#265 component_or_swizzle_specifier]: #449 [#265 component_or_swizzle_specifier/2.2]: #448 [#284 expression_comma_list/0.1]: #441 [#284 expression_comma_list/0.1/0]: #442 [#284 expression_comma_list/0.1/0/0.0]: #443 [#288 array_type_specifier/0.3]: #437 [#318 array_type_specifier]: #94 [#318 assignment_statement]: #346 [#318 break_statement]: #328 [#318 callable]: #340 [#318 compound_statement]: #332 [#318 compound_statement/0.1/0]: #430 [#318 const_assert_statement]: #333 [#318 continue_statement]: #329 [#318 core_lhs_expression]: #353 [#318 decrement_statement]: #348 [#318 depth_texture_type]: #121 [#318 for_statement]: #324 [#318 func_call_statement]: #326 [#318 ident]: #350 [#318 if_clause]: #335 [#318 if_statement]: #321 [#318 increment_statement]: #347 [#318 lhs_expression]: #351 [#318 loop_statement]: #323 [#318 mat_prefix]: #80 [#318 multisampled_texture_type]: #123 [#318 return_statement]: #320 [#318 sampled_texture_type]: #122 [#318 sampler_type]: #120 [#318 statement]: #318 [#318 storage_texture_type]: #124 [#318 switch_statement]: #322 [#318 texture_and_sampler_types]: #96 [#318 type_specifier_without_ident]: #78 [#318 variable_decl]: #341 [#318 variable_statement]: #327 [#318 variable_updating_statement]: #331 [#318 vec_prefix]: #79 [#318 while_statement]: #325 [#334 additive_expression]: #57 [#334 array_type_specifier]: #94 [#334 binary_and_expression]: #54 [#334 binary_or_expression]: #55 [#334 binary_xor_expression]: #56 [#334 bitwise_expression]: #52 [#334 bool_literal]: #76 [#334 call_expression]: #68 [#334 callable]: #73 [#334 decimal_float_literal]: #84 [#334 decimal_int_literal]: #82 [#334 depth_texture_type]: #121 [#334 expression]: #421 [#334 float_literal]: #75 [#334 hex_float_literal]: #85 [#334 hex_int_literal]: #83 [#334 ident]: #67 [#334 int_literal]: #74 [#334 literal]: #69 [#334 mat_prefix]: #80 [#334 multiplicative_expression]: #59 [#334 multisampled_texture_type]: #123 [#334 paren_expression]: #70 [#334 primary_expression]: #66 [#334 relational_expression]: #49 [#334 return_statement/0.1]: #420 [#334 sampled_texture_type]: #122 [#334 sampler_type]: #120 [#334 shift_expression]: #53 [#334 short_circuit_and_expression]: #51 [#334 short_circuit_or_expression]: #50 [#334 singular_expression]: #60 [#334 storage_texture_type]: #124 [#334 texture_and_sampler_types]: #96 [#334 type_specifier_without_ident]: #78 [#334 unary_expression]: #58 [#334 vec_prefix]: #79 [#335 else_if_clause]: #418 [#335 if_statement/0.1]: #416 [#335 if_statement/0.1/0]: #417 [#336 additive_expression]: #57 [#336 array_type_specifier]: #94 [#336 binary_and_expression]: #54 [#336 binary_or_expression]: #55 [#336 binary_xor_expression]: #56 [#336 bitwise_expression]: #52 [#336 bool_literal]: #76 [#336 call_expression]: #68 [#336 callable]: #73 [#336 decimal_float_literal]: #84 [#336 decimal_int_literal]: #82 [#336 depth_texture_type]: #121 [#336 expression]: #415 [#336 float_literal]: #75 [#336 hex_float_literal]: #85 [#336 hex_int_literal]: #83 [#336 ident]: #67 [#336 int_literal]: #74 [#336 literal]: #69 [#336 mat_prefix]: #80 [#336 multiplicative_expression]: #59 [#336 multisampled_texture_type]: #123 [#336 paren_expression]: #70 [#336 primary_expression]: #66 [#336 relational_expression]: #49 [#336 sampled_texture_type]: #122 [#336 sampler_type]: #120 [#336 shift_expression]: #53 [#336 short_circuit_and_expression]: #51 [#336 short_circuit_or_expression]: #50 [#336 singular_expression]: #60 [#336 storage_texture_type]: #124 [#336 texture_and_sampler_types]: #96 [#336 type_specifier_without_ident]: #78 [#336 unary_expression]: #58 [#336 vec_prefix]: #79 [#339 additive_expression]: #57 [#339 array_type_specifier]: #94 [#339 binary_and_expression]: #54 [#339 binary_or_expression]: #55 [#339 binary_xor_expression]: #56 [#339 bitwise_expression]: #52 [#339 bool_literal]: #76 [#339 call_expression]: #68 [#339 callable]: #73 [#339 decimal_float_literal]: #84 [#339 decimal_int_literal]: #82 [#339 depth_texture_type]: #121 [#339 expression]: #412 [#339 float_literal]: #75 [#339 hex_float_literal]: #85 [#339 hex_int_literal]: #83 [#339 ident]: #67 [#339 int_literal]: #74 [#339 literal]: #69 [#339 mat_prefix]: #80 [#339 multiplicative_expression]: #59 [#339 multisampled_texture_type]: #123 [#339 paren_expression]: #70 [#339 primary_expression]: #66 [#339 relational_expression]: #49 [#339 sampled_texture_type]: #122 [#339 sampler_type]: #120 [#339 shift_expression]: #53 [#339 short_circuit_and_expression]: #51 [#339 short_circuit_or_expression]: #50 [#339 singular_expression]: #60 [#339 storage_texture_type]: #124 [#339 texture_and_sampler_types]: #96 [#339 type_specifier_without_ident]: #78 [#339 unary_expression]: #58 [#339 vec_prefix]: #79 [#340 argument_expression_list]: #411 [#342 ident]: #149 [#342 optionally_typed_ident]: #409 [#343 ident]: #149 [#343 optionally_typed_ident]: #408 [#349 additive_expression]: #57 [#349 array_type_specifier]: #94 [#349 binary_and_expression]: #54 [#349 binary_or_expression]: #55 [#349 binary_xor_expression]: #56 [#349 bitwise_expression]: #52 [#349 bool_literal]: #76 [#349 call_expression]: #68 [#349 callable]: #73 [#349 decimal_float_literal]: #84 [#349 decimal_int_literal]: #82 [#349 depth_texture_type]: #121 [#349 expression]: #407 [#349 float_literal]: #75 [#349 hex_float_literal]: #85 [#349 hex_int_literal]: #83 [#349 ident]: #67 [#349 int_literal]: #74 [#349 literal]: #69 [#349 mat_prefix]: #80 [#349 multiplicative_expression]: #59 [#349 multisampled_texture_type]: #123 [#349 paren_expression]: #70 [#349 primary_expression]: #66 [#349 relational_expression]: #49 [#349 sampled_texture_type]: #122 [#349 sampler_type]: #120 [#349 shift_expression]: #53 [#349 short_circuit_and_expression]: #51 [#349 short_circuit_or_expression]: #50 [#349 singular_expression]: #60 [#349 storage_texture_type]: #124 [#349 texture_and_sampler_types]: #96 [#349 type_specifier_without_ident]: #78 [#349 unary_expression]: #58 [#349 vec_prefix]: #79 [#351 assignment_statement/0.1]: #392 [#351 compound_assignment_operator]: #396 [#353 component_or_swizzle_specifier]: #390 [#353 lhs_expression/0.1]: #389 [#354 core_lhs_expression]: #353 [#354 ident]: #386 [#354 lhs_expression]: #388 [#355 core_lhs_expression]: #353 [#355 ident]: #386 [#355 lhs_expression]: #387 [#356 core_lhs_expression]: #353 [#356 ident]: #386 [#356 lhs_expression]: #385 [#357 attribute]: #384 [#357 function_header/0.3]: #379 [#357 param]: #381 [#357 param/0.0]: #382 [#357 param/0.0/0]: #383 [#357 param_list]: #380 [#358 struct_body_decl/0.2]: #375 [#358 struct_body_decl/0.2/0]: #376 [#358 struct_body_decl/0.2/0/0.0]: #377 [#359 member_ident]: #374 [#361 attribute]: #361 [#361 struct_member/0.0/0]: #373 [#364 additive_expression]: #57 [#364 array_type_specifier]: #94 [#364 binary_and_expression]: #54 [#364 binary_or_expression]: #55 [#364 binary_xor_expression]: #56 [#364 bitwise_expression]: #52 [#364 bool_literal]: #76 [#364 call_expression]: #68 [#364 callable]: #73 [#364 decimal_float_literal]: #84 [#364 decimal_int_literal]: #82 [#364 depth_texture_type]: #121 [#364 expression]: #372 [#364 float_literal]: #75 [#364 hex_float_literal]: #85 [#364 hex_int_literal]: #83 [#364 ident]: #67 [#364 int_literal]: #74 [#364 literal]: #69 [#364 mat_prefix]: #80 [#364 multiplicative_expression]: #59 [#364 multisampled_texture_type]: #123 [#364 paren_expression]: #70 [#364 primary_expression]: #66 [#364 relational_expression]: #49 [#364 sampled_texture_type]: #122 [#364 sampler_type]: #120 [#364 shift_expression]: #53 [#364 short_circuit_and_expression]: #51 [#364 short_circuit_or_expression]: #50 [#364 singular_expression]: #60 [#364 storage_texture_type]: #124 [#364 texture_and_sampler_types]: #96 [#364 type_specifier_without_ident]: #78 [#364 unary_expression]: #58 [#364 vec_prefix]: #79 [#368 variable_qualifier/0.2]: #370 [#371 access_mode]: #523 [#375 struct_body_decl/0.3]: #520 [#377 struct_body_decl/0.2/0]: #519 [#377 struct_body_decl/0.2/0/0.0]: #377 [#378 attribute]: #361 [#378 struct_member]: #518 [#378 struct_member/0.0]: #359 [#378 struct_member/0.0/0]: #360 [#381 param_list/0.1]: #513 [#381 param_list/0.1/0]: #514 [#381 param_list/0.1/0/0.0]: #515 [#382 ident]: #512 [#384 attribute]: #384 [#384 param/0.0/0]: #511 [#391 additive_expression]: #57 [#391 array_type_specifier]: #94 [#391 binary_and_expression]: #54 [#391 binary_or_expression]: #55 [#391 binary_xor_expression]: #56 [#391 bitwise_expression]: #52 [#391 bool_literal]: #76 [#391 call_expression]: #68 [#391 callable]: #73 [#391 decimal_float_literal]: #84 [#391 decimal_int_literal]: #82 [#391 depth_texture_type]: #121 [#391 expression]: #509 [#391 float_literal]: #75 [#391 hex_float_literal]: #85 [#391 hex_int_literal]: #83 [#391 ident]: #67 [#391 int_literal]: #74 [#391 literal]: #69 [#391 mat_prefix]: #80 [#391 multiplicative_expression]: #59 [#391 multisampled_texture_type]: #123 [#391 paren_expression]: #70 [#391 primary_expression]: #66 [#391 relational_expression]: #49 [#391 sampled_texture_type]: #122 [#391 sampler_type]: #120 [#391 shift_expression]: #53 [#391 short_circuit_and_expression]: #51 [#391 short_circuit_or_expression]: #50 [#391 singular_expression]: #60 [#391 storage_texture_type]: #124 [#391 texture_and_sampler_types]: #96 [#391 type_specifier_without_ident]: #78 [#391 unary_expression]: #58 [#391 vec_prefix]: #79 [#392 additive_expression]: #57 [#392 array_type_specifier]: #94 [#392 binary_and_expression]: #54 [#392 binary_or_expression]: #55 [#392 binary_xor_expression]: #56 [#392 bitwise_expression]: #52 [#392 bool_literal]: #76 [#392 call_expression]: #68 [#392 callable]: #73 [#392 decimal_float_literal]: #84 [#392 decimal_int_literal]: #82 [#392 depth_texture_type]: #121 [#392 expression]: #508 [#392 float_literal]: #75 [#392 hex_float_literal]: #85 [#392 hex_int_literal]: #83 [#392 ident]: #67 [#392 int_literal]: #74 [#392 literal]: #69 [#392 mat_prefix]: #80 [#392 multiplicative_expression]: #59 [#392 multisampled_texture_type]: #123 [#392 paren_expression]: #70 [#392 primary_expression]: #66 [#392 relational_expression]: #49 [#392 sampled_texture_type]: #122 [#392 sampler_type]: #120 [#392 shift_expression]: #53 [#392 short_circuit_and_expression]: #51 [#392 short_circuit_or_expression]: #50 [#392 singular_expression]: #60 [#392 storage_texture_type]: #124 [#392 texture_and_sampler_types]: #96 [#392 type_specifier_without_ident]: #78 [#392 unary_expression]: #58 [#392 vec_prefix]: #79 [#407 compound_statement]: #507 [#410 additive_expression]: #57 [#410 array_type_specifier]: #94 [#410 binary_and_expression]: #54 [#410 binary_or_expression]: #55 [#410 binary_xor_expression]: #56 [#410 bitwise_expression]: #52 [#410 bool_literal]: #76 [#410 call_expression]: #68 [#410 callable]: #73 [#410 decimal_float_literal]: #84 [#410 decimal_int_literal]: #82 [#410 depth_texture_type]: #121 [#410 expression]: #504 [#410 float_literal]: #75 [#410 hex_float_literal]: #85 [#410 hex_int_literal]: #83 [#410 ident]: #67 [#410 int_literal]: #74 [#410 literal]: #69 [#410 mat_prefix]: #80 [#410 multiplicative_expression]: #59 [#410 multisampled_texture_type]: #123 [#410 paren_expression]: #70 [#410 primary_expression]: #66 [#410 relational_expression]: #49 [#410 sampled_texture_type]: #122 [#410 sampler_type]: #120 [#410 shift_expression]: #53 [#410 short_circuit_and_expression]: #51 [#410 short_circuit_or_expression]: #50 [#410 singular_expression]: #60 [#410 storage_texture_type]: #124 [#410 texture_and_sampler_types]: #96 [#410 type_specifier_without_ident]: #78 [#410 unary_expression]: #58 [#410 vec_prefix]: #79 [#412 compound_statement]: #503 [#413 array_type_specifier]: #94 [#413 assignment_statement]: #346 [#413 callable]: #340 [#413 core_lhs_expression]: #353 [#413 decrement_statement]: #348 [#413 depth_texture_type]: #121 [#413 for_header]: #497 [#413 for_header/0.0]: #498 [#413 for_init]: #499 [#413 func_call_statement]: #502 [#413 ident]: #350 [#413 increment_statement]: #347 [#413 lhs_expression]: #351 [#413 mat_prefix]: #80 [#413 multisampled_texture_type]: #123 [#413 sampled_texture_type]: #122 [#413 sampler_type]: #120 [#413 storage_texture_type]: #124 [#413 texture_and_sampler_types]: #96 [#413 type_specifier_without_ident]: #78 [#413 variable_decl]: #341 [#413 variable_statement]: #500 [#413 variable_updating_statement]: #501 [#413 vec_prefix]: #79 [#414 array_type_specifier]: #94 [#414 assignment_statement]: #346 [#414 break_statement]: #328 [#414 callable]: #340 [#414 compound_statement]: #332 [#414 const_assert_statement]: #333 [#414 continue_statement]: #329 [#414 core_lhs_expression]: #353 [#414 decrement_statement]: #348 [#414 depth_texture_type]: #121 [#414 for_statement]: #324 [#414 func_call_statement]: #326 [#414 ident]: #350 [#414 if_clause]: #335 [#414 if_statement]: #321 [#414 increment_statement]: #347 [#414 lhs_expression]: #351 [#414 loop_statement]: #323 [#414 loop_statement/0.2]: #494 [#414 loop_statement/0.2/0]: #495 [#414 mat_prefix]: #80 [#414 multisampled_texture_type]: #123 [#414 return_statement]: #320 [#414 sampled_texture_type]: #122 [#414 sampler_type]: #120 [#414 statement]: #496 [#414 storage_texture_type]: #124 [#414 switch_statement]: #322 [#414 texture_and_sampler_types]: #96 [#414 type_specifier_without_ident]: #78 [#414 variable_decl]: #341 [#414 variable_statement]: #327 [#414 variable_updating_statement]: #331 [#414 vec_prefix]: #79 [#414 while_statement]: #325 [#416 else_clause]: #491 [#416 if_statement/0.2]: #490 [#418 else_if_clause]: #418 [#418 if_statement/0.1/0]: #489 [#432 access_mode]: #484 [#436 array_type_specifier]: #94 [#436 depth_texture_type]: #121 [#436 ident]: #277 [#436 mat_prefix]: #280 [#436 multisampled_texture_type]: #123 [#436 sampled_texture_type]: #122 [#436 sampler_type]: #120 [#436 storage_texture_type]: #124 [#436 texture_and_sampler_types]: #96 [#436 type_specifier]: #483 [#436 type_specifier_without_ident]: #278 [#436 vec_prefix]: #279 [#438 additive_expression]: #479 [#438 array_type_specifier]: #94 [#438 binary_and_expression]: #54 [#438 binary_or_expression]: #55 [#438 binary_xor_expression]: #56 [#438 bitwise_expression]: #480 [#438 bool_literal]: #76 [#438 call_expression]: #68 [#438 callable]: #73 [#438 decimal_float_literal]: #84 [#438 decimal_int_literal]: #82 [#438 depth_texture_type]: #121 [#438 element_count_expression]: #478 [#438 float_literal]: #75 [#438 hex_float_literal]: #85 [#438 hex_int_literal]: #83 [#438 ident]: #67 [#438 int_literal]: #74 [#438 literal]: #69 [#438 mat_prefix]: #80 [#438 multiplicative_expression]: #59 [#438 multisampled_texture_type]: #123 [#438 paren_expression]: #70 [#438 primary_expression]: #66 [#438 sampled_texture_type]: #122 [#438 sampler_type]: #120 [#438 singular_expression]: #60 [#438 storage_texture_type]: #124 [#438 texture_and_sampler_types]: #96 [#438 type_specifier_without_ident]: #78 [#438 unary_expression]: #481 [#438 vec_prefix]: #79 [#441 expression_comma_list/0.2]: #476 [#443 expression_comma_list/0.1/0]: #475 [#443 expression_comma_list/0.1/0/0.0]: #443 [#444 additive_expression]: #57 [#444 array_type_specifier]: #94 [#444 binary_and_expression]: #54 [#444 binary_or_expression]: #55 [#444 binary_xor_expression]: #56 [#444 bitwise_expression]: #52 [#444 bool_literal]: #76 [#444 call_expression]: #68 [#444 callable]: #73 [#444 decimal_float_literal]: #84 [#444 decimal_int_literal]: #82 [#444 depth_texture_type]: #121 [#444 expression]: #474 [#444 float_literal]: #75 [#444 hex_float_literal]: #85 [#444 hex_int_literal]: #83 [#444 ident]: #67 [#444 int_literal]: #74 [#444 literal]: #69 [#444 mat_prefix]: #80 [#444 multiplicative_expression]: #59 [#444 multisampled_texture_type]: #123 [#444 paren_expression]: #70 [#444 primary_expression]: #66 [#444 relational_expression]: #49 [#444 sampled_texture_type]: #122 [#444 sampler_type]: #120 [#444 shift_expression]: #53 [#444 short_circuit_and_expression]: #51 [#444 short_circuit_or_expression]: #50 [#444 singular_expression]: #60 [#444 storage_texture_type]: #124 [#444 texture_and_sampler_types]: #96 [#444 type_specifier_without_ident]: #78 [#444 unary_expression]: #58 [#444 vec_prefix]: #79 [#446 paren_expression]: #473 [#447 component_or_swizzle_specifier]: #472 [#447 component_or_swizzle_specifier/0.3]: #471 [#453 additive_expression]: #57 [#453 array_type_specifier]: #94 [#453 binary_and_expression]: #54 [#453 binary_or_expression]: #55 [#453 binary_xor_expression]: #56 [#453 bitwise_expression]: #52 [#453 bool_literal]: #76 [#453 call_expression]: #68 [#453 callable]: #73 [#453 decimal_float_literal]: #84 [#453 decimal_int_literal]: #82 [#453 depth_texture_type]: #121 [#453 expression]: #470 [#453 float_literal]: #75 [#453 hex_float_literal]: #85 [#453 hex_int_literal]: #83 [#453 ident]: #67 [#453 int_literal]: #74 [#453 literal]: #69 [#453 mat_prefix]: #80 [#453 multiplicative_expression]: #59 [#453 multisampled_texture_type]: #123 [#453 paren_expression]: #70 [#453 primary_expression]: #66 [#453 relational_expression]: #49 [#453 sampled_texture_type]: #122 [#453 sampler_type]: #120 [#453 shift_expression]: #53 [#453 short_circuit_and_expression]: #51 [#453 short_circuit_or_expression]: #50 [#453 singular_expression]: #60 [#453 storage_texture_type]: #124 [#453 texture_and_sampler_types]: #96 [#453 type_specifier_without_ident]: #78 [#453 unary_expression]: #58 [#453 vec_prefix]: #79 [#459 interpolation_sample_name]: #465 [#465 attrib_end]: #556 [#465 attrib_end/0.0]: #454 [#470 attrib_end]: #554 [#470 attrib_end/0.0]: #454 [#479 additive_operator]: #200 [#483 type_specifier_without_ident/7.5]: #552 [#488 additive_expression]: #57 [#488 array_type_specifier]: #94 [#488 binary_and_expression]: #54 [#488 binary_or_expression]: #55 [#488 binary_xor_expression]: #56 [#488 bitwise_expression]: #52 [#488 bool_literal]: #76 [#488 call_expression]: #68 [#488 callable]: #73 [#488 decimal_float_literal]: #84 [#488 decimal_int_literal]: #82 [#488 depth_texture_type]: #121 [#488 expression]: #550 [#488 float_literal]: #75 [#488 hex_float_literal]: #85 [#488 hex_int_literal]: #83 [#488 ident]: #67 [#488 int_literal]: #74 [#488 literal]: #69 [#488 mat_prefix]: #80 [#488 multiplicative_expression]: #59 [#488 multisampled_texture_type]: #123 [#488 paren_expression]: #70 [#488 primary_expression]: #66 [#488 relational_expression]: #49 [#488 sampled_texture_type]: #122 [#488 sampler_type]: #120 [#488 shift_expression]: #53 [#488 short_circuit_and_expression]: #51 [#488 short_circuit_or_expression]: #50 [#488 singular_expression]: #60 [#488 storage_texture_type]: #124 [#488 texture_and_sampler_types]: #96 [#488 type_specifier_without_ident]: #78 [#488 unary_expression]: #58 [#488 vec_prefix]: #79 [#492 compound_statement]: #549 [#493 case_clause]: #545 [#493 default_alone_clause]: #546 [#493 switch_body]: #544 [#493 switch_statement/0.3]: #542 [#493 switch_statement/0.3/0]: #543 [#494 continuing_statement]: #540 [#494 loop_statement/0.3]: #539 [#496 array_type_specifier]: #94 [#496 assignment_statement]: #346 [#496 break_statement]: #328 [#496 callable]: #340 [#496 compound_statement]: #332 [#496 const_assert_statement]: #333 [#496 continue_statement]: #329 [#496 core_lhs_expression]: #353 [#496 decrement_statement]: #348 [#496 depth_texture_type]: #121 [#496 for_statement]: #324 [#496 func_call_statement]: #326 [#496 ident]: #350 [#496 if_clause]: #335 [#496 if_statement]: #321 [#496 increment_statement]: #347 [#496 lhs_expression]: #351 [#496 loop_statement]: #323 [#496 loop_statement/0.2/0]: #538 [#496 mat_prefix]: #80 [#496 multisampled_texture_type]: #123 [#496 return_statement]: #320 [#496 sampled_texture_type]: #122 [#496 sampler_type]: #120 [#496 statement]: #496 [#496 storage_texture_type]: #124 [#496 switch_statement]: #322 [#496 texture_and_sampler_types]: #96 [#496 type_specifier_without_ident]: #78 [#496 variable_decl]: #341 [#496 variable_statement]: #327 [#496 variable_updating_statement]: #331 [#496 vec_prefix]: #79 [#496 while_statement]: #325 [#505 additive_expression]: #57 [#505 array_type_specifier]: #94 [#505 binary_and_expression]: #54 [#505 binary_or_expression]: #55 [#505 binary_xor_expression]: #56 [#505 bitwise_expression]: #52 [#505 bool_literal]: #76 [#505 call_expression]: #68 [#505 callable]: #73 [#505 decimal_float_literal]: #84 [#505 decimal_int_literal]: #82 [#505 depth_texture_type]: #121 [#505 expression]: #535 [#505 float_literal]: #75 [#505 hex_float_literal]: #85 [#505 hex_int_literal]: #83 [#505 ident]: #67 [#505 int_literal]: #74 [#505 literal]: #69 [#505 mat_prefix]: #80 [#505 multiplicative_expression]: #59 [#505 multisampled_texture_type]: #123 [#505 paren_expression]: #70 [#505 primary_expression]: #66 [#505 relational_expression]: #49 [#505 sampled_texture_type]: #122 [#505 sampler_type]: #120 [#505 shift_expression]: #53 [#505 short_circuit_and_expression]: #51 [#505 short_circuit_or_expression]: #50 [#505 singular_expression]: #60 [#505 storage_texture_type]: #124 [#505 texture_and_sampler_types]: #96 [#505 type_specifier_without_ident]: #78 [#505 unary_expression]: #58 [#505 vec_prefix]: #79 [#506 additive_expression]: #57 [#506 array_type_specifier]: #94 [#506 binary_and_expression]: #54 [#506 binary_or_expression]: #55 [#506 binary_xor_expression]: #56 [#506 bitwise_expression]: #52 [#506 bool_literal]: #76 [#506 call_expression]: #68 [#506 callable]: #73 [#506 decimal_float_literal]: #84 [#506 decimal_int_literal]: #82 [#506 depth_texture_type]: #121 [#506 expression]: #534 [#506 float_literal]: #75 [#506 hex_float_literal]: #85 [#506 hex_int_literal]: #83 [#506 ident]: #67 [#506 int_literal]: #74 [#506 literal]: #69 [#506 mat_prefix]: #80 [#506 multiplicative_expression]: #59 [#506 multisampled_texture_type]: #123 [#506 paren_expression]: #70 [#506 primary_expression]: #66 [#506 relational_expression]: #49 [#506 sampled_texture_type]: #122 [#506 sampler_type]: #120 [#506 shift_expression]: #53 [#506 short_circuit_and_expression]: #51 [#506 short_circuit_or_expression]: #50 [#506 singular_expression]: #60 [#506 storage_texture_type]: #124 [#506 texture_and_sampler_types]: #96 [#506 type_specifier_without_ident]: #78 [#506 unary_expression]: #58 [#506 vec_prefix]: #79 [#513 param_list/0.2]: #531 [#515 param_list/0.1/0]: #530 [#515 param_list/0.1/0/0.0]: #515 [#516 attribute]: #384 [#516 param]: #529 [#516 param/0.0]: #382 [#516 param/0.0/0]: #383 [#517 function_header/0.5]: #527 [#522 array_type_specifier]: #94 [#522 depth_texture_type]: #121 [#522 ident]: #277 [#522 mat_prefix]: #280 [#522 multisampled_texture_type]: #123 [#522 sampled_texture_type]: #122 [#522 sampler_type]: #120 [#522 storage_texture_type]: #124 [#522 texture_and_sampler_types]: #96 [#522 type_specifier]: #525 [#522 type_specifier_without_ident]: #278 [#522 vec_prefix]: #279 [#528 attribute]: #578 [#528 function_header/0.5/0.1]: #576 [#528 function_header/0.5/0.1/0]: #577 [#533 array_type_specifier]: #94 [#533 depth_texture_type]: #121 [#533 ident]: #277 [#533 mat_prefix]: #280 [#533 multisampled_texture_type]: #123 [#533 sampled_texture_type]: #122 [#533 sampler_type]: #120 [#533 storage_texture_type]: #124 [#533 texture_and_sampler_types]: #96 [#533 type_specifier]: #575 [#533 type_specifier_without_ident]: #278 [#533 vec_prefix]: #279 [#536 additive_expression]: #57 [#536 array_type_specifier]: #94 [#536 binary_and_expression]: #54 [#536 binary_or_expression]: #55 [#536 binary_xor_expression]: #56 [#536 bitwise_expression]: #52 [#536 bool_literal]: #76 [#536 call_expression]: #68 [#536 callable]: #73 [#536 decimal_float_literal]: #84 [#536 decimal_int_literal]: #82 [#536 depth_texture_type]: #121 [#536 expression]: #574 [#536 float_literal]: #75 [#536 for_header/0.2]: #573 [#536 hex_float_literal]: #85 [#536 hex_int_literal]: #83 [#536 ident]: #67 [#536 int_literal]: #74 [#536 literal]: #69 [#536 mat_prefix]: #80 [#536 multiplicative_expression]: #59 [#536 multisampled_texture_type]: #123 [#536 paren_expression]: #70 [#536 primary_expression]: #66 [#536 relational_expression]: #49 [#536 sampled_texture_type]: #122 [#536 sampler_type]: #120 [#536 shift_expression]: #53 [#536 short_circuit_and_expression]: #51 [#536 short_circuit_or_expression]: #50 [#536 singular_expression]: #60 [#536 storage_texture_type]: #124 [#536 texture_and_sampler_types]: #96 [#536 type_specifier_without_ident]: #78 [#536 unary_expression]: #58 [#536 vec_prefix]: #79 [#537 compound_statement]: #572 [#541 continuing_compound_statement]: #569 [#544 case_clause]: #545 [#544 default_alone_clause]: #546 [#544 switch_body]: #544 [#544 switch_statement/0.3/0]: #567 [#547 additive_expression]: #57 [#547 array_type_specifier]: #94 [#547 binary_and_expression]: #54 [#547 binary_or_expression]: #55 [#547 binary_xor_expression]: #56 [#547 bitwise_expression]: #52 [#547 bool_literal]: #76 [#547 call_expression]: #68 [#547 callable]: #73 [#547 case_selector]: #564 [#547 case_selectors]: #563 [#547 decimal_float_literal]: #84 [#547 decimal_int_literal]: #82 [#547 depth_texture_type]: #121 [#547 expression]: #566 [#547 float_literal]: #75 [#547 hex_float_literal]: #85 [#547 hex_int_literal]: #83 [#547 ident]: #67 [#547 int_literal]: #74 [#547 literal]: #69 [#547 mat_prefix]: #80 [#547 multiplicative_expression]: #59 [#547 multisampled_texture_type]: #123 [#547 paren_expression]: #70 [#547 primary_expression]: #66 [#547 relational_expression]: #49 [#547 sampled_texture_type]: #122 [#547 sampler_type]: #120 [#547 shift_expression]: #53 [#547 short_circuit_and_expression]: #51 [#547 short_circuit_or_expression]: #50 [#547 singular_expression]: #60 [#547 storage_texture_type]: #124 [#547 texture_and_sampler_types]: #96 [#547 type_specifier_without_ident]: #78 [#547 unary_expression]: #58 [#547 vec_prefix]: #79 [#548 default_alone_clause/0.1]: #561 [#550 compound_statement]: #560 [#553 access_mode]: #558 [#555 additive_expression]: #57 [#555 array_type_specifier]: #94 [#555 binary_and_expression]: #54 [#555 binary_or_expression]: #55 [#555 binary_xor_expression]: #56 [#555 bitwise_expression]: #52 [#555 bool_literal]: #76 [#555 call_expression]: #68 [#555 callable]: #73 [#555 decimal_float_literal]: #84 [#555 decimal_int_literal]: #82 [#555 depth_texture_type]: #121 [#555 expression]: #557 [#555 float_literal]: #75 [#555 hex_float_literal]: #85 [#555 hex_int_literal]: #83 [#555 ident]: #67 [#555 int_literal]: #74 [#555 literal]: #69 [#555 mat_prefix]: #80 [#555 multiplicative_expression]: #59 [#555 multisampled_texture_type]: #123 [#555 paren_expression]: #70 [#555 primary_expression]: #66 [#555 relational_expression]: #49 [#555 sampled_texture_type]: #122 [#555 sampler_type]: #120 [#555 shift_expression]: #53 [#555 short_circuit_and_expression]: #51 [#555 short_circuit_or_expression]: #50 [#555 singular_expression]: #60 [#555 storage_texture_type]: #124 [#555 texture_and_sampler_types]: #96 [#555 type_specifier_without_ident]: #78 [#555 unary_expression]: #58 [#555 vec_prefix]: #79 [#557 attrib_end]: #592 [#557 attrib_end/0.0]: #454 [#561 compound_statement]: #591 [#563 case_clause/0.2]: #589 [#564 case_selectors/0.1]: #585 [#564 case_selectors/0.1/0]: #586 [#564 case_selectors/0.1/0/0.0]: #587 [#570 array_type_specifier]: #94 [#570 assignment_statement]: #346 [#570 break_statement]: #328 [#570 callable]: #340 [#570 compound_statement]: #332 [#570 const_assert_statement]: #333 [#570 continue_statement]: #329 [#570 continuing_compound_statement/0.1]: #582 [#570 continuing_compound_statement/0.1/0]: #583 [#570 core_lhs_expression]: #353 [#570 decrement_statement]: #348 [#570 depth_texture_type]: #121 [#570 for_statement]: #324 [#570 func_call_statement]: #326 [#570 ident]: #350 [#570 if_clause]: #335 [#570 if_statement]: #321 [#570 increment_statement]: #347 [#570 lhs_expression]: #351 [#570 loop_statement]: #323 [#570 mat_prefix]: #80 [#570 multisampled_texture_type]: #123 [#570 return_statement]: #320 [#570 sampled_texture_type]: #122 [#570 sampler_type]: #120 [#570 statement]: #584 [#570 storage_texture_type]: #124 [#570 switch_statement]: #322 [#570 texture_and_sampler_types]: #96 [#570 type_specifier_without_ident]: #78 [#570 variable_decl]: #341 [#570 variable_statement]: #327 [#570 variable_updating_statement]: #331 [#570 vec_prefix]: #79 [#570 while_statement]: #325 [#576 array_type_specifier]: #94 [#576 depth_texture_type]: #121 [#576 ident]: #277 [#576 mat_prefix]: #280 [#576 multisampled_texture_type]: #123 [#576 sampled_texture_type]: #122 [#576 sampler_type]: #120 [#576 storage_texture_type]: #124 [#576 texture_and_sampler_types]: #96 [#576 type_specifier]: #580 [#576 type_specifier_without_ident]: #278 [#576 vec_prefix]: #279 [#578 attribute]: #578 [#578 function_header/0.5/0.1/0]: #579 [#581 array_type_specifier]: #94 [#581 assignment_statement]: #346 [#581 callable]: #340 [#581 core_lhs_expression]: #353 [#581 decrement_statement]: #348 [#581 depth_texture_type]: #121 [#581 for_header/0.4]: #602 [#581 for_update]: #603 [#581 func_call_statement]: #605 [#581 ident]: #350 [#581 increment_statement]: #347 [#581 lhs_expression]: #351 [#581 mat_prefix]: #80 [#581 multisampled_texture_type]: #123 [#581 sampled_texture_type]: #122 [#581 sampler_type]: #120 [#581 storage_texture_type]: #124 [#581 texture_and_sampler_types]: #96 [#581 type_specifier_without_ident]: #78 [#581 variable_updating_statement]: #604 [#581 vec_prefix]: #79 [#582 break_if_statement]: #600 [#582 continuing_compound_statement/0.2]: #599 [#584 array_type_specifier]: #94 [#584 assignment_statement]: #346 [#584 break_statement]: #328 [#584 callable]: #340 [#584 compound_statement]: #332 [#584 const_assert_statement]: #333 [#584 continue_statement]: #329 [#584 continuing_compound_statement/0.1/0]: #598 [#584 core_lhs_expression]: #353 [#584 decrement_statement]: #348 [#584 depth_texture_type]: #121 [#584 for_statement]: #324 [#584 func_call_statement]: #326 [#584 ident]: #350 [#584 if_clause]: #335 [#584 if_statement]: #321 [#584 increment_statement]: #347 [#584 lhs_expression]: #351 [#584 loop_statement]: #323 [#584 mat_prefix]: #80 [#584 multisampled_texture_type]: #123 [#584 return_statement]: #320 [#584 sampled_texture_type]: #122 [#584 sampler_type]: #120 [#584 statement]: #584 [#584 storage_texture_type]: #124 [#584 switch_statement]: #322 [#584 texture_and_sampler_types]: #96 [#584 type_specifier_without_ident]: #78 [#584 variable_decl]: #341 [#584 variable_statement]: #327 [#584 variable_updating_statement]: #331 [#584 vec_prefix]: #79 [#584 while_statement]: #325 [#585 case_selectors/0.2]: #596 [#587 case_selectors/0.1/0]: #595 [#587 case_selectors/0.1/0/0.0]: #587 [#588 additive_expression]: #57 [#588 array_type_specifier]: #94 [#588 binary_and_expression]: #54 [#588 binary_or_expression]: #55 [#588 binary_xor_expression]: #56 [#588 bitwise_expression]: #52 [#588 bool_literal]: #76 [#588 call_expression]: #68 [#588 callable]: #73 [#588 case_selector]: #594 [#588 decimal_float_literal]: #84 [#588 decimal_int_literal]: #82 [#588 depth_texture_type]: #121 [#588 expression]: #566 [#588 float_literal]: #75 [#588 hex_float_literal]: #85 [#588 hex_int_literal]: #83 [#588 ident]: #67 [#588 int_literal]: #74 [#588 literal]: #69 [#588 mat_prefix]: #80 [#588 multiplicative_expression]: #59 [#588 multisampled_texture_type]: #123 [#588 paren_expression]: #70 [#588 primary_expression]: #66 [#588 relational_expression]: #49 [#588 sampled_texture_type]: #122 [#588 sampler_type]: #120 [#588 shift_expression]: #53 [#588 short_circuit_and_expression]: #51 [#588 short_circuit_or_expression]: #50 [#588 singular_expression]: #60 [#588 storage_texture_type]: #124 [#588 texture_and_sampler_types]: #96 [#588 type_specifier_without_ident]: #78 [#588 unary_expression]: #58 [#588 vec_prefix]: #79 [#589 compound_statement]: #593 [#606 additive_expression]: #57 [#606 array_type_specifier]: #94 [#606 binary_and_expression]: #54 [#606 binary_or_expression]: #55 [#606 binary_xor_expression]: #56 [#606 bitwise_expression]: #52 [#606 bool_literal]: #76 [#606 call_expression]: #68 [#606 callable]: #73 [#606 decimal_float_literal]: #84 [#606 decimal_int_literal]: #82 [#606 depth_texture_type]: #121 [#606 expression]: #608 [#606 float_literal]: #75 [#606 hex_float_literal]: #85 [#606 hex_int_literal]: #83 [#606 ident]: #67 [#606 int_literal]: #74 [#606 literal]: #69 [#606 mat_prefix]: #80 [#606 multiplicative_expression]: #59 [#606 multisampled_texture_type]: #123 [#606 paren_expression]: #70 [#606 primary_expression]: #66 [#606 relational_expression]: #49 [#606 sampled_texture_type]: #122 [#606 sampler_type]: #120 [#606 shift_expression]: #53 [#606 short_circuit_and_expression]: #51 [#606 short_circuit_or_expression]: #50 [#606 singular_expression]: #60 [#606 storage_texture_type]: #124 [#606 texture_and_sampler_types]: #96 [#606 type_specifier_without_ident]: #78 [#606 unary_expression]: #58 [#606 vec_prefix]: #79