azslParser.h 133 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243
  1. // Generated from ../azslParser.g4 by ANTLR 4.9.3
  2. #pragma once
  3. #include "antlr4-runtime.h"
  4. class azslParser : public antlr4::Parser {
  5. public:
  6. enum {
  7. AppendStructuredBuffer = 1, Bool = 2, Bool1 = 3, Bool2 = 4, Bool3 = 5,
  8. Bool4 = 6, Bool1x1 = 7, Bool1x2 = 8, Bool1x3 = 9, Bool1x4 = 10, Bool2x1 = 11,
  9. Bool2x2 = 12, Bool2x3 = 13, Bool2x4 = 14, Bool3x1 = 15, Bool3x2 = 16,
  10. Bool3x3 = 17, Bool3x4 = 18, Bool4x1 = 19, Bool4x2 = 20, Bool4x3 = 21,
  11. Bool4x4 = 22, Buffer = 23, BuiltInTriangleIntersectionAttributes = 24,
  12. ByteAddressBuffer = 25, Break = 26, Case = 27, CBuffer = 28, Centroid = 29,
  13. ConstantBuffer = 30, ConstantBufferCamel = 31, Class = 32, ColumnMajor = 33,
  14. Const = 34, ConsumeStructuredBuffer = 35, Continue = 36, Default = 37,
  15. Discard = 38, Do = 39, Double = 40, Double1 = 41, Double2 = 42, Double3 = 43,
  16. Double4 = 44, Double1x1 = 45, Double1x2 = 46, Double1x3 = 47, Double1x4 = 48,
  17. Double2x1 = 49, Double2x2 = 50, Double2x3 = 51, Double2x4 = 52, Double3x1 = 53,
  18. Double3x2 = 54, Double3x3 = 55, Double3x4 = 56, Double4x1 = 57, Double4x2 = 58,
  19. Double4x3 = 59, Double4x4 = 60, Else = 61, Enum = 62, Export = 63, Extern = 64,
  20. FeedbackTexture2D = 65, FeedbackTexture2DArray = 66, Float = 67, Float1 = 68,
  21. Float2 = 69, Float3 = 70, Float4 = 71, Float1x1 = 72, Float1x2 = 73,
  22. Float1x3 = 74, Float1x4 = 75, Float2x1 = 76, Float2x2 = 77, Float2x3 = 78,
  23. Float2x4 = 79, Float3x1 = 80, Float3x2 = 81, Float3x3 = 82, Float3x4 = 83,
  24. Float4x1 = 84, Float4x2 = 85, Float4x3 = 86, Float4x4 = 87, For = 88,
  25. Groupshared = 89, Globallycoherent = 90, Global = 91, Half = 92, Half1 = 93,
  26. Half2 = 94, Half3 = 95, Half4 = 96, Half1x1 = 97, Half1x2 = 98, Half1x3 = 99,
  27. Half1x4 = 100, Half2x1 = 101, Half2x2 = 102, Half2x3 = 103, Half2x4 = 104,
  28. Half3x1 = 105, Half3x2 = 106, Half3x3 = 107, Half3x4 = 108, Half4x1 = 109,
  29. Half4x2 = 110, Half4x3 = 111, Half4x4 = 112, If = 113, In = 114, Inline = 115,
  30. Rootconstant = 116, Inout = 117, InputPatch = 118, Int = 119, Int16_t = 120,
  31. Int32_t = 121, Int64_t = 122, Int1 = 123, Int2 = 124, Int3 = 125, Int4 = 126,
  32. Int1x1 = 127, Int1x2 = 128, Int1x3 = 129, Int1x4 = 130, Int2x1 = 131,
  33. Int2x2 = 132, Int2x3 = 133, Int2x4 = 134, Int3x1 = 135, Int3x2 = 136,
  34. Int3x3 = 137, Int3x4 = 138, Int4x1 = 139, Int4x2 = 140, Int4x3 = 141,
  35. Int4x4 = 142, Interface = 143, Line_ = 144, LineAdj = 145, Linear = 146,
  36. LineStream = 147, Long = 148, Matrix = 149, Nointerpolation = 150, Noperspective = 151,
  37. Option = 152, Out = 153, OutputPatch = 154, Override = 155, Partial = 156,
  38. Packoffset = 157, Point = 158, PointStream = 159, Precise = 160, RasterizerOrderedBuffer = 161,
  39. RasterizerOrderedByteAddressBuffer = 162, RasterizerOrderedStructuredBuffer = 163,
  40. RasterizerOrderedTexture1D = 164, RasterizerOrderedTexture1DArray = 165,
  41. RasterizerOrderedTexture2D = 166, RasterizerOrderedTexture2DArray = 167,
  42. RasterizerOrderedTexture3D = 168, RayDesc = 169, RaytracingAccelerationStructure = 170,
  43. Register = 171, Return = 172, RowMajor = 173, RWBuffer = 174, RWByteAddressBuffer = 175,
  44. RWStructuredBuffer = 176, RWTexture1D = 177, RWTexture1DArray = 178,
  45. RWTexture2D = 179, RWTexture2DArray = 180, RWTexture3D = 181, Sample = 182,
  46. Sampler = 183, SamplerCapitalS = 184, SamplerComparisonState = 185,
  47. SamplerStateCamel = 186, SamplerState = 187, Shared = 188, SNorm = 189,
  48. Static = 190, Struct = 191, StructuredBuffer = 192, SubpassInput = 193,
  49. SubpassInputMS = 194, Switch = 195, TBuffer = 196, Texture1D = 197,
  50. Texture1DArray = 198, Texture2D = 199, Texture2DArray = 200, Texture2DMS = 201,
  51. Texture2DMSArray = 202, Texture3D = 203, TextureCube = 204, TextureCubeArray = 205,
  52. Triangle = 206, TriangleAdj = 207, TriangleStream = 208, Uniform = 209,
  53. Uint = 210, Uint1 = 211, Uint2 = 212, Uint3 = 213, Uint4 = 214, Uint1x1 = 215,
  54. Uint1x2 = 216, Uint1x3 = 217, Uint1x4 = 218, Uint2x1 = 219, Uint2x2 = 220,
  55. Uint2x3 = 221, Uint2x4 = 222, Uint3x1 = 223, Uint3x2 = 224, Uint3x3 = 225,
  56. Uint3x4 = 226, Uint4x1 = 227, Uint4x2 = 228, Uint4x3 = 229, Uint4x4 = 230,
  57. Uint16_t = 231, Uint32_t = 232, Uint64_t = 233, UNorm = 234, Unsigned = 235,
  58. Dword = 236, Dword1 = 237, Dword2 = 238, Dword3 = 239, Dword4 = 240,
  59. Dword1x1 = 241, Dword1x2 = 242, Dword1x3 = 243, Dword1x4 = 244, Dword2x1 = 245,
  60. Dword2x2 = 246, Dword2x3 = 247, Dword2x4 = 248, Dword3x1 = 249, Dword3x2 = 250,
  61. Dword3x3 = 251, Dword3x4 = 252, Dword4x1 = 253, Dword4x2 = 254, Dword4x3 = 255,
  62. Dword4x4 = 256, Vector = 257, Volatile = 258, Void = 259, While = 260,
  63. StateObjectConfig = 261, LocalRootSignature = 262, GlobalRootSignature = 263,
  64. SubobjectToExportsAssociation = 264, RaytracingShaderConfig = 265, RaytracingPipelineConfig = 266,
  65. RaytracingPipelineConfig1 = 267, TriangleHitGroup = 268, ProceduralPrimitiveHitGroup = 269,
  66. ADDRESS_U = 270, ADDRESS_V = 271, ADDRESS_W = 272, BORDER_COLOR = 273,
  67. MIN_FILTER = 274, MAG_FILTER = 275, MIP_FILTER = 276, MAX_ANISOTROPY = 277,
  68. MAX_LOD = 278, MIN_LOD = 279, MIP_LOD_BIAS = 280, COMPARISON_FUNC = 281,
  69. REDUCTION_TYPE = 282, FILTER_MODE_POINT = 283, FILTER_MODE_LINEAR = 284,
  70. REDUCTION_TYPE_FILTER = 285, REDUCTION_TYPE_COMPARISON = 286, REDUCTION_TYPE_MINIMUM = 287,
  71. REDUCTION_TYPE_MAXIMUM = 288, ADDRESS_MODE_WRAP = 289, ADDRESS_MODE_MIRROR = 290,
  72. ADDRESS_MODE_CLAMP = 291, ADDRESS_MODE_BORDER = 292, ADDRESS_MODE_MIRROR_ONCE = 293,
  73. COMPARISON_FUNCTION_NEVER = 294, COMPARISON_FUNCTION_LESS = 295, COMPARISON_FUNCTION_EQUAL = 296,
  74. COMPARISON_FUNCTION_LESS_EQUAL = 297, COMPARISON_FUNCTION_GREATER = 298,
  75. COMPARISON_FUNCTION_NOT_EQUAL = 299, COMPARISON_FUNCTION_GREATER_EQUAL = 300,
  76. COMPARISON_FUNCTION_ALWAYS = 301, BORDER_COLOR_OPAQUE_BLACK = 302, BORDER_COLOR_TRANSPARENT_BLACK = 303,
  77. BORDER_COLOR_OPAQUE_WHITE = 304, LeftParen = 305, RightParen = 306,
  78. LeftBracket = 307, RightBracket = 308, LeftBrace = 309, RightBrace = 310,
  79. LeftDoubleBracket = 311, Less = 312, LessEqual = 313, Greater = 314,
  80. GreaterEqual = 315, LeftShift = 316, RightShift = 317, Plus = 318, PlusPlus = 319,
  81. Minus = 320, MinusMinus = 321, Star = 322, Div = 323, Mod = 324, And = 325,
  82. Or = 326, AndAnd = 327, OrOr = 328, Caret = 329, Not = 330, Tilde = 331,
  83. Question = 332, Colon = 333, ColonColon = 334, Semi = 335, Comma = 336,
  84. Assign = 337, StarAssign = 338, DivAssign = 339, ModAssign = 340, PlusAssign = 341,
  85. MinusAssign = 342, LeftShiftAssign = 343, RightShiftAssign = 344, AndAssign = 345,
  86. XorAssign = 346, OrAssign = 347, Equal = 348, NotEqual = 349, Dot = 350,
  87. True = 351, False = 352, KW_AssociatedType = 353, KW_TypeAlias = 354,
  88. KW_Typedef = 355, KW_Fundamental = 356, KW_Typeof = 357, FrequencyId = 358,
  89. ShaderVariantFallback = 359, ShaderResourceGroupSemantic = 360, ShaderResourceGroup = 361,
  90. KW_ext_print_message = 362, KW_ext_print_symbol = 363, KW_ext_prtsym_fully_qualified = 364,
  91. KW_ext_prtsym_least_qualified = 365, KW_ext_prtsym_constint_value = 366,
  92. HLSLSemanticStream = 367, HLSLSemanticSystem = 368, Identifier = 369,
  93. IntegerLiteral = 370, FloatLiteral = 371, StringLiteral = 372, PragmaDirective = 373,
  94. LineDirective = 374, Whitespace = 375, Newline = 376, BlockComment = 377,
  95. LineComment = 378
  96. };
  97. enum {
  98. RuleCompilationUnit = 0, RuleTopLevelDeclaration = 1, RuleIdExpression = 2,
  99. RuleUnqualifiedId = 3, RuleQualifiedId = 4, RuleNestedNameSpecifier = 5,
  100. RuleClassDefinitionStatement = 6, RuleClassDefinition = 7, RuleBaseList = 8,
  101. RuleClassMemberDeclaration = 9, RuleStructDefinitionStatement = 10,
  102. RuleStructDefinition = 11, RuleStructMemberDeclaration = 12, RuleAnyStructuredTypeDefinitionStatement = 13,
  103. RuleEnumDefinitionStatement = 14, RuleEnumDefinition = 15, RuleEnumKey = 16,
  104. RuleEnumeratorListDefinition = 17, RuleEnumeratorDeclarator = 18, RuleAnyStructuredTypeDefinition = 19,
  105. RuleInterfaceDefinitionStatement = 20, RuleInterfaceDefinition = 21,
  106. RuleInterfaceMemberDeclaration = 22, RuleConstantBufferTemplated = 23,
  107. RuleVariableDeclarationStatement = 24, RuleFunctionParams = 25, RuleFunctionParam = 26,
  108. RuleHlslSemantic = 27, RuleHlslSemanticName = 28, RuleAttributeArguments = 29,
  109. RuleAttributeArgumentList = 30, RuleAttribute = 31, RuleAttributeSpecifier = 32,
  110. RuleAttributeSpecifierSequence = 33, RuleAttributeSpecifierAny = 34,
  111. RuleBlock = 35, RuleStatement = 36, RuleForInitializer = 37, RuleSwitchLabel = 38,
  112. RuleSwitchSection = 39, RuleSwitchBlock = 40, RuleEmbeddedStatement = 41,
  113. RuleElseClause = 42, RuleExpression = 43, RuleExpressionExt = 44, RulePostfixUnaryOperator = 45,
  114. RulePrefixUnaryOperator = 46, RuleBinaryOperator = 47, RuleAssignmentOperator = 48,
  115. RuleArgumentList = 49, RuleArguments = 50, RuleVariableDeclaration = 51,
  116. RuleVariableDeclarators = 52, RuleUnnamedVariableDeclarator = 53, RuleNamedVariableDeclarator = 54,
  117. RuleVariableInitializer = 55, RuleStandardVariableInitializer = 56,
  118. RuleArrayElementInitializers = 57, RuleArrayRankSpecifier = 58, RulePackOffsetNode = 59,
  119. RuleStorageFlags = 60, RuleStorageFlag = 61, RuleType = 62, RulePredefinedType = 63,
  120. RuleSubobjectType = 64, RuleOtherViewResourceType = 65, RuleRtxBuiltInTypes = 66,
  121. RuleBufferPredefinedType = 67, RuleBufferType = 68, RuleByteAddressBufferTypes = 69,
  122. RulePatchPredefinedType = 70, RulePatchType = 71, RuleSamplerStatePredefinedType = 72,
  123. RuleScalarType = 73, RuleStreamOutputPredefinedType = 74, RuleStreamOutputObjectType = 75,
  124. RuleStructuredBufferPredefinedType = 76, RuleStructuredBufferName = 77,
  125. RuleTextureType = 78, RuleTexturePredefinedType = 79, RuleGenericTexturePredefinedType = 80,
  126. RuleTextureTypeMS = 81, RuleMsTexturePredefinedType = 82, RuleVectorType = 83,
  127. RuleGenericVectorType = 84, RuleScalarOrVectorType = 85, RuleScalarOrVectorOrMatrixType = 86,
  128. RuleMatrixType = 87, RuleGenericMatrixPredefinedType = 88, RuleRegisterAllocation = 89,
  129. RuleSamplerStateProperty = 90, RuleLiteral = 91, RuleLeadingTypeFunctionSignature = 92,
  130. RuleHlslFunctionDefinition = 93, RuleHlslFunctionDeclaration = 94, RuleUserDefinedType = 95,
  131. RuleAssociatedTypeDeclaration = 96, RuleTypedefStatement = 97, RuleTypealiasStatement = 98,
  132. RuleTypeAliasingDefinitionStatement = 99, RuleTypeofExpression = 100,
  133. RuleGenericParameterList = 101, RuleGenericTypeDefinition = 102, RuleGenericConstraint = 103,
  134. RuleLanguageDefinedConstraint = 104, RuleFunctionDeclaration = 105,
  135. RuleAttributedFunctionDeclaration = 106, RuleFunctionDefinition = 107,
  136. RuleAttributedFunctionDefinition = 108, RuleCompilerExtensionStatement = 109,
  137. RuleSrgDefinition = 110, RuleAttributedSrgDefinition = 111, RuleSrgMemberDeclaration = 112,
  138. RuleSrgSemantic = 113, RuleAttributedSrgSemantic = 114, RuleSrgSemanticBodyDeclaration = 115,
  139. RuleSrgSemanticMemberDeclaration = 116, RuleSamplerBodyDeclaration = 117,
  140. RuleSamplerMemberDeclaration = 118, RuleMaxAnisotropyOption = 119, RuleMinFilterOption = 120,
  141. RuleMagFilterOption = 121, RuleMipFilterOption = 122, RuleReductionTypeOption = 123,
  142. RuleComparisonFunctionOption = 124, RuleAddressUOption = 125, RuleAddressVOption = 126,
  143. RuleAddressWOption = 127, RuleMinLodOption = 128, RuleMaxLodOption = 129,
  144. RuleMipLodBiasOption = 130, RuleBorderColorOption = 131, RuleFilterModeEnum = 132,
  145. RuleReductionTypeEnum = 133, RuleAddressModeEnum = 134, RuleComparisonFunctionEnum = 135,
  146. RuleBorderColorEnum = 136
  147. };
  148. explicit azslParser(antlr4::TokenStream *input);
  149. ~azslParser();
  150. virtual std::string getGrammarFileName() const override;
  151. virtual const antlr4::atn::ATN& getATN() const override { return _atn; };
  152. virtual const std::vector<std::string>& getTokenNames() const override { return _tokenNames; }; // deprecated: use vocabulary instead.
  153. virtual const std::vector<std::string>& getRuleNames() const override;
  154. virtual antlr4::dfa::Vocabulary& getVocabulary() const override;
  155. class CompilationUnitContext;
  156. class TopLevelDeclarationContext;
  157. class IdExpressionContext;
  158. class UnqualifiedIdContext;
  159. class QualifiedIdContext;
  160. class NestedNameSpecifierContext;
  161. class ClassDefinitionStatementContext;
  162. class ClassDefinitionContext;
  163. class BaseListContext;
  164. class ClassMemberDeclarationContext;
  165. class StructDefinitionStatementContext;
  166. class StructDefinitionContext;
  167. class StructMemberDeclarationContext;
  168. class AnyStructuredTypeDefinitionStatementContext;
  169. class EnumDefinitionStatementContext;
  170. class EnumDefinitionContext;
  171. class EnumKeyContext;
  172. class EnumeratorListDefinitionContext;
  173. class EnumeratorDeclaratorContext;
  174. class AnyStructuredTypeDefinitionContext;
  175. class InterfaceDefinitionStatementContext;
  176. class InterfaceDefinitionContext;
  177. class InterfaceMemberDeclarationContext;
  178. class ConstantBufferTemplatedContext;
  179. class VariableDeclarationStatementContext;
  180. class FunctionParamsContext;
  181. class FunctionParamContext;
  182. class HlslSemanticContext;
  183. class HlslSemanticNameContext;
  184. class AttributeArgumentsContext;
  185. class AttributeArgumentListContext;
  186. class AttributeContext;
  187. class AttributeSpecifierContext;
  188. class AttributeSpecifierSequenceContext;
  189. class AttributeSpecifierAnyContext;
  190. class BlockContext;
  191. class StatementContext;
  192. class ForInitializerContext;
  193. class SwitchLabelContext;
  194. class SwitchSectionContext;
  195. class SwitchBlockContext;
  196. class EmbeddedStatementContext;
  197. class ElseClauseContext;
  198. class ExpressionContext;
  199. class ExpressionExtContext;
  200. class PostfixUnaryOperatorContext;
  201. class PrefixUnaryOperatorContext;
  202. class BinaryOperatorContext;
  203. class AssignmentOperatorContext;
  204. class ArgumentListContext;
  205. class ArgumentsContext;
  206. class VariableDeclarationContext;
  207. class VariableDeclaratorsContext;
  208. class UnnamedVariableDeclaratorContext;
  209. class NamedVariableDeclaratorContext;
  210. class VariableInitializerContext;
  211. class StandardVariableInitializerContext;
  212. class ArrayElementInitializersContext;
  213. class ArrayRankSpecifierContext;
  214. class PackOffsetNodeContext;
  215. class StorageFlagsContext;
  216. class StorageFlagContext;
  217. class TypeContext;
  218. class PredefinedTypeContext;
  219. class SubobjectTypeContext;
  220. class OtherViewResourceTypeContext;
  221. class RtxBuiltInTypesContext;
  222. class BufferPredefinedTypeContext;
  223. class BufferTypeContext;
  224. class ByteAddressBufferTypesContext;
  225. class PatchPredefinedTypeContext;
  226. class PatchTypeContext;
  227. class SamplerStatePredefinedTypeContext;
  228. class ScalarTypeContext;
  229. class StreamOutputPredefinedTypeContext;
  230. class StreamOutputObjectTypeContext;
  231. class StructuredBufferPredefinedTypeContext;
  232. class StructuredBufferNameContext;
  233. class TextureTypeContext;
  234. class TexturePredefinedTypeContext;
  235. class GenericTexturePredefinedTypeContext;
  236. class TextureTypeMSContext;
  237. class MsTexturePredefinedTypeContext;
  238. class VectorTypeContext;
  239. class GenericVectorTypeContext;
  240. class ScalarOrVectorTypeContext;
  241. class ScalarOrVectorOrMatrixTypeContext;
  242. class MatrixTypeContext;
  243. class GenericMatrixPredefinedTypeContext;
  244. class RegisterAllocationContext;
  245. class SamplerStatePropertyContext;
  246. class LiteralContext;
  247. class LeadingTypeFunctionSignatureContext;
  248. class HlslFunctionDefinitionContext;
  249. class HlslFunctionDeclarationContext;
  250. class UserDefinedTypeContext;
  251. class AssociatedTypeDeclarationContext;
  252. class TypedefStatementContext;
  253. class TypealiasStatementContext;
  254. class TypeAliasingDefinitionStatementContext;
  255. class TypeofExpressionContext;
  256. class GenericParameterListContext;
  257. class GenericTypeDefinitionContext;
  258. class GenericConstraintContext;
  259. class LanguageDefinedConstraintContext;
  260. class FunctionDeclarationContext;
  261. class AttributedFunctionDeclarationContext;
  262. class FunctionDefinitionContext;
  263. class AttributedFunctionDefinitionContext;
  264. class CompilerExtensionStatementContext;
  265. class SrgDefinitionContext;
  266. class AttributedSrgDefinitionContext;
  267. class SrgMemberDeclarationContext;
  268. class SrgSemanticContext;
  269. class AttributedSrgSemanticContext;
  270. class SrgSemanticBodyDeclarationContext;
  271. class SrgSemanticMemberDeclarationContext;
  272. class SamplerBodyDeclarationContext;
  273. class SamplerMemberDeclarationContext;
  274. class MaxAnisotropyOptionContext;
  275. class MinFilterOptionContext;
  276. class MagFilterOptionContext;
  277. class MipFilterOptionContext;
  278. class ReductionTypeOptionContext;
  279. class ComparisonFunctionOptionContext;
  280. class AddressUOptionContext;
  281. class AddressVOptionContext;
  282. class AddressWOptionContext;
  283. class MinLodOptionContext;
  284. class MaxLodOptionContext;
  285. class MipLodBiasOptionContext;
  286. class BorderColorOptionContext;
  287. class FilterModeEnumContext;
  288. class ReductionTypeEnumContext;
  289. class AddressModeEnumContext;
  290. class ComparisonFunctionEnumContext;
  291. class BorderColorEnumContext;
  292. class CompilationUnitContext : public antlr4::ParserRuleContext {
  293. public:
  294. azslParser::TopLevelDeclarationContext *topLevelDeclarationContext = nullptr;
  295. std::vector<TopLevelDeclarationContext *> Declarations;
  296. CompilationUnitContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  297. virtual size_t getRuleIndex() const override;
  298. antlr4::tree::TerminalNode *EOF();
  299. std::vector<TopLevelDeclarationContext *> topLevelDeclaration();
  300. TopLevelDeclarationContext* topLevelDeclaration(size_t i);
  301. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  302. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  303. };
  304. CompilationUnitContext* compilationUnit();
  305. class TopLevelDeclarationContext : public antlr4::ParserRuleContext {
  306. public:
  307. TopLevelDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  308. virtual size_t getRuleIndex() const override;
  309. AnyStructuredTypeDefinitionStatementContext *anyStructuredTypeDefinitionStatement();
  310. VariableDeclarationStatementContext *variableDeclarationStatement();
  311. AttributedFunctionDefinitionContext *attributedFunctionDefinition();
  312. AttributedFunctionDeclarationContext *attributedFunctionDeclaration();
  313. AttributeSpecifierSequenceContext *attributeSpecifierSequence();
  314. CompilerExtensionStatementContext *compilerExtensionStatement();
  315. TypeAliasingDefinitionStatementContext *typeAliasingDefinitionStatement();
  316. AttributedSrgDefinitionContext *attributedSrgDefinition();
  317. AttributedSrgSemanticContext *attributedSrgSemantic();
  318. antlr4::tree::TerminalNode *Semi();
  319. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  320. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  321. };
  322. TopLevelDeclarationContext* topLevelDeclaration();
  323. class IdExpressionContext : public antlr4::ParserRuleContext {
  324. public:
  325. IdExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  326. virtual size_t getRuleIndex() const override;
  327. UnqualifiedIdContext *unqualifiedId();
  328. QualifiedIdContext *qualifiedId();
  329. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  330. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  331. };
  332. IdExpressionContext* idExpression();
  333. class UnqualifiedIdContext : public antlr4::ParserRuleContext {
  334. public:
  335. UnqualifiedIdContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  336. virtual size_t getRuleIndex() const override;
  337. antlr4::tree::TerminalNode *Identifier();
  338. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  339. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  340. };
  341. UnqualifiedIdContext* unqualifiedId();
  342. class QualifiedIdContext : public antlr4::ParserRuleContext {
  343. public:
  344. QualifiedIdContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  345. virtual size_t getRuleIndex() const override;
  346. NestedNameSpecifierContext *nestedNameSpecifier();
  347. UnqualifiedIdContext *unqualifiedId();
  348. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  349. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  350. };
  351. QualifiedIdContext* qualifiedId();
  352. class NestedNameSpecifierContext : public antlr4::ParserRuleContext {
  353. public:
  354. antlr4::Token *GlobalSROToken = nullptr;
  355. NestedNameSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  356. virtual size_t getRuleIndex() const override;
  357. std::vector<antlr4::tree::TerminalNode *> Identifier();
  358. antlr4::tree::TerminalNode* Identifier(size_t i);
  359. std::vector<antlr4::tree::TerminalNode *> ColonColon();
  360. antlr4::tree::TerminalNode* ColonColon(size_t i);
  361. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  362. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  363. };
  364. NestedNameSpecifierContext* nestedNameSpecifier();
  365. class ClassDefinitionStatementContext : public antlr4::ParserRuleContext {
  366. public:
  367. ClassDefinitionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  368. virtual size_t getRuleIndex() const override;
  369. ClassDefinitionContext *classDefinition();
  370. antlr4::tree::TerminalNode *Semi();
  371. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  372. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  373. };
  374. ClassDefinitionStatementContext* classDefinitionStatement();
  375. class ClassDefinitionContext : public antlr4::ParserRuleContext {
  376. public:
  377. antlr4::Token *Name = nullptr;
  378. azslParser::BaseListContext *BaseListOpt = nullptr;
  379. ClassDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  380. virtual size_t getRuleIndex() const override;
  381. antlr4::tree::TerminalNode *Class();
  382. antlr4::tree::TerminalNode *LeftBrace();
  383. antlr4::tree::TerminalNode *RightBrace();
  384. antlr4::tree::TerminalNode *Identifier();
  385. std::vector<ClassMemberDeclarationContext *> classMemberDeclaration();
  386. ClassMemberDeclarationContext* classMemberDeclaration(size_t i);
  387. BaseListContext *baseList();
  388. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  389. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  390. };
  391. ClassDefinitionContext* classDefinition();
  392. class BaseListContext : public antlr4::ParserRuleContext {
  393. public:
  394. BaseListContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  395. virtual size_t getRuleIndex() const override;
  396. antlr4::tree::TerminalNode *Colon();
  397. std::vector<IdExpressionContext *> idExpression();
  398. IdExpressionContext* idExpression(size_t i);
  399. std::vector<antlr4::tree::TerminalNode *> Comma();
  400. antlr4::tree::TerminalNode* Comma(size_t i);
  401. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  402. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  403. };
  404. BaseListContext* baseList();
  405. class ClassMemberDeclarationContext : public antlr4::ParserRuleContext {
  406. public:
  407. ClassMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  408. virtual size_t getRuleIndex() const override;
  409. VariableDeclarationStatementContext *variableDeclarationStatement();
  410. AttributedFunctionDefinitionContext *attributedFunctionDefinition();
  411. AttributedFunctionDeclarationContext *attributedFunctionDeclaration();
  412. TypeAliasingDefinitionStatementContext *typeAliasingDefinitionStatement();
  413. AnyStructuredTypeDefinitionStatementContext *anyStructuredTypeDefinitionStatement();
  414. AttributeSpecifierAnyContext *attributeSpecifierAny();
  415. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  416. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  417. };
  418. ClassMemberDeclarationContext* classMemberDeclaration();
  419. class StructDefinitionStatementContext : public antlr4::ParserRuleContext {
  420. public:
  421. StructDefinitionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  422. virtual size_t getRuleIndex() const override;
  423. StructDefinitionContext *structDefinition();
  424. antlr4::tree::TerminalNode *Semi();
  425. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  426. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  427. };
  428. StructDefinitionStatementContext* structDefinitionStatement();
  429. class StructDefinitionContext : public antlr4::ParserRuleContext {
  430. public:
  431. antlr4::Token *Name = nullptr;
  432. StructDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  433. virtual size_t getRuleIndex() const override;
  434. antlr4::tree::TerminalNode *Struct();
  435. antlr4::tree::TerminalNode *LeftBrace();
  436. antlr4::tree::TerminalNode *RightBrace();
  437. antlr4::tree::TerminalNode *Identifier();
  438. std::vector<StructMemberDeclarationContext *> structMemberDeclaration();
  439. StructMemberDeclarationContext* structMemberDeclaration(size_t i);
  440. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  441. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  442. };
  443. StructDefinitionContext* structDefinition();
  444. class StructMemberDeclarationContext : public antlr4::ParserRuleContext {
  445. public:
  446. StructMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  447. virtual size_t getRuleIndex() const override;
  448. VariableDeclarationStatementContext *variableDeclarationStatement();
  449. AttributedFunctionDefinitionContext *attributedFunctionDefinition();
  450. AttributedFunctionDeclarationContext *attributedFunctionDeclaration();
  451. AnyStructuredTypeDefinitionStatementContext *anyStructuredTypeDefinitionStatement();
  452. TypeAliasingDefinitionStatementContext *typeAliasingDefinitionStatement();
  453. AttributeSpecifierAnyContext *attributeSpecifierAny();
  454. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  455. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  456. };
  457. StructMemberDeclarationContext* structMemberDeclaration();
  458. class AnyStructuredTypeDefinitionStatementContext : public antlr4::ParserRuleContext {
  459. public:
  460. AnyStructuredTypeDefinitionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  461. virtual size_t getRuleIndex() const override;
  462. AnyStructuredTypeDefinitionContext *anyStructuredTypeDefinition();
  463. antlr4::tree::TerminalNode *Semi();
  464. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  465. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  466. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  467. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  468. };
  469. AnyStructuredTypeDefinitionStatementContext* anyStructuredTypeDefinitionStatement();
  470. class EnumDefinitionStatementContext : public antlr4::ParserRuleContext {
  471. public:
  472. EnumDefinitionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  473. virtual size_t getRuleIndex() const override;
  474. EnumDefinitionContext *enumDefinition();
  475. antlr4::tree::TerminalNode *Semi();
  476. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  477. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  478. };
  479. EnumDefinitionStatementContext* enumDefinitionStatement();
  480. class EnumDefinitionContext : public antlr4::ParserRuleContext {
  481. public:
  482. antlr4::Token *Name = nullptr;
  483. azslParser::EnumeratorListDefinitionContext *List = nullptr;
  484. EnumDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  485. virtual size_t getRuleIndex() const override;
  486. EnumKeyContext *enumKey();
  487. antlr4::tree::TerminalNode *LeftBrace();
  488. antlr4::tree::TerminalNode *RightBrace();
  489. antlr4::tree::TerminalNode *Identifier();
  490. EnumeratorListDefinitionContext *enumeratorListDefinition();
  491. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  492. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  493. };
  494. EnumDefinitionContext* enumDefinition();
  495. class EnumKeyContext : public antlr4::ParserRuleContext {
  496. public:
  497. EnumKeyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  498. EnumKeyContext() = default;
  499. void copyFrom(EnumKeyContext *context);
  500. using antlr4::ParserRuleContext::copyFrom;
  501. virtual size_t getRuleIndex() const override;
  502. };
  503. class UnscopedEnumContext : public EnumKeyContext {
  504. public:
  505. UnscopedEnumContext(EnumKeyContext *ctx);
  506. antlr4::tree::TerminalNode *Enum();
  507. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  508. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  509. };
  510. class ScopedEnumContext : public EnumKeyContext {
  511. public:
  512. ScopedEnumContext(EnumKeyContext *ctx);
  513. antlr4::tree::TerminalNode *Enum();
  514. antlr4::tree::TerminalNode *Class();
  515. antlr4::tree::TerminalNode *Struct();
  516. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  517. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  518. };
  519. EnumKeyContext* enumKey();
  520. class EnumeratorListDefinitionContext : public antlr4::ParserRuleContext {
  521. public:
  522. azslParser::EnumeratorDeclaratorContext *enumeratorDeclaratorContext = nullptr;
  523. std::vector<EnumeratorDeclaratorContext *> Enumerators;
  524. EnumeratorListDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  525. virtual size_t getRuleIndex() const override;
  526. std::vector<EnumeratorDeclaratorContext *> enumeratorDeclarator();
  527. EnumeratorDeclaratorContext* enumeratorDeclarator(size_t i);
  528. std::vector<antlr4::tree::TerminalNode *> Comma();
  529. antlr4::tree::TerminalNode* Comma(size_t i);
  530. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  531. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  532. };
  533. EnumeratorListDefinitionContext* enumeratorListDefinition();
  534. class EnumeratorDeclaratorContext : public antlr4::ParserRuleContext {
  535. public:
  536. antlr4::Token *Name = nullptr;
  537. azslParser::ExpressionContext *Value = nullptr;
  538. EnumeratorDeclaratorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  539. virtual size_t getRuleIndex() const override;
  540. antlr4::tree::TerminalNode *Identifier();
  541. antlr4::tree::TerminalNode *Assign();
  542. ExpressionContext *expression();
  543. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  544. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  545. };
  546. EnumeratorDeclaratorContext* enumeratorDeclarator();
  547. class AnyStructuredTypeDefinitionContext : public antlr4::ParserRuleContext {
  548. public:
  549. AnyStructuredTypeDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  550. virtual size_t getRuleIndex() const override;
  551. ClassDefinitionContext *classDefinition();
  552. InterfaceDefinitionContext *interfaceDefinition();
  553. StructDefinitionContext *structDefinition();
  554. EnumDefinitionContext *enumDefinition();
  555. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  556. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  557. };
  558. AnyStructuredTypeDefinitionContext* anyStructuredTypeDefinition();
  559. class InterfaceDefinitionStatementContext : public antlr4::ParserRuleContext {
  560. public:
  561. InterfaceDefinitionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  562. virtual size_t getRuleIndex() const override;
  563. InterfaceDefinitionContext *interfaceDefinition();
  564. antlr4::tree::TerminalNode *Semi();
  565. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  566. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  567. };
  568. InterfaceDefinitionStatementContext* interfaceDefinitionStatement();
  569. class InterfaceDefinitionContext : public antlr4::ParserRuleContext {
  570. public:
  571. antlr4::Token *Name = nullptr;
  572. InterfaceDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  573. virtual size_t getRuleIndex() const override;
  574. antlr4::tree::TerminalNode *Interface();
  575. antlr4::tree::TerminalNode *LeftBrace();
  576. antlr4::tree::TerminalNode *RightBrace();
  577. antlr4::tree::TerminalNode *Identifier();
  578. std::vector<InterfaceMemberDeclarationContext *> interfaceMemberDeclaration();
  579. InterfaceMemberDeclarationContext* interfaceMemberDeclaration(size_t i);
  580. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  581. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  582. };
  583. InterfaceDefinitionContext* interfaceDefinition();
  584. class InterfaceMemberDeclarationContext : public antlr4::ParserRuleContext {
  585. public:
  586. InterfaceMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  587. virtual size_t getRuleIndex() const override;
  588. AttributedFunctionDeclarationContext *attributedFunctionDeclaration();
  589. AssociatedTypeDeclarationContext *associatedTypeDeclaration();
  590. AnyStructuredTypeDefinitionStatementContext *anyStructuredTypeDefinitionStatement();
  591. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  592. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  593. };
  594. InterfaceMemberDeclarationContext* interfaceMemberDeclaration();
  595. class ConstantBufferTemplatedContext : public antlr4::ParserRuleContext {
  596. public:
  597. antlr4::Token *CBCoreType = nullptr;
  598. azslParser::TypeContext *GenericTypeName = nullptr;
  599. ConstantBufferTemplatedContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  600. virtual size_t getRuleIndex() const override;
  601. antlr4::tree::TerminalNode *Less();
  602. antlr4::tree::TerminalNode *Greater();
  603. TypeContext *type();
  604. antlr4::tree::TerminalNode *ConstantBuffer();
  605. antlr4::tree::TerminalNode *ConstantBufferCamel();
  606. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  607. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  608. };
  609. ConstantBufferTemplatedContext* constantBufferTemplated();
  610. class VariableDeclarationStatementContext : public antlr4::ParserRuleContext {
  611. public:
  612. VariableDeclarationStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  613. virtual size_t getRuleIndex() const override;
  614. VariableDeclarationContext *variableDeclaration();
  615. antlr4::tree::TerminalNode *Semi();
  616. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  617. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  618. };
  619. VariableDeclarationStatementContext* variableDeclarationStatement();
  620. class FunctionParamsContext : public antlr4::ParserRuleContext {
  621. public:
  622. FunctionParamsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  623. virtual size_t getRuleIndex() const override;
  624. antlr4::tree::TerminalNode *Void();
  625. std::vector<FunctionParamContext *> functionParam();
  626. FunctionParamContext* functionParam(size_t i);
  627. std::vector<antlr4::tree::TerminalNode *> Comma();
  628. antlr4::tree::TerminalNode* Comma(size_t i);
  629. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  630. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  631. };
  632. FunctionParamsContext* functionParams();
  633. class FunctionParamContext : public antlr4::ParserRuleContext {
  634. public:
  635. antlr4::Token *Name = nullptr;
  636. FunctionParamContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  637. virtual size_t getRuleIndex() const override;
  638. TypeContext *type();
  639. UnnamedVariableDeclaratorContext *unnamedVariableDeclarator();
  640. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  641. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  642. antlr4::tree::TerminalNode *Identifier();
  643. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  644. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  645. };
  646. FunctionParamContext* functionParam();
  647. class HlslSemanticContext : public antlr4::ParserRuleContext {
  648. public:
  649. azslParser::HlslSemanticNameContext *Name = nullptr;
  650. HlslSemanticContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  651. virtual size_t getRuleIndex() const override;
  652. antlr4::tree::TerminalNode *Colon();
  653. HlslSemanticNameContext *hlslSemanticName();
  654. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  655. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  656. };
  657. HlslSemanticContext* hlslSemantic();
  658. class HlslSemanticNameContext : public antlr4::ParserRuleContext {
  659. public:
  660. HlslSemanticNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  661. virtual size_t getRuleIndex() const override;
  662. antlr4::tree::TerminalNode *HLSLSemanticStream();
  663. antlr4::tree::TerminalNode *HLSLSemanticSystem();
  664. antlr4::tree::TerminalNode *Identifier();
  665. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  666. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  667. };
  668. HlslSemanticNameContext* hlslSemanticName();
  669. class AttributeArgumentsContext : public antlr4::ParserRuleContext {
  670. public:
  671. AttributeArgumentsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  672. virtual size_t getRuleIndex() const override;
  673. std::vector<LiteralContext *> literal();
  674. LiteralContext* literal(size_t i);
  675. std::vector<antlr4::tree::TerminalNode *> Comma();
  676. antlr4::tree::TerminalNode* Comma(size_t i);
  677. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  678. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  679. };
  680. AttributeArgumentsContext* attributeArguments();
  681. class AttributeArgumentListContext : public antlr4::ParserRuleContext {
  682. public:
  683. AttributeArgumentListContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  684. virtual size_t getRuleIndex() const override;
  685. antlr4::tree::TerminalNode *LeftParen();
  686. AttributeArgumentsContext *attributeArguments();
  687. antlr4::tree::TerminalNode *RightParen();
  688. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  689. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  690. };
  691. AttributeArgumentListContext* attributeArgumentList();
  692. class AttributeContext : public antlr4::ParserRuleContext {
  693. public:
  694. AttributeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  695. AttributeContext() = default;
  696. void copyFrom(AttributeContext *context);
  697. using antlr4::ParserRuleContext::copyFrom;
  698. virtual size_t getRuleIndex() const override;
  699. };
  700. class GlobalAttributeContext : public AttributeContext {
  701. public:
  702. GlobalAttributeContext(AttributeContext *ctx);
  703. antlr4::Token *Namespace = nullptr;
  704. antlr4::Token *Name = nullptr;
  705. antlr4::tree::TerminalNode *Global();
  706. std::vector<antlr4::tree::TerminalNode *> ColonColon();
  707. antlr4::tree::TerminalNode* ColonColon(size_t i);
  708. std::vector<antlr4::tree::TerminalNode *> Identifier();
  709. antlr4::tree::TerminalNode* Identifier(size_t i);
  710. AttributeArgumentListContext *attributeArgumentList();
  711. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  712. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  713. };
  714. class AttachedAttributeContext : public AttributeContext {
  715. public:
  716. AttachedAttributeContext(AttributeContext *ctx);
  717. antlr4::Token *Namespace = nullptr;
  718. antlr4::Token *Name = nullptr;
  719. std::vector<antlr4::tree::TerminalNode *> Identifier();
  720. antlr4::tree::TerminalNode* Identifier(size_t i);
  721. antlr4::tree::TerminalNode *ColonColon();
  722. AttributeArgumentListContext *attributeArgumentList();
  723. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  724. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  725. };
  726. AttributeContext* attribute();
  727. class AttributeSpecifierContext : public antlr4::ParserRuleContext {
  728. public:
  729. AttributeSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  730. virtual size_t getRuleIndex() const override;
  731. antlr4::tree::TerminalNode *LeftBracket();
  732. AttributeContext *attribute();
  733. antlr4::tree::TerminalNode *RightBracket();
  734. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  735. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  736. };
  737. AttributeSpecifierContext* attributeSpecifier();
  738. class AttributeSpecifierSequenceContext : public antlr4::ParserRuleContext {
  739. public:
  740. azslParser::AttributeContext *attributeContext = nullptr;
  741. std::vector<AttributeContext *> Attributes;
  742. AttributeSpecifierSequenceContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  743. virtual size_t getRuleIndex() const override;
  744. antlr4::tree::TerminalNode *LeftDoubleBracket();
  745. std::vector<antlr4::tree::TerminalNode *> RightBracket();
  746. antlr4::tree::TerminalNode* RightBracket(size_t i);
  747. std::vector<AttributeContext *> attribute();
  748. AttributeContext* attribute(size_t i);
  749. std::vector<antlr4::tree::TerminalNode *> Comma();
  750. antlr4::tree::TerminalNode* Comma(size_t i);
  751. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  752. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  753. };
  754. AttributeSpecifierSequenceContext* attributeSpecifierSequence();
  755. class AttributeSpecifierAnyContext : public antlr4::ParserRuleContext {
  756. public:
  757. AttributeSpecifierAnyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  758. virtual size_t getRuleIndex() const override;
  759. AttributeSpecifierContext *attributeSpecifier();
  760. AttributeSpecifierSequenceContext *attributeSpecifierSequence();
  761. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  762. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  763. };
  764. AttributeSpecifierAnyContext* attributeSpecifierAny();
  765. class BlockContext : public antlr4::ParserRuleContext {
  766. public:
  767. azslParser::StatementContext *statementContext = nullptr;
  768. std::vector<StatementContext *> Stmts;
  769. BlockContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  770. virtual size_t getRuleIndex() const override;
  771. antlr4::tree::TerminalNode *LeftBrace();
  772. antlr4::tree::TerminalNode *RightBrace();
  773. std::vector<StatementContext *> statement();
  774. StatementContext* statement(size_t i);
  775. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  776. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  777. };
  778. BlockContext* block();
  779. class StatementContext : public antlr4::ParserRuleContext {
  780. public:
  781. StatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  782. virtual size_t getRuleIndex() const override;
  783. VariableDeclarationStatementContext *variableDeclarationStatement();
  784. EmbeddedStatementContext *embeddedStatement();
  785. AnyStructuredTypeDefinitionStatementContext *anyStructuredTypeDefinitionStatement();
  786. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  787. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  788. };
  789. StatementContext* statement();
  790. class ForInitializerContext : public antlr4::ParserRuleContext {
  791. public:
  792. ForInitializerContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  793. virtual size_t getRuleIndex() const override;
  794. VariableDeclarationContext *variableDeclaration();
  795. ExpressionExtContext *expressionExt();
  796. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  797. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  798. };
  799. ForInitializerContext* forInitializer();
  800. class SwitchLabelContext : public antlr4::ParserRuleContext {
  801. public:
  802. SwitchLabelContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  803. SwitchLabelContext() = default;
  804. void copyFrom(SwitchLabelContext *context);
  805. using antlr4::ParserRuleContext::copyFrom;
  806. virtual size_t getRuleIndex() const override;
  807. };
  808. class DefaultSwitchLabelContext : public SwitchLabelContext {
  809. public:
  810. DefaultSwitchLabelContext(SwitchLabelContext *ctx);
  811. antlr4::tree::TerminalNode *Default();
  812. antlr4::tree::TerminalNode *Colon();
  813. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  814. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  815. };
  816. class CaseSwitchLabelContext : public SwitchLabelContext {
  817. public:
  818. CaseSwitchLabelContext(SwitchLabelContext *ctx);
  819. azslParser::ExpressionContext *Expr = nullptr;
  820. antlr4::tree::TerminalNode *Case();
  821. antlr4::tree::TerminalNode *Colon();
  822. ExpressionContext *expression();
  823. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  824. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  825. };
  826. SwitchLabelContext* switchLabel();
  827. class SwitchSectionContext : public antlr4::ParserRuleContext {
  828. public:
  829. SwitchSectionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  830. virtual size_t getRuleIndex() const override;
  831. std::vector<SwitchLabelContext *> switchLabel();
  832. SwitchLabelContext* switchLabel(size_t i);
  833. std::vector<StatementContext *> statement();
  834. StatementContext* statement(size_t i);
  835. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  836. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  837. };
  838. SwitchSectionContext* switchSection();
  839. class SwitchBlockContext : public antlr4::ParserRuleContext {
  840. public:
  841. SwitchBlockContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  842. virtual size_t getRuleIndex() const override;
  843. antlr4::tree::TerminalNode *LeftBrace();
  844. antlr4::tree::TerminalNode *RightBrace();
  845. std::vector<SwitchSectionContext *> switchSection();
  846. SwitchSectionContext* switchSection(size_t i);
  847. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  848. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  849. };
  850. SwitchBlockContext* switchBlock();
  851. class EmbeddedStatementContext : public antlr4::ParserRuleContext {
  852. public:
  853. EmbeddedStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  854. EmbeddedStatementContext() = default;
  855. void copyFrom(EmbeddedStatementContext *context);
  856. using antlr4::ParserRuleContext::copyFrom;
  857. virtual size_t getRuleIndex() const override;
  858. };
  859. class DoStatementContext : public EmbeddedStatementContext {
  860. public:
  861. DoStatementContext(EmbeddedStatementContext *ctx);
  862. azslParser::ExpressionExtContext *Condition = nullptr;
  863. antlr4::tree::TerminalNode *Do();
  864. EmbeddedStatementContext *embeddedStatement();
  865. antlr4::tree::TerminalNode *While();
  866. antlr4::tree::TerminalNode *LeftParen();
  867. antlr4::tree::TerminalNode *RightParen();
  868. antlr4::tree::TerminalNode *Semi();
  869. ExpressionExtContext *expressionExt();
  870. std::vector<AttributeSpecifierContext *> attributeSpecifier();
  871. AttributeSpecifierContext* attributeSpecifier(size_t i);
  872. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  873. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  874. };
  875. class EmptyStatementContext : public EmbeddedStatementContext {
  876. public:
  877. EmptyStatementContext(EmbeddedStatementContext *ctx);
  878. antlr4::tree::TerminalNode *Semi();
  879. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  880. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  881. };
  882. class BlockStatementContext : public EmbeddedStatementContext {
  883. public:
  884. BlockStatementContext(EmbeddedStatementContext *ctx);
  885. BlockContext *block();
  886. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  887. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  888. };
  889. class WhileStatementContext : public EmbeddedStatementContext {
  890. public:
  891. WhileStatementContext(EmbeddedStatementContext *ctx);
  892. azslParser::ExpressionExtContext *condition = nullptr;
  893. antlr4::tree::TerminalNode *While();
  894. antlr4::tree::TerminalNode *LeftParen();
  895. antlr4::tree::TerminalNode *RightParen();
  896. EmbeddedStatementContext *embeddedStatement();
  897. ExpressionExtContext *expressionExt();
  898. std::vector<AttributeSpecifierContext *> attributeSpecifier();
  899. AttributeSpecifierContext* attributeSpecifier(size_t i);
  900. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  901. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  902. };
  903. class ExtenstionStatementContext : public EmbeddedStatementContext {
  904. public:
  905. ExtenstionStatementContext(EmbeddedStatementContext *ctx);
  906. CompilerExtensionStatementContext *compilerExtensionStatement();
  907. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  908. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  909. };
  910. class BreakStatementContext : public EmbeddedStatementContext {
  911. public:
  912. BreakStatementContext(EmbeddedStatementContext *ctx);
  913. antlr4::tree::TerminalNode *Break();
  914. antlr4::tree::TerminalNode *Semi();
  915. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  916. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  917. };
  918. class IfStatementContext : public EmbeddedStatementContext {
  919. public:
  920. IfStatementContext(EmbeddedStatementContext *ctx);
  921. azslParser::ExpressionExtContext *Condition = nullptr;
  922. azslParser::EmbeddedStatementContext *Stmt = nullptr;
  923. antlr4::tree::TerminalNode *If();
  924. antlr4::tree::TerminalNode *LeftParen();
  925. antlr4::tree::TerminalNode *RightParen();
  926. ExpressionExtContext *expressionExt();
  927. EmbeddedStatementContext *embeddedStatement();
  928. std::vector<AttributeSpecifierContext *> attributeSpecifier();
  929. AttributeSpecifierContext* attributeSpecifier(size_t i);
  930. ElseClauseContext *elseClause();
  931. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  932. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  933. };
  934. class SwitchStatementContext : public EmbeddedStatementContext {
  935. public:
  936. SwitchStatementContext(EmbeddedStatementContext *ctx);
  937. azslParser::ExpressionExtContext *Expr = nullptr;
  938. antlr4::tree::TerminalNode *Switch();
  939. antlr4::tree::TerminalNode *LeftParen();
  940. antlr4::tree::TerminalNode *RightParen();
  941. SwitchBlockContext *switchBlock();
  942. ExpressionExtContext *expressionExt();
  943. std::vector<AttributeSpecifierContext *> attributeSpecifier();
  944. AttributeSpecifierContext* attributeSpecifier(size_t i);
  945. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  946. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  947. };
  948. class ExpressionStatementContext : public EmbeddedStatementContext {
  949. public:
  950. ExpressionStatementContext(EmbeddedStatementContext *ctx);
  951. azslParser::ExpressionExtContext *Expr = nullptr;
  952. antlr4::tree::TerminalNode *Semi();
  953. ExpressionExtContext *expressionExt();
  954. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  955. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  956. };
  957. class ReturnStatementContext : public EmbeddedStatementContext {
  958. public:
  959. ReturnStatementContext(EmbeddedStatementContext *ctx);
  960. azslParser::ExpressionExtContext *Expr = nullptr;
  961. antlr4::tree::TerminalNode *Return();
  962. antlr4::tree::TerminalNode *Semi();
  963. ExpressionExtContext *expressionExt();
  964. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  965. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  966. };
  967. class DiscardStatementContext : public EmbeddedStatementContext {
  968. public:
  969. DiscardStatementContext(EmbeddedStatementContext *ctx);
  970. antlr4::tree::TerminalNode *Discard();
  971. antlr4::tree::TerminalNode *Semi();
  972. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  973. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  974. };
  975. class ForStatementContext : public EmbeddedStatementContext {
  976. public:
  977. ForStatementContext(EmbeddedStatementContext *ctx);
  978. azslParser::ExpressionExtContext *Condition = nullptr;
  979. azslParser::ExpressionExtContext *iterator = nullptr;
  980. antlr4::tree::TerminalNode *For();
  981. antlr4::tree::TerminalNode *LeftParen();
  982. std::vector<antlr4::tree::TerminalNode *> Semi();
  983. antlr4::tree::TerminalNode* Semi(size_t i);
  984. antlr4::tree::TerminalNode *RightParen();
  985. EmbeddedStatementContext *embeddedStatement();
  986. std::vector<AttributeSpecifierContext *> attributeSpecifier();
  987. AttributeSpecifierContext* attributeSpecifier(size_t i);
  988. ForInitializerContext *forInitializer();
  989. std::vector<ExpressionExtContext *> expressionExt();
  990. ExpressionExtContext* expressionExt(size_t i);
  991. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  992. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  993. };
  994. class TypeAliasingDefinitionStatementLabelContext : public EmbeddedStatementContext {
  995. public:
  996. TypeAliasingDefinitionStatementLabelContext(EmbeddedStatementContext *ctx);
  997. TypeAliasingDefinitionStatementContext *typeAliasingDefinitionStatement();
  998. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  999. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1000. };
  1001. class ContinueStatementContext : public EmbeddedStatementContext {
  1002. public:
  1003. ContinueStatementContext(EmbeddedStatementContext *ctx);
  1004. antlr4::tree::TerminalNode *Continue();
  1005. antlr4::tree::TerminalNode *Semi();
  1006. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1007. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1008. };
  1009. EmbeddedStatementContext* embeddedStatement();
  1010. class ElseClauseContext : public antlr4::ParserRuleContext {
  1011. public:
  1012. azslParser::EmbeddedStatementContext *Stmt = nullptr;
  1013. ElseClauseContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1014. virtual size_t getRuleIndex() const override;
  1015. antlr4::tree::TerminalNode *Else();
  1016. EmbeddedStatementContext *embeddedStatement();
  1017. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1018. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1019. };
  1020. ElseClauseContext* elseClause();
  1021. class ExpressionContext : public antlr4::ParserRuleContext {
  1022. public:
  1023. ExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1024. ExpressionContext() = default;
  1025. void copyFrom(ExpressionContext *context);
  1026. using antlr4::ParserRuleContext::copyFrom;
  1027. virtual size_t getRuleIndex() const override;
  1028. };
  1029. class ParenthesizedExpressionContext : public ExpressionContext {
  1030. public:
  1031. ParenthesizedExpressionContext(ExpressionContext *ctx);
  1032. azslParser::ExpressionExtContext *Expr = nullptr;
  1033. antlr4::tree::TerminalNode *LeftParen();
  1034. antlr4::tree::TerminalNode *RightParen();
  1035. ExpressionExtContext *expressionExt();
  1036. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1037. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1038. };
  1039. class MemberAccessExpressionContext : public ExpressionContext {
  1040. public:
  1041. MemberAccessExpressionContext(ExpressionContext *ctx);
  1042. azslParser::ExpressionContext *LHSExpr = nullptr;
  1043. antlr4::Token *DotToken = nullptr;
  1044. azslParser::IdExpressionContext *Member = nullptr;
  1045. ExpressionContext *expression();
  1046. antlr4::tree::TerminalNode *Dot();
  1047. IdExpressionContext *idExpression();
  1048. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1049. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1050. };
  1051. class PrefixUnaryExpressionContext : public ExpressionContext {
  1052. public:
  1053. PrefixUnaryExpressionContext(ExpressionContext *ctx);
  1054. azslParser::PrefixUnaryOperatorContext *Operator = nullptr;
  1055. azslParser::ExpressionContext *Expr = nullptr;
  1056. PrefixUnaryOperatorContext *prefixUnaryOperator();
  1057. ExpressionContext *expression();
  1058. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1059. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1060. };
  1061. class LiteralExpressionContext : public ExpressionContext {
  1062. public:
  1063. LiteralExpressionContext(ExpressionContext *ctx);
  1064. LiteralContext *literal();
  1065. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1066. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1067. };
  1068. class ConditionalExpressionContext : public ExpressionContext {
  1069. public:
  1070. ConditionalExpressionContext(ExpressionContext *ctx);
  1071. azslParser::ExpressionContext *Condition = nullptr;
  1072. azslParser::ExpressionExtContext *TrueExpr = nullptr;
  1073. azslParser::ExpressionExtContext *FalseExpr = nullptr;
  1074. antlr4::tree::TerminalNode *Question();
  1075. antlr4::tree::TerminalNode *Colon();
  1076. ExpressionContext *expression();
  1077. std::vector<ExpressionExtContext *> expressionExt();
  1078. ExpressionExtContext* expressionExt(size_t i);
  1079. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1080. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1081. };
  1082. class PostfixUnaryExpressionContext : public ExpressionContext {
  1083. public:
  1084. PostfixUnaryExpressionContext(ExpressionContext *ctx);
  1085. azslParser::ExpressionContext *Expr = nullptr;
  1086. azslParser::PostfixUnaryOperatorContext *Operator = nullptr;
  1087. ExpressionContext *expression();
  1088. PostfixUnaryOperatorContext *postfixUnaryOperator();
  1089. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1090. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1091. };
  1092. class NumericConstructorExpressionContext : public ExpressionContext {
  1093. public:
  1094. NumericConstructorExpressionContext(ExpressionContext *ctx);
  1095. ScalarOrVectorOrMatrixTypeContext *scalarOrVectorOrMatrixType();
  1096. ArgumentListContext *argumentList();
  1097. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1098. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1099. };
  1100. class FunctionCallExpressionContext : public ExpressionContext {
  1101. public:
  1102. FunctionCallExpressionContext(ExpressionContext *ctx);
  1103. azslParser::ExpressionContext *Expr = nullptr;
  1104. ArgumentListContext *argumentList();
  1105. ExpressionContext *expression();
  1106. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1107. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1108. };
  1109. class IdentifierExpressionContext : public ExpressionContext {
  1110. public:
  1111. IdentifierExpressionContext(ExpressionContext *ctx);
  1112. IdExpressionContext *idExpression();
  1113. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1114. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1115. };
  1116. class BinaryExpressionContext : public ExpressionContext {
  1117. public:
  1118. BinaryExpressionContext(ExpressionContext *ctx);
  1119. azslParser::ExpressionContext *Left = nullptr;
  1120. azslParser::BinaryOperatorContext *Operator = nullptr;
  1121. azslParser::ExpressionContext *Right = nullptr;
  1122. std::vector<ExpressionContext *> expression();
  1123. ExpressionContext* expression(size_t i);
  1124. BinaryOperatorContext *binaryOperator();
  1125. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1126. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1127. };
  1128. class AssignmentExpressionContext : public ExpressionContext {
  1129. public:
  1130. AssignmentExpressionContext(ExpressionContext *ctx);
  1131. azslParser::ExpressionContext *Left = nullptr;
  1132. azslParser::AssignmentOperatorContext *Operator = nullptr;
  1133. azslParser::ExpressionExtContext *Right = nullptr;
  1134. ExpressionContext *expression();
  1135. AssignmentOperatorContext *assignmentOperator();
  1136. ExpressionExtContext *expressionExt();
  1137. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1138. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1139. };
  1140. class CastExpressionContext : public ExpressionContext {
  1141. public:
  1142. CastExpressionContext(ExpressionContext *ctx);
  1143. azslParser::ArrayRankSpecifierContext *arrayRankSpecifierContext = nullptr;
  1144. std::vector<ArrayRankSpecifierContext *> ArrayRankSpecifiers;
  1145. azslParser::ExpressionContext *Expr = nullptr;
  1146. antlr4::tree::TerminalNode *LeftParen();
  1147. TypeContext *type();
  1148. antlr4::tree::TerminalNode *RightParen();
  1149. ExpressionContext *expression();
  1150. std::vector<ArrayRankSpecifierContext *> arrayRankSpecifier();
  1151. ArrayRankSpecifierContext* arrayRankSpecifier(size_t i);
  1152. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1153. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1154. };
  1155. class ArrayAccessExpressionContext : public ExpressionContext {
  1156. public:
  1157. ArrayAccessExpressionContext(ExpressionContext *ctx);
  1158. azslParser::ExpressionContext *Expr = nullptr;
  1159. azslParser::ExpressionContext *Index = nullptr;
  1160. antlr4::tree::TerminalNode *LeftBracket();
  1161. antlr4::tree::TerminalNode *RightBracket();
  1162. std::vector<ExpressionContext *> expression();
  1163. ExpressionContext* expression(size_t i);
  1164. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1165. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1166. };
  1167. ExpressionContext* expression();
  1168. ExpressionContext* expression(int precedence);
  1169. class ExpressionExtContext : public antlr4::ParserRuleContext {
  1170. public:
  1171. ExpressionExtContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1172. ExpressionExtContext() = default;
  1173. void copyFrom(ExpressionExtContext *context);
  1174. using antlr4::ParserRuleContext::copyFrom;
  1175. virtual size_t getRuleIndex() const override;
  1176. };
  1177. class OtherExpressionContext : public ExpressionExtContext {
  1178. public:
  1179. OtherExpressionContext(ExpressionExtContext *ctx);
  1180. azslParser::ExpressionContext *Expr = nullptr;
  1181. ExpressionContext *expression();
  1182. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1183. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1184. };
  1185. class CommaExpressionContext : public ExpressionExtContext {
  1186. public:
  1187. CommaExpressionContext(ExpressionExtContext *ctx);
  1188. azslParser::ExpressionExtContext *Left = nullptr;
  1189. antlr4::Token *Operator = nullptr;
  1190. azslParser::ExpressionContext *Right = nullptr;
  1191. ExpressionExtContext *expressionExt();
  1192. antlr4::tree::TerminalNode *Comma();
  1193. ExpressionContext *expression();
  1194. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1195. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1196. };
  1197. ExpressionExtContext* expressionExt();
  1198. ExpressionExtContext* expressionExt(int precedence);
  1199. class PostfixUnaryOperatorContext : public antlr4::ParserRuleContext {
  1200. public:
  1201. PostfixUnaryOperatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1202. virtual size_t getRuleIndex() const override;
  1203. antlr4::tree::TerminalNode *PlusPlus();
  1204. antlr4::tree::TerminalNode *MinusMinus();
  1205. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1206. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1207. };
  1208. PostfixUnaryOperatorContext* postfixUnaryOperator();
  1209. class PrefixUnaryOperatorContext : public antlr4::ParserRuleContext {
  1210. public:
  1211. PrefixUnaryOperatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1212. virtual size_t getRuleIndex() const override;
  1213. antlr4::tree::TerminalNode *Plus();
  1214. antlr4::tree::TerminalNode *Minus();
  1215. antlr4::tree::TerminalNode *Not();
  1216. antlr4::tree::TerminalNode *Tilde();
  1217. antlr4::tree::TerminalNode *PlusPlus();
  1218. antlr4::tree::TerminalNode *MinusMinus();
  1219. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1220. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1221. };
  1222. PrefixUnaryOperatorContext* prefixUnaryOperator();
  1223. class BinaryOperatorContext : public antlr4::ParserRuleContext {
  1224. public:
  1225. BinaryOperatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1226. virtual size_t getRuleIndex() const override;
  1227. antlr4::tree::TerminalNode *Star();
  1228. antlr4::tree::TerminalNode *Div();
  1229. antlr4::tree::TerminalNode *Mod();
  1230. antlr4::tree::TerminalNode *Plus();
  1231. antlr4::tree::TerminalNode *Minus();
  1232. antlr4::tree::TerminalNode *LeftShift();
  1233. antlr4::tree::TerminalNode *RightShift();
  1234. antlr4::tree::TerminalNode *Less();
  1235. antlr4::tree::TerminalNode *Greater();
  1236. antlr4::tree::TerminalNode *LessEqual();
  1237. antlr4::tree::TerminalNode *GreaterEqual();
  1238. antlr4::tree::TerminalNode *Equal();
  1239. antlr4::tree::TerminalNode *NotEqual();
  1240. antlr4::tree::TerminalNode *And();
  1241. antlr4::tree::TerminalNode *Caret();
  1242. antlr4::tree::TerminalNode *Or();
  1243. antlr4::tree::TerminalNode *AndAnd();
  1244. antlr4::tree::TerminalNode *OrOr();
  1245. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1246. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1247. };
  1248. BinaryOperatorContext* binaryOperator();
  1249. class AssignmentOperatorContext : public antlr4::ParserRuleContext {
  1250. public:
  1251. AssignmentOperatorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1252. virtual size_t getRuleIndex() const override;
  1253. antlr4::tree::TerminalNode *Assign();
  1254. antlr4::tree::TerminalNode *StarAssign();
  1255. antlr4::tree::TerminalNode *DivAssign();
  1256. antlr4::tree::TerminalNode *ModAssign();
  1257. antlr4::tree::TerminalNode *PlusAssign();
  1258. antlr4::tree::TerminalNode *MinusAssign();
  1259. antlr4::tree::TerminalNode *LeftShiftAssign();
  1260. antlr4::tree::TerminalNode *RightShiftAssign();
  1261. antlr4::tree::TerminalNode *AndAssign();
  1262. antlr4::tree::TerminalNode *XorAssign();
  1263. antlr4::tree::TerminalNode *OrAssign();
  1264. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1265. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1266. };
  1267. AssignmentOperatorContext* assignmentOperator();
  1268. class ArgumentListContext : public antlr4::ParserRuleContext {
  1269. public:
  1270. ArgumentListContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1271. virtual size_t getRuleIndex() const override;
  1272. antlr4::tree::TerminalNode *LeftParen();
  1273. antlr4::tree::TerminalNode *RightParen();
  1274. ArgumentsContext *arguments();
  1275. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1276. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1277. };
  1278. ArgumentListContext* argumentList();
  1279. class ArgumentsContext : public antlr4::ParserRuleContext {
  1280. public:
  1281. ArgumentsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1282. virtual size_t getRuleIndex() const override;
  1283. std::vector<ExpressionContext *> expression();
  1284. ExpressionContext* expression(size_t i);
  1285. std::vector<antlr4::tree::TerminalNode *> Comma();
  1286. antlr4::tree::TerminalNode* Comma(size_t i);
  1287. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1288. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1289. };
  1290. ArgumentsContext* arguments();
  1291. class VariableDeclarationContext : public antlr4::ParserRuleContext {
  1292. public:
  1293. VariableDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1294. virtual size_t getRuleIndex() const override;
  1295. TypeContext *type();
  1296. VariableDeclaratorsContext *variableDeclarators();
  1297. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  1298. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  1299. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1300. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1301. };
  1302. VariableDeclarationContext* variableDeclaration();
  1303. class VariableDeclaratorsContext : public antlr4::ParserRuleContext {
  1304. public:
  1305. azslParser::NamedVariableDeclaratorContext *namedVariableDeclaratorContext = nullptr;
  1306. std::vector<NamedVariableDeclaratorContext *> VarDecls;
  1307. VariableDeclaratorsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1308. virtual size_t getRuleIndex() const override;
  1309. std::vector<NamedVariableDeclaratorContext *> namedVariableDeclarator();
  1310. NamedVariableDeclaratorContext* namedVariableDeclarator(size_t i);
  1311. std::vector<antlr4::tree::TerminalNode *> Comma();
  1312. antlr4::tree::TerminalNode* Comma(size_t i);
  1313. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1314. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1315. };
  1316. VariableDeclaratorsContext* variableDeclarators();
  1317. class UnnamedVariableDeclaratorContext : public antlr4::ParserRuleContext {
  1318. public:
  1319. azslParser::ArrayRankSpecifierContext *arrayRankSpecifierContext = nullptr;
  1320. std::vector<ArrayRankSpecifierContext *> ArrayRankSpecifiers;
  1321. azslParser::HlslSemanticContext *SemanticOpt = nullptr;
  1322. azslParser::RegisterAllocationContext *RegisterAllocation = nullptr;
  1323. UnnamedVariableDeclaratorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1324. virtual size_t getRuleIndex() const override;
  1325. PackOffsetNodeContext *packOffsetNode();
  1326. VariableInitializerContext *variableInitializer();
  1327. std::vector<ArrayRankSpecifierContext *> arrayRankSpecifier();
  1328. ArrayRankSpecifierContext* arrayRankSpecifier(size_t i);
  1329. HlslSemanticContext *hlslSemantic();
  1330. RegisterAllocationContext *registerAllocation();
  1331. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1332. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1333. };
  1334. UnnamedVariableDeclaratorContext* unnamedVariableDeclarator();
  1335. class NamedVariableDeclaratorContext : public antlr4::ParserRuleContext {
  1336. public:
  1337. antlr4::Token *Name = nullptr;
  1338. NamedVariableDeclaratorContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1339. virtual size_t getRuleIndex() const override;
  1340. UnnamedVariableDeclaratorContext *unnamedVariableDeclarator();
  1341. antlr4::tree::TerminalNode *Identifier();
  1342. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1343. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1344. };
  1345. NamedVariableDeclaratorContext* namedVariableDeclarator();
  1346. class VariableInitializerContext : public antlr4::ParserRuleContext {
  1347. public:
  1348. VariableInitializerContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1349. virtual size_t getRuleIndex() const override;
  1350. antlr4::tree::TerminalNode *Assign();
  1351. StandardVariableInitializerContext *standardVariableInitializer();
  1352. SamplerBodyDeclarationContext *samplerBodyDeclaration();
  1353. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1354. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1355. };
  1356. VariableInitializerContext* variableInitializer();
  1357. class StandardVariableInitializerContext : public antlr4::ParserRuleContext {
  1358. public:
  1359. azslParser::ExpressionContext *Expr = nullptr;
  1360. StandardVariableInitializerContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1361. virtual size_t getRuleIndex() const override;
  1362. antlr4::tree::TerminalNode *LeftBrace();
  1363. ArrayElementInitializersContext *arrayElementInitializers();
  1364. antlr4::tree::TerminalNode *RightBrace();
  1365. ExpressionContext *expression();
  1366. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1367. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1368. };
  1369. StandardVariableInitializerContext* standardVariableInitializer();
  1370. class ArrayElementInitializersContext : public antlr4::ParserRuleContext {
  1371. public:
  1372. ArrayElementInitializersContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1373. virtual size_t getRuleIndex() const override;
  1374. std::vector<StandardVariableInitializerContext *> standardVariableInitializer();
  1375. StandardVariableInitializerContext* standardVariableInitializer(size_t i);
  1376. std::vector<antlr4::tree::TerminalNode *> Comma();
  1377. antlr4::tree::TerminalNode* Comma(size_t i);
  1378. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1379. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1380. };
  1381. ArrayElementInitializersContext* arrayElementInitializers();
  1382. class ArrayRankSpecifierContext : public antlr4::ParserRuleContext {
  1383. public:
  1384. azslParser::ExpressionContext *Dimension = nullptr;
  1385. ArrayRankSpecifierContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1386. virtual size_t getRuleIndex() const override;
  1387. antlr4::tree::TerminalNode *LeftBracket();
  1388. antlr4::tree::TerminalNode *RightBracket();
  1389. ExpressionContext *expression();
  1390. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1391. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1392. };
  1393. ArrayRankSpecifierContext* arrayRankSpecifier();
  1394. class PackOffsetNodeContext : public antlr4::ParserRuleContext {
  1395. public:
  1396. antlr4::Token *PackoffsetKeyword = nullptr;
  1397. antlr4::Token *PackOffsetRegister = nullptr;
  1398. antlr4::Token *PackOffsetComponent = nullptr;
  1399. PackOffsetNodeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1400. virtual size_t getRuleIndex() const override;
  1401. antlr4::tree::TerminalNode *Colon();
  1402. antlr4::tree::TerminalNode *LeftParen();
  1403. antlr4::tree::TerminalNode *RightParen();
  1404. antlr4::tree::TerminalNode *Packoffset();
  1405. std::vector<antlr4::tree::TerminalNode *> Identifier();
  1406. antlr4::tree::TerminalNode* Identifier(size_t i);
  1407. antlr4::tree::TerminalNode *Dot();
  1408. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1409. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1410. };
  1411. PackOffsetNodeContext* packOffsetNode();
  1412. class StorageFlagsContext : public antlr4::ParserRuleContext {
  1413. public:
  1414. StorageFlagsContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1415. virtual size_t getRuleIndex() const override;
  1416. std::vector<StorageFlagContext *> storageFlag();
  1417. StorageFlagContext* storageFlag(size_t i);
  1418. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1419. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1420. };
  1421. StorageFlagsContext* storageFlags();
  1422. class StorageFlagContext : public antlr4::ParserRuleContext {
  1423. public:
  1424. StorageFlagContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1425. virtual size_t getRuleIndex() const override;
  1426. antlr4::tree::TerminalNode *Const();
  1427. antlr4::tree::TerminalNode *Unsigned();
  1428. antlr4::tree::TerminalNode *RowMajor();
  1429. antlr4::tree::TerminalNode *ColumnMajor();
  1430. antlr4::tree::TerminalNode *Extern();
  1431. antlr4::tree::TerminalNode *Inline();
  1432. antlr4::tree::TerminalNode *Rootconstant();
  1433. antlr4::tree::TerminalNode *Option();
  1434. antlr4::tree::TerminalNode *Precise();
  1435. antlr4::tree::TerminalNode *Shared();
  1436. antlr4::tree::TerminalNode *Groupshared();
  1437. antlr4::tree::TerminalNode *Static();
  1438. antlr4::tree::TerminalNode *Uniform();
  1439. antlr4::tree::TerminalNode *Volatile();
  1440. antlr4::tree::TerminalNode *Globallycoherent();
  1441. antlr4::tree::TerminalNode *SNorm();
  1442. antlr4::tree::TerminalNode *UNorm();
  1443. antlr4::tree::TerminalNode *Linear();
  1444. antlr4::tree::TerminalNode *Centroid();
  1445. antlr4::tree::TerminalNode *Nointerpolation();
  1446. antlr4::tree::TerminalNode *Noperspective();
  1447. antlr4::tree::TerminalNode *Sample();
  1448. antlr4::tree::TerminalNode *In();
  1449. antlr4::tree::TerminalNode *Out();
  1450. antlr4::tree::TerminalNode *Inout();
  1451. antlr4::tree::TerminalNode *Point();
  1452. antlr4::tree::TerminalNode *Line_();
  1453. antlr4::tree::TerminalNode *Triangle();
  1454. antlr4::tree::TerminalNode *LineAdj();
  1455. antlr4::tree::TerminalNode *TriangleAdj();
  1456. antlr4::tree::TerminalNode *Identifier();
  1457. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1458. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1459. };
  1460. StorageFlagContext* storageFlag();
  1461. class TypeContext : public antlr4::ParserRuleContext {
  1462. public:
  1463. TypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1464. virtual size_t getRuleIndex() const override;
  1465. StorageFlagsContext *storageFlags();
  1466. PredefinedTypeContext *predefinedType();
  1467. UserDefinedTypeContext *userDefinedType();
  1468. TypeofExpressionContext *typeofExpression();
  1469. antlr4::tree::TerminalNode *Void();
  1470. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1471. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1472. };
  1473. TypeContext* type();
  1474. class PredefinedTypeContext : public antlr4::ParserRuleContext {
  1475. public:
  1476. PredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1477. virtual size_t getRuleIndex() const override;
  1478. BufferPredefinedTypeContext *bufferPredefinedType();
  1479. ByteAddressBufferTypesContext *byteAddressBufferTypes();
  1480. PatchPredefinedTypeContext *patchPredefinedType();
  1481. MatrixTypeContext *matrixType();
  1482. GenericMatrixPredefinedTypeContext *genericMatrixPredefinedType();
  1483. SamplerStatePredefinedTypeContext *samplerStatePredefinedType();
  1484. ScalarTypeContext *scalarType();
  1485. StreamOutputPredefinedTypeContext *streamOutputPredefinedType();
  1486. StructuredBufferPredefinedTypeContext *structuredBufferPredefinedType();
  1487. TexturePredefinedTypeContext *texturePredefinedType();
  1488. GenericTexturePredefinedTypeContext *genericTexturePredefinedType();
  1489. MsTexturePredefinedTypeContext *msTexturePredefinedType();
  1490. VectorTypeContext *vectorType();
  1491. GenericVectorTypeContext *genericVectorType();
  1492. ConstantBufferTemplatedContext *constantBufferTemplated();
  1493. OtherViewResourceTypeContext *otherViewResourceType();
  1494. SubobjectTypeContext *subobjectType();
  1495. RtxBuiltInTypesContext *rtxBuiltInTypes();
  1496. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1497. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1498. };
  1499. PredefinedTypeContext* predefinedType();
  1500. class SubobjectTypeContext : public antlr4::ParserRuleContext {
  1501. public:
  1502. SubobjectTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1503. virtual size_t getRuleIndex() const override;
  1504. antlr4::tree::TerminalNode *StateObjectConfig();
  1505. antlr4::tree::TerminalNode *LocalRootSignature();
  1506. antlr4::tree::TerminalNode *GlobalRootSignature();
  1507. antlr4::tree::TerminalNode *SubobjectToExportsAssociation();
  1508. antlr4::tree::TerminalNode *RaytracingShaderConfig();
  1509. antlr4::tree::TerminalNode *RaytracingPipelineConfig();
  1510. antlr4::tree::TerminalNode *RaytracingPipelineConfig1();
  1511. antlr4::tree::TerminalNode *TriangleHitGroup();
  1512. antlr4::tree::TerminalNode *ProceduralPrimitiveHitGroup();
  1513. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1514. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1515. };
  1516. SubobjectTypeContext* subobjectType();
  1517. class OtherViewResourceTypeContext : public antlr4::ParserRuleContext {
  1518. public:
  1519. OtherViewResourceTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1520. virtual size_t getRuleIndex() const override;
  1521. antlr4::tree::TerminalNode *RaytracingAccelerationStructure();
  1522. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1523. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1524. };
  1525. OtherViewResourceTypeContext* otherViewResourceType();
  1526. class RtxBuiltInTypesContext : public antlr4::ParserRuleContext {
  1527. public:
  1528. RtxBuiltInTypesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1529. virtual size_t getRuleIndex() const override;
  1530. antlr4::tree::TerminalNode *BuiltInTriangleIntersectionAttributes();
  1531. antlr4::tree::TerminalNode *RayDesc();
  1532. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1533. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1534. };
  1535. RtxBuiltInTypesContext* rtxBuiltInTypes();
  1536. class BufferPredefinedTypeContext : public antlr4::ParserRuleContext {
  1537. public:
  1538. BufferPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1539. virtual size_t getRuleIndex() const override;
  1540. BufferTypeContext *bufferType();
  1541. antlr4::tree::TerminalNode *Less();
  1542. ScalarOrVectorOrMatrixTypeContext *scalarOrVectorOrMatrixType();
  1543. antlr4::tree::TerminalNode *Greater();
  1544. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1545. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1546. };
  1547. BufferPredefinedTypeContext* bufferPredefinedType();
  1548. class BufferTypeContext : public antlr4::ParserRuleContext {
  1549. public:
  1550. BufferTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1551. virtual size_t getRuleIndex() const override;
  1552. antlr4::tree::TerminalNode *Buffer();
  1553. antlr4::tree::TerminalNode *RWBuffer();
  1554. antlr4::tree::TerminalNode *RasterizerOrderedBuffer();
  1555. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1556. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1557. };
  1558. BufferTypeContext* bufferType();
  1559. class ByteAddressBufferTypesContext : public antlr4::ParserRuleContext {
  1560. public:
  1561. ByteAddressBufferTypesContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1562. virtual size_t getRuleIndex() const override;
  1563. antlr4::tree::TerminalNode *ByteAddressBuffer();
  1564. antlr4::tree::TerminalNode *RWByteAddressBuffer();
  1565. antlr4::tree::TerminalNode *RasterizerOrderedByteAddressBuffer();
  1566. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1567. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1568. };
  1569. ByteAddressBufferTypesContext* byteAddressBufferTypes();
  1570. class PatchPredefinedTypeContext : public antlr4::ParserRuleContext {
  1571. public:
  1572. azslParser::UserDefinedTypeContext *Name = nullptr;
  1573. antlr4::Token *ControlPoints = nullptr;
  1574. PatchPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1575. virtual size_t getRuleIndex() const override;
  1576. PatchTypeContext *patchType();
  1577. antlr4::tree::TerminalNode *Less();
  1578. antlr4::tree::TerminalNode *Comma();
  1579. antlr4::tree::TerminalNode *Greater();
  1580. UserDefinedTypeContext *userDefinedType();
  1581. antlr4::tree::TerminalNode *IntegerLiteral();
  1582. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1583. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1584. };
  1585. PatchPredefinedTypeContext* patchPredefinedType();
  1586. class PatchTypeContext : public antlr4::ParserRuleContext {
  1587. public:
  1588. PatchTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1589. virtual size_t getRuleIndex() const override;
  1590. antlr4::tree::TerminalNode *InputPatch();
  1591. antlr4::tree::TerminalNode *OutputPatch();
  1592. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1593. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1594. };
  1595. PatchTypeContext* patchType();
  1596. class SamplerStatePredefinedTypeContext : public antlr4::ParserRuleContext {
  1597. public:
  1598. SamplerStatePredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1599. virtual size_t getRuleIndex() const override;
  1600. antlr4::tree::TerminalNode *Sampler();
  1601. antlr4::tree::TerminalNode *SamplerCapitalS();
  1602. antlr4::tree::TerminalNode *SamplerState();
  1603. antlr4::tree::TerminalNode *SamplerStateCamel();
  1604. antlr4::tree::TerminalNode *SamplerComparisonState();
  1605. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1606. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1607. };
  1608. SamplerStatePredefinedTypeContext* samplerStatePredefinedType();
  1609. class ScalarTypeContext : public antlr4::ParserRuleContext {
  1610. public:
  1611. ScalarTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1612. virtual size_t getRuleIndex() const override;
  1613. antlr4::tree::TerminalNode *Bool();
  1614. antlr4::tree::TerminalNode *Int();
  1615. antlr4::tree::TerminalNode *Int16_t();
  1616. antlr4::tree::TerminalNode *Int32_t();
  1617. antlr4::tree::TerminalNode *Int64_t();
  1618. antlr4::tree::TerminalNode *Uint();
  1619. antlr4::tree::TerminalNode *Uint16_t();
  1620. antlr4::tree::TerminalNode *Uint32_t();
  1621. antlr4::tree::TerminalNode *Uint64_t();
  1622. antlr4::tree::TerminalNode *Dword();
  1623. antlr4::tree::TerminalNode *Half();
  1624. antlr4::tree::TerminalNode *Float();
  1625. antlr4::tree::TerminalNode *Double();
  1626. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1627. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1628. };
  1629. ScalarTypeContext* scalarType();
  1630. class StreamOutputPredefinedTypeContext : public antlr4::ParserRuleContext {
  1631. public:
  1632. StreamOutputPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1633. virtual size_t getRuleIndex() const override;
  1634. StreamOutputObjectTypeContext *streamOutputObjectType();
  1635. antlr4::tree::TerminalNode *Less();
  1636. TypeContext *type();
  1637. antlr4::tree::TerminalNode *Greater();
  1638. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1639. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1640. };
  1641. StreamOutputPredefinedTypeContext* streamOutputPredefinedType();
  1642. class StreamOutputObjectTypeContext : public antlr4::ParserRuleContext {
  1643. public:
  1644. StreamOutputObjectTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1645. virtual size_t getRuleIndex() const override;
  1646. antlr4::tree::TerminalNode *PointStream();
  1647. antlr4::tree::TerminalNode *LineStream();
  1648. antlr4::tree::TerminalNode *TriangleStream();
  1649. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1650. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1651. };
  1652. StreamOutputObjectTypeContext* streamOutputObjectType();
  1653. class StructuredBufferPredefinedTypeContext : public antlr4::ParserRuleContext {
  1654. public:
  1655. StructuredBufferPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1656. virtual size_t getRuleIndex() const override;
  1657. StructuredBufferNameContext *structuredBufferName();
  1658. antlr4::tree::TerminalNode *Less();
  1659. TypeContext *type();
  1660. antlr4::tree::TerminalNode *Greater();
  1661. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1662. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1663. };
  1664. StructuredBufferPredefinedTypeContext* structuredBufferPredefinedType();
  1665. class StructuredBufferNameContext : public antlr4::ParserRuleContext {
  1666. public:
  1667. StructuredBufferNameContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1668. virtual size_t getRuleIndex() const override;
  1669. antlr4::tree::TerminalNode *AppendStructuredBuffer();
  1670. antlr4::tree::TerminalNode *ConsumeStructuredBuffer();
  1671. antlr4::tree::TerminalNode *RWStructuredBuffer();
  1672. antlr4::tree::TerminalNode *StructuredBuffer();
  1673. antlr4::tree::TerminalNode *RasterizerOrderedStructuredBuffer();
  1674. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1675. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1676. };
  1677. StructuredBufferNameContext* structuredBufferName();
  1678. class TextureTypeContext : public antlr4::ParserRuleContext {
  1679. public:
  1680. TextureTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1681. virtual size_t getRuleIndex() const override;
  1682. antlr4::tree::TerminalNode *Texture1D();
  1683. antlr4::tree::TerminalNode *Texture1DArray();
  1684. antlr4::tree::TerminalNode *RasterizerOrderedTexture1D();
  1685. antlr4::tree::TerminalNode *RasterizerOrderedTexture1DArray();
  1686. antlr4::tree::TerminalNode *Texture2D();
  1687. antlr4::tree::TerminalNode *Texture2DArray();
  1688. antlr4::tree::TerminalNode *RasterizerOrderedTexture2D();
  1689. antlr4::tree::TerminalNode *RasterizerOrderedTexture2DArray();
  1690. antlr4::tree::TerminalNode *Texture3D();
  1691. antlr4::tree::TerminalNode *RasterizerOrderedTexture3D();
  1692. antlr4::tree::TerminalNode *TextureCube();
  1693. antlr4::tree::TerminalNode *TextureCubeArray();
  1694. antlr4::tree::TerminalNode *RWTexture1D();
  1695. antlr4::tree::TerminalNode *RWTexture1DArray();
  1696. antlr4::tree::TerminalNode *RWTexture2D();
  1697. antlr4::tree::TerminalNode *RWTexture2DArray();
  1698. antlr4::tree::TerminalNode *RWTexture3D();
  1699. antlr4::tree::TerminalNode *SubpassInput();
  1700. antlr4::tree::TerminalNode *SubpassInputMS();
  1701. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1702. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1703. };
  1704. TextureTypeContext* textureType();
  1705. class TexturePredefinedTypeContext : public antlr4::ParserRuleContext {
  1706. public:
  1707. TexturePredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1708. virtual size_t getRuleIndex() const override;
  1709. TextureTypeContext *textureType();
  1710. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1711. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1712. };
  1713. TexturePredefinedTypeContext* texturePredefinedType();
  1714. class GenericTexturePredefinedTypeContext : public antlr4::ParserRuleContext {
  1715. public:
  1716. GenericTexturePredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1717. virtual size_t getRuleIndex() const override;
  1718. TextureTypeContext *textureType();
  1719. antlr4::tree::TerminalNode *Less();
  1720. ScalarOrVectorTypeContext *scalarOrVectorType();
  1721. antlr4::tree::TerminalNode *Greater();
  1722. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1723. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1724. };
  1725. GenericTexturePredefinedTypeContext* genericTexturePredefinedType();
  1726. class TextureTypeMSContext : public antlr4::ParserRuleContext {
  1727. public:
  1728. TextureTypeMSContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1729. virtual size_t getRuleIndex() const override;
  1730. antlr4::tree::TerminalNode *Texture2DMS();
  1731. antlr4::tree::TerminalNode *Texture2DMSArray();
  1732. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1733. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1734. };
  1735. TextureTypeMSContext* textureTypeMS();
  1736. class MsTexturePredefinedTypeContext : public antlr4::ParserRuleContext {
  1737. public:
  1738. antlr4::Token *Samples = nullptr;
  1739. MsTexturePredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1740. virtual size_t getRuleIndex() const override;
  1741. TextureTypeMSContext *textureTypeMS();
  1742. antlr4::tree::TerminalNode *Less();
  1743. ScalarOrVectorTypeContext *scalarOrVectorType();
  1744. antlr4::tree::TerminalNode *Greater();
  1745. antlr4::tree::TerminalNode *Comma();
  1746. antlr4::tree::TerminalNode *IntegerLiteral();
  1747. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1748. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1749. };
  1750. MsTexturePredefinedTypeContext* msTexturePredefinedType();
  1751. class VectorTypeContext : public antlr4::ParserRuleContext {
  1752. public:
  1753. VectorTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1754. virtual size_t getRuleIndex() const override;
  1755. antlr4::tree::TerminalNode *Vector();
  1756. antlr4::tree::TerminalNode *Bool1();
  1757. antlr4::tree::TerminalNode *Bool2();
  1758. antlr4::tree::TerminalNode *Bool3();
  1759. antlr4::tree::TerminalNode *Bool4();
  1760. antlr4::tree::TerminalNode *Int1();
  1761. antlr4::tree::TerminalNode *Int2();
  1762. antlr4::tree::TerminalNode *Int3();
  1763. antlr4::tree::TerminalNode *Int4();
  1764. antlr4::tree::TerminalNode *Uint1();
  1765. antlr4::tree::TerminalNode *Uint2();
  1766. antlr4::tree::TerminalNode *Uint3();
  1767. antlr4::tree::TerminalNode *Uint4();
  1768. antlr4::tree::TerminalNode *Dword1();
  1769. antlr4::tree::TerminalNode *Dword2();
  1770. antlr4::tree::TerminalNode *Dword3();
  1771. antlr4::tree::TerminalNode *Dword4();
  1772. antlr4::tree::TerminalNode *Half1();
  1773. antlr4::tree::TerminalNode *Half2();
  1774. antlr4::tree::TerminalNode *Half3();
  1775. antlr4::tree::TerminalNode *Half4();
  1776. antlr4::tree::TerminalNode *Float1();
  1777. antlr4::tree::TerminalNode *Float2();
  1778. antlr4::tree::TerminalNode *Float3();
  1779. antlr4::tree::TerminalNode *Float4();
  1780. antlr4::tree::TerminalNode *Double1();
  1781. antlr4::tree::TerminalNode *Double2();
  1782. antlr4::tree::TerminalNode *Double3();
  1783. antlr4::tree::TerminalNode *Double4();
  1784. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1785. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1786. };
  1787. VectorTypeContext* vectorType();
  1788. class GenericVectorTypeContext : public antlr4::ParserRuleContext {
  1789. public:
  1790. antlr4::Token *Size_ = nullptr;
  1791. GenericVectorTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1792. virtual size_t getRuleIndex() const override;
  1793. antlr4::tree::TerminalNode *Vector();
  1794. antlr4::tree::TerminalNode *Less();
  1795. ScalarTypeContext *scalarType();
  1796. antlr4::tree::TerminalNode *Comma();
  1797. antlr4::tree::TerminalNode *Greater();
  1798. antlr4::tree::TerminalNode *IntegerLiteral();
  1799. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1800. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1801. };
  1802. GenericVectorTypeContext* genericVectorType();
  1803. class ScalarOrVectorTypeContext : public antlr4::ParserRuleContext {
  1804. public:
  1805. ScalarOrVectorTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1806. virtual size_t getRuleIndex() const override;
  1807. ScalarTypeContext *scalarType();
  1808. VectorTypeContext *vectorType();
  1809. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1810. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1811. };
  1812. ScalarOrVectorTypeContext* scalarOrVectorType();
  1813. class ScalarOrVectorOrMatrixTypeContext : public antlr4::ParserRuleContext {
  1814. public:
  1815. ScalarOrVectorOrMatrixTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1816. virtual size_t getRuleIndex() const override;
  1817. ScalarTypeContext *scalarType();
  1818. VectorTypeContext *vectorType();
  1819. MatrixTypeContext *matrixType();
  1820. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1821. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1822. };
  1823. ScalarOrVectorOrMatrixTypeContext* scalarOrVectorOrMatrixType();
  1824. class MatrixTypeContext : public antlr4::ParserRuleContext {
  1825. public:
  1826. MatrixTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1827. virtual size_t getRuleIndex() const override;
  1828. antlr4::tree::TerminalNode *Matrix();
  1829. antlr4::tree::TerminalNode *Bool1x1();
  1830. antlr4::tree::TerminalNode *Bool1x2();
  1831. antlr4::tree::TerminalNode *Bool1x3();
  1832. antlr4::tree::TerminalNode *Bool1x4();
  1833. antlr4::tree::TerminalNode *Bool2x1();
  1834. antlr4::tree::TerminalNode *Bool2x2();
  1835. antlr4::tree::TerminalNode *Bool2x3();
  1836. antlr4::tree::TerminalNode *Bool2x4();
  1837. antlr4::tree::TerminalNode *Bool3x1();
  1838. antlr4::tree::TerminalNode *Bool3x2();
  1839. antlr4::tree::TerminalNode *Bool3x3();
  1840. antlr4::tree::TerminalNode *Bool3x4();
  1841. antlr4::tree::TerminalNode *Bool4x1();
  1842. antlr4::tree::TerminalNode *Bool4x2();
  1843. antlr4::tree::TerminalNode *Bool4x3();
  1844. antlr4::tree::TerminalNode *Bool4x4();
  1845. antlr4::tree::TerminalNode *Int1x1();
  1846. antlr4::tree::TerminalNode *Int1x2();
  1847. antlr4::tree::TerminalNode *Int1x3();
  1848. antlr4::tree::TerminalNode *Int1x4();
  1849. antlr4::tree::TerminalNode *Int2x1();
  1850. antlr4::tree::TerminalNode *Int2x2();
  1851. antlr4::tree::TerminalNode *Int2x3();
  1852. antlr4::tree::TerminalNode *Int2x4();
  1853. antlr4::tree::TerminalNode *Int3x1();
  1854. antlr4::tree::TerminalNode *Int3x2();
  1855. antlr4::tree::TerminalNode *Int3x3();
  1856. antlr4::tree::TerminalNode *Int3x4();
  1857. antlr4::tree::TerminalNode *Int4x1();
  1858. antlr4::tree::TerminalNode *Int4x2();
  1859. antlr4::tree::TerminalNode *Int4x3();
  1860. antlr4::tree::TerminalNode *Int4x4();
  1861. antlr4::tree::TerminalNode *Uint1x1();
  1862. antlr4::tree::TerminalNode *Uint1x2();
  1863. antlr4::tree::TerminalNode *Uint1x3();
  1864. antlr4::tree::TerminalNode *Uint1x4();
  1865. antlr4::tree::TerminalNode *Uint2x1();
  1866. antlr4::tree::TerminalNode *Uint2x2();
  1867. antlr4::tree::TerminalNode *Uint2x3();
  1868. antlr4::tree::TerminalNode *Uint2x4();
  1869. antlr4::tree::TerminalNode *Uint3x1();
  1870. antlr4::tree::TerminalNode *Uint3x2();
  1871. antlr4::tree::TerminalNode *Uint3x3();
  1872. antlr4::tree::TerminalNode *Uint3x4();
  1873. antlr4::tree::TerminalNode *Uint4x1();
  1874. antlr4::tree::TerminalNode *Uint4x2();
  1875. antlr4::tree::TerminalNode *Uint4x3();
  1876. antlr4::tree::TerminalNode *Uint4x4();
  1877. antlr4::tree::TerminalNode *Dword1x1();
  1878. antlr4::tree::TerminalNode *Dword1x2();
  1879. antlr4::tree::TerminalNode *Dword1x3();
  1880. antlr4::tree::TerminalNode *Dword1x4();
  1881. antlr4::tree::TerminalNode *Dword2x1();
  1882. antlr4::tree::TerminalNode *Dword2x2();
  1883. antlr4::tree::TerminalNode *Dword2x3();
  1884. antlr4::tree::TerminalNode *Dword2x4();
  1885. antlr4::tree::TerminalNode *Dword3x1();
  1886. antlr4::tree::TerminalNode *Dword3x2();
  1887. antlr4::tree::TerminalNode *Dword3x3();
  1888. antlr4::tree::TerminalNode *Dword3x4();
  1889. antlr4::tree::TerminalNode *Dword4x1();
  1890. antlr4::tree::TerminalNode *Dword4x2();
  1891. antlr4::tree::TerminalNode *Dword4x3();
  1892. antlr4::tree::TerminalNode *Dword4x4();
  1893. antlr4::tree::TerminalNode *Half1x1();
  1894. antlr4::tree::TerminalNode *Half1x2();
  1895. antlr4::tree::TerminalNode *Half1x3();
  1896. antlr4::tree::TerminalNode *Half1x4();
  1897. antlr4::tree::TerminalNode *Half2x1();
  1898. antlr4::tree::TerminalNode *Half2x2();
  1899. antlr4::tree::TerminalNode *Half2x3();
  1900. antlr4::tree::TerminalNode *Half2x4();
  1901. antlr4::tree::TerminalNode *Half3x1();
  1902. antlr4::tree::TerminalNode *Half3x2();
  1903. antlr4::tree::TerminalNode *Half3x3();
  1904. antlr4::tree::TerminalNode *Half3x4();
  1905. antlr4::tree::TerminalNode *Half4x1();
  1906. antlr4::tree::TerminalNode *Half4x2();
  1907. antlr4::tree::TerminalNode *Half4x3();
  1908. antlr4::tree::TerminalNode *Half4x4();
  1909. antlr4::tree::TerminalNode *Float1x1();
  1910. antlr4::tree::TerminalNode *Float1x2();
  1911. antlr4::tree::TerminalNode *Float1x3();
  1912. antlr4::tree::TerminalNode *Float1x4();
  1913. antlr4::tree::TerminalNode *Float2x1();
  1914. antlr4::tree::TerminalNode *Float2x2();
  1915. antlr4::tree::TerminalNode *Float2x3();
  1916. antlr4::tree::TerminalNode *Float2x4();
  1917. antlr4::tree::TerminalNode *Float3x1();
  1918. antlr4::tree::TerminalNode *Float3x2();
  1919. antlr4::tree::TerminalNode *Float3x3();
  1920. antlr4::tree::TerminalNode *Float3x4();
  1921. antlr4::tree::TerminalNode *Float4x1();
  1922. antlr4::tree::TerminalNode *Float4x2();
  1923. antlr4::tree::TerminalNode *Float4x3();
  1924. antlr4::tree::TerminalNode *Float4x4();
  1925. antlr4::tree::TerminalNode *Double1x1();
  1926. antlr4::tree::TerminalNode *Double1x2();
  1927. antlr4::tree::TerminalNode *Double1x3();
  1928. antlr4::tree::TerminalNode *Double1x4();
  1929. antlr4::tree::TerminalNode *Double2x1();
  1930. antlr4::tree::TerminalNode *Double2x2();
  1931. antlr4::tree::TerminalNode *Double2x3();
  1932. antlr4::tree::TerminalNode *Double2x4();
  1933. antlr4::tree::TerminalNode *Double3x1();
  1934. antlr4::tree::TerminalNode *Double3x2();
  1935. antlr4::tree::TerminalNode *Double3x3();
  1936. antlr4::tree::TerminalNode *Double3x4();
  1937. antlr4::tree::TerminalNode *Double4x1();
  1938. antlr4::tree::TerminalNode *Double4x2();
  1939. antlr4::tree::TerminalNode *Double4x3();
  1940. antlr4::tree::TerminalNode *Double4x4();
  1941. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1942. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1943. };
  1944. MatrixTypeContext* matrixType();
  1945. class GenericMatrixPredefinedTypeContext : public antlr4::ParserRuleContext {
  1946. public:
  1947. antlr4::Token *Rows_ = nullptr;
  1948. antlr4::Token *Cols_ = nullptr;
  1949. GenericMatrixPredefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1950. virtual size_t getRuleIndex() const override;
  1951. antlr4::tree::TerminalNode *Matrix();
  1952. antlr4::tree::TerminalNode *Less();
  1953. ScalarTypeContext *scalarType();
  1954. std::vector<antlr4::tree::TerminalNode *> Comma();
  1955. antlr4::tree::TerminalNode* Comma(size_t i);
  1956. antlr4::tree::TerminalNode *Greater();
  1957. std::vector<antlr4::tree::TerminalNode *> IntegerLiteral();
  1958. antlr4::tree::TerminalNode* IntegerLiteral(size_t i);
  1959. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1960. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1961. };
  1962. GenericMatrixPredefinedTypeContext* genericMatrixPredefinedType();
  1963. class RegisterAllocationContext : public antlr4::ParserRuleContext {
  1964. public:
  1965. antlr4::Token *Address = nullptr;
  1966. RegisterAllocationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1967. virtual size_t getRuleIndex() const override;
  1968. antlr4::tree::TerminalNode *Colon();
  1969. antlr4::tree::TerminalNode *Register();
  1970. antlr4::tree::TerminalNode *LeftParen();
  1971. antlr4::tree::TerminalNode *RightParen();
  1972. antlr4::tree::TerminalNode *Identifier();
  1973. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1974. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1975. };
  1976. RegisterAllocationContext* registerAllocation();
  1977. class SamplerStatePropertyContext : public antlr4::ParserRuleContext {
  1978. public:
  1979. antlr4::Token *Name = nullptr;
  1980. antlr4::Token *EqualsToken = nullptr;
  1981. azslParser::ExpressionContext *Expr = nullptr;
  1982. SamplerStatePropertyContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1983. virtual size_t getRuleIndex() const override;
  1984. antlr4::tree::TerminalNode *Semi();
  1985. antlr4::tree::TerminalNode *Identifier();
  1986. antlr4::tree::TerminalNode *Assign();
  1987. ExpressionContext *expression();
  1988. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  1989. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  1990. };
  1991. SamplerStatePropertyContext* samplerStateProperty();
  1992. class LiteralContext : public antlr4::ParserRuleContext {
  1993. public:
  1994. LiteralContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  1995. virtual size_t getRuleIndex() const override;
  1996. antlr4::tree::TerminalNode *True();
  1997. antlr4::tree::TerminalNode *False();
  1998. antlr4::tree::TerminalNode *FloatLiteral();
  1999. antlr4::tree::TerminalNode *IntegerLiteral();
  2000. std::vector<antlr4::tree::TerminalNode *> StringLiteral();
  2001. antlr4::tree::TerminalNode* StringLiteral(size_t i);
  2002. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2003. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2004. };
  2005. LiteralContext* literal();
  2006. class LeadingTypeFunctionSignatureContext : public antlr4::ParserRuleContext {
  2007. public:
  2008. azslParser::UserDefinedTypeContext *ClassName = nullptr;
  2009. antlr4::Token *Name = nullptr;
  2010. LeadingTypeFunctionSignatureContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2011. virtual size_t getRuleIndex() const override;
  2012. TypeContext *type();
  2013. antlr4::tree::TerminalNode *LeftParen();
  2014. antlr4::tree::TerminalNode *RightParen();
  2015. antlr4::tree::TerminalNode *Identifier();
  2016. antlr4::tree::TerminalNode *ColonColon();
  2017. GenericParameterListContext *genericParameterList();
  2018. FunctionParamsContext *functionParams();
  2019. antlr4::tree::TerminalNode *Override();
  2020. HlslSemanticContext *hlslSemantic();
  2021. UserDefinedTypeContext *userDefinedType();
  2022. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2023. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2024. };
  2025. LeadingTypeFunctionSignatureContext* leadingTypeFunctionSignature();
  2026. class HlslFunctionDefinitionContext : public antlr4::ParserRuleContext {
  2027. public:
  2028. HlslFunctionDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2029. virtual size_t getRuleIndex() const override;
  2030. LeadingTypeFunctionSignatureContext *leadingTypeFunctionSignature();
  2031. BlockContext *block();
  2032. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2033. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2034. };
  2035. HlslFunctionDefinitionContext* hlslFunctionDefinition();
  2036. class HlslFunctionDeclarationContext : public antlr4::ParserRuleContext {
  2037. public:
  2038. HlslFunctionDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2039. virtual size_t getRuleIndex() const override;
  2040. LeadingTypeFunctionSignatureContext *leadingTypeFunctionSignature();
  2041. antlr4::tree::TerminalNode *Semi();
  2042. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2043. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2044. };
  2045. HlslFunctionDeclarationContext* hlslFunctionDeclaration();
  2046. class UserDefinedTypeContext : public antlr4::ParserRuleContext {
  2047. public:
  2048. UserDefinedTypeContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2049. virtual size_t getRuleIndex() const override;
  2050. IdExpressionContext *idExpression();
  2051. AnyStructuredTypeDefinitionContext *anyStructuredTypeDefinition();
  2052. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2053. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2054. };
  2055. UserDefinedTypeContext* userDefinedType();
  2056. class AssociatedTypeDeclarationContext : public antlr4::ParserRuleContext {
  2057. public:
  2058. antlr4::Token *Name = nullptr;
  2059. AssociatedTypeDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2060. virtual size_t getRuleIndex() const override;
  2061. antlr4::tree::TerminalNode *KW_AssociatedType();
  2062. antlr4::tree::TerminalNode *Semi();
  2063. antlr4::tree::TerminalNode *Identifier();
  2064. GenericConstraintContext *genericConstraint();
  2065. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2066. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2067. };
  2068. AssociatedTypeDeclarationContext* associatedTypeDeclaration();
  2069. class TypedefStatementContext : public antlr4::ParserRuleContext {
  2070. public:
  2071. azslParser::TypeContext *ExistingType = nullptr;
  2072. antlr4::Token *NewTypeName = nullptr;
  2073. TypedefStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2074. virtual size_t getRuleIndex() const override;
  2075. antlr4::tree::TerminalNode *KW_Typedef();
  2076. antlr4::tree::TerminalNode *Semi();
  2077. TypeContext *type();
  2078. antlr4::tree::TerminalNode *Identifier();
  2079. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2080. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2081. };
  2082. TypedefStatementContext* typedefStatement();
  2083. class TypealiasStatementContext : public antlr4::ParserRuleContext {
  2084. public:
  2085. antlr4::Token *NewTypeName = nullptr;
  2086. azslParser::TypeContext *ExistingType = nullptr;
  2087. TypealiasStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2088. virtual size_t getRuleIndex() const override;
  2089. antlr4::tree::TerminalNode *KW_TypeAlias();
  2090. antlr4::tree::TerminalNode *Assign();
  2091. antlr4::tree::TerminalNode *Semi();
  2092. antlr4::tree::TerminalNode *Identifier();
  2093. TypeContext *type();
  2094. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2095. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2096. };
  2097. TypealiasStatementContext* typealiasStatement();
  2098. class TypeAliasingDefinitionStatementContext : public antlr4::ParserRuleContext {
  2099. public:
  2100. TypeAliasingDefinitionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2101. virtual size_t getRuleIndex() const override;
  2102. TypealiasStatementContext *typealiasStatement();
  2103. TypedefStatementContext *typedefStatement();
  2104. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2105. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2106. };
  2107. TypeAliasingDefinitionStatementContext* typeAliasingDefinitionStatement();
  2108. class TypeofExpressionContext : public antlr4::ParserRuleContext {
  2109. public:
  2110. azslParser::ExpressionExtContext *Expr = nullptr;
  2111. azslParser::IdExpressionContext *SubQualification = nullptr;
  2112. TypeofExpressionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2113. virtual size_t getRuleIndex() const override;
  2114. antlr4::tree::TerminalNode *KW_Typeof();
  2115. antlr4::tree::TerminalNode *LeftParen();
  2116. antlr4::tree::TerminalNode *RightParen();
  2117. TypeContext *type();
  2118. ExpressionExtContext *expressionExt();
  2119. antlr4::tree::TerminalNode *ColonColon();
  2120. IdExpressionContext *idExpression();
  2121. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2122. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2123. };
  2124. TypeofExpressionContext* typeofExpression();
  2125. class GenericParameterListContext : public antlr4::ParserRuleContext {
  2126. public:
  2127. GenericParameterListContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2128. virtual size_t getRuleIndex() const override;
  2129. antlr4::tree::TerminalNode *Less();
  2130. std::vector<GenericTypeDefinitionContext *> genericTypeDefinition();
  2131. GenericTypeDefinitionContext* genericTypeDefinition(size_t i);
  2132. antlr4::tree::TerminalNode *Greater();
  2133. std::vector<antlr4::tree::TerminalNode *> Comma();
  2134. antlr4::tree::TerminalNode* Comma(size_t i);
  2135. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2136. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2137. };
  2138. GenericParameterListContext* genericParameterList();
  2139. class GenericTypeDefinitionContext : public antlr4::ParserRuleContext {
  2140. public:
  2141. antlr4::Token *GenericTypeName = nullptr;
  2142. GenericTypeDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2143. virtual size_t getRuleIndex() const override;
  2144. antlr4::tree::TerminalNode *Identifier();
  2145. GenericConstraintContext *genericConstraint();
  2146. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2147. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2148. };
  2149. GenericTypeDefinitionContext* genericTypeDefinition();
  2150. class GenericConstraintContext : public antlr4::ParserRuleContext {
  2151. public:
  2152. GenericConstraintContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2153. virtual size_t getRuleIndex() const override;
  2154. antlr4::tree::TerminalNode *Colon();
  2155. UserDefinedTypeContext *userDefinedType();
  2156. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2157. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2158. };
  2159. GenericConstraintContext* genericConstraint();
  2160. class LanguageDefinedConstraintContext : public antlr4::ParserRuleContext {
  2161. public:
  2162. LanguageDefinedConstraintContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2163. virtual size_t getRuleIndex() const override;
  2164. antlr4::tree::TerminalNode *KW_Fundamental();
  2165. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2166. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2167. };
  2168. LanguageDefinedConstraintContext* languageDefinedConstraint();
  2169. class FunctionDeclarationContext : public antlr4::ParserRuleContext {
  2170. public:
  2171. FunctionDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2172. virtual size_t getRuleIndex() const override;
  2173. HlslFunctionDeclarationContext *hlslFunctionDeclaration();
  2174. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2175. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2176. };
  2177. FunctionDeclarationContext* functionDeclaration();
  2178. class AttributedFunctionDeclarationContext : public antlr4::ParserRuleContext {
  2179. public:
  2180. AttributedFunctionDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2181. virtual size_t getRuleIndex() const override;
  2182. FunctionDeclarationContext *functionDeclaration();
  2183. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  2184. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  2185. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2186. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2187. };
  2188. AttributedFunctionDeclarationContext* attributedFunctionDeclaration();
  2189. class FunctionDefinitionContext : public antlr4::ParserRuleContext {
  2190. public:
  2191. FunctionDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2192. virtual size_t getRuleIndex() const override;
  2193. HlslFunctionDefinitionContext *hlslFunctionDefinition();
  2194. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2195. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2196. };
  2197. FunctionDefinitionContext* functionDefinition();
  2198. class AttributedFunctionDefinitionContext : public antlr4::ParserRuleContext {
  2199. public:
  2200. AttributedFunctionDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2201. virtual size_t getRuleIndex() const override;
  2202. FunctionDefinitionContext *functionDefinition();
  2203. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  2204. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  2205. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2206. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2207. };
  2208. AttributedFunctionDefinitionContext* attributedFunctionDefinition();
  2209. class CompilerExtensionStatementContext : public antlr4::ParserRuleContext {
  2210. public:
  2211. antlr4::Token *Message = nullptr;
  2212. CompilerExtensionStatementContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2213. virtual size_t getRuleIndex() const override;
  2214. antlr4::tree::TerminalNode *KW_ext_print_message();
  2215. antlr4::tree::TerminalNode *LeftParen();
  2216. antlr4::tree::TerminalNode *RightParen();
  2217. antlr4::tree::TerminalNode *Semi();
  2218. antlr4::tree::TerminalNode *StringLiteral();
  2219. antlr4::tree::TerminalNode *KW_ext_print_symbol();
  2220. antlr4::tree::TerminalNode *Comma();
  2221. antlr4::tree::TerminalNode *KW_ext_prtsym_fully_qualified();
  2222. antlr4::tree::TerminalNode *KW_ext_prtsym_least_qualified();
  2223. antlr4::tree::TerminalNode *KW_ext_prtsym_constint_value();
  2224. IdExpressionContext *idExpression();
  2225. TypeofExpressionContext *typeofExpression();
  2226. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2227. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2228. };
  2229. CompilerExtensionStatementContext* compilerExtensionStatement();
  2230. class SrgDefinitionContext : public antlr4::ParserRuleContext {
  2231. public:
  2232. antlr4::Token *Name = nullptr;
  2233. antlr4::Token *Semantic = nullptr;
  2234. SrgDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2235. virtual size_t getRuleIndex() const override;
  2236. antlr4::tree::TerminalNode *ShaderResourceGroup();
  2237. antlr4::tree::TerminalNode *LeftBrace();
  2238. antlr4::tree::TerminalNode *RightBrace();
  2239. std::vector<antlr4::tree::TerminalNode *> Identifier();
  2240. antlr4::tree::TerminalNode* Identifier(size_t i);
  2241. antlr4::tree::TerminalNode *Partial();
  2242. antlr4::tree::TerminalNode *Colon();
  2243. std::vector<SrgMemberDeclarationContext *> srgMemberDeclaration();
  2244. SrgMemberDeclarationContext* srgMemberDeclaration(size_t i);
  2245. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2246. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2247. };
  2248. SrgDefinitionContext* srgDefinition();
  2249. class AttributedSrgDefinitionContext : public antlr4::ParserRuleContext {
  2250. public:
  2251. AttributedSrgDefinitionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2252. virtual size_t getRuleIndex() const override;
  2253. SrgDefinitionContext *srgDefinition();
  2254. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  2255. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  2256. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2257. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2258. };
  2259. AttributedSrgDefinitionContext* attributedSrgDefinition();
  2260. class SrgMemberDeclarationContext : public antlr4::ParserRuleContext {
  2261. public:
  2262. SrgMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2263. virtual size_t getRuleIndex() const override;
  2264. StructDefinitionStatementContext *structDefinitionStatement();
  2265. AttributedFunctionDeclarationContext *attributedFunctionDeclaration();
  2266. AttributedFunctionDefinitionContext *attributedFunctionDefinition();
  2267. VariableDeclarationStatementContext *variableDeclarationStatement();
  2268. EnumDefinitionStatementContext *enumDefinitionStatement();
  2269. TypeAliasingDefinitionStatementContext *typeAliasingDefinitionStatement();
  2270. AttributeSpecifierAnyContext *attributeSpecifierAny();
  2271. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2272. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2273. };
  2274. SrgMemberDeclarationContext* srgMemberDeclaration();
  2275. class SrgSemanticContext : public antlr4::ParserRuleContext {
  2276. public:
  2277. antlr4::Token *Name = nullptr;
  2278. SrgSemanticContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2279. virtual size_t getRuleIndex() const override;
  2280. antlr4::tree::TerminalNode *ShaderResourceGroupSemantic();
  2281. SrgSemanticBodyDeclarationContext *srgSemanticBodyDeclaration();
  2282. antlr4::tree::TerminalNode *Identifier();
  2283. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2284. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2285. };
  2286. SrgSemanticContext* srgSemantic();
  2287. class AttributedSrgSemanticContext : public antlr4::ParserRuleContext {
  2288. public:
  2289. AttributedSrgSemanticContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2290. virtual size_t getRuleIndex() const override;
  2291. SrgSemanticContext *srgSemantic();
  2292. std::vector<AttributeSpecifierAnyContext *> attributeSpecifierAny();
  2293. AttributeSpecifierAnyContext* attributeSpecifierAny(size_t i);
  2294. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2295. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2296. };
  2297. AttributedSrgSemanticContext* attributedSrgSemantic();
  2298. class SrgSemanticBodyDeclarationContext : public antlr4::ParserRuleContext {
  2299. public:
  2300. SrgSemanticBodyDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2301. virtual size_t getRuleIndex() const override;
  2302. antlr4::tree::TerminalNode *LeftBrace();
  2303. antlr4::tree::TerminalNode *RightBrace();
  2304. std::vector<SrgSemanticMemberDeclarationContext *> srgSemanticMemberDeclaration();
  2305. SrgSemanticMemberDeclarationContext* srgSemanticMemberDeclaration(size_t i);
  2306. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2307. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2308. };
  2309. SrgSemanticBodyDeclarationContext* srgSemanticBodyDeclaration();
  2310. class SrgSemanticMemberDeclarationContext : public antlr4::ParserRuleContext {
  2311. public:
  2312. antlr4::Token *Frequency = nullptr;
  2313. azslParser::LiteralContext *FrequencyValue = nullptr;
  2314. antlr4::Token *VariantFallback = nullptr;
  2315. azslParser::LiteralContext *VariantFallbackValue = nullptr;
  2316. SrgSemanticMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2317. virtual size_t getRuleIndex() const override;
  2318. antlr4::tree::TerminalNode *Assign();
  2319. antlr4::tree::TerminalNode *Semi();
  2320. antlr4::tree::TerminalNode *FrequencyId();
  2321. LiteralContext *literal();
  2322. antlr4::tree::TerminalNode *ShaderVariantFallback();
  2323. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2324. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2325. };
  2326. SrgSemanticMemberDeclarationContext* srgSemanticMemberDeclaration();
  2327. class SamplerBodyDeclarationContext : public antlr4::ParserRuleContext {
  2328. public:
  2329. SamplerBodyDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2330. virtual size_t getRuleIndex() const override;
  2331. antlr4::tree::TerminalNode *LeftBrace();
  2332. antlr4::tree::TerminalNode *RightBrace();
  2333. std::vector<SamplerMemberDeclarationContext *> samplerMemberDeclaration();
  2334. SamplerMemberDeclarationContext* samplerMemberDeclaration(size_t i);
  2335. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2336. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2337. };
  2338. SamplerBodyDeclarationContext* samplerBodyDeclaration();
  2339. class SamplerMemberDeclarationContext : public antlr4::ParserRuleContext {
  2340. public:
  2341. SamplerMemberDeclarationContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2342. virtual size_t getRuleIndex() const override;
  2343. MaxAnisotropyOptionContext *maxAnisotropyOption();
  2344. MinFilterOptionContext *minFilterOption();
  2345. MagFilterOptionContext *magFilterOption();
  2346. MipFilterOptionContext *mipFilterOption();
  2347. ReductionTypeOptionContext *reductionTypeOption();
  2348. ComparisonFunctionOptionContext *comparisonFunctionOption();
  2349. AddressUOptionContext *addressUOption();
  2350. AddressVOptionContext *addressVOption();
  2351. AddressWOptionContext *addressWOption();
  2352. MinLodOptionContext *minLodOption();
  2353. MaxLodOptionContext *maxLodOption();
  2354. MipLodBiasOptionContext *mipLodBiasOption();
  2355. BorderColorOptionContext *borderColorOption();
  2356. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2357. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2358. };
  2359. SamplerMemberDeclarationContext* samplerMemberDeclaration();
  2360. class MaxAnisotropyOptionContext : public antlr4::ParserRuleContext {
  2361. public:
  2362. MaxAnisotropyOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2363. virtual size_t getRuleIndex() const override;
  2364. antlr4::tree::TerminalNode *MAX_ANISOTROPY();
  2365. antlr4::tree::TerminalNode *Assign();
  2366. antlr4::tree::TerminalNode *IntegerLiteral();
  2367. antlr4::tree::TerminalNode *Semi();
  2368. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2369. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2370. };
  2371. MaxAnisotropyOptionContext* maxAnisotropyOption();
  2372. class MinFilterOptionContext : public antlr4::ParserRuleContext {
  2373. public:
  2374. MinFilterOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2375. virtual size_t getRuleIndex() const override;
  2376. antlr4::tree::TerminalNode *MIN_FILTER();
  2377. antlr4::tree::TerminalNode *Assign();
  2378. FilterModeEnumContext *filterModeEnum();
  2379. antlr4::tree::TerminalNode *Semi();
  2380. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2381. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2382. };
  2383. MinFilterOptionContext* minFilterOption();
  2384. class MagFilterOptionContext : public antlr4::ParserRuleContext {
  2385. public:
  2386. MagFilterOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2387. virtual size_t getRuleIndex() const override;
  2388. antlr4::tree::TerminalNode *MAG_FILTER();
  2389. antlr4::tree::TerminalNode *Assign();
  2390. FilterModeEnumContext *filterModeEnum();
  2391. antlr4::tree::TerminalNode *Semi();
  2392. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2393. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2394. };
  2395. MagFilterOptionContext* magFilterOption();
  2396. class MipFilterOptionContext : public antlr4::ParserRuleContext {
  2397. public:
  2398. MipFilterOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2399. virtual size_t getRuleIndex() const override;
  2400. antlr4::tree::TerminalNode *MIP_FILTER();
  2401. antlr4::tree::TerminalNode *Assign();
  2402. FilterModeEnumContext *filterModeEnum();
  2403. antlr4::tree::TerminalNode *Semi();
  2404. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2405. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2406. };
  2407. MipFilterOptionContext* mipFilterOption();
  2408. class ReductionTypeOptionContext : public antlr4::ParserRuleContext {
  2409. public:
  2410. ReductionTypeOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2411. virtual size_t getRuleIndex() const override;
  2412. antlr4::tree::TerminalNode *REDUCTION_TYPE();
  2413. antlr4::tree::TerminalNode *Assign();
  2414. ReductionTypeEnumContext *reductionTypeEnum();
  2415. antlr4::tree::TerminalNode *Semi();
  2416. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2417. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2418. };
  2419. ReductionTypeOptionContext* reductionTypeOption();
  2420. class ComparisonFunctionOptionContext : public antlr4::ParserRuleContext {
  2421. public:
  2422. ComparisonFunctionOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2423. virtual size_t getRuleIndex() const override;
  2424. antlr4::tree::TerminalNode *COMPARISON_FUNC();
  2425. antlr4::tree::TerminalNode *Assign();
  2426. ComparisonFunctionEnumContext *comparisonFunctionEnum();
  2427. antlr4::tree::TerminalNode *Semi();
  2428. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2429. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2430. };
  2431. ComparisonFunctionOptionContext* comparisonFunctionOption();
  2432. class AddressUOptionContext : public antlr4::ParserRuleContext {
  2433. public:
  2434. AddressUOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2435. virtual size_t getRuleIndex() const override;
  2436. antlr4::tree::TerminalNode *ADDRESS_U();
  2437. antlr4::tree::TerminalNode *Assign();
  2438. AddressModeEnumContext *addressModeEnum();
  2439. antlr4::tree::TerminalNode *Semi();
  2440. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2441. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2442. };
  2443. AddressUOptionContext* addressUOption();
  2444. class AddressVOptionContext : public antlr4::ParserRuleContext {
  2445. public:
  2446. AddressVOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2447. virtual size_t getRuleIndex() const override;
  2448. antlr4::tree::TerminalNode *ADDRESS_V();
  2449. antlr4::tree::TerminalNode *Assign();
  2450. AddressModeEnumContext *addressModeEnum();
  2451. antlr4::tree::TerminalNode *Semi();
  2452. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2453. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2454. };
  2455. AddressVOptionContext* addressVOption();
  2456. class AddressWOptionContext : public antlr4::ParserRuleContext {
  2457. public:
  2458. AddressWOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2459. virtual size_t getRuleIndex() const override;
  2460. antlr4::tree::TerminalNode *ADDRESS_W();
  2461. antlr4::tree::TerminalNode *Assign();
  2462. AddressModeEnumContext *addressModeEnum();
  2463. antlr4::tree::TerminalNode *Semi();
  2464. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2465. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2466. };
  2467. AddressWOptionContext* addressWOption();
  2468. class MinLodOptionContext : public antlr4::ParserRuleContext {
  2469. public:
  2470. MinLodOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2471. virtual size_t getRuleIndex() const override;
  2472. antlr4::tree::TerminalNode *MIN_LOD();
  2473. antlr4::tree::TerminalNode *Assign();
  2474. antlr4::tree::TerminalNode *FloatLiteral();
  2475. antlr4::tree::TerminalNode *Semi();
  2476. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2477. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2478. };
  2479. MinLodOptionContext* minLodOption();
  2480. class MaxLodOptionContext : public antlr4::ParserRuleContext {
  2481. public:
  2482. MaxLodOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2483. virtual size_t getRuleIndex() const override;
  2484. antlr4::tree::TerminalNode *MAX_LOD();
  2485. antlr4::tree::TerminalNode *Assign();
  2486. antlr4::tree::TerminalNode *FloatLiteral();
  2487. antlr4::tree::TerminalNode *Semi();
  2488. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2489. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2490. };
  2491. MaxLodOptionContext* maxLodOption();
  2492. class MipLodBiasOptionContext : public antlr4::ParserRuleContext {
  2493. public:
  2494. MipLodBiasOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2495. virtual size_t getRuleIndex() const override;
  2496. antlr4::tree::TerminalNode *MIP_LOD_BIAS();
  2497. antlr4::tree::TerminalNode *Assign();
  2498. antlr4::tree::TerminalNode *FloatLiteral();
  2499. antlr4::tree::TerminalNode *Semi();
  2500. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2501. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2502. };
  2503. MipLodBiasOptionContext* mipLodBiasOption();
  2504. class BorderColorOptionContext : public antlr4::ParserRuleContext {
  2505. public:
  2506. BorderColorOptionContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2507. virtual size_t getRuleIndex() const override;
  2508. antlr4::tree::TerminalNode *BORDER_COLOR();
  2509. antlr4::tree::TerminalNode *Assign();
  2510. BorderColorEnumContext *borderColorEnum();
  2511. antlr4::tree::TerminalNode *Semi();
  2512. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2513. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2514. };
  2515. BorderColorOptionContext* borderColorOption();
  2516. class FilterModeEnumContext : public antlr4::ParserRuleContext {
  2517. public:
  2518. FilterModeEnumContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2519. virtual size_t getRuleIndex() const override;
  2520. antlr4::tree::TerminalNode *FILTER_MODE_POINT();
  2521. antlr4::tree::TerminalNode *FILTER_MODE_LINEAR();
  2522. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2523. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2524. };
  2525. FilterModeEnumContext* filterModeEnum();
  2526. class ReductionTypeEnumContext : public antlr4::ParserRuleContext {
  2527. public:
  2528. ReductionTypeEnumContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2529. virtual size_t getRuleIndex() const override;
  2530. antlr4::tree::TerminalNode *REDUCTION_TYPE_FILTER();
  2531. antlr4::tree::TerminalNode *REDUCTION_TYPE_COMPARISON();
  2532. antlr4::tree::TerminalNode *REDUCTION_TYPE_MINIMUM();
  2533. antlr4::tree::TerminalNode *REDUCTION_TYPE_MAXIMUM();
  2534. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2535. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2536. };
  2537. ReductionTypeEnumContext* reductionTypeEnum();
  2538. class AddressModeEnumContext : public antlr4::ParserRuleContext {
  2539. public:
  2540. AddressModeEnumContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2541. virtual size_t getRuleIndex() const override;
  2542. antlr4::tree::TerminalNode *ADDRESS_MODE_WRAP();
  2543. antlr4::tree::TerminalNode *ADDRESS_MODE_MIRROR();
  2544. antlr4::tree::TerminalNode *ADDRESS_MODE_CLAMP();
  2545. antlr4::tree::TerminalNode *ADDRESS_MODE_BORDER();
  2546. antlr4::tree::TerminalNode *ADDRESS_MODE_MIRROR_ONCE();
  2547. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2548. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2549. };
  2550. AddressModeEnumContext* addressModeEnum();
  2551. class ComparisonFunctionEnumContext : public antlr4::ParserRuleContext {
  2552. public:
  2553. ComparisonFunctionEnumContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2554. virtual size_t getRuleIndex() const override;
  2555. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_NEVER();
  2556. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_LESS();
  2557. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_EQUAL();
  2558. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_LESS_EQUAL();
  2559. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_GREATER();
  2560. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_NOT_EQUAL();
  2561. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_GREATER_EQUAL();
  2562. antlr4::tree::TerminalNode *COMPARISON_FUNCTION_ALWAYS();
  2563. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2564. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2565. };
  2566. ComparisonFunctionEnumContext* comparisonFunctionEnum();
  2567. class BorderColorEnumContext : public antlr4::ParserRuleContext {
  2568. public:
  2569. BorderColorEnumContext(antlr4::ParserRuleContext *parent, size_t invokingState);
  2570. virtual size_t getRuleIndex() const override;
  2571. antlr4::tree::TerminalNode *BORDER_COLOR_OPAQUE_BLACK();
  2572. antlr4::tree::TerminalNode *BORDER_COLOR_TRANSPARENT_BLACK();
  2573. antlr4::tree::TerminalNode *BORDER_COLOR_OPAQUE_WHITE();
  2574. virtual void enterRule(antlr4::tree::ParseTreeListener *listener) override;
  2575. virtual void exitRule(antlr4::tree::ParseTreeListener *listener) override;
  2576. };
  2577. BorderColorEnumContext* borderColorEnum();
  2578. virtual bool sempred(antlr4::RuleContext *_localctx, size_t ruleIndex, size_t predicateIndex) override;
  2579. bool expressionSempred(ExpressionContext *_localctx, size_t predicateIndex);
  2580. bool expressionExtSempred(ExpressionExtContext *_localctx, size_t predicateIndex);
  2581. private:
  2582. static std::vector<antlr4::dfa::DFA> _decisionToDFA;
  2583. static antlr4::atn::PredictionContextCache _sharedContextCache;
  2584. static std::vector<std::string> _ruleNames;
  2585. static std::vector<std::string> _tokenNames;
  2586. static std::vector<std::string> _literalNames;
  2587. static std::vector<std::string> _symbolicNames;
  2588. static antlr4::dfa::Vocabulary _vocabulary;
  2589. static antlr4::atn::ATN _atn;
  2590. static std::vector<uint16_t> _serializedATN;
  2591. struct Initializer {
  2592. Initializer();
  2593. };
  2594. static Initializer _init;
  2595. };