blob: e29ed067aa7ce6121711c1e9e2166dddd8d5fae6 [file] [log] [blame] [edit]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file was generated by FuzzTest's grammar_domain_code_generator using
// the following command line:
// $ grammar_domain_code_generator --input_grammar_files \
// /path/to/wgsl.g4 --output_header_file_path \
// /path/to/tint_wgsl_fuzzer_grammar.h --insert_whitespace
#ifndef TESTING_LIBFUZZER_FUZZERS_TINT_WGSL_FUZZER_GRAMMAR_H_
#define TESTING_LIBFUZZER_FUZZERS_TINT_WGSL_FUZZER_GRAMMAR_H_
#include "third_party/fuzztest/src/fuzztest/internal/domains/in_grammar_impl.h"
namespace fuzztest::internal::grammar::wgsl {
enum WgslTypes {
kWgslNode,
kTranslation_unitNode,
kGlobal_directiveNode,
kGlobal_declNode,
kGlobal_assertNode,
kBool_literalNode,
kInt_literalNode,
kDECIMAL_INT_LITERALNode,
kHEX_INT_LITERALNode,
kFloat_literalNode,
kDECIMAL_FLOAT_LITERALNode,
kHEX_FLOAT_LITERALNode,
kDiagnostic_directiveNode,
kLiteralNode,
kIdentNode,
kMember_identNode,
kDiagnostic_name_tokenNode,
kDiagnostic_rule_nameNode,
kTemplate_args_startNode,
kTemplate_args_endNode,
kTemplate_listNode,
kTemplate_arg_comma_listNode,
kTemplate_arg_expressionNode,
kAlign_attrNode,
kBinding_attrNode,
kBlend_src_attrNode,
kBuiltin_attrNode,
kBuiltin_value_nameNode,
kConst_attrNode,
kDiagnostic_attrNode,
kGroup_attrNode,
kId_attrNode,
kInterpolate_attrNode,
kInterpolate_type_nameNode,
kInterpolate_sampling_nameNode,
kInvariant_attrNode,
kLocation_attrNode,
kMust_use_attrNode,
kSize_attrNode,
kWorkgroup_size_attrNode,
kVertex_attrNode,
kFragment_attrNode,
kCompute_attrNode,
kAttributeNode,
kDiagnostic_controlNode,
kStruct_declNode,
kStruct_body_declNode,
kStruct_memberNode,
kType_alias_declNode,
kType_specifierNode,
kTemplate_elaborated_identNode,
kVariable_or_value_statementNode,
kVariable_declNode,
kOptionally_typed_identNode,
kGlobal_variable_declNode,
kGlobal_value_declNode,
kPrimary_expressionNode,
kCall_expressionNode,
kCall_phraseNode,
kParen_expressionNode,
kArgument_expression_listNode,
kExpression_comma_listNode,
kComponent_or_swizzle_specifierNode,
kUnary_expressionNode,
kSingular_expressionNode,
kLhs_expressionNode,
kCore_lhs_expressionNode,
kMultiplicative_expressionNode,
kMultiplicative_operatorNode,
kAdditive_expressionNode,
kAdditive_operatorNode,
kShift_leftNode,
kShift_rightNode,
kLess_thanNode,
kGreater_thanNode,
kLess_than_equalNode,
kGreater_than_equalNode,
kShift_expressionNode,
kRelational_expressionNode,
kShort_circuit_and_expressionNode,
kShort_circuit_or_expressionNode,
kBinary_or_expressionNode,
kBinary_and_expressionNode,
kBinary_xor_expressionNode,
kBitwise_expressionNode,
kExpressionNode,
kCompound_statementNode,
kAssignment_statementNode,
kShift_right_assignNode,
kShift_left_assignNode,
kCompound_assignment_operatorNode,
kIncrement_statementNode,
kDecrement_statementNode,
kIf_statementNode,
kIf_clauseNode,
kElse_if_clauseNode,
kElse_clauseNode,
kSwitch_statementNode,
kSwitch_bodyNode,
kSwitch_clauseNode,
kCase_clauseNode,
kDefault_alone_clauseNode,
kCase_selectorsNode,
kCase_selectorNode,
kLoop_statementNode,
kFor_statementNode,
kFor_headerNode,
kFor_initNode,
kFor_updateNode,
kWhile_statementNode,
kBreak_statementNode,
kBreak_if_statementNode,
kContinue_statementNode,
kContinuing_statementNode,
kContinuing_compound_statementNode,
kReturn_statementNode,
kFunc_call_statementNode,
kConst_assertNode,
kAssert_statementNode,
kStatementNode,
kVariable_updating_statementNode,
kFunction_declNode,
kFunction_headerNode,
kParam_listNode,
kParamNode,
kEnable_directiveNode,
kEnable_extension_listNode,
kRequires_directiveNode,
kSoftware_extension_listNode,
kEnable_extension_nameNode,
kSoftware_extension_nameNode,
kIDENT_PATTERN_TOKENNode,
kSeverity_control_nameNode,
kSWIZZLE_NAMENode,
kWhitespaceNode,
kTranslation_unitSubNode0,
kTranslation_unitSubNode1,
kTranslation_unitSubNode2,
kGlobal_declSubNode3,
kGlobal_declSubNode4,
kGlobal_declSubNode5,
kDECIMAL_INT_LITERALSubNode6,
kDECIMAL_INT_LITERALSubNode7,
kDECIMAL_INT_LITERALSubNode8,
kDECIMAL_INT_LITERALSubNode9,
kDECIMAL_INT_LITERALSubNode10,
kHEX_INT_LITERALSubNode11,
kHEX_INT_LITERALSubNode12,
kDECIMAL_FLOAT_LITERALSubNode13,
kDECIMAL_FLOAT_LITERALSubNode14,
kDECIMAL_FLOAT_LITERALSubNode15,
kDECIMAL_FLOAT_LITERALSubNode16,
kDECIMAL_FLOAT_LITERALSubNode17,
kDECIMAL_FLOAT_LITERALSubNode18,
kDECIMAL_FLOAT_LITERALSubNode20,
kDECIMAL_FLOAT_LITERALSubNode21,
kDECIMAL_FLOAT_LITERALSubNode19,
kDECIMAL_FLOAT_LITERALSubNode22,
kDECIMAL_FLOAT_LITERALSubNode23,
kDECIMAL_FLOAT_LITERALSubNode24,
kDECIMAL_FLOAT_LITERALSubNode25,
kDECIMAL_FLOAT_LITERALSubNode26,
kDECIMAL_FLOAT_LITERALSubNode28,
kDECIMAL_FLOAT_LITERALSubNode29,
kDECIMAL_FLOAT_LITERALSubNode27,
kDECIMAL_FLOAT_LITERALSubNode30,
kDECIMAL_FLOAT_LITERALSubNode31,
kDECIMAL_FLOAT_LITERALSubNode32,
kDECIMAL_FLOAT_LITERALSubNode33,
kDECIMAL_FLOAT_LITERALSubNode34,
kDECIMAL_FLOAT_LITERALSubNode35,
kDECIMAL_FLOAT_LITERALSubNode36,
kHEX_FLOAT_LITERALSubNode37,
kHEX_FLOAT_LITERALSubNode38,
kHEX_FLOAT_LITERALSubNode39,
kHEX_FLOAT_LITERALSubNode41,
kHEX_FLOAT_LITERALSubNode42,
kHEX_FLOAT_LITERALSubNode43,
kHEX_FLOAT_LITERALSubNode40,
kHEX_FLOAT_LITERALSubNode44,
kHEX_FLOAT_LITERALSubNode45,
kHEX_FLOAT_LITERALSubNode46,
kHEX_FLOAT_LITERALSubNode47,
kHEX_FLOAT_LITERALSubNode49,
kHEX_FLOAT_LITERALSubNode50,
kHEX_FLOAT_LITERALSubNode51,
kHEX_FLOAT_LITERALSubNode48,
kHEX_FLOAT_LITERALSubNode52,
kHEX_FLOAT_LITERALSubNode53,
kHEX_FLOAT_LITERALSubNode54,
kHEX_FLOAT_LITERALSubNode55,
kHEX_FLOAT_LITERALSubNode56,
kHEX_FLOAT_LITERALSubNode57,
kDiagnostic_rule_nameSubNode58,
kTemplate_arg_comma_listSubNode59,
kTemplate_arg_comma_listSubNode60,
kTemplate_arg_comma_listSubNode61,
kAlign_attrSubNode62,
kBinding_attrSubNode63,
kBlend_src_attrSubNode64,
kBuiltin_attrSubNode65,
kGroup_attrSubNode66,
kId_attrSubNode67,
kInterpolate_attrSubNode68,
kInterpolate_attrSubNode69,
kInterpolate_attrSubNode70,
kInterpolate_attrSubNode71,
kLocation_attrSubNode72,
kSize_attrSubNode73,
kWorkgroup_size_attrSubNode74,
kWorkgroup_size_attrSubNode75,
kWorkgroup_size_attrSubNode76,
kWorkgroup_size_attrSubNode77,
kWorkgroup_size_attrSubNode78,
kWorkgroup_size_attrSubNode79,
kAttributeSubNode80,
kAttributeSubNode81,
kDiagnostic_controlSubNode82,
kStruct_body_declSubNode83,
kStruct_body_declSubNode84,
kStruct_body_declSubNode85,
kStruct_memberSubNode86,
kTemplate_elaborated_identSubNode87,
kVariable_or_value_statementSubNode88,
kVariable_or_value_statementSubNode89,
kVariable_or_value_statementSubNode90,
kVariable_declSubNode91,
kOptionally_typed_identSubNode92,
kOptionally_typed_identSubNode93,
kGlobal_variable_declSubNode94,
kGlobal_variable_declSubNode95,
kGlobal_variable_declSubNode96,
kGlobal_value_declSubNode97,
kGlobal_value_declSubNode98,
kGlobal_value_declSubNode99,
kGlobal_value_declSubNode100,
kGlobal_value_declSubNode101,
kArgument_expression_listSubNode102,
kExpression_comma_listSubNode103,
kExpression_comma_listSubNode104,
kExpression_comma_listSubNode105,
kComponent_or_swizzle_specifierSubNode106,
kComponent_or_swizzle_specifierSubNode107,
kComponent_or_swizzle_specifierSubNode108,
kComponent_or_swizzle_specifierSubNode109,
kComponent_or_swizzle_specifierSubNode110,
kComponent_or_swizzle_specifierSubNode111,
kUnary_expressionSubNode112,
kUnary_expressionSubNode113,
kUnary_expressionSubNode114,
kUnary_expressionSubNode115,
kUnary_expressionSubNode116,
kSingular_expressionSubNode117,
kLhs_expressionSubNode118,
kLhs_expressionSubNode119,
kLhs_expressionSubNode120,
kLhs_expressionSubNode121,
kCore_lhs_expressionSubNode122,
kMultiplicative_expressionSubNode123,
kAdditive_expressionSubNode124,
kShift_expressionSubNode125,
kShift_expressionSubNode126,
kRelational_expressionSubNode127,
kRelational_expressionSubNode128,
kRelational_expressionSubNode129,
kRelational_expressionSubNode130,
kRelational_expressionSubNode131,
kRelational_expressionSubNode132,
kShort_circuit_and_expressionSubNode133,
kShort_circuit_or_expressionSubNode134,
kBinary_or_expressionSubNode135,
kBinary_and_expressionSubNode136,
kBinary_xor_expressionSubNode137,
kBitwise_expressionSubNode138,
kBitwise_expressionSubNode139,
kBitwise_expressionSubNode140,
kExpressionSubNode141,
kExpressionSubNode142,
kCompound_statementSubNode143,
kCompound_statementSubNode144,
kAssignment_statementSubNode145,
kAssignment_statementSubNode146,
kAssignment_statementSubNode147,
kIf_statementSubNode148,
kIf_statementSubNode149,
kIf_statementSubNode150,
kSwitch_statementSubNode151,
kSwitch_bodySubNode152,
kSwitch_bodySubNode153,
kCase_clauseSubNode154,
kDefault_alone_clauseSubNode155,
kCase_selectorsSubNode156,
kCase_selectorsSubNode157,
kCase_selectorsSubNode158,
kLoop_statementSubNode159,
kLoop_statementSubNode160,
kLoop_statementSubNode161,
kLoop_statementSubNode162,
kFor_statementSubNode163,
kFor_headerSubNode164,
kFor_headerSubNode165,
kFor_headerSubNode166,
kWhile_statementSubNode167,
kContinuing_compound_statementSubNode168,
kContinuing_compound_statementSubNode169,
kContinuing_compound_statementSubNode170,
kReturn_statementSubNode171,
kStatementSubNode172,
kStatementSubNode173,
kStatementSubNode174,
kStatementSubNode175,
kStatementSubNode176,
kStatementSubNode177,
kStatementSubNode178,
kStatementSubNode179,
kFunction_declSubNode180,
kFunction_headerSubNode181,
kFunction_headerSubNode182,
kFunction_headerSubNode184,
kFunction_headerSubNode183,
kParam_listSubNode185,
kParam_listSubNode186,
kParam_listSubNode187,
kParamSubNode188,
kEnable_extension_listSubNode189,
kEnable_extension_listSubNode190,
kEnable_extension_listSubNode191,
kSoftware_extension_listSubNode192,
kSoftware_extension_listSubNode193,
kSoftware_extension_listSubNode194,
kIDENT_PATTERN_TOKENSubNode196,
kIDENT_PATTERN_TOKENSubNode195,
kIDENT_PATTERN_TOKENSubNode197,
kSWIZZLE_NAMESubNode198,
kSWIZZLE_NAMESubNode199,
kSWIZZLE_NAMESubNode200,
kSWIZZLE_NAMESubNode201,
kSWIZZLE_NAMESubNode202,
kSWIZZLE_NAMESubNode203,
kWhitespaceSubNode204,
kEOFNode,
kLiteral0,
kLiteral76,
kLiteral80,
kLiteral88,
kLiteral34,
kLiteral47,
kLiteral78,
kLiteral81,
kLiteral48,
kLiteral9,
kLiteral10,
kLiteral32,
kLiteral45,
kLiteral35,
kLiteral51,
kLiteral43,
kLiteral24,
kLiteral36,
kLiteral52,
kLiteral44,
kLiteral87,
kLiteral69,
kLiteral33,
kLiteral46,
kLiteral28,
kLiteral1,
kLiteral5,
kLiteral37,
kLiteral42,
kLiteral39,
kLiteral30,
kLiteral79,
kLiteral6,
kLiteral40,
kLiteral38,
kLiteral41,
kLiteral7,
kLiteral74,
kLiteral75,
kLiteral84,
kLiteral50,
kLiteral85,
kLiteral29,
kLiteral8,
kLiteral11,
kLiteral12,
kLiteral61,
kLiteral13,
kLiteral56,
kLiteral23,
kLiteral14,
kLiteral65,
kLiteral62,
kLiteral63,
kLiteral57,
kLiteral4,
kLiteral86,
kLiteral54,
kLiteral67,
kLiteral3,
kLiteral66,
kLiteral59,
kLiteral22,
kLiteral15,
kLiteral16,
kLiteral53,
kLiteral70,
kLiteral17,
kLiteral72,
kLiteral18,
kLiteral58,
kLiteral19,
kLiteral73,
kLiteral68,
kLiteral64,
kLiteral20,
kLiteral25,
kLiteral55,
kLiteral2,
kLiteral31,
kLiteral21,
kLiteral60,
kLiteral71,
kLiteral26,
kLiteral83,
kLiteral49,
kLiteral82,
kLiteral27,
kLiteral77,
kCharSet16,
kCharSet9,
kCharSet11,
kCharSet5,
kCharSet7,
kCharSet0,
kCharSet6,
kCharSet13,
kCharSet14,
kCharSet15,
kCharSet10,
kCharSet8,
kCharSet4,
kCharSet12,
kCharSet2,
kCharSet1,
kCharSet3,
};
class WgslNode;
class Translation_unitNode;
class Global_directiveNode;
class Global_declNode;
class Global_assertNode;
class Bool_literalNode;
class Int_literalNode;
class DECIMAL_INT_LITERALNode;
class HEX_INT_LITERALNode;
class Float_literalNode;
class DECIMAL_FLOAT_LITERALNode;
class HEX_FLOAT_LITERALNode;
class Diagnostic_directiveNode;
class LiteralNode;
class IdentNode;
class Member_identNode;
class Diagnostic_name_tokenNode;
class Diagnostic_rule_nameNode;
class Template_args_startNode;
class Template_args_endNode;
class Template_listNode;
class Template_arg_comma_listNode;
class Template_arg_expressionNode;
class Align_attrNode;
class Binding_attrNode;
class Blend_src_attrNode;
class Builtin_attrNode;
class Builtin_value_nameNode;
class Const_attrNode;
class Diagnostic_attrNode;
class Group_attrNode;
class Id_attrNode;
class Interpolate_attrNode;
class Interpolate_type_nameNode;
class Interpolate_sampling_nameNode;
class Invariant_attrNode;
class Location_attrNode;
class Must_use_attrNode;
class Size_attrNode;
class Workgroup_size_attrNode;
class Vertex_attrNode;
class Fragment_attrNode;
class Compute_attrNode;
class AttributeNode;
class Diagnostic_controlNode;
class Struct_declNode;
class Struct_body_declNode;
class Struct_memberNode;
class Type_alias_declNode;
class Type_specifierNode;
class Template_elaborated_identNode;
class Variable_or_value_statementNode;
class Variable_declNode;
class Optionally_typed_identNode;
class Global_variable_declNode;
class Global_value_declNode;
class Primary_expressionNode;
class Call_expressionNode;
class Call_phraseNode;
class Paren_expressionNode;
class Argument_expression_listNode;
class Expression_comma_listNode;
class Component_or_swizzle_specifierNode;
class Unary_expressionNode;
class Singular_expressionNode;
class Lhs_expressionNode;
class Core_lhs_expressionNode;
class Multiplicative_expressionNode;
class Multiplicative_operatorNode;
class Additive_expressionNode;
class Additive_operatorNode;
class Shift_leftNode;
class Shift_rightNode;
class Less_thanNode;
class Greater_thanNode;
class Less_than_equalNode;
class Greater_than_equalNode;
class Shift_expressionNode;
class Relational_expressionNode;
class Short_circuit_and_expressionNode;
class Short_circuit_or_expressionNode;
class Binary_or_expressionNode;
class Binary_and_expressionNode;
class Binary_xor_expressionNode;
class Bitwise_expressionNode;
class ExpressionNode;
class Compound_statementNode;
class Assignment_statementNode;
class Shift_right_assignNode;
class Shift_left_assignNode;
class Compound_assignment_operatorNode;
class Increment_statementNode;
class Decrement_statementNode;
class If_statementNode;
class If_clauseNode;
class Else_if_clauseNode;
class Else_clauseNode;
class Switch_statementNode;
class Switch_bodyNode;
class Switch_clauseNode;
class Case_clauseNode;
class Default_alone_clauseNode;
class Case_selectorsNode;
class Case_selectorNode;
class Loop_statementNode;
class For_statementNode;
class For_headerNode;
class For_initNode;
class For_updateNode;
class While_statementNode;
class Break_statementNode;
class Break_if_statementNode;
class Continue_statementNode;
class Continuing_statementNode;
class Continuing_compound_statementNode;
class Return_statementNode;
class Func_call_statementNode;
class Const_assertNode;
class Assert_statementNode;
class StatementNode;
class Variable_updating_statementNode;
class Function_declNode;
class Function_headerNode;
class Param_listNode;
class ParamNode;
class Enable_directiveNode;
class Enable_extension_listNode;
class Requires_directiveNode;
class Software_extension_listNode;
class Enable_extension_nameNode;
class Software_extension_nameNode;
class IDENT_PATTERN_TOKENNode;
class Severity_control_nameNode;
class SWIZZLE_NAMENode;
class WhitespaceNode;
class Translation_unitSubNode0;
class Translation_unitSubNode1;
class Translation_unitSubNode2;
class Global_declSubNode3;
class Global_declSubNode4;
class Global_declSubNode5;
class DECIMAL_INT_LITERALSubNode6;
class DECIMAL_INT_LITERALSubNode7;
class DECIMAL_INT_LITERALSubNode8;
class DECIMAL_INT_LITERALSubNode9;
class DECIMAL_INT_LITERALSubNode10;
class HEX_INT_LITERALSubNode11;
class HEX_INT_LITERALSubNode12;
class DECIMAL_FLOAT_LITERALSubNode13;
class DECIMAL_FLOAT_LITERALSubNode14;
class DECIMAL_FLOAT_LITERALSubNode15;
class DECIMAL_FLOAT_LITERALSubNode16;
class DECIMAL_FLOAT_LITERALSubNode17;
class DECIMAL_FLOAT_LITERALSubNode18;
class DECIMAL_FLOAT_LITERALSubNode20;
class DECIMAL_FLOAT_LITERALSubNode21;
class DECIMAL_FLOAT_LITERALSubNode19;
class DECIMAL_FLOAT_LITERALSubNode22;
class DECIMAL_FLOAT_LITERALSubNode23;
class DECIMAL_FLOAT_LITERALSubNode24;
class DECIMAL_FLOAT_LITERALSubNode25;
class DECIMAL_FLOAT_LITERALSubNode26;
class DECIMAL_FLOAT_LITERALSubNode28;
class DECIMAL_FLOAT_LITERALSubNode29;
class DECIMAL_FLOAT_LITERALSubNode27;
class DECIMAL_FLOAT_LITERALSubNode30;
class DECIMAL_FLOAT_LITERALSubNode31;
class DECIMAL_FLOAT_LITERALSubNode32;
class DECIMAL_FLOAT_LITERALSubNode33;
class DECIMAL_FLOAT_LITERALSubNode34;
class DECIMAL_FLOAT_LITERALSubNode35;
class DECIMAL_FLOAT_LITERALSubNode36;
class HEX_FLOAT_LITERALSubNode37;
class HEX_FLOAT_LITERALSubNode38;
class HEX_FLOAT_LITERALSubNode39;
class HEX_FLOAT_LITERALSubNode41;
class HEX_FLOAT_LITERALSubNode42;
class HEX_FLOAT_LITERALSubNode43;
class HEX_FLOAT_LITERALSubNode40;
class HEX_FLOAT_LITERALSubNode44;
class HEX_FLOAT_LITERALSubNode45;
class HEX_FLOAT_LITERALSubNode46;
class HEX_FLOAT_LITERALSubNode47;
class HEX_FLOAT_LITERALSubNode49;
class HEX_FLOAT_LITERALSubNode50;
class HEX_FLOAT_LITERALSubNode51;
class HEX_FLOAT_LITERALSubNode48;
class HEX_FLOAT_LITERALSubNode52;
class HEX_FLOAT_LITERALSubNode53;
class HEX_FLOAT_LITERALSubNode54;
class HEX_FLOAT_LITERALSubNode55;
class HEX_FLOAT_LITERALSubNode56;
class HEX_FLOAT_LITERALSubNode57;
class Diagnostic_rule_nameSubNode58;
class Template_arg_comma_listSubNode59;
class Template_arg_comma_listSubNode60;
class Template_arg_comma_listSubNode61;
class Align_attrSubNode62;
class Binding_attrSubNode63;
class Blend_src_attrSubNode64;
class Builtin_attrSubNode65;
class Group_attrSubNode66;
class Id_attrSubNode67;
class Interpolate_attrSubNode68;
class Interpolate_attrSubNode69;
class Interpolate_attrSubNode70;
class Interpolate_attrSubNode71;
class Location_attrSubNode72;
class Size_attrSubNode73;
class Workgroup_size_attrSubNode74;
class Workgroup_size_attrSubNode75;
class Workgroup_size_attrSubNode76;
class Workgroup_size_attrSubNode77;
class Workgroup_size_attrSubNode78;
class Workgroup_size_attrSubNode79;
class AttributeSubNode80;
class AttributeSubNode81;
class Diagnostic_controlSubNode82;
class Struct_body_declSubNode83;
class Struct_body_declSubNode84;
class Struct_body_declSubNode85;
class Struct_memberSubNode86;
class Template_elaborated_identSubNode87;
class Variable_or_value_statementSubNode88;
class Variable_or_value_statementSubNode89;
class Variable_or_value_statementSubNode90;
class Variable_declSubNode91;
class Optionally_typed_identSubNode92;
class Optionally_typed_identSubNode93;
class Global_variable_declSubNode94;
class Global_variable_declSubNode95;
class Global_variable_declSubNode96;
class Global_value_declSubNode97;
class Global_value_declSubNode98;
class Global_value_declSubNode99;
class Global_value_declSubNode100;
class Global_value_declSubNode101;
class Argument_expression_listSubNode102;
class Expression_comma_listSubNode103;
class Expression_comma_listSubNode104;
class Expression_comma_listSubNode105;
class Component_or_swizzle_specifierSubNode106;
class Component_or_swizzle_specifierSubNode107;
class Component_or_swizzle_specifierSubNode108;
class Component_or_swizzle_specifierSubNode109;
class Component_or_swizzle_specifierSubNode110;
class Component_or_swizzle_specifierSubNode111;
class Unary_expressionSubNode112;
class Unary_expressionSubNode113;
class Unary_expressionSubNode114;
class Unary_expressionSubNode115;
class Unary_expressionSubNode116;
class Singular_expressionSubNode117;
class Lhs_expressionSubNode118;
class Lhs_expressionSubNode119;
class Lhs_expressionSubNode120;
class Lhs_expressionSubNode121;
class Core_lhs_expressionSubNode122;
class Multiplicative_expressionSubNode123;
class Additive_expressionSubNode124;
class Shift_expressionSubNode125;
class Shift_expressionSubNode126;
class Relational_expressionSubNode127;
class Relational_expressionSubNode128;
class Relational_expressionSubNode129;
class Relational_expressionSubNode130;
class Relational_expressionSubNode131;
class Relational_expressionSubNode132;
class Short_circuit_and_expressionSubNode133;
class Short_circuit_or_expressionSubNode134;
class Binary_or_expressionSubNode135;
class Binary_and_expressionSubNode136;
class Binary_xor_expressionSubNode137;
class Bitwise_expressionSubNode138;
class Bitwise_expressionSubNode139;
class Bitwise_expressionSubNode140;
class ExpressionSubNode141;
class ExpressionSubNode142;
class Compound_statementSubNode143;
class Compound_statementSubNode144;
class Assignment_statementSubNode145;
class Assignment_statementSubNode146;
class Assignment_statementSubNode147;
class If_statementSubNode148;
class If_statementSubNode149;
class If_statementSubNode150;
class Switch_statementSubNode151;
class Switch_bodySubNode152;
class Switch_bodySubNode153;
class Case_clauseSubNode154;
class Default_alone_clauseSubNode155;
class Case_selectorsSubNode156;
class Case_selectorsSubNode157;
class Case_selectorsSubNode158;
class Loop_statementSubNode159;
class Loop_statementSubNode160;
class Loop_statementSubNode161;
class Loop_statementSubNode162;
class For_statementSubNode163;
class For_headerSubNode164;
class For_headerSubNode165;
class For_headerSubNode166;
class While_statementSubNode167;
class Continuing_compound_statementSubNode168;
class Continuing_compound_statementSubNode169;
class Continuing_compound_statementSubNode170;
class Return_statementSubNode171;
class StatementSubNode172;
class StatementSubNode173;
class StatementSubNode174;
class StatementSubNode175;
class StatementSubNode176;
class StatementSubNode177;
class StatementSubNode178;
class StatementSubNode179;
class Function_declSubNode180;
class Function_headerSubNode181;
class Function_headerSubNode182;
class Function_headerSubNode184;
class Function_headerSubNode183;
class Param_listSubNode185;
class Param_listSubNode186;
class Param_listSubNode187;
class ParamSubNode188;
class Enable_extension_listSubNode189;
class Enable_extension_listSubNode190;
class Enable_extension_listSubNode191;
class Software_extension_listSubNode192;
class Software_extension_listSubNode193;
class Software_extension_listSubNode194;
class IDENT_PATTERN_TOKENSubNode196;
class IDENT_PATTERN_TOKENSubNode195;
class IDENT_PATTERN_TOKENSubNode197;
class SWIZZLE_NAMESubNode198;
class SWIZZLE_NAMESubNode199;
class SWIZZLE_NAMESubNode200;
class SWIZZLE_NAMESubNode201;
class SWIZZLE_NAMESubNode202;
class SWIZZLE_NAMESubNode203;
class WhitespaceSubNode204;
class EOFNode;
class Literal0;
class Literal76;
class Literal80;
class Literal88;
class Literal34;
class Literal47;
class Literal78;
class Literal81;
class Literal48;
class Literal9;
class Literal10;
class Literal32;
class Literal45;
class Literal35;
class Literal51;
class Literal43;
class Literal24;
class Literal36;
class Literal52;
class Literal44;
class Literal87;
class Literal69;
class Literal33;
class Literal46;
class Literal28;
class Literal1;
class Literal5;
class Literal37;
class Literal42;
class Literal39;
class Literal30;
class Literal79;
class Literal6;
class Literal40;
class Literal38;
class Literal41;
class Literal7;
class Literal74;
class Literal75;
class Literal84;
class Literal50;
class Literal85;
class Literal29;
class Literal8;
class Literal11;
class Literal12;
class Literal61;
class Literal13;
class Literal56;
class Literal23;
class Literal14;
class Literal65;
class Literal62;
class Literal63;
class Literal57;
class Literal4;
class Literal86;
class Literal54;
class Literal67;
class Literal3;
class Literal66;
class Literal59;
class Literal22;
class Literal15;
class Literal16;
class Literal53;
class Literal70;
class Literal17;
class Literal72;
class Literal18;
class Literal58;
class Literal19;
class Literal73;
class Literal68;
class Literal64;
class Literal20;
class Literal25;
class Literal55;
class Literal2;
class Literal31;
class Literal21;
class Literal60;
class Literal71;
class Literal26;
class Literal83;
class Literal49;
class Literal82;
class Literal27;
class Literal77;
class CharSet16;
class CharSet9;
class CharSet11;
class CharSet5;
class CharSet7;
class CharSet0;
class CharSet6;
class CharSet13;
class CharSet14;
class CharSet15;
class CharSet10;
class CharSet8;
class CharSet4;
class CharSet12;
class CharSet2;
class CharSet1;
class CharSet3;
inline constexpr absl::string_view kStrLiteral0 = " ";
inline constexpr absl::string_view kStrLiteral76 = "!";
inline constexpr absl::string_view kStrLiteral80 = "!=";
inline constexpr absl::string_view kStrLiteral88 = "";
inline constexpr absl::string_view kStrLiteral34 = "%";
inline constexpr absl::string_view kStrLiteral47 = "%=";
inline constexpr absl::string_view kStrLiteral78 = "&";
inline constexpr absl::string_view kStrLiteral81 = "&&";
inline constexpr absl::string_view kStrLiteral48 = "&=";
inline constexpr absl::string_view kStrLiteral9 = "(";
inline constexpr absl::string_view kStrLiteral10 = ")";
inline constexpr absl::string_view kStrLiteral32 = "*";
inline constexpr absl::string_view kStrLiteral45 = "*=";
inline constexpr absl::string_view kStrLiteral35 = "+";
inline constexpr absl::string_view kStrLiteral51 = "++";
inline constexpr absl::string_view kStrLiteral43 = "+=";
inline constexpr absl::string_view kStrLiteral24 = ",";
inline constexpr absl::string_view kStrLiteral36 = "-";
inline constexpr absl::string_view kStrLiteral52 = "--";
inline constexpr absl::string_view kStrLiteral44 = "-=";
inline constexpr absl::string_view kStrLiteral87 = "->";
inline constexpr absl::string_view kStrLiteral69 = ".";
inline constexpr absl::string_view kStrLiteral33 = "/";
inline constexpr absl::string_view kStrLiteral46 = "/=";
inline constexpr absl::string_view kStrLiteral28 = ":";
inline constexpr absl::string_view kStrLiteral1 = ";";
inline constexpr absl::string_view kStrLiteral5 = "<";
inline constexpr absl::string_view kStrLiteral37 = "<<";
inline constexpr absl::string_view kStrLiteral42 = "<<=";
inline constexpr absl::string_view kStrLiteral39 = "<=";
inline constexpr absl::string_view kStrLiteral30 = "=";
inline constexpr absl::string_view kStrLiteral79 = "==";
inline constexpr absl::string_view kStrLiteral6 = ">";
inline constexpr absl::string_view kStrLiteral40 = ">=";
inline constexpr absl::string_view kStrLiteral38 = ">>";
inline constexpr absl::string_view kStrLiteral41 = ">>=";
inline constexpr absl::string_view kStrLiteral7 = "@";
inline constexpr absl::string_view kStrLiteral74 = "[";
inline constexpr absl::string_view kStrLiteral75 = "]";
inline constexpr absl::string_view kStrLiteral84 = "^";
inline constexpr absl::string_view kStrLiteral50 = "^=";
inline constexpr absl::string_view kStrLiteral85 = "_";
inline constexpr absl::string_view kStrLiteral29 = "alias";
inline constexpr absl::string_view kStrLiteral8 = "align";
inline constexpr absl::string_view kStrLiteral11 = "binding";
inline constexpr absl::string_view kStrLiteral12 = "blend_src";
inline constexpr absl::string_view kStrLiteral61 = "break";
inline constexpr absl::string_view kStrLiteral13 = "builtin";
inline constexpr absl::string_view kStrLiteral56 = "case";
inline constexpr absl::string_view kStrLiteral23 = "compute";
inline constexpr absl::string_view kStrLiteral14 = "const";
inline constexpr absl::string_view kStrLiteral65 = "const_assert";
inline constexpr absl::string_view kStrLiteral62 = "continue";
inline constexpr absl::string_view kStrLiteral63 = "continuing";
inline constexpr absl::string_view kStrLiteral57 = "default";
inline constexpr absl::string_view kStrLiteral4 = "diagnostic";
inline constexpr absl::string_view kStrLiteral86 = "discard";
inline constexpr absl::string_view kStrLiteral54 = "else";
inline constexpr absl::string_view kStrLiteral67 = "enable";
inline constexpr absl::string_view kStrLiteral3 = "false";
inline constexpr absl::string_view kStrLiteral66 = "fn";
inline constexpr absl::string_view kStrLiteral59 = "for";
inline constexpr absl::string_view kStrLiteral22 = "fragment";
inline constexpr absl::string_view kStrLiteral15 = "group";
inline constexpr absl::string_view kStrLiteral16 = "id";
inline constexpr absl::string_view kStrLiteral53 = "if";
inline constexpr absl::string_view kStrLiteral70 = "interpolate";
inline constexpr absl::string_view kStrLiteral17 = "invariant";
inline constexpr absl::string_view kStrLiteral72 = "let";
inline constexpr absl::string_view kStrLiteral18 = "location";
inline constexpr absl::string_view kStrLiteral58 = "loop";
inline constexpr absl::string_view kStrLiteral19 = "must_use";
inline constexpr absl::string_view kStrLiteral73 = "override";
inline constexpr absl::string_view kStrLiteral68 = "requires";
inline constexpr absl::string_view kStrLiteral64 = "return";
inline constexpr absl::string_view kStrLiteral20 = "size";
inline constexpr absl::string_view kStrLiteral25 = "struct";
inline constexpr absl::string_view kStrLiteral55 = "switch";
inline constexpr absl::string_view kStrLiteral2 = "true";
inline constexpr absl::string_view kStrLiteral31 = "var";
inline constexpr absl::string_view kStrLiteral21 = "vertex";
inline constexpr absl::string_view kStrLiteral60 = "while";
inline constexpr absl::string_view kStrLiteral71 = "workgroup_size";
inline constexpr absl::string_view kStrLiteral26 = "{";
inline constexpr absl::string_view kStrLiteral83 = "|";
inline constexpr absl::string_view kStrLiteral49 = "|=";
inline constexpr absl::string_view kStrLiteral82 = "||";
inline constexpr absl::string_view kStrLiteral27 = "}";
inline constexpr absl::string_view kStrLiteral77 = "~";
inline constexpr absl::string_view kStrCharSet16 = R"grammar([ \t])grammar";
inline constexpr absl::string_view kStrCharSet9 = R"grammar([+-])grammar";
inline constexpr absl::string_view kStrCharSet11 = R"grammar([.])grammar";
inline constexpr absl::string_view kStrCharSet5 = R"grammar([0-9])grammar";
inline constexpr absl::string_view kStrCharSet7 =
R"grammar([0-9a-fA-F])grammar";
inline constexpr absl::string_view kStrCharSet0 = R"grammar([0])grammar";
inline constexpr absl::string_view kStrCharSet6 = R"grammar([1-9])grammar";
inline constexpr absl::string_view kStrCharSet13 =
R"grammar([_0-9A-Za-z])grammar";
inline constexpr absl::string_view kStrCharSet14 = R"grammar([_a-zA-Z])grammar";
inline constexpr absl::string_view kStrCharSet15 = R"grammar([a-zA-Z])grammar";
inline constexpr absl::string_view kStrCharSet10 = R"grammar([eE])grammar";
inline constexpr absl::string_view kStrCharSet8 = R"grammar([fh])grammar";
inline constexpr absl::string_view kStrCharSet4 = R"grammar([iu])grammar";
inline constexpr absl::string_view kStrCharSet12 = R"grammar([pP])grammar";
inline constexpr absl::string_view kStrCharSet2 = R"grammar([rgba])grammar";
inline constexpr absl::string_view kStrCharSet1 = R"grammar([xX])grammar";
inline constexpr absl::string_view kStrCharSet3 = R"grammar([xyzw])grammar";
class WgslNode final : public TupleDomain<kWgslNode, Translation_unitNode> {};
class Translation_unitNode final : public TupleDomain<kTranslation_unitNode,
Translation_unitSubNode0,
Literal0,
Translation_unitSubNode1,
Literal0,
EOFNode> {};
class Global_directiveNode final
: public VariantDomain<kGlobal_directiveNode,
0,
Diagnostic_directiveNode,
Enable_directiveNode,
Requires_directiveNode> {};
class Global_declNode final : public VariantDomain<kGlobal_declNode,
0,
Global_declSubNode3,
Global_declSubNode4,
Global_declSubNode5,
Struct_declNode,
Function_declNode> {};
class Global_assertNode final : public TupleDomain<kGlobal_assertNode,
Const_assertNode,
Literal0,
Literal1> {};
class Bool_literalNode final
: public VariantDomain<kBool_literalNode, 0, Literal2, Literal3> {};
class Int_literalNode final : public VariantDomain<kInt_literalNode,
0,
DECIMAL_INT_LITERALNode,
HEX_INT_LITERALNode> {};
class DECIMAL_INT_LITERALNode final
: public VariantDomain<kDECIMAL_INT_LITERALNode,
0,
DECIMAL_INT_LITERALSubNode7,
DECIMAL_INT_LITERALSubNode10> {};
class HEX_INT_LITERALNode final : public TupleDomain<kHEX_INT_LITERALNode,
CharSet0,
CharSet1,
HEX_INT_LITERALSubNode11,
HEX_INT_LITERALSubNode12> {
};
class Float_literalNode final : public VariantDomain<kFloat_literalNode,
0,
DECIMAL_FLOAT_LITERALNode,
HEX_FLOAT_LITERALNode> {};
class DECIMAL_FLOAT_LITERALNode final
: public VariantDomain<kDECIMAL_FLOAT_LITERALNode,
0,
DECIMAL_FLOAT_LITERALSubNode13,
DECIMAL_FLOAT_LITERALSubNode15,
DECIMAL_FLOAT_LITERALSubNode23,
DECIMAL_FLOAT_LITERALSubNode31,
DECIMAL_FLOAT_LITERALSubNode36> {};
class HEX_FLOAT_LITERALNode final
: public VariantDomain<kHEX_FLOAT_LITERALNode,
0,
HEX_FLOAT_LITERALSubNode44,
HEX_FLOAT_LITERALSubNode52,
HEX_FLOAT_LITERALSubNode57> {};
class Diagnostic_directiveNode final
: public TupleDomain<kDiagnostic_directiveNode,
Literal4,
Literal0,
Diagnostic_controlNode,
Literal0,
Literal1> {};
class LiteralNode final : public VariantDomain<kLiteralNode,
2,
Int_literalNode,
Float_literalNode,
Bool_literalNode> {};
class IdentNode final
: public TupleDomain<kIdentNode, IDENT_PATTERN_TOKENNode> {};
class Member_identNode final
: public TupleDomain<kMember_identNode, IDENT_PATTERN_TOKENNode> {};
class Diagnostic_name_tokenNode final
: public TupleDomain<kDiagnostic_name_tokenNode, IDENT_PATTERN_TOKENNode> {
};
class Diagnostic_rule_nameNode final
: public VariantDomain<kDiagnostic_rule_nameNode,
0,
Diagnostic_name_tokenNode,
Diagnostic_rule_nameSubNode58> {};
class Template_args_startNode final
: public TupleDomain<kTemplate_args_startNode, Literal5> {};
class Template_args_endNode final
: public TupleDomain<kTemplate_args_endNode, Literal6> {};
class Template_listNode final : public TupleDomain<kTemplate_listNode,
Template_args_startNode,
Literal0,
Template_arg_comma_listNode,
Literal0,
Template_args_endNode> {};
class Template_arg_comma_listNode final
: public TupleDomain<kTemplate_arg_comma_listNode,
Template_arg_expressionNode,
Literal0,
Template_arg_comma_listSubNode59,
Literal0,
Template_arg_comma_listSubNode61> {};
class Template_arg_expressionNode final
: public TupleDomain<kTemplate_arg_expressionNode, ExpressionNode> {};
class Align_attrNode final : public TupleDomain<kAlign_attrNode,
Literal7,
Literal0,
Literal8,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Align_attrSubNode62,
Literal0,
Literal10> {};
class Binding_attrNode final : public TupleDomain<kBinding_attrNode,
Literal7,
Literal0,
Literal11,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Binding_attrSubNode63,
Literal0,
Literal10> {};
class Blend_src_attrNode final : public TupleDomain<kBlend_src_attrNode,
Literal7,
Literal0,
Literal12,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Blend_src_attrSubNode64,
Literal0,
Literal10> {};
class Builtin_attrNode final : public TupleDomain<kBuiltin_attrNode,
Literal7,
Literal0,
Literal13,
Literal0,
Literal9,
Literal0,
Builtin_value_nameNode,
Literal0,
Builtin_attrSubNode65,
Literal0,
Literal10> {};
class Builtin_value_nameNode final
: public TupleDomain<kBuiltin_value_nameNode, IDENT_PATTERN_TOKENNode> {};
class Const_attrNode final
: public TupleDomain<kConst_attrNode, Literal7, Literal0, Literal14> {};
class Diagnostic_attrNode final : public TupleDomain<kDiagnostic_attrNode,
Literal7,
Literal0,
Literal4,
Literal0,
Diagnostic_controlNode> {};
class Group_attrNode final : public TupleDomain<kGroup_attrNode,
Literal7,
Literal0,
Literal15,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Group_attrSubNode66,
Literal0,
Literal10> {};
class Id_attrNode final : public TupleDomain<kId_attrNode,
Literal7,
Literal0,
Literal16,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Id_attrSubNode67,
Literal0,
Literal10> {};
class Interpolate_attrNode final
: public VariantDomain<kInterpolate_attrNode,
0,
Interpolate_attrSubNode69,
Interpolate_attrSubNode71> {};
class Interpolate_type_nameNode final
: public TupleDomain<kInterpolate_type_nameNode, IDENT_PATTERN_TOKENNode> {
};
class Interpolate_sampling_nameNode final
: public TupleDomain<kInterpolate_sampling_nameNode,
IDENT_PATTERN_TOKENNode> {};
class Invariant_attrNode final
: public TupleDomain<kInvariant_attrNode, Literal7, Literal0, Literal17> {};
class Location_attrNode final : public TupleDomain<kLocation_attrNode,
Literal7,
Literal0,
Literal18,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Location_attrSubNode72,
Literal0,
Literal10> {};
class Must_use_attrNode final
: public TupleDomain<kMust_use_attrNode, Literal7, Literal0, Literal19> {};
class Size_attrNode final : public TupleDomain<kSize_attrNode,
Literal7,
Literal0,
Literal20,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Size_attrSubNode73,
Literal0,
Literal10> {};
class Workgroup_size_attrNode final
: public VariantDomain<kWorkgroup_size_attrNode,
0,
Workgroup_size_attrSubNode75,
Workgroup_size_attrSubNode77,
Workgroup_size_attrSubNode79> {};
class Vertex_attrNode final
: public TupleDomain<kVertex_attrNode, Literal7, Literal0, Literal21> {};
class Fragment_attrNode final
: public TupleDomain<kFragment_attrNode, Literal7, Literal0, Literal22> {};
class Compute_attrNode final
: public TupleDomain<kCompute_attrNode, Literal7, Literal0, Literal23> {};
class AttributeNode final : public VariantDomain<kAttributeNode,
5,
AttributeSubNode81,
Align_attrNode,
Binding_attrNode,
Blend_src_attrNode,
Builtin_attrNode,
Const_attrNode,
Diagnostic_attrNode,
Group_attrNode,
Id_attrNode,
Interpolate_attrNode,
Invariant_attrNode,
Location_attrNode,
Must_use_attrNode,
Size_attrNode,
Workgroup_size_attrNode,
Vertex_attrNode,
Fragment_attrNode,
Compute_attrNode> {};
class Diagnostic_controlNode final
: public TupleDomain<kDiagnostic_controlNode,
Literal9,
Literal0,
Severity_control_nameNode,
Literal0,
Literal24,
Literal0,
Diagnostic_rule_nameNode,
Literal0,
Diagnostic_controlSubNode82,
Literal0,
Literal10> {};
class Struct_declNode final : public TupleDomain<kStruct_declNode,
Literal25,
Literal0,
IdentNode,
Literal0,
Struct_body_declNode> {};
class Struct_body_declNode final : public TupleDomain<kStruct_body_declNode,
Literal26,
Literal0,
Struct_memberNode,
Literal0,
Struct_body_declSubNode83,
Literal0,
Struct_body_declSubNode85,
Literal0,
Literal27> {};
class Struct_memberNode final : public TupleDomain<kStruct_memberNode,
Struct_memberSubNode86,
Literal0,
Member_identNode,
Literal0,
Literal28,
Literal0,
Type_specifierNode> {};
class Type_alias_declNode final : public TupleDomain<kType_alias_declNode,
Literal29,
Literal0,
IdentNode,
Literal0,
Literal30,
Literal0,
Type_specifierNode> {};
class Type_specifierNode final
: public TupleDomain<kType_specifierNode, Template_elaborated_identNode> {};
class Template_elaborated_identNode final
: public TupleDomain<kTemplate_elaborated_identNode,
IdentNode,
Literal0,
Template_elaborated_identSubNode87> {};
class Variable_or_value_statementNode final
: public VariantDomain<kVariable_or_value_statementNode,
2,
Variable_declNode,
Variable_or_value_statementSubNode88,
Variable_or_value_statementSubNode89,
Variable_or_value_statementSubNode90> {};
class Variable_declNode final : public TupleDomain<kVariable_declNode,
Literal31,
Literal0,
Variable_declSubNode91,
Literal0,
Optionally_typed_identNode> {
};
class Optionally_typed_identNode final
: public TupleDomain<kOptionally_typed_identNode,
IdentNode,
Literal0,
Optionally_typed_identSubNode92> {};
class Global_variable_declNode final
: public TupleDomain<kGlobal_variable_declNode,
Global_variable_declSubNode94,
Literal0,
Variable_declNode,
Literal0,
Global_variable_declSubNode95> {};
class Global_value_declNode final
: public VariantDomain<kGlobal_value_declNode,
0,
Global_value_declSubNode97,
Global_value_declSubNode101> {};
class Primary_expressionNode final
: public VariantDomain<kPrimary_expressionNode,
2,
Template_elaborated_identNode,
Call_expressionNode,
LiteralNode,
Paren_expressionNode> {};
class Call_expressionNode final
: public TupleDomain<kCall_expressionNode, Call_phraseNode> {};
class Call_phraseNode final : public TupleDomain<kCall_phraseNode,
Template_elaborated_identNode,
Literal0,
Argument_expression_listNode> {
};
class Paren_expressionNode final : public TupleDomain<kParen_expressionNode,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Literal10> {};
class Argument_expression_listNode final
: public TupleDomain<kArgument_expression_listNode,
Literal9,
Literal0,
Argument_expression_listSubNode102,
Literal0,
Literal10> {};
class Expression_comma_listNode final
: public TupleDomain<kExpression_comma_listNode,
ExpressionNode,
Literal0,
Expression_comma_listSubNode103,
Literal0,
Expression_comma_listSubNode105> {};
class Component_or_swizzle_specifierNode final
: public VariantDomain<kComponent_or_swizzle_specifierNode,
2,
Component_or_swizzle_specifierSubNode107,
Component_or_swizzle_specifierSubNode109,
Component_or_swizzle_specifierSubNode111> {};
class Unary_expressionNode final
: public VariantDomain<kUnary_expressionNode,
0,
Singular_expressionNode,
Unary_expressionSubNode112,
Unary_expressionSubNode113,
Unary_expressionSubNode114,
Unary_expressionSubNode115,
Unary_expressionSubNode116> {};
class Singular_expressionNode final
: public TupleDomain<kSingular_expressionNode,
Primary_expressionNode,
Literal0,
Singular_expressionSubNode117> {};
class Lhs_expressionNode final
: public VariantDomain<kLhs_expressionNode,
0,
Lhs_expressionSubNode119,
Lhs_expressionSubNode120,
Lhs_expressionSubNode121> {};
class Core_lhs_expressionNode final
: public VariantDomain<kCore_lhs_expressionNode,
0,
IdentNode,
Core_lhs_expressionSubNode122> {};
class Multiplicative_expressionNode final
: public VariantDomain<kMultiplicative_expressionNode,
0,
Unary_expressionNode,
Multiplicative_expressionSubNode123> {};
class Multiplicative_operatorNode final
: public VariantDomain<kMultiplicative_operatorNode,
0,
Literal32,
Literal33,
Literal34> {};
class Additive_expressionNode final
: public VariantDomain<kAdditive_expressionNode,
0,
Multiplicative_expressionNode,
Additive_expressionSubNode124> {};
class Additive_operatorNode final
: public VariantDomain<kAdditive_operatorNode, 0, Literal35, Literal36> {};
class Shift_leftNode final : public TupleDomain<kShift_leftNode, Literal37> {};
class Shift_rightNode final : public TupleDomain<kShift_rightNode, Literal38> {
};
class Less_thanNode final : public TupleDomain<kLess_thanNode, Literal5> {};
class Greater_thanNode final : public TupleDomain<kGreater_thanNode, Literal6> {
};
class Less_than_equalNode final
: public TupleDomain<kLess_than_equalNode, Literal39> {};
class Greater_than_equalNode final
: public TupleDomain<kGreater_than_equalNode, Literal40> {};
class Shift_expressionNode final
: public VariantDomain<kShift_expressionNode,
0,
Additive_expressionNode,
Shift_expressionSubNode125,
Shift_expressionSubNode126> {};
class Relational_expressionNode final
: public VariantDomain<kRelational_expressionNode,
0,
Shift_expressionNode,
Relational_expressionSubNode127,
Relational_expressionSubNode128,
Relational_expressionSubNode129,
Relational_expressionSubNode130,
Relational_expressionSubNode131,
Relational_expressionSubNode132> {};
class Short_circuit_and_expressionNode final
: public VariantDomain<kShort_circuit_and_expressionNode,
0,
Relational_expressionNode,
Short_circuit_and_expressionSubNode133> {};
class Short_circuit_or_expressionNode final
: public VariantDomain<kShort_circuit_or_expressionNode,
0,
Relational_expressionNode,
Short_circuit_or_expressionSubNode134> {};
class Binary_or_expressionNode final
: public VariantDomain<kBinary_or_expressionNode,
0,
Unary_expressionNode,
Binary_or_expressionSubNode135> {};
class Binary_and_expressionNode final
: public VariantDomain<kBinary_and_expressionNode,
0,
Unary_expressionNode,
Binary_and_expressionSubNode136> {};
class Binary_xor_expressionNode final
: public VariantDomain<kBinary_xor_expressionNode,
0,
Unary_expressionNode,
Binary_xor_expressionSubNode137> {};
class Bitwise_expressionNode final
: public VariantDomain<kBitwise_expressionNode,
0,
Bitwise_expressionSubNode138,
Bitwise_expressionSubNode139,
Bitwise_expressionSubNode140> {};
class ExpressionNode final : public VariantDomain<kExpressionNode,
0,
Relational_expressionNode,
ExpressionSubNode141,
ExpressionSubNode142,
Bitwise_expressionNode> {};
class Compound_statementNode final
: public TupleDomain<kCompound_statementNode,
Compound_statementSubNode143,
Literal0,
Literal26,
Literal0,
Compound_statementSubNode144,
Literal0,
Literal27> {};
class Assignment_statementNode final
: public VariantDomain<kAssignment_statementNode,
1,
Assignment_statementSubNode146,
Assignment_statementSubNode147> {};
class Shift_right_assignNode final
: public TupleDomain<kShift_right_assignNode, Literal41> {};
class Shift_left_assignNode final
: public TupleDomain<kShift_left_assignNode, Literal42> {};
class Compound_assignment_operatorNode final
: public VariantDomain<kCompound_assignment_operatorNode,
0,
Literal43,
Literal44,
Literal45,
Literal46,
Literal47,
Literal48,
Literal49,
Literal50,
Shift_right_assignNode,
Shift_left_assignNode> {};
class Increment_statementNode final
: public TupleDomain<kIncrement_statementNode,
Lhs_expressionNode,
Literal0,
Literal51> {};
class Decrement_statementNode final
: public TupleDomain<kDecrement_statementNode,
Lhs_expressionNode,
Literal0,
Literal52> {};
class If_statementNode final : public TupleDomain<kIf_statementNode,
If_statementSubNode148,
Literal0,
If_clauseNode,
Literal0,
If_statementSubNode149,
Literal0,
If_statementSubNode150> {};
class If_clauseNode final : public TupleDomain<kIf_clauseNode,
Literal53,
Literal0,
ExpressionNode,
Literal0,
Compound_statementNode> {};
class Else_if_clauseNode final : public TupleDomain<kElse_if_clauseNode,
Literal54,
Literal0,
Literal53,
Literal0,
ExpressionNode,
Literal0,
Compound_statementNode> {};
class Else_clauseNode final : public TupleDomain<kElse_clauseNode,
Literal54,
Literal0,
Compound_statementNode> {};
class Switch_statementNode final
: public TupleDomain<kSwitch_statementNode,
Switch_statementSubNode151,
Literal0,
Literal55,
Literal0,
ExpressionNode,
Literal0,
Switch_bodyNode> {};
class Switch_bodyNode final : public TupleDomain<kSwitch_bodyNode,
Switch_bodySubNode152,
Literal0,
Literal26,
Literal0,
Switch_bodySubNode153,
Literal0,
Literal27> {};
class Switch_clauseNode final : public VariantDomain<kSwitch_clauseNode,
1,
Case_clauseNode,
Default_alone_clauseNode> {
};
class Case_clauseNode final : public TupleDomain<kCase_clauseNode,
Literal56,
Literal0,
Case_selectorsNode,
Literal0,
Case_clauseSubNode154,
Literal0,
Compound_statementNode> {};
class Default_alone_clauseNode final
: public TupleDomain<kDefault_alone_clauseNode,
Literal57,
Literal0,
Default_alone_clauseSubNode155,
Literal0,
Compound_statementNode> {};
class Case_selectorsNode final : public TupleDomain<kCase_selectorsNode,
Case_selectorNode,
Literal0,
Case_selectorsSubNode156,
Literal0,
Case_selectorsSubNode158> {
};
class Case_selectorNode final
: public VariantDomain<kCase_selectorNode, 0, Literal57, ExpressionNode> {};
class Loop_statementNode final : public TupleDomain<kLoop_statementNode,
Loop_statementSubNode159,
Literal0,
Literal58,
Literal0,
Loop_statementSubNode160,
Literal0,
Literal26,
Literal0,
Loop_statementSubNode161,
Literal0,
Loop_statementSubNode162,
Literal0,
Literal27> {};
class For_statementNode final : public TupleDomain<kFor_statementNode,
For_statementSubNode163,
Literal0,
Literal59,
Literal0,
Literal9,
Literal0,
For_headerNode,
Literal0,
Literal10,
Literal0,
Compound_statementNode> {};
class For_headerNode final : public TupleDomain<kFor_headerNode,
For_headerSubNode164,
Literal0,
Literal1,
Literal0,
For_headerSubNode165,
Literal0,
Literal1,
Literal0,
For_headerSubNode166> {};
class For_initNode final : public VariantDomain<kFor_initNode,
0,
Variable_or_value_statementNode,
Variable_updating_statementNode,
Func_call_statementNode> {};
class For_updateNode final
: public VariantDomain<kFor_updateNode,
1,
Variable_updating_statementNode,
Func_call_statementNode> {};
class While_statementNode final : public TupleDomain<kWhile_statementNode,
While_statementSubNode167,
Literal0,
Literal60,
Literal0,
ExpressionNode,
Literal0,
Compound_statementNode> {};
class Break_statementNode final
: public TupleDomain<kBreak_statementNode, Literal61> {};
class Break_if_statementNode final : public TupleDomain<kBreak_if_statementNode,
Literal61,
Literal0,
Literal53,
Literal0,
ExpressionNode,
Literal0,
Literal1> {};
class Continue_statementNode final
: public TupleDomain<kContinue_statementNode, Literal62> {};
class Continuing_statementNode final
: public TupleDomain<kContinuing_statementNode,
Literal63,
Literal0,
Continuing_compound_statementNode> {};
class Continuing_compound_statementNode final
: public TupleDomain<kContinuing_compound_statementNode,
Continuing_compound_statementSubNode168,
Literal0,
Literal26,
Literal0,
Continuing_compound_statementSubNode169,
Literal0,
Continuing_compound_statementSubNode170,
Literal0,
Literal27> {};
class Return_statementNode final
: public TupleDomain<kReturn_statementNode,
Literal64,
Literal0,
Return_statementSubNode171> {};
class Func_call_statementNode final
: public TupleDomain<kFunc_call_statementNode, Call_phraseNode> {};
class Const_assertNode final : public TupleDomain<kConst_assertNode,
Literal65,
Literal0,
ExpressionNode> {};
class Assert_statementNode final
: public TupleDomain<kAssert_statementNode, Const_assertNode> {};
class StatementNode final : public VariantDomain<kStatementNode,
0,
Literal1,
StatementSubNode172,
If_statementNode,
Switch_statementNode,
Loop_statementNode,
For_statementNode,
While_statementNode,
StatementSubNode173,
StatementSubNode174,
StatementSubNode175,
StatementSubNode176,
StatementSubNode177,
StatementSubNode178,
Compound_statementNode,
StatementSubNode179> {};
class Variable_updating_statementNode final
: public VariantDomain<kVariable_updating_statementNode,
0,
Assignment_statementNode,
Increment_statementNode,
Decrement_statementNode> {};
class Function_declNode final : public TupleDomain<kFunction_declNode,
Function_declSubNode180,
Literal0,
Function_headerNode,
Literal0,
Compound_statementNode> {};
class Function_headerNode final
: public TupleDomain<kFunction_headerNode,
Literal66,
Literal0,
IdentNode,
Literal0,
Literal9,
Literal0,
Function_headerSubNode181,
Literal0,
Literal10,
Literal0,
Function_headerSubNode182> {};
class Param_listNode final : public TupleDomain<kParam_listNode,
ParamNode,
Literal0,
Param_listSubNode185,
Literal0,
Param_listSubNode187> {};
class ParamNode final : public TupleDomain<kParamNode,
ParamSubNode188,
Literal0,
IdentNode,
Literal0,
Literal28,
Literal0,
Type_specifierNode> {};
class Enable_directiveNode final : public TupleDomain<kEnable_directiveNode,
Literal67,
Literal0,
Enable_extension_listNode,
Literal0,
Literal1> {};
class Enable_extension_listNode final
: public TupleDomain<kEnable_extension_listNode,
Enable_extension_nameNode,
Literal0,
Enable_extension_listSubNode189,
Literal0,
Enable_extension_listSubNode191> {};
class Requires_directiveNode final
: public TupleDomain<kRequires_directiveNode,
Literal68,
Literal0,
Software_extension_listNode,
Literal0,
Literal1> {};
class Software_extension_listNode final
: public TupleDomain<kSoftware_extension_listNode,
Software_extension_nameNode,
Literal0,
Software_extension_listSubNode192,
Literal0,
Software_extension_listSubNode194> {};
class Enable_extension_nameNode final
: public TupleDomain<kEnable_extension_nameNode, IDENT_PATTERN_TOKENNode> {
};
class Software_extension_nameNode final
: public TupleDomain<kSoftware_extension_nameNode,
IDENT_PATTERN_TOKENNode> {};
class IDENT_PATTERN_TOKENNode final
: public VariantDomain<kIDENT_PATTERN_TOKENNode,
0,
IDENT_PATTERN_TOKENSubNode195,
IDENT_PATTERN_TOKENSubNode197> {};
class Severity_control_nameNode final
: public TupleDomain<kSeverity_control_nameNode, IDENT_PATTERN_TOKENNode> {
};
class SWIZZLE_NAMENode final : public VariantDomain<kSWIZZLE_NAMENode,
0,
CharSet2,
SWIZZLE_NAMESubNode198,
SWIZZLE_NAMESubNode199,
SWIZZLE_NAMESubNode200,
CharSet3,
SWIZZLE_NAMESubNode201,
SWIZZLE_NAMESubNode202,
SWIZZLE_NAMESubNode203> {};
class WhitespaceNode final
: public TupleDomain<kWhitespaceNode, WhitespaceSubNode204> {};
class Translation_unitSubNode0 final
: public Vector<kTranslation_unitSubNode0, Global_directiveNode> {};
class Translation_unitSubNode1 final
: public Vector<kTranslation_unitSubNode1, Translation_unitSubNode2> {};
class Translation_unitSubNode2 final
: public VariantDomain<kTranslation_unitSubNode2,
2,
Global_declNode,
Global_assertNode,
Literal1> {};
class Global_declSubNode3 final : public TupleDomain<kGlobal_declSubNode3,
Global_variable_declNode,
Literal0,
Literal1> {};
class Global_declSubNode4 final : public TupleDomain<kGlobal_declSubNode4,
Global_value_declNode,
Literal0,
Literal1> {};
class Global_declSubNode5 final : public TupleDomain<kGlobal_declSubNode5,
Type_alias_declNode,
Literal0,
Literal1> {};
class DECIMAL_INT_LITERALSubNode6 final
: public Optional<kDECIMAL_INT_LITERALSubNode6, CharSet4> {};
class DECIMAL_INT_LITERALSubNode7 final
: public TupleDomain<kDECIMAL_INT_LITERALSubNode7,
CharSet0,
DECIMAL_INT_LITERALSubNode6> {};
class DECIMAL_INT_LITERALSubNode8 final
: public Vector<kDECIMAL_INT_LITERALSubNode8, CharSet5> {};
class DECIMAL_INT_LITERALSubNode9 final
: public Optional<kDECIMAL_INT_LITERALSubNode9, CharSet4> {};
class DECIMAL_INT_LITERALSubNode10 final
: public TupleDomain<kDECIMAL_INT_LITERALSubNode10,
CharSet6,
DECIMAL_INT_LITERALSubNode8,
DECIMAL_INT_LITERALSubNode9> {};
class HEX_INT_LITERALSubNode11 final
: public NonEmptyVector<kHEX_INT_LITERALSubNode11, CharSet7> {};
class HEX_INT_LITERALSubNode12 final
: public Optional<kHEX_INT_LITERALSubNode12, CharSet4> {};
class DECIMAL_FLOAT_LITERALSubNode13 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode13, CharSet0, CharSet8> {
};
class DECIMAL_FLOAT_LITERALSubNode14 final
: public Vector<kDECIMAL_FLOAT_LITERALSubNode14, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode15 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode15,
CharSet6,
DECIMAL_FLOAT_LITERALSubNode14,
CharSet8> {};
class DECIMAL_FLOAT_LITERALSubNode16 final
: public Vector<kDECIMAL_FLOAT_LITERALSubNode16, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode17 final
: public NonEmptyVector<kDECIMAL_FLOAT_LITERALSubNode17, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode18 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode18,
DECIMAL_FLOAT_LITERALSubNode19> {};
class DECIMAL_FLOAT_LITERALSubNode20 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode20, CharSet9> {};
class DECIMAL_FLOAT_LITERALSubNode21 final
: public NonEmptyVector<kDECIMAL_FLOAT_LITERALSubNode21, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode19 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode19,
CharSet10,
DECIMAL_FLOAT_LITERALSubNode20,
DECIMAL_FLOAT_LITERALSubNode21> {};
class DECIMAL_FLOAT_LITERALSubNode22 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode22, CharSet8> {};
class DECIMAL_FLOAT_LITERALSubNode23 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode23,
DECIMAL_FLOAT_LITERALSubNode16,
CharSet11,
DECIMAL_FLOAT_LITERALSubNode17,
DECIMAL_FLOAT_LITERALSubNode18,
DECIMAL_FLOAT_LITERALSubNode22> {};
class DECIMAL_FLOAT_LITERALSubNode24 final
: public NonEmptyVector<kDECIMAL_FLOAT_LITERALSubNode24, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode25 final
: public Vector<kDECIMAL_FLOAT_LITERALSubNode25, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode26 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode26,
DECIMAL_FLOAT_LITERALSubNode27> {};
class DECIMAL_FLOAT_LITERALSubNode28 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode28, CharSet9> {};
class DECIMAL_FLOAT_LITERALSubNode29 final
: public NonEmptyVector<kDECIMAL_FLOAT_LITERALSubNode29, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode27 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode27,
CharSet10,
DECIMAL_FLOAT_LITERALSubNode28,
DECIMAL_FLOAT_LITERALSubNode29> {};
class DECIMAL_FLOAT_LITERALSubNode30 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode30, CharSet8> {};
class DECIMAL_FLOAT_LITERALSubNode31 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode31,
DECIMAL_FLOAT_LITERALSubNode24,
CharSet11,
DECIMAL_FLOAT_LITERALSubNode25,
DECIMAL_FLOAT_LITERALSubNode26,
DECIMAL_FLOAT_LITERALSubNode30> {};
class DECIMAL_FLOAT_LITERALSubNode32 final
: public NonEmptyVector<kDECIMAL_FLOAT_LITERALSubNode32, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode33 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode33, CharSet9> {};
class DECIMAL_FLOAT_LITERALSubNode34 final
: public NonEmptyVector<kDECIMAL_FLOAT_LITERALSubNode34, CharSet5> {};
class DECIMAL_FLOAT_LITERALSubNode35 final
: public Optional<kDECIMAL_FLOAT_LITERALSubNode35, CharSet8> {};
class DECIMAL_FLOAT_LITERALSubNode36 final
: public TupleDomain<kDECIMAL_FLOAT_LITERALSubNode36,
DECIMAL_FLOAT_LITERALSubNode32,
CharSet10,
DECIMAL_FLOAT_LITERALSubNode33,
DECIMAL_FLOAT_LITERALSubNode34,
DECIMAL_FLOAT_LITERALSubNode35> {};
class HEX_FLOAT_LITERALSubNode37 final
: public Vector<kHEX_FLOAT_LITERALSubNode37, CharSet7> {};
class HEX_FLOAT_LITERALSubNode38 final
: public NonEmptyVector<kHEX_FLOAT_LITERALSubNode38, CharSet7> {};
class HEX_FLOAT_LITERALSubNode39 final
: public Optional<kHEX_FLOAT_LITERALSubNode39, HEX_FLOAT_LITERALSubNode40> {
};
class HEX_FLOAT_LITERALSubNode41 final
: public Optional<kHEX_FLOAT_LITERALSubNode41, CharSet9> {};
class HEX_FLOAT_LITERALSubNode42 final
: public NonEmptyVector<kHEX_FLOAT_LITERALSubNode42, CharSet5> {};
class HEX_FLOAT_LITERALSubNode43 final
: public Optional<kHEX_FLOAT_LITERALSubNode43, CharSet8> {};
class HEX_FLOAT_LITERALSubNode40 final
: public TupleDomain<kHEX_FLOAT_LITERALSubNode40,
CharSet12,
HEX_FLOAT_LITERALSubNode41,
HEX_FLOAT_LITERALSubNode42,
HEX_FLOAT_LITERALSubNode43> {};
class HEX_FLOAT_LITERALSubNode44 final
: public TupleDomain<kHEX_FLOAT_LITERALSubNode44,
CharSet0,
CharSet1,
HEX_FLOAT_LITERALSubNode37,
CharSet11,
HEX_FLOAT_LITERALSubNode38,
HEX_FLOAT_LITERALSubNode39> {};
class HEX_FLOAT_LITERALSubNode45 final
: public NonEmptyVector<kHEX_FLOAT_LITERALSubNode45, CharSet7> {};
class HEX_FLOAT_LITERALSubNode46 final
: public Vector<kHEX_FLOAT_LITERALSubNode46, CharSet7> {};
class HEX_FLOAT_LITERALSubNode47 final
: public Optional<kHEX_FLOAT_LITERALSubNode47, HEX_FLOAT_LITERALSubNode48> {
};
class HEX_FLOAT_LITERALSubNode49 final
: public Optional<kHEX_FLOAT_LITERALSubNode49, CharSet9> {};
class HEX_FLOAT_LITERALSubNode50 final
: public NonEmptyVector<kHEX_FLOAT_LITERALSubNode50, CharSet5> {};
class HEX_FLOAT_LITERALSubNode51 final
: public Optional<kHEX_FLOAT_LITERALSubNode51, CharSet8> {};
class HEX_FLOAT_LITERALSubNode48 final
: public TupleDomain<kHEX_FLOAT_LITERALSubNode48,
CharSet12,
HEX_FLOAT_LITERALSubNode49,
HEX_FLOAT_LITERALSubNode50,
HEX_FLOAT_LITERALSubNode51> {};
class HEX_FLOAT_LITERALSubNode52 final
: public TupleDomain<kHEX_FLOAT_LITERALSubNode52,
CharSet0,
CharSet1,
HEX_FLOAT_LITERALSubNode45,
CharSet11,
HEX_FLOAT_LITERALSubNode46,
HEX_FLOAT_LITERALSubNode47> {};
class HEX_FLOAT_LITERALSubNode53 final
: public NonEmptyVector<kHEX_FLOAT_LITERALSubNode53, CharSet7> {};
class HEX_FLOAT_LITERALSubNode54 final
: public Optional<kHEX_FLOAT_LITERALSubNode54, CharSet9> {};
class HEX_FLOAT_LITERALSubNode55 final
: public NonEmptyVector<kHEX_FLOAT_LITERALSubNode55, CharSet5> {};
class HEX_FLOAT_LITERALSubNode56 final
: public Optional<kHEX_FLOAT_LITERALSubNode56, CharSet8> {};
class HEX_FLOAT_LITERALSubNode57 final
: public TupleDomain<kHEX_FLOAT_LITERALSubNode57,
CharSet0,
CharSet1,
HEX_FLOAT_LITERALSubNode53,
CharSet12,
HEX_FLOAT_LITERALSubNode54,
HEX_FLOAT_LITERALSubNode55,
HEX_FLOAT_LITERALSubNode56> {};
class Diagnostic_rule_nameSubNode58 final
: public TupleDomain<kDiagnostic_rule_nameSubNode58,
Diagnostic_name_tokenNode,
Literal0,
Literal69,
Literal0,
Diagnostic_name_tokenNode> {};
class Template_arg_comma_listSubNode59 final
: public Vector<kTemplate_arg_comma_listSubNode59,
Template_arg_comma_listSubNode60> {};
class Template_arg_comma_listSubNode60 final
: public TupleDomain<kTemplate_arg_comma_listSubNode60,
Literal24,
Literal0,
Template_arg_expressionNode> {};
class Template_arg_comma_listSubNode61 final
: public Optional<kTemplate_arg_comma_listSubNode61, Literal24> {};
class Align_attrSubNode62 final
: public Optional<kAlign_attrSubNode62, Literal24> {};
class Binding_attrSubNode63 final
: public Optional<kBinding_attrSubNode63, Literal24> {};
class Blend_src_attrSubNode64 final
: public Optional<kBlend_src_attrSubNode64, Literal24> {};
class Builtin_attrSubNode65 final
: public Optional<kBuiltin_attrSubNode65, Literal24> {};
class Group_attrSubNode66 final
: public Optional<kGroup_attrSubNode66, Literal24> {};
class Id_attrSubNode67 final : public Optional<kId_attrSubNode67, Literal24> {};
class Interpolate_attrSubNode68 final
: public Optional<kInterpolate_attrSubNode68, Literal24> {};
class Interpolate_attrSubNode69 final
: public TupleDomain<kInterpolate_attrSubNode69,
Literal7,
Literal0,
Literal70,
Literal0,
Literal9,
Literal0,
Interpolate_type_nameNode,
Literal0,
Interpolate_attrSubNode68,
Literal0,
Literal10> {};
class Interpolate_attrSubNode70 final
: public Optional<kInterpolate_attrSubNode70, Literal24> {};
class Interpolate_attrSubNode71 final
: public TupleDomain<kInterpolate_attrSubNode71,
Literal7,
Literal0,
Literal70,
Literal0,
Literal9,
Literal0,
Interpolate_type_nameNode,
Literal0,
Literal24,
Literal0,
Interpolate_sampling_nameNode,
Literal0,
Interpolate_attrSubNode70,
Literal0,
Literal10> {};
class Location_attrSubNode72 final
: public Optional<kLocation_attrSubNode72, Literal24> {};
class Size_attrSubNode73 final
: public Optional<kSize_attrSubNode73, Literal24> {};
class Workgroup_size_attrSubNode74 final
: public Optional<kWorkgroup_size_attrSubNode74, Literal24> {};
class Workgroup_size_attrSubNode75 final
: public TupleDomain<kWorkgroup_size_attrSubNode75,
Literal7,
Literal0,
Literal71,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Workgroup_size_attrSubNode74,
Literal0,
Literal10> {};
class Workgroup_size_attrSubNode76 final
: public Optional<kWorkgroup_size_attrSubNode76, Literal24> {};
class Workgroup_size_attrSubNode77 final
: public TupleDomain<kWorkgroup_size_attrSubNode77,
Literal7,
Literal0,
Literal71,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Literal24,
Literal0,
ExpressionNode,
Literal0,
Workgroup_size_attrSubNode76,
Literal0,
Literal10> {};
class Workgroup_size_attrSubNode78 final
: public Optional<kWorkgroup_size_attrSubNode78, Literal24> {};
class Workgroup_size_attrSubNode79 final
: public TupleDomain<kWorkgroup_size_attrSubNode79,
Literal7,
Literal0,
Literal71,
Literal0,
Literal9,
Literal0,
ExpressionNode,
Literal0,
Literal24,
Literal0,
ExpressionNode,
Literal0,
Literal24,
Literal0,
ExpressionNode,
Literal0,
Workgroup_size_attrSubNode78,
Literal0,
Literal10> {};
class AttributeSubNode80 final
: public Optional<kAttributeSubNode80, Argument_expression_listNode> {};
class AttributeSubNode81 final : public TupleDomain<kAttributeSubNode81,
Literal7,
Literal0,
IDENT_PATTERN_TOKENNode,
Literal0,
AttributeSubNode80> {};
class Diagnostic_controlSubNode82 final
: public Optional<kDiagnostic_controlSubNode82, Literal24> {};
class Struct_body_declSubNode83 final
: public Vector<kStruct_body_declSubNode83, Struct_body_declSubNode84> {};
class Struct_body_declSubNode84 final
: public TupleDomain<kStruct_body_declSubNode84,
Literal24,
Literal0,
Struct_memberNode> {};
class Struct_body_declSubNode85 final
: public Optional<kStruct_body_declSubNode85, Literal24> {};
class Struct_memberSubNode86 final
: public Vector<kStruct_memberSubNode86, AttributeNode> {};
class Template_elaborated_identSubNode87 final
: public Optional<kTemplate_elaborated_identSubNode87, Template_listNode> {
};
class Variable_or_value_statementSubNode88 final
: public TupleDomain<kVariable_or_value_statementSubNode88,
Variable_declNode,
Literal0,
Literal30,
Literal0,
ExpressionNode> {};
class Variable_or_value_statementSubNode89 final
: public TupleDomain<kVariable_or_value_statementSubNode89,
Literal72,
Literal0,
Optionally_typed_identNode,
Literal0,
Literal30,
Literal0,
ExpressionNode> {};
class Variable_or_value_statementSubNode90 final
: public TupleDomain<kVariable_or_value_statementSubNode90,
Literal14,
Literal0,
Optionally_typed_identNode,
Literal0,
Literal30,
Literal0,
ExpressionNode> {};
class Variable_declSubNode91 final
: public Optional<kVariable_declSubNode91, Template_listNode> {};
class Optionally_typed_identSubNode92 final
: public Optional<kOptionally_typed_identSubNode92,
Optionally_typed_identSubNode93> {};
class Optionally_typed_identSubNode93 final
: public TupleDomain<kOptionally_typed_identSubNode93,
Literal28,
Literal0,
Type_specifierNode> {};
class Global_variable_declSubNode94 final
: public Vector<kGlobal_variable_declSubNode94, AttributeNode> {};
class Global_variable_declSubNode95 final
: public Optional<kGlobal_variable_declSubNode95,
Global_variable_declSubNode96> {};
class Global_variable_declSubNode96 final
: public TupleDomain<kGlobal_variable_declSubNode96,
Literal30,
Literal0,
ExpressionNode> {};
class Global_value_declSubNode97 final
: public TupleDomain<kGlobal_value_declSubNode97,
Literal14,
Literal0,
Optionally_typed_identNode,
Literal0,
Literal30,
Literal0,
ExpressionNode> {};
class Global_value_declSubNode98 final
: public Vector<kGlobal_value_declSubNode98, AttributeNode> {};
class Global_value_declSubNode99 final
: public Optional<kGlobal_value_declSubNode99,
Global_value_declSubNode100> {};
class Global_value_declSubNode100 final
: public TupleDomain<kGlobal_value_declSubNode100,
Literal30,
Literal0,
ExpressionNode> {};
class Global_value_declSubNode101 final
: public TupleDomain<kGlobal_value_declSubNode101,
Global_value_declSubNode98,
Literal0,
Literal73,
Literal0,
Optionally_typed_identNode,
Literal0,
Global_value_declSubNode99> {};
class Argument_expression_listSubNode102 final
: public Optional<kArgument_expression_listSubNode102,
Expression_comma_listNode> {};
class Expression_comma_listSubNode103 final
: public Vector<kExpression_comma_listSubNode103,
Expression_comma_listSubNode104> {};
class Expression_comma_listSubNode104 final
: public TupleDomain<kExpression_comma_listSubNode104,
Literal24,
Literal0,
ExpressionNode> {};
class Expression_comma_listSubNode105 final
: public Optional<kExpression_comma_listSubNode105, Literal24> {};
class Component_or_swizzle_specifierSubNode106 final
: public Optional<kComponent_or_swizzle_specifierSubNode106,
Component_or_swizzle_specifierNode> {};
class Component_or_swizzle_specifierSubNode107 final
: public TupleDomain<kComponent_or_swizzle_specifierSubNode107,
Literal74,
Literal0,
ExpressionNode,
Literal0,
Literal75,
Literal0,
Component_or_swizzle_specifierSubNode106> {};
class Component_or_swizzle_specifierSubNode108 final
: public Optional<kComponent_or_swizzle_specifierSubNode108,
Component_or_swizzle_specifierNode> {};
class Component_or_swizzle_specifierSubNode109 final
: public TupleDomain<kComponent_or_swizzle_specifierSubNode109,
Literal69,
Literal0,
Member_identNode,
Literal0,
Component_or_swizzle_specifierSubNode108> {};
class Component_or_swizzle_specifierSubNode110 final
: public Optional<kComponent_or_swizzle_specifierSubNode110,
Component_or_swizzle_specifierNode> {};
class Component_or_swizzle_specifierSubNode111 final
: public TupleDomain<kComponent_or_swizzle_specifierSubNode111,
Literal69,
Literal0,
SWIZZLE_NAMENode,
Literal0,
Component_or_swizzle_specifierSubNode110> {};
class Unary_expressionSubNode112 final
: public TupleDomain<kUnary_expressionSubNode112,
Literal36,
Literal0,
Unary_expressionNode> {};
class Unary_expressionSubNode113 final
: public TupleDomain<kUnary_expressionSubNode113,
Literal76,
Literal0,
Unary_expressionNode> {};
class Unary_expressionSubNode114 final
: public TupleDomain<kUnary_expressionSubNode114,
Literal77,
Literal0,
Unary_expressionNode> {};
class Unary_expressionSubNode115 final
: public TupleDomain<kUnary_expressionSubNode115,
Literal32,
Literal0,
Unary_expressionNode> {};
class Unary_expressionSubNode116 final
: public TupleDomain<kUnary_expressionSubNode116,
Literal78,
Literal0,
Unary_expressionNode> {};
class Singular_expressionSubNode117 final
: public Optional<kSingular_expressionSubNode117,
Component_or_swizzle_specifierNode> {};
class Lhs_expressionSubNode118 final
: public Optional<kLhs_expressionSubNode118,
Component_or_swizzle_specifierNode> {};
class Lhs_expressionSubNode119 final
: public TupleDomain<kLhs_expressionSubNode119,
Core_lhs_expressionNode,
Literal0,
Lhs_expressionSubNode118> {};
class Lhs_expressionSubNode120 final
: public TupleDomain<kLhs_expressionSubNode120,
Literal32,
Literal0,
Lhs_expressionNode> {};
class Lhs_expressionSubNode121 final
: public TupleDomain<kLhs_expressionSubNode121,
Literal78,
Literal0,
Lhs_expressionNode> {};
class Core_lhs_expressionSubNode122 final
: public TupleDomain<kCore_lhs_expressionSubNode122,
Literal9,
Literal0,
Lhs_expressionNode,
Literal0,
Literal10> {};
class Multiplicative_expressionSubNode123 final
: public TupleDomain<kMultiplicative_expressionSubNode123,
Multiplicative_expressionNode,
Literal0,
Multiplicative_operatorNode,
Literal0,
Unary_expressionNode> {};
class Additive_expressionSubNode124 final
: public TupleDomain<kAdditive_expressionSubNode124,
Additive_expressionNode,
Literal0,
Additive_operatorNode,
Literal0,
Multiplicative_expressionNode> {};
class Shift_expressionSubNode125 final
: public TupleDomain<kShift_expressionSubNode125,
Unary_expressionNode,
Literal0,
Shift_leftNode,
Literal0,
Unary_expressionNode> {};
class Shift_expressionSubNode126 final
: public TupleDomain<kShift_expressionSubNode126,
Unary_expressionNode,
Literal0,
Shift_rightNode,
Literal0,
Unary_expressionNode> {};
class Relational_expressionSubNode127 final
: public TupleDomain<kRelational_expressionSubNode127,
Shift_expressionNode,
Literal0,
Less_thanNode,
Literal0,
Shift_expressionNode> {};
class Relational_expressionSubNode128 final
: public TupleDomain<kRelational_expressionSubNode128,
Shift_expressionNode,
Literal0,
Greater_thanNode,
Literal0,
Shift_expressionNode> {};
class Relational_expressionSubNode129 final
: public TupleDomain<kRelational_expressionSubNode129,
Shift_expressionNode,
Literal0,
Less_than_equalNode,
Literal0,
Shift_expressionNode> {};
class Relational_expressionSubNode130 final
: public TupleDomain<kRelational_expressionSubNode130,
Shift_expressionNode,
Literal0,
Greater_than_equalNode,
Literal0,
Shift_expressionNode> {};
class Relational_expressionSubNode131 final
: public TupleDomain<kRelational_expressionSubNode131,
Shift_expressionNode,
Literal0,
Literal79,
Literal0,
Shift_expressionNode> {};
class Relational_expressionSubNode132 final
: public TupleDomain<kRelational_expressionSubNode132,
Shift_expressionNode,
Literal0,
Literal80,
Literal0,
Shift_expressionNode> {};
class Short_circuit_and_expressionSubNode133 final
: public TupleDomain<kShort_circuit_and_expressionSubNode133,
Short_circuit_and_expressionNode,
Literal0,
Literal81,
Literal0,
Relational_expressionNode> {};
class Short_circuit_or_expressionSubNode134 final
: public TupleDomain<kShort_circuit_or_expressionSubNode134,
Short_circuit_or_expressionNode,
Literal0,
Literal82,
Literal0,
Relational_expressionNode> {};
class Binary_or_expressionSubNode135 final
: public TupleDomain<kBinary_or_expressionSubNode135,
Binary_or_expressionNode,
Literal0,
Literal83,
Literal0,
Unary_expressionNode> {};
class Binary_and_expressionSubNode136 final
: public TupleDomain<kBinary_and_expressionSubNode136,
Binary_and_expressionNode,
Literal0,
Literal78,
Literal0,
Unary_expressionNode> {};
class Binary_xor_expressionSubNode137 final
: public TupleDomain<kBinary_xor_expressionSubNode137,
Binary_xor_expressionNode,
Literal0,
Literal84,
Literal0,
Unary_expressionNode> {};
class Bitwise_expressionSubNode138 final
: public TupleDomain<kBitwise_expressionSubNode138,
Binary_and_expressionNode,
Literal0,
Literal78,
Literal0,
Unary_expressionNode> {};
class Bitwise_expressionSubNode139 final
: public TupleDomain<kBitwise_expressionSubNode139,
Binary_or_expressionNode,
Literal0,
Literal83,
Literal0,
Unary_expressionNode> {};
class Bitwise_expressionSubNode140 final
: public TupleDomain<kBitwise_expressionSubNode140,
Binary_xor_expressionNode,
Literal0,
Literal84,
Literal0,
Unary_expressionNode> {};
class ExpressionSubNode141 final
: public TupleDomain<kExpressionSubNode141,
Short_circuit_or_expressionNode,
Literal0,
Literal82,
Literal0,
Relational_expressionNode> {};
class ExpressionSubNode142 final
: public TupleDomain<kExpressionSubNode142,
Short_circuit_and_expressionNode,
Literal0,
Literal81,
Literal0,
Relational_expressionNode> {};
class Compound_statementSubNode143 final
: public Vector<kCompound_statementSubNode143, AttributeNode> {};
class Compound_statementSubNode144 final
: public Vector<kCompound_statementSubNode144, StatementNode> {};
class Assignment_statementSubNode145 final
: public VariantDomain<kAssignment_statementSubNode145,
0,
Literal30,
Compound_assignment_operatorNode> {};
class Assignment_statementSubNode146 final
: public TupleDomain<kAssignment_statementSubNode146,
Lhs_expressionNode,
Literal0,
Assignment_statementSubNode145,
Literal0,
ExpressionNode> {};
class Assignment_statementSubNode147 final
: public TupleDomain<kAssignment_statementSubNode147,
Literal85,
Literal0,
Literal30,
Literal0,
ExpressionNode> {};
class If_statementSubNode148 final
: public Vector<kIf_statementSubNode148, AttributeNode> {};
class If_statementSubNode149 final
: public Vector<kIf_statementSubNode149, Else_if_clauseNode> {};
class If_statementSubNode150 final
: public Optional<kIf_statementSubNode150, Else_clauseNode> {};
class Switch_statementSubNode151 final
: public Vector<kSwitch_statementSubNode151, AttributeNode> {};
class Switch_bodySubNode152 final
: public Vector<kSwitch_bodySubNode152, AttributeNode> {};
class Switch_bodySubNode153 final
: public NonEmptyVector<kSwitch_bodySubNode153, Switch_clauseNode> {};
class Case_clauseSubNode154 final
: public Optional<kCase_clauseSubNode154, Literal28> {};
class Default_alone_clauseSubNode155 final
: public Optional<kDefault_alone_clauseSubNode155, Literal28> {};
class Case_selectorsSubNode156 final
: public Vector<kCase_selectorsSubNode156, Case_selectorsSubNode157> {};
class Case_selectorsSubNode157 final
: public TupleDomain<kCase_selectorsSubNode157,
Literal24,
Literal0,
Case_selectorNode> {};
class Case_selectorsSubNode158 final
: public Optional<kCase_selectorsSubNode158, Literal24> {};
class Loop_statementSubNode159 final
: public Vector<kLoop_statementSubNode159, AttributeNode> {};
class Loop_statementSubNode160 final
: public Vector<kLoop_statementSubNode160, AttributeNode> {};
class Loop_statementSubNode161 final
: public Vector<kLoop_statementSubNode161, StatementNode> {};
class Loop_statementSubNode162 final
: public Optional<kLoop_statementSubNode162, Continuing_statementNode> {};
class For_statementSubNode163 final
: public Vector<kFor_statementSubNode163, AttributeNode> {};
class For_headerSubNode164 final
: public Optional<kFor_headerSubNode164, For_initNode> {};
class For_headerSubNode165 final
: public Optional<kFor_headerSubNode165, ExpressionNode> {};
class For_headerSubNode166 final
: public Optional<kFor_headerSubNode166, For_updateNode> {};
class While_statementSubNode167 final
: public Vector<kWhile_statementSubNode167, AttributeNode> {};
class Continuing_compound_statementSubNode168 final
: public Vector<kContinuing_compound_statementSubNode168, AttributeNode> {};
class Continuing_compound_statementSubNode169 final
: public Vector<kContinuing_compound_statementSubNode169, StatementNode> {};
class Continuing_compound_statementSubNode170 final
: public Optional<kContinuing_compound_statementSubNode170,
Break_if_statementNode> {};
class Return_statementSubNode171 final
: public Optional<kReturn_statementSubNode171, ExpressionNode> {};
class StatementSubNode172 final : public TupleDomain<kStatementSubNode172,
Return_statementNode,
Literal0,
Literal1> {};
class StatementSubNode173 final : public TupleDomain<kStatementSubNode173,
Func_call_statementNode,
Literal0,
Literal1> {};
class StatementSubNode174 final
: public TupleDomain<kStatementSubNode174,
Variable_or_value_statementNode,
Literal0,
Literal1> {};
class StatementSubNode175 final : public TupleDomain<kStatementSubNode175,
Break_statementNode,
Literal0,
Literal1> {};
class StatementSubNode176 final : public TupleDomain<kStatementSubNode176,
Continue_statementNode,
Literal0,
Literal1> {};
class StatementSubNode177 final
: public TupleDomain<kStatementSubNode177, Literal86, Literal0, Literal1> {
};
class StatementSubNode178 final
: public TupleDomain<kStatementSubNode178,
Variable_updating_statementNode,
Literal0,
Literal1> {};
class StatementSubNode179 final : public TupleDomain<kStatementSubNode179,
Assert_statementNode,
Literal0,
Literal1> {};
class Function_declSubNode180 final
: public Vector<kFunction_declSubNode180, AttributeNode> {};
class Function_headerSubNode181 final
: public Optional<kFunction_headerSubNode181, Param_listNode> {};
class Function_headerSubNode182 final
: public Optional<kFunction_headerSubNode182, Function_headerSubNode183> {};
class Function_headerSubNode184 final
: public Vector<kFunction_headerSubNode184, AttributeNode> {};
class Function_headerSubNode183 final
: public TupleDomain<kFunction_headerSubNode183,
Literal87,
Literal0,
Function_headerSubNode184,
Literal0,
Template_elaborated_identNode> {};
class Param_listSubNode185 final
: public Vector<kParam_listSubNode185, Param_listSubNode186> {};
class Param_listSubNode186 final : public TupleDomain<kParam_listSubNode186,
Literal24,
Literal0,
ParamNode> {};
class Param_listSubNode187 final
: public Optional<kParam_listSubNode187, Literal24> {};
class ParamSubNode188 final : public Vector<kParamSubNode188, AttributeNode> {};
class Enable_extension_listSubNode189 final
: public Vector<kEnable_extension_listSubNode189,
Enable_extension_listSubNode190> {};
class Enable_extension_listSubNode190 final
: public TupleDomain<kEnable_extension_listSubNode190,
Literal24,
Literal0,
Enable_extension_nameNode> {};
class Enable_extension_listSubNode191 final
: public Optional<kEnable_extension_listSubNode191, Literal24> {};
class Software_extension_listSubNode192 final
: public Vector<kSoftware_extension_listSubNode192,
Software_extension_listSubNode193> {};
class Software_extension_listSubNode193 final
: public TupleDomain<kSoftware_extension_listSubNode193,
Literal24,
Literal0,
Software_extension_nameNode> {};
class Software_extension_listSubNode194 final
: public Optional<kSoftware_extension_listSubNode194, Literal24> {};
class IDENT_PATTERN_TOKENSubNode196 final
: public NonEmptyVector<kIDENT_PATTERN_TOKENSubNode196, CharSet13> {};
class IDENT_PATTERN_TOKENSubNode195 final
: public TupleDomain<kIDENT_PATTERN_TOKENSubNode195,
CharSet14,
IDENT_PATTERN_TOKENSubNode196> {};
class IDENT_PATTERN_TOKENSubNode197 final
: public TupleDomain<kIDENT_PATTERN_TOKENSubNode197, CharSet15> {};
class SWIZZLE_NAMESubNode198 final
: public TupleDomain<kSWIZZLE_NAMESubNode198, CharSet2, CharSet2> {};
class SWIZZLE_NAMESubNode199 final : public TupleDomain<kSWIZZLE_NAMESubNode199,
CharSet2,
CharSet2,
CharSet2> {};
class SWIZZLE_NAMESubNode200 final : public TupleDomain<kSWIZZLE_NAMESubNode200,
CharSet2,
CharSet2,
CharSet2,
CharSet2> {};
class SWIZZLE_NAMESubNode201 final
: public TupleDomain<kSWIZZLE_NAMESubNode201, CharSet3, CharSet3> {};
class SWIZZLE_NAMESubNode202 final : public TupleDomain<kSWIZZLE_NAMESubNode202,
CharSet3,
CharSet3,
CharSet3> {};
class SWIZZLE_NAMESubNode203 final : public TupleDomain<kSWIZZLE_NAMESubNode203,
CharSet3,
CharSet3,
CharSet3,
CharSet3> {};
class WhitespaceSubNode204 final
: public NonEmptyVector<kWhitespaceSubNode204, CharSet16> {};
class EOFNode final : public TupleDomain<kEOFNode, Literal88> {};
class Literal0 final : public StringLiteralDomain<kLiteral0, kStrLiteral0> {};
class Literal76 final : public StringLiteralDomain<kLiteral76, kStrLiteral76> {
};
class Literal80 final : public StringLiteralDomain<kLiteral80, kStrLiteral80> {
};
class Literal88 final : public StringLiteralDomain<kLiteral88, kStrLiteral88> {
};
class Literal34 final : public StringLiteralDomain<kLiteral34, kStrLiteral34> {
};
class Literal47 final : public StringLiteralDomain<kLiteral47, kStrLiteral47> {
};
class Literal78 final : public StringLiteralDomain<kLiteral78, kStrLiteral78> {
};
class Literal81 final : public StringLiteralDomain<kLiteral81, kStrLiteral81> {
};
class Literal48 final : public StringLiteralDomain<kLiteral48, kStrLiteral48> {
};
class Literal9 final : public StringLiteralDomain<kLiteral9, kStrLiteral9> {};
class Literal10 final : public StringLiteralDomain<kLiteral10, kStrLiteral10> {
};
class Literal32 final : public StringLiteralDomain<kLiteral32, kStrLiteral32> {
};
class Literal45 final : public StringLiteralDomain<kLiteral45, kStrLiteral45> {
};
class Literal35 final : public StringLiteralDomain<kLiteral35, kStrLiteral35> {
};
class Literal51 final : public StringLiteralDomain<kLiteral51, kStrLiteral51> {
};
class Literal43 final : public StringLiteralDomain<kLiteral43, kStrLiteral43> {
};
class Literal24 final : public StringLiteralDomain<kLiteral24, kStrLiteral24> {
};
class Literal36 final : public StringLiteralDomain<kLiteral36, kStrLiteral36> {
};
class Literal52 final : public StringLiteralDomain<kLiteral52, kStrLiteral52> {
};
class Literal44 final : public StringLiteralDomain<kLiteral44, kStrLiteral44> {
};
class Literal87 final : public StringLiteralDomain<kLiteral87, kStrLiteral87> {
};
class Literal69 final : public StringLiteralDomain<kLiteral69, kStrLiteral69> {
};
class Literal33 final : public StringLiteralDomain<kLiteral33, kStrLiteral33> {
};
class Literal46 final : public StringLiteralDomain<kLiteral46, kStrLiteral46> {
};
class Literal28 final : public StringLiteralDomain<kLiteral28, kStrLiteral28> {
};
class Literal1 final : public StringLiteralDomain<kLiteral1, kStrLiteral1> {};
class Literal5 final : public StringLiteralDomain<kLiteral5, kStrLiteral5> {};
class Literal37 final : public StringLiteralDomain<kLiteral37, kStrLiteral37> {
};
class Literal42 final : public StringLiteralDomain<kLiteral42, kStrLiteral42> {
};
class Literal39 final : public StringLiteralDomain<kLiteral39, kStrLiteral39> {
};
class Literal30 final : public StringLiteralDomain<kLiteral30, kStrLiteral30> {
};
class Literal79 final : public StringLiteralDomain<kLiteral79, kStrLiteral79> {
};
class Literal6 final : public StringLiteralDomain<kLiteral6, kStrLiteral6> {};
class Literal40 final : public StringLiteralDomain<kLiteral40, kStrLiteral40> {
};
class Literal38 final : public StringLiteralDomain<kLiteral38, kStrLiteral38> {
};
class Literal41 final : public StringLiteralDomain<kLiteral41, kStrLiteral41> {
};
class Literal7 final : public StringLiteralDomain<kLiteral7, kStrLiteral7> {};
class Literal74 final : public StringLiteralDomain<kLiteral74, kStrLiteral74> {
};
class Literal75 final : public StringLiteralDomain<kLiteral75, kStrLiteral75> {
};
class Literal84 final : public StringLiteralDomain<kLiteral84, kStrLiteral84> {
};
class Literal50 final : public StringLiteralDomain<kLiteral50, kStrLiteral50> {
};
class Literal85 final : public StringLiteralDomain<kLiteral85, kStrLiteral85> {
};
class Literal29 final : public StringLiteralDomain<kLiteral29, kStrLiteral29> {
};
class Literal8 final : public StringLiteralDomain<kLiteral8, kStrLiteral8> {};
class Literal11 final : public StringLiteralDomain<kLiteral11, kStrLiteral11> {
};
class Literal12 final : public StringLiteralDomain<kLiteral12, kStrLiteral12> {
};
class Literal61 final : public StringLiteralDomain<kLiteral61, kStrLiteral61> {
};
class Literal13 final : public StringLiteralDomain<kLiteral13, kStrLiteral13> {
};
class Literal56 final : public StringLiteralDomain<kLiteral56, kStrLiteral56> {
};
class Literal23 final : public StringLiteralDomain<kLiteral23, kStrLiteral23> {
};
class Literal14 final : public StringLiteralDomain<kLiteral14, kStrLiteral14> {
};
class Literal65 final : public StringLiteralDomain<kLiteral65, kStrLiteral65> {
};
class Literal62 final : public StringLiteralDomain<kLiteral62, kStrLiteral62> {
};
class Literal63 final : public StringLiteralDomain<kLiteral63, kStrLiteral63> {
};
class Literal57 final : public StringLiteralDomain<kLiteral57, kStrLiteral57> {
};
class Literal4 final : public StringLiteralDomain<kLiteral4, kStrLiteral4> {};
class Literal86 final : public StringLiteralDomain<kLiteral86, kStrLiteral86> {
};
class Literal54 final : public StringLiteralDomain<kLiteral54, kStrLiteral54> {
};
class Literal67 final : public StringLiteralDomain<kLiteral67, kStrLiteral67> {
};
class Literal3 final : public StringLiteralDomain<kLiteral3, kStrLiteral3> {};
class Literal66 final : public StringLiteralDomain<kLiteral66, kStrLiteral66> {
};
class Literal59 final : public StringLiteralDomain<kLiteral59, kStrLiteral59> {
};
class Literal22 final : public StringLiteralDomain<kLiteral22, kStrLiteral22> {
};
class Literal15 final : public StringLiteralDomain<kLiteral15, kStrLiteral15> {
};
class Literal16 final : public StringLiteralDomain<kLiteral16, kStrLiteral16> {
};
class Literal53 final : public StringLiteralDomain<kLiteral53, kStrLiteral53> {
};
class Literal70 final : public StringLiteralDomain<kLiteral70, kStrLiteral70> {
};
class Literal17 final : public StringLiteralDomain<kLiteral17, kStrLiteral17> {
};
class Literal72 final : public StringLiteralDomain<kLiteral72, kStrLiteral72> {
};
class Literal18 final : public StringLiteralDomain<kLiteral18, kStrLiteral18> {
};
class Literal58 final : public StringLiteralDomain<kLiteral58, kStrLiteral58> {
};
class Literal19 final : public StringLiteralDomain<kLiteral19, kStrLiteral19> {
};
class Literal73 final : public StringLiteralDomain<kLiteral73, kStrLiteral73> {
};
class Literal68 final : public StringLiteralDomain<kLiteral68, kStrLiteral68> {
};
class Literal64 final : public StringLiteralDomain<kLiteral64, kStrLiteral64> {
};
class Literal20 final : public StringLiteralDomain<kLiteral20, kStrLiteral20> {
};
class Literal25 final : public StringLiteralDomain<kLiteral25, kStrLiteral25> {
};
class Literal55 final : public StringLiteralDomain<kLiteral55, kStrLiteral55> {
};
class Literal2 final : public StringLiteralDomain<kLiteral2, kStrLiteral2> {};
class Literal31 final : public StringLiteralDomain<kLiteral31, kStrLiteral31> {
};
class Literal21 final : public StringLiteralDomain<kLiteral21, kStrLiteral21> {
};
class Literal60 final : public StringLiteralDomain<kLiteral60, kStrLiteral60> {
};
class Literal71 final : public StringLiteralDomain<kLiteral71, kStrLiteral71> {
};
class Literal26 final : public StringLiteralDomain<kLiteral26, kStrLiteral26> {
};
class Literal83 final : public StringLiteralDomain<kLiteral83, kStrLiteral83> {
};
class Literal49 final : public StringLiteralDomain<kLiteral49, kStrLiteral49> {
};
class Literal82 final : public StringLiteralDomain<kLiteral82, kStrLiteral82> {
};
class Literal27 final : public StringLiteralDomain<kLiteral27, kStrLiteral27> {
};
class Literal77 final : public StringLiteralDomain<kLiteral77, kStrLiteral77> {
};
class CharSet16 final : public RegexLiteralDomain<kCharSet16, kStrCharSet16> {};
class CharSet9 final : public RegexLiteralDomain<kCharSet9, kStrCharSet9> {};
class CharSet11 final : public RegexLiteralDomain<kCharSet11, kStrCharSet11> {};
class CharSet5 final : public RegexLiteralDomain<kCharSet5, kStrCharSet5> {};
class CharSet7 final : public RegexLiteralDomain<kCharSet7, kStrCharSet7> {};
class CharSet0 final : public RegexLiteralDomain<kCharSet0, kStrCharSet0> {};
class CharSet6 final : public RegexLiteralDomain<kCharSet6, kStrCharSet6> {};
class CharSet13 final : public RegexLiteralDomain<kCharSet13, kStrCharSet13> {};
class CharSet14 final : public RegexLiteralDomain<kCharSet14, kStrCharSet14> {};
class CharSet15 final : public RegexLiteralDomain<kCharSet15, kStrCharSet15> {};
class CharSet10 final : public RegexLiteralDomain<kCharSet10, kStrCharSet10> {};
class CharSet8 final : public RegexLiteralDomain<kCharSet8, kStrCharSet8> {};
class CharSet4 final : public RegexLiteralDomain<kCharSet4, kStrCharSet4> {};
class CharSet12 final : public RegexLiteralDomain<kCharSet12, kStrCharSet12> {};
class CharSet2 final : public RegexLiteralDomain<kCharSet2, kStrCharSet2> {};
class CharSet1 final : public RegexLiteralDomain<kCharSet1, kStrCharSet1> {};
class CharSet3 final : public RegexLiteralDomain<kCharSet3, kStrCharSet3> {};
} // namespace fuzztest::internal::grammar::wgsl
namespace fuzztest::internal_no_adl {
inline auto InWgslGrammar() {
return internal::grammar::InGrammarImpl<internal::grammar::wgsl::WgslNode>();
}
} // namespace fuzztest::internal_no_adl
#endif // TESTING_LIBFUZZER_FUZZERS_TINT_WGSL_FUZZER_GRAMMAR_H_