glslang_tab.cpp 559 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319
  1. /* A Bison parser, made by GNU Bison 3.7.4. */
  2. /* Bison implementation for Yacc-like parsers in C
  3. Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation,
  4. Inc.
  5. This program is free software: you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation, either version 3 of the License, or
  8. (at your option) any later version.
  9. This program is distributed in the hope that it will be useful,
  10. but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. GNU General Public License for more details.
  13. You should have received a copy of the GNU General Public License
  14. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  15. /* As a special exception, you may create a larger work that contains
  16. part or all of the Bison parser skeleton and distribute that work
  17. under terms of your choice, so long as that work isn't itself a
  18. parser generator using the skeleton or a modified version thereof
  19. as a parser skeleton. Alternatively, if you modify or redistribute
  20. the parser skeleton itself, you may (at your option) remove this
  21. special exception, which will cause the skeleton and the resulting
  22. Bison output files to be licensed under the GNU General Public
  23. License without this special exception.
  24. This special exception was added by the Free Software Foundation in
  25. version 2.2 of Bison. */
  26. /* C LALR(1) parser skeleton written by Richard Stallman, by
  27. simplifying the original so-called "semantic" parser. */
  28. /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
  29. especially those whose name start with YY_ or yy_. They are
  30. private implementation details that can be changed or removed. */
  31. /* All symbols defined below should begin with yy or YY, to avoid
  32. infringing on user name space. This should be done even for local
  33. variables, as they might otherwise be expanded by user macros.
  34. There are some unavoidable exceptions within include files to
  35. define necessary library symbols; they are noted "INFRINGES ON
  36. USER NAME SPACE" below. */
  37. /* Identify Bison output, and Bison version. */
  38. #define YYBISON 30704
  39. /* Bison version string. */
  40. #define YYBISON_VERSION "3.7.4"
  41. /* Skeleton name. */
  42. #define YYSKELETON_NAME "yacc.c"
  43. /* Pure parsers. */
  44. #define YYPURE 1
  45. /* Push parsers. */
  46. #define YYPUSH 0
  47. /* Pull parsers. */
  48. #define YYPULL 1
  49. /* First part of user prologue. */
  50. #line 69 "MachineIndependent/glslang.y"
  51. /* Based on:
  52. ANSI C Yacc grammar
  53. In 1985, Jeff Lee published his Yacc grammar (which is accompanied by a
  54. matching Lex specification) for the April 30, 1985 draft version of the
  55. ANSI C standard. Tom Stockfisch reposted it to net.sources in 1987; that
  56. original, as mentioned in the answer to question 17.25 of the comp.lang.c
  57. FAQ, can be ftp'ed from ftp.uu.net, file usenet/net.sources/ansi.c.grammar.Z.
  58. I intend to keep this version as close to the current C Standard grammar as
  59. possible; please let me know if you discover discrepancies.
  60. Jutta Degener, 1995
  61. */
  62. #include "SymbolTable.h"
  63. #include "ParseHelper.h"
  64. #include "../Public/ShaderLang.h"
  65. #include "attribute.h"
  66. using namespace glslang;
  67. #line 97 "MachineIndependent/glslang_tab.cpp"
  68. # ifndef YY_CAST
  69. # ifdef __cplusplus
  70. # define YY_CAST(Type, Val) static_cast<Type> (Val)
  71. # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
  72. # else
  73. # define YY_CAST(Type, Val) ((Type) (Val))
  74. # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
  75. # endif
  76. # endif
  77. # ifndef YY_NULLPTR
  78. # if defined __cplusplus
  79. # if 201103L <= __cplusplus
  80. # define YY_NULLPTR nullptr
  81. # else
  82. # define YY_NULLPTR 0
  83. # endif
  84. # else
  85. # define YY_NULLPTR ((void*)0)
  86. # endif
  87. # endif
  88. #include "glslang_tab.cpp.h"
  89. /* Symbol kind. */
  90. enum yysymbol_kind_t
  91. {
  92. YYSYMBOL_YYEMPTY = -2,
  93. YYSYMBOL_YYEOF = 0, /* "end of file" */
  94. YYSYMBOL_YYerror = 1, /* error */
  95. YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
  96. YYSYMBOL_CONST = 3, /* CONST */
  97. YYSYMBOL_BOOL = 4, /* BOOL */
  98. YYSYMBOL_INT = 5, /* INT */
  99. YYSYMBOL_UINT = 6, /* UINT */
  100. YYSYMBOL_FLOAT = 7, /* FLOAT */
  101. YYSYMBOL_BVEC2 = 8, /* BVEC2 */
  102. YYSYMBOL_BVEC3 = 9, /* BVEC3 */
  103. YYSYMBOL_BVEC4 = 10, /* BVEC4 */
  104. YYSYMBOL_IVEC2 = 11, /* IVEC2 */
  105. YYSYMBOL_IVEC3 = 12, /* IVEC3 */
  106. YYSYMBOL_IVEC4 = 13, /* IVEC4 */
  107. YYSYMBOL_UVEC2 = 14, /* UVEC2 */
  108. YYSYMBOL_UVEC3 = 15, /* UVEC3 */
  109. YYSYMBOL_UVEC4 = 16, /* UVEC4 */
  110. YYSYMBOL_VEC2 = 17, /* VEC2 */
  111. YYSYMBOL_VEC3 = 18, /* VEC3 */
  112. YYSYMBOL_VEC4 = 19, /* VEC4 */
  113. YYSYMBOL_MAT2 = 20, /* MAT2 */
  114. YYSYMBOL_MAT3 = 21, /* MAT3 */
  115. YYSYMBOL_MAT4 = 22, /* MAT4 */
  116. YYSYMBOL_MAT2X2 = 23, /* MAT2X2 */
  117. YYSYMBOL_MAT2X3 = 24, /* MAT2X3 */
  118. YYSYMBOL_MAT2X4 = 25, /* MAT2X4 */
  119. YYSYMBOL_MAT3X2 = 26, /* MAT3X2 */
  120. YYSYMBOL_MAT3X3 = 27, /* MAT3X3 */
  121. YYSYMBOL_MAT3X4 = 28, /* MAT3X4 */
  122. YYSYMBOL_MAT4X2 = 29, /* MAT4X2 */
  123. YYSYMBOL_MAT4X3 = 30, /* MAT4X3 */
  124. YYSYMBOL_MAT4X4 = 31, /* MAT4X4 */
  125. YYSYMBOL_SAMPLER2D = 32, /* SAMPLER2D */
  126. YYSYMBOL_SAMPLER3D = 33, /* SAMPLER3D */
  127. YYSYMBOL_SAMPLERCUBE = 34, /* SAMPLERCUBE */
  128. YYSYMBOL_SAMPLER2DSHADOW = 35, /* SAMPLER2DSHADOW */
  129. YYSYMBOL_SAMPLERCUBESHADOW = 36, /* SAMPLERCUBESHADOW */
  130. YYSYMBOL_SAMPLER2DARRAY = 37, /* SAMPLER2DARRAY */
  131. YYSYMBOL_SAMPLER2DARRAYSHADOW = 38, /* SAMPLER2DARRAYSHADOW */
  132. YYSYMBOL_ISAMPLER2D = 39, /* ISAMPLER2D */
  133. YYSYMBOL_ISAMPLER3D = 40, /* ISAMPLER3D */
  134. YYSYMBOL_ISAMPLERCUBE = 41, /* ISAMPLERCUBE */
  135. YYSYMBOL_ISAMPLER2DARRAY = 42, /* ISAMPLER2DARRAY */
  136. YYSYMBOL_USAMPLER2D = 43, /* USAMPLER2D */
  137. YYSYMBOL_USAMPLER3D = 44, /* USAMPLER3D */
  138. YYSYMBOL_USAMPLERCUBE = 45, /* USAMPLERCUBE */
  139. YYSYMBOL_USAMPLER2DARRAY = 46, /* USAMPLER2DARRAY */
  140. YYSYMBOL_SAMPLER = 47, /* SAMPLER */
  141. YYSYMBOL_SAMPLERSHADOW = 48, /* SAMPLERSHADOW */
  142. YYSYMBOL_TEXTURE2D = 49, /* TEXTURE2D */
  143. YYSYMBOL_TEXTURE3D = 50, /* TEXTURE3D */
  144. YYSYMBOL_TEXTURECUBE = 51, /* TEXTURECUBE */
  145. YYSYMBOL_TEXTURE2DARRAY = 52, /* TEXTURE2DARRAY */
  146. YYSYMBOL_ITEXTURE2D = 53, /* ITEXTURE2D */
  147. YYSYMBOL_ITEXTURE3D = 54, /* ITEXTURE3D */
  148. YYSYMBOL_ITEXTURECUBE = 55, /* ITEXTURECUBE */
  149. YYSYMBOL_ITEXTURE2DARRAY = 56, /* ITEXTURE2DARRAY */
  150. YYSYMBOL_UTEXTURE2D = 57, /* UTEXTURE2D */
  151. YYSYMBOL_UTEXTURE3D = 58, /* UTEXTURE3D */
  152. YYSYMBOL_UTEXTURECUBE = 59, /* UTEXTURECUBE */
  153. YYSYMBOL_UTEXTURE2DARRAY = 60, /* UTEXTURE2DARRAY */
  154. YYSYMBOL_ATTRIBUTE = 61, /* ATTRIBUTE */
  155. YYSYMBOL_VARYING = 62, /* VARYING */
  156. YYSYMBOL_FLOAT16_T = 63, /* FLOAT16_T */
  157. YYSYMBOL_FLOAT32_T = 64, /* FLOAT32_T */
  158. YYSYMBOL_DOUBLE = 65, /* DOUBLE */
  159. YYSYMBOL_FLOAT64_T = 66, /* FLOAT64_T */
  160. YYSYMBOL_INT64_T = 67, /* INT64_T */
  161. YYSYMBOL_UINT64_T = 68, /* UINT64_T */
  162. YYSYMBOL_INT32_T = 69, /* INT32_T */
  163. YYSYMBOL_UINT32_T = 70, /* UINT32_T */
  164. YYSYMBOL_INT16_T = 71, /* INT16_T */
  165. YYSYMBOL_UINT16_T = 72, /* UINT16_T */
  166. YYSYMBOL_INT8_T = 73, /* INT8_T */
  167. YYSYMBOL_UINT8_T = 74, /* UINT8_T */
  168. YYSYMBOL_I64VEC2 = 75, /* I64VEC2 */
  169. YYSYMBOL_I64VEC3 = 76, /* I64VEC3 */
  170. YYSYMBOL_I64VEC4 = 77, /* I64VEC4 */
  171. YYSYMBOL_U64VEC2 = 78, /* U64VEC2 */
  172. YYSYMBOL_U64VEC3 = 79, /* U64VEC3 */
  173. YYSYMBOL_U64VEC4 = 80, /* U64VEC4 */
  174. YYSYMBOL_I32VEC2 = 81, /* I32VEC2 */
  175. YYSYMBOL_I32VEC3 = 82, /* I32VEC3 */
  176. YYSYMBOL_I32VEC4 = 83, /* I32VEC4 */
  177. YYSYMBOL_U32VEC2 = 84, /* U32VEC2 */
  178. YYSYMBOL_U32VEC3 = 85, /* U32VEC3 */
  179. YYSYMBOL_U32VEC4 = 86, /* U32VEC4 */
  180. YYSYMBOL_I16VEC2 = 87, /* I16VEC2 */
  181. YYSYMBOL_I16VEC3 = 88, /* I16VEC3 */
  182. YYSYMBOL_I16VEC4 = 89, /* I16VEC4 */
  183. YYSYMBOL_U16VEC2 = 90, /* U16VEC2 */
  184. YYSYMBOL_U16VEC3 = 91, /* U16VEC3 */
  185. YYSYMBOL_U16VEC4 = 92, /* U16VEC4 */
  186. YYSYMBOL_I8VEC2 = 93, /* I8VEC2 */
  187. YYSYMBOL_I8VEC3 = 94, /* I8VEC3 */
  188. YYSYMBOL_I8VEC4 = 95, /* I8VEC4 */
  189. YYSYMBOL_U8VEC2 = 96, /* U8VEC2 */
  190. YYSYMBOL_U8VEC3 = 97, /* U8VEC3 */
  191. YYSYMBOL_U8VEC4 = 98, /* U8VEC4 */
  192. YYSYMBOL_DVEC2 = 99, /* DVEC2 */
  193. YYSYMBOL_DVEC3 = 100, /* DVEC3 */
  194. YYSYMBOL_DVEC4 = 101, /* DVEC4 */
  195. YYSYMBOL_DMAT2 = 102, /* DMAT2 */
  196. YYSYMBOL_DMAT3 = 103, /* DMAT3 */
  197. YYSYMBOL_DMAT4 = 104, /* DMAT4 */
  198. YYSYMBOL_F16VEC2 = 105, /* F16VEC2 */
  199. YYSYMBOL_F16VEC3 = 106, /* F16VEC3 */
  200. YYSYMBOL_F16VEC4 = 107, /* F16VEC4 */
  201. YYSYMBOL_F16MAT2 = 108, /* F16MAT2 */
  202. YYSYMBOL_F16MAT3 = 109, /* F16MAT3 */
  203. YYSYMBOL_F16MAT4 = 110, /* F16MAT4 */
  204. YYSYMBOL_F32VEC2 = 111, /* F32VEC2 */
  205. YYSYMBOL_F32VEC3 = 112, /* F32VEC3 */
  206. YYSYMBOL_F32VEC4 = 113, /* F32VEC4 */
  207. YYSYMBOL_F32MAT2 = 114, /* F32MAT2 */
  208. YYSYMBOL_F32MAT3 = 115, /* F32MAT3 */
  209. YYSYMBOL_F32MAT4 = 116, /* F32MAT4 */
  210. YYSYMBOL_F64VEC2 = 117, /* F64VEC2 */
  211. YYSYMBOL_F64VEC3 = 118, /* F64VEC3 */
  212. YYSYMBOL_F64VEC4 = 119, /* F64VEC4 */
  213. YYSYMBOL_F64MAT2 = 120, /* F64MAT2 */
  214. YYSYMBOL_F64MAT3 = 121, /* F64MAT3 */
  215. YYSYMBOL_F64MAT4 = 122, /* F64MAT4 */
  216. YYSYMBOL_DMAT2X2 = 123, /* DMAT2X2 */
  217. YYSYMBOL_DMAT2X3 = 124, /* DMAT2X3 */
  218. YYSYMBOL_DMAT2X4 = 125, /* DMAT2X4 */
  219. YYSYMBOL_DMAT3X2 = 126, /* DMAT3X2 */
  220. YYSYMBOL_DMAT3X3 = 127, /* DMAT3X3 */
  221. YYSYMBOL_DMAT3X4 = 128, /* DMAT3X4 */
  222. YYSYMBOL_DMAT4X2 = 129, /* DMAT4X2 */
  223. YYSYMBOL_DMAT4X3 = 130, /* DMAT4X3 */
  224. YYSYMBOL_DMAT4X4 = 131, /* DMAT4X4 */
  225. YYSYMBOL_F16MAT2X2 = 132, /* F16MAT2X2 */
  226. YYSYMBOL_F16MAT2X3 = 133, /* F16MAT2X3 */
  227. YYSYMBOL_F16MAT2X4 = 134, /* F16MAT2X4 */
  228. YYSYMBOL_F16MAT3X2 = 135, /* F16MAT3X2 */
  229. YYSYMBOL_F16MAT3X3 = 136, /* F16MAT3X3 */
  230. YYSYMBOL_F16MAT3X4 = 137, /* F16MAT3X4 */
  231. YYSYMBOL_F16MAT4X2 = 138, /* F16MAT4X2 */
  232. YYSYMBOL_F16MAT4X3 = 139, /* F16MAT4X3 */
  233. YYSYMBOL_F16MAT4X4 = 140, /* F16MAT4X4 */
  234. YYSYMBOL_F32MAT2X2 = 141, /* F32MAT2X2 */
  235. YYSYMBOL_F32MAT2X3 = 142, /* F32MAT2X3 */
  236. YYSYMBOL_F32MAT2X4 = 143, /* F32MAT2X4 */
  237. YYSYMBOL_F32MAT3X2 = 144, /* F32MAT3X2 */
  238. YYSYMBOL_F32MAT3X3 = 145, /* F32MAT3X3 */
  239. YYSYMBOL_F32MAT3X4 = 146, /* F32MAT3X4 */
  240. YYSYMBOL_F32MAT4X2 = 147, /* F32MAT4X2 */
  241. YYSYMBOL_F32MAT4X3 = 148, /* F32MAT4X3 */
  242. YYSYMBOL_F32MAT4X4 = 149, /* F32MAT4X4 */
  243. YYSYMBOL_F64MAT2X2 = 150, /* F64MAT2X2 */
  244. YYSYMBOL_F64MAT2X3 = 151, /* F64MAT2X3 */
  245. YYSYMBOL_F64MAT2X4 = 152, /* F64MAT2X4 */
  246. YYSYMBOL_F64MAT3X2 = 153, /* F64MAT3X2 */
  247. YYSYMBOL_F64MAT3X3 = 154, /* F64MAT3X3 */
  248. YYSYMBOL_F64MAT3X4 = 155, /* F64MAT3X4 */
  249. YYSYMBOL_F64MAT4X2 = 156, /* F64MAT4X2 */
  250. YYSYMBOL_F64MAT4X3 = 157, /* F64MAT4X3 */
  251. YYSYMBOL_F64MAT4X4 = 158, /* F64MAT4X4 */
  252. YYSYMBOL_ATOMIC_UINT = 159, /* ATOMIC_UINT */
  253. YYSYMBOL_ACCSTRUCTNV = 160, /* ACCSTRUCTNV */
  254. YYSYMBOL_ACCSTRUCTEXT = 161, /* ACCSTRUCTEXT */
  255. YYSYMBOL_RAYQUERYEXT = 162, /* RAYQUERYEXT */
  256. YYSYMBOL_FCOOPMATNV = 163, /* FCOOPMATNV */
  257. YYSYMBOL_ICOOPMATNV = 164, /* ICOOPMATNV */
  258. YYSYMBOL_UCOOPMATNV = 165, /* UCOOPMATNV */
  259. YYSYMBOL_SAMPLERCUBEARRAY = 166, /* SAMPLERCUBEARRAY */
  260. YYSYMBOL_SAMPLERCUBEARRAYSHADOW = 167, /* SAMPLERCUBEARRAYSHADOW */
  261. YYSYMBOL_ISAMPLERCUBEARRAY = 168, /* ISAMPLERCUBEARRAY */
  262. YYSYMBOL_USAMPLERCUBEARRAY = 169, /* USAMPLERCUBEARRAY */
  263. YYSYMBOL_SAMPLER1D = 170, /* SAMPLER1D */
  264. YYSYMBOL_SAMPLER1DARRAY = 171, /* SAMPLER1DARRAY */
  265. YYSYMBOL_SAMPLER1DARRAYSHADOW = 172, /* SAMPLER1DARRAYSHADOW */
  266. YYSYMBOL_ISAMPLER1D = 173, /* ISAMPLER1D */
  267. YYSYMBOL_SAMPLER1DSHADOW = 174, /* SAMPLER1DSHADOW */
  268. YYSYMBOL_SAMPLER2DRECT = 175, /* SAMPLER2DRECT */
  269. YYSYMBOL_SAMPLER2DRECTSHADOW = 176, /* SAMPLER2DRECTSHADOW */
  270. YYSYMBOL_ISAMPLER2DRECT = 177, /* ISAMPLER2DRECT */
  271. YYSYMBOL_USAMPLER2DRECT = 178, /* USAMPLER2DRECT */
  272. YYSYMBOL_SAMPLERBUFFER = 179, /* SAMPLERBUFFER */
  273. YYSYMBOL_ISAMPLERBUFFER = 180, /* ISAMPLERBUFFER */
  274. YYSYMBOL_USAMPLERBUFFER = 181, /* USAMPLERBUFFER */
  275. YYSYMBOL_SAMPLER2DMS = 182, /* SAMPLER2DMS */
  276. YYSYMBOL_ISAMPLER2DMS = 183, /* ISAMPLER2DMS */
  277. YYSYMBOL_USAMPLER2DMS = 184, /* USAMPLER2DMS */
  278. YYSYMBOL_SAMPLER2DMSARRAY = 185, /* SAMPLER2DMSARRAY */
  279. YYSYMBOL_ISAMPLER2DMSARRAY = 186, /* ISAMPLER2DMSARRAY */
  280. YYSYMBOL_USAMPLER2DMSARRAY = 187, /* USAMPLER2DMSARRAY */
  281. YYSYMBOL_SAMPLEREXTERNALOES = 188, /* SAMPLEREXTERNALOES */
  282. YYSYMBOL_SAMPLEREXTERNAL2DY2YEXT = 189, /* SAMPLEREXTERNAL2DY2YEXT */
  283. YYSYMBOL_ISAMPLER1DARRAY = 190, /* ISAMPLER1DARRAY */
  284. YYSYMBOL_USAMPLER1D = 191, /* USAMPLER1D */
  285. YYSYMBOL_USAMPLER1DARRAY = 192, /* USAMPLER1DARRAY */
  286. YYSYMBOL_F16SAMPLER1D = 193, /* F16SAMPLER1D */
  287. YYSYMBOL_F16SAMPLER2D = 194, /* F16SAMPLER2D */
  288. YYSYMBOL_F16SAMPLER3D = 195, /* F16SAMPLER3D */
  289. YYSYMBOL_F16SAMPLER2DRECT = 196, /* F16SAMPLER2DRECT */
  290. YYSYMBOL_F16SAMPLERCUBE = 197, /* F16SAMPLERCUBE */
  291. YYSYMBOL_F16SAMPLER1DARRAY = 198, /* F16SAMPLER1DARRAY */
  292. YYSYMBOL_F16SAMPLER2DARRAY = 199, /* F16SAMPLER2DARRAY */
  293. YYSYMBOL_F16SAMPLERCUBEARRAY = 200, /* F16SAMPLERCUBEARRAY */
  294. YYSYMBOL_F16SAMPLERBUFFER = 201, /* F16SAMPLERBUFFER */
  295. YYSYMBOL_F16SAMPLER2DMS = 202, /* F16SAMPLER2DMS */
  296. YYSYMBOL_F16SAMPLER2DMSARRAY = 203, /* F16SAMPLER2DMSARRAY */
  297. YYSYMBOL_F16SAMPLER1DSHADOW = 204, /* F16SAMPLER1DSHADOW */
  298. YYSYMBOL_F16SAMPLER2DSHADOW = 205, /* F16SAMPLER2DSHADOW */
  299. YYSYMBOL_F16SAMPLER1DARRAYSHADOW = 206, /* F16SAMPLER1DARRAYSHADOW */
  300. YYSYMBOL_F16SAMPLER2DARRAYSHADOW = 207, /* F16SAMPLER2DARRAYSHADOW */
  301. YYSYMBOL_F16SAMPLER2DRECTSHADOW = 208, /* F16SAMPLER2DRECTSHADOW */
  302. YYSYMBOL_F16SAMPLERCUBESHADOW = 209, /* F16SAMPLERCUBESHADOW */
  303. YYSYMBOL_F16SAMPLERCUBEARRAYSHADOW = 210, /* F16SAMPLERCUBEARRAYSHADOW */
  304. YYSYMBOL_IMAGE1D = 211, /* IMAGE1D */
  305. YYSYMBOL_IIMAGE1D = 212, /* IIMAGE1D */
  306. YYSYMBOL_UIMAGE1D = 213, /* UIMAGE1D */
  307. YYSYMBOL_IMAGE2D = 214, /* IMAGE2D */
  308. YYSYMBOL_IIMAGE2D = 215, /* IIMAGE2D */
  309. YYSYMBOL_UIMAGE2D = 216, /* UIMAGE2D */
  310. YYSYMBOL_IMAGE3D = 217, /* IMAGE3D */
  311. YYSYMBOL_IIMAGE3D = 218, /* IIMAGE3D */
  312. YYSYMBOL_UIMAGE3D = 219, /* UIMAGE3D */
  313. YYSYMBOL_IMAGE2DRECT = 220, /* IMAGE2DRECT */
  314. YYSYMBOL_IIMAGE2DRECT = 221, /* IIMAGE2DRECT */
  315. YYSYMBOL_UIMAGE2DRECT = 222, /* UIMAGE2DRECT */
  316. YYSYMBOL_IMAGECUBE = 223, /* IMAGECUBE */
  317. YYSYMBOL_IIMAGECUBE = 224, /* IIMAGECUBE */
  318. YYSYMBOL_UIMAGECUBE = 225, /* UIMAGECUBE */
  319. YYSYMBOL_IMAGEBUFFER = 226, /* IMAGEBUFFER */
  320. YYSYMBOL_IIMAGEBUFFER = 227, /* IIMAGEBUFFER */
  321. YYSYMBOL_UIMAGEBUFFER = 228, /* UIMAGEBUFFER */
  322. YYSYMBOL_IMAGE1DARRAY = 229, /* IMAGE1DARRAY */
  323. YYSYMBOL_IIMAGE1DARRAY = 230, /* IIMAGE1DARRAY */
  324. YYSYMBOL_UIMAGE1DARRAY = 231, /* UIMAGE1DARRAY */
  325. YYSYMBOL_IMAGE2DARRAY = 232, /* IMAGE2DARRAY */
  326. YYSYMBOL_IIMAGE2DARRAY = 233, /* IIMAGE2DARRAY */
  327. YYSYMBOL_UIMAGE2DARRAY = 234, /* UIMAGE2DARRAY */
  328. YYSYMBOL_IMAGECUBEARRAY = 235, /* IMAGECUBEARRAY */
  329. YYSYMBOL_IIMAGECUBEARRAY = 236, /* IIMAGECUBEARRAY */
  330. YYSYMBOL_UIMAGECUBEARRAY = 237, /* UIMAGECUBEARRAY */
  331. YYSYMBOL_IMAGE2DMS = 238, /* IMAGE2DMS */
  332. YYSYMBOL_IIMAGE2DMS = 239, /* IIMAGE2DMS */
  333. YYSYMBOL_UIMAGE2DMS = 240, /* UIMAGE2DMS */
  334. YYSYMBOL_IMAGE2DMSARRAY = 241, /* IMAGE2DMSARRAY */
  335. YYSYMBOL_IIMAGE2DMSARRAY = 242, /* IIMAGE2DMSARRAY */
  336. YYSYMBOL_UIMAGE2DMSARRAY = 243, /* UIMAGE2DMSARRAY */
  337. YYSYMBOL_F16IMAGE1D = 244, /* F16IMAGE1D */
  338. YYSYMBOL_F16IMAGE2D = 245, /* F16IMAGE2D */
  339. YYSYMBOL_F16IMAGE3D = 246, /* F16IMAGE3D */
  340. YYSYMBOL_F16IMAGE2DRECT = 247, /* F16IMAGE2DRECT */
  341. YYSYMBOL_F16IMAGECUBE = 248, /* F16IMAGECUBE */
  342. YYSYMBOL_F16IMAGE1DARRAY = 249, /* F16IMAGE1DARRAY */
  343. YYSYMBOL_F16IMAGE2DARRAY = 250, /* F16IMAGE2DARRAY */
  344. YYSYMBOL_F16IMAGECUBEARRAY = 251, /* F16IMAGECUBEARRAY */
  345. YYSYMBOL_F16IMAGEBUFFER = 252, /* F16IMAGEBUFFER */
  346. YYSYMBOL_F16IMAGE2DMS = 253, /* F16IMAGE2DMS */
  347. YYSYMBOL_F16IMAGE2DMSARRAY = 254, /* F16IMAGE2DMSARRAY */
  348. YYSYMBOL_I64IMAGE1D = 255, /* I64IMAGE1D */
  349. YYSYMBOL_U64IMAGE1D = 256, /* U64IMAGE1D */
  350. YYSYMBOL_I64IMAGE2D = 257, /* I64IMAGE2D */
  351. YYSYMBOL_U64IMAGE2D = 258, /* U64IMAGE2D */
  352. YYSYMBOL_I64IMAGE3D = 259, /* I64IMAGE3D */
  353. YYSYMBOL_U64IMAGE3D = 260, /* U64IMAGE3D */
  354. YYSYMBOL_I64IMAGE2DRECT = 261, /* I64IMAGE2DRECT */
  355. YYSYMBOL_U64IMAGE2DRECT = 262, /* U64IMAGE2DRECT */
  356. YYSYMBOL_I64IMAGECUBE = 263, /* I64IMAGECUBE */
  357. YYSYMBOL_U64IMAGECUBE = 264, /* U64IMAGECUBE */
  358. YYSYMBOL_I64IMAGEBUFFER = 265, /* I64IMAGEBUFFER */
  359. YYSYMBOL_U64IMAGEBUFFER = 266, /* U64IMAGEBUFFER */
  360. YYSYMBOL_I64IMAGE1DARRAY = 267, /* I64IMAGE1DARRAY */
  361. YYSYMBOL_U64IMAGE1DARRAY = 268, /* U64IMAGE1DARRAY */
  362. YYSYMBOL_I64IMAGE2DARRAY = 269, /* I64IMAGE2DARRAY */
  363. YYSYMBOL_U64IMAGE2DARRAY = 270, /* U64IMAGE2DARRAY */
  364. YYSYMBOL_I64IMAGECUBEARRAY = 271, /* I64IMAGECUBEARRAY */
  365. YYSYMBOL_U64IMAGECUBEARRAY = 272, /* U64IMAGECUBEARRAY */
  366. YYSYMBOL_I64IMAGE2DMS = 273, /* I64IMAGE2DMS */
  367. YYSYMBOL_U64IMAGE2DMS = 274, /* U64IMAGE2DMS */
  368. YYSYMBOL_I64IMAGE2DMSARRAY = 275, /* I64IMAGE2DMSARRAY */
  369. YYSYMBOL_U64IMAGE2DMSARRAY = 276, /* U64IMAGE2DMSARRAY */
  370. YYSYMBOL_TEXTURECUBEARRAY = 277, /* TEXTURECUBEARRAY */
  371. YYSYMBOL_ITEXTURECUBEARRAY = 278, /* ITEXTURECUBEARRAY */
  372. YYSYMBOL_UTEXTURECUBEARRAY = 279, /* UTEXTURECUBEARRAY */
  373. YYSYMBOL_TEXTURE1D = 280, /* TEXTURE1D */
  374. YYSYMBOL_ITEXTURE1D = 281, /* ITEXTURE1D */
  375. YYSYMBOL_UTEXTURE1D = 282, /* UTEXTURE1D */
  376. YYSYMBOL_TEXTURE1DARRAY = 283, /* TEXTURE1DARRAY */
  377. YYSYMBOL_ITEXTURE1DARRAY = 284, /* ITEXTURE1DARRAY */
  378. YYSYMBOL_UTEXTURE1DARRAY = 285, /* UTEXTURE1DARRAY */
  379. YYSYMBOL_TEXTURE2DRECT = 286, /* TEXTURE2DRECT */
  380. YYSYMBOL_ITEXTURE2DRECT = 287, /* ITEXTURE2DRECT */
  381. YYSYMBOL_UTEXTURE2DRECT = 288, /* UTEXTURE2DRECT */
  382. YYSYMBOL_TEXTUREBUFFER = 289, /* TEXTUREBUFFER */
  383. YYSYMBOL_ITEXTUREBUFFER = 290, /* ITEXTUREBUFFER */
  384. YYSYMBOL_UTEXTUREBUFFER = 291, /* UTEXTUREBUFFER */
  385. YYSYMBOL_TEXTURE2DMS = 292, /* TEXTURE2DMS */
  386. YYSYMBOL_ITEXTURE2DMS = 293, /* ITEXTURE2DMS */
  387. YYSYMBOL_UTEXTURE2DMS = 294, /* UTEXTURE2DMS */
  388. YYSYMBOL_TEXTURE2DMSARRAY = 295, /* TEXTURE2DMSARRAY */
  389. YYSYMBOL_ITEXTURE2DMSARRAY = 296, /* ITEXTURE2DMSARRAY */
  390. YYSYMBOL_UTEXTURE2DMSARRAY = 297, /* UTEXTURE2DMSARRAY */
  391. YYSYMBOL_F16TEXTURE1D = 298, /* F16TEXTURE1D */
  392. YYSYMBOL_F16TEXTURE2D = 299, /* F16TEXTURE2D */
  393. YYSYMBOL_F16TEXTURE3D = 300, /* F16TEXTURE3D */
  394. YYSYMBOL_F16TEXTURE2DRECT = 301, /* F16TEXTURE2DRECT */
  395. YYSYMBOL_F16TEXTURECUBE = 302, /* F16TEXTURECUBE */
  396. YYSYMBOL_F16TEXTURE1DARRAY = 303, /* F16TEXTURE1DARRAY */
  397. YYSYMBOL_F16TEXTURE2DARRAY = 304, /* F16TEXTURE2DARRAY */
  398. YYSYMBOL_F16TEXTURECUBEARRAY = 305, /* F16TEXTURECUBEARRAY */
  399. YYSYMBOL_F16TEXTUREBUFFER = 306, /* F16TEXTUREBUFFER */
  400. YYSYMBOL_F16TEXTURE2DMS = 307, /* F16TEXTURE2DMS */
  401. YYSYMBOL_F16TEXTURE2DMSARRAY = 308, /* F16TEXTURE2DMSARRAY */
  402. YYSYMBOL_SUBPASSINPUT = 309, /* SUBPASSINPUT */
  403. YYSYMBOL_SUBPASSINPUTMS = 310, /* SUBPASSINPUTMS */
  404. YYSYMBOL_ISUBPASSINPUT = 311, /* ISUBPASSINPUT */
  405. YYSYMBOL_ISUBPASSINPUTMS = 312, /* ISUBPASSINPUTMS */
  406. YYSYMBOL_USUBPASSINPUT = 313, /* USUBPASSINPUT */
  407. YYSYMBOL_USUBPASSINPUTMS = 314, /* USUBPASSINPUTMS */
  408. YYSYMBOL_F16SUBPASSINPUT = 315, /* F16SUBPASSINPUT */
  409. YYSYMBOL_F16SUBPASSINPUTMS = 316, /* F16SUBPASSINPUTMS */
  410. YYSYMBOL_LEFT_OP = 317, /* LEFT_OP */
  411. YYSYMBOL_RIGHT_OP = 318, /* RIGHT_OP */
  412. YYSYMBOL_INC_OP = 319, /* INC_OP */
  413. YYSYMBOL_DEC_OP = 320, /* DEC_OP */
  414. YYSYMBOL_LE_OP = 321, /* LE_OP */
  415. YYSYMBOL_GE_OP = 322, /* GE_OP */
  416. YYSYMBOL_EQ_OP = 323, /* EQ_OP */
  417. YYSYMBOL_NE_OP = 324, /* NE_OP */
  418. YYSYMBOL_AND_OP = 325, /* AND_OP */
  419. YYSYMBOL_OR_OP = 326, /* OR_OP */
  420. YYSYMBOL_XOR_OP = 327, /* XOR_OP */
  421. YYSYMBOL_MUL_ASSIGN = 328, /* MUL_ASSIGN */
  422. YYSYMBOL_DIV_ASSIGN = 329, /* DIV_ASSIGN */
  423. YYSYMBOL_ADD_ASSIGN = 330, /* ADD_ASSIGN */
  424. YYSYMBOL_MOD_ASSIGN = 331, /* MOD_ASSIGN */
  425. YYSYMBOL_LEFT_ASSIGN = 332, /* LEFT_ASSIGN */
  426. YYSYMBOL_RIGHT_ASSIGN = 333, /* RIGHT_ASSIGN */
  427. YYSYMBOL_AND_ASSIGN = 334, /* AND_ASSIGN */
  428. YYSYMBOL_XOR_ASSIGN = 335, /* XOR_ASSIGN */
  429. YYSYMBOL_OR_ASSIGN = 336, /* OR_ASSIGN */
  430. YYSYMBOL_SUB_ASSIGN = 337, /* SUB_ASSIGN */
  431. YYSYMBOL_STRING_LITERAL = 338, /* STRING_LITERAL */
  432. YYSYMBOL_LEFT_PAREN = 339, /* LEFT_PAREN */
  433. YYSYMBOL_RIGHT_PAREN = 340, /* RIGHT_PAREN */
  434. YYSYMBOL_LEFT_BRACKET = 341, /* LEFT_BRACKET */
  435. YYSYMBOL_RIGHT_BRACKET = 342, /* RIGHT_BRACKET */
  436. YYSYMBOL_LEFT_BRACE = 343, /* LEFT_BRACE */
  437. YYSYMBOL_RIGHT_BRACE = 344, /* RIGHT_BRACE */
  438. YYSYMBOL_DOT = 345, /* DOT */
  439. YYSYMBOL_COMMA = 346, /* COMMA */
  440. YYSYMBOL_COLON = 347, /* COLON */
  441. YYSYMBOL_EQUAL = 348, /* EQUAL */
  442. YYSYMBOL_SEMICOLON = 349, /* SEMICOLON */
  443. YYSYMBOL_BANG = 350, /* BANG */
  444. YYSYMBOL_DASH = 351, /* DASH */
  445. YYSYMBOL_TILDE = 352, /* TILDE */
  446. YYSYMBOL_PLUS = 353, /* PLUS */
  447. YYSYMBOL_STAR = 354, /* STAR */
  448. YYSYMBOL_SLASH = 355, /* SLASH */
  449. YYSYMBOL_PERCENT = 356, /* PERCENT */
  450. YYSYMBOL_LEFT_ANGLE = 357, /* LEFT_ANGLE */
  451. YYSYMBOL_RIGHT_ANGLE = 358, /* RIGHT_ANGLE */
  452. YYSYMBOL_VERTICAL_BAR = 359, /* VERTICAL_BAR */
  453. YYSYMBOL_CARET = 360, /* CARET */
  454. YYSYMBOL_AMPERSAND = 361, /* AMPERSAND */
  455. YYSYMBOL_QUESTION = 362, /* QUESTION */
  456. YYSYMBOL_INVARIANT = 363, /* INVARIANT */
  457. YYSYMBOL_HIGH_PRECISION = 364, /* HIGH_PRECISION */
  458. YYSYMBOL_MEDIUM_PRECISION = 365, /* MEDIUM_PRECISION */
  459. YYSYMBOL_LOW_PRECISION = 366, /* LOW_PRECISION */
  460. YYSYMBOL_PRECISION = 367, /* PRECISION */
  461. YYSYMBOL_PACKED = 368, /* PACKED */
  462. YYSYMBOL_RESOURCE = 369, /* RESOURCE */
  463. YYSYMBOL_SUPERP = 370, /* SUPERP */
  464. YYSYMBOL_FLOATCONSTANT = 371, /* FLOATCONSTANT */
  465. YYSYMBOL_INTCONSTANT = 372, /* INTCONSTANT */
  466. YYSYMBOL_UINTCONSTANT = 373, /* UINTCONSTANT */
  467. YYSYMBOL_BOOLCONSTANT = 374, /* BOOLCONSTANT */
  468. YYSYMBOL_IDENTIFIER = 375, /* IDENTIFIER */
  469. YYSYMBOL_TYPE_NAME = 376, /* TYPE_NAME */
  470. YYSYMBOL_CENTROID = 377, /* CENTROID */
  471. YYSYMBOL_IN = 378, /* IN */
  472. YYSYMBOL_OUT = 379, /* OUT */
  473. YYSYMBOL_INOUT = 380, /* INOUT */
  474. YYSYMBOL_STRUCT = 381, /* STRUCT */
  475. YYSYMBOL_VOID = 382, /* VOID */
  476. YYSYMBOL_WHILE = 383, /* WHILE */
  477. YYSYMBOL_BREAK = 384, /* BREAK */
  478. YYSYMBOL_CONTINUE = 385, /* CONTINUE */
  479. YYSYMBOL_DO = 386, /* DO */
  480. YYSYMBOL_ELSE = 387, /* ELSE */
  481. YYSYMBOL_FOR = 388, /* FOR */
  482. YYSYMBOL_IF = 389, /* IF */
  483. YYSYMBOL_DISCARD = 390, /* DISCARD */
  484. YYSYMBOL_RETURN = 391, /* RETURN */
  485. YYSYMBOL_SWITCH = 392, /* SWITCH */
  486. YYSYMBOL_CASE = 393, /* CASE */
  487. YYSYMBOL_DEFAULT = 394, /* DEFAULT */
  488. YYSYMBOL_TERMINATE_INVOCATION = 395, /* TERMINATE_INVOCATION */
  489. YYSYMBOL_TERMINATE_RAY = 396, /* TERMINATE_RAY */
  490. YYSYMBOL_IGNORE_INTERSECTION = 397, /* IGNORE_INTERSECTION */
  491. YYSYMBOL_UNIFORM = 398, /* UNIFORM */
  492. YYSYMBOL_SHARED = 399, /* SHARED */
  493. YYSYMBOL_BUFFER = 400, /* BUFFER */
  494. YYSYMBOL_FLAT = 401, /* FLAT */
  495. YYSYMBOL_SMOOTH = 402, /* SMOOTH */
  496. YYSYMBOL_LAYOUT = 403, /* LAYOUT */
  497. YYSYMBOL_DOUBLECONSTANT = 404, /* DOUBLECONSTANT */
  498. YYSYMBOL_INT16CONSTANT = 405, /* INT16CONSTANT */
  499. YYSYMBOL_UINT16CONSTANT = 406, /* UINT16CONSTANT */
  500. YYSYMBOL_FLOAT16CONSTANT = 407, /* FLOAT16CONSTANT */
  501. YYSYMBOL_INT32CONSTANT = 408, /* INT32CONSTANT */
  502. YYSYMBOL_UINT32CONSTANT = 409, /* UINT32CONSTANT */
  503. YYSYMBOL_INT64CONSTANT = 410, /* INT64CONSTANT */
  504. YYSYMBOL_UINT64CONSTANT = 411, /* UINT64CONSTANT */
  505. YYSYMBOL_SUBROUTINE = 412, /* SUBROUTINE */
  506. YYSYMBOL_DEMOTE = 413, /* DEMOTE */
  507. YYSYMBOL_PAYLOADNV = 414, /* PAYLOADNV */
  508. YYSYMBOL_PAYLOADINNV = 415, /* PAYLOADINNV */
  509. YYSYMBOL_HITATTRNV = 416, /* HITATTRNV */
  510. YYSYMBOL_CALLDATANV = 417, /* CALLDATANV */
  511. YYSYMBOL_CALLDATAINNV = 418, /* CALLDATAINNV */
  512. YYSYMBOL_PAYLOADEXT = 419, /* PAYLOADEXT */
  513. YYSYMBOL_PAYLOADINEXT = 420, /* PAYLOADINEXT */
  514. YYSYMBOL_HITATTREXT = 421, /* HITATTREXT */
  515. YYSYMBOL_CALLDATAEXT = 422, /* CALLDATAEXT */
  516. YYSYMBOL_CALLDATAINEXT = 423, /* CALLDATAINEXT */
  517. YYSYMBOL_PATCH = 424, /* PATCH */
  518. YYSYMBOL_SAMPLE = 425, /* SAMPLE */
  519. YYSYMBOL_NONUNIFORM = 426, /* NONUNIFORM */
  520. YYSYMBOL_COHERENT = 427, /* COHERENT */
  521. YYSYMBOL_VOLATILE = 428, /* VOLATILE */
  522. YYSYMBOL_RESTRICT = 429, /* RESTRICT */
  523. YYSYMBOL_READONLY = 430, /* READONLY */
  524. YYSYMBOL_WRITEONLY = 431, /* WRITEONLY */
  525. YYSYMBOL_DEVICECOHERENT = 432, /* DEVICECOHERENT */
  526. YYSYMBOL_QUEUEFAMILYCOHERENT = 433, /* QUEUEFAMILYCOHERENT */
  527. YYSYMBOL_WORKGROUPCOHERENT = 434, /* WORKGROUPCOHERENT */
  528. YYSYMBOL_SUBGROUPCOHERENT = 435, /* SUBGROUPCOHERENT */
  529. YYSYMBOL_NONPRIVATE = 436, /* NONPRIVATE */
  530. YYSYMBOL_SHADERCALLCOHERENT = 437, /* SHADERCALLCOHERENT */
  531. YYSYMBOL_NOPERSPECTIVE = 438, /* NOPERSPECTIVE */
  532. YYSYMBOL_EXPLICITINTERPAMD = 439, /* EXPLICITINTERPAMD */
  533. YYSYMBOL_PERVERTEXNV = 440, /* PERVERTEXNV */
  534. YYSYMBOL_PERPRIMITIVENV = 441, /* PERPRIMITIVENV */
  535. YYSYMBOL_PERVIEWNV = 442, /* PERVIEWNV */
  536. YYSYMBOL_PERTASKNV = 443, /* PERTASKNV */
  537. YYSYMBOL_PRECISE = 444, /* PRECISE */
  538. YYSYMBOL_YYACCEPT = 445, /* $accept */
  539. YYSYMBOL_variable_identifier = 446, /* variable_identifier */
  540. YYSYMBOL_primary_expression = 447, /* primary_expression */
  541. YYSYMBOL_postfix_expression = 448, /* postfix_expression */
  542. YYSYMBOL_integer_expression = 449, /* integer_expression */
  543. YYSYMBOL_function_call = 450, /* function_call */
  544. YYSYMBOL_function_call_or_method = 451, /* function_call_or_method */
  545. YYSYMBOL_function_call_generic = 452, /* function_call_generic */
  546. YYSYMBOL_function_call_header_no_parameters = 453, /* function_call_header_no_parameters */
  547. YYSYMBOL_function_call_header_with_parameters = 454, /* function_call_header_with_parameters */
  548. YYSYMBOL_function_call_header = 455, /* function_call_header */
  549. YYSYMBOL_function_identifier = 456, /* function_identifier */
  550. YYSYMBOL_unary_expression = 457, /* unary_expression */
  551. YYSYMBOL_unary_operator = 458, /* unary_operator */
  552. YYSYMBOL_multiplicative_expression = 459, /* multiplicative_expression */
  553. YYSYMBOL_additive_expression = 460, /* additive_expression */
  554. YYSYMBOL_shift_expression = 461, /* shift_expression */
  555. YYSYMBOL_relational_expression = 462, /* relational_expression */
  556. YYSYMBOL_equality_expression = 463, /* equality_expression */
  557. YYSYMBOL_and_expression = 464, /* and_expression */
  558. YYSYMBOL_exclusive_or_expression = 465, /* exclusive_or_expression */
  559. YYSYMBOL_inclusive_or_expression = 466, /* inclusive_or_expression */
  560. YYSYMBOL_logical_and_expression = 467, /* logical_and_expression */
  561. YYSYMBOL_logical_xor_expression = 468, /* logical_xor_expression */
  562. YYSYMBOL_logical_or_expression = 469, /* logical_or_expression */
  563. YYSYMBOL_conditional_expression = 470, /* conditional_expression */
  564. YYSYMBOL_471_1 = 471, /* $@1 */
  565. YYSYMBOL_assignment_expression = 472, /* assignment_expression */
  566. YYSYMBOL_assignment_operator = 473, /* assignment_operator */
  567. YYSYMBOL_expression = 474, /* expression */
  568. YYSYMBOL_constant_expression = 475, /* constant_expression */
  569. YYSYMBOL_declaration = 476, /* declaration */
  570. YYSYMBOL_block_structure = 477, /* block_structure */
  571. YYSYMBOL_478_2 = 478, /* $@2 */
  572. YYSYMBOL_identifier_list = 479, /* identifier_list */
  573. YYSYMBOL_function_prototype = 480, /* function_prototype */
  574. YYSYMBOL_function_declarator = 481, /* function_declarator */
  575. YYSYMBOL_function_header_with_parameters = 482, /* function_header_with_parameters */
  576. YYSYMBOL_function_header = 483, /* function_header */
  577. YYSYMBOL_parameter_declarator = 484, /* parameter_declarator */
  578. YYSYMBOL_parameter_declaration = 485, /* parameter_declaration */
  579. YYSYMBOL_parameter_type_specifier = 486, /* parameter_type_specifier */
  580. YYSYMBOL_init_declarator_list = 487, /* init_declarator_list */
  581. YYSYMBOL_single_declaration = 488, /* single_declaration */
  582. YYSYMBOL_fully_specified_type = 489, /* fully_specified_type */
  583. YYSYMBOL_invariant_qualifier = 490, /* invariant_qualifier */
  584. YYSYMBOL_interpolation_qualifier = 491, /* interpolation_qualifier */
  585. YYSYMBOL_layout_qualifier = 492, /* layout_qualifier */
  586. YYSYMBOL_layout_qualifier_id_list = 493, /* layout_qualifier_id_list */
  587. YYSYMBOL_layout_qualifier_id = 494, /* layout_qualifier_id */
  588. YYSYMBOL_precise_qualifier = 495, /* precise_qualifier */
  589. YYSYMBOL_type_qualifier = 496, /* type_qualifier */
  590. YYSYMBOL_single_type_qualifier = 497, /* single_type_qualifier */
  591. YYSYMBOL_storage_qualifier = 498, /* storage_qualifier */
  592. YYSYMBOL_non_uniform_qualifier = 499, /* non_uniform_qualifier */
  593. YYSYMBOL_type_name_list = 500, /* type_name_list */
  594. YYSYMBOL_type_specifier = 501, /* type_specifier */
  595. YYSYMBOL_array_specifier = 502, /* array_specifier */
  596. YYSYMBOL_type_parameter_specifier_opt = 503, /* type_parameter_specifier_opt */
  597. YYSYMBOL_type_parameter_specifier = 504, /* type_parameter_specifier */
  598. YYSYMBOL_type_parameter_specifier_list = 505, /* type_parameter_specifier_list */
  599. YYSYMBOL_type_specifier_nonarray = 506, /* type_specifier_nonarray */
  600. YYSYMBOL_precision_qualifier = 507, /* precision_qualifier */
  601. YYSYMBOL_struct_specifier = 508, /* struct_specifier */
  602. YYSYMBOL_509_3 = 509, /* $@3 */
  603. YYSYMBOL_510_4 = 510, /* $@4 */
  604. YYSYMBOL_struct_declaration_list = 511, /* struct_declaration_list */
  605. YYSYMBOL_struct_declaration = 512, /* struct_declaration */
  606. YYSYMBOL_struct_declarator_list = 513, /* struct_declarator_list */
  607. YYSYMBOL_struct_declarator = 514, /* struct_declarator */
  608. YYSYMBOL_initializer = 515, /* initializer */
  609. YYSYMBOL_initializer_list = 516, /* initializer_list */
  610. YYSYMBOL_declaration_statement = 517, /* declaration_statement */
  611. YYSYMBOL_statement = 518, /* statement */
  612. YYSYMBOL_simple_statement = 519, /* simple_statement */
  613. YYSYMBOL_demote_statement = 520, /* demote_statement */
  614. YYSYMBOL_compound_statement = 521, /* compound_statement */
  615. YYSYMBOL_522_5 = 522, /* $@5 */
  616. YYSYMBOL_523_6 = 523, /* $@6 */
  617. YYSYMBOL_statement_no_new_scope = 524, /* statement_no_new_scope */
  618. YYSYMBOL_statement_scoped = 525, /* statement_scoped */
  619. YYSYMBOL_526_7 = 526, /* $@7 */
  620. YYSYMBOL_527_8 = 527, /* $@8 */
  621. YYSYMBOL_compound_statement_no_new_scope = 528, /* compound_statement_no_new_scope */
  622. YYSYMBOL_statement_list = 529, /* statement_list */
  623. YYSYMBOL_expression_statement = 530, /* expression_statement */
  624. YYSYMBOL_selection_statement = 531, /* selection_statement */
  625. YYSYMBOL_selection_statement_nonattributed = 532, /* selection_statement_nonattributed */
  626. YYSYMBOL_selection_rest_statement = 533, /* selection_rest_statement */
  627. YYSYMBOL_condition = 534, /* condition */
  628. YYSYMBOL_switch_statement = 535, /* switch_statement */
  629. YYSYMBOL_switch_statement_nonattributed = 536, /* switch_statement_nonattributed */
  630. YYSYMBOL_537_9 = 537, /* $@9 */
  631. YYSYMBOL_switch_statement_list = 538, /* switch_statement_list */
  632. YYSYMBOL_case_label = 539, /* case_label */
  633. YYSYMBOL_iteration_statement = 540, /* iteration_statement */
  634. YYSYMBOL_iteration_statement_nonattributed = 541, /* iteration_statement_nonattributed */
  635. YYSYMBOL_542_10 = 542, /* $@10 */
  636. YYSYMBOL_543_11 = 543, /* $@11 */
  637. YYSYMBOL_544_12 = 544, /* $@12 */
  638. YYSYMBOL_for_init_statement = 545, /* for_init_statement */
  639. YYSYMBOL_conditionopt = 546, /* conditionopt */
  640. YYSYMBOL_for_rest_statement = 547, /* for_rest_statement */
  641. YYSYMBOL_jump_statement = 548, /* jump_statement */
  642. YYSYMBOL_translation_unit = 549, /* translation_unit */
  643. YYSYMBOL_external_declaration = 550, /* external_declaration */
  644. YYSYMBOL_function_definition = 551, /* function_definition */
  645. YYSYMBOL_552_13 = 552, /* $@13 */
  646. YYSYMBOL_attribute = 553, /* attribute */
  647. YYSYMBOL_attribute_list = 554, /* attribute_list */
  648. YYSYMBOL_single_attribute = 555 /* single_attribute */
  649. };
  650. typedef enum yysymbol_kind_t yysymbol_kind_t;
  651. /* Second part of user prologue. */
  652. #line 133 "MachineIndependent/glslang.y"
  653. /* windows only pragma */
  654. #ifdef _MSC_VER
  655. #pragma warning(disable : 4065)
  656. #pragma warning(disable : 4127)
  657. #pragma warning(disable : 4244)
  658. #endif
  659. #define parseContext (*pParseContext)
  660. #define yyerror(context, msg) context->parserError(msg)
  661. extern int yylex(YYSTYPE*, TParseContext&);
  662. #line 702 "MachineIndependent/glslang_tab.cpp"
  663. #ifdef short
  664. # undef short
  665. #endif
  666. /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
  667. <limits.h> and (if available) <stdint.h> are included
  668. so that the code can choose integer types of a good width. */
  669. #ifndef __PTRDIFF_MAX__
  670. # include <limits.h> /* INFRINGES ON USER NAME SPACE */
  671. # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
  672. # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
  673. # define YY_STDINT_H
  674. # endif
  675. #endif
  676. /* Narrow types that promote to a signed type and that can represent a
  677. signed or unsigned integer of at least N bits. In tables they can
  678. save space and decrease cache pressure. Promoting to a signed type
  679. helps avoid bugs in integer arithmetic. */
  680. #ifdef __INT_LEAST8_MAX__
  681. typedef __INT_LEAST8_TYPE__ yytype_int8;
  682. #elif defined YY_STDINT_H
  683. typedef int_least8_t yytype_int8;
  684. #else
  685. typedef signed char yytype_int8;
  686. #endif
  687. #ifdef __INT_LEAST16_MAX__
  688. typedef __INT_LEAST16_TYPE__ yytype_int16;
  689. #elif defined YY_STDINT_H
  690. typedef int_least16_t yytype_int16;
  691. #else
  692. typedef short yytype_int16;
  693. #endif
  694. #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
  695. typedef __UINT_LEAST8_TYPE__ yytype_uint8;
  696. #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
  697. && UINT_LEAST8_MAX <= INT_MAX)
  698. typedef uint_least8_t yytype_uint8;
  699. #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
  700. typedef unsigned char yytype_uint8;
  701. #else
  702. typedef short yytype_uint8;
  703. #endif
  704. #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
  705. typedef __UINT_LEAST16_TYPE__ yytype_uint16;
  706. #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
  707. && UINT_LEAST16_MAX <= INT_MAX)
  708. typedef uint_least16_t yytype_uint16;
  709. #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
  710. typedef unsigned short yytype_uint16;
  711. #else
  712. typedef int yytype_uint16;
  713. #endif
  714. #ifndef YYPTRDIFF_T
  715. # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
  716. # define YYPTRDIFF_T __PTRDIFF_TYPE__
  717. # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
  718. # elif defined PTRDIFF_MAX
  719. # ifndef ptrdiff_t
  720. # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  721. # endif
  722. # define YYPTRDIFF_T ptrdiff_t
  723. # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
  724. # else
  725. # define YYPTRDIFF_T long
  726. # define YYPTRDIFF_MAXIMUM LONG_MAX
  727. # endif
  728. #endif
  729. #ifndef YYSIZE_T
  730. # ifdef __SIZE_TYPE__
  731. # define YYSIZE_T __SIZE_TYPE__
  732. # elif defined size_t
  733. # define YYSIZE_T size_t
  734. # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
  735. # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
  736. # define YYSIZE_T size_t
  737. # else
  738. # define YYSIZE_T unsigned
  739. # endif
  740. #endif
  741. #define YYSIZE_MAXIMUM \
  742. YY_CAST (YYPTRDIFF_T, \
  743. (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
  744. ? YYPTRDIFF_MAXIMUM \
  745. : YY_CAST (YYSIZE_T, -1)))
  746. #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  747. /* Stored state numbers (used for stacks). */
  748. typedef yytype_int16 yy_state_t;
  749. /* State numbers in computations. */
  750. typedef int yy_state_fast_t;
  751. #ifndef YY_
  752. # if defined YYENABLE_NLS && YYENABLE_NLS
  753. # if ENABLE_NLS
  754. # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
  755. # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
  756. # endif
  757. # endif
  758. # ifndef YY_
  759. # define YY_(Msgid) Msgid
  760. # endif
  761. #endif
  762. #ifndef YY_ATTRIBUTE_PURE
  763. # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
  764. # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
  765. # else
  766. # define YY_ATTRIBUTE_PURE
  767. # endif
  768. #endif
  769. #ifndef YY_ATTRIBUTE_UNUSED
  770. # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
  771. # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
  772. # else
  773. # define YY_ATTRIBUTE_UNUSED
  774. # endif
  775. #endif
  776. /* Suppress unused-variable warnings by "using" E. */
  777. #if ! defined lint || defined __GNUC__
  778. # define YYUSE(E) ((void) (E))
  779. #else
  780. # define YYUSE(E) /* empty */
  781. #endif
  782. #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
  783. /* Suppress an incorrect diagnostic about yylval being uninitialized. */
  784. # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
  785. _Pragma ("GCC diagnostic push") \
  786. _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
  787. _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
  788. # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
  789. _Pragma ("GCC diagnostic pop")
  790. #else
  791. # define YY_INITIAL_VALUE(Value) Value
  792. #endif
  793. #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  794. # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  795. # define YY_IGNORE_MAYBE_UNINITIALIZED_END
  796. #endif
  797. #ifndef YY_INITIAL_VALUE
  798. # define YY_INITIAL_VALUE(Value) /* Nothing. */
  799. #endif
  800. #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
  801. # define YY_IGNORE_USELESS_CAST_BEGIN \
  802. _Pragma ("GCC diagnostic push") \
  803. _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
  804. # define YY_IGNORE_USELESS_CAST_END \
  805. _Pragma ("GCC diagnostic pop")
  806. #endif
  807. #ifndef YY_IGNORE_USELESS_CAST_BEGIN
  808. # define YY_IGNORE_USELESS_CAST_BEGIN
  809. # define YY_IGNORE_USELESS_CAST_END
  810. #endif
  811. #define YY_ASSERT(E) ((void) (0 && (E)))
  812. #if 1
  813. /* The parser invokes alloca or malloc; define the necessary symbols. */
  814. # ifdef YYSTACK_USE_ALLOCA
  815. # if YYSTACK_USE_ALLOCA
  816. # ifdef __GNUC__
  817. # define YYSTACK_ALLOC __builtin_alloca
  818. # elif defined __BUILTIN_VA_ARG_INCR
  819. # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
  820. # elif defined _AIX
  821. # define YYSTACK_ALLOC __alloca
  822. # elif defined _MSC_VER
  823. # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
  824. # define alloca _alloca
  825. # else
  826. # define YYSTACK_ALLOC alloca
  827. # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
  828. # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
  829. /* Use EXIT_SUCCESS as a witness for stdlib.h. */
  830. # ifndef EXIT_SUCCESS
  831. # define EXIT_SUCCESS 0
  832. # endif
  833. # endif
  834. # endif
  835. # endif
  836. # endif
  837. # ifdef YYSTACK_ALLOC
  838. /* Pacify GCC's 'empty if-body' warning. */
  839. # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
  840. # ifndef YYSTACK_ALLOC_MAXIMUM
  841. /* The OS might guarantee only one guard page at the bottom of the stack,
  842. and a page size can be as small as 4096 bytes. So we cannot safely
  843. invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
  844. to allow for a few compiler-allocated temporary stack slots. */
  845. # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
  846. # endif
  847. # else
  848. # define YYSTACK_ALLOC YYMALLOC
  849. # define YYSTACK_FREE YYFREE
  850. # ifndef YYSTACK_ALLOC_MAXIMUM
  851. # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
  852. # endif
  853. # if (defined __cplusplus && ! defined EXIT_SUCCESS \
  854. && ! ((defined YYMALLOC || defined malloc) \
  855. && (defined YYFREE || defined free)))
  856. # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
  857. # ifndef EXIT_SUCCESS
  858. # define EXIT_SUCCESS 0
  859. # endif
  860. # endif
  861. # ifndef YYMALLOC
  862. # define YYMALLOC malloc
  863. # if ! defined malloc && ! defined EXIT_SUCCESS
  864. void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
  865. # endif
  866. # endif
  867. # ifndef YYFREE
  868. # define YYFREE free
  869. # if ! defined free && ! defined EXIT_SUCCESS
  870. void free (void *); /* INFRINGES ON USER NAME SPACE */
  871. # endif
  872. # endif
  873. # endif
  874. #endif /* 1 */
  875. #if (! defined yyoverflow \
  876. && (! defined __cplusplus \
  877. || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
  878. /* A type that is properly aligned for any stack member. */
  879. union yyalloc
  880. {
  881. yy_state_t yyss_alloc;
  882. YYSTYPE yyvs_alloc;
  883. };
  884. /* The size of the maximum gap between one aligned stack and the next. */
  885. # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
  886. /* The size of an array large to enough to hold all stacks, each with
  887. N elements. */
  888. # define YYSTACK_BYTES(N) \
  889. ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \
  890. + YYSTACK_GAP_MAXIMUM)
  891. # define YYCOPY_NEEDED 1
  892. /* Relocate STACK from its old location to the new one. The
  893. local variables YYSIZE and YYSTACKSIZE give the old and new number of
  894. elements in the stack, and YYPTR gives the new location of the
  895. stack. Advance YYPTR to a properly aligned location for the next
  896. stack. */
  897. # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
  898. do \
  899. { \
  900. YYPTRDIFF_T yynewbytes; \
  901. YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
  902. Stack = &yyptr->Stack_alloc; \
  903. yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  904. yyptr += yynewbytes / YYSIZEOF (*yyptr); \
  905. } \
  906. while (0)
  907. #endif
  908. #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
  909. /* Copy COUNT objects from SRC to DST. The source and destination do
  910. not overlap. */
  911. # ifndef YYCOPY
  912. # if defined __GNUC__ && 1 < __GNUC__
  913. # define YYCOPY(Dst, Src, Count) \
  914. __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
  915. # else
  916. # define YYCOPY(Dst, Src, Count) \
  917. do \
  918. { \
  919. YYPTRDIFF_T yyi; \
  920. for (yyi = 0; yyi < (Count); yyi++) \
  921. (Dst)[yyi] = (Src)[yyi]; \
  922. } \
  923. while (0)
  924. # endif
  925. # endif
  926. #endif /* !YYCOPY_NEEDED */
  927. /* YYFINAL -- State number of the termination state. */
  928. #define YYFINAL 416
  929. /* YYLAST -- Last index in YYTABLE. */
  930. #define YYLAST 10537
  931. /* YYNTOKENS -- Number of terminals. */
  932. #define YYNTOKENS 445
  933. /* YYNNTS -- Number of nonterminals. */
  934. #define YYNNTS 111
  935. /* YYNRULES -- Number of rules. */
  936. #define YYNRULES 617
  937. /* YYNSTATES -- Number of states. */
  938. #define YYNSTATES 765
  939. /* YYMAXUTOK -- Last valid token kind. */
  940. #define YYMAXUTOK 699
  941. /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
  942. as returned by yylex, with out-of-bounds checking. */
  943. #define YYTRANSLATE(YYX) \
  944. (0 <= (YYX) && (YYX) <= YYMAXUTOK \
  945. ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
  946. : YYSYMBOL_YYUNDEF)
  947. /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
  948. as returned by yylex. */
  949. static const yytype_int16 yytranslate[] =
  950. {
  951. 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  952. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  953. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  954. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  955. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  956. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  957. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  958. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  959. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  960. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  961. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  962. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  963. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  964. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  965. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  966. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  967. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  968. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  969. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  970. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  971. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  972. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  973. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  974. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  975. 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
  976. 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
  977. 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  978. 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  979. 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
  980. 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
  981. 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
  982. 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  983. 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  984. 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
  985. 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
  986. 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
  987. 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
  988. 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
  989. 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
  990. 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
  991. 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
  992. 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
  993. 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
  994. 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
  995. 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
  996. 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
  997. 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
  998. 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
  999. 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
  1000. 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
  1001. 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
  1002. 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
  1003. 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
  1004. 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  1005. 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
  1006. 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
  1007. 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
  1008. 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
  1009. 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
  1010. 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
  1011. 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
  1012. 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
  1013. 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
  1014. 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
  1015. 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
  1016. 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
  1017. 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
  1018. 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
  1019. 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
  1020. 435, 436, 437, 438, 439, 440, 441, 442, 443, 444
  1021. };
  1022. #if YYDEBUG
  1023. /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
  1024. static const yytype_int16 yyrline[] =
  1025. {
  1026. 0, 371, 371, 377, 380, 385, 388, 391, 395, 399,
  1027. 402, 406, 410, 414, 418, 422, 426, 432, 440, 443,
  1028. 446, 449, 452, 457, 465, 472, 479, 485, 489, 496,
  1029. 499, 505, 512, 522, 530, 535, 563, 572, 578, 582,
  1030. 586, 606, 607, 608, 609, 615, 616, 621, 626, 635,
  1031. 636, 641, 649, 650, 656, 665, 666, 671, 676, 681,
  1032. 689, 690, 699, 711, 712, 721, 722, 731, 732, 741,
  1033. 742, 750, 751, 759, 760, 768, 769, 769, 787, 788,
  1034. 804, 808, 812, 816, 821, 825, 829, 833, 837, 841,
  1035. 845, 852, 855, 866, 873, 878, 883, 890, 894, 898,
  1036. 902, 907, 912, 921, 921, 932, 936, 943, 950, 953,
  1037. 960, 968, 988, 1011, 1026, 1051, 1062, 1072, 1082, 1092,
  1038. 1101, 1104, 1108, 1112, 1117, 1125, 1132, 1137, 1142, 1147,
  1039. 1156, 1166, 1193, 1202, 1209, 1217, 1224, 1231, 1239, 1249,
  1040. 1256, 1267, 1273, 1276, 1283, 1287, 1291, 1300, 1310, 1313,
  1041. 1324, 1327, 1330, 1334, 1338, 1343, 1347, 1354, 1358, 1363,
  1042. 1369, 1375, 1382, 1387, 1395, 1401, 1413, 1427, 1433, 1438,
  1043. 1446, 1454, 1462, 1470, 1478, 1486, 1494, 1502, 1509, 1516,
  1044. 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1554, 1558, 1562,
  1045. 1566, 1572, 1583, 1590, 1593, 1602, 1607, 1617, 1622, 1630,
  1046. 1634, 1644, 1647, 1653, 1659, 1666, 1676, 1680, 1684, 1688,
  1047. 1693, 1697, 1702, 1707, 1712, 1717, 1722, 1727, 1732, 1737,
  1048. 1742, 1748, 1754, 1760, 1765, 1770, 1775, 1780, 1785, 1790,
  1049. 1795, 1800, 1805, 1810, 1815, 1821, 1828, 1833, 1838, 1843,
  1050. 1848, 1853, 1858, 1863, 1868, 1873, 1878, 1883, 1891, 1899,
  1051. 1907, 1913, 1919, 1925, 1931, 1937, 1943, 1949, 1955, 1961,
  1052. 1967, 1973, 1979, 1985, 1991, 1997, 2003, 2009, 2015, 2021,
  1053. 2027, 2033, 2039, 2045, 2051, 2057, 2063, 2069, 2075, 2081,
  1054. 2087, 2093, 2099, 2105, 2113, 2121, 2129, 2137, 2145, 2153,
  1055. 2161, 2169, 2177, 2185, 2193, 2201, 2207, 2213, 2219, 2225,
  1056. 2231, 2237, 2243, 2249, 2255, 2261, 2267, 2273, 2279, 2285,
  1057. 2291, 2297, 2303, 2309, 2315, 2321, 2327, 2333, 2339, 2345,
  1058. 2351, 2357, 2363, 2369, 2375, 2381, 2387, 2393, 2399, 2405,
  1059. 2411, 2417, 2421, 2425, 2429, 2434, 2440, 2445, 2450, 2455,
  1060. 2460, 2465, 2470, 2476, 2481, 2486, 2491, 2496, 2501, 2507,
  1061. 2513, 2519, 2525, 2531, 2537, 2543, 2549, 2555, 2561, 2567,
  1062. 2573, 2579, 2585, 2590, 2595, 2600, 2605, 2610, 2615, 2621,
  1063. 2626, 2631, 2636, 2641, 2646, 2651, 2656, 2662, 2667, 2672,
  1064. 2677, 2682, 2687, 2692, 2697, 2702, 2707, 2712, 2717, 2722,
  1065. 2727, 2732, 2738, 2743, 2748, 2754, 2760, 2765, 2770, 2775,
  1066. 2781, 2786, 2791, 2796, 2802, 2807, 2812, 2817, 2823, 2828,
  1067. 2833, 2838, 2844, 2850, 2856, 2862, 2867, 2873, 2879, 2885,
  1068. 2890, 2895, 2900, 2905, 2910, 2916, 2921, 2926, 2931, 2937,
  1069. 2942, 2947, 2952, 2958, 2963, 2968, 2973, 2979, 2984, 2989,
  1070. 2994, 3000, 3005, 3010, 3015, 3021, 3026, 3031, 3036, 3042,
  1071. 3047, 3052, 3057, 3063, 3068, 3073, 3078, 3084, 3089, 3094,
  1072. 3099, 3105, 3110, 3115, 3120, 3126, 3131, 3136, 3141, 3147,
  1073. 3152, 3157, 3162, 3168, 3173, 3178, 3183, 3189, 3194, 3199,
  1074. 3204, 3210, 3215, 3220, 3225, 3230, 3235, 3240, 3245, 3250,
  1075. 3255, 3260, 3265, 3270, 3275, 3280, 3285, 3290, 3295, 3300,
  1076. 3305, 3310, 3315, 3320, 3325, 3330, 3336, 3342, 3348, 3354,
  1077. 3361, 3368, 3374, 3380, 3386, 3392, 3398, 3404, 3411, 3416,
  1078. 3432, 3437, 3442, 3450, 3450, 3461, 3461, 3471, 3474, 3487,
  1079. 3509, 3536, 3540, 3546, 3551, 3562, 3566, 3572, 3578, 3589,
  1080. 3592, 3599, 3603, 3604, 3610, 3611, 3612, 3613, 3614, 3615,
  1081. 3616, 3618, 3624, 3633, 3634, 3638, 3634, 3650, 3651, 3655,
  1082. 3655, 3662, 3662, 3676, 3679, 3687, 3695, 3706, 3707, 3711,
  1083. 3715, 3722, 3729, 3733, 3741, 3745, 3758, 3762, 3769, 3769,
  1084. 3789, 3792, 3798, 3810, 3822, 3826, 3833, 3833, 3848, 3848,
  1085. 3864, 3864, 3885, 3888, 3894, 3897, 3903, 3907, 3914, 3919,
  1086. 3924, 3931, 3934, 3938, 3943, 3947, 3957, 3961, 3970, 3973,
  1087. 3977, 3986, 3986, 4028, 4034, 4037, 4042, 4045
  1088. };
  1089. #endif
  1090. /** Accessing symbol of state STATE. */
  1091. #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
  1092. #if 1
  1093. /* The user-facing name of the symbol whose (internal) number is
  1094. YYSYMBOL. No bounds checking. */
  1095. static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
  1096. /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
  1097. First, the terminals, then, starting at YYNTOKENS, nonterminals. */
  1098. static const char *const yytname[] =
  1099. {
  1100. "\"end of file\"", "error", "\"invalid token\"", "CONST", "BOOL", "INT",
  1101. "UINT", "FLOAT", "BVEC2", "BVEC3", "BVEC4", "IVEC2", "IVEC3", "IVEC4",
  1102. "UVEC2", "UVEC3", "UVEC4", "VEC2", "VEC3", "VEC4", "MAT2", "MAT3",
  1103. "MAT4", "MAT2X2", "MAT2X3", "MAT2X4", "MAT3X2", "MAT3X3", "MAT3X4",
  1104. "MAT4X2", "MAT4X3", "MAT4X4", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
  1105. "SAMPLER2DSHADOW", "SAMPLERCUBESHADOW", "SAMPLER2DARRAY",
  1106. "SAMPLER2DARRAYSHADOW", "ISAMPLER2D", "ISAMPLER3D", "ISAMPLERCUBE",
  1107. "ISAMPLER2DARRAY", "USAMPLER2D", "USAMPLER3D", "USAMPLERCUBE",
  1108. "USAMPLER2DARRAY", "SAMPLER", "SAMPLERSHADOW", "TEXTURE2D", "TEXTURE3D",
  1109. "TEXTURECUBE", "TEXTURE2DARRAY", "ITEXTURE2D", "ITEXTURE3D",
  1110. "ITEXTURECUBE", "ITEXTURE2DARRAY", "UTEXTURE2D", "UTEXTURE3D",
  1111. "UTEXTURECUBE", "UTEXTURE2DARRAY", "ATTRIBUTE", "VARYING", "FLOAT16_T",
  1112. "FLOAT32_T", "DOUBLE", "FLOAT64_T", "INT64_T", "UINT64_T", "INT32_T",
  1113. "UINT32_T", "INT16_T", "UINT16_T", "INT8_T", "UINT8_T", "I64VEC2",
  1114. "I64VEC3", "I64VEC4", "U64VEC2", "U64VEC3", "U64VEC4", "I32VEC2",
  1115. "I32VEC3", "I32VEC4", "U32VEC2", "U32VEC3", "U32VEC4", "I16VEC2",
  1116. "I16VEC3", "I16VEC4", "U16VEC2", "U16VEC3", "U16VEC4", "I8VEC2",
  1117. "I8VEC3", "I8VEC4", "U8VEC2", "U8VEC3", "U8VEC4", "DVEC2", "DVEC3",
  1118. "DVEC4", "DMAT2", "DMAT3", "DMAT4", "F16VEC2", "F16VEC3", "F16VEC4",
  1119. "F16MAT2", "F16MAT3", "F16MAT4", "F32VEC2", "F32VEC3", "F32VEC4",
  1120. "F32MAT2", "F32MAT3", "F32MAT4", "F64VEC2", "F64VEC3", "F64VEC4",
  1121. "F64MAT2", "F64MAT3", "F64MAT4", "DMAT2X2", "DMAT2X3", "DMAT2X4",
  1122. "DMAT3X2", "DMAT3X3", "DMAT3X4", "DMAT4X2", "DMAT4X3", "DMAT4X4",
  1123. "F16MAT2X2", "F16MAT2X3", "F16MAT2X4", "F16MAT3X2", "F16MAT3X3",
  1124. "F16MAT3X4", "F16MAT4X2", "F16MAT4X3", "F16MAT4X4", "F32MAT2X2",
  1125. "F32MAT2X3", "F32MAT2X4", "F32MAT3X2", "F32MAT3X3", "F32MAT3X4",
  1126. "F32MAT4X2", "F32MAT4X3", "F32MAT4X4", "F64MAT2X2", "F64MAT2X3",
  1127. "F64MAT2X4", "F64MAT3X2", "F64MAT3X3", "F64MAT3X4", "F64MAT4X2",
  1128. "F64MAT4X3", "F64MAT4X4", "ATOMIC_UINT", "ACCSTRUCTNV", "ACCSTRUCTEXT",
  1129. "RAYQUERYEXT", "FCOOPMATNV", "ICOOPMATNV", "UCOOPMATNV",
  1130. "SAMPLERCUBEARRAY", "SAMPLERCUBEARRAYSHADOW", "ISAMPLERCUBEARRAY",
  1131. "USAMPLERCUBEARRAY", "SAMPLER1D", "SAMPLER1DARRAY",
  1132. "SAMPLER1DARRAYSHADOW", "ISAMPLER1D", "SAMPLER1DSHADOW", "SAMPLER2DRECT",
  1133. "SAMPLER2DRECTSHADOW", "ISAMPLER2DRECT", "USAMPLER2DRECT",
  1134. "SAMPLERBUFFER", "ISAMPLERBUFFER", "USAMPLERBUFFER", "SAMPLER2DMS",
  1135. "ISAMPLER2DMS", "USAMPLER2DMS", "SAMPLER2DMSARRAY", "ISAMPLER2DMSARRAY",
  1136. "USAMPLER2DMSARRAY", "SAMPLEREXTERNALOES", "SAMPLEREXTERNAL2DY2YEXT",
  1137. "ISAMPLER1DARRAY", "USAMPLER1D", "USAMPLER1DARRAY", "F16SAMPLER1D",
  1138. "F16SAMPLER2D", "F16SAMPLER3D", "F16SAMPLER2DRECT", "F16SAMPLERCUBE",
  1139. "F16SAMPLER1DARRAY", "F16SAMPLER2DARRAY", "F16SAMPLERCUBEARRAY",
  1140. "F16SAMPLERBUFFER", "F16SAMPLER2DMS", "F16SAMPLER2DMSARRAY",
  1141. "F16SAMPLER1DSHADOW", "F16SAMPLER2DSHADOW", "F16SAMPLER1DARRAYSHADOW",
  1142. "F16SAMPLER2DARRAYSHADOW", "F16SAMPLER2DRECTSHADOW",
  1143. "F16SAMPLERCUBESHADOW", "F16SAMPLERCUBEARRAYSHADOW", "IMAGE1D",
  1144. "IIMAGE1D", "UIMAGE1D", "IMAGE2D", "IIMAGE2D", "UIMAGE2D", "IMAGE3D",
  1145. "IIMAGE3D", "UIMAGE3D", "IMAGE2DRECT", "IIMAGE2DRECT", "UIMAGE2DRECT",
  1146. "IMAGECUBE", "IIMAGECUBE", "UIMAGECUBE", "IMAGEBUFFER", "IIMAGEBUFFER",
  1147. "UIMAGEBUFFER", "IMAGE1DARRAY", "IIMAGE1DARRAY", "UIMAGE1DARRAY",
  1148. "IMAGE2DARRAY", "IIMAGE2DARRAY", "UIMAGE2DARRAY", "IMAGECUBEARRAY",
  1149. "IIMAGECUBEARRAY", "UIMAGECUBEARRAY", "IMAGE2DMS", "IIMAGE2DMS",
  1150. "UIMAGE2DMS", "IMAGE2DMSARRAY", "IIMAGE2DMSARRAY", "UIMAGE2DMSARRAY",
  1151. "F16IMAGE1D", "F16IMAGE2D", "F16IMAGE3D", "F16IMAGE2DRECT",
  1152. "F16IMAGECUBE", "F16IMAGE1DARRAY", "F16IMAGE2DARRAY",
  1153. "F16IMAGECUBEARRAY", "F16IMAGEBUFFER", "F16IMAGE2DMS",
  1154. "F16IMAGE2DMSARRAY", "I64IMAGE1D", "U64IMAGE1D", "I64IMAGE2D",
  1155. "U64IMAGE2D", "I64IMAGE3D", "U64IMAGE3D", "I64IMAGE2DRECT",
  1156. "U64IMAGE2DRECT", "I64IMAGECUBE", "U64IMAGECUBE", "I64IMAGEBUFFER",
  1157. "U64IMAGEBUFFER", "I64IMAGE1DARRAY", "U64IMAGE1DARRAY",
  1158. "I64IMAGE2DARRAY", "U64IMAGE2DARRAY", "I64IMAGECUBEARRAY",
  1159. "U64IMAGECUBEARRAY", "I64IMAGE2DMS", "U64IMAGE2DMS", "I64IMAGE2DMSARRAY",
  1160. "U64IMAGE2DMSARRAY", "TEXTURECUBEARRAY", "ITEXTURECUBEARRAY",
  1161. "UTEXTURECUBEARRAY", "TEXTURE1D", "ITEXTURE1D", "UTEXTURE1D",
  1162. "TEXTURE1DARRAY", "ITEXTURE1DARRAY", "UTEXTURE1DARRAY", "TEXTURE2DRECT",
  1163. "ITEXTURE2DRECT", "UTEXTURE2DRECT", "TEXTUREBUFFER", "ITEXTUREBUFFER",
  1164. "UTEXTUREBUFFER", "TEXTURE2DMS", "ITEXTURE2DMS", "UTEXTURE2DMS",
  1165. "TEXTURE2DMSARRAY", "ITEXTURE2DMSARRAY", "UTEXTURE2DMSARRAY",
  1166. "F16TEXTURE1D", "F16TEXTURE2D", "F16TEXTURE3D", "F16TEXTURE2DRECT",
  1167. "F16TEXTURECUBE", "F16TEXTURE1DARRAY", "F16TEXTURE2DARRAY",
  1168. "F16TEXTURECUBEARRAY", "F16TEXTUREBUFFER", "F16TEXTURE2DMS",
  1169. "F16TEXTURE2DMSARRAY", "SUBPASSINPUT", "SUBPASSINPUTMS", "ISUBPASSINPUT",
  1170. "ISUBPASSINPUTMS", "USUBPASSINPUT", "USUBPASSINPUTMS", "F16SUBPASSINPUT",
  1171. "F16SUBPASSINPUTMS", "LEFT_OP", "RIGHT_OP", "INC_OP", "DEC_OP", "LE_OP",
  1172. "GE_OP", "EQ_OP", "NE_OP", "AND_OP", "OR_OP", "XOR_OP", "MUL_ASSIGN",
  1173. "DIV_ASSIGN", "ADD_ASSIGN", "MOD_ASSIGN", "LEFT_ASSIGN", "RIGHT_ASSIGN",
  1174. "AND_ASSIGN", "XOR_ASSIGN", "OR_ASSIGN", "SUB_ASSIGN", "STRING_LITERAL",
  1175. "LEFT_PAREN", "RIGHT_PAREN", "LEFT_BRACKET", "RIGHT_BRACKET",
  1176. "LEFT_BRACE", "RIGHT_BRACE", "DOT", "COMMA", "COLON", "EQUAL",
  1177. "SEMICOLON", "BANG", "DASH", "TILDE", "PLUS", "STAR", "SLASH", "PERCENT",
  1178. "LEFT_ANGLE", "RIGHT_ANGLE", "VERTICAL_BAR", "CARET", "AMPERSAND",
  1179. "QUESTION", "INVARIANT", "HIGH_PRECISION", "MEDIUM_PRECISION",
  1180. "LOW_PRECISION", "PRECISION", "PACKED", "RESOURCE", "SUPERP",
  1181. "FLOATCONSTANT", "INTCONSTANT", "UINTCONSTANT", "BOOLCONSTANT",
  1182. "IDENTIFIER", "TYPE_NAME", "CENTROID", "IN", "OUT", "INOUT", "STRUCT",
  1183. "VOID", "WHILE", "BREAK", "CONTINUE", "DO", "ELSE", "FOR", "IF",
  1184. "DISCARD", "RETURN", "SWITCH", "CASE", "DEFAULT", "TERMINATE_INVOCATION",
  1185. "TERMINATE_RAY", "IGNORE_INTERSECTION", "UNIFORM", "SHARED", "BUFFER",
  1186. "FLAT", "SMOOTH", "LAYOUT", "DOUBLECONSTANT", "INT16CONSTANT",
  1187. "UINT16CONSTANT", "FLOAT16CONSTANT", "INT32CONSTANT", "UINT32CONSTANT",
  1188. "INT64CONSTANT", "UINT64CONSTANT", "SUBROUTINE", "DEMOTE", "PAYLOADNV",
  1189. "PAYLOADINNV", "HITATTRNV", "CALLDATANV", "CALLDATAINNV", "PAYLOADEXT",
  1190. "PAYLOADINEXT", "HITATTREXT", "CALLDATAEXT", "CALLDATAINEXT", "PATCH",
  1191. "SAMPLE", "NONUNIFORM", "COHERENT", "VOLATILE", "RESTRICT", "READONLY",
  1192. "WRITEONLY", "DEVICECOHERENT", "QUEUEFAMILYCOHERENT",
  1193. "WORKGROUPCOHERENT", "SUBGROUPCOHERENT", "NONPRIVATE",
  1194. "SHADERCALLCOHERENT", "NOPERSPECTIVE", "EXPLICITINTERPAMD",
  1195. "PERVERTEXNV", "PERPRIMITIVENV", "PERVIEWNV", "PERTASKNV", "PRECISE",
  1196. "$accept", "variable_identifier", "primary_expression",
  1197. "postfix_expression", "integer_expression", "function_call",
  1198. "function_call_or_method", "function_call_generic",
  1199. "function_call_header_no_parameters",
  1200. "function_call_header_with_parameters", "function_call_header",
  1201. "function_identifier", "unary_expression", "unary_operator",
  1202. "multiplicative_expression", "additive_expression", "shift_expression",
  1203. "relational_expression", "equality_expression", "and_expression",
  1204. "exclusive_or_expression", "inclusive_or_expression",
  1205. "logical_and_expression", "logical_xor_expression",
  1206. "logical_or_expression", "conditional_expression", "$@1",
  1207. "assignment_expression", "assignment_operator", "expression",
  1208. "constant_expression", "declaration", "block_structure", "$@2",
  1209. "identifier_list", "function_prototype", "function_declarator",
  1210. "function_header_with_parameters", "function_header",
  1211. "parameter_declarator", "parameter_declaration",
  1212. "parameter_type_specifier", "init_declarator_list", "single_declaration",
  1213. "fully_specified_type", "invariant_qualifier", "interpolation_qualifier",
  1214. "layout_qualifier", "layout_qualifier_id_list", "layout_qualifier_id",
  1215. "precise_qualifier", "type_qualifier", "single_type_qualifier",
  1216. "storage_qualifier", "non_uniform_qualifier", "type_name_list",
  1217. "type_specifier", "array_specifier", "type_parameter_specifier_opt",
  1218. "type_parameter_specifier", "type_parameter_specifier_list",
  1219. "type_specifier_nonarray", "precision_qualifier", "struct_specifier",
  1220. "$@3", "$@4", "struct_declaration_list", "struct_declaration",
  1221. "struct_declarator_list", "struct_declarator", "initializer",
  1222. "initializer_list", "declaration_statement", "statement",
  1223. "simple_statement", "demote_statement", "compound_statement", "$@5",
  1224. "$@6", "statement_no_new_scope", "statement_scoped", "$@7", "$@8",
  1225. "compound_statement_no_new_scope", "statement_list",
  1226. "expression_statement", "selection_statement",
  1227. "selection_statement_nonattributed", "selection_rest_statement",
  1228. "condition", "switch_statement", "switch_statement_nonattributed", "$@9",
  1229. "switch_statement_list", "case_label", "iteration_statement",
  1230. "iteration_statement_nonattributed", "$@10", "$@11", "$@12",
  1231. "for_init_statement", "conditionopt", "for_rest_statement",
  1232. "jump_statement", "translation_unit", "external_declaration",
  1233. "function_definition", "$@13", "attribute", "attribute_list",
  1234. "single_attribute", YY_NULLPTR
  1235. };
  1236. static const char *
  1237. yysymbol_name (yysymbol_kind_t yysymbol)
  1238. {
  1239. return yytname[yysymbol];
  1240. }
  1241. #endif
  1242. #ifdef YYPRINT
  1243. /* YYTOKNUM[NUM] -- (External) token number corresponding to the
  1244. (internal) symbol number NUM (which must be that of a token). */
  1245. static const yytype_int16 yytoknum[] =
  1246. {
  1247. 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
  1248. 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
  1249. 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  1250. 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
  1251. 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
  1252. 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
  1253. 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
  1254. 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
  1255. 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
  1256. 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
  1257. 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
  1258. 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
  1259. 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
  1260. 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
  1261. 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
  1262. 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
  1263. 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
  1264. 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
  1265. 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
  1266. 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
  1267. 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
  1268. 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
  1269. 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
  1270. 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
  1271. 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
  1272. 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
  1273. 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
  1274. 525, 526, 527, 528, 529, 530, 531, 532, 533, 534,
  1275. 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
  1276. 545, 546, 547, 548, 549, 550, 551, 552, 553, 554,
  1277. 555, 556, 557, 558, 559, 560, 561, 562, 563, 564,
  1278. 565, 566, 567, 568, 569, 570, 571, 572, 573, 574,
  1279. 575, 576, 577, 578, 579, 580, 581, 582, 583, 584,
  1280. 585, 586, 587, 588, 589, 590, 591, 592, 593, 594,
  1281. 595, 596, 597, 598, 599, 600, 601, 602, 603, 604,
  1282. 605, 606, 607, 608, 609, 610, 611, 612, 613, 614,
  1283. 615, 616, 617, 618, 619, 620, 621, 622, 623, 624,
  1284. 625, 626, 627, 628, 629, 630, 631, 632, 633, 634,
  1285. 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
  1286. 645, 646, 647, 648, 649, 650, 651, 652, 653, 654,
  1287. 655, 656, 657, 658, 659, 660, 661, 662, 663, 664,
  1288. 665, 666, 667, 668, 669, 670, 671, 672, 673, 674,
  1289. 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
  1290. 685, 686, 687, 688, 689, 690, 691, 692, 693, 694,
  1291. 695, 696, 697, 698, 699
  1292. };
  1293. #endif
  1294. #define YYPACT_NINF (-733)
  1295. #define yypact_value_is_default(Yyn) \
  1296. ((Yyn) == YYPACT_NINF)
  1297. #define YYTABLE_NINF (-560)
  1298. #define yytable_value_is_error(Yyn) \
  1299. 0
  1300. /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
  1301. STATE-NUM. */
  1302. static const yytype_int16 yypact[] =
  1303. {
  1304. 4304, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1305. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1306. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1307. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1308. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1309. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1310. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1311. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1312. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1313. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1314. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1315. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1316. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1317. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1318. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1319. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1320. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1321. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1322. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1323. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1324. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1325. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1326. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1327. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1328. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1329. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1330. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1331. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1332. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1333. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1334. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1335. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1336. 109, -733, -733, -733, -733, -733, 3, -733, -733, -733,
  1337. -733, -733, -733, -322, -261, -733, -733, -733, -733, -733,
  1338. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1339. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1340. -733, -733, -733, -733, -733, -733, -733, 19, 101, 140,
  1341. 79, 6514, 57, -733, 96, -733, -733, -733, -733, 4746,
  1342. -733, -733, -733, -733, 133, -733, -733, 768, -733, -733,
  1343. 16, -733, 151, -32, 125, -733, -335, -733, 158, -733,
  1344. 6514, -733, -733, -733, 6514, 127, 128, -733, 13, -733,
  1345. 72, -733, -733, 9493, 163, -733, -733, -733, 156, 6514,
  1346. -733, 160, -733, 20, -733, -733, 61, 7801, -733, 10,
  1347. 1210, -733, -733, -733, -733, 163, -330, -733, 8224, 14,
  1348. -733, 134, -733, 88, 9493, 9493, -733, 9493, -733, -733,
  1349. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1350. -733, -733, -733, -733, -733, -733, -733, 54, -733, -733,
  1351. -733, 166, 62, 9916, 171, -733, 9493, -733, -733, -343,
  1352. 173, -733, 6514, 137, 5188, -733, 6514, 9493, -733, -32,
  1353. -733, 141, -733, -733, 122, 93, 39, 28, 41, 157,
  1354. 159, 161, 192, 195, 21, 181, 8647, -733, 183, 182,
  1355. -733, -733, 186, 178, 179, -733, 190, 191, 184, 9070,
  1356. 196, 9493, 187, 188, 189, 194, 197, 131, -733, -733,
  1357. 99, -733, 101, 200, 205, -733, -733, -733, -733, -733,
  1358. 1652, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1359. -376, 173, 8224, 36, 6955, -733, -733, 8224, 6514, -733,
  1360. 170, -733, -733, -733, 71, -733, -733, 9493, 176, -733,
  1361. -733, 9493, 208, -733, -733, -733, 9493, -733, 137, 163,
  1362. 106, -733, -733, -733, 5630, -733, -733, -733, -733, 9493,
  1363. 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493,
  1364. 9493, 9493, 9493, 9493, 9493, 9493, 9493, 9493, -733, -733,
  1365. -733, 210, 180, -733, 2094, -733, -733, -733, 2094, -733,
  1366. 9493, -733, -733, 108, 9493, 29, -733, -733, -733, -733,
  1367. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1368. -733, -733, 9493, 9493, -733, -733, -733, -733, -733, -733,
  1369. -733, 8224, -733, -733, 139, -733, 6072, -733, -733, 211,
  1370. 185, -733, -733, -733, 123, 173, 137, -733, -733, -733,
  1371. -733, -733, 122, 122, 93, 93, 39, 39, 39, 39,
  1372. 28, 28, 41, 157, 159, 161, 192, 195, 9493, -733,
  1373. 215, 85, -733, 2094, 3862, 153, 3420, 76, -733, 80,
  1374. -733, -733, -733, -733, -733, 7378, -733, -733, -733, -733,
  1375. 86, 9493, 214, 180, 216, 185, 193, 6514, 219, 222,
  1376. -733, -733, 3862, 220, -733, -733, -733, 9493, 224, -733,
  1377. -733, -733, 217, 2536, 9493, -733, 213, 226, 199, 227,
  1378. 2978, -733, 228, -733, -733, 8224, -733, -733, -733, 83,
  1379. 9493, 2536, 220, -733, -733, 2094, -733, 223, 185, -733,
  1380. -733, 2094, 225, -733, -733
  1381. };
  1382. /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
  1383. Performed when YYTABLE does not specify something else to do. Zero
  1384. means the default is an error. */
  1385. static const yytype_int16 yydefact[] =
  1386. {
  1387. 0, 157, 210, 208, 209, 207, 214, 215, 216, 217,
  1388. 218, 219, 220, 221, 222, 211, 212, 213, 223, 224,
  1389. 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
  1390. 336, 337, 338, 339, 340, 341, 342, 362, 363, 364,
  1391. 365, 366, 367, 368, 377, 390, 391, 378, 379, 381,
  1392. 380, 382, 383, 384, 385, 386, 387, 388, 389, 165,
  1393. 166, 236, 237, 235, 238, 245, 246, 243, 244, 241,
  1394. 242, 239, 240, 268, 269, 270, 280, 281, 282, 265,
  1395. 266, 267, 277, 278, 279, 262, 263, 264, 274, 275,
  1396. 276, 259, 260, 261, 271, 272, 273, 247, 248, 249,
  1397. 283, 284, 285, 250, 251, 252, 295, 296, 297, 253,
  1398. 254, 255, 307, 308, 309, 256, 257, 258, 319, 320,
  1399. 321, 286, 287, 288, 289, 290, 291, 292, 293, 294,
  1400. 298, 299, 300, 301, 302, 303, 304, 305, 306, 310,
  1401. 311, 312, 313, 314, 315, 316, 317, 318, 322, 323,
  1402. 324, 325, 326, 327, 328, 329, 330, 334, 331, 332,
  1403. 333, 515, 516, 517, 346, 347, 370, 373, 335, 344,
  1404. 345, 361, 343, 392, 393, 396, 397, 398, 400, 401,
  1405. 402, 404, 405, 406, 408, 409, 505, 506, 369, 371,
  1406. 372, 348, 349, 350, 394, 351, 355, 356, 359, 399,
  1407. 403, 407, 352, 353, 357, 358, 395, 354, 360, 439,
  1408. 441, 442, 443, 445, 446, 447, 449, 450, 451, 453,
  1409. 454, 455, 457, 458, 459, 461, 462, 463, 465, 466,
  1410. 467, 469, 470, 471, 473, 474, 475, 477, 478, 479,
  1411. 481, 482, 440, 444, 448, 452, 456, 464, 468, 472,
  1412. 460, 476, 480, 483, 484, 485, 486, 487, 488, 489,
  1413. 490, 491, 492, 493, 494, 495, 496, 497, 498, 499,
  1414. 500, 501, 502, 503, 504, 374, 375, 376, 410, 419,
  1415. 421, 415, 420, 422, 423, 425, 426, 427, 429, 430,
  1416. 431, 433, 434, 435, 437, 438, 411, 412, 413, 424,
  1417. 414, 416, 417, 418, 428, 432, 436, 507, 508, 511,
  1418. 512, 513, 514, 509, 510, 610, 132, 520, 521, 522,
  1419. 0, 519, 161, 159, 160, 158, 0, 206, 162, 163,
  1420. 164, 134, 133, 0, 190, 171, 173, 169, 175, 177,
  1421. 172, 174, 170, 176, 178, 167, 168, 192, 179, 186,
  1422. 187, 188, 189, 180, 181, 182, 183, 184, 185, 135,
  1423. 136, 137, 138, 139, 140, 147, 609, 0, 611, 0,
  1424. 109, 108, 0, 120, 125, 154, 153, 151, 155, 0,
  1425. 148, 150, 156, 130, 202, 152, 518, 0, 606, 608,
  1426. 0, 525, 0, 0, 0, 97, 0, 94, 0, 107,
  1427. 0, 116, 110, 118, 0, 119, 0, 95, 126, 100,
  1428. 0, 149, 131, 0, 195, 201, 1, 607, 0, 0,
  1429. 523, 144, 146, 0, 142, 193, 0, 0, 98, 0,
  1430. 0, 612, 111, 115, 117, 113, 121, 112, 0, 127,
  1431. 103, 0, 101, 0, 0, 0, 9, 0, 43, 42,
  1432. 44, 41, 5, 6, 7, 8, 2, 16, 14, 15,
  1433. 17, 10, 11, 12, 13, 3, 18, 37, 20, 25,
  1434. 26, 0, 0, 30, 0, 204, 0, 36, 34, 0,
  1435. 196, 96, 0, 0, 0, 527, 0, 0, 141, 0,
  1436. 191, 0, 197, 45, 49, 52, 55, 60, 63, 65,
  1437. 67, 69, 71, 73, 75, 0, 0, 99, 0, 554,
  1438. 563, 567, 0, 0, 0, 588, 0, 0, 0, 0,
  1439. 0, 0, 0, 0, 0, 0, 0, 45, 78, 91,
  1440. 0, 541, 0, 156, 130, 544, 565, 543, 551, 542,
  1441. 0, 545, 546, 569, 547, 576, 548, 549, 584, 550,
  1442. 0, 114, 0, 122, 0, 535, 129, 0, 0, 105,
  1443. 0, 102, 38, 39, 0, 22, 23, 0, 0, 28,
  1444. 27, 0, 206, 31, 33, 40, 0, 203, 0, 533,
  1445. 0, 531, 526, 528, 0, 93, 145, 143, 194, 0,
  1446. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1447. 0, 0, 0, 0, 0, 0, 0, 0, 76, 198,
  1448. 199, 0, 0, 553, 0, 586, 599, 598, 0, 590,
  1449. 0, 602, 600, 0, 0, 0, 583, 603, 604, 605,
  1450. 552, 81, 82, 84, 83, 86, 87, 88, 89, 90,
  1451. 85, 80, 0, 0, 568, 564, 566, 570, 577, 585,
  1452. 124, 0, 538, 539, 0, 128, 0, 106, 4, 0,
  1453. 24, 21, 32, 205, 0, 534, 0, 529, 524, 46,
  1454. 47, 48, 51, 50, 53, 54, 58, 59, 56, 57,
  1455. 61, 62, 64, 66, 68, 70, 72, 74, 0, 200,
  1456. 616, 0, 614, 555, 0, 0, 0, 0, 601, 0,
  1457. 582, 79, 92, 123, 536, 0, 104, 19, 530, 532,
  1458. 0, 0, 0, 0, 0, 574, 0, 0, 0, 0,
  1459. 593, 592, 595, 561, 578, 537, 540, 0, 0, 613,
  1460. 615, 556, 0, 0, 0, 594, 0, 0, 573, 0,
  1461. 0, 571, 0, 77, 617, 0, 558, 587, 557, 0,
  1462. 596, 0, 561, 560, 562, 580, 575, 0, 597, 591,
  1463. 572, 581, 0, 589, 579
  1464. };
  1465. /* YYPGOTO[NTERM-NUM]. */
  1466. static const yytype_int16 yypgoto[] =
  1467. {
  1468. -733, -733, -733, -733, -733, -733, -733, -733, -733, -733,
  1469. -733, -733, 9826, -733, -105, -98, -156, -102, -29, -28,
  1470. -30, -27, -26, -31, -733, -82, -733, -101, -733, -109,
  1471. -134, 2, -733, -733, -733, 4, -733, -733, -733, 177,
  1472. 198, 201, -733, -733, -341, -733, -733, -733, -733, 94,
  1473. -733, -37, -46, -733, 9, -733, 0, -66, -733, -733,
  1474. -733, -733, 262, -733, -733, -733, -481, -149, 11, -79,
  1475. -213, -733, -108, -204, -732, -733, -148, -733, -733, -161,
  1476. -160, -733, -733, 202, -274, -100, -733, 44, -733, -127,
  1477. -733, 47, -733, -733, -733, -733, 49, -733, -733, -733,
  1478. -733, -733, -733, -733, -733, 221, -733, -733, -733, -733,
  1479. -112
  1480. };
  1481. /* YYDEFGOTO[NTERM-NUM]. */
  1482. static const yytype_int16 yydefgoto[] =
  1483. {
  1484. -1, 465, 466, 467, 659, 468, 469, 470, 471, 472,
  1485. 473, 474, 527, 476, 494, 495, 496, 497, 498, 499,
  1486. 500, 501, 502, 503, 504, 528, 688, 529, 642, 530,
  1487. 586, 531, 367, 558, 443, 532, 369, 370, 371, 401,
  1488. 402, 403, 372, 373, 374, 375, 376, 377, 423, 424,
  1489. 378, 379, 380, 381, 477, 426, 478, 429, 414, 415,
  1490. 479, 384, 385, 386, 486, 419, 484, 485, 580, 581,
  1491. 556, 654, 535, 536, 537, 538, 539, 614, 714, 747,
  1492. 738, 739, 740, 748, 540, 541, 542, 543, 741, 718,
  1493. 544, 545, 742, 762, 546, 547, 548, 694, 618, 696,
  1494. 722, 736, 737, 549, 387, 388, 389, 398, 550, 691,
  1495. 692
  1496. };
  1497. /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
  1498. positive, shift that token. If negative, reduce the rule whose
  1499. number is the opposite. If YYTABLE_NINF, syntax error. */
  1500. static const yytype_int16 yytable[] =
  1501. {
  1502. 383, 746, 366, 576, 368, 584, 427, 512, 754, 382,
  1503. 515, 427, 516, 517, 428, 577, 520, 393, 552, 746,
  1504. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  1505. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  1506. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  1507. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  1508. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  1509. 52, 53, 54, 55, 56, 57, 58, 656, 394, 61,
  1510. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  1511. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  1512. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  1513. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  1514. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  1515. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  1516. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  1517. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  1518. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  1519. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  1520. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  1521. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  1522. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  1523. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  1524. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  1525. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  1526. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  1527. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  1528. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  1529. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  1530. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  1531. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  1532. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  1533. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  1534. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  1535. 312, 313, 314, 411, 404, 583, 646, 555, 564, 650,
  1536. 693, 653, 439, 421, 655, 505, 391, 607, 480, 596,
  1537. 597, 506, 437, 716, 427, 506, 594, 595, 411, 507,
  1538. 488, 438, 557, 404, 600, 601, 489, 422, 395, 551,
  1539. 553, 405, 573, 565, 566, 643, 700, 506, 392, 412,
  1540. 382, 716, 482, 608, 651, 598, 599, 383, 382, 366,
  1541. 418, 368, 321, -35, 396, 567, 382, 326, 327, 568,
  1542. 405, 490, 570, 406, 405, 585, 407, 491, 571, 382,
  1543. 623, 658, 625, 382, 695, 440, 723, 643, 441, 483,
  1544. 724, 442, 643, 757, 611, 400, 643, 712, 382, 643,
  1545. 534, 713, 643, 727, 560, 583, 411, 561, 703, 533,
  1546. 676, 677, 678, 679, 592, 643, 593, 482, 644, 482,
  1547. 397, 555, 666, 555, 643, 667, 555, 698, 660, 631,
  1548. 632, 633, 634, 635, 636, 637, 638, 639, 640, 666,
  1549. 662, 408, 708, 317, 318, 319, 589, 590, 591, 641,
  1550. 399, 761, 578, 704, 483, 705, 483, 672, 673, 646,
  1551. 413, 382, 726, 382, 420, 382, 674, 675, 680, 681,
  1552. 425, 430, 435, 436, 427, 481, 569, 583, 487, 559,
  1553. 574, 697, 579, 665, 506, 699, 588, 605, 602, 603,
  1554. 604, 482, 606, 609, 612, 615, 613, 616, 617, 619,
  1555. 620, 643, 756, 621, 626, 624, 719, 627, 628, -36,
  1556. 534, 701, 702, 629, -34, 657, 630, 482, -29, 533,
  1557. 555, 661, 689, 707, 711, 690, 729, 646, 483, 733,
  1558. 731, 734, 750, -559, 744, 745, 751, 382, 732, 764,
  1559. 509, 755, 763, 682, 684, 683, 687, 728, 685, 710,
  1560. 686, 433, 390, 587, 483, 715, 752, 709, 720, 664,
  1561. 759, 753, 760, 382, 647, 735, 721, 648, 432, 649,
  1562. 431, 730, 0, 0, 555, 434, 0, 0, 417, 0,
  1563. 0, 0, 0, 715, 534, 0, 0, 0, 534, 482,
  1564. 0, 0, 0, 533, 0, 749, 743, 533, 0, 585,
  1565. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1566. 0, 758, 0, 0, 555, 0, 0, 0, 0, 0,
  1567. 0, 0, 0, 0, 0, 0, 483, 717, 0, 0,
  1568. 0, 0, 0, 0, 0, 382, 0, 0, 0, 0,
  1569. 0, 411, 0, 0, 0, 0, 0, 0, 0, 0,
  1570. 0, 0, 0, 0, 0, 717, 0, 0, 0, 0,
  1571. 0, 0, 0, 534, 534, 0, 534, 0, 0, 0,
  1572. 0, 0, 533, 533, 0, 533, 0, 0, 0, 0,
  1573. 0, 0, 0, 0, 0, 0, 0, 412, 0, 0,
  1574. 0, 0, 534, 0, 0, 0, 382, 0, 0, 0,
  1575. 0, 533, 0, 534, 0, 0, 0, 0, 0, 0,
  1576. 534, 0, 533, 0, 0, 0, 0, 0, 0, 533,
  1577. 0, 534, 0, 0, 0, 534, 0, 0, 0, 0,
  1578. 533, 534, 0, 0, 533, 0, 0, 0, 416, 0,
  1579. 533, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  1580. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  1581. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  1582. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  1583. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  1584. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  1585. 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  1586. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  1587. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  1588. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  1589. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  1590. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  1591. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  1592. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  1593. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  1594. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  1595. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  1596. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  1597. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  1598. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  1599. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  1600. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  1601. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  1602. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  1603. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  1604. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  1605. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  1606. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  1607. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  1608. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  1609. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  1610. 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
  1611. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1612. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1613. 0, 0, 0, 0, 0, 0, 0, 315, 0, 0,
  1614. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1615. 0, 316, 317, 318, 319, 320, 0, 0, 0, 0,
  1616. 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
  1617. 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1618. 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
  1619. 332, 333, 0, 0, 0, 0, 0, 0, 0, 0,
  1620. 334, 0, 335, 336, 337, 338, 339, 340, 341, 342,
  1621. 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
  1622. 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
  1623. 363, 364, 365, 1, 2, 3, 4, 5, 6, 7,
  1624. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  1625. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  1626. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  1627. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  1628. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  1629. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
  1630. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  1631. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  1632. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  1633. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  1634. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  1635. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  1636. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  1637. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  1638. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  1639. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  1640. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  1641. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  1642. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  1643. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  1644. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  1645. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  1646. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  1647. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  1648. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  1649. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  1650. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  1651. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  1652. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  1653. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  1654. 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
  1655. 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1656. 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
  1657. 0, 508, 0, 509, 510, 0, 0, 0, 0, 511,
  1658. 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
  1659. 0, 0, 0, 316, 317, 318, 319, 320, 0, 0,
  1660. 0, 452, 453, 454, 455, 456, 321, 322, 323, 324,
  1661. 325, 326, 327, 512, 513, 514, 515, 0, 516, 517,
  1662. 518, 519, 520, 521, 522, 523, 524, 525, 328, 329,
  1663. 330, 331, 332, 333, 457, 458, 459, 460, 461, 462,
  1664. 463, 464, 334, 526, 335, 336, 337, 338, 339, 340,
  1665. 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
  1666. 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
  1667. 361, 362, 363, 364, 365, 1, 2, 3, 4, 5,
  1668. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  1669. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  1670. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  1671. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  1672. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  1673. 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
  1674. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  1675. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  1676. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  1677. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  1678. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  1679. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  1680. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  1681. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  1682. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  1683. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  1684. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  1685. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  1686. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  1687. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  1688. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  1689. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  1690. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  1691. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  1692. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  1693. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  1694. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  1695. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  1696. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  1697. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  1698. 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
  1699. 0, 444, 445, 0, 0, 0, 0, 0, 0, 0,
  1700. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1701. 446, 447, 0, 508, 0, 509, 645, 0, 0, 0,
  1702. 0, 511, 448, 449, 450, 451, 0, 0, 0, 0,
  1703. 0, 0, 0, 0, 0, 316, 317, 318, 319, 320,
  1704. 0, 0, 0, 452, 453, 454, 455, 456, 321, 322,
  1705. 323, 324, 325, 326, 327, 512, 513, 514, 515, 0,
  1706. 516, 517, 518, 519, 520, 521, 522, 523, 524, 525,
  1707. 328, 329, 330, 331, 332, 333, 457, 458, 459, 460,
  1708. 461, 462, 463, 464, 334, 526, 335, 336, 337, 338,
  1709. 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
  1710. 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
  1711. 359, 360, 361, 362, 363, 364, 365, 1, 2, 3,
  1712. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  1713. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  1714. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  1715. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  1716. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  1717. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  1718. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  1719. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  1720. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  1721. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  1722. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  1723. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  1724. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  1725. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  1726. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  1727. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  1728. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  1729. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  1730. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  1731. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  1732. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  1733. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  1734. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  1735. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  1736. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  1737. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  1738. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  1739. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  1740. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  1741. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  1742. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  1743. 314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
  1744. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1745. 0, 0, 446, 447, 0, 508, 0, 509, 0, 0,
  1746. 0, 0, 0, 511, 448, 449, 450, 451, 0, 0,
  1747. 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
  1748. 319, 320, 0, 0, 0, 452, 453, 454, 455, 456,
  1749. 321, 322, 323, 324, 325, 326, 327, 512, 513, 514,
  1750. 515, 0, 516, 517, 518, 519, 520, 521, 522, 523,
  1751. 524, 525, 328, 329, 330, 331, 332, 333, 457, 458,
  1752. 459, 460, 461, 462, 463, 464, 334, 526, 335, 336,
  1753. 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
  1754. 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
  1755. 357, 358, 359, 360, 361, 362, 363, 364, 365, 1,
  1756. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  1757. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  1758. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  1759. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  1760. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  1761. 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  1762. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  1763. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  1764. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  1765. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  1766. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  1767. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  1768. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  1769. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  1770. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  1771. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  1772. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  1773. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  1774. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  1775. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  1776. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  1777. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  1778. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  1779. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  1780. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  1781. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  1782. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  1783. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  1784. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  1785. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  1786. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  1787. 312, 313, 314, 0, 0, 444, 445, 0, 0, 0,
  1788. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1789. 0, 0, 0, 0, 446, 447, 0, 508, 0, 430,
  1790. 0, 0, 0, 0, 0, 511, 448, 449, 450, 451,
  1791. 0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
  1792. 317, 318, 319, 320, 0, 0, 0, 452, 453, 454,
  1793. 455, 456, 321, 322, 323, 324, 325, 326, 327, 512,
  1794. 513, 514, 515, 0, 516, 517, 518, 519, 520, 521,
  1795. 522, 523, 524, 525, 328, 329, 330, 331, 332, 333,
  1796. 457, 458, 459, 460, 461, 462, 463, 464, 334, 526,
  1797. 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
  1798. 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
  1799. 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
  1800. 365, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  1801. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  1802. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  1803. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  1804. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  1805. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  1806. 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  1807. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  1808. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  1809. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  1810. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  1811. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  1812. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  1813. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  1814. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  1815. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  1816. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  1817. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  1818. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  1819. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  1820. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  1821. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  1822. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  1823. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  1824. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  1825. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  1826. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  1827. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  1828. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  1829. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  1830. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  1831. 310, 311, 312, 313, 314, 0, 0, 444, 445, 0,
  1832. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1833. 0, 0, 0, 0, 0, 0, 446, 447, 0, 508,
  1834. 0, 0, 0, 0, 0, 0, 0, 511, 448, 449,
  1835. 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
  1836. 0, 316, 317, 318, 319, 320, 0, 0, 0, 452,
  1837. 453, 454, 455, 456, 321, 322, 323, 324, 325, 326,
  1838. 327, 512, 513, 514, 515, 0, 516, 517, 518, 519,
  1839. 520, 521, 522, 523, 524, 525, 328, 329, 330, 331,
  1840. 332, 333, 457, 458, 459, 460, 461, 462, 463, 464,
  1841. 334, 526, 335, 336, 337, 338, 339, 340, 341, 342,
  1842. 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
  1843. 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
  1844. 363, 364, 365, 1, 2, 3, 4, 5, 6, 7,
  1845. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  1846. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  1847. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  1848. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  1849. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  1850. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
  1851. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  1852. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  1853. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  1854. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  1855. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  1856. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  1857. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  1858. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  1859. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  1860. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  1861. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  1862. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  1863. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  1864. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  1865. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  1866. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  1867. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  1868. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  1869. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  1870. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  1871. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  1872. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  1873. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  1874. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  1875. 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
  1876. 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1877. 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
  1878. 0, 0, 0, 0, 0, 0, 0, 0, 0, 511,
  1879. 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
  1880. 0, 0, 0, 316, 317, 318, 319, 320, 0, 0,
  1881. 0, 452, 453, 454, 455, 456, 321, 322, 323, 324,
  1882. 325, 326, 327, 0, 0, 0, 0, 0, 0, 0,
  1883. 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
  1884. 330, 331, 332, 333, 457, 458, 459, 460, 461, 462,
  1885. 463, 464, 334, 0, 335, 336, 337, 338, 339, 340,
  1886. 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
  1887. 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
  1888. 361, 362, 363, 364, 365, 1, 2, 3, 4, 5,
  1889. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  1890. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  1891. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  1892. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  1893. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  1894. 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
  1895. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  1896. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  1897. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  1898. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  1899. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  1900. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  1901. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  1902. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  1903. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  1904. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  1905. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  1906. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  1907. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  1908. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  1909. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  1910. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  1911. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  1912. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  1913. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  1914. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  1915. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  1916. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  1917. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  1918. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  1919. 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
  1920. 0, 444, 445, 0, 0, 0, 0, 0, 0, 0,
  1921. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1922. 446, 447, 0, 0, 0, 0, 0, 0, 0, 0,
  1923. 0, 0, 448, 449, 450, 451, 0, 0, 0, 0,
  1924. 0, 0, 0, 0, 0, 316, 317, 318, 319, 0,
  1925. 0, 0, 0, 452, 453, 454, 455, 456, 321, 322,
  1926. 323, 324, 325, 326, 327, 0, 0, 0, 0, 0,
  1927. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1928. 328, 329, 330, 331, 332, 333, 457, 458, 459, 460,
  1929. 461, 462, 463, 464, 334, 0, 335, 336, 337, 338,
  1930. 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
  1931. 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
  1932. 359, 360, 361, 362, 363, 364, 365, 1, 2, 3,
  1933. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  1934. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  1935. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  1936. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  1937. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  1938. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  1939. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  1940. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  1941. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  1942. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  1943. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  1944. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  1945. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  1946. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  1947. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  1948. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  1949. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  1950. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  1951. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  1952. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  1953. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  1954. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  1955. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  1956. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  1957. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  1958. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  1959. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  1960. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  1961. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  1962. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  1963. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  1964. 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1965. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1966. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1967. 0, 0, 0, 315, 0, 0, 0, 0, 0, 0,
  1968. 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
  1969. 319, 320, 0, 0, 0, 0, 0, 0, 0, 0,
  1970. 321, 322, 323, 324, 325, 326, 327, 0, 0, 0,
  1971. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1972. 0, 0, 328, 329, 330, 331, 332, 333, 0, 0,
  1973. 0, 0, 0, 0, 0, 0, 334, 0, 335, 336,
  1974. 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
  1975. 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
  1976. 357, 358, 359, 360, 361, 362, 363, 364, 365, 1,
  1977. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  1978. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  1979. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  1980. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  1981. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  1982. 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  1983. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  1984. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  1985. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  1986. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  1987. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  1988. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  1989. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  1990. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  1991. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  1992. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  1993. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  1994. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  1995. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  1996. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  1997. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  1998. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  1999. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  2000. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  2001. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  2002. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  2003. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  2004. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  2005. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  2006. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  2007. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  2008. 312, 313, 314, 0, 0, 0, 0, 0, 0, 0,
  2009. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2010. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2011. 0, 0, 0, 0, 0, 409, 0, 0, 0, 0,
  2012. 0, 0, 0, 0, 0, 0, 0, 0, 0, 316,
  2013. 317, 318, 319, 0, 0, 0, 0, 0, 0, 0,
  2014. 0, 410, 321, 322, 323, 324, 325, 326, 327, 0,
  2015. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2016. 0, 0, 0, 0, 328, 329, 330, 331, 332, 333,
  2017. 0, 0, 0, 0, 0, 0, 0, 0, 334, 0,
  2018. 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
  2019. 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
  2020. 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
  2021. 365, 1, 2, 3, 4, 5, 6, 7, 8, 9,
  2022. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  2023. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  2024. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  2025. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  2026. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  2027. 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  2028. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  2029. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  2030. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  2031. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  2032. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  2033. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  2034. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  2035. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  2036. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  2037. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  2038. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  2039. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  2040. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  2041. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  2042. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  2043. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  2044. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  2045. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  2046. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  2047. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  2048. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  2049. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  2050. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  2051. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  2052. 310, 311, 312, 313, 314, 0, 0, 0, 0, 0,
  2053. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2054. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2055. 0, 0, 582, 0, 0, 0, 0, 0, 0, 0,
  2056. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2057. 0, 316, 317, 318, 319, 0, 0, 0, 0, 0,
  2058. 0, 0, 0, 0, 321, 322, 323, 324, 325, 326,
  2059. 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2060. 0, 0, 0, 0, 0, 0, 328, 329, 330, 331,
  2061. 332, 333, 0, 0, 0, 0, 0, 0, 0, 0,
  2062. 334, 0, 335, 336, 337, 338, 339, 340, 341, 342,
  2063. 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
  2064. 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
  2065. 363, 364, 365, 1, 2, 3, 4, 5, 6, 7,
  2066. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  2067. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  2068. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  2069. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  2070. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  2071. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
  2072. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  2073. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  2074. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  2075. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  2076. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  2077. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  2078. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  2079. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  2080. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  2081. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  2082. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  2083. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  2084. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  2085. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  2086. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  2087. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  2088. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  2089. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  2090. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  2091. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  2092. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  2093. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  2094. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  2095. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  2096. 308, 309, 310, 311, 312, 313, 314, 0, 0, 0,
  2097. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2098. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2099. 0, 0, 0, 0, 668, 0, 0, 0, 0, 0,
  2100. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2101. 0, 0, 0, 316, 317, 318, 319, 0, 0, 0,
  2102. 0, 0, 0, 0, 0, 0, 321, 322, 323, 324,
  2103. 325, 326, 327, 0, 0, 0, 0, 0, 0, 0,
  2104. 0, 0, 0, 0, 0, 0, 0, 0, 328, 329,
  2105. 330, 331, 332, 333, 0, 0, 0, 0, 0, 0,
  2106. 0, 0, 334, 0, 335, 336, 337, 338, 339, 340,
  2107. 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
  2108. 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
  2109. 361, 362, 363, 364, 365, 1, 2, 3, 4, 5,
  2110. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  2111. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  2112. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  2113. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  2114. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  2115. 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
  2116. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  2117. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  2118. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  2119. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  2120. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  2121. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  2122. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  2123. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  2124. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  2125. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  2126. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  2127. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  2128. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  2129. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  2130. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  2131. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  2132. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  2133. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  2134. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  2135. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  2136. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  2137. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  2138. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  2139. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  2140. 306, 307, 308, 309, 310, 311, 312, 313, 314, 0,
  2141. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2142. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2143. 0, 0, 0, 0, 0, 0, 706, 0, 0, 0,
  2144. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2145. 0, 0, 0, 0, 0, 316, 317, 318, 319, 0,
  2146. 0, 0, 0, 0, 0, 0, 0, 0, 321, 322,
  2147. 323, 324, 325, 326, 327, 0, 0, 0, 0, 0,
  2148. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2149. 328, 329, 330, 331, 332, 333, 0, 0, 0, 0,
  2150. 0, 0, 0, 0, 334, 0, 335, 336, 337, 338,
  2151. 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
  2152. 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
  2153. 359, 360, 361, 362, 363, 364, 365, 1, 2, 3,
  2154. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  2155. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  2156. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  2157. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  2158. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  2159. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  2160. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  2161. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  2162. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  2163. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  2164. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  2165. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  2166. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  2167. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  2168. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  2169. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  2170. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  2171. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  2172. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  2173. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  2174. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  2175. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  2176. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  2177. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  2178. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  2179. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  2180. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  2181. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  2182. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  2183. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  2184. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  2185. 314, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2186. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2187. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2188. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2189. 0, 0, 0, 0, 0, 0, 0, 316, 317, 318,
  2190. 319, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2191. 321, 322, 323, 324, 325, 326, 327, 0, 0, 0,
  2192. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2193. 0, 0, 328, 329, 330, 331, 332, 333, 0, 0,
  2194. 0, 0, 0, 0, 0, 0, 334, 0, 335, 336,
  2195. 337, 338, 339, 340, 341, 342, 343, 344, 345, 346,
  2196. 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
  2197. 357, 358, 359, 360, 361, 362, 363, 364, 365, 2,
  2198. 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
  2199. 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  2200. 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  2201. 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
  2202. 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
  2203. 53, 54, 55, 56, 57, 58, 0, 0, 61, 62,
  2204. 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
  2205. 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
  2206. 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
  2207. 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
  2208. 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
  2209. 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
  2210. 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
  2211. 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
  2212. 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
  2213. 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
  2214. 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
  2215. 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
  2216. 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
  2217. 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
  2218. 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
  2219. 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
  2220. 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
  2221. 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
  2222. 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
  2223. 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
  2224. 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
  2225. 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
  2226. 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
  2227. 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
  2228. 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
  2229. 313, 314, 0, 0, 444, 445, 0, 0, 0, 0,
  2230. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2231. 0, 0, 0, 446, 447, 0, 0, 0, 554, 652,
  2232. 0, 0, 0, 0, 0, 448, 449, 450, 451, 0,
  2233. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2234. 0, 0, 0, 0, 0, 0, 452, 453, 454, 455,
  2235. 456, 321, 0, 0, 0, 0, 326, 327, 0, 0,
  2236. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2237. 0, 0, 0, 0, 0, 0, 0, 0, 0, 457,
  2238. 458, 459, 460, 461, 462, 463, 464, 0, 0, 0,
  2239. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2240. 0, 347, 2, 3, 4, 5, 6, 7, 8, 9,
  2241. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  2242. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  2243. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  2244. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  2245. 50, 51, 52, 53, 54, 55, 56, 57, 58, 0,
  2246. 0, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  2247. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  2248. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  2249. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  2250. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  2251. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  2252. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  2253. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  2254. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  2255. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  2256. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  2257. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  2258. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  2259. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  2260. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  2261. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  2262. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  2263. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  2264. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  2265. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  2266. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  2267. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  2268. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  2269. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  2270. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  2271. 310, 311, 312, 313, 314, 0, 0, 444, 445, 0,
  2272. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2273. 0, 0, 0, 0, 0, 0, 446, 447, 0, 0,
  2274. 0, 554, 725, 0, 0, 0, 0, 0, 448, 449,
  2275. 450, 451, 0, 0, 0, 0, 0, 0, 0, 0,
  2276. 0, 0, 0, 0, 0, 0, 0, 0, 0, 452,
  2277. 453, 454, 455, 456, 321, 0, 0, 0, 0, 326,
  2278. 327, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2279. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2280. 0, 0, 457, 458, 459, 460, 461, 462, 463, 464,
  2281. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2282. 0, 0, 0, 0, 347, 2, 3, 4, 5, 6,
  2283. 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
  2284. 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
  2285. 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
  2286. 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
  2287. 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
  2288. 57, 58, 0, 0, 61, 62, 63, 64, 65, 66,
  2289. 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
  2290. 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
  2291. 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
  2292. 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
  2293. 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
  2294. 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
  2295. 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
  2296. 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
  2297. 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
  2298. 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
  2299. 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
  2300. 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
  2301. 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
  2302. 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
  2303. 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
  2304. 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
  2305. 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
  2306. 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
  2307. 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
  2308. 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
  2309. 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
  2310. 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
  2311. 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
  2312. 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
  2313. 307, 308, 309, 310, 311, 312, 313, 314, 0, 0,
  2314. 444, 445, 0, 0, 0, 0, 0, 0, 0, 0,
  2315. 0, 0, 0, 0, 0, 0, 0, 0, 0, 446,
  2316. 447, 0, 0, 492, 0, 0, 0, 0, 0, 0,
  2317. 0, 448, 449, 450, 451, 0, 0, 0, 0, 0,
  2318. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2319. 0, 0, 452, 453, 454, 455, 456, 321, 0, 0,
  2320. 0, 0, 326, 327, 0, 0, 0, 0, 0, 0,
  2321. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2322. 0, 0, 0, 0, 0, 457, 458, 459, 460, 461,
  2323. 462, 463, 464, 0, 0, 0, 0, 0, 0, 0,
  2324. 0, 0, 0, 0, 0, 0, 0, 347, 2, 3,
  2325. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  2326. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  2327. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  2328. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  2329. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  2330. 54, 55, 56, 57, 58, 0, 0, 61, 62, 63,
  2331. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  2332. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  2333. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  2334. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  2335. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  2336. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  2337. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  2338. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  2339. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  2340. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  2341. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  2342. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  2343. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  2344. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  2345. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  2346. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  2347. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  2348. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  2349. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  2350. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  2351. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  2352. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  2353. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  2354. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  2355. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  2356. 314, 0, 0, 444, 445, 0, 0, 0, 0, 0,
  2357. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2358. 0, 0, 446, 447, 0, 0, 0, 554, 0, 0,
  2359. 0, 0, 0, 0, 448, 449, 450, 451, 0, 0,
  2360. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2361. 0, 0, 0, 0, 0, 452, 453, 454, 455, 456,
  2362. 321, 0, 0, 0, 0, 326, 327, 0, 0, 0,
  2363. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2364. 0, 0, 0, 0, 0, 0, 0, 0, 457, 458,
  2365. 459, 460, 461, 462, 463, 464, 0, 0, 0, 0,
  2366. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2367. 347, 2, 3, 4, 5, 6, 7, 8, 9, 10,
  2368. 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
  2369. 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
  2370. 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
  2371. 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
  2372. 51, 52, 53, 54, 55, 56, 57, 58, 0, 0,
  2373. 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
  2374. 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
  2375. 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
  2376. 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
  2377. 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
  2378. 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
  2379. 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
  2380. 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
  2381. 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
  2382. 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
  2383. 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
  2384. 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
  2385. 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
  2386. 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
  2387. 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
  2388. 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
  2389. 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
  2390. 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
  2391. 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
  2392. 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
  2393. 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
  2394. 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
  2395. 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
  2396. 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
  2397. 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
  2398. 311, 312, 313, 314, 0, 0, 444, 445, 0, 0,
  2399. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2400. 0, 0, 0, 0, 0, 446, 447, 0, 0, 610,
  2401. 0, 0, 0, 0, 0, 0, 0, 448, 449, 450,
  2402. 451, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2403. 0, 0, 0, 0, 0, 0, 0, 0, 452, 453,
  2404. 454, 455, 456, 321, 0, 0, 0, 0, 326, 327,
  2405. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2406. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2407. 0, 457, 458, 459, 460, 461, 462, 463, 464, 0,
  2408. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2409. 0, 0, 0, 347, 2, 3, 4, 5, 6, 7,
  2410. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  2411. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  2412. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  2413. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  2414. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  2415. 58, 0, 0, 61, 62, 63, 64, 65, 66, 67,
  2416. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  2417. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  2418. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  2419. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  2420. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  2421. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  2422. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  2423. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  2424. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  2425. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  2426. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  2427. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  2428. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  2429. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  2430. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  2431. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  2432. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  2433. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  2434. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  2435. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  2436. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  2437. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  2438. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  2439. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  2440. 308, 309, 310, 311, 312, 313, 314, 0, 0, 444,
  2441. 445, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2442. 0, 0, 0, 0, 0, 0, 0, 0, 446, 447,
  2443. 0, 0, 0, 0, 0, 0, 0, 0, 0, 622,
  2444. 448, 449, 450, 451, 0, 0, 0, 0, 0, 0,
  2445. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2446. 0, 452, 453, 454, 455, 456, 321, 0, 0, 0,
  2447. 0, 326, 327, 0, 0, 0, 0, 0, 0, 0,
  2448. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2449. 0, 0, 0, 0, 457, 458, 459, 460, 461, 462,
  2450. 463, 464, 0, 0, 0, 0, 0, 0, 0, 0,
  2451. 0, 0, 0, 0, 0, 0, 347, 2, 3, 4,
  2452. 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  2453. 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  2454. 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
  2455. 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
  2456. 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
  2457. 55, 56, 57, 58, 0, 0, 61, 62, 63, 64,
  2458. 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  2459. 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
  2460. 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
  2461. 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
  2462. 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
  2463. 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
  2464. 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
  2465. 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
  2466. 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
  2467. 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
  2468. 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
  2469. 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
  2470. 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
  2471. 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
  2472. 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
  2473. 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
  2474. 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
  2475. 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
  2476. 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
  2477. 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
  2478. 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
  2479. 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  2480. 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
  2481. 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
  2482. 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
  2483. 0, 0, 444, 445, 0, 0, 0, 0, 0, 0,
  2484. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2485. 0, 446, 447, 0, 0, 0, 0, 0, 0, 0,
  2486. 0, 0, 0, 448, 449, 450, 451, 0, 0, 0,
  2487. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2488. 0, 0, 0, 0, 452, 453, 454, 455, 456, 321,
  2489. 0, 0, 0, 0, 326, 327, 0, 0, 0, 0,
  2490. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2491. 0, 0, 0, 0, 0, 0, 0, 457, 458, 459,
  2492. 460, 461, 462, 463, 464, 0, 0, 0, 0, 0,
  2493. 0, 0, 0, 0, 0, 0, 0, 0, 0, 347,
  2494. 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  2495. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  2496. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  2497. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  2498. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  2499. 52, 53, 54, 55, 56, 57, 58, 0, 0, 61,
  2500. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  2501. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  2502. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  2503. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  2504. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  2505. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  2506. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  2507. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  2508. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  2509. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  2510. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  2511. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  2512. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  2513. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  2514. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  2515. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  2516. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  2517. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  2518. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  2519. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  2520. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  2521. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  2522. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  2523. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  2524. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  2525. 312, 313, 314, 0, 0, 444, 445, 0, 0, 475,
  2526. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2527. 0, 0, 0, 493, 446, 447, 0, 0, 0, 0,
  2528. 0, 0, 0, 0, 0, 0, 448, 449, 450, 451,
  2529. 562, 563, 0, 0, 0, 0, 0, 0, 0, 0,
  2530. 0, 0, 0, 0, 0, 0, 0, 452, 453, 454,
  2531. 455, 456, 321, 0, 0, 0, 0, 326, 572, 0,
  2532. 0, 0, 575, 0, 0, 0, 0, 0, 0, 0,
  2533. 0, 0, 0, 493, 0, 0, 0, 0, 0, 0,
  2534. 457, 458, 459, 460, 461, 462, 463, 464, 0, 0,
  2535. 0, 0, 493, 0, 0, 0, 0, 0, 0, 0,
  2536. 0, 0, 347, 0, 0, 0, 0, 0, 0, 0,
  2537. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2538. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2539. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2540. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2541. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2542. 0, 0, 663, 0, 0, 0, 0, 0, 0, 0,
  2543. 0, 0, 0, 0, 0, 669, 670, 671, 493, 493,
  2544. 493, 493, 493, 493, 493, 493, 493, 493, 493, 493,
  2545. 493, 493, 493, 493, 0, 0, 0, 0, 0, 0,
  2546. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2547. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2548. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2549. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2550. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2551. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2552. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2553. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2554. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  2555. 0, 0, 0, 0, 0, 0, 0, 493
  2556. };
  2557. static const yytype_int16 yycheck[] =
  2558. {
  2559. 0, 733, 0, 346, 0, 486, 341, 383, 740, 0,
  2560. 386, 341, 388, 389, 349, 358, 392, 339, 348, 751,
  2561. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  2562. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  2563. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  2564. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  2565. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  2566. 54, 55, 56, 57, 58, 59, 60, 558, 339, 63,
  2567. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  2568. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  2569. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  2570. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  2571. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  2572. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  2573. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  2574. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  2575. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  2576. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  2577. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  2578. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  2579. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  2580. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  2581. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  2582. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  2583. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  2584. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  2585. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  2586. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  2587. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  2588. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  2589. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  2590. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  2591. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  2592. 314, 315, 316, 379, 371, 484, 540, 438, 447, 552,
  2593. 614, 554, 408, 375, 557, 427, 343, 326, 414, 321,
  2594. 322, 341, 339, 694, 341, 341, 317, 318, 404, 349,
  2595. 340, 348, 348, 400, 323, 324, 346, 399, 349, 435,
  2596. 436, 371, 473, 319, 320, 346, 347, 341, 375, 379,
  2597. 371, 722, 419, 362, 348, 357, 358, 387, 379, 387,
  2598. 390, 387, 376, 339, 375, 341, 387, 381, 382, 345,
  2599. 400, 340, 340, 346, 404, 487, 349, 346, 346, 400,
  2600. 519, 340, 521, 404, 618, 343, 340, 346, 346, 419,
  2601. 340, 349, 346, 340, 506, 346, 346, 342, 419, 346,
  2602. 430, 346, 346, 347, 346, 584, 482, 349, 651, 430,
  2603. 596, 597, 598, 599, 351, 346, 353, 484, 349, 486,
  2604. 349, 552, 346, 554, 346, 349, 557, 349, 567, 328,
  2605. 329, 330, 331, 332, 333, 334, 335, 336, 337, 346,
  2606. 571, 375, 349, 364, 365, 366, 354, 355, 356, 348,
  2607. 340, 755, 482, 344, 484, 346, 486, 592, 593, 693,
  2608. 357, 482, 705, 484, 343, 486, 594, 595, 600, 601,
  2609. 375, 343, 375, 375, 341, 349, 340, 656, 348, 375,
  2610. 339, 620, 375, 579, 341, 624, 375, 325, 361, 360,
  2611. 359, 558, 327, 342, 341, 339, 344, 349, 349, 339,
  2612. 339, 346, 745, 349, 347, 339, 383, 349, 349, 339,
  2613. 540, 642, 643, 349, 339, 375, 349, 584, 340, 540,
  2614. 651, 375, 342, 342, 339, 375, 342, 761, 558, 340,
  2615. 344, 339, 349, 343, 340, 348, 340, 558, 375, 344,
  2616. 343, 343, 349, 602, 604, 603, 607, 711, 605, 688,
  2617. 606, 404, 320, 489, 584, 694, 387, 666, 696, 578,
  2618. 751, 739, 752, 584, 550, 722, 696, 550, 400, 550,
  2619. 398, 713, -1, -1, 705, 404, -1, -1, 387, -1,
  2620. -1, -1, -1, 722, 614, -1, -1, -1, 618, 656,
  2621. -1, -1, -1, 614, -1, 734, 727, 618, -1, 711,
  2622. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2623. -1, 750, -1, -1, 745, -1, -1, -1, -1, -1,
  2624. -1, -1, -1, -1, -1, -1, 656, 694, -1, -1,
  2625. -1, -1, -1, -1, -1, 656, -1, -1, -1, -1,
  2626. -1, 717, -1, -1, -1, -1, -1, -1, -1, -1,
  2627. -1, -1, -1, -1, -1, 722, -1, -1, -1, -1,
  2628. -1, -1, -1, 693, 694, -1, 696, -1, -1, -1,
  2629. -1, -1, 693, 694, -1, 696, -1, -1, -1, -1,
  2630. -1, -1, -1, -1, -1, -1, -1, 717, -1, -1,
  2631. -1, -1, 722, -1, -1, -1, 717, -1, -1, -1,
  2632. -1, 722, -1, 733, -1, -1, -1, -1, -1, -1,
  2633. 740, -1, 733, -1, -1, -1, -1, -1, -1, 740,
  2634. -1, 751, -1, -1, -1, 755, -1, -1, -1, -1,
  2635. 751, 761, -1, -1, 755, -1, -1, -1, 0, -1,
  2636. 761, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  2637. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  2638. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  2639. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  2640. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  2641. 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  2642. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  2643. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  2644. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  2645. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  2646. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  2647. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  2648. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  2649. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  2650. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  2651. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  2652. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  2653. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  2654. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  2655. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  2656. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  2657. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  2658. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  2659. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  2660. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  2661. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  2662. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  2663. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  2664. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  2665. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  2666. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  2667. 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
  2668. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2669. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2670. -1, -1, -1, -1, -1, -1, -1, 349, -1, -1,
  2671. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2672. -1, 363, 364, 365, 366, 367, -1, -1, -1, -1,
  2673. -1, -1, -1, -1, 376, 377, 378, 379, 380, 381,
  2674. 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2675. -1, -1, -1, -1, -1, -1, 398, 399, 400, 401,
  2676. 402, 403, -1, -1, -1, -1, -1, -1, -1, -1,
  2677. 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
  2678. 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
  2679. 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
  2680. 442, 443, 444, 3, 4, 5, 6, 7, 8, 9,
  2681. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  2682. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  2683. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  2684. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  2685. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  2686. 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  2687. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  2688. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  2689. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  2690. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  2691. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  2692. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  2693. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  2694. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  2695. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  2696. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  2697. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  2698. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  2699. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  2700. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  2701. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  2702. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  2703. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  2704. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  2705. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  2706. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  2707. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  2708. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  2709. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  2710. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  2711. 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
  2712. 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2713. -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
  2714. -1, 341, -1, 343, 344, -1, -1, -1, -1, 349,
  2715. 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
  2716. -1, -1, -1, 363, 364, 365, 366, 367, -1, -1,
  2717. -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
  2718. 380, 381, 382, 383, 384, 385, 386, -1, 388, 389,
  2719. 390, 391, 392, 393, 394, 395, 396, 397, 398, 399,
  2720. 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
  2721. 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
  2722. 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
  2723. 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
  2724. 440, 441, 442, 443, 444, 3, 4, 5, 6, 7,
  2725. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  2726. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  2727. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  2728. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  2729. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  2730. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
  2731. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  2732. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  2733. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  2734. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  2735. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  2736. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  2737. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  2738. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  2739. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  2740. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  2741. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  2742. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  2743. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  2744. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  2745. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  2746. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  2747. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  2748. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  2749. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  2750. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  2751. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  2752. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  2753. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  2754. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  2755. 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
  2756. -1, 319, 320, -1, -1, -1, -1, -1, -1, -1,
  2757. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2758. 338, 339, -1, 341, -1, 343, 344, -1, -1, -1,
  2759. -1, 349, 350, 351, 352, 353, -1, -1, -1, -1,
  2760. -1, -1, -1, -1, -1, 363, 364, 365, 366, 367,
  2761. -1, -1, -1, 371, 372, 373, 374, 375, 376, 377,
  2762. 378, 379, 380, 381, 382, 383, 384, 385, 386, -1,
  2763. 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
  2764. 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
  2765. 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
  2766. 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
  2767. 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
  2768. 438, 439, 440, 441, 442, 443, 444, 3, 4, 5,
  2769. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  2770. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  2771. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  2772. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  2773. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  2774. 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
  2775. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  2776. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  2777. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  2778. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  2779. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  2780. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  2781. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  2782. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  2783. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  2784. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  2785. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  2786. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  2787. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  2788. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  2789. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  2790. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  2791. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  2792. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  2793. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  2794. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  2795. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  2796. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  2797. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  2798. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  2799. 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
  2800. 316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
  2801. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2802. -1, -1, 338, 339, -1, 341, -1, 343, -1, -1,
  2803. -1, -1, -1, 349, 350, 351, 352, 353, -1, -1,
  2804. -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
  2805. 366, 367, -1, -1, -1, 371, 372, 373, 374, 375,
  2806. 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
  2807. 386, -1, 388, 389, 390, 391, 392, 393, 394, 395,
  2808. 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
  2809. 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
  2810. 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
  2811. 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
  2812. 436, 437, 438, 439, 440, 441, 442, 443, 444, 3,
  2813. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  2814. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  2815. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  2816. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  2817. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  2818. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  2819. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  2820. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  2821. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  2822. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  2823. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  2824. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  2825. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  2826. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  2827. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  2828. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  2829. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  2830. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  2831. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  2832. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  2833. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  2834. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  2835. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  2836. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  2837. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  2838. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  2839. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  2840. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  2841. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  2842. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  2843. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  2844. 314, 315, 316, -1, -1, 319, 320, -1, -1, -1,
  2845. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2846. -1, -1, -1, -1, 338, 339, -1, 341, -1, 343,
  2847. -1, -1, -1, -1, -1, 349, 350, 351, 352, 353,
  2848. -1, -1, -1, -1, -1, -1, -1, -1, -1, 363,
  2849. 364, 365, 366, 367, -1, -1, -1, 371, 372, 373,
  2850. 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
  2851. 384, 385, 386, -1, 388, 389, 390, 391, 392, 393,
  2852. 394, 395, 396, 397, 398, 399, 400, 401, 402, 403,
  2853. 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
  2854. 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
  2855. 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
  2856. 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
  2857. 444, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  2858. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  2859. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  2860. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  2861. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  2862. 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  2863. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  2864. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  2865. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  2866. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  2867. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  2868. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  2869. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  2870. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  2871. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  2872. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  2873. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  2874. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  2875. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  2876. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  2877. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  2878. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  2879. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  2880. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  2881. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  2882. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  2883. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  2884. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  2885. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  2886. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  2887. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  2888. 312, 313, 314, 315, 316, -1, -1, 319, 320, -1,
  2889. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2890. -1, -1, -1, -1, -1, -1, 338, 339, -1, 341,
  2891. -1, -1, -1, -1, -1, -1, -1, 349, 350, 351,
  2892. 352, 353, -1, -1, -1, -1, -1, -1, -1, -1,
  2893. -1, 363, 364, 365, 366, 367, -1, -1, -1, 371,
  2894. 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
  2895. 382, 383, 384, 385, 386, -1, 388, 389, 390, 391,
  2896. 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
  2897. 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
  2898. 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
  2899. 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
  2900. 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
  2901. 442, 443, 444, 3, 4, 5, 6, 7, 8, 9,
  2902. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  2903. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  2904. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  2905. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  2906. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  2907. 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  2908. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  2909. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  2910. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  2911. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  2912. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  2913. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  2914. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  2915. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  2916. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  2917. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  2918. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  2919. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  2920. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  2921. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  2922. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  2923. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  2924. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  2925. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  2926. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  2927. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  2928. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  2929. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  2930. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  2931. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  2932. 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
  2933. 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2934. -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
  2935. -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
  2936. 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
  2937. -1, -1, -1, 363, 364, 365, 366, 367, -1, -1,
  2938. -1, 371, 372, 373, 374, 375, 376, 377, 378, 379,
  2939. 380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
  2940. -1, -1, -1, -1, -1, -1, -1, -1, 398, 399,
  2941. 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
  2942. 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
  2943. 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
  2944. 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
  2945. 440, 441, 442, 443, 444, 3, 4, 5, 6, 7,
  2946. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  2947. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  2948. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  2949. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  2950. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  2951. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
  2952. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  2953. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  2954. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  2955. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  2956. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  2957. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  2958. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  2959. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  2960. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  2961. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  2962. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  2963. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  2964. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  2965. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  2966. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  2967. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  2968. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  2969. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  2970. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  2971. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  2972. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  2973. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  2974. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  2975. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  2976. 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
  2977. -1, 319, 320, -1, -1, -1, -1, -1, -1, -1,
  2978. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2979. 338, 339, -1, -1, -1, -1, -1, -1, -1, -1,
  2980. -1, -1, 350, 351, 352, 353, -1, -1, -1, -1,
  2981. -1, -1, -1, -1, -1, 363, 364, 365, 366, -1,
  2982. -1, -1, -1, 371, 372, 373, 374, 375, 376, 377,
  2983. 378, 379, 380, 381, 382, -1, -1, -1, -1, -1,
  2984. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  2985. 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
  2986. 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
  2987. 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
  2988. 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
  2989. 438, 439, 440, 441, 442, 443, 444, 3, 4, 5,
  2990. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  2991. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  2992. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  2993. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  2994. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  2995. 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
  2996. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  2997. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  2998. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  2999. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  3000. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  3001. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  3002. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  3003. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  3004. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  3005. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  3006. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  3007. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  3008. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  3009. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  3010. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  3011. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  3012. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  3013. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  3014. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  3015. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  3016. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  3017. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  3018. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  3019. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  3020. 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
  3021. 316, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3022. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3023. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3024. -1, -1, -1, 349, -1, -1, -1, -1, -1, -1,
  3025. -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
  3026. 366, 367, -1, -1, -1, -1, -1, -1, -1, -1,
  3027. 376, 377, 378, 379, 380, 381, 382, -1, -1, -1,
  3028. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3029. -1, -1, 398, 399, 400, 401, 402, 403, -1, -1,
  3030. -1, -1, -1, -1, -1, -1, 412, -1, 414, 415,
  3031. 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
  3032. 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
  3033. 436, 437, 438, 439, 440, 441, 442, 443, 444, 3,
  3034. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  3035. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  3036. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  3037. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  3038. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  3039. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  3040. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  3041. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  3042. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  3043. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  3044. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  3045. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  3046. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  3047. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  3048. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  3049. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  3050. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  3051. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  3052. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  3053. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  3054. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  3055. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  3056. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  3057. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  3058. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  3059. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  3060. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  3061. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  3062. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  3063. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  3064. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  3065. 314, 315, 316, -1, -1, -1, -1, -1, -1, -1,
  3066. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3067. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3068. -1, -1, -1, -1, -1, 349, -1, -1, -1, -1,
  3069. -1, -1, -1, -1, -1, -1, -1, -1, -1, 363,
  3070. 364, 365, 366, -1, -1, -1, -1, -1, -1, -1,
  3071. -1, 375, 376, 377, 378, 379, 380, 381, 382, -1,
  3072. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3073. -1, -1, -1, -1, 398, 399, 400, 401, 402, 403,
  3074. -1, -1, -1, -1, -1, -1, -1, -1, 412, -1,
  3075. 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
  3076. 424, 425, 426, 427, 428, 429, 430, 431, 432, 433,
  3077. 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
  3078. 444, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  3079. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  3080. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  3081. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  3082. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  3083. 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  3084. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  3085. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  3086. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  3087. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  3088. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  3089. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  3090. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  3091. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  3092. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  3093. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  3094. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  3095. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  3096. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  3097. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  3098. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  3099. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  3100. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  3101. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  3102. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  3103. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  3104. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  3105. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  3106. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  3107. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  3108. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  3109. 312, 313, 314, 315, 316, -1, -1, -1, -1, -1,
  3110. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3111. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3112. -1, -1, 344, -1, -1, -1, -1, -1, -1, -1,
  3113. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3114. -1, 363, 364, 365, 366, -1, -1, -1, -1, -1,
  3115. -1, -1, -1, -1, 376, 377, 378, 379, 380, 381,
  3116. 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3117. -1, -1, -1, -1, -1, -1, 398, 399, 400, 401,
  3118. 402, 403, -1, -1, -1, -1, -1, -1, -1, -1,
  3119. 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
  3120. 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
  3121. 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
  3122. 442, 443, 444, 3, 4, 5, 6, 7, 8, 9,
  3123. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  3124. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  3125. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  3126. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  3127. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  3128. 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
  3129. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  3130. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  3131. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  3132. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  3133. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  3134. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  3135. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  3136. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  3137. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  3138. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  3139. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  3140. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  3141. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  3142. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  3143. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  3144. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  3145. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  3146. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  3147. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  3148. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  3149. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  3150. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  3151. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  3152. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  3153. 310, 311, 312, 313, 314, 315, 316, -1, -1, -1,
  3154. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3155. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3156. -1, -1, -1, -1, 344, -1, -1, -1, -1, -1,
  3157. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3158. -1, -1, -1, 363, 364, 365, 366, -1, -1, -1,
  3159. -1, -1, -1, -1, -1, -1, 376, 377, 378, 379,
  3160. 380, 381, 382, -1, -1, -1, -1, -1, -1, -1,
  3161. -1, -1, -1, -1, -1, -1, -1, -1, 398, 399,
  3162. 400, 401, 402, 403, -1, -1, -1, -1, -1, -1,
  3163. -1, -1, 412, -1, 414, 415, 416, 417, 418, 419,
  3164. 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
  3165. 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
  3166. 440, 441, 442, 443, 444, 3, 4, 5, 6, 7,
  3167. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  3168. 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
  3169. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  3170. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  3171. 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  3172. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
  3173. 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
  3174. 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
  3175. 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
  3176. 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
  3177. 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
  3178. 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
  3179. 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
  3180. 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
  3181. 148, 149, 150, 151, 152, 153, 154, 155, 156, 157,
  3182. 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
  3183. 168, 169, 170, 171, 172, 173, 174, 175, 176, 177,
  3184. 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
  3185. 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
  3186. 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
  3187. 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
  3188. 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
  3189. 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
  3190. 238, 239, 240, 241, 242, 243, 244, 245, 246, 247,
  3191. 248, 249, 250, 251, 252, 253, 254, 255, 256, 257,
  3192. 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
  3193. 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
  3194. 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
  3195. 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
  3196. 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
  3197. 308, 309, 310, 311, 312, 313, 314, 315, 316, -1,
  3198. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3199. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3200. -1, -1, -1, -1, -1, -1, 344, -1, -1, -1,
  3201. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3202. -1, -1, -1, -1, -1, 363, 364, 365, 366, -1,
  3203. -1, -1, -1, -1, -1, -1, -1, -1, 376, 377,
  3204. 378, 379, 380, 381, 382, -1, -1, -1, -1, -1,
  3205. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3206. 398, 399, 400, 401, 402, 403, -1, -1, -1, -1,
  3207. -1, -1, -1, -1, 412, -1, 414, 415, 416, 417,
  3208. 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
  3209. 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
  3210. 438, 439, 440, 441, 442, 443, 444, 3, 4, 5,
  3211. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  3212. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  3213. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  3214. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  3215. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  3216. 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
  3217. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  3218. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  3219. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  3220. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  3221. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  3222. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  3223. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  3224. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  3225. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  3226. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  3227. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  3228. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  3229. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  3230. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  3231. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  3232. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  3233. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  3234. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  3235. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  3236. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  3237. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  3238. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  3239. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  3240. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  3241. 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
  3242. 316, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3243. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3244. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3245. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3246. -1, -1, -1, -1, -1, -1, -1, 363, 364, 365,
  3247. 366, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3248. 376, 377, 378, 379, 380, 381, 382, -1, -1, -1,
  3249. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3250. -1, -1, 398, 399, 400, 401, 402, 403, -1, -1,
  3251. -1, -1, -1, -1, -1, -1, 412, -1, 414, 415,
  3252. 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
  3253. 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
  3254. 436, 437, 438, 439, 440, 441, 442, 443, 444, 4,
  3255. 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  3256. 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  3257. 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
  3258. 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
  3259. 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
  3260. 55, 56, 57, 58, 59, 60, -1, -1, 63, 64,
  3261. 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
  3262. 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
  3263. 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
  3264. 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
  3265. 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
  3266. 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
  3267. 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
  3268. 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
  3269. 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
  3270. 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
  3271. 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
  3272. 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
  3273. 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
  3274. 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
  3275. 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
  3276. 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
  3277. 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
  3278. 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
  3279. 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
  3280. 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
  3281. 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
  3282. 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  3283. 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
  3284. 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
  3285. 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
  3286. 315, 316, -1, -1, 319, 320, -1, -1, -1, -1,
  3287. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3288. -1, -1, -1, 338, 339, -1, -1, -1, 343, 344,
  3289. -1, -1, -1, -1, -1, 350, 351, 352, 353, -1,
  3290. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3291. -1, -1, -1, -1, -1, -1, 371, 372, 373, 374,
  3292. 375, 376, -1, -1, -1, -1, 381, 382, -1, -1,
  3293. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3294. -1, -1, -1, -1, -1, -1, -1, -1, -1, 404,
  3295. 405, 406, 407, 408, 409, 410, 411, -1, -1, -1,
  3296. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3297. -1, 426, 4, 5, 6, 7, 8, 9, 10, 11,
  3298. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  3299. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  3300. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  3301. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  3302. 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
  3303. -1, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  3304. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  3305. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  3306. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  3307. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  3308. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  3309. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  3310. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  3311. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  3312. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  3313. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  3314. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  3315. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  3316. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  3317. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  3318. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  3319. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  3320. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  3321. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  3322. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  3323. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  3324. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  3325. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  3326. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  3327. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  3328. 312, 313, 314, 315, 316, -1, -1, 319, 320, -1,
  3329. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3330. -1, -1, -1, -1, -1, -1, 338, 339, -1, -1,
  3331. -1, 343, 344, -1, -1, -1, -1, -1, 350, 351,
  3332. 352, 353, -1, -1, -1, -1, -1, -1, -1, -1,
  3333. -1, -1, -1, -1, -1, -1, -1, -1, -1, 371,
  3334. 372, 373, 374, 375, 376, -1, -1, -1, -1, 381,
  3335. 382, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3336. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3337. -1, -1, 404, 405, 406, 407, 408, 409, 410, 411,
  3338. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3339. -1, -1, -1, -1, 426, 4, 5, 6, 7, 8,
  3340. 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
  3341. 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
  3342. 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
  3343. 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
  3344. 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
  3345. 59, 60, -1, -1, 63, 64, 65, 66, 67, 68,
  3346. 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
  3347. 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
  3348. 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
  3349. 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
  3350. 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
  3351. 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
  3352. 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
  3353. 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
  3354. 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
  3355. 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
  3356. 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
  3357. 179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
  3358. 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
  3359. 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
  3360. 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
  3361. 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
  3362. 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
  3363. 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
  3364. 249, 250, 251, 252, 253, 254, 255, 256, 257, 258,
  3365. 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
  3366. 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
  3367. 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
  3368. 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
  3369. 299, 300, 301, 302, 303, 304, 305, 306, 307, 308,
  3370. 309, 310, 311, 312, 313, 314, 315, 316, -1, -1,
  3371. 319, 320, -1, -1, -1, -1, -1, -1, -1, -1,
  3372. -1, -1, -1, -1, -1, -1, -1, -1, -1, 338,
  3373. 339, -1, -1, 342, -1, -1, -1, -1, -1, -1,
  3374. -1, 350, 351, 352, 353, -1, -1, -1, -1, -1,
  3375. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3376. -1, -1, 371, 372, 373, 374, 375, 376, -1, -1,
  3377. -1, -1, 381, 382, -1, -1, -1, -1, -1, -1,
  3378. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3379. -1, -1, -1, -1, -1, 404, 405, 406, 407, 408,
  3380. 409, 410, 411, -1, -1, -1, -1, -1, -1, -1,
  3381. -1, -1, -1, -1, -1, -1, -1, 426, 4, 5,
  3382. 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  3383. 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  3384. 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
  3385. 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
  3386. 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
  3387. 56, 57, 58, 59, 60, -1, -1, 63, 64, 65,
  3388. 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
  3389. 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
  3390. 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
  3391. 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  3392. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
  3393. 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
  3394. 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
  3395. 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
  3396. 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
  3397. 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
  3398. 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
  3399. 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
  3400. 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
  3401. 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
  3402. 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
  3403. 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
  3404. 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
  3405. 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
  3406. 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
  3407. 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
  3408. 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
  3409. 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
  3410. 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
  3411. 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
  3412. 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
  3413. 316, -1, -1, 319, 320, -1, -1, -1, -1, -1,
  3414. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3415. -1, -1, 338, 339, -1, -1, -1, 343, -1, -1,
  3416. -1, -1, -1, -1, 350, 351, 352, 353, -1, -1,
  3417. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3418. -1, -1, -1, -1, -1, 371, 372, 373, 374, 375,
  3419. 376, -1, -1, -1, -1, 381, 382, -1, -1, -1,
  3420. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3421. -1, -1, -1, -1, -1, -1, -1, -1, 404, 405,
  3422. 406, 407, 408, 409, 410, 411, -1, -1, -1, -1,
  3423. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3424. 426, 4, 5, 6, 7, 8, 9, 10, 11, 12,
  3425. 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  3426. 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  3427. 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
  3428. 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
  3429. 53, 54, 55, 56, 57, 58, 59, 60, -1, -1,
  3430. 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
  3431. 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
  3432. 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
  3433. 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
  3434. 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
  3435. 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
  3436. 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
  3437. 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
  3438. 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
  3439. 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
  3440. 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
  3441. 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
  3442. 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
  3443. 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
  3444. 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
  3445. 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
  3446. 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
  3447. 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
  3448. 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
  3449. 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
  3450. 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
  3451. 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
  3452. 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
  3453. 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
  3454. 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
  3455. 313, 314, 315, 316, -1, -1, 319, 320, -1, -1,
  3456. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3457. -1, -1, -1, -1, -1, 338, 339, -1, -1, 342,
  3458. -1, -1, -1, -1, -1, -1, -1, 350, 351, 352,
  3459. 353, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3460. -1, -1, -1, -1, -1, -1, -1, -1, 371, 372,
  3461. 373, 374, 375, 376, -1, -1, -1, -1, 381, 382,
  3462. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3463. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3464. -1, 404, 405, 406, 407, 408, 409, 410, 411, -1,
  3465. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3466. -1, -1, -1, 426, 4, 5, 6, 7, 8, 9,
  3467. 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
  3468. 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
  3469. 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
  3470. 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  3471. 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
  3472. 60, -1, -1, 63, 64, 65, 66, 67, 68, 69,
  3473. 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
  3474. 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
  3475. 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
  3476. 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
  3477. 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
  3478. 120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
  3479. 130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
  3480. 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
  3481. 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
  3482. 160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
  3483. 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
  3484. 180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
  3485. 190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
  3486. 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
  3487. 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
  3488. 220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
  3489. 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
  3490. 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
  3491. 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
  3492. 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
  3493. 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
  3494. 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
  3495. 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
  3496. 300, 301, 302, 303, 304, 305, 306, 307, 308, 309,
  3497. 310, 311, 312, 313, 314, 315, 316, -1, -1, 319,
  3498. 320, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3499. -1, -1, -1, -1, -1, -1, -1, -1, 338, 339,
  3500. -1, -1, -1, -1, -1, -1, -1, -1, -1, 349,
  3501. 350, 351, 352, 353, -1, -1, -1, -1, -1, -1,
  3502. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3503. -1, 371, 372, 373, 374, 375, 376, -1, -1, -1,
  3504. -1, 381, 382, -1, -1, -1, -1, -1, -1, -1,
  3505. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3506. -1, -1, -1, -1, 404, 405, 406, 407, 408, 409,
  3507. 410, 411, -1, -1, -1, -1, -1, -1, -1, -1,
  3508. -1, -1, -1, -1, -1, -1, 426, 4, 5, 6,
  3509. 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
  3510. 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
  3511. 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
  3512. 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
  3513. 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
  3514. 57, 58, 59, 60, -1, -1, 63, 64, 65, 66,
  3515. 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
  3516. 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
  3517. 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
  3518. 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
  3519. 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
  3520. 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
  3521. 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
  3522. 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
  3523. 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
  3524. 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
  3525. 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
  3526. 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
  3527. 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
  3528. 197, 198, 199, 200, 201, 202, 203, 204, 205, 206,
  3529. 207, 208, 209, 210, 211, 212, 213, 214, 215, 216,
  3530. 217, 218, 219, 220, 221, 222, 223, 224, 225, 226,
  3531. 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
  3532. 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
  3533. 247, 248, 249, 250, 251, 252, 253, 254, 255, 256,
  3534. 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
  3535. 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
  3536. 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
  3537. 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
  3538. 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
  3539. 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
  3540. -1, -1, 319, 320, -1, -1, -1, -1, -1, -1,
  3541. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3542. -1, 338, 339, -1, -1, -1, -1, -1, -1, -1,
  3543. -1, -1, -1, 350, 351, 352, 353, -1, -1, -1,
  3544. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3545. -1, -1, -1, -1, 371, 372, 373, 374, 375, 376,
  3546. -1, -1, -1, -1, 381, 382, -1, -1, -1, -1,
  3547. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3548. -1, -1, -1, -1, -1, -1, -1, 404, 405, 406,
  3549. 407, 408, 409, 410, 411, -1, -1, -1, -1, -1,
  3550. -1, -1, -1, -1, -1, -1, -1, -1, -1, 426,
  3551. 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
  3552. 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
  3553. 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
  3554. 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
  3555. 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
  3556. 54, 55, 56, 57, 58, 59, 60, -1, -1, 63,
  3557. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  3558. 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
  3559. 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
  3560. 94, 95, 96, 97, 98, 99, 100, 101, 102, 103,
  3561. 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
  3562. 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
  3563. 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
  3564. 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
  3565. 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
  3566. 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
  3567. 164, 165, 166, 167, 168, 169, 170, 171, 172, 173,
  3568. 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
  3569. 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
  3570. 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
  3571. 204, 205, 206, 207, 208, 209, 210, 211, 212, 213,
  3572. 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
  3573. 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
  3574. 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
  3575. 244, 245, 246, 247, 248, 249, 250, 251, 252, 253,
  3576. 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  3577. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
  3578. 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
  3579. 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
  3580. 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
  3581. 304, 305, 306, 307, 308, 309, 310, 311, 312, 313,
  3582. 314, 315, 316, -1, -1, 319, 320, -1, -1, 413,
  3583. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3584. -1, -1, -1, 427, 338, 339, -1, -1, -1, -1,
  3585. -1, -1, -1, -1, -1, -1, 350, 351, 352, 353,
  3586. 444, 445, -1, -1, -1, -1, -1, -1, -1, -1,
  3587. -1, -1, -1, -1, -1, -1, -1, 371, 372, 373,
  3588. 374, 375, 376, -1, -1, -1, -1, 381, 382, -1,
  3589. -1, -1, 476, -1, -1, -1, -1, -1, -1, -1,
  3590. -1, -1, -1, 487, -1, -1, -1, -1, -1, -1,
  3591. 404, 405, 406, 407, 408, 409, 410, 411, -1, -1,
  3592. -1, -1, 506, -1, -1, -1, -1, -1, -1, -1,
  3593. -1, -1, 426, -1, -1, -1, -1, -1, -1, -1,
  3594. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3595. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3596. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3597. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3598. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3599. -1, -1, 576, -1, -1, -1, -1, -1, -1, -1,
  3600. -1, -1, -1, -1, -1, 589, 590, 591, 592, 593,
  3601. 594, 595, 596, 597, 598, 599, 600, 601, 602, 603,
  3602. 604, 605, 606, 607, -1, -1, -1, -1, -1, -1,
  3603. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3604. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3605. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3606. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3607. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3608. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3609. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3610. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3611. -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
  3612. -1, -1, -1, -1, -1, -1, -1, 711
  3613. };
  3614. /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
  3615. symbol of state STATE-NUM. */
  3616. static const yytype_int16 yystos[] =
  3617. {
  3618. 0, 3, 4, 5, 6, 7, 8, 9, 10, 11,
  3619. 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
  3620. 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
  3621. 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
  3622. 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
  3623. 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  3624. 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
  3625. 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
  3626. 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
  3627. 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
  3628. 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
  3629. 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
  3630. 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
  3631. 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
  3632. 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
  3633. 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
  3634. 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
  3635. 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  3636. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
  3637. 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
  3638. 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
  3639. 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  3640. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
  3641. 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
  3642. 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
  3643. 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
  3644. 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
  3645. 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
  3646. 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
  3647. 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
  3648. 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
  3649. 312, 313, 314, 315, 316, 349, 363, 364, 365, 366,
  3650. 367, 376, 377, 378, 379, 380, 381, 382, 398, 399,
  3651. 400, 401, 402, 403, 412, 414, 415, 416, 417, 418,
  3652. 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
  3653. 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
  3654. 439, 440, 441, 442, 443, 444, 476, 477, 480, 481,
  3655. 482, 483, 487, 488, 489, 490, 491, 492, 495, 496,
  3656. 497, 498, 499, 501, 506, 507, 508, 549, 550, 551,
  3657. 507, 343, 375, 339, 339, 349, 375, 349, 552, 340,
  3658. 346, 484, 485, 486, 496, 501, 346, 349, 375, 349,
  3659. 375, 497, 501, 357, 503, 504, 0, 550, 501, 510,
  3660. 343, 375, 399, 493, 494, 375, 500, 341, 349, 502,
  3661. 343, 528, 485, 484, 486, 375, 375, 339, 348, 502,
  3662. 343, 346, 349, 479, 319, 320, 338, 339, 350, 351,
  3663. 352, 353, 371, 372, 373, 374, 375, 404, 405, 406,
  3664. 407, 408, 409, 410, 411, 446, 447, 448, 450, 451,
  3665. 452, 453, 454, 455, 456, 457, 458, 499, 501, 505,
  3666. 502, 349, 496, 501, 511, 512, 509, 348, 340, 346,
  3667. 340, 346, 342, 457, 459, 460, 461, 462, 463, 464,
  3668. 465, 466, 467, 468, 469, 470, 341, 349, 341, 343,
  3669. 344, 349, 383, 384, 385, 386, 388, 389, 390, 391,
  3670. 392, 393, 394, 395, 396, 397, 413, 457, 470, 472,
  3671. 474, 476, 480, 499, 501, 517, 518, 519, 520, 521,
  3672. 529, 530, 531, 532, 535, 536, 539, 540, 541, 548,
  3673. 553, 502, 348, 502, 343, 472, 515, 348, 478, 375,
  3674. 346, 349, 457, 457, 474, 319, 320, 341, 345, 340,
  3675. 340, 346, 382, 472, 339, 457, 346, 358, 501, 375,
  3676. 513, 514, 344, 512, 511, 470, 475, 494, 375, 354,
  3677. 355, 356, 351, 353, 317, 318, 321, 322, 357, 358,
  3678. 323, 324, 361, 360, 359, 325, 327, 326, 362, 342,
  3679. 342, 470, 341, 344, 522, 339, 349, 349, 543, 339,
  3680. 339, 349, 349, 474, 339, 474, 347, 349, 349, 349,
  3681. 349, 328, 329, 330, 331, 332, 333, 334, 335, 336,
  3682. 337, 348, 473, 346, 349, 344, 518, 532, 536, 541,
  3683. 515, 348, 344, 515, 516, 515, 511, 375, 340, 449,
  3684. 474, 375, 472, 457, 513, 502, 346, 349, 344, 457,
  3685. 457, 457, 459, 459, 460, 460, 461, 461, 461, 461,
  3686. 462, 462, 463, 464, 465, 466, 467, 468, 471, 342,
  3687. 375, 554, 555, 529, 542, 518, 544, 474, 349, 474,
  3688. 347, 472, 472, 515, 344, 346, 344, 342, 349, 514,
  3689. 474, 339, 342, 346, 523, 474, 489, 496, 534, 383,
  3690. 517, 530, 545, 340, 340, 344, 515, 347, 475, 342,
  3691. 555, 344, 375, 340, 339, 534, 546, 547, 525, 526,
  3692. 527, 533, 537, 472, 340, 348, 519, 524, 528, 474,
  3693. 349, 340, 387, 521, 519, 343, 515, 340, 474, 524,
  3694. 525, 529, 538, 349, 344
  3695. };
  3696. /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
  3697. static const yytype_int16 yyr1[] =
  3698. {
  3699. 0, 445, 446, 447, 447, 447, 447, 447, 447, 447,
  3700. 447, 447, 447, 447, 447, 447, 447, 447, 448, 448,
  3701. 448, 448, 448, 448, 449, 450, 451, 452, 452, 453,
  3702. 453, 454, 454, 455, 456, 456, 456, 457, 457, 457,
  3703. 457, 458, 458, 458, 458, 459, 459, 459, 459, 460,
  3704. 460, 460, 461, 461, 461, 462, 462, 462, 462, 462,
  3705. 463, 463, 463, 464, 464, 465, 465, 466, 466, 467,
  3706. 467, 468, 468, 469, 469, 470, 471, 470, 472, 472,
  3707. 473, 473, 473, 473, 473, 473, 473, 473, 473, 473,
  3708. 473, 474, 474, 475, 476, 476, 476, 476, 476, 476,
  3709. 476, 476, 476, 478, 477, 479, 479, 480, 481, 481,
  3710. 482, 482, 483, 484, 484, 485, 485, 485, 485, 486,
  3711. 487, 487, 487, 487, 487, 488, 488, 488, 488, 488,
  3712. 489, 489, 490, 491, 491, 491, 491, 491, 491, 491,
  3713. 491, 492, 493, 493, 494, 494, 494, 495, 496, 496,
  3714. 497, 497, 497, 497, 497, 497, 497, 498, 498, 498,
  3715. 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
  3716. 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
  3717. 498, 498, 498, 498, 498, 498, 498, 498, 498, 498,
  3718. 498, 498, 499, 500, 500, 501, 501, 502, 502, 502,
  3719. 502, 503, 503, 504, 505, 505, 506, 506, 506, 506,
  3720. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3721. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3722. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3723. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3724. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3725. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3726. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3727. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3728. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3729. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3730. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3731. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3732. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3733. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3734. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3735. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3736. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3737. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3738. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3739. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3740. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3741. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3742. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3743. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3744. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3745. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3746. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3747. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3748. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3749. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3750. 506, 506, 506, 506, 506, 506, 506, 506, 506, 506,
  3751. 507, 507, 507, 509, 508, 510, 508, 511, 511, 512,
  3752. 512, 513, 513, 514, 514, 515, 515, 515, 515, 516,
  3753. 516, 517, 518, 518, 519, 519, 519, 519, 519, 519,
  3754. 519, 519, 520, 521, 522, 523, 521, 524, 524, 526,
  3755. 525, 527, 525, 528, 528, 529, 529, 530, 530, 531,
  3756. 531, 532, 533, 533, 534, 534, 535, 535, 537, 536,
  3757. 538, 538, 539, 539, 540, 540, 542, 541, 543, 541,
  3758. 544, 541, 545, 545, 546, 546, 547, 547, 548, 548,
  3759. 548, 548, 548, 548, 548, 548, 549, 549, 550, 550,
  3760. 550, 552, 551, 553, 554, 554, 555, 555
  3761. };
  3762. /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
  3763. static const yytype_int8 yyr2[] =
  3764. {
  3765. 0, 2, 1, 1, 3, 1, 1, 1, 1, 1,
  3766. 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
  3767. 1, 3, 2, 2, 1, 1, 1, 2, 2, 2,
  3768. 1, 2, 3, 2, 1, 1, 1, 1, 2, 2,
  3769. 2, 1, 1, 1, 1, 1, 3, 3, 3, 1,
  3770. 3, 3, 1, 3, 3, 1, 3, 3, 3, 3,
  3771. 1, 3, 3, 1, 3, 1, 3, 1, 3, 1,
  3772. 3, 1, 3, 1, 3, 1, 0, 6, 1, 3,
  3773. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3774. 1, 1, 3, 1, 2, 2, 4, 2, 3, 4,
  3775. 2, 3, 4, 0, 6, 2, 3, 2, 1, 1,
  3776. 2, 3, 3, 2, 3, 2, 1, 2, 1, 1,
  3777. 1, 3, 4, 6, 5, 1, 2, 3, 5, 4,
  3778. 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
  3779. 1, 4, 1, 3, 1, 3, 1, 1, 1, 2,
  3780. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3781. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3782. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3783. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3784. 1, 4, 1, 1, 3, 2, 3, 2, 3, 3,
  3785. 4, 1, 0, 3, 1, 3, 1, 1, 1, 1,
  3786. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3787. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3788. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3789. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3790. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3791. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3792. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3793. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3794. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3795. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3796. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3797. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3798. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3799. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3800. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3801. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3802. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3803. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3804. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3805. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3806. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3807. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3808. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3809. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3810. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3811. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3812. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3813. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3814. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3815. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3816. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3817. 1, 1, 1, 0, 6, 0, 5, 1, 2, 3,
  3818. 4, 1, 3, 1, 2, 1, 3, 4, 2, 1,
  3819. 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3820. 1, 1, 2, 2, 0, 0, 5, 1, 1, 0,
  3821. 2, 0, 2, 2, 3, 1, 2, 1, 2, 1,
  3822. 2, 5, 3, 1, 1, 4, 1, 2, 0, 8,
  3823. 0, 1, 3, 2, 1, 2, 0, 6, 0, 8,
  3824. 0, 7, 1, 1, 1, 0, 2, 3, 2, 2,
  3825. 2, 3, 2, 2, 2, 2, 1, 2, 1, 1,
  3826. 1, 0, 3, 5, 1, 3, 1, 4
  3827. };
  3828. enum { YYENOMEM = -2 };
  3829. #define yyerrok (yyerrstatus = 0)
  3830. #define yyclearin (yychar = YYEMPTY)
  3831. #define YYACCEPT goto yyacceptlab
  3832. #define YYABORT goto yyabortlab
  3833. #define YYERROR goto yyerrorlab
  3834. #define YYRECOVERING() (!!yyerrstatus)
  3835. #define YYBACKUP(Token, Value) \
  3836. do \
  3837. if (yychar == YYEMPTY) \
  3838. { \
  3839. yychar = (Token); \
  3840. yylval = (Value); \
  3841. YYPOPSTACK (yylen); \
  3842. yystate = *yyssp; \
  3843. goto yybackup; \
  3844. } \
  3845. else \
  3846. { \
  3847. yyerror (pParseContext, YY_("syntax error: cannot back up")); \
  3848. YYERROR; \
  3849. } \
  3850. while (0)
  3851. /* Backward compatibility with an undocumented macro.
  3852. Use YYerror or YYUNDEF. */
  3853. #define YYERRCODE YYUNDEF
  3854. /* Enable debugging if requested. */
  3855. #if YYDEBUG
  3856. # ifndef YYFPRINTF
  3857. # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
  3858. # define YYFPRINTF fprintf
  3859. # endif
  3860. # define YYDPRINTF(Args) \
  3861. do { \
  3862. if (yydebug) \
  3863. YYFPRINTF Args; \
  3864. } while (0)
  3865. /* This macro is provided for backward compatibility. */
  3866. # ifndef YY_LOCATION_PRINT
  3867. # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
  3868. # endif
  3869. # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
  3870. do { \
  3871. if (yydebug) \
  3872. { \
  3873. YYFPRINTF (stderr, "%s ", Title); \
  3874. yy_symbol_print (stderr, \
  3875. Kind, Value, pParseContext); \
  3876. YYFPRINTF (stderr, "\n"); \
  3877. } \
  3878. } while (0)
  3879. /*-----------------------------------.
  3880. | Print this symbol's value on YYO. |
  3881. `-----------------------------------*/
  3882. static void
  3883. yy_symbol_value_print (FILE *yyo,
  3884. yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
  3885. {
  3886. FILE *yyoutput = yyo;
  3887. YYUSE (yyoutput);
  3888. YYUSE (pParseContext);
  3889. if (!yyvaluep)
  3890. return;
  3891. # ifdef YYPRINT
  3892. if (yykind < YYNTOKENS)
  3893. YYPRINT (yyo, yytoknum[yykind], *yyvaluep);
  3894. # endif
  3895. YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  3896. YYUSE (yykind);
  3897. YY_IGNORE_MAYBE_UNINITIALIZED_END
  3898. }
  3899. /*---------------------------.
  3900. | Print this symbol on YYO. |
  3901. `---------------------------*/
  3902. static void
  3903. yy_symbol_print (FILE *yyo,
  3904. yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, glslang::TParseContext* pParseContext)
  3905. {
  3906. YYFPRINTF (yyo, "%s %s (",
  3907. yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
  3908. yy_symbol_value_print (yyo, yykind, yyvaluep, pParseContext);
  3909. YYFPRINTF (yyo, ")");
  3910. }
  3911. /*------------------------------------------------------------------.
  3912. | yy_stack_print -- Print the state stack from its BOTTOM up to its |
  3913. | TOP (included). |
  3914. `------------------------------------------------------------------*/
  3915. static void
  3916. yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
  3917. {
  3918. YYFPRINTF (stderr, "Stack now");
  3919. for (; yybottom <= yytop; yybottom++)
  3920. {
  3921. int yybot = *yybottom;
  3922. YYFPRINTF (stderr, " %d", yybot);
  3923. }
  3924. YYFPRINTF (stderr, "\n");
  3925. }
  3926. # define YY_STACK_PRINT(Bottom, Top) \
  3927. do { \
  3928. if (yydebug) \
  3929. yy_stack_print ((Bottom), (Top)); \
  3930. } while (0)
  3931. /*------------------------------------------------.
  3932. | Report that the YYRULE is going to be reduced. |
  3933. `------------------------------------------------*/
  3934. static void
  3935. yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp,
  3936. int yyrule, glslang::TParseContext* pParseContext)
  3937. {
  3938. int yylno = yyrline[yyrule];
  3939. int yynrhs = yyr2[yyrule];
  3940. int yyi;
  3941. YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
  3942. yyrule - 1, yylno);
  3943. /* The symbols being reduced. */
  3944. for (yyi = 0; yyi < yynrhs; yyi++)
  3945. {
  3946. YYFPRINTF (stderr, " $%d = ", yyi + 1);
  3947. yy_symbol_print (stderr,
  3948. YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
  3949. &yyvsp[(yyi + 1) - (yynrhs)], pParseContext);
  3950. YYFPRINTF (stderr, "\n");
  3951. }
  3952. }
  3953. # define YY_REDUCE_PRINT(Rule) \
  3954. do { \
  3955. if (yydebug) \
  3956. yy_reduce_print (yyssp, yyvsp, Rule, pParseContext); \
  3957. } while (0)
  3958. /* Nonzero means print parse trace. It is left uninitialized so that
  3959. multiple parsers can coexist. */
  3960. int yydebug;
  3961. #else /* !YYDEBUG */
  3962. # define YYDPRINTF(Args) ((void) 0)
  3963. # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
  3964. # define YY_STACK_PRINT(Bottom, Top)
  3965. # define YY_REDUCE_PRINT(Rule)
  3966. #endif /* !YYDEBUG */
  3967. /* YYINITDEPTH -- initial size of the parser's stacks. */
  3968. #ifndef YYINITDEPTH
  3969. # define YYINITDEPTH 200
  3970. #endif
  3971. /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
  3972. if the built-in stack extension method is used).
  3973. Do not make this value too large; the results are undefined if
  3974. YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
  3975. evaluated with infinite-precision integer arithmetic. */
  3976. #ifndef YYMAXDEPTH
  3977. # define YYMAXDEPTH 10000
  3978. #endif
  3979. /* Context of a parse error. */
  3980. typedef struct
  3981. {
  3982. yy_state_t *yyssp;
  3983. yysymbol_kind_t yytoken;
  3984. } yypcontext_t;
  3985. /* Put in YYARG at most YYARGN of the expected tokens given the
  3986. current YYCTX, and return the number of tokens stored in YYARG. If
  3987. YYARG is null, return the number of expected tokens (guaranteed to
  3988. be less than YYNTOKENS). Return YYENOMEM on memory exhaustion.
  3989. Return 0 if there are more than YYARGN expected tokens, yet fill
  3990. YYARG up to YYARGN. */
  3991. static int
  3992. yypcontext_expected_tokens (const yypcontext_t *yyctx,
  3993. yysymbol_kind_t yyarg[], int yyargn)
  3994. {
  3995. /* Actual size of YYARG. */
  3996. int yycount = 0;
  3997. int yyn = yypact[+*yyctx->yyssp];
  3998. if (!yypact_value_is_default (yyn))
  3999. {
  4000. /* Start YYX at -YYN if negative to avoid negative indexes in
  4001. YYCHECK. In other words, skip the first -YYN actions for
  4002. this state because they are default actions. */
  4003. int yyxbegin = yyn < 0 ? -yyn : 0;
  4004. /* Stay within bounds of both yycheck and yytname. */
  4005. int yychecklim = YYLAST - yyn + 1;
  4006. int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
  4007. int yyx;
  4008. for (yyx = yyxbegin; yyx < yyxend; ++yyx)
  4009. if (yycheck[yyx + yyn] == yyx && yyx != YYSYMBOL_YYerror
  4010. && !yytable_value_is_error (yytable[yyx + yyn]))
  4011. {
  4012. if (!yyarg)
  4013. ++yycount;
  4014. else if (yycount == yyargn)
  4015. return 0;
  4016. else
  4017. yyarg[yycount++] = YY_CAST (yysymbol_kind_t, yyx);
  4018. }
  4019. }
  4020. if (yyarg && yycount == 0 && 0 < yyargn)
  4021. yyarg[0] = YYSYMBOL_YYEMPTY;
  4022. return yycount;
  4023. }
  4024. #ifndef yystrlen
  4025. # if defined __GLIBC__ && defined _STRING_H
  4026. # define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S)))
  4027. # else
  4028. /* Return the length of YYSTR. */
  4029. static YYPTRDIFF_T
  4030. yystrlen (const char *yystr)
  4031. {
  4032. YYPTRDIFF_T yylen;
  4033. for (yylen = 0; yystr[yylen]; yylen++)
  4034. continue;
  4035. return yylen;
  4036. }
  4037. # endif
  4038. #endif
  4039. #ifndef yystpcpy
  4040. # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
  4041. # define yystpcpy stpcpy
  4042. # else
  4043. /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
  4044. YYDEST. */
  4045. static char *
  4046. yystpcpy (char *yydest, const char *yysrc)
  4047. {
  4048. char *yyd = yydest;
  4049. const char *yys = yysrc;
  4050. while ((*yyd++ = *yys++) != '\0')
  4051. continue;
  4052. return yyd - 1;
  4053. }
  4054. # endif
  4055. #endif
  4056. #ifndef yytnamerr
  4057. /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
  4058. quotes and backslashes, so that it's suitable for yyerror. The
  4059. heuristic is that double-quoting is unnecessary unless the string
  4060. contains an apostrophe, a comma, or backslash (other than
  4061. backslash-backslash). YYSTR is taken from yytname. If YYRES is
  4062. null, do not copy; instead, return the length of what the result
  4063. would have been. */
  4064. static YYPTRDIFF_T
  4065. yytnamerr (char *yyres, const char *yystr)
  4066. {
  4067. if (*yystr == '"')
  4068. {
  4069. YYPTRDIFF_T yyn = 0;
  4070. char const *yyp = yystr;
  4071. for (;;)
  4072. switch (*++yyp)
  4073. {
  4074. case '\'':
  4075. case ',':
  4076. goto do_not_strip_quotes;
  4077. case '\\':
  4078. if (*++yyp != '\\')
  4079. goto do_not_strip_quotes;
  4080. else
  4081. goto append;
  4082. append:
  4083. default:
  4084. if (yyres)
  4085. yyres[yyn] = *yyp;
  4086. yyn++;
  4087. break;
  4088. case '"':
  4089. if (yyres)
  4090. yyres[yyn] = '\0';
  4091. return yyn;
  4092. }
  4093. do_not_strip_quotes: ;
  4094. }
  4095. if (yyres)
  4096. return yystpcpy (yyres, yystr) - yyres;
  4097. else
  4098. return yystrlen (yystr);
  4099. }
  4100. #endif
  4101. static int
  4102. yy_syntax_error_arguments (const yypcontext_t *yyctx,
  4103. yysymbol_kind_t yyarg[], int yyargn)
  4104. {
  4105. /* Actual size of YYARG. */
  4106. int yycount = 0;
  4107. /* There are many possibilities here to consider:
  4108. - If this state is a consistent state with a default action, then
  4109. the only way this function was invoked is if the default action
  4110. is an error action. In that case, don't check for expected
  4111. tokens because there are none.
  4112. - The only way there can be no lookahead present (in yychar) is if
  4113. this state is a consistent state with a default action. Thus,
  4114. detecting the absence of a lookahead is sufficient to determine
  4115. that there is no unexpected or expected token to report. In that
  4116. case, just report a simple "syntax error".
  4117. - Don't assume there isn't a lookahead just because this state is a
  4118. consistent state with a default action. There might have been a
  4119. previous inconsistent state, consistent state with a non-default
  4120. action, or user semantic action that manipulated yychar.
  4121. - Of course, the expected token list depends on states to have
  4122. correct lookahead information, and it depends on the parser not
  4123. to perform extra reductions after fetching a lookahead from the
  4124. scanner and before detecting a syntax error. Thus, state merging
  4125. (from LALR or IELR) and default reductions corrupt the expected
  4126. token list. However, the list is correct for canonical LR with
  4127. one exception: it will still contain any token that will not be
  4128. accepted due to an error action in a later state.
  4129. */
  4130. if (yyctx->yytoken != YYSYMBOL_YYEMPTY)
  4131. {
  4132. int yyn;
  4133. if (yyarg)
  4134. yyarg[yycount] = yyctx->yytoken;
  4135. ++yycount;
  4136. yyn = yypcontext_expected_tokens (yyctx,
  4137. yyarg ? yyarg + 1 : yyarg, yyargn - 1);
  4138. if (yyn == YYENOMEM)
  4139. return YYENOMEM;
  4140. else
  4141. yycount += yyn;
  4142. }
  4143. return yycount;
  4144. }
  4145. /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
  4146. about the unexpected token YYTOKEN for the state stack whose top is
  4147. YYSSP.
  4148. Return 0 if *YYMSG was successfully written. Return -1 if *YYMSG is
  4149. not large enough to hold the message. In that case, also set
  4150. *YYMSG_ALLOC to the required number of bytes. Return YYENOMEM if the
  4151. required number of bytes is too large to store. */
  4152. static int
  4153. yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg,
  4154. const yypcontext_t *yyctx)
  4155. {
  4156. enum { YYARGS_MAX = 5 };
  4157. /* Internationalized format string. */
  4158. const char *yyformat = YY_NULLPTR;
  4159. /* Arguments of yyformat: reported tokens (one for the "unexpected",
  4160. one per "expected"). */
  4161. yysymbol_kind_t yyarg[YYARGS_MAX];
  4162. /* Cumulated lengths of YYARG. */
  4163. YYPTRDIFF_T yysize = 0;
  4164. /* Actual size of YYARG. */
  4165. int yycount = yy_syntax_error_arguments (yyctx, yyarg, YYARGS_MAX);
  4166. if (yycount == YYENOMEM)
  4167. return YYENOMEM;
  4168. switch (yycount)
  4169. {
  4170. #define YYCASE_(N, S) \
  4171. case N: \
  4172. yyformat = S; \
  4173. break
  4174. default: /* Avoid compiler warnings. */
  4175. YYCASE_(0, YY_("syntax error"));
  4176. YYCASE_(1, YY_("syntax error, unexpected %s"));
  4177. YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
  4178. YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
  4179. YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
  4180. YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
  4181. #undef YYCASE_
  4182. }
  4183. /* Compute error message size. Don't count the "%s"s, but reserve
  4184. room for the terminator. */
  4185. yysize = yystrlen (yyformat) - 2 * yycount + 1;
  4186. {
  4187. int yyi;
  4188. for (yyi = 0; yyi < yycount; ++yyi)
  4189. {
  4190. YYPTRDIFF_T yysize1
  4191. = yysize + yytnamerr (YY_NULLPTR, yytname[yyarg[yyi]]);
  4192. if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
  4193. yysize = yysize1;
  4194. else
  4195. return YYENOMEM;
  4196. }
  4197. }
  4198. if (*yymsg_alloc < yysize)
  4199. {
  4200. *yymsg_alloc = 2 * yysize;
  4201. if (! (yysize <= *yymsg_alloc
  4202. && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
  4203. *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
  4204. return -1;
  4205. }
  4206. /* Avoid sprintf, as that infringes on the user's name space.
  4207. Don't have undefined behavior even if the translation
  4208. produced a string with the wrong number of "%s"s. */
  4209. {
  4210. char *yyp = *yymsg;
  4211. int yyi = 0;
  4212. while ((*yyp = *yyformat) != '\0')
  4213. if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
  4214. {
  4215. yyp += yytnamerr (yyp, yytname[yyarg[yyi++]]);
  4216. yyformat += 2;
  4217. }
  4218. else
  4219. {
  4220. ++yyp;
  4221. ++yyformat;
  4222. }
  4223. }
  4224. return 0;
  4225. }
  4226. /*-----------------------------------------------.
  4227. | Release the memory associated to this symbol. |
  4228. `-----------------------------------------------*/
  4229. static void
  4230. yydestruct (const char *yymsg,
  4231. yysymbol_kind_t yykind, YYSTYPE *yyvaluep, glslang::TParseContext* pParseContext)
  4232. {
  4233. YYUSE (yyvaluep);
  4234. YYUSE (pParseContext);
  4235. if (!yymsg)
  4236. yymsg = "Deleting";
  4237. YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
  4238. YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  4239. YYUSE (yykind);
  4240. YY_IGNORE_MAYBE_UNINITIALIZED_END
  4241. }
  4242. /*----------.
  4243. | yyparse. |
  4244. `----------*/
  4245. int
  4246. yyparse (glslang::TParseContext* pParseContext)
  4247. {
  4248. /* Lookahead token kind. */
  4249. int yychar;
  4250. /* The semantic value of the lookahead symbol. */
  4251. /* Default value used for initialization, for pacifying older GCCs
  4252. or non-GCC compilers. */
  4253. YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
  4254. YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
  4255. /* Number of syntax errors so far. */
  4256. int yynerrs = 0;
  4257. yy_state_fast_t yystate = 0;
  4258. /* Number of tokens to shift before error messages enabled. */
  4259. int yyerrstatus = 0;
  4260. /* Refer to the stacks through separate pointers, to allow yyoverflow
  4261. to reallocate them elsewhere. */
  4262. /* Their size. */
  4263. YYPTRDIFF_T yystacksize = YYINITDEPTH;
  4264. /* The state stack: array, bottom, top. */
  4265. yy_state_t yyssa[YYINITDEPTH];
  4266. yy_state_t *yyss = yyssa;
  4267. yy_state_t *yyssp = yyss;
  4268. /* The semantic value stack: array, bottom, top. */
  4269. YYSTYPE yyvsa[YYINITDEPTH];
  4270. YYSTYPE *yyvs = yyvsa;
  4271. YYSTYPE *yyvsp = yyvs;
  4272. int yyn;
  4273. /* The return value of yyparse. */
  4274. int yyresult;
  4275. /* Lookahead symbol kind. */
  4276. yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
  4277. /* The variables used to return semantic value and location from the
  4278. action routines. */
  4279. YYSTYPE yyval;
  4280. /* Buffer for error messages, and its allocated size. */
  4281. char yymsgbuf[128];
  4282. char *yymsg = yymsgbuf;
  4283. YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf;
  4284. #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
  4285. /* The number of symbols on the RHS of the reduced rule.
  4286. Keep to zero when no symbol should be popped. */
  4287. int yylen = 0;
  4288. YYDPRINTF ((stderr, "Starting parse\n"));
  4289. yychar = YYEMPTY; /* Cause a token to be read. */
  4290. goto yysetstate;
  4291. /*------------------------------------------------------------.
  4292. | yynewstate -- push a new state, which is found in yystate. |
  4293. `------------------------------------------------------------*/
  4294. yynewstate:
  4295. /* In all cases, when you get here, the value and location stacks
  4296. have just been pushed. So pushing a state here evens the stacks. */
  4297. yyssp++;
  4298. /*--------------------------------------------------------------------.
  4299. | yysetstate -- set current state (the top of the stack) to yystate. |
  4300. `--------------------------------------------------------------------*/
  4301. yysetstate:
  4302. YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  4303. YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
  4304. YY_IGNORE_USELESS_CAST_BEGIN
  4305. *yyssp = YY_CAST (yy_state_t, yystate);
  4306. YY_IGNORE_USELESS_CAST_END
  4307. YY_STACK_PRINT (yyss, yyssp);
  4308. if (yyss + yystacksize - 1 <= yyssp)
  4309. #if !defined yyoverflow && !defined YYSTACK_RELOCATE
  4310. goto yyexhaustedlab;
  4311. #else
  4312. {
  4313. /* Get the current used size of the three stacks, in elements. */
  4314. YYPTRDIFF_T yysize = yyssp - yyss + 1;
  4315. # if defined yyoverflow
  4316. {
  4317. /* Give user a chance to reallocate the stack. Use copies of
  4318. these so that the &'s don't force the real ones into
  4319. memory. */
  4320. yy_state_t *yyss1 = yyss;
  4321. YYSTYPE *yyvs1 = yyvs;
  4322. /* Each stack pointer address is followed by the size of the
  4323. data in use in that stack, in bytes. This used to be a
  4324. conditional around just the two extra args, but that might
  4325. be undefined if yyoverflow is a macro. */
  4326. yyoverflow (YY_("memory exhausted"),
  4327. &yyss1, yysize * YYSIZEOF (*yyssp),
  4328. &yyvs1, yysize * YYSIZEOF (*yyvsp),
  4329. &yystacksize);
  4330. yyss = yyss1;
  4331. yyvs = yyvs1;
  4332. }
  4333. # else /* defined YYSTACK_RELOCATE */
  4334. /* Extend the stack our own way. */
  4335. if (YYMAXDEPTH <= yystacksize)
  4336. goto yyexhaustedlab;
  4337. yystacksize *= 2;
  4338. if (YYMAXDEPTH < yystacksize)
  4339. yystacksize = YYMAXDEPTH;
  4340. {
  4341. yy_state_t *yyss1 = yyss;
  4342. union yyalloc *yyptr =
  4343. YY_CAST (union yyalloc *,
  4344. YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
  4345. if (! yyptr)
  4346. goto yyexhaustedlab;
  4347. YYSTACK_RELOCATE (yyss_alloc, yyss);
  4348. YYSTACK_RELOCATE (yyvs_alloc, yyvs);
  4349. # undef YYSTACK_RELOCATE
  4350. if (yyss1 != yyssa)
  4351. YYSTACK_FREE (yyss1);
  4352. }
  4353. # endif
  4354. yyssp = yyss + yysize - 1;
  4355. yyvsp = yyvs + yysize - 1;
  4356. YY_IGNORE_USELESS_CAST_BEGIN
  4357. YYDPRINTF ((stderr, "Stack size increased to %ld\n",
  4358. YY_CAST (long, yystacksize)));
  4359. YY_IGNORE_USELESS_CAST_END
  4360. if (yyss + yystacksize - 1 <= yyssp)
  4361. YYABORT;
  4362. }
  4363. #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
  4364. if (yystate == YYFINAL)
  4365. YYACCEPT;
  4366. goto yybackup;
  4367. /*-----------.
  4368. | yybackup. |
  4369. `-----------*/
  4370. yybackup:
  4371. /* Do appropriate processing given the current state. Read a
  4372. lookahead token if we need one and don't already have one. */
  4373. /* First try to decide what to do without reference to lookahead token. */
  4374. yyn = yypact[yystate];
  4375. if (yypact_value_is_default (yyn))
  4376. goto yydefault;
  4377. /* Not known => get a lookahead token if don't already have one. */
  4378. /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
  4379. if (yychar == YYEMPTY)
  4380. {
  4381. YYDPRINTF ((stderr, "Reading a token\n"));
  4382. yychar = yylex (&yylval, parseContext);
  4383. }
  4384. if (yychar <= YYEOF)
  4385. {
  4386. yychar = YYEOF;
  4387. yytoken = YYSYMBOL_YYEOF;
  4388. YYDPRINTF ((stderr, "Now at end of input.\n"));
  4389. }
  4390. else if (yychar == YYerror)
  4391. {
  4392. /* The scanner already issued an error message, process directly
  4393. to error recovery. But do not keep the error token as
  4394. lookahead, it is too special and may lead us to an endless
  4395. loop in error recovery. */
  4396. yychar = YYUNDEF;
  4397. yytoken = YYSYMBOL_YYerror;
  4398. goto yyerrlab1;
  4399. }
  4400. else
  4401. {
  4402. yytoken = YYTRANSLATE (yychar);
  4403. YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
  4404. }
  4405. /* If the proper action on seeing token YYTOKEN is to reduce or to
  4406. detect an error, take that action. */
  4407. yyn += yytoken;
  4408. if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
  4409. goto yydefault;
  4410. yyn = yytable[yyn];
  4411. if (yyn <= 0)
  4412. {
  4413. if (yytable_value_is_error (yyn))
  4414. goto yyerrlab;
  4415. yyn = -yyn;
  4416. goto yyreduce;
  4417. }
  4418. /* Count tokens shifted since error; after three, turn off error
  4419. status. */
  4420. if (yyerrstatus)
  4421. yyerrstatus--;
  4422. /* Shift the lookahead token. */
  4423. YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
  4424. yystate = yyn;
  4425. YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  4426. *++yyvsp = yylval;
  4427. YY_IGNORE_MAYBE_UNINITIALIZED_END
  4428. /* Discard the shifted token. */
  4429. yychar = YYEMPTY;
  4430. goto yynewstate;
  4431. /*-----------------------------------------------------------.
  4432. | yydefault -- do the default action for the current state. |
  4433. `-----------------------------------------------------------*/
  4434. yydefault:
  4435. yyn = yydefact[yystate];
  4436. if (yyn == 0)
  4437. goto yyerrlab;
  4438. goto yyreduce;
  4439. /*-----------------------------.
  4440. | yyreduce -- do a reduction. |
  4441. `-----------------------------*/
  4442. yyreduce:
  4443. /* yyn is the number of a rule to reduce with. */
  4444. yylen = yyr2[yyn];
  4445. /* If YYLEN is nonzero, implement the default value of the action:
  4446. '$$ = $1'.
  4447. Otherwise, the following line sets YYVAL to garbage.
  4448. This behavior is undocumented and Bison
  4449. users should not rely upon it. Assigning to YYVAL
  4450. unconditionally makes the parser a bit smaller, and it avoids a
  4451. GCC warning that YYVAL may be used uninitialized. */
  4452. yyval = yyvsp[1-yylen];
  4453. YY_REDUCE_PRINT (yyn);
  4454. switch (yyn)
  4455. {
  4456. case 2: /* variable_identifier: IDENTIFIER */
  4457. #line 371 "MachineIndependent/glslang.y"
  4458. {
  4459. (yyval.interm.intermTypedNode) = parseContext.handleVariable((yyvsp[0].lex).loc, (yyvsp[0].lex).symbol, (yyvsp[0].lex).string);
  4460. }
  4461. #line 4678 "MachineIndependent/glslang_tab.cpp"
  4462. break;
  4463. case 3: /* primary_expression: variable_identifier */
  4464. #line 377 "MachineIndependent/glslang.y"
  4465. {
  4466. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  4467. }
  4468. #line 4686 "MachineIndependent/glslang_tab.cpp"
  4469. break;
  4470. case 4: /* primary_expression: LEFT_PAREN expression RIGHT_PAREN */
  4471. #line 380 "MachineIndependent/glslang.y"
  4472. {
  4473. (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
  4474. if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
  4475. (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
  4476. }
  4477. #line 4696 "MachineIndependent/glslang_tab.cpp"
  4478. break;
  4479. case 5: /* primary_expression: FLOATCONSTANT */
  4480. #line 385 "MachineIndependent/glslang.y"
  4481. {
  4482. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat, (yyvsp[0].lex).loc, true);
  4483. }
  4484. #line 4704 "MachineIndependent/glslang_tab.cpp"
  4485. break;
  4486. case 6: /* primary_expression: INTCONSTANT */
  4487. #line 388 "MachineIndependent/glslang.y"
  4488. {
  4489. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
  4490. }
  4491. #line 4712 "MachineIndependent/glslang_tab.cpp"
  4492. break;
  4493. case 7: /* primary_expression: UINTCONSTANT */
  4494. #line 391 "MachineIndependent/glslang.y"
  4495. {
  4496. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned literal");
  4497. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
  4498. }
  4499. #line 4721 "MachineIndependent/glslang_tab.cpp"
  4500. break;
  4501. case 8: /* primary_expression: BOOLCONSTANT */
  4502. #line 395 "MachineIndependent/glslang.y"
  4503. {
  4504. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).b, (yyvsp[0].lex).loc, true);
  4505. }
  4506. #line 4729 "MachineIndependent/glslang_tab.cpp"
  4507. break;
  4508. case 9: /* primary_expression: STRING_LITERAL */
  4509. #line 399 "MachineIndependent/glslang.y"
  4510. {
  4511. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).string, (yyvsp[0].lex).loc, true);
  4512. }
  4513. #line 4737 "MachineIndependent/glslang_tab.cpp"
  4514. break;
  4515. case 10: /* primary_expression: INT32CONSTANT */
  4516. #line 402 "MachineIndependent/glslang.y"
  4517. {
  4518. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
  4519. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
  4520. }
  4521. #line 4746 "MachineIndependent/glslang_tab.cpp"
  4522. break;
  4523. case 11: /* primary_expression: UINT32CONSTANT */
  4524. #line 406 "MachineIndependent/glslang.y"
  4525. {
  4526. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed literal");
  4527. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
  4528. }
  4529. #line 4755 "MachineIndependent/glslang_tab.cpp"
  4530. break;
  4531. case 12: /* primary_expression: INT64CONSTANT */
  4532. #line 410 "MachineIndependent/glslang.y"
  4533. {
  4534. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer literal");
  4535. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).i64, (yyvsp[0].lex).loc, true);
  4536. }
  4537. #line 4764 "MachineIndependent/glslang_tab.cpp"
  4538. break;
  4539. case 13: /* primary_expression: UINT64CONSTANT */
  4540. #line 414 "MachineIndependent/glslang.y"
  4541. {
  4542. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer literal");
  4543. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).u64, (yyvsp[0].lex).loc, true);
  4544. }
  4545. #line 4773 "MachineIndependent/glslang_tab.cpp"
  4546. break;
  4547. case 14: /* primary_expression: INT16CONSTANT */
  4548. #line 418 "MachineIndependent/glslang.y"
  4549. {
  4550. parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit integer literal");
  4551. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((short)(yyvsp[0].lex).i, (yyvsp[0].lex).loc, true);
  4552. }
  4553. #line 4782 "MachineIndependent/glslang_tab.cpp"
  4554. break;
  4555. case 15: /* primary_expression: UINT16CONSTANT */
  4556. #line 422 "MachineIndependent/glslang.y"
  4557. {
  4558. parseContext.explicitInt16Check((yyvsp[0].lex).loc, "16-bit unsigned integer literal");
  4559. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((unsigned short)(yyvsp[0].lex).u, (yyvsp[0].lex).loc, true);
  4560. }
  4561. #line 4791 "MachineIndependent/glslang_tab.cpp"
  4562. break;
  4563. case 16: /* primary_expression: DOUBLECONSTANT */
  4564. #line 426 "MachineIndependent/glslang.y"
  4565. {
  4566. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double literal");
  4567. if (! parseContext.symbolTable.atBuiltInLevel())
  4568. parseContext.doubleCheck((yyvsp[0].lex).loc, "double literal");
  4569. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtDouble, (yyvsp[0].lex).loc, true);
  4570. }
  4571. #line 4802 "MachineIndependent/glslang_tab.cpp"
  4572. break;
  4573. case 17: /* primary_expression: FLOAT16CONSTANT */
  4574. #line 432 "MachineIndependent/glslang.y"
  4575. {
  4576. parseContext.float16Check((yyvsp[0].lex).loc, "half float literal");
  4577. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion((yyvsp[0].lex).d, EbtFloat16, (yyvsp[0].lex).loc, true);
  4578. }
  4579. #line 4811 "MachineIndependent/glslang_tab.cpp"
  4580. break;
  4581. case 18: /* postfix_expression: primary_expression */
  4582. #line 440 "MachineIndependent/glslang.y"
  4583. {
  4584. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  4585. }
  4586. #line 4819 "MachineIndependent/glslang_tab.cpp"
  4587. break;
  4588. case 19: /* postfix_expression: postfix_expression LEFT_BRACKET integer_expression RIGHT_BRACKET */
  4589. #line 443 "MachineIndependent/glslang.y"
  4590. {
  4591. (yyval.interm.intermTypedNode) = parseContext.handleBracketDereference((yyvsp[-2].lex).loc, (yyvsp[-3].interm.intermTypedNode), (yyvsp[-1].interm.intermTypedNode));
  4592. }
  4593. #line 4827 "MachineIndependent/glslang_tab.cpp"
  4594. break;
  4595. case 20: /* postfix_expression: function_call */
  4596. #line 446 "MachineIndependent/glslang.y"
  4597. {
  4598. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  4599. }
  4600. #line 4835 "MachineIndependent/glslang_tab.cpp"
  4601. break;
  4602. case 21: /* postfix_expression: postfix_expression DOT IDENTIFIER */
  4603. #line 449 "MachineIndependent/glslang.y"
  4604. {
  4605. (yyval.interm.intermTypedNode) = parseContext.handleDotDereference((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode), *(yyvsp[0].lex).string);
  4606. }
  4607. #line 4843 "MachineIndependent/glslang_tab.cpp"
  4608. break;
  4609. case 22: /* postfix_expression: postfix_expression INC_OP */
  4610. #line 452 "MachineIndependent/glslang.y"
  4611. {
  4612. parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
  4613. parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "++", (yyvsp[-1].interm.intermTypedNode));
  4614. (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "++", EOpPostIncrement, (yyvsp[-1].interm.intermTypedNode));
  4615. }
  4616. #line 4853 "MachineIndependent/glslang_tab.cpp"
  4617. break;
  4618. case 23: /* postfix_expression: postfix_expression DEC_OP */
  4619. #line 457 "MachineIndependent/glslang.y"
  4620. {
  4621. parseContext.variableCheck((yyvsp[-1].interm.intermTypedNode));
  4622. parseContext.lValueErrorCheck((yyvsp[0].lex).loc, "--", (yyvsp[-1].interm.intermTypedNode));
  4623. (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[0].lex).loc, "--", EOpPostDecrement, (yyvsp[-1].interm.intermTypedNode));
  4624. }
  4625. #line 4863 "MachineIndependent/glslang_tab.cpp"
  4626. break;
  4627. case 24: /* integer_expression: expression */
  4628. #line 465 "MachineIndependent/glslang.y"
  4629. {
  4630. parseContext.integerCheck((yyvsp[0].interm.intermTypedNode), "[]");
  4631. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  4632. }
  4633. #line 4872 "MachineIndependent/glslang_tab.cpp"
  4634. break;
  4635. case 25: /* function_call: function_call_or_method */
  4636. #line 472 "MachineIndependent/glslang.y"
  4637. {
  4638. (yyval.interm.intermTypedNode) = parseContext.handleFunctionCall((yyvsp[0].interm).loc, (yyvsp[0].interm).function, (yyvsp[0].interm).intermNode);
  4639. delete (yyvsp[0].interm).function;
  4640. }
  4641. #line 4881 "MachineIndependent/glslang_tab.cpp"
  4642. break;
  4643. case 26: /* function_call_or_method: function_call_generic */
  4644. #line 479 "MachineIndependent/glslang.y"
  4645. {
  4646. (yyval.interm) = (yyvsp[0].interm);
  4647. }
  4648. #line 4889 "MachineIndependent/glslang_tab.cpp"
  4649. break;
  4650. case 27: /* function_call_generic: function_call_header_with_parameters RIGHT_PAREN */
  4651. #line 485 "MachineIndependent/glslang.y"
  4652. {
  4653. (yyval.interm) = (yyvsp[-1].interm);
  4654. (yyval.interm).loc = (yyvsp[0].lex).loc;
  4655. }
  4656. #line 4898 "MachineIndependent/glslang_tab.cpp"
  4657. break;
  4658. case 28: /* function_call_generic: function_call_header_no_parameters RIGHT_PAREN */
  4659. #line 489 "MachineIndependent/glslang.y"
  4660. {
  4661. (yyval.interm) = (yyvsp[-1].interm);
  4662. (yyval.interm).loc = (yyvsp[0].lex).loc;
  4663. }
  4664. #line 4907 "MachineIndependent/glslang_tab.cpp"
  4665. break;
  4666. case 29: /* function_call_header_no_parameters: function_call_header VOID */
  4667. #line 496 "MachineIndependent/glslang.y"
  4668. {
  4669. (yyval.interm) = (yyvsp[-1].interm);
  4670. }
  4671. #line 4915 "MachineIndependent/glslang_tab.cpp"
  4672. break;
  4673. case 30: /* function_call_header_no_parameters: function_call_header */
  4674. #line 499 "MachineIndependent/glslang.y"
  4675. {
  4676. (yyval.interm) = (yyvsp[0].interm);
  4677. }
  4678. #line 4923 "MachineIndependent/glslang_tab.cpp"
  4679. break;
  4680. case 31: /* function_call_header_with_parameters: function_call_header assignment_expression */
  4681. #line 505 "MachineIndependent/glslang.y"
  4682. {
  4683. TParameter param = { 0, new TType };
  4684. param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
  4685. (yyvsp[-1].interm).function->addParameter(param);
  4686. (yyval.interm).function = (yyvsp[-1].interm).function;
  4687. (yyval.interm).intermNode = (yyvsp[0].interm.intermTypedNode);
  4688. }
  4689. #line 4935 "MachineIndependent/glslang_tab.cpp"
  4690. break;
  4691. case 32: /* function_call_header_with_parameters: function_call_header_with_parameters COMMA assignment_expression */
  4692. #line 512 "MachineIndependent/glslang.y"
  4693. {
  4694. TParameter param = { 0, new TType };
  4695. param.type->shallowCopy((yyvsp[0].interm.intermTypedNode)->getType());
  4696. (yyvsp[-2].interm).function->addParameter(param);
  4697. (yyval.interm).function = (yyvsp[-2].interm).function;
  4698. (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
  4699. }
  4700. #line 4947 "MachineIndependent/glslang_tab.cpp"
  4701. break;
  4702. case 33: /* function_call_header: function_identifier LEFT_PAREN */
  4703. #line 522 "MachineIndependent/glslang.y"
  4704. {
  4705. (yyval.interm) = (yyvsp[-1].interm);
  4706. }
  4707. #line 4955 "MachineIndependent/glslang_tab.cpp"
  4708. break;
  4709. case 34: /* function_identifier: type_specifier */
  4710. #line 530 "MachineIndependent/glslang.y"
  4711. {
  4712. // Constructor
  4713. (yyval.interm).intermNode = 0;
  4714. (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
  4715. }
  4716. #line 4965 "MachineIndependent/glslang_tab.cpp"
  4717. break;
  4718. case 35: /* function_identifier: postfix_expression */
  4719. #line 535 "MachineIndependent/glslang.y"
  4720. {
  4721. //
  4722. // Should be a method or subroutine call, but we haven't recognized the arguments yet.
  4723. //
  4724. (yyval.interm).function = 0;
  4725. (yyval.interm).intermNode = 0;
  4726. TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode();
  4727. if (method) {
  4728. (yyval.interm).function = new TFunction(&method->getMethodName(), TType(EbtInt), EOpArrayLength);
  4729. (yyval.interm).intermNode = method->getObject();
  4730. } else {
  4731. TIntermSymbol* symbol = (yyvsp[0].interm.intermTypedNode)->getAsSymbolNode();
  4732. if (symbol) {
  4733. parseContext.reservedErrorCheck(symbol->getLoc(), symbol->getName());
  4734. TFunction *function = new TFunction(&symbol->getName(), TType(EbtVoid));
  4735. (yyval.interm).function = function;
  4736. } else
  4737. parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "function call, method, or subroutine call expected", "", "");
  4738. }
  4739. if ((yyval.interm).function == 0) {
  4740. // error recover
  4741. TString* empty = NewPoolTString("");
  4742. (yyval.interm).function = new TFunction(empty, TType(EbtVoid), EOpNull);
  4743. }
  4744. }
  4745. #line 4997 "MachineIndependent/glslang_tab.cpp"
  4746. break;
  4747. case 36: /* function_identifier: non_uniform_qualifier */
  4748. #line 563 "MachineIndependent/glslang.y"
  4749. {
  4750. // Constructor
  4751. (yyval.interm).intermNode = 0;
  4752. (yyval.interm).function = parseContext.handleConstructorCall((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type));
  4753. }
  4754. #line 5007 "MachineIndependent/glslang_tab.cpp"
  4755. break;
  4756. case 37: /* unary_expression: postfix_expression */
  4757. #line 572 "MachineIndependent/glslang.y"
  4758. {
  4759. parseContext.variableCheck((yyvsp[0].interm.intermTypedNode));
  4760. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  4761. if (TIntermMethod* method = (yyvsp[0].interm.intermTypedNode)->getAsMethodNode())
  4762. parseContext.error((yyvsp[0].interm.intermTypedNode)->getLoc(), "incomplete method syntax", method->getMethodName().c_str(), "");
  4763. }
  4764. #line 5018 "MachineIndependent/glslang_tab.cpp"
  4765. break;
  4766. case 38: /* unary_expression: INC_OP unary_expression */
  4767. #line 578 "MachineIndependent/glslang.y"
  4768. {
  4769. parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "++", (yyvsp[0].interm.intermTypedNode));
  4770. (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "++", EOpPreIncrement, (yyvsp[0].interm.intermTypedNode));
  4771. }
  4772. #line 5027 "MachineIndependent/glslang_tab.cpp"
  4773. break;
  4774. case 39: /* unary_expression: DEC_OP unary_expression */
  4775. #line 582 "MachineIndependent/glslang.y"
  4776. {
  4777. parseContext.lValueErrorCheck((yyvsp[-1].lex).loc, "--", (yyvsp[0].interm.intermTypedNode));
  4778. (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].lex).loc, "--", EOpPreDecrement, (yyvsp[0].interm.intermTypedNode));
  4779. }
  4780. #line 5036 "MachineIndependent/glslang_tab.cpp"
  4781. break;
  4782. case 40: /* unary_expression: unary_operator unary_expression */
  4783. #line 586 "MachineIndependent/glslang.y"
  4784. {
  4785. if ((yyvsp[-1].interm).op != EOpNull) {
  4786. char errorOp[2] = {0, 0};
  4787. switch((yyvsp[-1].interm).op) {
  4788. case EOpNegative: errorOp[0] = '-'; break;
  4789. case EOpLogicalNot: errorOp[0] = '!'; break;
  4790. case EOpBitwiseNot: errorOp[0] = '~'; break;
  4791. default: break; // some compilers want this
  4792. }
  4793. (yyval.interm.intermTypedNode) = parseContext.handleUnaryMath((yyvsp[-1].interm).loc, errorOp, (yyvsp[-1].interm).op, (yyvsp[0].interm.intermTypedNode));
  4794. } else {
  4795. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  4796. if ((yyval.interm.intermTypedNode)->getAsConstantUnion())
  4797. (yyval.interm.intermTypedNode)->getAsConstantUnion()->setExpression();
  4798. }
  4799. }
  4800. #line 5057 "MachineIndependent/glslang_tab.cpp"
  4801. break;
  4802. case 41: /* unary_operator: PLUS */
  4803. #line 606 "MachineIndependent/glslang.y"
  4804. { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNull; }
  4805. #line 5063 "MachineIndependent/glslang_tab.cpp"
  4806. break;
  4807. case 42: /* unary_operator: DASH */
  4808. #line 607 "MachineIndependent/glslang.y"
  4809. { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpNegative; }
  4810. #line 5069 "MachineIndependent/glslang_tab.cpp"
  4811. break;
  4812. case 43: /* unary_operator: BANG */
  4813. #line 608 "MachineIndependent/glslang.y"
  4814. { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLogicalNot; }
  4815. #line 5075 "MachineIndependent/glslang_tab.cpp"
  4816. break;
  4817. case 44: /* unary_operator: TILDE */
  4818. #line 609 "MachineIndependent/glslang.y"
  4819. { (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpBitwiseNot;
  4820. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise not"); }
  4821. #line 5082 "MachineIndependent/glslang_tab.cpp"
  4822. break;
  4823. case 45: /* multiplicative_expression: unary_expression */
  4824. #line 615 "MachineIndependent/glslang.y"
  4825. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4826. #line 5088 "MachineIndependent/glslang_tab.cpp"
  4827. break;
  4828. case 46: /* multiplicative_expression: multiplicative_expression STAR unary_expression */
  4829. #line 616 "MachineIndependent/glslang.y"
  4830. {
  4831. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "*", EOpMul, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4832. if ((yyval.interm.intermTypedNode) == 0)
  4833. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4834. }
  4835. #line 5098 "MachineIndependent/glslang_tab.cpp"
  4836. break;
  4837. case 47: /* multiplicative_expression: multiplicative_expression SLASH unary_expression */
  4838. #line 621 "MachineIndependent/glslang.y"
  4839. {
  4840. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "/", EOpDiv, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4841. if ((yyval.interm.intermTypedNode) == 0)
  4842. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4843. }
  4844. #line 5108 "MachineIndependent/glslang_tab.cpp"
  4845. break;
  4846. case 48: /* multiplicative_expression: multiplicative_expression PERCENT unary_expression */
  4847. #line 626 "MachineIndependent/glslang.y"
  4848. {
  4849. parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "%");
  4850. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "%", EOpMod, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4851. if ((yyval.interm.intermTypedNode) == 0)
  4852. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4853. }
  4854. #line 5119 "MachineIndependent/glslang_tab.cpp"
  4855. break;
  4856. case 49: /* additive_expression: multiplicative_expression */
  4857. #line 635 "MachineIndependent/glslang.y"
  4858. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4859. #line 5125 "MachineIndependent/glslang_tab.cpp"
  4860. break;
  4861. case 50: /* additive_expression: additive_expression PLUS multiplicative_expression */
  4862. #line 636 "MachineIndependent/glslang.y"
  4863. {
  4864. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "+", EOpAdd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4865. if ((yyval.interm.intermTypedNode) == 0)
  4866. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4867. }
  4868. #line 5135 "MachineIndependent/glslang_tab.cpp"
  4869. break;
  4870. case 51: /* additive_expression: additive_expression DASH multiplicative_expression */
  4871. #line 641 "MachineIndependent/glslang.y"
  4872. {
  4873. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "-", EOpSub, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4874. if ((yyval.interm.intermTypedNode) == 0)
  4875. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4876. }
  4877. #line 5145 "MachineIndependent/glslang_tab.cpp"
  4878. break;
  4879. case 52: /* shift_expression: additive_expression */
  4880. #line 649 "MachineIndependent/glslang.y"
  4881. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4882. #line 5151 "MachineIndependent/glslang_tab.cpp"
  4883. break;
  4884. case 53: /* shift_expression: shift_expression LEFT_OP additive_expression */
  4885. #line 650 "MachineIndependent/glslang.y"
  4886. {
  4887. parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift left");
  4888. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<<", EOpLeftShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4889. if ((yyval.interm.intermTypedNode) == 0)
  4890. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4891. }
  4892. #line 5162 "MachineIndependent/glslang_tab.cpp"
  4893. break;
  4894. case 54: /* shift_expression: shift_expression RIGHT_OP additive_expression */
  4895. #line 656 "MachineIndependent/glslang.y"
  4896. {
  4897. parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bit shift right");
  4898. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">>", EOpRightShift, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4899. if ((yyval.interm.intermTypedNode) == 0)
  4900. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4901. }
  4902. #line 5173 "MachineIndependent/glslang_tab.cpp"
  4903. break;
  4904. case 55: /* relational_expression: shift_expression */
  4905. #line 665 "MachineIndependent/glslang.y"
  4906. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4907. #line 5179 "MachineIndependent/glslang_tab.cpp"
  4908. break;
  4909. case 56: /* relational_expression: relational_expression LEFT_ANGLE shift_expression */
  4910. #line 666 "MachineIndependent/glslang.y"
  4911. {
  4912. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<", EOpLessThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4913. if ((yyval.interm.intermTypedNode) == 0)
  4914. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  4915. }
  4916. #line 5189 "MachineIndependent/glslang_tab.cpp"
  4917. break;
  4918. case 57: /* relational_expression: relational_expression RIGHT_ANGLE shift_expression */
  4919. #line 671 "MachineIndependent/glslang.y"
  4920. {
  4921. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">", EOpGreaterThan, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4922. if ((yyval.interm.intermTypedNode) == 0)
  4923. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  4924. }
  4925. #line 5199 "MachineIndependent/glslang_tab.cpp"
  4926. break;
  4927. case 58: /* relational_expression: relational_expression LE_OP shift_expression */
  4928. #line 676 "MachineIndependent/glslang.y"
  4929. {
  4930. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "<=", EOpLessThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4931. if ((yyval.interm.intermTypedNode) == 0)
  4932. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  4933. }
  4934. #line 5209 "MachineIndependent/glslang_tab.cpp"
  4935. break;
  4936. case 59: /* relational_expression: relational_expression GE_OP shift_expression */
  4937. #line 681 "MachineIndependent/glslang.y"
  4938. {
  4939. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, ">=", EOpGreaterThanEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4940. if ((yyval.interm.intermTypedNode) == 0)
  4941. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  4942. }
  4943. #line 5219 "MachineIndependent/glslang_tab.cpp"
  4944. break;
  4945. case 60: /* equality_expression: relational_expression */
  4946. #line 689 "MachineIndependent/glslang.y"
  4947. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4948. #line 5225 "MachineIndependent/glslang_tab.cpp"
  4949. break;
  4950. case 61: /* equality_expression: equality_expression EQ_OP relational_expression */
  4951. #line 690 "MachineIndependent/glslang.y"
  4952. {
  4953. parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
  4954. parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
  4955. parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
  4956. parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "==");
  4957. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "==", EOpEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4958. if ((yyval.interm.intermTypedNode) == 0)
  4959. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  4960. }
  4961. #line 5239 "MachineIndependent/glslang_tab.cpp"
  4962. break;
  4963. case 62: /* equality_expression: equality_expression NE_OP relational_expression */
  4964. #line 699 "MachineIndependent/glslang.y"
  4965. {
  4966. parseContext.arrayObjectCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array comparison");
  4967. parseContext.opaqueCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
  4968. parseContext.specializationCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
  4969. parseContext.referenceCheck((yyvsp[-1].lex).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "!=");
  4970. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "!=", EOpNotEqual, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4971. if ((yyval.interm.intermTypedNode) == 0)
  4972. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  4973. }
  4974. #line 5253 "MachineIndependent/glslang_tab.cpp"
  4975. break;
  4976. case 63: /* and_expression: equality_expression */
  4977. #line 711 "MachineIndependent/glslang.y"
  4978. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4979. #line 5259 "MachineIndependent/glslang_tab.cpp"
  4980. break;
  4981. case 64: /* and_expression: and_expression AMPERSAND equality_expression */
  4982. #line 712 "MachineIndependent/glslang.y"
  4983. {
  4984. parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise and");
  4985. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&", EOpAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  4986. if ((yyval.interm.intermTypedNode) == 0)
  4987. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  4988. }
  4989. #line 5270 "MachineIndependent/glslang_tab.cpp"
  4990. break;
  4991. case 65: /* exclusive_or_expression: and_expression */
  4992. #line 721 "MachineIndependent/glslang.y"
  4993. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  4994. #line 5276 "MachineIndependent/glslang_tab.cpp"
  4995. break;
  4996. case 66: /* exclusive_or_expression: exclusive_or_expression CARET and_expression */
  4997. #line 722 "MachineIndependent/glslang.y"
  4998. {
  4999. parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise exclusive or");
  5000. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^", EOpExclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  5001. if ((yyval.interm.intermTypedNode) == 0)
  5002. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  5003. }
  5004. #line 5287 "MachineIndependent/glslang_tab.cpp"
  5005. break;
  5006. case 67: /* inclusive_or_expression: exclusive_or_expression */
  5007. #line 731 "MachineIndependent/glslang.y"
  5008. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  5009. #line 5293 "MachineIndependent/glslang_tab.cpp"
  5010. break;
  5011. case 68: /* inclusive_or_expression: inclusive_or_expression VERTICAL_BAR exclusive_or_expression */
  5012. #line 732 "MachineIndependent/glslang.y"
  5013. {
  5014. parseContext.fullIntegerCheck((yyvsp[-1].lex).loc, "bitwise inclusive or");
  5015. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "|", EOpInclusiveOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  5016. if ((yyval.interm.intermTypedNode) == 0)
  5017. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  5018. }
  5019. #line 5304 "MachineIndependent/glslang_tab.cpp"
  5020. break;
  5021. case 69: /* logical_and_expression: inclusive_or_expression */
  5022. #line 741 "MachineIndependent/glslang.y"
  5023. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  5024. #line 5310 "MachineIndependent/glslang_tab.cpp"
  5025. break;
  5026. case 70: /* logical_and_expression: logical_and_expression AND_OP inclusive_or_expression */
  5027. #line 742 "MachineIndependent/glslang.y"
  5028. {
  5029. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "&&", EOpLogicalAnd, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  5030. if ((yyval.interm.intermTypedNode) == 0)
  5031. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  5032. }
  5033. #line 5320 "MachineIndependent/glslang_tab.cpp"
  5034. break;
  5035. case 71: /* logical_xor_expression: logical_and_expression */
  5036. #line 750 "MachineIndependent/glslang.y"
  5037. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  5038. #line 5326 "MachineIndependent/glslang_tab.cpp"
  5039. break;
  5040. case 72: /* logical_xor_expression: logical_xor_expression XOR_OP logical_and_expression */
  5041. #line 751 "MachineIndependent/glslang.y"
  5042. {
  5043. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "^^", EOpLogicalXor, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  5044. if ((yyval.interm.intermTypedNode) == 0)
  5045. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  5046. }
  5047. #line 5336 "MachineIndependent/glslang_tab.cpp"
  5048. break;
  5049. case 73: /* logical_or_expression: logical_xor_expression */
  5050. #line 759 "MachineIndependent/glslang.y"
  5051. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  5052. #line 5342 "MachineIndependent/glslang_tab.cpp"
  5053. break;
  5054. case 74: /* logical_or_expression: logical_or_expression OR_OP logical_xor_expression */
  5055. #line 760 "MachineIndependent/glslang.y"
  5056. {
  5057. (yyval.interm.intermTypedNode) = parseContext.handleBinaryMath((yyvsp[-1].lex).loc, "||", EOpLogicalOr, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  5058. if ((yyval.interm.intermTypedNode) == 0)
  5059. (yyval.interm.intermTypedNode) = parseContext.intermediate.addConstantUnion(false, (yyvsp[-1].lex).loc);
  5060. }
  5061. #line 5352 "MachineIndependent/glslang_tab.cpp"
  5062. break;
  5063. case 75: /* conditional_expression: logical_or_expression */
  5064. #line 768 "MachineIndependent/glslang.y"
  5065. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  5066. #line 5358 "MachineIndependent/glslang_tab.cpp"
  5067. break;
  5068. case 76: /* $@1: %empty */
  5069. #line 769 "MachineIndependent/glslang.y"
  5070. {
  5071. ++parseContext.controlFlowNestingLevel;
  5072. }
  5073. #line 5366 "MachineIndependent/glslang_tab.cpp"
  5074. break;
  5075. case 77: /* conditional_expression: logical_or_expression QUESTION $@1 expression COLON assignment_expression */
  5076. #line 772 "MachineIndependent/glslang.y"
  5077. {
  5078. --parseContext.controlFlowNestingLevel;
  5079. parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-5].interm.intermTypedNode));
  5080. parseContext.rValueErrorCheck((yyvsp[-4].lex).loc, "?", (yyvsp[-5].interm.intermTypedNode));
  5081. parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode));
  5082. parseContext.rValueErrorCheck((yyvsp[-1].lex).loc, ":", (yyvsp[0].interm.intermTypedNode));
  5083. (yyval.interm.intermTypedNode) = parseContext.intermediate.addSelection((yyvsp[-5].interm.intermTypedNode), (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-4].lex).loc);
  5084. if ((yyval.interm.intermTypedNode) == 0) {
  5085. parseContext.binaryOpError((yyvsp[-4].lex).loc, ":", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
  5086. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  5087. }
  5088. }
  5089. #line 5383 "MachineIndependent/glslang_tab.cpp"
  5090. break;
  5091. case 78: /* assignment_expression: conditional_expression */
  5092. #line 787 "MachineIndependent/glslang.y"
  5093. { (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode); }
  5094. #line 5389 "MachineIndependent/glslang_tab.cpp"
  5095. break;
  5096. case 79: /* assignment_expression: unary_expression assignment_operator assignment_expression */
  5097. #line 788 "MachineIndependent/glslang.y"
  5098. {
  5099. parseContext.arrayObjectCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "array assignment");
  5100. parseContext.opaqueCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
  5101. parseContext.storage16BitAssignmentCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
  5102. parseContext.specializationCheck((yyvsp[-1].interm).loc, (yyvsp[-2].interm.intermTypedNode)->getType(), "=");
  5103. parseContext.lValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode));
  5104. parseContext.rValueErrorCheck((yyvsp[-1].interm).loc, "assign", (yyvsp[0].interm.intermTypedNode));
  5105. (yyval.interm.intermTypedNode) = parseContext.addAssign((yyvsp[-1].interm).loc, (yyvsp[-1].interm).op, (yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  5106. if ((yyval.interm.intermTypedNode) == 0) {
  5107. parseContext.assignError((yyvsp[-1].interm).loc, "assign", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
  5108. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  5109. }
  5110. }
  5111. #line 5407 "MachineIndependent/glslang_tab.cpp"
  5112. break;
  5113. case 80: /* assignment_operator: EQUAL */
  5114. #line 804 "MachineIndependent/glslang.y"
  5115. {
  5116. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5117. (yyval.interm).op = EOpAssign;
  5118. }
  5119. #line 5416 "MachineIndependent/glslang_tab.cpp"
  5120. break;
  5121. case 81: /* assignment_operator: MUL_ASSIGN */
  5122. #line 808 "MachineIndependent/glslang.y"
  5123. {
  5124. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5125. (yyval.interm).op = EOpMulAssign;
  5126. }
  5127. #line 5425 "MachineIndependent/glslang_tab.cpp"
  5128. break;
  5129. case 82: /* assignment_operator: DIV_ASSIGN */
  5130. #line 812 "MachineIndependent/glslang.y"
  5131. {
  5132. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5133. (yyval.interm).op = EOpDivAssign;
  5134. }
  5135. #line 5434 "MachineIndependent/glslang_tab.cpp"
  5136. break;
  5137. case 83: /* assignment_operator: MOD_ASSIGN */
  5138. #line 816 "MachineIndependent/glslang.y"
  5139. {
  5140. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "%=");
  5141. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5142. (yyval.interm).op = EOpModAssign;
  5143. }
  5144. #line 5444 "MachineIndependent/glslang_tab.cpp"
  5145. break;
  5146. case 84: /* assignment_operator: ADD_ASSIGN */
  5147. #line 821 "MachineIndependent/glslang.y"
  5148. {
  5149. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5150. (yyval.interm).op = EOpAddAssign;
  5151. }
  5152. #line 5453 "MachineIndependent/glslang_tab.cpp"
  5153. break;
  5154. case 85: /* assignment_operator: SUB_ASSIGN */
  5155. #line 825 "MachineIndependent/glslang.y"
  5156. {
  5157. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5158. (yyval.interm).op = EOpSubAssign;
  5159. }
  5160. #line 5462 "MachineIndependent/glslang_tab.cpp"
  5161. break;
  5162. case 86: /* assignment_operator: LEFT_ASSIGN */
  5163. #line 829 "MachineIndependent/glslang.y"
  5164. {
  5165. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift left assign");
  5166. (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpLeftShiftAssign;
  5167. }
  5168. #line 5471 "MachineIndependent/glslang_tab.cpp"
  5169. break;
  5170. case 87: /* assignment_operator: RIGHT_ASSIGN */
  5171. #line 833 "MachineIndependent/glslang.y"
  5172. {
  5173. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bit-shift right assign");
  5174. (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpRightShiftAssign;
  5175. }
  5176. #line 5480 "MachineIndependent/glslang_tab.cpp"
  5177. break;
  5178. case 88: /* assignment_operator: AND_ASSIGN */
  5179. #line 837 "MachineIndependent/glslang.y"
  5180. {
  5181. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-and assign");
  5182. (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpAndAssign;
  5183. }
  5184. #line 5489 "MachineIndependent/glslang_tab.cpp"
  5185. break;
  5186. case 89: /* assignment_operator: XOR_ASSIGN */
  5187. #line 841 "MachineIndependent/glslang.y"
  5188. {
  5189. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-xor assign");
  5190. (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpExclusiveOrAssign;
  5191. }
  5192. #line 5498 "MachineIndependent/glslang_tab.cpp"
  5193. break;
  5194. case 90: /* assignment_operator: OR_ASSIGN */
  5195. #line 845 "MachineIndependent/glslang.y"
  5196. {
  5197. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "bitwise-or assign");
  5198. (yyval.interm).loc = (yyvsp[0].lex).loc; (yyval.interm).op = EOpInclusiveOrAssign;
  5199. }
  5200. #line 5507 "MachineIndependent/glslang_tab.cpp"
  5201. break;
  5202. case 91: /* expression: assignment_expression */
  5203. #line 852 "MachineIndependent/glslang.y"
  5204. {
  5205. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  5206. }
  5207. #line 5515 "MachineIndependent/glslang_tab.cpp"
  5208. break;
  5209. case 92: /* expression: expression COMMA assignment_expression */
  5210. #line 855 "MachineIndependent/glslang.y"
  5211. {
  5212. parseContext.samplerConstructorLocationCheck((yyvsp[-1].lex).loc, ",", (yyvsp[0].interm.intermTypedNode));
  5213. (yyval.interm.intermTypedNode) = parseContext.intermediate.addComma((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode), (yyvsp[-1].lex).loc);
  5214. if ((yyval.interm.intermTypedNode) == 0) {
  5215. parseContext.binaryOpError((yyvsp[-1].lex).loc, ",", (yyvsp[-2].interm.intermTypedNode)->getCompleteString(), (yyvsp[0].interm.intermTypedNode)->getCompleteString());
  5216. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  5217. }
  5218. }
  5219. #line 5528 "MachineIndependent/glslang_tab.cpp"
  5220. break;
  5221. case 93: /* constant_expression: conditional_expression */
  5222. #line 866 "MachineIndependent/glslang.y"
  5223. {
  5224. parseContext.constantValueCheck((yyvsp[0].interm.intermTypedNode), "");
  5225. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  5226. }
  5227. #line 5537 "MachineIndependent/glslang_tab.cpp"
  5228. break;
  5229. case 94: /* declaration: function_prototype SEMICOLON */
  5230. #line 873 "MachineIndependent/glslang.y"
  5231. {
  5232. parseContext.handleFunctionDeclarator((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).function, true /* prototype */);
  5233. (yyval.interm.intermNode) = 0;
  5234. // TODO: 4.0 functionality: subroutines: make the identifier a user type for this signature
  5235. }
  5236. #line 5547 "MachineIndependent/glslang_tab.cpp"
  5237. break;
  5238. case 95: /* declaration: init_declarator_list SEMICOLON */
  5239. #line 878 "MachineIndependent/glslang.y"
  5240. {
  5241. if ((yyvsp[-1].interm).intermNode && (yyvsp[-1].interm).intermNode->getAsAggregate())
  5242. (yyvsp[-1].interm).intermNode->getAsAggregate()->setOperator(EOpSequence);
  5243. (yyval.interm.intermNode) = (yyvsp[-1].interm).intermNode;
  5244. }
  5245. #line 5557 "MachineIndependent/glslang_tab.cpp"
  5246. break;
  5247. case 96: /* declaration: PRECISION precision_qualifier type_specifier SEMICOLON */
  5248. #line 883 "MachineIndependent/glslang.y"
  5249. {
  5250. parseContext.profileRequires((yyvsp[-3].lex).loc, ENoProfile, 130, 0, "precision statement");
  5251. // lazy setting of the previous scope's defaults, has effect only the first time it is called in a particular scope
  5252. parseContext.symbolTable.setPreviousDefaultPrecisions(&parseContext.defaultPrecision[0]);
  5253. parseContext.setDefaultPrecision((yyvsp[-3].lex).loc, (yyvsp[-1].interm.type), (yyvsp[-2].interm.type).qualifier.precision);
  5254. (yyval.interm.intermNode) = 0;
  5255. }
  5256. #line 5569 "MachineIndependent/glslang_tab.cpp"
  5257. break;
  5258. case 97: /* declaration: block_structure SEMICOLON */
  5259. #line 890 "MachineIndependent/glslang.y"
  5260. {
  5261. parseContext.declareBlock((yyvsp[-1].interm).loc, *(yyvsp[-1].interm).typeList);
  5262. (yyval.interm.intermNode) = 0;
  5263. }
  5264. #line 5578 "MachineIndependent/glslang_tab.cpp"
  5265. break;
  5266. case 98: /* declaration: block_structure IDENTIFIER SEMICOLON */
  5267. #line 894 "MachineIndependent/glslang.y"
  5268. {
  5269. parseContext.declareBlock((yyvsp[-2].interm).loc, *(yyvsp[-2].interm).typeList, (yyvsp[-1].lex).string);
  5270. (yyval.interm.intermNode) = 0;
  5271. }
  5272. #line 5587 "MachineIndependent/glslang_tab.cpp"
  5273. break;
  5274. case 99: /* declaration: block_structure IDENTIFIER array_specifier SEMICOLON */
  5275. #line 898 "MachineIndependent/glslang.y"
  5276. {
  5277. parseContext.declareBlock((yyvsp[-3].interm).loc, *(yyvsp[-3].interm).typeList, (yyvsp[-2].lex).string, (yyvsp[-1].interm).arraySizes);
  5278. (yyval.interm.intermNode) = 0;
  5279. }
  5280. #line 5596 "MachineIndependent/glslang_tab.cpp"
  5281. break;
  5282. case 100: /* declaration: type_qualifier SEMICOLON */
  5283. #line 902 "MachineIndependent/glslang.y"
  5284. {
  5285. parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
  5286. parseContext.updateStandaloneQualifierDefaults((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type));
  5287. (yyval.interm.intermNode) = 0;
  5288. }
  5289. #line 5606 "MachineIndependent/glslang_tab.cpp"
  5290. break;
  5291. case 101: /* declaration: type_qualifier IDENTIFIER SEMICOLON */
  5292. #line 907 "MachineIndependent/glslang.y"
  5293. {
  5294. parseContext.checkNoShaderLayouts((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).shaderQualifiers);
  5295. parseContext.addQualifierToExisting((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, *(yyvsp[-1].lex).string);
  5296. (yyval.interm.intermNode) = 0;
  5297. }
  5298. #line 5616 "MachineIndependent/glslang_tab.cpp"
  5299. break;
  5300. case 102: /* declaration: type_qualifier IDENTIFIER identifier_list SEMICOLON */
  5301. #line 912 "MachineIndependent/glslang.y"
  5302. {
  5303. parseContext.checkNoShaderLayouts((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).shaderQualifiers);
  5304. (yyvsp[-1].interm.identifierList)->push_back((yyvsp[-2].lex).string);
  5305. parseContext.addQualifierToExisting((yyvsp[-3].interm.type).loc, (yyvsp[-3].interm.type).qualifier, *(yyvsp[-1].interm.identifierList));
  5306. (yyval.interm.intermNode) = 0;
  5307. }
  5308. #line 5627 "MachineIndependent/glslang_tab.cpp"
  5309. break;
  5310. case 103: /* $@2: %empty */
  5311. #line 921 "MachineIndependent/glslang.y"
  5312. { parseContext.nestedBlockCheck((yyvsp[-2].interm.type).loc); }
  5313. #line 5633 "MachineIndependent/glslang_tab.cpp"
  5314. break;
  5315. case 104: /* block_structure: type_qualifier IDENTIFIER LEFT_BRACE $@2 struct_declaration_list RIGHT_BRACE */
  5316. #line 921 "MachineIndependent/glslang.y"
  5317. {
  5318. --parseContext.blockNestingLevel;
  5319. parseContext.blockName = (yyvsp[-4].lex).string;
  5320. parseContext.globalQualifierFixCheck((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).qualifier);
  5321. parseContext.checkNoShaderLayouts((yyvsp[-5].interm.type).loc, (yyvsp[-5].interm.type).shaderQualifiers);
  5322. parseContext.currentBlockQualifier = (yyvsp[-5].interm.type).qualifier;
  5323. (yyval.interm).loc = (yyvsp[-5].interm.type).loc;
  5324. (yyval.interm).typeList = (yyvsp[-1].interm.typeList);
  5325. }
  5326. #line 5647 "MachineIndependent/glslang_tab.cpp"
  5327. break;
  5328. case 105: /* identifier_list: COMMA IDENTIFIER */
  5329. #line 932 "MachineIndependent/glslang.y"
  5330. {
  5331. (yyval.interm.identifierList) = new TIdentifierList;
  5332. (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
  5333. }
  5334. #line 5656 "MachineIndependent/glslang_tab.cpp"
  5335. break;
  5336. case 106: /* identifier_list: identifier_list COMMA IDENTIFIER */
  5337. #line 936 "MachineIndependent/glslang.y"
  5338. {
  5339. (yyval.interm.identifierList) = (yyvsp[-2].interm.identifierList);
  5340. (yyval.interm.identifierList)->push_back((yyvsp[0].lex).string);
  5341. }
  5342. #line 5665 "MachineIndependent/glslang_tab.cpp"
  5343. break;
  5344. case 107: /* function_prototype: function_declarator RIGHT_PAREN */
  5345. #line 943 "MachineIndependent/glslang.y"
  5346. {
  5347. (yyval.interm).function = (yyvsp[-1].interm.function);
  5348. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5349. }
  5350. #line 5674 "MachineIndependent/glslang_tab.cpp"
  5351. break;
  5352. case 108: /* function_declarator: function_header */
  5353. #line 950 "MachineIndependent/glslang.y"
  5354. {
  5355. (yyval.interm.function) = (yyvsp[0].interm.function);
  5356. }
  5357. #line 5682 "MachineIndependent/glslang_tab.cpp"
  5358. break;
  5359. case 109: /* function_declarator: function_header_with_parameters */
  5360. #line 953 "MachineIndependent/glslang.y"
  5361. {
  5362. (yyval.interm.function) = (yyvsp[0].interm.function);
  5363. }
  5364. #line 5690 "MachineIndependent/glslang_tab.cpp"
  5365. break;
  5366. case 110: /* function_header_with_parameters: function_header parameter_declaration */
  5367. #line 960 "MachineIndependent/glslang.y"
  5368. {
  5369. // Add the parameter
  5370. (yyval.interm.function) = (yyvsp[-1].interm.function);
  5371. if ((yyvsp[0].interm).param.type->getBasicType() != EbtVoid)
  5372. (yyvsp[-1].interm.function)->addParameter((yyvsp[0].interm).param);
  5373. else
  5374. delete (yyvsp[0].interm).param.type;
  5375. }
  5376. #line 5703 "MachineIndependent/glslang_tab.cpp"
  5377. break;
  5378. case 111: /* function_header_with_parameters: function_header_with_parameters COMMA parameter_declaration */
  5379. #line 968 "MachineIndependent/glslang.y"
  5380. {
  5381. //
  5382. // Only first parameter of one-parameter functions can be void
  5383. // The check for named parameters not being void is done in parameter_declarator
  5384. //
  5385. if ((yyvsp[0].interm).param.type->getBasicType() == EbtVoid) {
  5386. //
  5387. // This parameter > first is void
  5388. //
  5389. parseContext.error((yyvsp[-1].lex).loc, "cannot be an argument type except for '(void)'", "void", "");
  5390. delete (yyvsp[0].interm).param.type;
  5391. } else {
  5392. // Add the parameter
  5393. (yyval.interm.function) = (yyvsp[-2].interm.function);
  5394. (yyvsp[-2].interm.function)->addParameter((yyvsp[0].interm).param);
  5395. }
  5396. }
  5397. #line 5725 "MachineIndependent/glslang_tab.cpp"
  5398. break;
  5399. case 112: /* function_header: fully_specified_type IDENTIFIER LEFT_PAREN */
  5400. #line 988 "MachineIndependent/glslang.y"
  5401. {
  5402. if ((yyvsp[-2].interm.type).qualifier.storage != EvqGlobal && (yyvsp[-2].interm.type).qualifier.storage != EvqTemporary) {
  5403. parseContext.error((yyvsp[-1].lex).loc, "no qualifiers allowed for function return",
  5404. GetStorageQualifierString((yyvsp[-2].interm.type).qualifier.storage), "");
  5405. }
  5406. if ((yyvsp[-2].interm.type).arraySizes)
  5407. parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
  5408. // Add the function as a prototype after parsing it (we do not support recursion)
  5409. TFunction *function;
  5410. TType type((yyvsp[-2].interm.type));
  5411. // Potentially rename shader entry point function. No-op most of the time.
  5412. parseContext.renameShaderFunction((yyvsp[-1].lex).string);
  5413. // Make the function
  5414. function = new TFunction((yyvsp[-1].lex).string, type);
  5415. (yyval.interm.function) = function;
  5416. }
  5417. #line 5749 "MachineIndependent/glslang_tab.cpp"
  5418. break;
  5419. case 113: /* parameter_declarator: type_specifier IDENTIFIER */
  5420. #line 1011 "MachineIndependent/glslang.y"
  5421. {
  5422. if ((yyvsp[-1].interm.type).arraySizes) {
  5423. parseContext.profileRequires((yyvsp[-1].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
  5424. parseContext.profileRequires((yyvsp[-1].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
  5425. parseContext.arraySizeRequiredCheck((yyvsp[-1].interm.type).loc, *(yyvsp[-1].interm.type).arraySizes);
  5426. }
  5427. if ((yyvsp[-1].interm.type).basicType == EbtVoid) {
  5428. parseContext.error((yyvsp[0].lex).loc, "illegal use of type 'void'", (yyvsp[0].lex).string->c_str(), "");
  5429. }
  5430. parseContext.reservedErrorCheck((yyvsp[0].lex).loc, *(yyvsp[0].lex).string);
  5431. TParameter param = {(yyvsp[0].lex).string, new TType((yyvsp[-1].interm.type))};
  5432. (yyval.interm).loc = (yyvsp[0].lex).loc;
  5433. (yyval.interm).param = param;
  5434. }
  5435. #line 5769 "MachineIndependent/glslang_tab.cpp"
  5436. break;
  5437. case 114: /* parameter_declarator: type_specifier IDENTIFIER array_specifier */
  5438. #line 1026 "MachineIndependent/glslang.y"
  5439. {
  5440. if ((yyvsp[-2].interm.type).arraySizes) {
  5441. parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
  5442. parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
  5443. parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
  5444. }
  5445. TType* type = new TType((yyvsp[-2].interm.type));
  5446. type->transferArraySizes((yyvsp[0].interm).arraySizes);
  5447. type->copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
  5448. parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, type->getArraySizes());
  5449. parseContext.arraySizeRequiredCheck((yyvsp[0].interm).loc, *(yyvsp[0].interm).arraySizes);
  5450. parseContext.reservedErrorCheck((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string);
  5451. TParameter param = { (yyvsp[-1].lex).string, type };
  5452. (yyval.interm).loc = (yyvsp[-1].lex).loc;
  5453. (yyval.interm).param = param;
  5454. }
  5455. #line 5793 "MachineIndependent/glslang_tab.cpp"
  5456. break;
  5457. case 115: /* parameter_declaration: type_qualifier parameter_declarator */
  5458. #line 1051 "MachineIndependent/glslang.y"
  5459. {
  5460. (yyval.interm) = (yyvsp[0].interm);
  5461. if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
  5462. (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
  5463. parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
  5464. parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
  5465. parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
  5466. parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
  5467. }
  5468. #line 5809 "MachineIndependent/glslang_tab.cpp"
  5469. break;
  5470. case 116: /* parameter_declaration: parameter_declarator */
  5471. #line 1062 "MachineIndependent/glslang.y"
  5472. {
  5473. (yyval.interm) = (yyvsp[0].interm);
  5474. parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
  5475. parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
  5476. parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
  5477. }
  5478. #line 5821 "MachineIndependent/glslang_tab.cpp"
  5479. break;
  5480. case 117: /* parameter_declaration: type_qualifier parameter_type_specifier */
  5481. #line 1072 "MachineIndependent/glslang.y"
  5482. {
  5483. (yyval.interm) = (yyvsp[0].interm);
  5484. if ((yyvsp[-1].interm.type).qualifier.precision != EpqNone)
  5485. (yyval.interm).param.type->getQualifier().precision = (yyvsp[-1].interm.type).qualifier.precision;
  5486. parseContext.precisionQualifierCheck((yyvsp[-1].interm.type).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
  5487. parseContext.checkNoShaderLayouts((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
  5488. parseContext.parameterTypeCheck((yyvsp[0].interm).loc, (yyvsp[-1].interm.type).qualifier.storage, *(yyval.interm).param.type);
  5489. parseContext.paramCheckFix((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, *(yyval.interm).param.type);
  5490. }
  5491. #line 5836 "MachineIndependent/glslang_tab.cpp"
  5492. break;
  5493. case 118: /* parameter_declaration: parameter_type_specifier */
  5494. #line 1082 "MachineIndependent/glslang.y"
  5495. {
  5496. (yyval.interm) = (yyvsp[0].interm);
  5497. parseContext.parameterTypeCheck((yyvsp[0].interm).loc, EvqIn, *(yyvsp[0].interm).param.type);
  5498. parseContext.paramCheckFixStorage((yyvsp[0].interm).loc, EvqTemporary, *(yyval.interm).param.type);
  5499. parseContext.precisionQualifierCheck((yyval.interm).loc, (yyval.interm).param.type->getBasicType(), (yyval.interm).param.type->getQualifier());
  5500. }
  5501. #line 5848 "MachineIndependent/glslang_tab.cpp"
  5502. break;
  5503. case 119: /* parameter_type_specifier: type_specifier */
  5504. #line 1092 "MachineIndependent/glslang.y"
  5505. {
  5506. TParameter param = { 0, new TType((yyvsp[0].interm.type)) };
  5507. (yyval.interm).param = param;
  5508. if ((yyvsp[0].interm.type).arraySizes)
  5509. parseContext.arraySizeRequiredCheck((yyvsp[0].interm.type).loc, *(yyvsp[0].interm.type).arraySizes);
  5510. }
  5511. #line 5859 "MachineIndependent/glslang_tab.cpp"
  5512. break;
  5513. case 120: /* init_declarator_list: single_declaration */
  5514. #line 1101 "MachineIndependent/glslang.y"
  5515. {
  5516. (yyval.interm) = (yyvsp[0].interm);
  5517. }
  5518. #line 5867 "MachineIndependent/glslang_tab.cpp"
  5519. break;
  5520. case 121: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER */
  5521. #line 1104 "MachineIndependent/glslang.y"
  5522. {
  5523. (yyval.interm) = (yyvsp[-2].interm);
  5524. parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-2].interm).type);
  5525. }
  5526. #line 5876 "MachineIndependent/glslang_tab.cpp"
  5527. break;
  5528. case 122: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier */
  5529. #line 1108 "MachineIndependent/glslang.y"
  5530. {
  5531. (yyval.interm) = (yyvsp[-3].interm);
  5532. parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-3].interm).type, (yyvsp[0].interm).arraySizes);
  5533. }
  5534. #line 5885 "MachineIndependent/glslang_tab.cpp"
  5535. break;
  5536. case 123: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER array_specifier EQUAL initializer */
  5537. #line 1112 "MachineIndependent/glslang.y"
  5538. {
  5539. (yyval.interm).type = (yyvsp[-5].interm).type;
  5540. TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-5].interm).type, (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
  5541. (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-5].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
  5542. }
  5543. #line 5895 "MachineIndependent/glslang_tab.cpp"
  5544. break;
  5545. case 124: /* init_declarator_list: init_declarator_list COMMA IDENTIFIER EQUAL initializer */
  5546. #line 1117 "MachineIndependent/glslang.y"
  5547. {
  5548. (yyval.interm).type = (yyvsp[-4].interm).type;
  5549. TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-4].interm).type, 0, (yyvsp[0].interm.intermTypedNode));
  5550. (yyval.interm).intermNode = parseContext.intermediate.growAggregate((yyvsp[-4].interm).intermNode, initNode, (yyvsp[-1].lex).loc);
  5551. }
  5552. #line 5905 "MachineIndependent/glslang_tab.cpp"
  5553. break;
  5554. case 125: /* single_declaration: fully_specified_type */
  5555. #line 1125 "MachineIndependent/glslang.y"
  5556. {
  5557. (yyval.interm).type = (yyvsp[0].interm.type);
  5558. (yyval.interm).intermNode = 0;
  5559. parseContext.declareTypeDefaults((yyval.interm).loc, (yyval.interm).type);
  5560. }
  5561. #line 5917 "MachineIndependent/glslang_tab.cpp"
  5562. break;
  5563. case 126: /* single_declaration: fully_specified_type IDENTIFIER */
  5564. #line 1132 "MachineIndependent/glslang.y"
  5565. {
  5566. (yyval.interm).type = (yyvsp[-1].interm.type);
  5567. (yyval.interm).intermNode = 0;
  5568. parseContext.declareVariable((yyvsp[0].lex).loc, *(yyvsp[0].lex).string, (yyvsp[-1].interm.type));
  5569. }
  5570. #line 5927 "MachineIndependent/glslang_tab.cpp"
  5571. break;
  5572. case 127: /* single_declaration: fully_specified_type IDENTIFIER array_specifier */
  5573. #line 1137 "MachineIndependent/glslang.y"
  5574. {
  5575. (yyval.interm).type = (yyvsp[-2].interm.type);
  5576. (yyval.interm).intermNode = 0;
  5577. parseContext.declareVariable((yyvsp[-1].lex).loc, *(yyvsp[-1].lex).string, (yyvsp[-2].interm.type), (yyvsp[0].interm).arraySizes);
  5578. }
  5579. #line 5937 "MachineIndependent/glslang_tab.cpp"
  5580. break;
  5581. case 128: /* single_declaration: fully_specified_type IDENTIFIER array_specifier EQUAL initializer */
  5582. #line 1142 "MachineIndependent/glslang.y"
  5583. {
  5584. (yyval.interm).type = (yyvsp[-4].interm.type);
  5585. TIntermNode* initNode = parseContext.declareVariable((yyvsp[-3].lex).loc, *(yyvsp[-3].lex).string, (yyvsp[-4].interm.type), (yyvsp[-2].interm).arraySizes, (yyvsp[0].interm.intermTypedNode));
  5586. (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
  5587. }
  5588. #line 5947 "MachineIndependent/glslang_tab.cpp"
  5589. break;
  5590. case 129: /* single_declaration: fully_specified_type IDENTIFIER EQUAL initializer */
  5591. #line 1147 "MachineIndependent/glslang.y"
  5592. {
  5593. (yyval.interm).type = (yyvsp[-3].interm.type);
  5594. TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
  5595. (yyval.interm).intermNode = parseContext.intermediate.growAggregate(0, initNode, (yyvsp[-1].lex).loc);
  5596. }
  5597. #line 5957 "MachineIndependent/glslang_tab.cpp"
  5598. break;
  5599. case 130: /* fully_specified_type: type_specifier */
  5600. #line 1156 "MachineIndependent/glslang.y"
  5601. {
  5602. (yyval.interm.type) = (yyvsp[0].interm.type);
  5603. parseContext.globalQualifierTypeCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyval.interm.type));
  5604. if ((yyvsp[0].interm.type).arraySizes) {
  5605. parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
  5606. parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
  5607. }
  5608. parseContext.precisionQualifierCheck((yyval.interm.type).loc, (yyval.interm.type).basicType, (yyval.interm.type).qualifier);
  5609. }
  5610. #line 5972 "MachineIndependent/glslang_tab.cpp"
  5611. break;
  5612. case 131: /* fully_specified_type: type_qualifier type_specifier */
  5613. #line 1166 "MachineIndependent/glslang.y"
  5614. {
  5615. parseContext.globalQualifierFixCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier);
  5616. parseContext.globalQualifierTypeCheck((yyvsp[-1].interm.type).loc, (yyvsp[-1].interm.type).qualifier, (yyvsp[0].interm.type));
  5617. if ((yyvsp[0].interm.type).arraySizes) {
  5618. parseContext.profileRequires((yyvsp[0].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
  5619. parseContext.profileRequires((yyvsp[0].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
  5620. }
  5621. if ((yyvsp[0].interm.type).arraySizes && parseContext.arrayQualifierError((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).qualifier))
  5622. (yyvsp[0].interm.type).arraySizes = nullptr;
  5623. parseContext.checkNoShaderLayouts((yyvsp[0].interm.type).loc, (yyvsp[-1].interm.type).shaderQualifiers);
  5624. (yyvsp[0].interm.type).shaderQualifiers.merge((yyvsp[-1].interm.type).shaderQualifiers);
  5625. parseContext.mergeQualifiers((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier, (yyvsp[-1].interm.type).qualifier, true);
  5626. parseContext.precisionQualifierCheck((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).basicType, (yyvsp[0].interm.type).qualifier);
  5627. (yyval.interm.type) = (yyvsp[0].interm.type);
  5628. if (! (yyval.interm.type).qualifier.isInterpolation() &&
  5629. ((parseContext.language == EShLangVertex && (yyval.interm.type).qualifier.storage == EvqVaryingOut) ||
  5630. (parseContext.language == EShLangFragment && (yyval.interm.type).qualifier.storage == EvqVaryingIn)))
  5631. (yyval.interm.type).qualifier.smooth = true;
  5632. }
  5633. #line 6001 "MachineIndependent/glslang_tab.cpp"
  5634. break;
  5635. case 132: /* invariant_qualifier: INVARIANT */
  5636. #line 1193 "MachineIndependent/glslang.y"
  5637. {
  5638. parseContext.globalCheck((yyvsp[0].lex).loc, "invariant");
  5639. parseContext.profileRequires((yyval.interm.type).loc, ENoProfile, 120, 0, "invariant");
  5640. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5641. (yyval.interm.type).qualifier.invariant = true;
  5642. }
  5643. #line 6012 "MachineIndependent/glslang_tab.cpp"
  5644. break;
  5645. case 133: /* interpolation_qualifier: SMOOTH */
  5646. #line 1202 "MachineIndependent/glslang.y"
  5647. {
  5648. parseContext.globalCheck((yyvsp[0].lex).loc, "smooth");
  5649. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "smooth");
  5650. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "smooth");
  5651. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5652. (yyval.interm.type).qualifier.smooth = true;
  5653. }
  5654. #line 6024 "MachineIndependent/glslang_tab.cpp"
  5655. break;
  5656. case 134: /* interpolation_qualifier: FLAT */
  5657. #line 1209 "MachineIndependent/glslang.y"
  5658. {
  5659. parseContext.globalCheck((yyvsp[0].lex).loc, "flat");
  5660. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "flat");
  5661. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "flat");
  5662. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5663. (yyval.interm.type).qualifier.flat = true;
  5664. }
  5665. #line 6036 "MachineIndependent/glslang_tab.cpp"
  5666. break;
  5667. case 135: /* interpolation_qualifier: NOPERSPECTIVE */
  5668. #line 1217 "MachineIndependent/glslang.y"
  5669. {
  5670. parseContext.globalCheck((yyvsp[0].lex).loc, "noperspective");
  5671. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_shader_noperspective_interpolation, "noperspective");
  5672. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "noperspective");
  5673. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5674. (yyval.interm.type).qualifier.nopersp = true;
  5675. }
  5676. #line 6048 "MachineIndependent/glslang_tab.cpp"
  5677. break;
  5678. case 136: /* interpolation_qualifier: EXPLICITINTERPAMD */
  5679. #line 1224 "MachineIndependent/glslang.y"
  5680. {
  5681. parseContext.globalCheck((yyvsp[0].lex).loc, "__explicitInterpAMD");
  5682. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
  5683. parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 450, E_GL_AMD_shader_explicit_vertex_parameter, "explicit interpolation");
  5684. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5685. (yyval.interm.type).qualifier.explicitInterp = true;
  5686. }
  5687. #line 6060 "MachineIndependent/glslang_tab.cpp"
  5688. break;
  5689. case 137: /* interpolation_qualifier: PERVERTEXNV */
  5690. #line 1231 "MachineIndependent/glslang.y"
  5691. {
  5692. parseContext.globalCheck((yyvsp[0].lex).loc, "pervertexNV");
  5693. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
  5694. parseContext.profileRequires((yyvsp[0].lex).loc, ECompatibilityProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
  5695. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 0, E_GL_NV_fragment_shader_barycentric, "fragment shader barycentric");
  5696. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5697. (yyval.interm.type).qualifier.pervertexNV = true;
  5698. }
  5699. #line 6073 "MachineIndependent/glslang_tab.cpp"
  5700. break;
  5701. case 138: /* interpolation_qualifier: PERPRIMITIVENV */
  5702. #line 1239 "MachineIndependent/glslang.y"
  5703. {
  5704. // No need for profile version or extension check. Shader stage already checks both.
  5705. parseContext.globalCheck((yyvsp[0].lex).loc, "perprimitiveNV");
  5706. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangFragmentMask | EShLangMeshNVMask), "perprimitiveNV");
  5707. // Fragment shader stage doesn't check for extension. So we explicitly add below extension check.
  5708. if (parseContext.language == EShLangFragment)
  5709. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_NV_mesh_shader, "perprimitiveNV");
  5710. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5711. (yyval.interm.type).qualifier.perPrimitiveNV = true;
  5712. }
  5713. #line 6088 "MachineIndependent/glslang_tab.cpp"
  5714. break;
  5715. case 139: /* interpolation_qualifier: PERVIEWNV */
  5716. #line 1249 "MachineIndependent/glslang.y"
  5717. {
  5718. // No need for profile version or extension check. Shader stage already checks both.
  5719. parseContext.globalCheck((yyvsp[0].lex).loc, "perviewNV");
  5720. parseContext.requireStage((yyvsp[0].lex).loc, EShLangMeshNV, "perviewNV");
  5721. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5722. (yyval.interm.type).qualifier.perViewNV = true;
  5723. }
  5724. #line 6100 "MachineIndependent/glslang_tab.cpp"
  5725. break;
  5726. case 140: /* interpolation_qualifier: PERTASKNV */
  5727. #line 1256 "MachineIndependent/glslang.y"
  5728. {
  5729. // No need for profile version or extension check. Shader stage already checks both.
  5730. parseContext.globalCheck((yyvsp[0].lex).loc, "taskNV");
  5731. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTaskNVMask | EShLangMeshNVMask), "taskNV");
  5732. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5733. (yyval.interm.type).qualifier.perTaskNV = true;
  5734. }
  5735. #line 6112 "MachineIndependent/glslang_tab.cpp"
  5736. break;
  5737. case 141: /* layout_qualifier: LAYOUT LEFT_PAREN layout_qualifier_id_list RIGHT_PAREN */
  5738. #line 1267 "MachineIndependent/glslang.y"
  5739. {
  5740. (yyval.interm.type) = (yyvsp[-1].interm.type);
  5741. }
  5742. #line 6120 "MachineIndependent/glslang_tab.cpp"
  5743. break;
  5744. case 142: /* layout_qualifier_id_list: layout_qualifier_id */
  5745. #line 1273 "MachineIndependent/glslang.y"
  5746. {
  5747. (yyval.interm.type) = (yyvsp[0].interm.type);
  5748. }
  5749. #line 6128 "MachineIndependent/glslang_tab.cpp"
  5750. break;
  5751. case 143: /* layout_qualifier_id_list: layout_qualifier_id_list COMMA layout_qualifier_id */
  5752. #line 1276 "MachineIndependent/glslang.y"
  5753. {
  5754. (yyval.interm.type) = (yyvsp[-2].interm.type);
  5755. (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
  5756. parseContext.mergeObjectLayoutQualifiers((yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
  5757. }
  5758. #line 6138 "MachineIndependent/glslang_tab.cpp"
  5759. break;
  5760. case 144: /* layout_qualifier_id: IDENTIFIER */
  5761. #line 1283 "MachineIndependent/glslang.y"
  5762. {
  5763. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5764. parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), *(yyvsp[0].lex).string);
  5765. }
  5766. #line 6147 "MachineIndependent/glslang_tab.cpp"
  5767. break;
  5768. case 145: /* layout_qualifier_id: IDENTIFIER EQUAL constant_expression */
  5769. #line 1287 "MachineIndependent/glslang.y"
  5770. {
  5771. (yyval.interm.type).init((yyvsp[-2].lex).loc);
  5772. parseContext.setLayoutQualifier((yyvsp[-2].lex).loc, (yyval.interm.type), *(yyvsp[-2].lex).string, (yyvsp[0].interm.intermTypedNode));
  5773. }
  5774. #line 6156 "MachineIndependent/glslang_tab.cpp"
  5775. break;
  5776. case 146: /* layout_qualifier_id: SHARED */
  5777. #line 1291 "MachineIndependent/glslang.y"
  5778. { // because "shared" is both an identifier and a keyword
  5779. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5780. TString strShared("shared");
  5781. parseContext.setLayoutQualifier((yyvsp[0].lex).loc, (yyval.interm.type), strShared);
  5782. }
  5783. #line 6166 "MachineIndependent/glslang_tab.cpp"
  5784. break;
  5785. case 147: /* precise_qualifier: PRECISE */
  5786. #line 1300 "MachineIndependent/glslang.y"
  5787. {
  5788. parseContext.profileRequires((yyval.interm.type).loc, ECoreProfile | ECompatibilityProfile, 400, E_GL_ARB_gpu_shader5, "precise");
  5789. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, "precise");
  5790. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5791. (yyval.interm.type).qualifier.noContraction = true;
  5792. }
  5793. #line 6177 "MachineIndependent/glslang_tab.cpp"
  5794. break;
  5795. case 148: /* type_qualifier: single_type_qualifier */
  5796. #line 1310 "MachineIndependent/glslang.y"
  5797. {
  5798. (yyval.interm.type) = (yyvsp[0].interm.type);
  5799. }
  5800. #line 6185 "MachineIndependent/glslang_tab.cpp"
  5801. break;
  5802. case 149: /* type_qualifier: type_qualifier single_type_qualifier */
  5803. #line 1313 "MachineIndependent/glslang.y"
  5804. {
  5805. (yyval.interm.type) = (yyvsp[-1].interm.type);
  5806. if ((yyval.interm.type).basicType == EbtVoid)
  5807. (yyval.interm.type).basicType = (yyvsp[0].interm.type).basicType;
  5808. (yyval.interm.type).shaderQualifiers.merge((yyvsp[0].interm.type).shaderQualifiers);
  5809. parseContext.mergeQualifiers((yyval.interm.type).loc, (yyval.interm.type).qualifier, (yyvsp[0].interm.type).qualifier, false);
  5810. }
  5811. #line 6198 "MachineIndependent/glslang_tab.cpp"
  5812. break;
  5813. case 150: /* single_type_qualifier: storage_qualifier */
  5814. #line 1324 "MachineIndependent/glslang.y"
  5815. {
  5816. (yyval.interm.type) = (yyvsp[0].interm.type);
  5817. }
  5818. #line 6206 "MachineIndependent/glslang_tab.cpp"
  5819. break;
  5820. case 151: /* single_type_qualifier: layout_qualifier */
  5821. #line 1327 "MachineIndependent/glslang.y"
  5822. {
  5823. (yyval.interm.type) = (yyvsp[0].interm.type);
  5824. }
  5825. #line 6214 "MachineIndependent/glslang_tab.cpp"
  5826. break;
  5827. case 152: /* single_type_qualifier: precision_qualifier */
  5828. #line 1330 "MachineIndependent/glslang.y"
  5829. {
  5830. parseContext.checkPrecisionQualifier((yyvsp[0].interm.type).loc, (yyvsp[0].interm.type).qualifier.precision);
  5831. (yyval.interm.type) = (yyvsp[0].interm.type);
  5832. }
  5833. #line 6223 "MachineIndependent/glslang_tab.cpp"
  5834. break;
  5835. case 153: /* single_type_qualifier: interpolation_qualifier */
  5836. #line 1334 "MachineIndependent/glslang.y"
  5837. {
  5838. // allow inheritance of storage qualifier from block declaration
  5839. (yyval.interm.type) = (yyvsp[0].interm.type);
  5840. }
  5841. #line 6232 "MachineIndependent/glslang_tab.cpp"
  5842. break;
  5843. case 154: /* single_type_qualifier: invariant_qualifier */
  5844. #line 1338 "MachineIndependent/glslang.y"
  5845. {
  5846. // allow inheritance of storage qualifier from block declaration
  5847. (yyval.interm.type) = (yyvsp[0].interm.type);
  5848. }
  5849. #line 6241 "MachineIndependent/glslang_tab.cpp"
  5850. break;
  5851. case 155: /* single_type_qualifier: precise_qualifier */
  5852. #line 1343 "MachineIndependent/glslang.y"
  5853. {
  5854. // allow inheritance of storage qualifier from block declaration
  5855. (yyval.interm.type) = (yyvsp[0].interm.type);
  5856. }
  5857. #line 6250 "MachineIndependent/glslang_tab.cpp"
  5858. break;
  5859. case 156: /* single_type_qualifier: non_uniform_qualifier */
  5860. #line 1347 "MachineIndependent/glslang.y"
  5861. {
  5862. (yyval.interm.type) = (yyvsp[0].interm.type);
  5863. }
  5864. #line 6258 "MachineIndependent/glslang_tab.cpp"
  5865. break;
  5866. case 157: /* storage_qualifier: CONST */
  5867. #line 1354 "MachineIndependent/glslang.y"
  5868. {
  5869. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5870. (yyval.interm.type).qualifier.storage = EvqConst; // will later turn into EvqConstReadOnly, if the initializer is not constant
  5871. }
  5872. #line 6267 "MachineIndependent/glslang_tab.cpp"
  5873. break;
  5874. case 158: /* storage_qualifier: INOUT */
  5875. #line 1358 "MachineIndependent/glslang.y"
  5876. {
  5877. parseContext.globalCheck((yyvsp[0].lex).loc, "inout");
  5878. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5879. (yyval.interm.type).qualifier.storage = EvqInOut;
  5880. }
  5881. #line 6277 "MachineIndependent/glslang_tab.cpp"
  5882. break;
  5883. case 159: /* storage_qualifier: IN */
  5884. #line 1363 "MachineIndependent/glslang.y"
  5885. {
  5886. parseContext.globalCheck((yyvsp[0].lex).loc, "in");
  5887. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5888. // whether this is a parameter "in" or a pipeline "in" will get sorted out a bit later
  5889. (yyval.interm.type).qualifier.storage = EvqIn;
  5890. }
  5891. #line 6288 "MachineIndependent/glslang_tab.cpp"
  5892. break;
  5893. case 160: /* storage_qualifier: OUT */
  5894. #line 1369 "MachineIndependent/glslang.y"
  5895. {
  5896. parseContext.globalCheck((yyvsp[0].lex).loc, "out");
  5897. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5898. // whether this is a parameter "out" or a pipeline "out" will get sorted out a bit later
  5899. (yyval.interm.type).qualifier.storage = EvqOut;
  5900. }
  5901. #line 6299 "MachineIndependent/glslang_tab.cpp"
  5902. break;
  5903. case 161: /* storage_qualifier: CENTROID */
  5904. #line 1375 "MachineIndependent/glslang.y"
  5905. {
  5906. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 120, 0, "centroid");
  5907. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 300, 0, "centroid");
  5908. parseContext.globalCheck((yyvsp[0].lex).loc, "centroid");
  5909. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5910. (yyval.interm.type).qualifier.centroid = true;
  5911. }
  5912. #line 6311 "MachineIndependent/glslang_tab.cpp"
  5913. break;
  5914. case 162: /* storage_qualifier: UNIFORM */
  5915. #line 1382 "MachineIndependent/glslang.y"
  5916. {
  5917. parseContext.globalCheck((yyvsp[0].lex).loc, "uniform");
  5918. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5919. (yyval.interm.type).qualifier.storage = EvqUniform;
  5920. }
  5921. #line 6321 "MachineIndependent/glslang_tab.cpp"
  5922. break;
  5923. case 163: /* storage_qualifier: SHARED */
  5924. #line 1387 "MachineIndependent/glslang.y"
  5925. {
  5926. parseContext.globalCheck((yyvsp[0].lex).loc, "shared");
  5927. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, 430, E_GL_ARB_compute_shader, "shared");
  5928. parseContext.profileRequires((yyvsp[0].lex).loc, EEsProfile, 310, 0, "shared");
  5929. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangComputeMask | EShLangMeshNVMask | EShLangTaskNVMask), "shared");
  5930. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5931. (yyval.interm.type).qualifier.storage = EvqShared;
  5932. }
  5933. #line 6334 "MachineIndependent/glslang_tab.cpp"
  5934. break;
  5935. case 164: /* storage_qualifier: BUFFER */
  5936. #line 1395 "MachineIndependent/glslang.y"
  5937. {
  5938. parseContext.globalCheck((yyvsp[0].lex).loc, "buffer");
  5939. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5940. (yyval.interm.type).qualifier.storage = EvqBuffer;
  5941. }
  5942. #line 6344 "MachineIndependent/glslang_tab.cpp"
  5943. break;
  5944. case 165: /* storage_qualifier: ATTRIBUTE */
  5945. #line 1401 "MachineIndependent/glslang.y"
  5946. {
  5947. parseContext.requireStage((yyvsp[0].lex).loc, EShLangVertex, "attribute");
  5948. parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "attribute");
  5949. parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "attribute");
  5950. parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "attribute");
  5951. parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "attribute");
  5952. parseContext.globalCheck((yyvsp[0].lex).loc, "attribute");
  5953. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5954. (yyval.interm.type).qualifier.storage = EvqVaryingIn;
  5955. }
  5956. #line 6361 "MachineIndependent/glslang_tab.cpp"
  5957. break;
  5958. case 166: /* storage_qualifier: VARYING */
  5959. #line 1413 "MachineIndependent/glslang.y"
  5960. {
  5961. parseContext.checkDeprecated((yyvsp[0].lex).loc, ENoProfile, 130, "varying");
  5962. parseContext.checkDeprecated((yyvsp[0].lex).loc, ECoreProfile, 130, "varying");
  5963. parseContext.requireNotRemoved((yyvsp[0].lex).loc, ECoreProfile, 420, "varying");
  5964. parseContext.requireNotRemoved((yyvsp[0].lex).loc, EEsProfile, 300, "varying");
  5965. parseContext.globalCheck((yyvsp[0].lex).loc, "varying");
  5966. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5967. if (parseContext.language == EShLangVertex)
  5968. (yyval.interm.type).qualifier.storage = EvqVaryingOut;
  5969. else
  5970. (yyval.interm.type).qualifier.storage = EvqVaryingIn;
  5971. }
  5972. #line 6380 "MachineIndependent/glslang_tab.cpp"
  5973. break;
  5974. case 167: /* storage_qualifier: PATCH */
  5975. #line 1427 "MachineIndependent/glslang.y"
  5976. {
  5977. parseContext.globalCheck((yyvsp[0].lex).loc, "patch");
  5978. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangTessControlMask | EShLangTessEvaluationMask), "patch");
  5979. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5980. (yyval.interm.type).qualifier.patch = true;
  5981. }
  5982. #line 6391 "MachineIndependent/glslang_tab.cpp"
  5983. break;
  5984. case 168: /* storage_qualifier: SAMPLE */
  5985. #line 1433 "MachineIndependent/glslang.y"
  5986. {
  5987. parseContext.globalCheck((yyvsp[0].lex).loc, "sample");
  5988. (yyval.interm.type).init((yyvsp[0].lex).loc);
  5989. (yyval.interm.type).qualifier.sample = true;
  5990. }
  5991. #line 6401 "MachineIndependent/glslang_tab.cpp"
  5992. break;
  5993. case 169: /* storage_qualifier: HITATTRNV */
  5994. #line 1438 "MachineIndependent/glslang.y"
  5995. {
  5996. parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeNV");
  5997. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
  5998. | EShLangAnyHitMask), "hitAttributeNV");
  5999. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "hitAttributeNV");
  6000. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6001. (yyval.interm.type).qualifier.storage = EvqHitAttr;
  6002. }
  6003. #line 6414 "MachineIndependent/glslang_tab.cpp"
  6004. break;
  6005. case 170: /* storage_qualifier: HITATTREXT */
  6006. #line 1446 "MachineIndependent/glslang.y"
  6007. {
  6008. parseContext.globalCheck((yyvsp[0].lex).loc, "hitAttributeEXT");
  6009. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangIntersectMask | EShLangClosestHitMask
  6010. | EShLangAnyHitMask), "hitAttributeEXT");
  6011. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "hitAttributeNV");
  6012. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6013. (yyval.interm.type).qualifier.storage = EvqHitAttr;
  6014. }
  6015. #line 6427 "MachineIndependent/glslang_tab.cpp"
  6016. break;
  6017. case 171: /* storage_qualifier: PAYLOADNV */
  6018. #line 1454 "MachineIndependent/glslang.y"
  6019. {
  6020. parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadNV");
  6021. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
  6022. EShLangAnyHitMask | EShLangMissMask), "rayPayloadNV");
  6023. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadNV");
  6024. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6025. (yyval.interm.type).qualifier.storage = EvqPayload;
  6026. }
  6027. #line 6440 "MachineIndependent/glslang_tab.cpp"
  6028. break;
  6029. case 172: /* storage_qualifier: PAYLOADEXT */
  6030. #line 1462 "MachineIndependent/glslang.y"
  6031. {
  6032. parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadEXT");
  6033. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask | EShLangClosestHitMask |
  6034. EShLangAnyHitMask | EShLangMissMask), "rayPayloadEXT");
  6035. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadEXT");
  6036. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6037. (yyval.interm.type).qualifier.storage = EvqPayload;
  6038. }
  6039. #line 6453 "MachineIndependent/glslang_tab.cpp"
  6040. break;
  6041. case 173: /* storage_qualifier: PAYLOADINNV */
  6042. #line 1470 "MachineIndependent/glslang.y"
  6043. {
  6044. parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInNV");
  6045. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
  6046. EShLangAnyHitMask | EShLangMissMask), "rayPayloadInNV");
  6047. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "rayPayloadInNV");
  6048. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6049. (yyval.interm.type).qualifier.storage = EvqPayloadIn;
  6050. }
  6051. #line 6466 "MachineIndependent/glslang_tab.cpp"
  6052. break;
  6053. case 174: /* storage_qualifier: PAYLOADINEXT */
  6054. #line 1478 "MachineIndependent/glslang.y"
  6055. {
  6056. parseContext.globalCheck((yyvsp[0].lex).loc, "rayPayloadInEXT");
  6057. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangClosestHitMask |
  6058. EShLangAnyHitMask | EShLangMissMask), "rayPayloadInEXT");
  6059. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "rayPayloadInEXT");
  6060. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6061. (yyval.interm.type).qualifier.storage = EvqPayloadIn;
  6062. }
  6063. #line 6479 "MachineIndependent/glslang_tab.cpp"
  6064. break;
  6065. case 175: /* storage_qualifier: CALLDATANV */
  6066. #line 1486 "MachineIndependent/glslang.y"
  6067. {
  6068. parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataNV");
  6069. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
  6070. EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataNV");
  6071. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataNV");
  6072. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6073. (yyval.interm.type).qualifier.storage = EvqCallableData;
  6074. }
  6075. #line 6492 "MachineIndependent/glslang_tab.cpp"
  6076. break;
  6077. case 176: /* storage_qualifier: CALLDATAEXT */
  6078. #line 1494 "MachineIndependent/glslang.y"
  6079. {
  6080. parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataEXT");
  6081. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangRayGenMask |
  6082. EShLangClosestHitMask | EShLangMissMask | EShLangCallableMask), "callableDataEXT");
  6083. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataEXT");
  6084. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6085. (yyval.interm.type).qualifier.storage = EvqCallableData;
  6086. }
  6087. #line 6505 "MachineIndependent/glslang_tab.cpp"
  6088. break;
  6089. case 177: /* storage_qualifier: CALLDATAINNV */
  6090. #line 1502 "MachineIndependent/glslang.y"
  6091. {
  6092. parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInNV");
  6093. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInNV");
  6094. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_NV_ray_tracing, "callableDataInNV");
  6095. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6096. (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
  6097. }
  6098. #line 6517 "MachineIndependent/glslang_tab.cpp"
  6099. break;
  6100. case 178: /* storage_qualifier: CALLDATAINEXT */
  6101. #line 1509 "MachineIndependent/glslang.y"
  6102. {
  6103. parseContext.globalCheck((yyvsp[0].lex).loc, "callableDataInEXT");
  6104. parseContext.requireStage((yyvsp[0].lex).loc, (EShLanguageMask)(EShLangCallableMask), "callableDataInEXT");
  6105. parseContext.profileRequires((yyvsp[0].lex).loc, ECoreProfile, 460, E_GL_EXT_ray_tracing, "callableDataInEXT");
  6106. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6107. (yyval.interm.type).qualifier.storage = EvqCallableDataIn;
  6108. }
  6109. #line 6529 "MachineIndependent/glslang_tab.cpp"
  6110. break;
  6111. case 179: /* storage_qualifier: COHERENT */
  6112. #line 1516 "MachineIndependent/glslang.y"
  6113. {
  6114. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6115. (yyval.interm.type).qualifier.coherent = true;
  6116. }
  6117. #line 6538 "MachineIndependent/glslang_tab.cpp"
  6118. break;
  6119. case 180: /* storage_qualifier: DEVICECOHERENT */
  6120. #line 1520 "MachineIndependent/glslang.y"
  6121. {
  6122. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6123. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "devicecoherent");
  6124. (yyval.interm.type).qualifier.devicecoherent = true;
  6125. }
  6126. #line 6548 "MachineIndependent/glslang_tab.cpp"
  6127. break;
  6128. case 181: /* storage_qualifier: QUEUEFAMILYCOHERENT */
  6129. #line 1525 "MachineIndependent/glslang.y"
  6130. {
  6131. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6132. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "queuefamilycoherent");
  6133. (yyval.interm.type).qualifier.queuefamilycoherent = true;
  6134. }
  6135. #line 6558 "MachineIndependent/glslang_tab.cpp"
  6136. break;
  6137. case 182: /* storage_qualifier: WORKGROUPCOHERENT */
  6138. #line 1530 "MachineIndependent/glslang.y"
  6139. {
  6140. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6141. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "workgroupcoherent");
  6142. (yyval.interm.type).qualifier.workgroupcoherent = true;
  6143. }
  6144. #line 6568 "MachineIndependent/glslang_tab.cpp"
  6145. break;
  6146. case 183: /* storage_qualifier: SUBGROUPCOHERENT */
  6147. #line 1535 "MachineIndependent/glslang.y"
  6148. {
  6149. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6150. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "subgroupcoherent");
  6151. (yyval.interm.type).qualifier.subgroupcoherent = true;
  6152. }
  6153. #line 6578 "MachineIndependent/glslang_tab.cpp"
  6154. break;
  6155. case 184: /* storage_qualifier: NONPRIVATE */
  6156. #line 1540 "MachineIndependent/glslang.y"
  6157. {
  6158. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6159. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_KHR_memory_scope_semantics, "nonprivate");
  6160. (yyval.interm.type).qualifier.nonprivate = true;
  6161. }
  6162. #line 6588 "MachineIndependent/glslang_tab.cpp"
  6163. break;
  6164. case 185: /* storage_qualifier: SHADERCALLCOHERENT */
  6165. #line 1545 "MachineIndependent/glslang.y"
  6166. {
  6167. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6168. parseContext.requireExtensions((yyvsp[0].lex).loc, 1, &E_GL_EXT_ray_tracing, "shadercallcoherent");
  6169. (yyval.interm.type).qualifier.shadercallcoherent = true;
  6170. }
  6171. #line 6598 "MachineIndependent/glslang_tab.cpp"
  6172. break;
  6173. case 186: /* storage_qualifier: VOLATILE */
  6174. #line 1550 "MachineIndependent/glslang.y"
  6175. {
  6176. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6177. (yyval.interm.type).qualifier.volatil = true;
  6178. }
  6179. #line 6607 "MachineIndependent/glslang_tab.cpp"
  6180. break;
  6181. case 187: /* storage_qualifier: RESTRICT */
  6182. #line 1554 "MachineIndependent/glslang.y"
  6183. {
  6184. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6185. (yyval.interm.type).qualifier.restrict = true;
  6186. }
  6187. #line 6616 "MachineIndependent/glslang_tab.cpp"
  6188. break;
  6189. case 188: /* storage_qualifier: READONLY */
  6190. #line 1558 "MachineIndependent/glslang.y"
  6191. {
  6192. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6193. (yyval.interm.type).qualifier.readonly = true;
  6194. }
  6195. #line 6625 "MachineIndependent/glslang_tab.cpp"
  6196. break;
  6197. case 189: /* storage_qualifier: WRITEONLY */
  6198. #line 1562 "MachineIndependent/glslang.y"
  6199. {
  6200. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6201. (yyval.interm.type).qualifier.writeonly = true;
  6202. }
  6203. #line 6634 "MachineIndependent/glslang_tab.cpp"
  6204. break;
  6205. case 190: /* storage_qualifier: SUBROUTINE */
  6206. #line 1566 "MachineIndependent/glslang.y"
  6207. {
  6208. parseContext.spvRemoved((yyvsp[0].lex).loc, "subroutine");
  6209. parseContext.globalCheck((yyvsp[0].lex).loc, "subroutine");
  6210. parseContext.unimplemented((yyvsp[0].lex).loc, "subroutine");
  6211. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6212. }
  6213. #line 6645 "MachineIndependent/glslang_tab.cpp"
  6214. break;
  6215. case 191: /* storage_qualifier: SUBROUTINE LEFT_PAREN type_name_list RIGHT_PAREN */
  6216. #line 1572 "MachineIndependent/glslang.y"
  6217. {
  6218. parseContext.spvRemoved((yyvsp[-3].lex).loc, "subroutine");
  6219. parseContext.globalCheck((yyvsp[-3].lex).loc, "subroutine");
  6220. parseContext.unimplemented((yyvsp[-3].lex).loc, "subroutine");
  6221. (yyval.interm.type).init((yyvsp[-3].lex).loc);
  6222. }
  6223. #line 6656 "MachineIndependent/glslang_tab.cpp"
  6224. break;
  6225. case 192: /* non_uniform_qualifier: NONUNIFORM */
  6226. #line 1583 "MachineIndependent/glslang.y"
  6227. {
  6228. (yyval.interm.type).init((yyvsp[0].lex).loc);
  6229. (yyval.interm.type).qualifier.nonUniform = true;
  6230. }
  6231. #line 6665 "MachineIndependent/glslang_tab.cpp"
  6232. break;
  6233. case 193: /* type_name_list: IDENTIFIER */
  6234. #line 1590 "MachineIndependent/glslang.y"
  6235. {
  6236. // TODO
  6237. }
  6238. #line 6673 "MachineIndependent/glslang_tab.cpp"
  6239. break;
  6240. case 194: /* type_name_list: type_name_list COMMA IDENTIFIER */
  6241. #line 1593 "MachineIndependent/glslang.y"
  6242. {
  6243. // TODO: 4.0 semantics: subroutines
  6244. // 1) make sure each identifier is a type declared earlier with SUBROUTINE
  6245. // 2) save all of the identifiers for future comparison with the declared function
  6246. }
  6247. #line 6683 "MachineIndependent/glslang_tab.cpp"
  6248. break;
  6249. case 195: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt */
  6250. #line 1602 "MachineIndependent/glslang.y"
  6251. {
  6252. (yyval.interm.type) = (yyvsp[-1].interm.type);
  6253. (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
  6254. (yyval.interm.type).typeParameters = (yyvsp[0].interm.typeParameters);
  6255. }
  6256. #line 6693 "MachineIndependent/glslang_tab.cpp"
  6257. break;
  6258. case 196: /* type_specifier: type_specifier_nonarray type_parameter_specifier_opt array_specifier */
  6259. #line 1607 "MachineIndependent/glslang.y"
  6260. {
  6261. parseContext.arrayOfArrayVersionCheck((yyvsp[0].interm).loc, (yyvsp[0].interm).arraySizes);
  6262. (yyval.interm.type) = (yyvsp[-2].interm.type);
  6263. (yyval.interm.type).qualifier.precision = parseContext.getDefaultPrecision((yyval.interm.type));
  6264. (yyval.interm.type).typeParameters = (yyvsp[-1].interm.typeParameters);
  6265. (yyval.interm.type).arraySizes = (yyvsp[0].interm).arraySizes;
  6266. }
  6267. #line 6705 "MachineIndependent/glslang_tab.cpp"
  6268. break;
  6269. case 197: /* array_specifier: LEFT_BRACKET RIGHT_BRACKET */
  6270. #line 1617 "MachineIndependent/glslang.y"
  6271. {
  6272. (yyval.interm).loc = (yyvsp[-1].lex).loc;
  6273. (yyval.interm).arraySizes = new TArraySizes;
  6274. (yyval.interm).arraySizes->addInnerSize();
  6275. }
  6276. #line 6715 "MachineIndependent/glslang_tab.cpp"
  6277. break;
  6278. case 198: /* array_specifier: LEFT_BRACKET conditional_expression RIGHT_BRACKET */
  6279. #line 1622 "MachineIndependent/glslang.y"
  6280. {
  6281. (yyval.interm).loc = (yyvsp[-2].lex).loc;
  6282. (yyval.interm).arraySizes = new TArraySizes;
  6283. TArraySize size;
  6284. parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
  6285. (yyval.interm).arraySizes->addInnerSize(size);
  6286. }
  6287. #line 6728 "MachineIndependent/glslang_tab.cpp"
  6288. break;
  6289. case 199: /* array_specifier: array_specifier LEFT_BRACKET RIGHT_BRACKET */
  6290. #line 1630 "MachineIndependent/glslang.y"
  6291. {
  6292. (yyval.interm) = (yyvsp[-2].interm);
  6293. (yyval.interm).arraySizes->addInnerSize();
  6294. }
  6295. #line 6737 "MachineIndependent/glslang_tab.cpp"
  6296. break;
  6297. case 200: /* array_specifier: array_specifier LEFT_BRACKET conditional_expression RIGHT_BRACKET */
  6298. #line 1634 "MachineIndependent/glslang.y"
  6299. {
  6300. (yyval.interm) = (yyvsp[-3].interm);
  6301. TArraySize size;
  6302. parseContext.arraySizeCheck((yyvsp[-1].interm.intermTypedNode)->getLoc(), (yyvsp[-1].interm.intermTypedNode), size, "array size");
  6303. (yyval.interm).arraySizes->addInnerSize(size);
  6304. }
  6305. #line 6749 "MachineIndependent/glslang_tab.cpp"
  6306. break;
  6307. case 201: /* type_parameter_specifier_opt: type_parameter_specifier */
  6308. #line 1644 "MachineIndependent/glslang.y"
  6309. {
  6310. (yyval.interm.typeParameters) = (yyvsp[0].interm.typeParameters);
  6311. }
  6312. #line 6757 "MachineIndependent/glslang_tab.cpp"
  6313. break;
  6314. case 202: /* type_parameter_specifier_opt: %empty */
  6315. #line 1647 "MachineIndependent/glslang.y"
  6316. {
  6317. (yyval.interm.typeParameters) = 0;
  6318. }
  6319. #line 6765 "MachineIndependent/glslang_tab.cpp"
  6320. break;
  6321. case 203: /* type_parameter_specifier: LEFT_ANGLE type_parameter_specifier_list RIGHT_ANGLE */
  6322. #line 1653 "MachineIndependent/glslang.y"
  6323. {
  6324. (yyval.interm.typeParameters) = (yyvsp[-1].interm.typeParameters);
  6325. }
  6326. #line 6773 "MachineIndependent/glslang_tab.cpp"
  6327. break;
  6328. case 204: /* type_parameter_specifier_list: unary_expression */
  6329. #line 1659 "MachineIndependent/glslang.y"
  6330. {
  6331. (yyval.interm.typeParameters) = new TArraySizes;
  6332. TArraySize size;
  6333. parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
  6334. (yyval.interm.typeParameters)->addInnerSize(size);
  6335. }
  6336. #line 6785 "MachineIndependent/glslang_tab.cpp"
  6337. break;
  6338. case 205: /* type_parameter_specifier_list: type_parameter_specifier_list COMMA unary_expression */
  6339. #line 1666 "MachineIndependent/glslang.y"
  6340. {
  6341. (yyval.interm.typeParameters) = (yyvsp[-2].interm.typeParameters);
  6342. TArraySize size;
  6343. parseContext.arraySizeCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode), size, "type parameter");
  6344. (yyval.interm.typeParameters)->addInnerSize(size);
  6345. }
  6346. #line 6797 "MachineIndependent/glslang_tab.cpp"
  6347. break;
  6348. case 206: /* type_specifier_nonarray: VOID */
  6349. #line 1676 "MachineIndependent/glslang.y"
  6350. {
  6351. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6352. (yyval.interm.type).basicType = EbtVoid;
  6353. }
  6354. #line 6806 "MachineIndependent/glslang_tab.cpp"
  6355. break;
  6356. case 207: /* type_specifier_nonarray: FLOAT */
  6357. #line 1680 "MachineIndependent/glslang.y"
  6358. {
  6359. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6360. (yyval.interm.type).basicType = EbtFloat;
  6361. }
  6362. #line 6815 "MachineIndependent/glslang_tab.cpp"
  6363. break;
  6364. case 208: /* type_specifier_nonarray: INT */
  6365. #line 1684 "MachineIndependent/glslang.y"
  6366. {
  6367. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6368. (yyval.interm.type).basicType = EbtInt;
  6369. }
  6370. #line 6824 "MachineIndependent/glslang_tab.cpp"
  6371. break;
  6372. case 209: /* type_specifier_nonarray: UINT */
  6373. #line 1688 "MachineIndependent/glslang.y"
  6374. {
  6375. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer");
  6376. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6377. (yyval.interm.type).basicType = EbtUint;
  6378. }
  6379. #line 6834 "MachineIndependent/glslang_tab.cpp"
  6380. break;
  6381. case 210: /* type_specifier_nonarray: BOOL */
  6382. #line 1693 "MachineIndependent/glslang.y"
  6383. {
  6384. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6385. (yyval.interm.type).basicType = EbtBool;
  6386. }
  6387. #line 6843 "MachineIndependent/glslang_tab.cpp"
  6388. break;
  6389. case 211: /* type_specifier_nonarray: VEC2 */
  6390. #line 1697 "MachineIndependent/glslang.y"
  6391. {
  6392. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6393. (yyval.interm.type).basicType = EbtFloat;
  6394. (yyval.interm.type).setVector(2);
  6395. }
  6396. #line 6853 "MachineIndependent/glslang_tab.cpp"
  6397. break;
  6398. case 212: /* type_specifier_nonarray: VEC3 */
  6399. #line 1702 "MachineIndependent/glslang.y"
  6400. {
  6401. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6402. (yyval.interm.type).basicType = EbtFloat;
  6403. (yyval.interm.type).setVector(3);
  6404. }
  6405. #line 6863 "MachineIndependent/glslang_tab.cpp"
  6406. break;
  6407. case 213: /* type_specifier_nonarray: VEC4 */
  6408. #line 1707 "MachineIndependent/glslang.y"
  6409. {
  6410. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6411. (yyval.interm.type).basicType = EbtFloat;
  6412. (yyval.interm.type).setVector(4);
  6413. }
  6414. #line 6873 "MachineIndependent/glslang_tab.cpp"
  6415. break;
  6416. case 214: /* type_specifier_nonarray: BVEC2 */
  6417. #line 1712 "MachineIndependent/glslang.y"
  6418. {
  6419. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6420. (yyval.interm.type).basicType = EbtBool;
  6421. (yyval.interm.type).setVector(2);
  6422. }
  6423. #line 6883 "MachineIndependent/glslang_tab.cpp"
  6424. break;
  6425. case 215: /* type_specifier_nonarray: BVEC3 */
  6426. #line 1717 "MachineIndependent/glslang.y"
  6427. {
  6428. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6429. (yyval.interm.type).basicType = EbtBool;
  6430. (yyval.interm.type).setVector(3);
  6431. }
  6432. #line 6893 "MachineIndependent/glslang_tab.cpp"
  6433. break;
  6434. case 216: /* type_specifier_nonarray: BVEC4 */
  6435. #line 1722 "MachineIndependent/glslang.y"
  6436. {
  6437. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6438. (yyval.interm.type).basicType = EbtBool;
  6439. (yyval.interm.type).setVector(4);
  6440. }
  6441. #line 6903 "MachineIndependent/glslang_tab.cpp"
  6442. break;
  6443. case 217: /* type_specifier_nonarray: IVEC2 */
  6444. #line 1727 "MachineIndependent/glslang.y"
  6445. {
  6446. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6447. (yyval.interm.type).basicType = EbtInt;
  6448. (yyval.interm.type).setVector(2);
  6449. }
  6450. #line 6913 "MachineIndependent/glslang_tab.cpp"
  6451. break;
  6452. case 218: /* type_specifier_nonarray: IVEC3 */
  6453. #line 1732 "MachineIndependent/glslang.y"
  6454. {
  6455. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6456. (yyval.interm.type).basicType = EbtInt;
  6457. (yyval.interm.type).setVector(3);
  6458. }
  6459. #line 6923 "MachineIndependent/glslang_tab.cpp"
  6460. break;
  6461. case 219: /* type_specifier_nonarray: IVEC4 */
  6462. #line 1737 "MachineIndependent/glslang.y"
  6463. {
  6464. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6465. (yyval.interm.type).basicType = EbtInt;
  6466. (yyval.interm.type).setVector(4);
  6467. }
  6468. #line 6933 "MachineIndependent/glslang_tab.cpp"
  6469. break;
  6470. case 220: /* type_specifier_nonarray: UVEC2 */
  6471. #line 1742 "MachineIndependent/glslang.y"
  6472. {
  6473. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
  6474. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6475. (yyval.interm.type).basicType = EbtUint;
  6476. (yyval.interm.type).setVector(2);
  6477. }
  6478. #line 6944 "MachineIndependent/glslang_tab.cpp"
  6479. break;
  6480. case 221: /* type_specifier_nonarray: UVEC3 */
  6481. #line 1748 "MachineIndependent/glslang.y"
  6482. {
  6483. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
  6484. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6485. (yyval.interm.type).basicType = EbtUint;
  6486. (yyval.interm.type).setVector(3);
  6487. }
  6488. #line 6955 "MachineIndependent/glslang_tab.cpp"
  6489. break;
  6490. case 222: /* type_specifier_nonarray: UVEC4 */
  6491. #line 1754 "MachineIndependent/glslang.y"
  6492. {
  6493. parseContext.fullIntegerCheck((yyvsp[0].lex).loc, "unsigned integer vector");
  6494. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6495. (yyval.interm.type).basicType = EbtUint;
  6496. (yyval.interm.type).setVector(4);
  6497. }
  6498. #line 6966 "MachineIndependent/glslang_tab.cpp"
  6499. break;
  6500. case 223: /* type_specifier_nonarray: MAT2 */
  6501. #line 1760 "MachineIndependent/glslang.y"
  6502. {
  6503. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6504. (yyval.interm.type).basicType = EbtFloat;
  6505. (yyval.interm.type).setMatrix(2, 2);
  6506. }
  6507. #line 6976 "MachineIndependent/glslang_tab.cpp"
  6508. break;
  6509. case 224: /* type_specifier_nonarray: MAT3 */
  6510. #line 1765 "MachineIndependent/glslang.y"
  6511. {
  6512. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6513. (yyval.interm.type).basicType = EbtFloat;
  6514. (yyval.interm.type).setMatrix(3, 3);
  6515. }
  6516. #line 6986 "MachineIndependent/glslang_tab.cpp"
  6517. break;
  6518. case 225: /* type_specifier_nonarray: MAT4 */
  6519. #line 1770 "MachineIndependent/glslang.y"
  6520. {
  6521. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6522. (yyval.interm.type).basicType = EbtFloat;
  6523. (yyval.interm.type).setMatrix(4, 4);
  6524. }
  6525. #line 6996 "MachineIndependent/glslang_tab.cpp"
  6526. break;
  6527. case 226: /* type_specifier_nonarray: MAT2X2 */
  6528. #line 1775 "MachineIndependent/glslang.y"
  6529. {
  6530. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6531. (yyval.interm.type).basicType = EbtFloat;
  6532. (yyval.interm.type).setMatrix(2, 2);
  6533. }
  6534. #line 7006 "MachineIndependent/glslang_tab.cpp"
  6535. break;
  6536. case 227: /* type_specifier_nonarray: MAT2X3 */
  6537. #line 1780 "MachineIndependent/glslang.y"
  6538. {
  6539. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6540. (yyval.interm.type).basicType = EbtFloat;
  6541. (yyval.interm.type).setMatrix(2, 3);
  6542. }
  6543. #line 7016 "MachineIndependent/glslang_tab.cpp"
  6544. break;
  6545. case 228: /* type_specifier_nonarray: MAT2X4 */
  6546. #line 1785 "MachineIndependent/glslang.y"
  6547. {
  6548. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6549. (yyval.interm.type).basicType = EbtFloat;
  6550. (yyval.interm.type).setMatrix(2, 4);
  6551. }
  6552. #line 7026 "MachineIndependent/glslang_tab.cpp"
  6553. break;
  6554. case 229: /* type_specifier_nonarray: MAT3X2 */
  6555. #line 1790 "MachineIndependent/glslang.y"
  6556. {
  6557. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6558. (yyval.interm.type).basicType = EbtFloat;
  6559. (yyval.interm.type).setMatrix(3, 2);
  6560. }
  6561. #line 7036 "MachineIndependent/glslang_tab.cpp"
  6562. break;
  6563. case 230: /* type_specifier_nonarray: MAT3X3 */
  6564. #line 1795 "MachineIndependent/glslang.y"
  6565. {
  6566. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6567. (yyval.interm.type).basicType = EbtFloat;
  6568. (yyval.interm.type).setMatrix(3, 3);
  6569. }
  6570. #line 7046 "MachineIndependent/glslang_tab.cpp"
  6571. break;
  6572. case 231: /* type_specifier_nonarray: MAT3X4 */
  6573. #line 1800 "MachineIndependent/glslang.y"
  6574. {
  6575. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6576. (yyval.interm.type).basicType = EbtFloat;
  6577. (yyval.interm.type).setMatrix(3, 4);
  6578. }
  6579. #line 7056 "MachineIndependent/glslang_tab.cpp"
  6580. break;
  6581. case 232: /* type_specifier_nonarray: MAT4X2 */
  6582. #line 1805 "MachineIndependent/glslang.y"
  6583. {
  6584. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6585. (yyval.interm.type).basicType = EbtFloat;
  6586. (yyval.interm.type).setMatrix(4, 2);
  6587. }
  6588. #line 7066 "MachineIndependent/glslang_tab.cpp"
  6589. break;
  6590. case 233: /* type_specifier_nonarray: MAT4X3 */
  6591. #line 1810 "MachineIndependent/glslang.y"
  6592. {
  6593. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6594. (yyval.interm.type).basicType = EbtFloat;
  6595. (yyval.interm.type).setMatrix(4, 3);
  6596. }
  6597. #line 7076 "MachineIndependent/glslang_tab.cpp"
  6598. break;
  6599. case 234: /* type_specifier_nonarray: MAT4X4 */
  6600. #line 1815 "MachineIndependent/glslang.y"
  6601. {
  6602. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6603. (yyval.interm.type).basicType = EbtFloat;
  6604. (yyval.interm.type).setMatrix(4, 4);
  6605. }
  6606. #line 7086 "MachineIndependent/glslang_tab.cpp"
  6607. break;
  6608. case 235: /* type_specifier_nonarray: DOUBLE */
  6609. #line 1821 "MachineIndependent/glslang.y"
  6610. {
  6611. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double");
  6612. if (! parseContext.symbolTable.atBuiltInLevel())
  6613. parseContext.doubleCheck((yyvsp[0].lex).loc, "double");
  6614. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6615. (yyval.interm.type).basicType = EbtDouble;
  6616. }
  6617. #line 7098 "MachineIndependent/glslang_tab.cpp"
  6618. break;
  6619. case 236: /* type_specifier_nonarray: FLOAT16_T */
  6620. #line 1828 "MachineIndependent/glslang.y"
  6621. {
  6622. parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "float16_t", parseContext.symbolTable.atBuiltInLevel());
  6623. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6624. (yyval.interm.type).basicType = EbtFloat16;
  6625. }
  6626. #line 7108 "MachineIndependent/glslang_tab.cpp"
  6627. break;
  6628. case 237: /* type_specifier_nonarray: FLOAT32_T */
  6629. #line 1833 "MachineIndependent/glslang.y"
  6630. {
  6631. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t", parseContext.symbolTable.atBuiltInLevel());
  6632. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6633. (yyval.interm.type).basicType = EbtFloat;
  6634. }
  6635. #line 7118 "MachineIndependent/glslang_tab.cpp"
  6636. break;
  6637. case 238: /* type_specifier_nonarray: FLOAT64_T */
  6638. #line 1838 "MachineIndependent/glslang.y"
  6639. {
  6640. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t", parseContext.symbolTable.atBuiltInLevel());
  6641. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6642. (yyval.interm.type).basicType = EbtDouble;
  6643. }
  6644. #line 7128 "MachineIndependent/glslang_tab.cpp"
  6645. break;
  6646. case 239: /* type_specifier_nonarray: INT8_T */
  6647. #line 1843 "MachineIndependent/glslang.y"
  6648. {
  6649. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
  6650. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6651. (yyval.interm.type).basicType = EbtInt8;
  6652. }
  6653. #line 7138 "MachineIndependent/glslang_tab.cpp"
  6654. break;
  6655. case 240: /* type_specifier_nonarray: UINT8_T */
  6656. #line 1848 "MachineIndependent/glslang.y"
  6657. {
  6658. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
  6659. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6660. (yyval.interm.type).basicType = EbtUint8;
  6661. }
  6662. #line 7148 "MachineIndependent/glslang_tab.cpp"
  6663. break;
  6664. case 241: /* type_specifier_nonarray: INT16_T */
  6665. #line 1853 "MachineIndependent/glslang.y"
  6666. {
  6667. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
  6668. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6669. (yyval.interm.type).basicType = EbtInt16;
  6670. }
  6671. #line 7158 "MachineIndependent/glslang_tab.cpp"
  6672. break;
  6673. case 242: /* type_specifier_nonarray: UINT16_T */
  6674. #line 1858 "MachineIndependent/glslang.y"
  6675. {
  6676. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
  6677. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6678. (yyval.interm.type).basicType = EbtUint16;
  6679. }
  6680. #line 7168 "MachineIndependent/glslang_tab.cpp"
  6681. break;
  6682. case 243: /* type_specifier_nonarray: INT32_T */
  6683. #line 1863 "MachineIndependent/glslang.y"
  6684. {
  6685. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer", parseContext.symbolTable.atBuiltInLevel());
  6686. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6687. (yyval.interm.type).basicType = EbtInt;
  6688. }
  6689. #line 7178 "MachineIndependent/glslang_tab.cpp"
  6690. break;
  6691. case 244: /* type_specifier_nonarray: UINT32_T */
  6692. #line 1868 "MachineIndependent/glslang.y"
  6693. {
  6694. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
  6695. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6696. (yyval.interm.type).basicType = EbtUint;
  6697. }
  6698. #line 7188 "MachineIndependent/glslang_tab.cpp"
  6699. break;
  6700. case 245: /* type_specifier_nonarray: INT64_T */
  6701. #line 1873 "MachineIndependent/glslang.y"
  6702. {
  6703. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer", parseContext.symbolTable.atBuiltInLevel());
  6704. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6705. (yyval.interm.type).basicType = EbtInt64;
  6706. }
  6707. #line 7198 "MachineIndependent/glslang_tab.cpp"
  6708. break;
  6709. case 246: /* type_specifier_nonarray: UINT64_T */
  6710. #line 1878 "MachineIndependent/glslang.y"
  6711. {
  6712. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer", parseContext.symbolTable.atBuiltInLevel());
  6713. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6714. (yyval.interm.type).basicType = EbtUint64;
  6715. }
  6716. #line 7208 "MachineIndependent/glslang_tab.cpp"
  6717. break;
  6718. case 247: /* type_specifier_nonarray: DVEC2 */
  6719. #line 1883 "MachineIndependent/glslang.y"
  6720. {
  6721. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
  6722. if (! parseContext.symbolTable.atBuiltInLevel())
  6723. parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
  6724. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6725. (yyval.interm.type).basicType = EbtDouble;
  6726. (yyval.interm.type).setVector(2);
  6727. }
  6728. #line 7221 "MachineIndependent/glslang_tab.cpp"
  6729. break;
  6730. case 248: /* type_specifier_nonarray: DVEC3 */
  6731. #line 1891 "MachineIndependent/glslang.y"
  6732. {
  6733. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
  6734. if (! parseContext.symbolTable.atBuiltInLevel())
  6735. parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
  6736. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6737. (yyval.interm.type).basicType = EbtDouble;
  6738. (yyval.interm.type).setVector(3);
  6739. }
  6740. #line 7234 "MachineIndependent/glslang_tab.cpp"
  6741. break;
  6742. case 249: /* type_specifier_nonarray: DVEC4 */
  6743. #line 1899 "MachineIndependent/glslang.y"
  6744. {
  6745. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double vector");
  6746. if (! parseContext.symbolTable.atBuiltInLevel())
  6747. parseContext.doubleCheck((yyvsp[0].lex).loc, "double vector");
  6748. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6749. (yyval.interm.type).basicType = EbtDouble;
  6750. (yyval.interm.type).setVector(4);
  6751. }
  6752. #line 7247 "MachineIndependent/glslang_tab.cpp"
  6753. break;
  6754. case 250: /* type_specifier_nonarray: F16VEC2 */
  6755. #line 1907 "MachineIndependent/glslang.y"
  6756. {
  6757. parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
  6758. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6759. (yyval.interm.type).basicType = EbtFloat16;
  6760. (yyval.interm.type).setVector(2);
  6761. }
  6762. #line 7258 "MachineIndependent/glslang_tab.cpp"
  6763. break;
  6764. case 251: /* type_specifier_nonarray: F16VEC3 */
  6765. #line 1913 "MachineIndependent/glslang.y"
  6766. {
  6767. parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
  6768. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6769. (yyval.interm.type).basicType = EbtFloat16;
  6770. (yyval.interm.type).setVector(3);
  6771. }
  6772. #line 7269 "MachineIndependent/glslang_tab.cpp"
  6773. break;
  6774. case 252: /* type_specifier_nonarray: F16VEC4 */
  6775. #line 1919 "MachineIndependent/glslang.y"
  6776. {
  6777. parseContext.float16ScalarVectorCheck((yyvsp[0].lex).loc, "half float vector", parseContext.symbolTable.atBuiltInLevel());
  6778. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6779. (yyval.interm.type).basicType = EbtFloat16;
  6780. (yyval.interm.type).setVector(4);
  6781. }
  6782. #line 7280 "MachineIndependent/glslang_tab.cpp"
  6783. break;
  6784. case 253: /* type_specifier_nonarray: F32VEC2 */
  6785. #line 1925 "MachineIndependent/glslang.y"
  6786. {
  6787. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
  6788. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6789. (yyval.interm.type).basicType = EbtFloat;
  6790. (yyval.interm.type).setVector(2);
  6791. }
  6792. #line 7291 "MachineIndependent/glslang_tab.cpp"
  6793. break;
  6794. case 254: /* type_specifier_nonarray: F32VEC3 */
  6795. #line 1931 "MachineIndependent/glslang.y"
  6796. {
  6797. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
  6798. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6799. (yyval.interm.type).basicType = EbtFloat;
  6800. (yyval.interm.type).setVector(3);
  6801. }
  6802. #line 7302 "MachineIndependent/glslang_tab.cpp"
  6803. break;
  6804. case 255: /* type_specifier_nonarray: F32VEC4 */
  6805. #line 1937 "MachineIndependent/glslang.y"
  6806. {
  6807. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t vector", parseContext.symbolTable.atBuiltInLevel());
  6808. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6809. (yyval.interm.type).basicType = EbtFloat;
  6810. (yyval.interm.type).setVector(4);
  6811. }
  6812. #line 7313 "MachineIndependent/glslang_tab.cpp"
  6813. break;
  6814. case 256: /* type_specifier_nonarray: F64VEC2 */
  6815. #line 1943 "MachineIndependent/glslang.y"
  6816. {
  6817. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
  6818. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6819. (yyval.interm.type).basicType = EbtDouble;
  6820. (yyval.interm.type).setVector(2);
  6821. }
  6822. #line 7324 "MachineIndependent/glslang_tab.cpp"
  6823. break;
  6824. case 257: /* type_specifier_nonarray: F64VEC3 */
  6825. #line 1949 "MachineIndependent/glslang.y"
  6826. {
  6827. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
  6828. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6829. (yyval.interm.type).basicType = EbtDouble;
  6830. (yyval.interm.type).setVector(3);
  6831. }
  6832. #line 7335 "MachineIndependent/glslang_tab.cpp"
  6833. break;
  6834. case 258: /* type_specifier_nonarray: F64VEC4 */
  6835. #line 1955 "MachineIndependent/glslang.y"
  6836. {
  6837. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t vector", parseContext.symbolTable.atBuiltInLevel());
  6838. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6839. (yyval.interm.type).basicType = EbtDouble;
  6840. (yyval.interm.type).setVector(4);
  6841. }
  6842. #line 7346 "MachineIndependent/glslang_tab.cpp"
  6843. break;
  6844. case 259: /* type_specifier_nonarray: I8VEC2 */
  6845. #line 1961 "MachineIndependent/glslang.y"
  6846. {
  6847. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6848. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6849. (yyval.interm.type).basicType = EbtInt8;
  6850. (yyval.interm.type).setVector(2);
  6851. }
  6852. #line 7357 "MachineIndependent/glslang_tab.cpp"
  6853. break;
  6854. case 260: /* type_specifier_nonarray: I8VEC3 */
  6855. #line 1967 "MachineIndependent/glslang.y"
  6856. {
  6857. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6858. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6859. (yyval.interm.type).basicType = EbtInt8;
  6860. (yyval.interm.type).setVector(3);
  6861. }
  6862. #line 7368 "MachineIndependent/glslang_tab.cpp"
  6863. break;
  6864. case 261: /* type_specifier_nonarray: I8VEC4 */
  6865. #line 1973 "MachineIndependent/glslang.y"
  6866. {
  6867. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6868. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6869. (yyval.interm.type).basicType = EbtInt8;
  6870. (yyval.interm.type).setVector(4);
  6871. }
  6872. #line 7379 "MachineIndependent/glslang_tab.cpp"
  6873. break;
  6874. case 262: /* type_specifier_nonarray: I16VEC2 */
  6875. #line 1979 "MachineIndependent/glslang.y"
  6876. {
  6877. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6878. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6879. (yyval.interm.type).basicType = EbtInt16;
  6880. (yyval.interm.type).setVector(2);
  6881. }
  6882. #line 7390 "MachineIndependent/glslang_tab.cpp"
  6883. break;
  6884. case 263: /* type_specifier_nonarray: I16VEC3 */
  6885. #line 1985 "MachineIndependent/glslang.y"
  6886. {
  6887. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6888. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6889. (yyval.interm.type).basicType = EbtInt16;
  6890. (yyval.interm.type).setVector(3);
  6891. }
  6892. #line 7401 "MachineIndependent/glslang_tab.cpp"
  6893. break;
  6894. case 264: /* type_specifier_nonarray: I16VEC4 */
  6895. #line 1991 "MachineIndependent/glslang.y"
  6896. {
  6897. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6898. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6899. (yyval.interm.type).basicType = EbtInt16;
  6900. (yyval.interm.type).setVector(4);
  6901. }
  6902. #line 7412 "MachineIndependent/glslang_tab.cpp"
  6903. break;
  6904. case 265: /* type_specifier_nonarray: I32VEC2 */
  6905. #line 1997 "MachineIndependent/glslang.y"
  6906. {
  6907. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6908. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6909. (yyval.interm.type).basicType = EbtInt;
  6910. (yyval.interm.type).setVector(2);
  6911. }
  6912. #line 7423 "MachineIndependent/glslang_tab.cpp"
  6913. break;
  6914. case 266: /* type_specifier_nonarray: I32VEC3 */
  6915. #line 2003 "MachineIndependent/glslang.y"
  6916. {
  6917. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6918. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6919. (yyval.interm.type).basicType = EbtInt;
  6920. (yyval.interm.type).setVector(3);
  6921. }
  6922. #line 7434 "MachineIndependent/glslang_tab.cpp"
  6923. break;
  6924. case 267: /* type_specifier_nonarray: I32VEC4 */
  6925. #line 2009 "MachineIndependent/glslang.y"
  6926. {
  6927. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit signed integer vector", parseContext.symbolTable.atBuiltInLevel());
  6928. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6929. (yyval.interm.type).basicType = EbtInt;
  6930. (yyval.interm.type).setVector(4);
  6931. }
  6932. #line 7445 "MachineIndependent/glslang_tab.cpp"
  6933. break;
  6934. case 268: /* type_specifier_nonarray: I64VEC2 */
  6935. #line 2015 "MachineIndependent/glslang.y"
  6936. {
  6937. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
  6938. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6939. (yyval.interm.type).basicType = EbtInt64;
  6940. (yyval.interm.type).setVector(2);
  6941. }
  6942. #line 7456 "MachineIndependent/glslang_tab.cpp"
  6943. break;
  6944. case 269: /* type_specifier_nonarray: I64VEC3 */
  6945. #line 2021 "MachineIndependent/glslang.y"
  6946. {
  6947. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
  6948. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6949. (yyval.interm.type).basicType = EbtInt64;
  6950. (yyval.interm.type).setVector(3);
  6951. }
  6952. #line 7467 "MachineIndependent/glslang_tab.cpp"
  6953. break;
  6954. case 270: /* type_specifier_nonarray: I64VEC4 */
  6955. #line 2027 "MachineIndependent/glslang.y"
  6956. {
  6957. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit integer vector", parseContext.symbolTable.atBuiltInLevel());
  6958. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6959. (yyval.interm.type).basicType = EbtInt64;
  6960. (yyval.interm.type).setVector(4);
  6961. }
  6962. #line 7478 "MachineIndependent/glslang_tab.cpp"
  6963. break;
  6964. case 271: /* type_specifier_nonarray: U8VEC2 */
  6965. #line 2033 "MachineIndependent/glslang.y"
  6966. {
  6967. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  6968. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6969. (yyval.interm.type).basicType = EbtUint8;
  6970. (yyval.interm.type).setVector(2);
  6971. }
  6972. #line 7489 "MachineIndependent/glslang_tab.cpp"
  6973. break;
  6974. case 272: /* type_specifier_nonarray: U8VEC3 */
  6975. #line 2039 "MachineIndependent/glslang.y"
  6976. {
  6977. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  6978. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6979. (yyval.interm.type).basicType = EbtUint8;
  6980. (yyval.interm.type).setVector(3);
  6981. }
  6982. #line 7500 "MachineIndependent/glslang_tab.cpp"
  6983. break;
  6984. case 273: /* type_specifier_nonarray: U8VEC4 */
  6985. #line 2045 "MachineIndependent/glslang.y"
  6986. {
  6987. parseContext.int8ScalarVectorCheck((yyvsp[0].lex).loc, "8-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  6988. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6989. (yyval.interm.type).basicType = EbtUint8;
  6990. (yyval.interm.type).setVector(4);
  6991. }
  6992. #line 7511 "MachineIndependent/glslang_tab.cpp"
  6993. break;
  6994. case 274: /* type_specifier_nonarray: U16VEC2 */
  6995. #line 2051 "MachineIndependent/glslang.y"
  6996. {
  6997. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  6998. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  6999. (yyval.interm.type).basicType = EbtUint16;
  7000. (yyval.interm.type).setVector(2);
  7001. }
  7002. #line 7522 "MachineIndependent/glslang_tab.cpp"
  7003. break;
  7004. case 275: /* type_specifier_nonarray: U16VEC3 */
  7005. #line 2057 "MachineIndependent/glslang.y"
  7006. {
  7007. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7008. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7009. (yyval.interm.type).basicType = EbtUint16;
  7010. (yyval.interm.type).setVector(3);
  7011. }
  7012. #line 7533 "MachineIndependent/glslang_tab.cpp"
  7013. break;
  7014. case 276: /* type_specifier_nonarray: U16VEC4 */
  7015. #line 2063 "MachineIndependent/glslang.y"
  7016. {
  7017. parseContext.int16ScalarVectorCheck((yyvsp[0].lex).loc, "16-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7018. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7019. (yyval.interm.type).basicType = EbtUint16;
  7020. (yyval.interm.type).setVector(4);
  7021. }
  7022. #line 7544 "MachineIndependent/glslang_tab.cpp"
  7023. break;
  7024. case 277: /* type_specifier_nonarray: U32VEC2 */
  7025. #line 2069 "MachineIndependent/glslang.y"
  7026. {
  7027. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7028. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7029. (yyval.interm.type).basicType = EbtUint;
  7030. (yyval.interm.type).setVector(2);
  7031. }
  7032. #line 7555 "MachineIndependent/glslang_tab.cpp"
  7033. break;
  7034. case 278: /* type_specifier_nonarray: U32VEC3 */
  7035. #line 2075 "MachineIndependent/glslang.y"
  7036. {
  7037. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7038. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7039. (yyval.interm.type).basicType = EbtUint;
  7040. (yyval.interm.type).setVector(3);
  7041. }
  7042. #line 7566 "MachineIndependent/glslang_tab.cpp"
  7043. break;
  7044. case 279: /* type_specifier_nonarray: U32VEC4 */
  7045. #line 2081 "MachineIndependent/glslang.y"
  7046. {
  7047. parseContext.explicitInt32Check((yyvsp[0].lex).loc, "32-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7048. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7049. (yyval.interm.type).basicType = EbtUint;
  7050. (yyval.interm.type).setVector(4);
  7051. }
  7052. #line 7577 "MachineIndependent/glslang_tab.cpp"
  7053. break;
  7054. case 280: /* type_specifier_nonarray: U64VEC2 */
  7055. #line 2087 "MachineIndependent/glslang.y"
  7056. {
  7057. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7058. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7059. (yyval.interm.type).basicType = EbtUint64;
  7060. (yyval.interm.type).setVector(2);
  7061. }
  7062. #line 7588 "MachineIndependent/glslang_tab.cpp"
  7063. break;
  7064. case 281: /* type_specifier_nonarray: U64VEC3 */
  7065. #line 2093 "MachineIndependent/glslang.y"
  7066. {
  7067. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7068. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7069. (yyval.interm.type).basicType = EbtUint64;
  7070. (yyval.interm.type).setVector(3);
  7071. }
  7072. #line 7599 "MachineIndependent/glslang_tab.cpp"
  7073. break;
  7074. case 282: /* type_specifier_nonarray: U64VEC4 */
  7075. #line 2099 "MachineIndependent/glslang.y"
  7076. {
  7077. parseContext.int64Check((yyvsp[0].lex).loc, "64-bit unsigned integer vector", parseContext.symbolTable.atBuiltInLevel());
  7078. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7079. (yyval.interm.type).basicType = EbtUint64;
  7080. (yyval.interm.type).setVector(4);
  7081. }
  7082. #line 7610 "MachineIndependent/glslang_tab.cpp"
  7083. break;
  7084. case 283: /* type_specifier_nonarray: DMAT2 */
  7085. #line 2105 "MachineIndependent/glslang.y"
  7086. {
  7087. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7088. if (! parseContext.symbolTable.atBuiltInLevel())
  7089. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7090. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7091. (yyval.interm.type).basicType = EbtDouble;
  7092. (yyval.interm.type).setMatrix(2, 2);
  7093. }
  7094. #line 7623 "MachineIndependent/glslang_tab.cpp"
  7095. break;
  7096. case 284: /* type_specifier_nonarray: DMAT3 */
  7097. #line 2113 "MachineIndependent/glslang.y"
  7098. {
  7099. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7100. if (! parseContext.symbolTable.atBuiltInLevel())
  7101. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7102. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7103. (yyval.interm.type).basicType = EbtDouble;
  7104. (yyval.interm.type).setMatrix(3, 3);
  7105. }
  7106. #line 7636 "MachineIndependent/glslang_tab.cpp"
  7107. break;
  7108. case 285: /* type_specifier_nonarray: DMAT4 */
  7109. #line 2121 "MachineIndependent/glslang.y"
  7110. {
  7111. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7112. if (! parseContext.symbolTable.atBuiltInLevel())
  7113. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7114. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7115. (yyval.interm.type).basicType = EbtDouble;
  7116. (yyval.interm.type).setMatrix(4, 4);
  7117. }
  7118. #line 7649 "MachineIndependent/glslang_tab.cpp"
  7119. break;
  7120. case 286: /* type_specifier_nonarray: DMAT2X2 */
  7121. #line 2129 "MachineIndependent/glslang.y"
  7122. {
  7123. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7124. if (! parseContext.symbolTable.atBuiltInLevel())
  7125. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7126. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7127. (yyval.interm.type).basicType = EbtDouble;
  7128. (yyval.interm.type).setMatrix(2, 2);
  7129. }
  7130. #line 7662 "MachineIndependent/glslang_tab.cpp"
  7131. break;
  7132. case 287: /* type_specifier_nonarray: DMAT2X3 */
  7133. #line 2137 "MachineIndependent/glslang.y"
  7134. {
  7135. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7136. if (! parseContext.symbolTable.atBuiltInLevel())
  7137. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7138. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7139. (yyval.interm.type).basicType = EbtDouble;
  7140. (yyval.interm.type).setMatrix(2, 3);
  7141. }
  7142. #line 7675 "MachineIndependent/glslang_tab.cpp"
  7143. break;
  7144. case 288: /* type_specifier_nonarray: DMAT2X4 */
  7145. #line 2145 "MachineIndependent/glslang.y"
  7146. {
  7147. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7148. if (! parseContext.symbolTable.atBuiltInLevel())
  7149. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7150. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7151. (yyval.interm.type).basicType = EbtDouble;
  7152. (yyval.interm.type).setMatrix(2, 4);
  7153. }
  7154. #line 7688 "MachineIndependent/glslang_tab.cpp"
  7155. break;
  7156. case 289: /* type_specifier_nonarray: DMAT3X2 */
  7157. #line 2153 "MachineIndependent/glslang.y"
  7158. {
  7159. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7160. if (! parseContext.symbolTable.atBuiltInLevel())
  7161. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7162. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7163. (yyval.interm.type).basicType = EbtDouble;
  7164. (yyval.interm.type).setMatrix(3, 2);
  7165. }
  7166. #line 7701 "MachineIndependent/glslang_tab.cpp"
  7167. break;
  7168. case 290: /* type_specifier_nonarray: DMAT3X3 */
  7169. #line 2161 "MachineIndependent/glslang.y"
  7170. {
  7171. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7172. if (! parseContext.symbolTable.atBuiltInLevel())
  7173. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7174. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7175. (yyval.interm.type).basicType = EbtDouble;
  7176. (yyval.interm.type).setMatrix(3, 3);
  7177. }
  7178. #line 7714 "MachineIndependent/glslang_tab.cpp"
  7179. break;
  7180. case 291: /* type_specifier_nonarray: DMAT3X4 */
  7181. #line 2169 "MachineIndependent/glslang.y"
  7182. {
  7183. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7184. if (! parseContext.symbolTable.atBuiltInLevel())
  7185. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7186. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7187. (yyval.interm.type).basicType = EbtDouble;
  7188. (yyval.interm.type).setMatrix(3, 4);
  7189. }
  7190. #line 7727 "MachineIndependent/glslang_tab.cpp"
  7191. break;
  7192. case 292: /* type_specifier_nonarray: DMAT4X2 */
  7193. #line 2177 "MachineIndependent/glslang.y"
  7194. {
  7195. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7196. if (! parseContext.symbolTable.atBuiltInLevel())
  7197. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7198. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7199. (yyval.interm.type).basicType = EbtDouble;
  7200. (yyval.interm.type).setMatrix(4, 2);
  7201. }
  7202. #line 7740 "MachineIndependent/glslang_tab.cpp"
  7203. break;
  7204. case 293: /* type_specifier_nonarray: DMAT4X3 */
  7205. #line 2185 "MachineIndependent/glslang.y"
  7206. {
  7207. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7208. if (! parseContext.symbolTable.atBuiltInLevel())
  7209. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7210. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7211. (yyval.interm.type).basicType = EbtDouble;
  7212. (yyval.interm.type).setMatrix(4, 3);
  7213. }
  7214. #line 7753 "MachineIndependent/glslang_tab.cpp"
  7215. break;
  7216. case 294: /* type_specifier_nonarray: DMAT4X4 */
  7217. #line 2193 "MachineIndependent/glslang.y"
  7218. {
  7219. parseContext.requireProfile((yyvsp[0].lex).loc, ECoreProfile | ECompatibilityProfile, "double matrix");
  7220. if (! parseContext.symbolTable.atBuiltInLevel())
  7221. parseContext.doubleCheck((yyvsp[0].lex).loc, "double matrix");
  7222. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7223. (yyval.interm.type).basicType = EbtDouble;
  7224. (yyval.interm.type).setMatrix(4, 4);
  7225. }
  7226. #line 7766 "MachineIndependent/glslang_tab.cpp"
  7227. break;
  7228. case 295: /* type_specifier_nonarray: F16MAT2 */
  7229. #line 2201 "MachineIndependent/glslang.y"
  7230. {
  7231. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7232. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7233. (yyval.interm.type).basicType = EbtFloat16;
  7234. (yyval.interm.type).setMatrix(2, 2);
  7235. }
  7236. #line 7777 "MachineIndependent/glslang_tab.cpp"
  7237. break;
  7238. case 296: /* type_specifier_nonarray: F16MAT3 */
  7239. #line 2207 "MachineIndependent/glslang.y"
  7240. {
  7241. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7242. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7243. (yyval.interm.type).basicType = EbtFloat16;
  7244. (yyval.interm.type).setMatrix(3, 3);
  7245. }
  7246. #line 7788 "MachineIndependent/glslang_tab.cpp"
  7247. break;
  7248. case 297: /* type_specifier_nonarray: F16MAT4 */
  7249. #line 2213 "MachineIndependent/glslang.y"
  7250. {
  7251. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7252. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7253. (yyval.interm.type).basicType = EbtFloat16;
  7254. (yyval.interm.type).setMatrix(4, 4);
  7255. }
  7256. #line 7799 "MachineIndependent/glslang_tab.cpp"
  7257. break;
  7258. case 298: /* type_specifier_nonarray: F16MAT2X2 */
  7259. #line 2219 "MachineIndependent/glslang.y"
  7260. {
  7261. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7262. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7263. (yyval.interm.type).basicType = EbtFloat16;
  7264. (yyval.interm.type).setMatrix(2, 2);
  7265. }
  7266. #line 7810 "MachineIndependent/glslang_tab.cpp"
  7267. break;
  7268. case 299: /* type_specifier_nonarray: F16MAT2X3 */
  7269. #line 2225 "MachineIndependent/glslang.y"
  7270. {
  7271. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7272. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7273. (yyval.interm.type).basicType = EbtFloat16;
  7274. (yyval.interm.type).setMatrix(2, 3);
  7275. }
  7276. #line 7821 "MachineIndependent/glslang_tab.cpp"
  7277. break;
  7278. case 300: /* type_specifier_nonarray: F16MAT2X4 */
  7279. #line 2231 "MachineIndependent/glslang.y"
  7280. {
  7281. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7282. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7283. (yyval.interm.type).basicType = EbtFloat16;
  7284. (yyval.interm.type).setMatrix(2, 4);
  7285. }
  7286. #line 7832 "MachineIndependent/glslang_tab.cpp"
  7287. break;
  7288. case 301: /* type_specifier_nonarray: F16MAT3X2 */
  7289. #line 2237 "MachineIndependent/glslang.y"
  7290. {
  7291. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7292. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7293. (yyval.interm.type).basicType = EbtFloat16;
  7294. (yyval.interm.type).setMatrix(3, 2);
  7295. }
  7296. #line 7843 "MachineIndependent/glslang_tab.cpp"
  7297. break;
  7298. case 302: /* type_specifier_nonarray: F16MAT3X3 */
  7299. #line 2243 "MachineIndependent/glslang.y"
  7300. {
  7301. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7302. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7303. (yyval.interm.type).basicType = EbtFloat16;
  7304. (yyval.interm.type).setMatrix(3, 3);
  7305. }
  7306. #line 7854 "MachineIndependent/glslang_tab.cpp"
  7307. break;
  7308. case 303: /* type_specifier_nonarray: F16MAT3X4 */
  7309. #line 2249 "MachineIndependent/glslang.y"
  7310. {
  7311. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7312. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7313. (yyval.interm.type).basicType = EbtFloat16;
  7314. (yyval.interm.type).setMatrix(3, 4);
  7315. }
  7316. #line 7865 "MachineIndependent/glslang_tab.cpp"
  7317. break;
  7318. case 304: /* type_specifier_nonarray: F16MAT4X2 */
  7319. #line 2255 "MachineIndependent/glslang.y"
  7320. {
  7321. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7322. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7323. (yyval.interm.type).basicType = EbtFloat16;
  7324. (yyval.interm.type).setMatrix(4, 2);
  7325. }
  7326. #line 7876 "MachineIndependent/glslang_tab.cpp"
  7327. break;
  7328. case 305: /* type_specifier_nonarray: F16MAT4X3 */
  7329. #line 2261 "MachineIndependent/glslang.y"
  7330. {
  7331. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7332. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7333. (yyval.interm.type).basicType = EbtFloat16;
  7334. (yyval.interm.type).setMatrix(4, 3);
  7335. }
  7336. #line 7887 "MachineIndependent/glslang_tab.cpp"
  7337. break;
  7338. case 306: /* type_specifier_nonarray: F16MAT4X4 */
  7339. #line 2267 "MachineIndependent/glslang.y"
  7340. {
  7341. parseContext.float16Check((yyvsp[0].lex).loc, "half float matrix", parseContext.symbolTable.atBuiltInLevel());
  7342. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7343. (yyval.interm.type).basicType = EbtFloat16;
  7344. (yyval.interm.type).setMatrix(4, 4);
  7345. }
  7346. #line 7898 "MachineIndependent/glslang_tab.cpp"
  7347. break;
  7348. case 307: /* type_specifier_nonarray: F32MAT2 */
  7349. #line 2273 "MachineIndependent/glslang.y"
  7350. {
  7351. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7352. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7353. (yyval.interm.type).basicType = EbtFloat;
  7354. (yyval.interm.type).setMatrix(2, 2);
  7355. }
  7356. #line 7909 "MachineIndependent/glslang_tab.cpp"
  7357. break;
  7358. case 308: /* type_specifier_nonarray: F32MAT3 */
  7359. #line 2279 "MachineIndependent/glslang.y"
  7360. {
  7361. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7362. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7363. (yyval.interm.type).basicType = EbtFloat;
  7364. (yyval.interm.type).setMatrix(3, 3);
  7365. }
  7366. #line 7920 "MachineIndependent/glslang_tab.cpp"
  7367. break;
  7368. case 309: /* type_specifier_nonarray: F32MAT4 */
  7369. #line 2285 "MachineIndependent/glslang.y"
  7370. {
  7371. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7372. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7373. (yyval.interm.type).basicType = EbtFloat;
  7374. (yyval.interm.type).setMatrix(4, 4);
  7375. }
  7376. #line 7931 "MachineIndependent/glslang_tab.cpp"
  7377. break;
  7378. case 310: /* type_specifier_nonarray: F32MAT2X2 */
  7379. #line 2291 "MachineIndependent/glslang.y"
  7380. {
  7381. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7382. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7383. (yyval.interm.type).basicType = EbtFloat;
  7384. (yyval.interm.type).setMatrix(2, 2);
  7385. }
  7386. #line 7942 "MachineIndependent/glslang_tab.cpp"
  7387. break;
  7388. case 311: /* type_specifier_nonarray: F32MAT2X3 */
  7389. #line 2297 "MachineIndependent/glslang.y"
  7390. {
  7391. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7392. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7393. (yyval.interm.type).basicType = EbtFloat;
  7394. (yyval.interm.type).setMatrix(2, 3);
  7395. }
  7396. #line 7953 "MachineIndependent/glslang_tab.cpp"
  7397. break;
  7398. case 312: /* type_specifier_nonarray: F32MAT2X4 */
  7399. #line 2303 "MachineIndependent/glslang.y"
  7400. {
  7401. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7402. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7403. (yyval.interm.type).basicType = EbtFloat;
  7404. (yyval.interm.type).setMatrix(2, 4);
  7405. }
  7406. #line 7964 "MachineIndependent/glslang_tab.cpp"
  7407. break;
  7408. case 313: /* type_specifier_nonarray: F32MAT3X2 */
  7409. #line 2309 "MachineIndependent/glslang.y"
  7410. {
  7411. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7412. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7413. (yyval.interm.type).basicType = EbtFloat;
  7414. (yyval.interm.type).setMatrix(3, 2);
  7415. }
  7416. #line 7975 "MachineIndependent/glslang_tab.cpp"
  7417. break;
  7418. case 314: /* type_specifier_nonarray: F32MAT3X3 */
  7419. #line 2315 "MachineIndependent/glslang.y"
  7420. {
  7421. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7422. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7423. (yyval.interm.type).basicType = EbtFloat;
  7424. (yyval.interm.type).setMatrix(3, 3);
  7425. }
  7426. #line 7986 "MachineIndependent/glslang_tab.cpp"
  7427. break;
  7428. case 315: /* type_specifier_nonarray: F32MAT3X4 */
  7429. #line 2321 "MachineIndependent/glslang.y"
  7430. {
  7431. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7432. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7433. (yyval.interm.type).basicType = EbtFloat;
  7434. (yyval.interm.type).setMatrix(3, 4);
  7435. }
  7436. #line 7997 "MachineIndependent/glslang_tab.cpp"
  7437. break;
  7438. case 316: /* type_specifier_nonarray: F32MAT4X2 */
  7439. #line 2327 "MachineIndependent/glslang.y"
  7440. {
  7441. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7442. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7443. (yyval.interm.type).basicType = EbtFloat;
  7444. (yyval.interm.type).setMatrix(4, 2);
  7445. }
  7446. #line 8008 "MachineIndependent/glslang_tab.cpp"
  7447. break;
  7448. case 317: /* type_specifier_nonarray: F32MAT4X3 */
  7449. #line 2333 "MachineIndependent/glslang.y"
  7450. {
  7451. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7452. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7453. (yyval.interm.type).basicType = EbtFloat;
  7454. (yyval.interm.type).setMatrix(4, 3);
  7455. }
  7456. #line 8019 "MachineIndependent/glslang_tab.cpp"
  7457. break;
  7458. case 318: /* type_specifier_nonarray: F32MAT4X4 */
  7459. #line 2339 "MachineIndependent/glslang.y"
  7460. {
  7461. parseContext.explicitFloat32Check((yyvsp[0].lex).loc, "float32_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7462. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7463. (yyval.interm.type).basicType = EbtFloat;
  7464. (yyval.interm.type).setMatrix(4, 4);
  7465. }
  7466. #line 8030 "MachineIndependent/glslang_tab.cpp"
  7467. break;
  7468. case 319: /* type_specifier_nonarray: F64MAT2 */
  7469. #line 2345 "MachineIndependent/glslang.y"
  7470. {
  7471. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7472. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7473. (yyval.interm.type).basicType = EbtDouble;
  7474. (yyval.interm.type).setMatrix(2, 2);
  7475. }
  7476. #line 8041 "MachineIndependent/glslang_tab.cpp"
  7477. break;
  7478. case 320: /* type_specifier_nonarray: F64MAT3 */
  7479. #line 2351 "MachineIndependent/glslang.y"
  7480. {
  7481. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7482. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7483. (yyval.interm.type).basicType = EbtDouble;
  7484. (yyval.interm.type).setMatrix(3, 3);
  7485. }
  7486. #line 8052 "MachineIndependent/glslang_tab.cpp"
  7487. break;
  7488. case 321: /* type_specifier_nonarray: F64MAT4 */
  7489. #line 2357 "MachineIndependent/glslang.y"
  7490. {
  7491. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7492. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7493. (yyval.interm.type).basicType = EbtDouble;
  7494. (yyval.interm.type).setMatrix(4, 4);
  7495. }
  7496. #line 8063 "MachineIndependent/glslang_tab.cpp"
  7497. break;
  7498. case 322: /* type_specifier_nonarray: F64MAT2X2 */
  7499. #line 2363 "MachineIndependent/glslang.y"
  7500. {
  7501. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7502. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7503. (yyval.interm.type).basicType = EbtDouble;
  7504. (yyval.interm.type).setMatrix(2, 2);
  7505. }
  7506. #line 8074 "MachineIndependent/glslang_tab.cpp"
  7507. break;
  7508. case 323: /* type_specifier_nonarray: F64MAT2X3 */
  7509. #line 2369 "MachineIndependent/glslang.y"
  7510. {
  7511. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7512. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7513. (yyval.interm.type).basicType = EbtDouble;
  7514. (yyval.interm.type).setMatrix(2, 3);
  7515. }
  7516. #line 8085 "MachineIndependent/glslang_tab.cpp"
  7517. break;
  7518. case 324: /* type_specifier_nonarray: F64MAT2X4 */
  7519. #line 2375 "MachineIndependent/glslang.y"
  7520. {
  7521. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7522. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7523. (yyval.interm.type).basicType = EbtDouble;
  7524. (yyval.interm.type).setMatrix(2, 4);
  7525. }
  7526. #line 8096 "MachineIndependent/glslang_tab.cpp"
  7527. break;
  7528. case 325: /* type_specifier_nonarray: F64MAT3X2 */
  7529. #line 2381 "MachineIndependent/glslang.y"
  7530. {
  7531. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7532. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7533. (yyval.interm.type).basicType = EbtDouble;
  7534. (yyval.interm.type).setMatrix(3, 2);
  7535. }
  7536. #line 8107 "MachineIndependent/glslang_tab.cpp"
  7537. break;
  7538. case 326: /* type_specifier_nonarray: F64MAT3X3 */
  7539. #line 2387 "MachineIndependent/glslang.y"
  7540. {
  7541. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7542. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7543. (yyval.interm.type).basicType = EbtDouble;
  7544. (yyval.interm.type).setMatrix(3, 3);
  7545. }
  7546. #line 8118 "MachineIndependent/glslang_tab.cpp"
  7547. break;
  7548. case 327: /* type_specifier_nonarray: F64MAT3X4 */
  7549. #line 2393 "MachineIndependent/glslang.y"
  7550. {
  7551. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7552. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7553. (yyval.interm.type).basicType = EbtDouble;
  7554. (yyval.interm.type).setMatrix(3, 4);
  7555. }
  7556. #line 8129 "MachineIndependent/glslang_tab.cpp"
  7557. break;
  7558. case 328: /* type_specifier_nonarray: F64MAT4X2 */
  7559. #line 2399 "MachineIndependent/glslang.y"
  7560. {
  7561. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7562. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7563. (yyval.interm.type).basicType = EbtDouble;
  7564. (yyval.interm.type).setMatrix(4, 2);
  7565. }
  7566. #line 8140 "MachineIndependent/glslang_tab.cpp"
  7567. break;
  7568. case 329: /* type_specifier_nonarray: F64MAT4X3 */
  7569. #line 2405 "MachineIndependent/glslang.y"
  7570. {
  7571. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7572. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7573. (yyval.interm.type).basicType = EbtDouble;
  7574. (yyval.interm.type).setMatrix(4, 3);
  7575. }
  7576. #line 8151 "MachineIndependent/glslang_tab.cpp"
  7577. break;
  7578. case 330: /* type_specifier_nonarray: F64MAT4X4 */
  7579. #line 2411 "MachineIndependent/glslang.y"
  7580. {
  7581. parseContext.explicitFloat64Check((yyvsp[0].lex).loc, "float64_t matrix", parseContext.symbolTable.atBuiltInLevel());
  7582. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7583. (yyval.interm.type).basicType = EbtDouble;
  7584. (yyval.interm.type).setMatrix(4, 4);
  7585. }
  7586. #line 8162 "MachineIndependent/glslang_tab.cpp"
  7587. break;
  7588. case 331: /* type_specifier_nonarray: ACCSTRUCTNV */
  7589. #line 2417 "MachineIndependent/glslang.y"
  7590. {
  7591. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7592. (yyval.interm.type).basicType = EbtAccStruct;
  7593. }
  7594. #line 8171 "MachineIndependent/glslang_tab.cpp"
  7595. break;
  7596. case 332: /* type_specifier_nonarray: ACCSTRUCTEXT */
  7597. #line 2421 "MachineIndependent/glslang.y"
  7598. {
  7599. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7600. (yyval.interm.type).basicType = EbtAccStruct;
  7601. }
  7602. #line 8180 "MachineIndependent/glslang_tab.cpp"
  7603. break;
  7604. case 333: /* type_specifier_nonarray: RAYQUERYEXT */
  7605. #line 2425 "MachineIndependent/glslang.y"
  7606. {
  7607. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7608. (yyval.interm.type).basicType = EbtRayQuery;
  7609. }
  7610. #line 8189 "MachineIndependent/glslang_tab.cpp"
  7611. break;
  7612. case 334: /* type_specifier_nonarray: ATOMIC_UINT */
  7613. #line 2429 "MachineIndependent/glslang.y"
  7614. {
  7615. parseContext.vulkanRemoved((yyvsp[0].lex).loc, "atomic counter types");
  7616. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7617. (yyval.interm.type).basicType = EbtAtomicUint;
  7618. }
  7619. #line 8199 "MachineIndependent/glslang_tab.cpp"
  7620. break;
  7621. case 335: /* type_specifier_nonarray: SAMPLER1D */
  7622. #line 2434 "MachineIndependent/glslang.y"
  7623. {
  7624. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7625. (yyval.interm.type).basicType = EbtSampler;
  7626. (yyval.interm.type).sampler.set(EbtFloat, Esd1D);
  7627. }
  7628. #line 8209 "MachineIndependent/glslang_tab.cpp"
  7629. break;
  7630. case 336: /* type_specifier_nonarray: SAMPLER2D */
  7631. #line 2440 "MachineIndependent/glslang.y"
  7632. {
  7633. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7634. (yyval.interm.type).basicType = EbtSampler;
  7635. (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
  7636. }
  7637. #line 8219 "MachineIndependent/glslang_tab.cpp"
  7638. break;
  7639. case 337: /* type_specifier_nonarray: SAMPLER3D */
  7640. #line 2445 "MachineIndependent/glslang.y"
  7641. {
  7642. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7643. (yyval.interm.type).basicType = EbtSampler;
  7644. (yyval.interm.type).sampler.set(EbtFloat, Esd3D);
  7645. }
  7646. #line 8229 "MachineIndependent/glslang_tab.cpp"
  7647. break;
  7648. case 338: /* type_specifier_nonarray: SAMPLERCUBE */
  7649. #line 2450 "MachineIndependent/glslang.y"
  7650. {
  7651. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7652. (yyval.interm.type).basicType = EbtSampler;
  7653. (yyval.interm.type).sampler.set(EbtFloat, EsdCube);
  7654. }
  7655. #line 8239 "MachineIndependent/glslang_tab.cpp"
  7656. break;
  7657. case 339: /* type_specifier_nonarray: SAMPLER2DSHADOW */
  7658. #line 2455 "MachineIndependent/glslang.y"
  7659. {
  7660. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7661. (yyval.interm.type).basicType = EbtSampler;
  7662. (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, true);
  7663. }
  7664. #line 8249 "MachineIndependent/glslang_tab.cpp"
  7665. break;
  7666. case 340: /* type_specifier_nonarray: SAMPLERCUBESHADOW */
  7667. #line 2460 "MachineIndependent/glslang.y"
  7668. {
  7669. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7670. (yyval.interm.type).basicType = EbtSampler;
  7671. (yyval.interm.type).sampler.set(EbtFloat, EsdCube, false, true);
  7672. }
  7673. #line 8259 "MachineIndependent/glslang_tab.cpp"
  7674. break;
  7675. case 341: /* type_specifier_nonarray: SAMPLER2DARRAY */
  7676. #line 2465 "MachineIndependent/glslang.y"
  7677. {
  7678. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7679. (yyval.interm.type).basicType = EbtSampler;
  7680. (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true);
  7681. }
  7682. #line 8269 "MachineIndependent/glslang_tab.cpp"
  7683. break;
  7684. case 342: /* type_specifier_nonarray: SAMPLER2DARRAYSHADOW */
  7685. #line 2470 "MachineIndependent/glslang.y"
  7686. {
  7687. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7688. (yyval.interm.type).basicType = EbtSampler;
  7689. (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, true);
  7690. }
  7691. #line 8279 "MachineIndependent/glslang_tab.cpp"
  7692. break;
  7693. case 343: /* type_specifier_nonarray: SAMPLER1DSHADOW */
  7694. #line 2476 "MachineIndependent/glslang.y"
  7695. {
  7696. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7697. (yyval.interm.type).basicType = EbtSampler;
  7698. (yyval.interm.type).sampler.set(EbtFloat, Esd1D, false, true);
  7699. }
  7700. #line 8289 "MachineIndependent/glslang_tab.cpp"
  7701. break;
  7702. case 344: /* type_specifier_nonarray: SAMPLER1DARRAY */
  7703. #line 2481 "MachineIndependent/glslang.y"
  7704. {
  7705. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7706. (yyval.interm.type).basicType = EbtSampler;
  7707. (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true);
  7708. }
  7709. #line 8299 "MachineIndependent/glslang_tab.cpp"
  7710. break;
  7711. case 345: /* type_specifier_nonarray: SAMPLER1DARRAYSHADOW */
  7712. #line 2486 "MachineIndependent/glslang.y"
  7713. {
  7714. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7715. (yyval.interm.type).basicType = EbtSampler;
  7716. (yyval.interm.type).sampler.set(EbtFloat, Esd1D, true, true);
  7717. }
  7718. #line 8309 "MachineIndependent/glslang_tab.cpp"
  7719. break;
  7720. case 346: /* type_specifier_nonarray: SAMPLERCUBEARRAY */
  7721. #line 2491 "MachineIndependent/glslang.y"
  7722. {
  7723. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7724. (yyval.interm.type).basicType = EbtSampler;
  7725. (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true);
  7726. }
  7727. #line 8319 "MachineIndependent/glslang_tab.cpp"
  7728. break;
  7729. case 347: /* type_specifier_nonarray: SAMPLERCUBEARRAYSHADOW */
  7730. #line 2496 "MachineIndependent/glslang.y"
  7731. {
  7732. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7733. (yyval.interm.type).basicType = EbtSampler;
  7734. (yyval.interm.type).sampler.set(EbtFloat, EsdCube, true, true);
  7735. }
  7736. #line 8329 "MachineIndependent/glslang_tab.cpp"
  7737. break;
  7738. case 348: /* type_specifier_nonarray: F16SAMPLER1D */
  7739. #line 2501 "MachineIndependent/glslang.y"
  7740. {
  7741. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7742. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7743. (yyval.interm.type).basicType = EbtSampler;
  7744. (yyval.interm.type).sampler.set(EbtFloat16, Esd1D);
  7745. }
  7746. #line 8340 "MachineIndependent/glslang_tab.cpp"
  7747. break;
  7748. case 349: /* type_specifier_nonarray: F16SAMPLER2D */
  7749. #line 2507 "MachineIndependent/glslang.y"
  7750. {
  7751. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7752. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7753. (yyval.interm.type).basicType = EbtSampler;
  7754. (yyval.interm.type).sampler.set(EbtFloat16, Esd2D);
  7755. }
  7756. #line 8351 "MachineIndependent/glslang_tab.cpp"
  7757. break;
  7758. case 350: /* type_specifier_nonarray: F16SAMPLER3D */
  7759. #line 2513 "MachineIndependent/glslang.y"
  7760. {
  7761. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7762. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7763. (yyval.interm.type).basicType = EbtSampler;
  7764. (yyval.interm.type).sampler.set(EbtFloat16, Esd3D);
  7765. }
  7766. #line 8362 "MachineIndependent/glslang_tab.cpp"
  7767. break;
  7768. case 351: /* type_specifier_nonarray: F16SAMPLERCUBE */
  7769. #line 2519 "MachineIndependent/glslang.y"
  7770. {
  7771. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7772. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7773. (yyval.interm.type).basicType = EbtSampler;
  7774. (yyval.interm.type).sampler.set(EbtFloat16, EsdCube);
  7775. }
  7776. #line 8373 "MachineIndependent/glslang_tab.cpp"
  7777. break;
  7778. case 352: /* type_specifier_nonarray: F16SAMPLER1DSHADOW */
  7779. #line 2525 "MachineIndependent/glslang.y"
  7780. {
  7781. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7782. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7783. (yyval.interm.type).basicType = EbtSampler;
  7784. (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, false, true);
  7785. }
  7786. #line 8384 "MachineIndependent/glslang_tab.cpp"
  7787. break;
  7788. case 353: /* type_specifier_nonarray: F16SAMPLER2DSHADOW */
  7789. #line 2531 "MachineIndependent/glslang.y"
  7790. {
  7791. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7792. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7793. (yyval.interm.type).basicType = EbtSampler;
  7794. (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, true);
  7795. }
  7796. #line 8395 "MachineIndependent/glslang_tab.cpp"
  7797. break;
  7798. case 354: /* type_specifier_nonarray: F16SAMPLERCUBESHADOW */
  7799. #line 2537 "MachineIndependent/glslang.y"
  7800. {
  7801. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7802. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7803. (yyval.interm.type).basicType = EbtSampler;
  7804. (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, false, true);
  7805. }
  7806. #line 8406 "MachineIndependent/glslang_tab.cpp"
  7807. break;
  7808. case 355: /* type_specifier_nonarray: F16SAMPLER1DARRAY */
  7809. #line 2543 "MachineIndependent/glslang.y"
  7810. {
  7811. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7812. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7813. (yyval.interm.type).basicType = EbtSampler;
  7814. (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true);
  7815. }
  7816. #line 8417 "MachineIndependent/glslang_tab.cpp"
  7817. break;
  7818. case 356: /* type_specifier_nonarray: F16SAMPLER2DARRAY */
  7819. #line 2549 "MachineIndependent/glslang.y"
  7820. {
  7821. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7822. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7823. (yyval.interm.type).basicType = EbtSampler;
  7824. (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true);
  7825. }
  7826. #line 8428 "MachineIndependent/glslang_tab.cpp"
  7827. break;
  7828. case 357: /* type_specifier_nonarray: F16SAMPLER1DARRAYSHADOW */
  7829. #line 2555 "MachineIndependent/glslang.y"
  7830. {
  7831. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7832. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7833. (yyval.interm.type).basicType = EbtSampler;
  7834. (yyval.interm.type).sampler.set(EbtFloat16, Esd1D, true, true);
  7835. }
  7836. #line 8439 "MachineIndependent/glslang_tab.cpp"
  7837. break;
  7838. case 358: /* type_specifier_nonarray: F16SAMPLER2DARRAYSHADOW */
  7839. #line 2561 "MachineIndependent/glslang.y"
  7840. {
  7841. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7842. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7843. (yyval.interm.type).basicType = EbtSampler;
  7844. (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, true);
  7845. }
  7846. #line 8450 "MachineIndependent/glslang_tab.cpp"
  7847. break;
  7848. case 359: /* type_specifier_nonarray: F16SAMPLERCUBEARRAY */
  7849. #line 2567 "MachineIndependent/glslang.y"
  7850. {
  7851. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7852. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7853. (yyval.interm.type).basicType = EbtSampler;
  7854. (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true);
  7855. }
  7856. #line 8461 "MachineIndependent/glslang_tab.cpp"
  7857. break;
  7858. case 360: /* type_specifier_nonarray: F16SAMPLERCUBEARRAYSHADOW */
  7859. #line 2573 "MachineIndependent/glslang.y"
  7860. {
  7861. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  7862. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7863. (yyval.interm.type).basicType = EbtSampler;
  7864. (yyval.interm.type).sampler.set(EbtFloat16, EsdCube, true, true);
  7865. }
  7866. #line 8472 "MachineIndependent/glslang_tab.cpp"
  7867. break;
  7868. case 361: /* type_specifier_nonarray: ISAMPLER1D */
  7869. #line 2579 "MachineIndependent/glslang.y"
  7870. {
  7871. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7872. (yyval.interm.type).basicType = EbtSampler;
  7873. (yyval.interm.type).sampler.set(EbtInt, Esd1D);
  7874. }
  7875. #line 8482 "MachineIndependent/glslang_tab.cpp"
  7876. break;
  7877. case 362: /* type_specifier_nonarray: ISAMPLER2D */
  7878. #line 2585 "MachineIndependent/glslang.y"
  7879. {
  7880. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7881. (yyval.interm.type).basicType = EbtSampler;
  7882. (yyval.interm.type).sampler.set(EbtInt, Esd2D);
  7883. }
  7884. #line 8492 "MachineIndependent/glslang_tab.cpp"
  7885. break;
  7886. case 363: /* type_specifier_nonarray: ISAMPLER3D */
  7887. #line 2590 "MachineIndependent/glslang.y"
  7888. {
  7889. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7890. (yyval.interm.type).basicType = EbtSampler;
  7891. (yyval.interm.type).sampler.set(EbtInt, Esd3D);
  7892. }
  7893. #line 8502 "MachineIndependent/glslang_tab.cpp"
  7894. break;
  7895. case 364: /* type_specifier_nonarray: ISAMPLERCUBE */
  7896. #line 2595 "MachineIndependent/glslang.y"
  7897. {
  7898. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7899. (yyval.interm.type).basicType = EbtSampler;
  7900. (yyval.interm.type).sampler.set(EbtInt, EsdCube);
  7901. }
  7902. #line 8512 "MachineIndependent/glslang_tab.cpp"
  7903. break;
  7904. case 365: /* type_specifier_nonarray: ISAMPLER2DARRAY */
  7905. #line 2600 "MachineIndependent/glslang.y"
  7906. {
  7907. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7908. (yyval.interm.type).basicType = EbtSampler;
  7909. (yyval.interm.type).sampler.set(EbtInt, Esd2D, true);
  7910. }
  7911. #line 8522 "MachineIndependent/glslang_tab.cpp"
  7912. break;
  7913. case 366: /* type_specifier_nonarray: USAMPLER2D */
  7914. #line 2605 "MachineIndependent/glslang.y"
  7915. {
  7916. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7917. (yyval.interm.type).basicType = EbtSampler;
  7918. (yyval.interm.type).sampler.set(EbtUint, Esd2D);
  7919. }
  7920. #line 8532 "MachineIndependent/glslang_tab.cpp"
  7921. break;
  7922. case 367: /* type_specifier_nonarray: USAMPLER3D */
  7923. #line 2610 "MachineIndependent/glslang.y"
  7924. {
  7925. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7926. (yyval.interm.type).basicType = EbtSampler;
  7927. (yyval.interm.type).sampler.set(EbtUint, Esd3D);
  7928. }
  7929. #line 8542 "MachineIndependent/glslang_tab.cpp"
  7930. break;
  7931. case 368: /* type_specifier_nonarray: USAMPLERCUBE */
  7932. #line 2615 "MachineIndependent/glslang.y"
  7933. {
  7934. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7935. (yyval.interm.type).basicType = EbtSampler;
  7936. (yyval.interm.type).sampler.set(EbtUint, EsdCube);
  7937. }
  7938. #line 8552 "MachineIndependent/glslang_tab.cpp"
  7939. break;
  7940. case 369: /* type_specifier_nonarray: ISAMPLER1DARRAY */
  7941. #line 2621 "MachineIndependent/glslang.y"
  7942. {
  7943. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7944. (yyval.interm.type).basicType = EbtSampler;
  7945. (yyval.interm.type).sampler.set(EbtInt, Esd1D, true);
  7946. }
  7947. #line 8562 "MachineIndependent/glslang_tab.cpp"
  7948. break;
  7949. case 370: /* type_specifier_nonarray: ISAMPLERCUBEARRAY */
  7950. #line 2626 "MachineIndependent/glslang.y"
  7951. {
  7952. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7953. (yyval.interm.type).basicType = EbtSampler;
  7954. (yyval.interm.type).sampler.set(EbtInt, EsdCube, true);
  7955. }
  7956. #line 8572 "MachineIndependent/glslang_tab.cpp"
  7957. break;
  7958. case 371: /* type_specifier_nonarray: USAMPLER1D */
  7959. #line 2631 "MachineIndependent/glslang.y"
  7960. {
  7961. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7962. (yyval.interm.type).basicType = EbtSampler;
  7963. (yyval.interm.type).sampler.set(EbtUint, Esd1D);
  7964. }
  7965. #line 8582 "MachineIndependent/glslang_tab.cpp"
  7966. break;
  7967. case 372: /* type_specifier_nonarray: USAMPLER1DARRAY */
  7968. #line 2636 "MachineIndependent/glslang.y"
  7969. {
  7970. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7971. (yyval.interm.type).basicType = EbtSampler;
  7972. (yyval.interm.type).sampler.set(EbtUint, Esd1D, true);
  7973. }
  7974. #line 8592 "MachineIndependent/glslang_tab.cpp"
  7975. break;
  7976. case 373: /* type_specifier_nonarray: USAMPLERCUBEARRAY */
  7977. #line 2641 "MachineIndependent/glslang.y"
  7978. {
  7979. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7980. (yyval.interm.type).basicType = EbtSampler;
  7981. (yyval.interm.type).sampler.set(EbtUint, EsdCube, true);
  7982. }
  7983. #line 8602 "MachineIndependent/glslang_tab.cpp"
  7984. break;
  7985. case 374: /* type_specifier_nonarray: TEXTURECUBEARRAY */
  7986. #line 2646 "MachineIndependent/glslang.y"
  7987. {
  7988. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7989. (yyval.interm.type).basicType = EbtSampler;
  7990. (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube, true);
  7991. }
  7992. #line 8612 "MachineIndependent/glslang_tab.cpp"
  7993. break;
  7994. case 375: /* type_specifier_nonarray: ITEXTURECUBEARRAY */
  7995. #line 2651 "MachineIndependent/glslang.y"
  7996. {
  7997. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  7998. (yyval.interm.type).basicType = EbtSampler;
  7999. (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube, true);
  8000. }
  8001. #line 8622 "MachineIndependent/glslang_tab.cpp"
  8002. break;
  8003. case 376: /* type_specifier_nonarray: UTEXTURECUBEARRAY */
  8004. #line 2656 "MachineIndependent/glslang.y"
  8005. {
  8006. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8007. (yyval.interm.type).basicType = EbtSampler;
  8008. (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube, true);
  8009. }
  8010. #line 8632 "MachineIndependent/glslang_tab.cpp"
  8011. break;
  8012. case 377: /* type_specifier_nonarray: USAMPLER2DARRAY */
  8013. #line 2662 "MachineIndependent/glslang.y"
  8014. {
  8015. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8016. (yyval.interm.type).basicType = EbtSampler;
  8017. (yyval.interm.type).sampler.set(EbtUint, Esd2D, true);
  8018. }
  8019. #line 8642 "MachineIndependent/glslang_tab.cpp"
  8020. break;
  8021. case 378: /* type_specifier_nonarray: TEXTURE2D */
  8022. #line 2667 "MachineIndependent/glslang.y"
  8023. {
  8024. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8025. (yyval.interm.type).basicType = EbtSampler;
  8026. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D);
  8027. }
  8028. #line 8652 "MachineIndependent/glslang_tab.cpp"
  8029. break;
  8030. case 379: /* type_specifier_nonarray: TEXTURE3D */
  8031. #line 2672 "MachineIndependent/glslang.y"
  8032. {
  8033. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8034. (yyval.interm.type).basicType = EbtSampler;
  8035. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd3D);
  8036. }
  8037. #line 8662 "MachineIndependent/glslang_tab.cpp"
  8038. break;
  8039. case 380: /* type_specifier_nonarray: TEXTURE2DARRAY */
  8040. #line 2677 "MachineIndependent/glslang.y"
  8041. {
  8042. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8043. (yyval.interm.type).basicType = EbtSampler;
  8044. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true);
  8045. }
  8046. #line 8672 "MachineIndependent/glslang_tab.cpp"
  8047. break;
  8048. case 381: /* type_specifier_nonarray: TEXTURECUBE */
  8049. #line 2682 "MachineIndependent/glslang.y"
  8050. {
  8051. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8052. (yyval.interm.type).basicType = EbtSampler;
  8053. (yyval.interm.type).sampler.setTexture(EbtFloat, EsdCube);
  8054. }
  8055. #line 8682 "MachineIndependent/glslang_tab.cpp"
  8056. break;
  8057. case 382: /* type_specifier_nonarray: ITEXTURE2D */
  8058. #line 2687 "MachineIndependent/glslang.y"
  8059. {
  8060. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8061. (yyval.interm.type).basicType = EbtSampler;
  8062. (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D);
  8063. }
  8064. #line 8692 "MachineIndependent/glslang_tab.cpp"
  8065. break;
  8066. case 383: /* type_specifier_nonarray: ITEXTURE3D */
  8067. #line 2692 "MachineIndependent/glslang.y"
  8068. {
  8069. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8070. (yyval.interm.type).basicType = EbtSampler;
  8071. (yyval.interm.type).sampler.setTexture(EbtInt, Esd3D);
  8072. }
  8073. #line 8702 "MachineIndependent/glslang_tab.cpp"
  8074. break;
  8075. case 384: /* type_specifier_nonarray: ITEXTURECUBE */
  8076. #line 2697 "MachineIndependent/glslang.y"
  8077. {
  8078. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8079. (yyval.interm.type).basicType = EbtSampler;
  8080. (yyval.interm.type).sampler.setTexture(EbtInt, EsdCube);
  8081. }
  8082. #line 8712 "MachineIndependent/glslang_tab.cpp"
  8083. break;
  8084. case 385: /* type_specifier_nonarray: ITEXTURE2DARRAY */
  8085. #line 2702 "MachineIndependent/glslang.y"
  8086. {
  8087. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8088. (yyval.interm.type).basicType = EbtSampler;
  8089. (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true);
  8090. }
  8091. #line 8722 "MachineIndependent/glslang_tab.cpp"
  8092. break;
  8093. case 386: /* type_specifier_nonarray: UTEXTURE2D */
  8094. #line 2707 "MachineIndependent/glslang.y"
  8095. {
  8096. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8097. (yyval.interm.type).basicType = EbtSampler;
  8098. (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D);
  8099. }
  8100. #line 8732 "MachineIndependent/glslang_tab.cpp"
  8101. break;
  8102. case 387: /* type_specifier_nonarray: UTEXTURE3D */
  8103. #line 2712 "MachineIndependent/glslang.y"
  8104. {
  8105. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8106. (yyval.interm.type).basicType = EbtSampler;
  8107. (yyval.interm.type).sampler.setTexture(EbtUint, Esd3D);
  8108. }
  8109. #line 8742 "MachineIndependent/glslang_tab.cpp"
  8110. break;
  8111. case 388: /* type_specifier_nonarray: UTEXTURECUBE */
  8112. #line 2717 "MachineIndependent/glslang.y"
  8113. {
  8114. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8115. (yyval.interm.type).basicType = EbtSampler;
  8116. (yyval.interm.type).sampler.setTexture(EbtUint, EsdCube);
  8117. }
  8118. #line 8752 "MachineIndependent/glslang_tab.cpp"
  8119. break;
  8120. case 389: /* type_specifier_nonarray: UTEXTURE2DARRAY */
  8121. #line 2722 "MachineIndependent/glslang.y"
  8122. {
  8123. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8124. (yyval.interm.type).basicType = EbtSampler;
  8125. (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true);
  8126. }
  8127. #line 8762 "MachineIndependent/glslang_tab.cpp"
  8128. break;
  8129. case 390: /* type_specifier_nonarray: SAMPLER */
  8130. #line 2727 "MachineIndependent/glslang.y"
  8131. {
  8132. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8133. (yyval.interm.type).basicType = EbtSampler;
  8134. (yyval.interm.type).sampler.setPureSampler(false);
  8135. }
  8136. #line 8772 "MachineIndependent/glslang_tab.cpp"
  8137. break;
  8138. case 391: /* type_specifier_nonarray: SAMPLERSHADOW */
  8139. #line 2732 "MachineIndependent/glslang.y"
  8140. {
  8141. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8142. (yyval.interm.type).basicType = EbtSampler;
  8143. (yyval.interm.type).sampler.setPureSampler(true);
  8144. }
  8145. #line 8782 "MachineIndependent/glslang_tab.cpp"
  8146. break;
  8147. case 392: /* type_specifier_nonarray: SAMPLER2DRECT */
  8148. #line 2738 "MachineIndependent/glslang.y"
  8149. {
  8150. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8151. (yyval.interm.type).basicType = EbtSampler;
  8152. (yyval.interm.type).sampler.set(EbtFloat, EsdRect);
  8153. }
  8154. #line 8792 "MachineIndependent/glslang_tab.cpp"
  8155. break;
  8156. case 393: /* type_specifier_nonarray: SAMPLER2DRECTSHADOW */
  8157. #line 2743 "MachineIndependent/glslang.y"
  8158. {
  8159. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8160. (yyval.interm.type).basicType = EbtSampler;
  8161. (yyval.interm.type).sampler.set(EbtFloat, EsdRect, false, true);
  8162. }
  8163. #line 8802 "MachineIndependent/glslang_tab.cpp"
  8164. break;
  8165. case 394: /* type_specifier_nonarray: F16SAMPLER2DRECT */
  8166. #line 2748 "MachineIndependent/glslang.y"
  8167. {
  8168. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  8169. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8170. (yyval.interm.type).basicType = EbtSampler;
  8171. (yyval.interm.type).sampler.set(EbtFloat16, EsdRect);
  8172. }
  8173. #line 8813 "MachineIndependent/glslang_tab.cpp"
  8174. break;
  8175. case 395: /* type_specifier_nonarray: F16SAMPLER2DRECTSHADOW */
  8176. #line 2754 "MachineIndependent/glslang.y"
  8177. {
  8178. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  8179. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8180. (yyval.interm.type).basicType = EbtSampler;
  8181. (yyval.interm.type).sampler.set(EbtFloat16, EsdRect, false, true);
  8182. }
  8183. #line 8824 "MachineIndependent/glslang_tab.cpp"
  8184. break;
  8185. case 396: /* type_specifier_nonarray: ISAMPLER2DRECT */
  8186. #line 2760 "MachineIndependent/glslang.y"
  8187. {
  8188. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8189. (yyval.interm.type).basicType = EbtSampler;
  8190. (yyval.interm.type).sampler.set(EbtInt, EsdRect);
  8191. }
  8192. #line 8834 "MachineIndependent/glslang_tab.cpp"
  8193. break;
  8194. case 397: /* type_specifier_nonarray: USAMPLER2DRECT */
  8195. #line 2765 "MachineIndependent/glslang.y"
  8196. {
  8197. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8198. (yyval.interm.type).basicType = EbtSampler;
  8199. (yyval.interm.type).sampler.set(EbtUint, EsdRect);
  8200. }
  8201. #line 8844 "MachineIndependent/glslang_tab.cpp"
  8202. break;
  8203. case 398: /* type_specifier_nonarray: SAMPLERBUFFER */
  8204. #line 2770 "MachineIndependent/glslang.y"
  8205. {
  8206. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8207. (yyval.interm.type).basicType = EbtSampler;
  8208. (yyval.interm.type).sampler.set(EbtFloat, EsdBuffer);
  8209. }
  8210. #line 8854 "MachineIndependent/glslang_tab.cpp"
  8211. break;
  8212. case 399: /* type_specifier_nonarray: F16SAMPLERBUFFER */
  8213. #line 2775 "MachineIndependent/glslang.y"
  8214. {
  8215. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  8216. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8217. (yyval.interm.type).basicType = EbtSampler;
  8218. (yyval.interm.type).sampler.set(EbtFloat16, EsdBuffer);
  8219. }
  8220. #line 8865 "MachineIndependent/glslang_tab.cpp"
  8221. break;
  8222. case 400: /* type_specifier_nonarray: ISAMPLERBUFFER */
  8223. #line 2781 "MachineIndependent/glslang.y"
  8224. {
  8225. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8226. (yyval.interm.type).basicType = EbtSampler;
  8227. (yyval.interm.type).sampler.set(EbtInt, EsdBuffer);
  8228. }
  8229. #line 8875 "MachineIndependent/glslang_tab.cpp"
  8230. break;
  8231. case 401: /* type_specifier_nonarray: USAMPLERBUFFER */
  8232. #line 2786 "MachineIndependent/glslang.y"
  8233. {
  8234. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8235. (yyval.interm.type).basicType = EbtSampler;
  8236. (yyval.interm.type).sampler.set(EbtUint, EsdBuffer);
  8237. }
  8238. #line 8885 "MachineIndependent/glslang_tab.cpp"
  8239. break;
  8240. case 402: /* type_specifier_nonarray: SAMPLER2DMS */
  8241. #line 2791 "MachineIndependent/glslang.y"
  8242. {
  8243. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8244. (yyval.interm.type).basicType = EbtSampler;
  8245. (yyval.interm.type).sampler.set(EbtFloat, Esd2D, false, false, true);
  8246. }
  8247. #line 8895 "MachineIndependent/glslang_tab.cpp"
  8248. break;
  8249. case 403: /* type_specifier_nonarray: F16SAMPLER2DMS */
  8250. #line 2796 "MachineIndependent/glslang.y"
  8251. {
  8252. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  8253. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8254. (yyval.interm.type).basicType = EbtSampler;
  8255. (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, false, false, true);
  8256. }
  8257. #line 8906 "MachineIndependent/glslang_tab.cpp"
  8258. break;
  8259. case 404: /* type_specifier_nonarray: ISAMPLER2DMS */
  8260. #line 2802 "MachineIndependent/glslang.y"
  8261. {
  8262. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8263. (yyval.interm.type).basicType = EbtSampler;
  8264. (yyval.interm.type).sampler.set(EbtInt, Esd2D, false, false, true);
  8265. }
  8266. #line 8916 "MachineIndependent/glslang_tab.cpp"
  8267. break;
  8268. case 405: /* type_specifier_nonarray: USAMPLER2DMS */
  8269. #line 2807 "MachineIndependent/glslang.y"
  8270. {
  8271. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8272. (yyval.interm.type).basicType = EbtSampler;
  8273. (yyval.interm.type).sampler.set(EbtUint, Esd2D, false, false, true);
  8274. }
  8275. #line 8926 "MachineIndependent/glslang_tab.cpp"
  8276. break;
  8277. case 406: /* type_specifier_nonarray: SAMPLER2DMSARRAY */
  8278. #line 2812 "MachineIndependent/glslang.y"
  8279. {
  8280. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8281. (yyval.interm.type).basicType = EbtSampler;
  8282. (yyval.interm.type).sampler.set(EbtFloat, Esd2D, true, false, true);
  8283. }
  8284. #line 8936 "MachineIndependent/glslang_tab.cpp"
  8285. break;
  8286. case 407: /* type_specifier_nonarray: F16SAMPLER2DMSARRAY */
  8287. #line 2817 "MachineIndependent/glslang.y"
  8288. {
  8289. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float sampler", parseContext.symbolTable.atBuiltInLevel());
  8290. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8291. (yyval.interm.type).basicType = EbtSampler;
  8292. (yyval.interm.type).sampler.set(EbtFloat16, Esd2D, true, false, true);
  8293. }
  8294. #line 8947 "MachineIndependent/glslang_tab.cpp"
  8295. break;
  8296. case 408: /* type_specifier_nonarray: ISAMPLER2DMSARRAY */
  8297. #line 2823 "MachineIndependent/glslang.y"
  8298. {
  8299. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8300. (yyval.interm.type).basicType = EbtSampler;
  8301. (yyval.interm.type).sampler.set(EbtInt, Esd2D, true, false, true);
  8302. }
  8303. #line 8957 "MachineIndependent/glslang_tab.cpp"
  8304. break;
  8305. case 409: /* type_specifier_nonarray: USAMPLER2DMSARRAY */
  8306. #line 2828 "MachineIndependent/glslang.y"
  8307. {
  8308. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8309. (yyval.interm.type).basicType = EbtSampler;
  8310. (yyval.interm.type).sampler.set(EbtUint, Esd2D, true, false, true);
  8311. }
  8312. #line 8967 "MachineIndependent/glslang_tab.cpp"
  8313. break;
  8314. case 410: /* type_specifier_nonarray: TEXTURE1D */
  8315. #line 2833 "MachineIndependent/glslang.y"
  8316. {
  8317. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8318. (yyval.interm.type).basicType = EbtSampler;
  8319. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D);
  8320. }
  8321. #line 8977 "MachineIndependent/glslang_tab.cpp"
  8322. break;
  8323. case 411: /* type_specifier_nonarray: F16TEXTURE1D */
  8324. #line 2838 "MachineIndependent/glslang.y"
  8325. {
  8326. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8327. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8328. (yyval.interm.type).basicType = EbtSampler;
  8329. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D);
  8330. }
  8331. #line 8988 "MachineIndependent/glslang_tab.cpp"
  8332. break;
  8333. case 412: /* type_specifier_nonarray: F16TEXTURE2D */
  8334. #line 2844 "MachineIndependent/glslang.y"
  8335. {
  8336. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8337. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8338. (yyval.interm.type).basicType = EbtSampler;
  8339. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D);
  8340. }
  8341. #line 8999 "MachineIndependent/glslang_tab.cpp"
  8342. break;
  8343. case 413: /* type_specifier_nonarray: F16TEXTURE3D */
  8344. #line 2850 "MachineIndependent/glslang.y"
  8345. {
  8346. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8347. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8348. (yyval.interm.type).basicType = EbtSampler;
  8349. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd3D);
  8350. }
  8351. #line 9010 "MachineIndependent/glslang_tab.cpp"
  8352. break;
  8353. case 414: /* type_specifier_nonarray: F16TEXTURECUBE */
  8354. #line 2856 "MachineIndependent/glslang.y"
  8355. {
  8356. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8357. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8358. (yyval.interm.type).basicType = EbtSampler;
  8359. (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube);
  8360. }
  8361. #line 9021 "MachineIndependent/glslang_tab.cpp"
  8362. break;
  8363. case 415: /* type_specifier_nonarray: TEXTURE1DARRAY */
  8364. #line 2862 "MachineIndependent/glslang.y"
  8365. {
  8366. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8367. (yyval.interm.type).basicType = EbtSampler;
  8368. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd1D, true);
  8369. }
  8370. #line 9031 "MachineIndependent/glslang_tab.cpp"
  8371. break;
  8372. case 416: /* type_specifier_nonarray: F16TEXTURE1DARRAY */
  8373. #line 2867 "MachineIndependent/glslang.y"
  8374. {
  8375. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8376. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8377. (yyval.interm.type).basicType = EbtSampler;
  8378. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd1D, true);
  8379. }
  8380. #line 9042 "MachineIndependent/glslang_tab.cpp"
  8381. break;
  8382. case 417: /* type_specifier_nonarray: F16TEXTURE2DARRAY */
  8383. #line 2873 "MachineIndependent/glslang.y"
  8384. {
  8385. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8386. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8387. (yyval.interm.type).basicType = EbtSampler;
  8388. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true);
  8389. }
  8390. #line 9053 "MachineIndependent/glslang_tab.cpp"
  8391. break;
  8392. case 418: /* type_specifier_nonarray: F16TEXTURECUBEARRAY */
  8393. #line 2879 "MachineIndependent/glslang.y"
  8394. {
  8395. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8396. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8397. (yyval.interm.type).basicType = EbtSampler;
  8398. (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdCube, true);
  8399. }
  8400. #line 9064 "MachineIndependent/glslang_tab.cpp"
  8401. break;
  8402. case 419: /* type_specifier_nonarray: ITEXTURE1D */
  8403. #line 2885 "MachineIndependent/glslang.y"
  8404. {
  8405. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8406. (yyval.interm.type).basicType = EbtSampler;
  8407. (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D);
  8408. }
  8409. #line 9074 "MachineIndependent/glslang_tab.cpp"
  8410. break;
  8411. case 420: /* type_specifier_nonarray: ITEXTURE1DARRAY */
  8412. #line 2890 "MachineIndependent/glslang.y"
  8413. {
  8414. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8415. (yyval.interm.type).basicType = EbtSampler;
  8416. (yyval.interm.type).sampler.setTexture(EbtInt, Esd1D, true);
  8417. }
  8418. #line 9084 "MachineIndependent/glslang_tab.cpp"
  8419. break;
  8420. case 421: /* type_specifier_nonarray: UTEXTURE1D */
  8421. #line 2895 "MachineIndependent/glslang.y"
  8422. {
  8423. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8424. (yyval.interm.type).basicType = EbtSampler;
  8425. (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D);
  8426. }
  8427. #line 9094 "MachineIndependent/glslang_tab.cpp"
  8428. break;
  8429. case 422: /* type_specifier_nonarray: UTEXTURE1DARRAY */
  8430. #line 2900 "MachineIndependent/glslang.y"
  8431. {
  8432. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8433. (yyval.interm.type).basicType = EbtSampler;
  8434. (yyval.interm.type).sampler.setTexture(EbtUint, Esd1D, true);
  8435. }
  8436. #line 9104 "MachineIndependent/glslang_tab.cpp"
  8437. break;
  8438. case 423: /* type_specifier_nonarray: TEXTURE2DRECT */
  8439. #line 2905 "MachineIndependent/glslang.y"
  8440. {
  8441. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8442. (yyval.interm.type).basicType = EbtSampler;
  8443. (yyval.interm.type).sampler.setTexture(EbtFloat, EsdRect);
  8444. }
  8445. #line 9114 "MachineIndependent/glslang_tab.cpp"
  8446. break;
  8447. case 424: /* type_specifier_nonarray: F16TEXTURE2DRECT */
  8448. #line 2910 "MachineIndependent/glslang.y"
  8449. {
  8450. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8451. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8452. (yyval.interm.type).basicType = EbtSampler;
  8453. (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdRect);
  8454. }
  8455. #line 9125 "MachineIndependent/glslang_tab.cpp"
  8456. break;
  8457. case 425: /* type_specifier_nonarray: ITEXTURE2DRECT */
  8458. #line 2916 "MachineIndependent/glslang.y"
  8459. {
  8460. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8461. (yyval.interm.type).basicType = EbtSampler;
  8462. (yyval.interm.type).sampler.setTexture(EbtInt, EsdRect);
  8463. }
  8464. #line 9135 "MachineIndependent/glslang_tab.cpp"
  8465. break;
  8466. case 426: /* type_specifier_nonarray: UTEXTURE2DRECT */
  8467. #line 2921 "MachineIndependent/glslang.y"
  8468. {
  8469. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8470. (yyval.interm.type).basicType = EbtSampler;
  8471. (yyval.interm.type).sampler.setTexture(EbtUint, EsdRect);
  8472. }
  8473. #line 9145 "MachineIndependent/glslang_tab.cpp"
  8474. break;
  8475. case 427: /* type_specifier_nonarray: TEXTUREBUFFER */
  8476. #line 2926 "MachineIndependent/glslang.y"
  8477. {
  8478. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8479. (yyval.interm.type).basicType = EbtSampler;
  8480. (yyval.interm.type).sampler.setTexture(EbtFloat, EsdBuffer);
  8481. }
  8482. #line 9155 "MachineIndependent/glslang_tab.cpp"
  8483. break;
  8484. case 428: /* type_specifier_nonarray: F16TEXTUREBUFFER */
  8485. #line 2931 "MachineIndependent/glslang.y"
  8486. {
  8487. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8488. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8489. (yyval.interm.type).basicType = EbtSampler;
  8490. (yyval.interm.type).sampler.setTexture(EbtFloat16, EsdBuffer);
  8491. }
  8492. #line 9166 "MachineIndependent/glslang_tab.cpp"
  8493. break;
  8494. case 429: /* type_specifier_nonarray: ITEXTUREBUFFER */
  8495. #line 2937 "MachineIndependent/glslang.y"
  8496. {
  8497. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8498. (yyval.interm.type).basicType = EbtSampler;
  8499. (yyval.interm.type).sampler.setTexture(EbtInt, EsdBuffer);
  8500. }
  8501. #line 9176 "MachineIndependent/glslang_tab.cpp"
  8502. break;
  8503. case 430: /* type_specifier_nonarray: UTEXTUREBUFFER */
  8504. #line 2942 "MachineIndependent/glslang.y"
  8505. {
  8506. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8507. (yyval.interm.type).basicType = EbtSampler;
  8508. (yyval.interm.type).sampler.setTexture(EbtUint, EsdBuffer);
  8509. }
  8510. #line 9186 "MachineIndependent/glslang_tab.cpp"
  8511. break;
  8512. case 431: /* type_specifier_nonarray: TEXTURE2DMS */
  8513. #line 2947 "MachineIndependent/glslang.y"
  8514. {
  8515. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8516. (yyval.interm.type).basicType = EbtSampler;
  8517. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, false, false, true);
  8518. }
  8519. #line 9196 "MachineIndependent/glslang_tab.cpp"
  8520. break;
  8521. case 432: /* type_specifier_nonarray: F16TEXTURE2DMS */
  8522. #line 2952 "MachineIndependent/glslang.y"
  8523. {
  8524. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8525. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8526. (yyval.interm.type).basicType = EbtSampler;
  8527. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, false, false, true);
  8528. }
  8529. #line 9207 "MachineIndependent/glslang_tab.cpp"
  8530. break;
  8531. case 433: /* type_specifier_nonarray: ITEXTURE2DMS */
  8532. #line 2958 "MachineIndependent/glslang.y"
  8533. {
  8534. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8535. (yyval.interm.type).basicType = EbtSampler;
  8536. (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, false, false, true);
  8537. }
  8538. #line 9217 "MachineIndependent/glslang_tab.cpp"
  8539. break;
  8540. case 434: /* type_specifier_nonarray: UTEXTURE2DMS */
  8541. #line 2963 "MachineIndependent/glslang.y"
  8542. {
  8543. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8544. (yyval.interm.type).basicType = EbtSampler;
  8545. (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, false, false, true);
  8546. }
  8547. #line 9227 "MachineIndependent/glslang_tab.cpp"
  8548. break;
  8549. case 435: /* type_specifier_nonarray: TEXTURE2DMSARRAY */
  8550. #line 2968 "MachineIndependent/glslang.y"
  8551. {
  8552. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8553. (yyval.interm.type).basicType = EbtSampler;
  8554. (yyval.interm.type).sampler.setTexture(EbtFloat, Esd2D, true, false, true);
  8555. }
  8556. #line 9237 "MachineIndependent/glslang_tab.cpp"
  8557. break;
  8558. case 436: /* type_specifier_nonarray: F16TEXTURE2DMSARRAY */
  8559. #line 2973 "MachineIndependent/glslang.y"
  8560. {
  8561. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float texture", parseContext.symbolTable.atBuiltInLevel());
  8562. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8563. (yyval.interm.type).basicType = EbtSampler;
  8564. (yyval.interm.type).sampler.setTexture(EbtFloat16, Esd2D, true, false, true);
  8565. }
  8566. #line 9248 "MachineIndependent/glslang_tab.cpp"
  8567. break;
  8568. case 437: /* type_specifier_nonarray: ITEXTURE2DMSARRAY */
  8569. #line 2979 "MachineIndependent/glslang.y"
  8570. {
  8571. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8572. (yyval.interm.type).basicType = EbtSampler;
  8573. (yyval.interm.type).sampler.setTexture(EbtInt, Esd2D, true, false, true);
  8574. }
  8575. #line 9258 "MachineIndependent/glslang_tab.cpp"
  8576. break;
  8577. case 438: /* type_specifier_nonarray: UTEXTURE2DMSARRAY */
  8578. #line 2984 "MachineIndependent/glslang.y"
  8579. {
  8580. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8581. (yyval.interm.type).basicType = EbtSampler;
  8582. (yyval.interm.type).sampler.setTexture(EbtUint, Esd2D, true, false, true);
  8583. }
  8584. #line 9268 "MachineIndependent/glslang_tab.cpp"
  8585. break;
  8586. case 439: /* type_specifier_nonarray: IMAGE1D */
  8587. #line 2989 "MachineIndependent/glslang.y"
  8588. {
  8589. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8590. (yyval.interm.type).basicType = EbtSampler;
  8591. (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D);
  8592. }
  8593. #line 9278 "MachineIndependent/glslang_tab.cpp"
  8594. break;
  8595. case 440: /* type_specifier_nonarray: F16IMAGE1D */
  8596. #line 2994 "MachineIndependent/glslang.y"
  8597. {
  8598. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8599. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8600. (yyval.interm.type).basicType = EbtSampler;
  8601. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D);
  8602. }
  8603. #line 9289 "MachineIndependent/glslang_tab.cpp"
  8604. break;
  8605. case 441: /* type_specifier_nonarray: IIMAGE1D */
  8606. #line 3000 "MachineIndependent/glslang.y"
  8607. {
  8608. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8609. (yyval.interm.type).basicType = EbtSampler;
  8610. (yyval.interm.type).sampler.setImage(EbtInt, Esd1D);
  8611. }
  8612. #line 9299 "MachineIndependent/glslang_tab.cpp"
  8613. break;
  8614. case 442: /* type_specifier_nonarray: UIMAGE1D */
  8615. #line 3005 "MachineIndependent/glslang.y"
  8616. {
  8617. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8618. (yyval.interm.type).basicType = EbtSampler;
  8619. (yyval.interm.type).sampler.setImage(EbtUint, Esd1D);
  8620. }
  8621. #line 9309 "MachineIndependent/glslang_tab.cpp"
  8622. break;
  8623. case 443: /* type_specifier_nonarray: IMAGE2D */
  8624. #line 3010 "MachineIndependent/glslang.y"
  8625. {
  8626. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8627. (yyval.interm.type).basicType = EbtSampler;
  8628. (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D);
  8629. }
  8630. #line 9319 "MachineIndependent/glslang_tab.cpp"
  8631. break;
  8632. case 444: /* type_specifier_nonarray: F16IMAGE2D */
  8633. #line 3015 "MachineIndependent/glslang.y"
  8634. {
  8635. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8636. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8637. (yyval.interm.type).basicType = EbtSampler;
  8638. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D);
  8639. }
  8640. #line 9330 "MachineIndependent/glslang_tab.cpp"
  8641. break;
  8642. case 445: /* type_specifier_nonarray: IIMAGE2D */
  8643. #line 3021 "MachineIndependent/glslang.y"
  8644. {
  8645. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8646. (yyval.interm.type).basicType = EbtSampler;
  8647. (yyval.interm.type).sampler.setImage(EbtInt, Esd2D);
  8648. }
  8649. #line 9340 "MachineIndependent/glslang_tab.cpp"
  8650. break;
  8651. case 446: /* type_specifier_nonarray: UIMAGE2D */
  8652. #line 3026 "MachineIndependent/glslang.y"
  8653. {
  8654. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8655. (yyval.interm.type).basicType = EbtSampler;
  8656. (yyval.interm.type).sampler.setImage(EbtUint, Esd2D);
  8657. }
  8658. #line 9350 "MachineIndependent/glslang_tab.cpp"
  8659. break;
  8660. case 447: /* type_specifier_nonarray: IMAGE3D */
  8661. #line 3031 "MachineIndependent/glslang.y"
  8662. {
  8663. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8664. (yyval.interm.type).basicType = EbtSampler;
  8665. (yyval.interm.type).sampler.setImage(EbtFloat, Esd3D);
  8666. }
  8667. #line 9360 "MachineIndependent/glslang_tab.cpp"
  8668. break;
  8669. case 448: /* type_specifier_nonarray: F16IMAGE3D */
  8670. #line 3036 "MachineIndependent/glslang.y"
  8671. {
  8672. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8673. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8674. (yyval.interm.type).basicType = EbtSampler;
  8675. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd3D);
  8676. }
  8677. #line 9371 "MachineIndependent/glslang_tab.cpp"
  8678. break;
  8679. case 449: /* type_specifier_nonarray: IIMAGE3D */
  8680. #line 3042 "MachineIndependent/glslang.y"
  8681. {
  8682. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8683. (yyval.interm.type).basicType = EbtSampler;
  8684. (yyval.interm.type).sampler.setImage(EbtInt, Esd3D);
  8685. }
  8686. #line 9381 "MachineIndependent/glslang_tab.cpp"
  8687. break;
  8688. case 450: /* type_specifier_nonarray: UIMAGE3D */
  8689. #line 3047 "MachineIndependent/glslang.y"
  8690. {
  8691. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8692. (yyval.interm.type).basicType = EbtSampler;
  8693. (yyval.interm.type).sampler.setImage(EbtUint, Esd3D);
  8694. }
  8695. #line 9391 "MachineIndependent/glslang_tab.cpp"
  8696. break;
  8697. case 451: /* type_specifier_nonarray: IMAGE2DRECT */
  8698. #line 3052 "MachineIndependent/glslang.y"
  8699. {
  8700. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8701. (yyval.interm.type).basicType = EbtSampler;
  8702. (yyval.interm.type).sampler.setImage(EbtFloat, EsdRect);
  8703. }
  8704. #line 9401 "MachineIndependent/glslang_tab.cpp"
  8705. break;
  8706. case 452: /* type_specifier_nonarray: F16IMAGE2DRECT */
  8707. #line 3057 "MachineIndependent/glslang.y"
  8708. {
  8709. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8710. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8711. (yyval.interm.type).basicType = EbtSampler;
  8712. (yyval.interm.type).sampler.setImage(EbtFloat16, EsdRect);
  8713. }
  8714. #line 9412 "MachineIndependent/glslang_tab.cpp"
  8715. break;
  8716. case 453: /* type_specifier_nonarray: IIMAGE2DRECT */
  8717. #line 3063 "MachineIndependent/glslang.y"
  8718. {
  8719. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8720. (yyval.interm.type).basicType = EbtSampler;
  8721. (yyval.interm.type).sampler.setImage(EbtInt, EsdRect);
  8722. }
  8723. #line 9422 "MachineIndependent/glslang_tab.cpp"
  8724. break;
  8725. case 454: /* type_specifier_nonarray: UIMAGE2DRECT */
  8726. #line 3068 "MachineIndependent/glslang.y"
  8727. {
  8728. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8729. (yyval.interm.type).basicType = EbtSampler;
  8730. (yyval.interm.type).sampler.setImage(EbtUint, EsdRect);
  8731. }
  8732. #line 9432 "MachineIndependent/glslang_tab.cpp"
  8733. break;
  8734. case 455: /* type_specifier_nonarray: IMAGECUBE */
  8735. #line 3073 "MachineIndependent/glslang.y"
  8736. {
  8737. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8738. (yyval.interm.type).basicType = EbtSampler;
  8739. (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube);
  8740. }
  8741. #line 9442 "MachineIndependent/glslang_tab.cpp"
  8742. break;
  8743. case 456: /* type_specifier_nonarray: F16IMAGECUBE */
  8744. #line 3078 "MachineIndependent/glslang.y"
  8745. {
  8746. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8747. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8748. (yyval.interm.type).basicType = EbtSampler;
  8749. (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube);
  8750. }
  8751. #line 9453 "MachineIndependent/glslang_tab.cpp"
  8752. break;
  8753. case 457: /* type_specifier_nonarray: IIMAGECUBE */
  8754. #line 3084 "MachineIndependent/glslang.y"
  8755. {
  8756. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8757. (yyval.interm.type).basicType = EbtSampler;
  8758. (yyval.interm.type).sampler.setImage(EbtInt, EsdCube);
  8759. }
  8760. #line 9463 "MachineIndependent/glslang_tab.cpp"
  8761. break;
  8762. case 458: /* type_specifier_nonarray: UIMAGECUBE */
  8763. #line 3089 "MachineIndependent/glslang.y"
  8764. {
  8765. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8766. (yyval.interm.type).basicType = EbtSampler;
  8767. (yyval.interm.type).sampler.setImage(EbtUint, EsdCube);
  8768. }
  8769. #line 9473 "MachineIndependent/glslang_tab.cpp"
  8770. break;
  8771. case 459: /* type_specifier_nonarray: IMAGEBUFFER */
  8772. #line 3094 "MachineIndependent/glslang.y"
  8773. {
  8774. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8775. (yyval.interm.type).basicType = EbtSampler;
  8776. (yyval.interm.type).sampler.setImage(EbtFloat, EsdBuffer);
  8777. }
  8778. #line 9483 "MachineIndependent/glslang_tab.cpp"
  8779. break;
  8780. case 460: /* type_specifier_nonarray: F16IMAGEBUFFER */
  8781. #line 3099 "MachineIndependent/glslang.y"
  8782. {
  8783. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8784. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8785. (yyval.interm.type).basicType = EbtSampler;
  8786. (yyval.interm.type).sampler.setImage(EbtFloat16, EsdBuffer);
  8787. }
  8788. #line 9494 "MachineIndependent/glslang_tab.cpp"
  8789. break;
  8790. case 461: /* type_specifier_nonarray: IIMAGEBUFFER */
  8791. #line 3105 "MachineIndependent/glslang.y"
  8792. {
  8793. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8794. (yyval.interm.type).basicType = EbtSampler;
  8795. (yyval.interm.type).sampler.setImage(EbtInt, EsdBuffer);
  8796. }
  8797. #line 9504 "MachineIndependent/glslang_tab.cpp"
  8798. break;
  8799. case 462: /* type_specifier_nonarray: UIMAGEBUFFER */
  8800. #line 3110 "MachineIndependent/glslang.y"
  8801. {
  8802. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8803. (yyval.interm.type).basicType = EbtSampler;
  8804. (yyval.interm.type).sampler.setImage(EbtUint, EsdBuffer);
  8805. }
  8806. #line 9514 "MachineIndependent/glslang_tab.cpp"
  8807. break;
  8808. case 463: /* type_specifier_nonarray: IMAGE1DARRAY */
  8809. #line 3115 "MachineIndependent/glslang.y"
  8810. {
  8811. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8812. (yyval.interm.type).basicType = EbtSampler;
  8813. (yyval.interm.type).sampler.setImage(EbtFloat, Esd1D, true);
  8814. }
  8815. #line 9524 "MachineIndependent/glslang_tab.cpp"
  8816. break;
  8817. case 464: /* type_specifier_nonarray: F16IMAGE1DARRAY */
  8818. #line 3120 "MachineIndependent/glslang.y"
  8819. {
  8820. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8821. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8822. (yyval.interm.type).basicType = EbtSampler;
  8823. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd1D, true);
  8824. }
  8825. #line 9535 "MachineIndependent/glslang_tab.cpp"
  8826. break;
  8827. case 465: /* type_specifier_nonarray: IIMAGE1DARRAY */
  8828. #line 3126 "MachineIndependent/glslang.y"
  8829. {
  8830. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8831. (yyval.interm.type).basicType = EbtSampler;
  8832. (yyval.interm.type).sampler.setImage(EbtInt, Esd1D, true);
  8833. }
  8834. #line 9545 "MachineIndependent/glslang_tab.cpp"
  8835. break;
  8836. case 466: /* type_specifier_nonarray: UIMAGE1DARRAY */
  8837. #line 3131 "MachineIndependent/glslang.y"
  8838. {
  8839. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8840. (yyval.interm.type).basicType = EbtSampler;
  8841. (yyval.interm.type).sampler.setImage(EbtUint, Esd1D, true);
  8842. }
  8843. #line 9555 "MachineIndependent/glslang_tab.cpp"
  8844. break;
  8845. case 467: /* type_specifier_nonarray: IMAGE2DARRAY */
  8846. #line 3136 "MachineIndependent/glslang.y"
  8847. {
  8848. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8849. (yyval.interm.type).basicType = EbtSampler;
  8850. (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true);
  8851. }
  8852. #line 9565 "MachineIndependent/glslang_tab.cpp"
  8853. break;
  8854. case 468: /* type_specifier_nonarray: F16IMAGE2DARRAY */
  8855. #line 3141 "MachineIndependent/glslang.y"
  8856. {
  8857. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8858. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8859. (yyval.interm.type).basicType = EbtSampler;
  8860. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true);
  8861. }
  8862. #line 9576 "MachineIndependent/glslang_tab.cpp"
  8863. break;
  8864. case 469: /* type_specifier_nonarray: IIMAGE2DARRAY */
  8865. #line 3147 "MachineIndependent/glslang.y"
  8866. {
  8867. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8868. (yyval.interm.type).basicType = EbtSampler;
  8869. (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true);
  8870. }
  8871. #line 9586 "MachineIndependent/glslang_tab.cpp"
  8872. break;
  8873. case 470: /* type_specifier_nonarray: UIMAGE2DARRAY */
  8874. #line 3152 "MachineIndependent/glslang.y"
  8875. {
  8876. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8877. (yyval.interm.type).basicType = EbtSampler;
  8878. (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true);
  8879. }
  8880. #line 9596 "MachineIndependent/glslang_tab.cpp"
  8881. break;
  8882. case 471: /* type_specifier_nonarray: IMAGECUBEARRAY */
  8883. #line 3157 "MachineIndependent/glslang.y"
  8884. {
  8885. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8886. (yyval.interm.type).basicType = EbtSampler;
  8887. (yyval.interm.type).sampler.setImage(EbtFloat, EsdCube, true);
  8888. }
  8889. #line 9606 "MachineIndependent/glslang_tab.cpp"
  8890. break;
  8891. case 472: /* type_specifier_nonarray: F16IMAGECUBEARRAY */
  8892. #line 3162 "MachineIndependent/glslang.y"
  8893. {
  8894. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8895. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8896. (yyval.interm.type).basicType = EbtSampler;
  8897. (yyval.interm.type).sampler.setImage(EbtFloat16, EsdCube, true);
  8898. }
  8899. #line 9617 "MachineIndependent/glslang_tab.cpp"
  8900. break;
  8901. case 473: /* type_specifier_nonarray: IIMAGECUBEARRAY */
  8902. #line 3168 "MachineIndependent/glslang.y"
  8903. {
  8904. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8905. (yyval.interm.type).basicType = EbtSampler;
  8906. (yyval.interm.type).sampler.setImage(EbtInt, EsdCube, true);
  8907. }
  8908. #line 9627 "MachineIndependent/glslang_tab.cpp"
  8909. break;
  8910. case 474: /* type_specifier_nonarray: UIMAGECUBEARRAY */
  8911. #line 3173 "MachineIndependent/glslang.y"
  8912. {
  8913. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8914. (yyval.interm.type).basicType = EbtSampler;
  8915. (yyval.interm.type).sampler.setImage(EbtUint, EsdCube, true);
  8916. }
  8917. #line 9637 "MachineIndependent/glslang_tab.cpp"
  8918. break;
  8919. case 475: /* type_specifier_nonarray: IMAGE2DMS */
  8920. #line 3178 "MachineIndependent/glslang.y"
  8921. {
  8922. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8923. (yyval.interm.type).basicType = EbtSampler;
  8924. (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, false, false, true);
  8925. }
  8926. #line 9647 "MachineIndependent/glslang_tab.cpp"
  8927. break;
  8928. case 476: /* type_specifier_nonarray: F16IMAGE2DMS */
  8929. #line 3183 "MachineIndependent/glslang.y"
  8930. {
  8931. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8932. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8933. (yyval.interm.type).basicType = EbtSampler;
  8934. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, false, false, true);
  8935. }
  8936. #line 9658 "MachineIndependent/glslang_tab.cpp"
  8937. break;
  8938. case 477: /* type_specifier_nonarray: IIMAGE2DMS */
  8939. #line 3189 "MachineIndependent/glslang.y"
  8940. {
  8941. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8942. (yyval.interm.type).basicType = EbtSampler;
  8943. (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, false, false, true);
  8944. }
  8945. #line 9668 "MachineIndependent/glslang_tab.cpp"
  8946. break;
  8947. case 478: /* type_specifier_nonarray: UIMAGE2DMS */
  8948. #line 3194 "MachineIndependent/glslang.y"
  8949. {
  8950. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8951. (yyval.interm.type).basicType = EbtSampler;
  8952. (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, false, false, true);
  8953. }
  8954. #line 9678 "MachineIndependent/glslang_tab.cpp"
  8955. break;
  8956. case 479: /* type_specifier_nonarray: IMAGE2DMSARRAY */
  8957. #line 3199 "MachineIndependent/glslang.y"
  8958. {
  8959. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8960. (yyval.interm.type).basicType = EbtSampler;
  8961. (yyval.interm.type).sampler.setImage(EbtFloat, Esd2D, true, false, true);
  8962. }
  8963. #line 9688 "MachineIndependent/glslang_tab.cpp"
  8964. break;
  8965. case 480: /* type_specifier_nonarray: F16IMAGE2DMSARRAY */
  8966. #line 3204 "MachineIndependent/glslang.y"
  8967. {
  8968. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float image", parseContext.symbolTable.atBuiltInLevel());
  8969. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8970. (yyval.interm.type).basicType = EbtSampler;
  8971. (yyval.interm.type).sampler.setImage(EbtFloat16, Esd2D, true, false, true);
  8972. }
  8973. #line 9699 "MachineIndependent/glslang_tab.cpp"
  8974. break;
  8975. case 481: /* type_specifier_nonarray: IIMAGE2DMSARRAY */
  8976. #line 3210 "MachineIndependent/glslang.y"
  8977. {
  8978. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8979. (yyval.interm.type).basicType = EbtSampler;
  8980. (yyval.interm.type).sampler.setImage(EbtInt, Esd2D, true, false, true);
  8981. }
  8982. #line 9709 "MachineIndependent/glslang_tab.cpp"
  8983. break;
  8984. case 482: /* type_specifier_nonarray: UIMAGE2DMSARRAY */
  8985. #line 3215 "MachineIndependent/glslang.y"
  8986. {
  8987. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8988. (yyval.interm.type).basicType = EbtSampler;
  8989. (yyval.interm.type).sampler.setImage(EbtUint, Esd2D, true, false, true);
  8990. }
  8991. #line 9719 "MachineIndependent/glslang_tab.cpp"
  8992. break;
  8993. case 483: /* type_specifier_nonarray: I64IMAGE1D */
  8994. #line 3220 "MachineIndependent/glslang.y"
  8995. {
  8996. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  8997. (yyval.interm.type).basicType = EbtSampler;
  8998. (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D);
  8999. }
  9000. #line 9729 "MachineIndependent/glslang_tab.cpp"
  9001. break;
  9002. case 484: /* type_specifier_nonarray: U64IMAGE1D */
  9003. #line 3225 "MachineIndependent/glslang.y"
  9004. {
  9005. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9006. (yyval.interm.type).basicType = EbtSampler;
  9007. (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D);
  9008. }
  9009. #line 9739 "MachineIndependent/glslang_tab.cpp"
  9010. break;
  9011. case 485: /* type_specifier_nonarray: I64IMAGE2D */
  9012. #line 3230 "MachineIndependent/glslang.y"
  9013. {
  9014. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9015. (yyval.interm.type).basicType = EbtSampler;
  9016. (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D);
  9017. }
  9018. #line 9749 "MachineIndependent/glslang_tab.cpp"
  9019. break;
  9020. case 486: /* type_specifier_nonarray: U64IMAGE2D */
  9021. #line 3235 "MachineIndependent/glslang.y"
  9022. {
  9023. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9024. (yyval.interm.type).basicType = EbtSampler;
  9025. (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D);
  9026. }
  9027. #line 9759 "MachineIndependent/glslang_tab.cpp"
  9028. break;
  9029. case 487: /* type_specifier_nonarray: I64IMAGE3D */
  9030. #line 3240 "MachineIndependent/glslang.y"
  9031. {
  9032. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9033. (yyval.interm.type).basicType = EbtSampler;
  9034. (yyval.interm.type).sampler.setImage(EbtInt64, Esd3D);
  9035. }
  9036. #line 9769 "MachineIndependent/glslang_tab.cpp"
  9037. break;
  9038. case 488: /* type_specifier_nonarray: U64IMAGE3D */
  9039. #line 3245 "MachineIndependent/glslang.y"
  9040. {
  9041. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9042. (yyval.interm.type).basicType = EbtSampler;
  9043. (yyval.interm.type).sampler.setImage(EbtUint64, Esd3D);
  9044. }
  9045. #line 9779 "MachineIndependent/glslang_tab.cpp"
  9046. break;
  9047. case 489: /* type_specifier_nonarray: I64IMAGE2DRECT */
  9048. #line 3250 "MachineIndependent/glslang.y"
  9049. {
  9050. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9051. (yyval.interm.type).basicType = EbtSampler;
  9052. (yyval.interm.type).sampler.setImage(EbtInt64, EsdRect);
  9053. }
  9054. #line 9789 "MachineIndependent/glslang_tab.cpp"
  9055. break;
  9056. case 490: /* type_specifier_nonarray: U64IMAGE2DRECT */
  9057. #line 3255 "MachineIndependent/glslang.y"
  9058. {
  9059. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9060. (yyval.interm.type).basicType = EbtSampler;
  9061. (yyval.interm.type).sampler.setImage(EbtUint64, EsdRect);
  9062. }
  9063. #line 9799 "MachineIndependent/glslang_tab.cpp"
  9064. break;
  9065. case 491: /* type_specifier_nonarray: I64IMAGECUBE */
  9066. #line 3260 "MachineIndependent/glslang.y"
  9067. {
  9068. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9069. (yyval.interm.type).basicType = EbtSampler;
  9070. (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube);
  9071. }
  9072. #line 9809 "MachineIndependent/glslang_tab.cpp"
  9073. break;
  9074. case 492: /* type_specifier_nonarray: U64IMAGECUBE */
  9075. #line 3265 "MachineIndependent/glslang.y"
  9076. {
  9077. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9078. (yyval.interm.type).basicType = EbtSampler;
  9079. (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube);
  9080. }
  9081. #line 9819 "MachineIndependent/glslang_tab.cpp"
  9082. break;
  9083. case 493: /* type_specifier_nonarray: I64IMAGEBUFFER */
  9084. #line 3270 "MachineIndependent/glslang.y"
  9085. {
  9086. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9087. (yyval.interm.type).basicType = EbtSampler;
  9088. (yyval.interm.type).sampler.setImage(EbtInt64, EsdBuffer);
  9089. }
  9090. #line 9829 "MachineIndependent/glslang_tab.cpp"
  9091. break;
  9092. case 494: /* type_specifier_nonarray: U64IMAGEBUFFER */
  9093. #line 3275 "MachineIndependent/glslang.y"
  9094. {
  9095. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9096. (yyval.interm.type).basicType = EbtSampler;
  9097. (yyval.interm.type).sampler.setImage(EbtUint64, EsdBuffer);
  9098. }
  9099. #line 9839 "MachineIndependent/glslang_tab.cpp"
  9100. break;
  9101. case 495: /* type_specifier_nonarray: I64IMAGE1DARRAY */
  9102. #line 3280 "MachineIndependent/glslang.y"
  9103. {
  9104. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9105. (yyval.interm.type).basicType = EbtSampler;
  9106. (yyval.interm.type).sampler.setImage(EbtInt64, Esd1D, true);
  9107. }
  9108. #line 9849 "MachineIndependent/glslang_tab.cpp"
  9109. break;
  9110. case 496: /* type_specifier_nonarray: U64IMAGE1DARRAY */
  9111. #line 3285 "MachineIndependent/glslang.y"
  9112. {
  9113. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9114. (yyval.interm.type).basicType = EbtSampler;
  9115. (yyval.interm.type).sampler.setImage(EbtUint64, Esd1D, true);
  9116. }
  9117. #line 9859 "MachineIndependent/glslang_tab.cpp"
  9118. break;
  9119. case 497: /* type_specifier_nonarray: I64IMAGE2DARRAY */
  9120. #line 3290 "MachineIndependent/glslang.y"
  9121. {
  9122. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9123. (yyval.interm.type).basicType = EbtSampler;
  9124. (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true);
  9125. }
  9126. #line 9869 "MachineIndependent/glslang_tab.cpp"
  9127. break;
  9128. case 498: /* type_specifier_nonarray: U64IMAGE2DARRAY */
  9129. #line 3295 "MachineIndependent/glslang.y"
  9130. {
  9131. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9132. (yyval.interm.type).basicType = EbtSampler;
  9133. (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true);
  9134. }
  9135. #line 9879 "MachineIndependent/glslang_tab.cpp"
  9136. break;
  9137. case 499: /* type_specifier_nonarray: I64IMAGECUBEARRAY */
  9138. #line 3300 "MachineIndependent/glslang.y"
  9139. {
  9140. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9141. (yyval.interm.type).basicType = EbtSampler;
  9142. (yyval.interm.type).sampler.setImage(EbtInt64, EsdCube, true);
  9143. }
  9144. #line 9889 "MachineIndependent/glslang_tab.cpp"
  9145. break;
  9146. case 500: /* type_specifier_nonarray: U64IMAGECUBEARRAY */
  9147. #line 3305 "MachineIndependent/glslang.y"
  9148. {
  9149. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9150. (yyval.interm.type).basicType = EbtSampler;
  9151. (yyval.interm.type).sampler.setImage(EbtUint64, EsdCube, true);
  9152. }
  9153. #line 9899 "MachineIndependent/glslang_tab.cpp"
  9154. break;
  9155. case 501: /* type_specifier_nonarray: I64IMAGE2DMS */
  9156. #line 3310 "MachineIndependent/glslang.y"
  9157. {
  9158. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9159. (yyval.interm.type).basicType = EbtSampler;
  9160. (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, false, false, true);
  9161. }
  9162. #line 9909 "MachineIndependent/glslang_tab.cpp"
  9163. break;
  9164. case 502: /* type_specifier_nonarray: U64IMAGE2DMS */
  9165. #line 3315 "MachineIndependent/glslang.y"
  9166. {
  9167. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9168. (yyval.interm.type).basicType = EbtSampler;
  9169. (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, false, false, true);
  9170. }
  9171. #line 9919 "MachineIndependent/glslang_tab.cpp"
  9172. break;
  9173. case 503: /* type_specifier_nonarray: I64IMAGE2DMSARRAY */
  9174. #line 3320 "MachineIndependent/glslang.y"
  9175. {
  9176. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9177. (yyval.interm.type).basicType = EbtSampler;
  9178. (yyval.interm.type).sampler.setImage(EbtInt64, Esd2D, true, false, true);
  9179. }
  9180. #line 9929 "MachineIndependent/glslang_tab.cpp"
  9181. break;
  9182. case 504: /* type_specifier_nonarray: U64IMAGE2DMSARRAY */
  9183. #line 3325 "MachineIndependent/glslang.y"
  9184. {
  9185. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9186. (yyval.interm.type).basicType = EbtSampler;
  9187. (yyval.interm.type).sampler.setImage(EbtUint64, Esd2D, true, false, true);
  9188. }
  9189. #line 9939 "MachineIndependent/glslang_tab.cpp"
  9190. break;
  9191. case 505: /* type_specifier_nonarray: SAMPLEREXTERNALOES */
  9192. #line 3330 "MachineIndependent/glslang.y"
  9193. { // GL_OES_EGL_image_external
  9194. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9195. (yyval.interm.type).basicType = EbtSampler;
  9196. (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
  9197. (yyval.interm.type).sampler.external = true;
  9198. }
  9199. #line 9950 "MachineIndependent/glslang_tab.cpp"
  9200. break;
  9201. case 506: /* type_specifier_nonarray: SAMPLEREXTERNAL2DY2YEXT */
  9202. #line 3336 "MachineIndependent/glslang.y"
  9203. { // GL_EXT_YUV_target
  9204. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9205. (yyval.interm.type).basicType = EbtSampler;
  9206. (yyval.interm.type).sampler.set(EbtFloat, Esd2D);
  9207. (yyval.interm.type).sampler.yuv = true;
  9208. }
  9209. #line 9961 "MachineIndependent/glslang_tab.cpp"
  9210. break;
  9211. case 507: /* type_specifier_nonarray: SUBPASSINPUT */
  9212. #line 3342 "MachineIndependent/glslang.y"
  9213. {
  9214. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9215. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9216. (yyval.interm.type).basicType = EbtSampler;
  9217. (yyval.interm.type).sampler.setSubpass(EbtFloat);
  9218. }
  9219. #line 9972 "MachineIndependent/glslang_tab.cpp"
  9220. break;
  9221. case 508: /* type_specifier_nonarray: SUBPASSINPUTMS */
  9222. #line 3348 "MachineIndependent/glslang.y"
  9223. {
  9224. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9225. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9226. (yyval.interm.type).basicType = EbtSampler;
  9227. (yyval.interm.type).sampler.setSubpass(EbtFloat, true);
  9228. }
  9229. #line 9983 "MachineIndependent/glslang_tab.cpp"
  9230. break;
  9231. case 509: /* type_specifier_nonarray: F16SUBPASSINPUT */
  9232. #line 3354 "MachineIndependent/glslang.y"
  9233. {
  9234. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
  9235. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9236. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9237. (yyval.interm.type).basicType = EbtSampler;
  9238. (yyval.interm.type).sampler.setSubpass(EbtFloat16);
  9239. }
  9240. #line 9995 "MachineIndependent/glslang_tab.cpp"
  9241. break;
  9242. case 510: /* type_specifier_nonarray: F16SUBPASSINPUTMS */
  9243. #line 3361 "MachineIndependent/glslang.y"
  9244. {
  9245. parseContext.float16OpaqueCheck((yyvsp[0].lex).loc, "half float subpass input", parseContext.symbolTable.atBuiltInLevel());
  9246. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9247. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9248. (yyval.interm.type).basicType = EbtSampler;
  9249. (yyval.interm.type).sampler.setSubpass(EbtFloat16, true);
  9250. }
  9251. #line 10007 "MachineIndependent/glslang_tab.cpp"
  9252. break;
  9253. case 511: /* type_specifier_nonarray: ISUBPASSINPUT */
  9254. #line 3368 "MachineIndependent/glslang.y"
  9255. {
  9256. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9257. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9258. (yyval.interm.type).basicType = EbtSampler;
  9259. (yyval.interm.type).sampler.setSubpass(EbtInt);
  9260. }
  9261. #line 10018 "MachineIndependent/glslang_tab.cpp"
  9262. break;
  9263. case 512: /* type_specifier_nonarray: ISUBPASSINPUTMS */
  9264. #line 3374 "MachineIndependent/glslang.y"
  9265. {
  9266. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9267. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9268. (yyval.interm.type).basicType = EbtSampler;
  9269. (yyval.interm.type).sampler.setSubpass(EbtInt, true);
  9270. }
  9271. #line 10029 "MachineIndependent/glslang_tab.cpp"
  9272. break;
  9273. case 513: /* type_specifier_nonarray: USUBPASSINPUT */
  9274. #line 3380 "MachineIndependent/glslang.y"
  9275. {
  9276. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9277. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9278. (yyval.interm.type).basicType = EbtSampler;
  9279. (yyval.interm.type).sampler.setSubpass(EbtUint);
  9280. }
  9281. #line 10040 "MachineIndependent/glslang_tab.cpp"
  9282. break;
  9283. case 514: /* type_specifier_nonarray: USUBPASSINPUTMS */
  9284. #line 3386 "MachineIndependent/glslang.y"
  9285. {
  9286. parseContext.requireStage((yyvsp[0].lex).loc, EShLangFragment, "subpass input");
  9287. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9288. (yyval.interm.type).basicType = EbtSampler;
  9289. (yyval.interm.type).sampler.setSubpass(EbtUint, true);
  9290. }
  9291. #line 10051 "MachineIndependent/glslang_tab.cpp"
  9292. break;
  9293. case 515: /* type_specifier_nonarray: FCOOPMATNV */
  9294. #line 3392 "MachineIndependent/glslang.y"
  9295. {
  9296. parseContext.fcoopmatCheck((yyvsp[0].lex).loc, "fcoopmatNV", parseContext.symbolTable.atBuiltInLevel());
  9297. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9298. (yyval.interm.type).basicType = EbtFloat;
  9299. (yyval.interm.type).coopmat = true;
  9300. }
  9301. #line 10062 "MachineIndependent/glslang_tab.cpp"
  9302. break;
  9303. case 516: /* type_specifier_nonarray: ICOOPMATNV */
  9304. #line 3398 "MachineIndependent/glslang.y"
  9305. {
  9306. parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "icoopmatNV", parseContext.symbolTable.atBuiltInLevel());
  9307. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9308. (yyval.interm.type).basicType = EbtInt;
  9309. (yyval.interm.type).coopmat = true;
  9310. }
  9311. #line 10073 "MachineIndependent/glslang_tab.cpp"
  9312. break;
  9313. case 517: /* type_specifier_nonarray: UCOOPMATNV */
  9314. #line 3404 "MachineIndependent/glslang.y"
  9315. {
  9316. parseContext.intcoopmatCheck((yyvsp[0].lex).loc, "ucoopmatNV", parseContext.symbolTable.atBuiltInLevel());
  9317. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9318. (yyval.interm.type).basicType = EbtUint;
  9319. (yyval.interm.type).coopmat = true;
  9320. }
  9321. #line 10084 "MachineIndependent/glslang_tab.cpp"
  9322. break;
  9323. case 518: /* type_specifier_nonarray: struct_specifier */
  9324. #line 3411 "MachineIndependent/glslang.y"
  9325. {
  9326. (yyval.interm.type) = (yyvsp[0].interm.type);
  9327. (yyval.interm.type).qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary;
  9328. parseContext.structTypeCheck((yyval.interm.type).loc, (yyval.interm.type));
  9329. }
  9330. #line 10094 "MachineIndependent/glslang_tab.cpp"
  9331. break;
  9332. case 519: /* type_specifier_nonarray: TYPE_NAME */
  9333. #line 3416 "MachineIndependent/glslang.y"
  9334. {
  9335. //
  9336. // This is for user defined type names. The lexical phase looked up the
  9337. // type.
  9338. //
  9339. if (const TVariable* variable = ((yyvsp[0].lex).symbol)->getAsVariable()) {
  9340. const TType& structure = variable->getType();
  9341. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9342. (yyval.interm.type).basicType = EbtStruct;
  9343. (yyval.interm.type).userDef = &structure;
  9344. } else
  9345. parseContext.error((yyvsp[0].lex).loc, "expected type name", (yyvsp[0].lex).string->c_str(), "");
  9346. }
  9347. #line 10112 "MachineIndependent/glslang_tab.cpp"
  9348. break;
  9349. case 520: /* precision_qualifier: HIGH_PRECISION */
  9350. #line 3432 "MachineIndependent/glslang.y"
  9351. {
  9352. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "highp precision qualifier");
  9353. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9354. parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqHigh);
  9355. }
  9356. #line 10122 "MachineIndependent/glslang_tab.cpp"
  9357. break;
  9358. case 521: /* precision_qualifier: MEDIUM_PRECISION */
  9359. #line 3437 "MachineIndependent/glslang.y"
  9360. {
  9361. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "mediump precision qualifier");
  9362. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9363. parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqMedium);
  9364. }
  9365. #line 10132 "MachineIndependent/glslang_tab.cpp"
  9366. break;
  9367. case 522: /* precision_qualifier: LOW_PRECISION */
  9368. #line 3442 "MachineIndependent/glslang.y"
  9369. {
  9370. parseContext.profileRequires((yyvsp[0].lex).loc, ENoProfile, 130, 0, "lowp precision qualifier");
  9371. (yyval.interm.type).init((yyvsp[0].lex).loc, parseContext.symbolTable.atGlobalLevel());
  9372. parseContext.handlePrecisionQualifier((yyvsp[0].lex).loc, (yyval.interm.type).qualifier, EpqLow);
  9373. }
  9374. #line 10142 "MachineIndependent/glslang_tab.cpp"
  9375. break;
  9376. case 523: /* $@3: %empty */
  9377. #line 3450 "MachineIndependent/glslang.y"
  9378. { parseContext.nestedStructCheck((yyvsp[-2].lex).loc); }
  9379. #line 10148 "MachineIndependent/glslang_tab.cpp"
  9380. break;
  9381. case 524: /* struct_specifier: STRUCT IDENTIFIER LEFT_BRACE $@3 struct_declaration_list RIGHT_BRACE */
  9382. #line 3450 "MachineIndependent/glslang.y"
  9383. {
  9384. TType* structure = new TType((yyvsp[-1].interm.typeList), *(yyvsp[-4].lex).string);
  9385. parseContext.structArrayCheck((yyvsp[-4].lex).loc, *structure);
  9386. TVariable* userTypeDef = new TVariable((yyvsp[-4].lex).string, *structure, true);
  9387. if (! parseContext.symbolTable.insert(*userTypeDef))
  9388. parseContext.error((yyvsp[-4].lex).loc, "redefinition", (yyvsp[-4].lex).string->c_str(), "struct");
  9389. (yyval.interm.type).init((yyvsp[-5].lex).loc);
  9390. (yyval.interm.type).basicType = EbtStruct;
  9391. (yyval.interm.type).userDef = structure;
  9392. --parseContext.structNestingLevel;
  9393. }
  9394. #line 10164 "MachineIndependent/glslang_tab.cpp"
  9395. break;
  9396. case 525: /* $@4: %empty */
  9397. #line 3461 "MachineIndependent/glslang.y"
  9398. { parseContext.nestedStructCheck((yyvsp[-1].lex).loc); }
  9399. #line 10170 "MachineIndependent/glslang_tab.cpp"
  9400. break;
  9401. case 526: /* struct_specifier: STRUCT LEFT_BRACE $@4 struct_declaration_list RIGHT_BRACE */
  9402. #line 3461 "MachineIndependent/glslang.y"
  9403. {
  9404. TType* structure = new TType((yyvsp[-1].interm.typeList), TString(""));
  9405. (yyval.interm.type).init((yyvsp[-4].lex).loc);
  9406. (yyval.interm.type).basicType = EbtStruct;
  9407. (yyval.interm.type).userDef = structure;
  9408. --parseContext.structNestingLevel;
  9409. }
  9410. #line 10182 "MachineIndependent/glslang_tab.cpp"
  9411. break;
  9412. case 527: /* struct_declaration_list: struct_declaration */
  9413. #line 3471 "MachineIndependent/glslang.y"
  9414. {
  9415. (yyval.interm.typeList) = (yyvsp[0].interm.typeList);
  9416. }
  9417. #line 10190 "MachineIndependent/glslang_tab.cpp"
  9418. break;
  9419. case 528: /* struct_declaration_list: struct_declaration_list struct_declaration */
  9420. #line 3474 "MachineIndependent/glslang.y"
  9421. {
  9422. (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
  9423. for (unsigned int i = 0; i < (yyvsp[0].interm.typeList)->size(); ++i) {
  9424. for (unsigned int j = 0; j < (yyval.interm.typeList)->size(); ++j) {
  9425. if ((*(yyval.interm.typeList))[j].type->getFieldName() == (*(yyvsp[0].interm.typeList))[i].type->getFieldName())
  9426. parseContext.error((*(yyvsp[0].interm.typeList))[i].loc, "duplicate member name:", "", (*(yyvsp[0].interm.typeList))[i].type->getFieldName().c_str());
  9427. }
  9428. (yyval.interm.typeList)->push_back((*(yyvsp[0].interm.typeList))[i]);
  9429. }
  9430. }
  9431. #line 10205 "MachineIndependent/glslang_tab.cpp"
  9432. break;
  9433. case 529: /* struct_declaration: type_specifier struct_declarator_list SEMICOLON */
  9434. #line 3487 "MachineIndependent/glslang.y"
  9435. {
  9436. if ((yyvsp[-2].interm.type).arraySizes) {
  9437. parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
  9438. parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
  9439. if (parseContext.isEsProfile())
  9440. parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
  9441. }
  9442. (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
  9443. parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
  9444. parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
  9445. for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
  9446. TType type((yyvsp[-2].interm.type));
  9447. type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
  9448. type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
  9449. type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
  9450. parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
  9451. (*(yyval.interm.typeList))[i].type->shallowCopy(type);
  9452. }
  9453. }
  9454. #line 10232 "MachineIndependent/glslang_tab.cpp"
  9455. break;
  9456. case 530: /* struct_declaration: type_qualifier type_specifier struct_declarator_list SEMICOLON */
  9457. #line 3509 "MachineIndependent/glslang.y"
  9458. {
  9459. if ((yyvsp[-2].interm.type).arraySizes) {
  9460. parseContext.profileRequires((yyvsp[-2].interm.type).loc, ENoProfile, 120, E_GL_3DL_array_objects, "arrayed type");
  9461. parseContext.profileRequires((yyvsp[-2].interm.type).loc, EEsProfile, 300, 0, "arrayed type");
  9462. if (parseContext.isEsProfile())
  9463. parseContext.arraySizeRequiredCheck((yyvsp[-2].interm.type).loc, *(yyvsp[-2].interm.type).arraySizes);
  9464. }
  9465. (yyval.interm.typeList) = (yyvsp[-1].interm.typeList);
  9466. parseContext.memberQualifierCheck((yyvsp[-3].interm.type));
  9467. parseContext.voidErrorCheck((yyvsp[-2].interm.type).loc, (*(yyvsp[-1].interm.typeList))[0].type->getFieldName(), (yyvsp[-2].interm.type).basicType);
  9468. parseContext.mergeQualifiers((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).qualifier, (yyvsp[-3].interm.type).qualifier, true);
  9469. parseContext.precisionQualifierCheck((yyvsp[-2].interm.type).loc, (yyvsp[-2].interm.type).basicType, (yyvsp[-2].interm.type).qualifier);
  9470. for (unsigned int i = 0; i < (yyval.interm.typeList)->size(); ++i) {
  9471. TType type((yyvsp[-2].interm.type));
  9472. type.setFieldName((*(yyval.interm.typeList))[i].type->getFieldName());
  9473. type.transferArraySizes((*(yyval.interm.typeList))[i].type->getArraySizes());
  9474. type.copyArrayInnerSizes((yyvsp[-2].interm.type).arraySizes);
  9475. parseContext.arrayOfArrayVersionCheck((*(yyval.interm.typeList))[i].loc, type.getArraySizes());
  9476. (*(yyval.interm.typeList))[i].type->shallowCopy(type);
  9477. }
  9478. }
  9479. #line 10261 "MachineIndependent/glslang_tab.cpp"
  9480. break;
  9481. case 531: /* struct_declarator_list: struct_declarator */
  9482. #line 3536 "MachineIndependent/glslang.y"
  9483. {
  9484. (yyval.interm.typeList) = new TTypeList;
  9485. (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
  9486. }
  9487. #line 10270 "MachineIndependent/glslang_tab.cpp"
  9488. break;
  9489. case 532: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */
  9490. #line 3540 "MachineIndependent/glslang.y"
  9491. {
  9492. (yyval.interm.typeList)->push_back((yyvsp[0].interm.typeLine));
  9493. }
  9494. #line 10278 "MachineIndependent/glslang_tab.cpp"
  9495. break;
  9496. case 533: /* struct_declarator: IDENTIFIER */
  9497. #line 3546 "MachineIndependent/glslang.y"
  9498. {
  9499. (yyval.interm.typeLine).type = new TType(EbtVoid);
  9500. (yyval.interm.typeLine).loc = (yyvsp[0].lex).loc;
  9501. (yyval.interm.typeLine).type->setFieldName(*(yyvsp[0].lex).string);
  9502. }
  9503. #line 10288 "MachineIndependent/glslang_tab.cpp"
  9504. break;
  9505. case 534: /* struct_declarator: IDENTIFIER array_specifier */
  9506. #line 3551 "MachineIndependent/glslang.y"
  9507. {
  9508. parseContext.arrayOfArrayVersionCheck((yyvsp[-1].lex).loc, (yyvsp[0].interm).arraySizes);
  9509. (yyval.interm.typeLine).type = new TType(EbtVoid);
  9510. (yyval.interm.typeLine).loc = (yyvsp[-1].lex).loc;
  9511. (yyval.interm.typeLine).type->setFieldName(*(yyvsp[-1].lex).string);
  9512. (yyval.interm.typeLine).type->transferArraySizes((yyvsp[0].interm).arraySizes);
  9513. }
  9514. #line 10301 "MachineIndependent/glslang_tab.cpp"
  9515. break;
  9516. case 535: /* initializer: assignment_expression */
  9517. #line 3562 "MachineIndependent/glslang.y"
  9518. {
  9519. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  9520. }
  9521. #line 10309 "MachineIndependent/glslang_tab.cpp"
  9522. break;
  9523. case 536: /* initializer: LEFT_BRACE initializer_list RIGHT_BRACE */
  9524. #line 3566 "MachineIndependent/glslang.y"
  9525. {
  9526. const char* initFeature = "{ } style initializers";
  9527. parseContext.requireProfile((yyvsp[-2].lex).loc, ~EEsProfile, initFeature);
  9528. parseContext.profileRequires((yyvsp[-2].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
  9529. (yyval.interm.intermTypedNode) = (yyvsp[-1].interm.intermTypedNode);
  9530. }
  9531. #line 10320 "MachineIndependent/glslang_tab.cpp"
  9532. break;
  9533. case 537: /* initializer: LEFT_BRACE initializer_list COMMA RIGHT_BRACE */
  9534. #line 3572 "MachineIndependent/glslang.y"
  9535. {
  9536. const char* initFeature = "{ } style initializers";
  9537. parseContext.requireProfile((yyvsp[-3].lex).loc, ~EEsProfile, initFeature);
  9538. parseContext.profileRequires((yyvsp[-3].lex).loc, ~EEsProfile, 420, E_GL_ARB_shading_language_420pack, initFeature);
  9539. (yyval.interm.intermTypedNode) = (yyvsp[-2].interm.intermTypedNode);
  9540. }
  9541. #line 10331 "MachineIndependent/glslang_tab.cpp"
  9542. break;
  9543. case 538: /* initializer: LEFT_BRACE RIGHT_BRACE */
  9544. #line 3578 "MachineIndependent/glslang.y"
  9545. {
  9546. const char* initFeature = "empty { } initializer";
  9547. parseContext.profileRequires((yyvsp[-1].lex).loc, EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
  9548. parseContext.profileRequires((yyvsp[-1].lex).loc, ~EEsProfile, 0, E_GL_EXT_null_initializer, initFeature);
  9549. (yyval.interm.intermTypedNode) = parseContext.intermediate.makeAggregate((yyvsp[-1].lex).loc);
  9550. }
  9551. #line 10342 "MachineIndependent/glslang_tab.cpp"
  9552. break;
  9553. case 539: /* initializer_list: initializer */
  9554. #line 3589 "MachineIndependent/glslang.y"
  9555. {
  9556. (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate(0, (yyvsp[0].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode)->getLoc());
  9557. }
  9558. #line 10350 "MachineIndependent/glslang_tab.cpp"
  9559. break;
  9560. case 540: /* initializer_list: initializer_list COMMA initializer */
  9561. #line 3592 "MachineIndependent/glslang.y"
  9562. {
  9563. (yyval.interm.intermTypedNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.intermTypedNode));
  9564. }
  9565. #line 10358 "MachineIndependent/glslang_tab.cpp"
  9566. break;
  9567. case 541: /* declaration_statement: declaration */
  9568. #line 3599 "MachineIndependent/glslang.y"
  9569. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9570. #line 10364 "MachineIndependent/glslang_tab.cpp"
  9571. break;
  9572. case 542: /* statement: compound_statement */
  9573. #line 3603 "MachineIndependent/glslang.y"
  9574. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9575. #line 10370 "MachineIndependent/glslang_tab.cpp"
  9576. break;
  9577. case 543: /* statement: simple_statement */
  9578. #line 3604 "MachineIndependent/glslang.y"
  9579. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9580. #line 10376 "MachineIndependent/glslang_tab.cpp"
  9581. break;
  9582. case 544: /* simple_statement: declaration_statement */
  9583. #line 3610 "MachineIndependent/glslang.y"
  9584. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9585. #line 10382 "MachineIndependent/glslang_tab.cpp"
  9586. break;
  9587. case 545: /* simple_statement: expression_statement */
  9588. #line 3611 "MachineIndependent/glslang.y"
  9589. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9590. #line 10388 "MachineIndependent/glslang_tab.cpp"
  9591. break;
  9592. case 546: /* simple_statement: selection_statement */
  9593. #line 3612 "MachineIndependent/glslang.y"
  9594. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9595. #line 10394 "MachineIndependent/glslang_tab.cpp"
  9596. break;
  9597. case 547: /* simple_statement: switch_statement */
  9598. #line 3613 "MachineIndependent/glslang.y"
  9599. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9600. #line 10400 "MachineIndependent/glslang_tab.cpp"
  9601. break;
  9602. case 548: /* simple_statement: case_label */
  9603. #line 3614 "MachineIndependent/glslang.y"
  9604. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9605. #line 10406 "MachineIndependent/glslang_tab.cpp"
  9606. break;
  9607. case 549: /* simple_statement: iteration_statement */
  9608. #line 3615 "MachineIndependent/glslang.y"
  9609. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9610. #line 10412 "MachineIndependent/glslang_tab.cpp"
  9611. break;
  9612. case 550: /* simple_statement: jump_statement */
  9613. #line 3616 "MachineIndependent/glslang.y"
  9614. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9615. #line 10418 "MachineIndependent/glslang_tab.cpp"
  9616. break;
  9617. case 551: /* simple_statement: demote_statement */
  9618. #line 3618 "MachineIndependent/glslang.y"
  9619. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9620. #line 10424 "MachineIndependent/glslang_tab.cpp"
  9621. break;
  9622. case 552: /* demote_statement: DEMOTE SEMICOLON */
  9623. #line 3624 "MachineIndependent/glslang.y"
  9624. {
  9625. parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "demote");
  9626. parseContext.requireExtensions((yyvsp[-1].lex).loc, 1, &E_GL_EXT_demote_to_helper_invocation, "demote");
  9627. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDemote, (yyvsp[-1].lex).loc);
  9628. }
  9629. #line 10434 "MachineIndependent/glslang_tab.cpp"
  9630. break;
  9631. case 553: /* compound_statement: LEFT_BRACE RIGHT_BRACE */
  9632. #line 3633 "MachineIndependent/glslang.y"
  9633. { (yyval.interm.intermNode) = 0; }
  9634. #line 10440 "MachineIndependent/glslang_tab.cpp"
  9635. break;
  9636. case 554: /* $@5: %empty */
  9637. #line 3634 "MachineIndependent/glslang.y"
  9638. {
  9639. parseContext.symbolTable.push();
  9640. ++parseContext.statementNestingLevel;
  9641. }
  9642. #line 10449 "MachineIndependent/glslang_tab.cpp"
  9643. break;
  9644. case 555: /* $@6: %empty */
  9645. #line 3638 "MachineIndependent/glslang.y"
  9646. {
  9647. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  9648. --parseContext.statementNestingLevel;
  9649. }
  9650. #line 10458 "MachineIndependent/glslang_tab.cpp"
  9651. break;
  9652. case 556: /* compound_statement: LEFT_BRACE $@5 statement_list $@6 RIGHT_BRACE */
  9653. #line 3642 "MachineIndependent/glslang.y"
  9654. {
  9655. if ((yyvsp[-2].interm.intermNode) && (yyvsp[-2].interm.intermNode)->getAsAggregate())
  9656. (yyvsp[-2].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
  9657. (yyval.interm.intermNode) = (yyvsp[-2].interm.intermNode);
  9658. }
  9659. #line 10468 "MachineIndependent/glslang_tab.cpp"
  9660. break;
  9661. case 557: /* statement_no_new_scope: compound_statement_no_new_scope */
  9662. #line 3650 "MachineIndependent/glslang.y"
  9663. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9664. #line 10474 "MachineIndependent/glslang_tab.cpp"
  9665. break;
  9666. case 558: /* statement_no_new_scope: simple_statement */
  9667. #line 3651 "MachineIndependent/glslang.y"
  9668. { (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode); }
  9669. #line 10480 "MachineIndependent/glslang_tab.cpp"
  9670. break;
  9671. case 559: /* $@7: %empty */
  9672. #line 3655 "MachineIndependent/glslang.y"
  9673. {
  9674. ++parseContext.controlFlowNestingLevel;
  9675. }
  9676. #line 10488 "MachineIndependent/glslang_tab.cpp"
  9677. break;
  9678. case 560: /* statement_scoped: $@7 compound_statement */
  9679. #line 3658 "MachineIndependent/glslang.y"
  9680. {
  9681. --parseContext.controlFlowNestingLevel;
  9682. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9683. }
  9684. #line 10497 "MachineIndependent/glslang_tab.cpp"
  9685. break;
  9686. case 561: /* $@8: %empty */
  9687. #line 3662 "MachineIndependent/glslang.y"
  9688. {
  9689. parseContext.symbolTable.push();
  9690. ++parseContext.statementNestingLevel;
  9691. ++parseContext.controlFlowNestingLevel;
  9692. }
  9693. #line 10507 "MachineIndependent/glslang_tab.cpp"
  9694. break;
  9695. case 562: /* statement_scoped: $@8 simple_statement */
  9696. #line 3667 "MachineIndependent/glslang.y"
  9697. {
  9698. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  9699. --parseContext.statementNestingLevel;
  9700. --parseContext.controlFlowNestingLevel;
  9701. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9702. }
  9703. #line 10518 "MachineIndependent/glslang_tab.cpp"
  9704. break;
  9705. case 563: /* compound_statement_no_new_scope: LEFT_BRACE RIGHT_BRACE */
  9706. #line 3676 "MachineIndependent/glslang.y"
  9707. {
  9708. (yyval.interm.intermNode) = 0;
  9709. }
  9710. #line 10526 "MachineIndependent/glslang_tab.cpp"
  9711. break;
  9712. case 564: /* compound_statement_no_new_scope: LEFT_BRACE statement_list RIGHT_BRACE */
  9713. #line 3679 "MachineIndependent/glslang.y"
  9714. {
  9715. if ((yyvsp[-1].interm.intermNode) && (yyvsp[-1].interm.intermNode)->getAsAggregate())
  9716. (yyvsp[-1].interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
  9717. (yyval.interm.intermNode) = (yyvsp[-1].interm.intermNode);
  9718. }
  9719. #line 10536 "MachineIndependent/glslang_tab.cpp"
  9720. break;
  9721. case 565: /* statement_list: statement */
  9722. #line 3687 "MachineIndependent/glslang.y"
  9723. {
  9724. (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[0].interm.intermNode));
  9725. if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
  9726. (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
  9727. parseContext.wrapupSwitchSubsequence(0, (yyvsp[0].interm.intermNode));
  9728. (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
  9729. }
  9730. }
  9731. #line 10549 "MachineIndependent/glslang_tab.cpp"
  9732. break;
  9733. case 566: /* statement_list: statement_list statement */
  9734. #line 3695 "MachineIndependent/glslang.y"
  9735. {
  9736. if ((yyvsp[0].interm.intermNode) && (yyvsp[0].interm.intermNode)->getAsBranchNode() && ((yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpCase ||
  9737. (yyvsp[0].interm.intermNode)->getAsBranchNode()->getFlowOp() == EOpDefault)) {
  9738. parseContext.wrapupSwitchSubsequence((yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0, (yyvsp[0].interm.intermNode));
  9739. (yyval.interm.intermNode) = 0; // start a fresh subsequence for what's after this case
  9740. } else
  9741. (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
  9742. }
  9743. #line 10562 "MachineIndependent/glslang_tab.cpp"
  9744. break;
  9745. case 567: /* expression_statement: SEMICOLON */
  9746. #line 3706 "MachineIndependent/glslang.y"
  9747. { (yyval.interm.intermNode) = 0; }
  9748. #line 10568 "MachineIndependent/glslang_tab.cpp"
  9749. break;
  9750. case 568: /* expression_statement: expression SEMICOLON */
  9751. #line 3707 "MachineIndependent/glslang.y"
  9752. { (yyval.interm.intermNode) = static_cast<TIntermNode*>((yyvsp[-1].interm.intermTypedNode)); }
  9753. #line 10574 "MachineIndependent/glslang_tab.cpp"
  9754. break;
  9755. case 569: /* selection_statement: selection_statement_nonattributed */
  9756. #line 3711 "MachineIndependent/glslang.y"
  9757. {
  9758. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9759. }
  9760. #line 10582 "MachineIndependent/glslang_tab.cpp"
  9761. break;
  9762. case 570: /* selection_statement: attribute selection_statement_nonattributed */
  9763. #line 3715 "MachineIndependent/glslang.y"
  9764. {
  9765. parseContext.handleSelectionAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
  9766. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9767. }
  9768. #line 10591 "MachineIndependent/glslang_tab.cpp"
  9769. break;
  9770. case 571: /* selection_statement_nonattributed: IF LEFT_PAREN expression RIGHT_PAREN selection_rest_statement */
  9771. #line 3722 "MachineIndependent/glslang.y"
  9772. {
  9773. parseContext.boolCheck((yyvsp[-4].lex).loc, (yyvsp[-2].interm.intermTypedNode));
  9774. (yyval.interm.intermNode) = parseContext.intermediate.addSelection((yyvsp[-2].interm.intermTypedNode), (yyvsp[0].interm.nodePair), (yyvsp[-4].lex).loc);
  9775. }
  9776. #line 10600 "MachineIndependent/glslang_tab.cpp"
  9777. break;
  9778. case 572: /* selection_rest_statement: statement_scoped ELSE statement_scoped */
  9779. #line 3729 "MachineIndependent/glslang.y"
  9780. {
  9781. (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermNode);
  9782. (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermNode);
  9783. }
  9784. #line 10609 "MachineIndependent/glslang_tab.cpp"
  9785. break;
  9786. case 573: /* selection_rest_statement: statement_scoped */
  9787. #line 3733 "MachineIndependent/glslang.y"
  9788. {
  9789. (yyval.interm.nodePair).node1 = (yyvsp[0].interm.intermNode);
  9790. (yyval.interm.nodePair).node2 = 0;
  9791. }
  9792. #line 10618 "MachineIndependent/glslang_tab.cpp"
  9793. break;
  9794. case 574: /* condition: expression */
  9795. #line 3741 "MachineIndependent/glslang.y"
  9796. {
  9797. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  9798. parseContext.boolCheck((yyvsp[0].interm.intermTypedNode)->getLoc(), (yyvsp[0].interm.intermTypedNode));
  9799. }
  9800. #line 10627 "MachineIndependent/glslang_tab.cpp"
  9801. break;
  9802. case 575: /* condition: fully_specified_type IDENTIFIER EQUAL initializer */
  9803. #line 3745 "MachineIndependent/glslang.y"
  9804. {
  9805. parseContext.boolCheck((yyvsp[-2].lex).loc, (yyvsp[-3].interm.type));
  9806. TType type((yyvsp[-3].interm.type));
  9807. TIntermNode* initNode = parseContext.declareVariable((yyvsp[-2].lex).loc, *(yyvsp[-2].lex).string, (yyvsp[-3].interm.type), 0, (yyvsp[0].interm.intermTypedNode));
  9808. if (initNode)
  9809. (yyval.interm.intermTypedNode) = initNode->getAsTyped();
  9810. else
  9811. (yyval.interm.intermTypedNode) = 0;
  9812. }
  9813. #line 10642 "MachineIndependent/glslang_tab.cpp"
  9814. break;
  9815. case 576: /* switch_statement: switch_statement_nonattributed */
  9816. #line 3758 "MachineIndependent/glslang.y"
  9817. {
  9818. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9819. }
  9820. #line 10650 "MachineIndependent/glslang_tab.cpp"
  9821. break;
  9822. case 577: /* switch_statement: attribute switch_statement_nonattributed */
  9823. #line 3762 "MachineIndependent/glslang.y"
  9824. {
  9825. parseContext.handleSwitchAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
  9826. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9827. }
  9828. #line 10659 "MachineIndependent/glslang_tab.cpp"
  9829. break;
  9830. case 578: /* $@9: %empty */
  9831. #line 3769 "MachineIndependent/glslang.y"
  9832. {
  9833. // start new switch sequence on the switch stack
  9834. ++parseContext.controlFlowNestingLevel;
  9835. ++parseContext.statementNestingLevel;
  9836. parseContext.switchSequenceStack.push_back(new TIntermSequence);
  9837. parseContext.switchLevel.push_back(parseContext.statementNestingLevel);
  9838. parseContext.symbolTable.push();
  9839. }
  9840. #line 10672 "MachineIndependent/glslang_tab.cpp"
  9841. break;
  9842. case 579: /* switch_statement_nonattributed: SWITCH LEFT_PAREN expression RIGHT_PAREN $@9 LEFT_BRACE switch_statement_list RIGHT_BRACE */
  9843. #line 3777 "MachineIndependent/glslang.y"
  9844. {
  9845. (yyval.interm.intermNode) = parseContext.addSwitch((yyvsp[-7].lex).loc, (yyvsp[-5].interm.intermTypedNode), (yyvsp[-1].interm.intermNode) ? (yyvsp[-1].interm.intermNode)->getAsAggregate() : 0);
  9846. delete parseContext.switchSequenceStack.back();
  9847. parseContext.switchSequenceStack.pop_back();
  9848. parseContext.switchLevel.pop_back();
  9849. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  9850. --parseContext.statementNestingLevel;
  9851. --parseContext.controlFlowNestingLevel;
  9852. }
  9853. #line 10686 "MachineIndependent/glslang_tab.cpp"
  9854. break;
  9855. case 580: /* switch_statement_list: %empty */
  9856. #line 3789 "MachineIndependent/glslang.y"
  9857. {
  9858. (yyval.interm.intermNode) = 0;
  9859. }
  9860. #line 10694 "MachineIndependent/glslang_tab.cpp"
  9861. break;
  9862. case 581: /* switch_statement_list: statement_list */
  9863. #line 3792 "MachineIndependent/glslang.y"
  9864. {
  9865. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9866. }
  9867. #line 10702 "MachineIndependent/glslang_tab.cpp"
  9868. break;
  9869. case 582: /* case_label: CASE expression COLON */
  9870. #line 3798 "MachineIndependent/glslang.y"
  9871. {
  9872. (yyval.interm.intermNode) = 0;
  9873. if (parseContext.switchLevel.size() == 0)
  9874. parseContext.error((yyvsp[-2].lex).loc, "cannot appear outside switch statement", "case", "");
  9875. else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
  9876. parseContext.error((yyvsp[-2].lex).loc, "cannot be nested inside control flow", "case", "");
  9877. else {
  9878. parseContext.constantValueCheck((yyvsp[-1].interm.intermTypedNode), "case");
  9879. parseContext.integerCheck((yyvsp[-1].interm.intermTypedNode), "case");
  9880. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpCase, (yyvsp[-1].interm.intermTypedNode), (yyvsp[-2].lex).loc);
  9881. }
  9882. }
  9883. #line 10719 "MachineIndependent/glslang_tab.cpp"
  9884. break;
  9885. case 583: /* case_label: DEFAULT COLON */
  9886. #line 3810 "MachineIndependent/glslang.y"
  9887. {
  9888. (yyval.interm.intermNode) = 0;
  9889. if (parseContext.switchLevel.size() == 0)
  9890. parseContext.error((yyvsp[-1].lex).loc, "cannot appear outside switch statement", "default", "");
  9891. else if (parseContext.switchLevel.back() != parseContext.statementNestingLevel)
  9892. parseContext.error((yyvsp[-1].lex).loc, "cannot be nested inside control flow", "default", "");
  9893. else
  9894. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpDefault, (yyvsp[-1].lex).loc);
  9895. }
  9896. #line 10733 "MachineIndependent/glslang_tab.cpp"
  9897. break;
  9898. case 584: /* iteration_statement: iteration_statement_nonattributed */
  9899. #line 3822 "MachineIndependent/glslang.y"
  9900. {
  9901. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9902. }
  9903. #line 10741 "MachineIndependent/glslang_tab.cpp"
  9904. break;
  9905. case 585: /* iteration_statement: attribute iteration_statement_nonattributed */
  9906. #line 3826 "MachineIndependent/glslang.y"
  9907. {
  9908. parseContext.handleLoopAttributes(*(yyvsp[-1].interm.attributes), (yyvsp[0].interm.intermNode));
  9909. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9910. }
  9911. #line 10750 "MachineIndependent/glslang_tab.cpp"
  9912. break;
  9913. case 586: /* $@10: %empty */
  9914. #line 3833 "MachineIndependent/glslang.y"
  9915. {
  9916. if (! parseContext.limits.whileLoops)
  9917. parseContext.error((yyvsp[-1].lex).loc, "while loops not available", "limitation", "");
  9918. parseContext.symbolTable.push();
  9919. ++parseContext.loopNestingLevel;
  9920. ++parseContext.statementNestingLevel;
  9921. ++parseContext.controlFlowNestingLevel;
  9922. }
  9923. #line 10763 "MachineIndependent/glslang_tab.cpp"
  9924. break;
  9925. case 587: /* iteration_statement_nonattributed: WHILE LEFT_PAREN $@10 condition RIGHT_PAREN statement_no_new_scope */
  9926. #line 3841 "MachineIndependent/glslang.y"
  9927. {
  9928. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  9929. (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, true, (yyvsp[-5].lex).loc);
  9930. --parseContext.loopNestingLevel;
  9931. --parseContext.statementNestingLevel;
  9932. --parseContext.controlFlowNestingLevel;
  9933. }
  9934. #line 10775 "MachineIndependent/glslang_tab.cpp"
  9935. break;
  9936. case 588: /* $@11: %empty */
  9937. #line 3848 "MachineIndependent/glslang.y"
  9938. {
  9939. ++parseContext.loopNestingLevel;
  9940. ++parseContext.statementNestingLevel;
  9941. ++parseContext.controlFlowNestingLevel;
  9942. }
  9943. #line 10785 "MachineIndependent/glslang_tab.cpp"
  9944. break;
  9945. case 589: /* iteration_statement_nonattributed: DO $@11 statement WHILE LEFT_PAREN expression RIGHT_PAREN SEMICOLON */
  9946. #line 3853 "MachineIndependent/glslang.y"
  9947. {
  9948. if (! parseContext.limits.whileLoops)
  9949. parseContext.error((yyvsp[-7].lex).loc, "do-while loops not available", "limitation", "");
  9950. parseContext.boolCheck((yyvsp[0].lex).loc, (yyvsp[-2].interm.intermTypedNode));
  9951. (yyval.interm.intermNode) = parseContext.intermediate.addLoop((yyvsp[-5].interm.intermNode), (yyvsp[-2].interm.intermTypedNode), 0, false, (yyvsp[-4].lex).loc);
  9952. --parseContext.loopNestingLevel;
  9953. --parseContext.statementNestingLevel;
  9954. --parseContext.controlFlowNestingLevel;
  9955. }
  9956. #line 10801 "MachineIndependent/glslang_tab.cpp"
  9957. break;
  9958. case 590: /* $@12: %empty */
  9959. #line 3864 "MachineIndependent/glslang.y"
  9960. {
  9961. parseContext.symbolTable.push();
  9962. ++parseContext.loopNestingLevel;
  9963. ++parseContext.statementNestingLevel;
  9964. ++parseContext.controlFlowNestingLevel;
  9965. }
  9966. #line 10812 "MachineIndependent/glslang_tab.cpp"
  9967. break;
  9968. case 591: /* iteration_statement_nonattributed: FOR LEFT_PAREN $@12 for_init_statement for_rest_statement RIGHT_PAREN statement_no_new_scope */
  9969. #line 3870 "MachineIndependent/glslang.y"
  9970. {
  9971. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  9972. (yyval.interm.intermNode) = parseContext.intermediate.makeAggregate((yyvsp[-3].interm.intermNode), (yyvsp[-5].lex).loc);
  9973. TIntermLoop* forLoop = parseContext.intermediate.addLoop((yyvsp[0].interm.intermNode), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node1), reinterpret_cast<TIntermTyped*>((yyvsp[-2].interm.nodePair).node2), true, (yyvsp[-6].lex).loc);
  9974. if (! parseContext.limits.nonInductiveForLoops)
  9975. parseContext.inductiveLoopCheck((yyvsp[-6].lex).loc, (yyvsp[-3].interm.intermNode), forLoop);
  9976. (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyval.interm.intermNode), forLoop, (yyvsp[-6].lex).loc);
  9977. (yyval.interm.intermNode)->getAsAggregate()->setOperator(EOpSequence);
  9978. --parseContext.loopNestingLevel;
  9979. --parseContext.statementNestingLevel;
  9980. --parseContext.controlFlowNestingLevel;
  9981. }
  9982. #line 10829 "MachineIndependent/glslang_tab.cpp"
  9983. break;
  9984. case 592: /* for_init_statement: expression_statement */
  9985. #line 3885 "MachineIndependent/glslang.y"
  9986. {
  9987. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9988. }
  9989. #line 10837 "MachineIndependent/glslang_tab.cpp"
  9990. break;
  9991. case 593: /* for_init_statement: declaration_statement */
  9992. #line 3888 "MachineIndependent/glslang.y"
  9993. {
  9994. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  9995. }
  9996. #line 10845 "MachineIndependent/glslang_tab.cpp"
  9997. break;
  9998. case 594: /* conditionopt: condition */
  9999. #line 3894 "MachineIndependent/glslang.y"
  10000. {
  10001. (yyval.interm.intermTypedNode) = (yyvsp[0].interm.intermTypedNode);
  10002. }
  10003. #line 10853 "MachineIndependent/glslang_tab.cpp"
  10004. break;
  10005. case 595: /* conditionopt: %empty */
  10006. #line 3897 "MachineIndependent/glslang.y"
  10007. {
  10008. (yyval.interm.intermTypedNode) = 0;
  10009. }
  10010. #line 10861 "MachineIndependent/glslang_tab.cpp"
  10011. break;
  10012. case 596: /* for_rest_statement: conditionopt SEMICOLON */
  10013. #line 3903 "MachineIndependent/glslang.y"
  10014. {
  10015. (yyval.interm.nodePair).node1 = (yyvsp[-1].interm.intermTypedNode);
  10016. (yyval.interm.nodePair).node2 = 0;
  10017. }
  10018. #line 10870 "MachineIndependent/glslang_tab.cpp"
  10019. break;
  10020. case 597: /* for_rest_statement: conditionopt SEMICOLON expression */
  10021. #line 3907 "MachineIndependent/glslang.y"
  10022. {
  10023. (yyval.interm.nodePair).node1 = (yyvsp[-2].interm.intermTypedNode);
  10024. (yyval.interm.nodePair).node2 = (yyvsp[0].interm.intermTypedNode);
  10025. }
  10026. #line 10879 "MachineIndependent/glslang_tab.cpp"
  10027. break;
  10028. case 598: /* jump_statement: CONTINUE SEMICOLON */
  10029. #line 3914 "MachineIndependent/glslang.y"
  10030. {
  10031. if (parseContext.loopNestingLevel <= 0)
  10032. parseContext.error((yyvsp[-1].lex).loc, "continue statement only allowed in loops", "", "");
  10033. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpContinue, (yyvsp[-1].lex).loc);
  10034. }
  10035. #line 10889 "MachineIndependent/glslang_tab.cpp"
  10036. break;
  10037. case 599: /* jump_statement: BREAK SEMICOLON */
  10038. #line 3919 "MachineIndependent/glslang.y"
  10039. {
  10040. if (parseContext.loopNestingLevel + parseContext.switchSequenceStack.size() <= 0)
  10041. parseContext.error((yyvsp[-1].lex).loc, "break statement only allowed in switch and loops", "", "");
  10042. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpBreak, (yyvsp[-1].lex).loc);
  10043. }
  10044. #line 10899 "MachineIndependent/glslang_tab.cpp"
  10045. break;
  10046. case 600: /* jump_statement: RETURN SEMICOLON */
  10047. #line 3924 "MachineIndependent/glslang.y"
  10048. {
  10049. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpReturn, (yyvsp[-1].lex).loc);
  10050. if (parseContext.currentFunctionType->getBasicType() != EbtVoid)
  10051. parseContext.error((yyvsp[-1].lex).loc, "non-void function must return a value", "return", "");
  10052. if (parseContext.inMain)
  10053. parseContext.postEntryPointReturn = true;
  10054. }
  10055. #line 10911 "MachineIndependent/glslang_tab.cpp"
  10056. break;
  10057. case 601: /* jump_statement: RETURN expression SEMICOLON */
  10058. #line 3931 "MachineIndependent/glslang.y"
  10059. {
  10060. (yyval.interm.intermNode) = parseContext.handleReturnValue((yyvsp[-2].lex).loc, (yyvsp[-1].interm.intermTypedNode));
  10061. }
  10062. #line 10919 "MachineIndependent/glslang_tab.cpp"
  10063. break;
  10064. case 602: /* jump_statement: DISCARD SEMICOLON */
  10065. #line 3934 "MachineIndependent/glslang.y"
  10066. {
  10067. parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "discard");
  10068. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpKill, (yyvsp[-1].lex).loc);
  10069. }
  10070. #line 10928 "MachineIndependent/glslang_tab.cpp"
  10071. break;
  10072. case 603: /* jump_statement: TERMINATE_INVOCATION SEMICOLON */
  10073. #line 3938 "MachineIndependent/glslang.y"
  10074. {
  10075. parseContext.requireStage((yyvsp[-1].lex).loc, EShLangFragment, "terminateInvocation");
  10076. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateInvocation, (yyvsp[-1].lex).loc);
  10077. }
  10078. #line 10937 "MachineIndependent/glslang_tab.cpp"
  10079. break;
  10080. case 604: /* jump_statement: TERMINATE_RAY SEMICOLON */
  10081. #line 3943 "MachineIndependent/glslang.y"
  10082. {
  10083. parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "terminateRayEXT");
  10084. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpTerminateRayKHR, (yyvsp[-1].lex).loc);
  10085. }
  10086. #line 10946 "MachineIndependent/glslang_tab.cpp"
  10087. break;
  10088. case 605: /* jump_statement: IGNORE_INTERSECTION SEMICOLON */
  10089. #line 3947 "MachineIndependent/glslang.y"
  10090. {
  10091. parseContext.requireStage((yyvsp[-1].lex).loc, EShLangAnyHit, "ignoreIntersectionEXT");
  10092. (yyval.interm.intermNode) = parseContext.intermediate.addBranch(EOpIgnoreIntersectionKHR, (yyvsp[-1].lex).loc);
  10093. }
  10094. #line 10955 "MachineIndependent/glslang_tab.cpp"
  10095. break;
  10096. case 606: /* translation_unit: external_declaration */
  10097. #line 3957 "MachineIndependent/glslang.y"
  10098. {
  10099. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  10100. parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
  10101. }
  10102. #line 10964 "MachineIndependent/glslang_tab.cpp"
  10103. break;
  10104. case 607: /* translation_unit: translation_unit external_declaration */
  10105. #line 3961 "MachineIndependent/glslang.y"
  10106. {
  10107. if ((yyvsp[0].interm.intermNode) != nullptr) {
  10108. (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-1].interm.intermNode), (yyvsp[0].interm.intermNode));
  10109. parseContext.intermediate.setTreeRoot((yyval.interm.intermNode));
  10110. }
  10111. }
  10112. #line 10975 "MachineIndependent/glslang_tab.cpp"
  10113. break;
  10114. case 608: /* external_declaration: function_definition */
  10115. #line 3970 "MachineIndependent/glslang.y"
  10116. {
  10117. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  10118. }
  10119. #line 10983 "MachineIndependent/glslang_tab.cpp"
  10120. break;
  10121. case 609: /* external_declaration: declaration */
  10122. #line 3973 "MachineIndependent/glslang.y"
  10123. {
  10124. (yyval.interm.intermNode) = (yyvsp[0].interm.intermNode);
  10125. }
  10126. #line 10991 "MachineIndependent/glslang_tab.cpp"
  10127. break;
  10128. case 610: /* external_declaration: SEMICOLON */
  10129. #line 3977 "MachineIndependent/glslang.y"
  10130. {
  10131. parseContext.requireProfile((yyvsp[0].lex).loc, ~EEsProfile, "extraneous semicolon");
  10132. parseContext.profileRequires((yyvsp[0].lex).loc, ~EEsProfile, 460, nullptr, "extraneous semicolon");
  10133. (yyval.interm.intermNode) = nullptr;
  10134. }
  10135. #line 11001 "MachineIndependent/glslang_tab.cpp"
  10136. break;
  10137. case 611: /* $@13: %empty */
  10138. #line 3986 "MachineIndependent/glslang.y"
  10139. {
  10140. (yyvsp[0].interm).function = parseContext.handleFunctionDeclarator((yyvsp[0].interm).loc, *(yyvsp[0].interm).function, false /* not prototype */);
  10141. (yyvsp[0].interm).intermNode = parseContext.handleFunctionDefinition((yyvsp[0].interm).loc, *(yyvsp[0].interm).function);
  10142. // For ES 100 only, according to ES shading language 100 spec: A function
  10143. // body has a scope nested inside the function's definition.
  10144. if (parseContext.profile == EEsProfile && parseContext.version == 100)
  10145. {
  10146. parseContext.symbolTable.push();
  10147. ++parseContext.statementNestingLevel;
  10148. }
  10149. }
  10150. #line 11018 "MachineIndependent/glslang_tab.cpp"
  10151. break;
  10152. case 612: /* function_definition: function_prototype $@13 compound_statement_no_new_scope */
  10153. #line 3998 "MachineIndependent/glslang.y"
  10154. {
  10155. // May be best done as post process phase on intermediate code
  10156. if (parseContext.currentFunctionType->getBasicType() != EbtVoid && ! parseContext.functionReturnsValue)
  10157. parseContext.error((yyvsp[-2].interm).loc, "function does not return a value:", "", (yyvsp[-2].interm).function->getName().c_str());
  10158. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  10159. (yyval.interm.intermNode) = parseContext.intermediate.growAggregate((yyvsp[-2].interm).intermNode, (yyvsp[0].interm.intermNode));
  10160. parseContext.intermediate.setAggregateOperator((yyval.interm.intermNode), EOpFunction, (yyvsp[-2].interm).function->getType(), (yyvsp[-2].interm).loc);
  10161. (yyval.interm.intermNode)->getAsAggregate()->setName((yyvsp[-2].interm).function->getMangledName().c_str());
  10162. // store the pragma information for debug and optimize and other vendor specific
  10163. // information. This information can be queried from the parse tree
  10164. (yyval.interm.intermNode)->getAsAggregate()->setOptimize(parseContext.contextPragma.optimize);
  10165. (yyval.interm.intermNode)->getAsAggregate()->setDebug(parseContext.contextPragma.debug);
  10166. (yyval.interm.intermNode)->getAsAggregate()->setPragmaTable(parseContext.contextPragma.pragmaTable);
  10167. // Set currentFunctionType to empty pointer when goes outside of the function
  10168. parseContext.currentFunctionType = nullptr;
  10169. // For ES 100 only, according to ES shading language 100 spec: A function
  10170. // body has a scope nested inside the function's definition.
  10171. if (parseContext.profile == EEsProfile && parseContext.version == 100)
  10172. {
  10173. parseContext.symbolTable.pop(&parseContext.defaultPrecision[0]);
  10174. --parseContext.statementNestingLevel;
  10175. }
  10176. }
  10177. #line 11049 "MachineIndependent/glslang_tab.cpp"
  10178. break;
  10179. case 613: /* attribute: LEFT_BRACKET LEFT_BRACKET attribute_list RIGHT_BRACKET RIGHT_BRACKET */
  10180. #line 4028 "MachineIndependent/glslang.y"
  10181. {
  10182. (yyval.interm.attributes) = (yyvsp[-2].interm.attributes);
  10183. parseContext.requireExtensions((yyvsp[-4].lex).loc, 1, &E_GL_EXT_control_flow_attributes, "attribute");
  10184. }
  10185. #line 11058 "MachineIndependent/glslang_tab.cpp"
  10186. break;
  10187. case 614: /* attribute_list: single_attribute */
  10188. #line 4034 "MachineIndependent/glslang.y"
  10189. {
  10190. (yyval.interm.attributes) = (yyvsp[0].interm.attributes);
  10191. }
  10192. #line 11066 "MachineIndependent/glslang_tab.cpp"
  10193. break;
  10194. case 615: /* attribute_list: attribute_list COMMA single_attribute */
  10195. #line 4037 "MachineIndependent/glslang.y"
  10196. {
  10197. (yyval.interm.attributes) = parseContext.mergeAttributes((yyvsp[-2].interm.attributes), (yyvsp[0].interm.attributes));
  10198. }
  10199. #line 11074 "MachineIndependent/glslang_tab.cpp"
  10200. break;
  10201. case 616: /* single_attribute: IDENTIFIER */
  10202. #line 4042 "MachineIndependent/glslang.y"
  10203. {
  10204. (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[0].lex).string);
  10205. }
  10206. #line 11082 "MachineIndependent/glslang_tab.cpp"
  10207. break;
  10208. case 617: /* single_attribute: IDENTIFIER LEFT_PAREN constant_expression RIGHT_PAREN */
  10209. #line 4045 "MachineIndependent/glslang.y"
  10210. {
  10211. (yyval.interm.attributes) = parseContext.makeAttributes(*(yyvsp[-3].lex).string, (yyvsp[-1].interm.intermTypedNode));
  10212. }
  10213. #line 11090 "MachineIndependent/glslang_tab.cpp"
  10214. break;
  10215. #line 11094 "MachineIndependent/glslang_tab.cpp"
  10216. default: break;
  10217. }
  10218. /* User semantic actions sometimes alter yychar, and that requires
  10219. that yytoken be updated with the new translation. We take the
  10220. approach of translating immediately before every use of yytoken.
  10221. One alternative is translating here after every semantic action,
  10222. but that translation would be missed if the semantic action invokes
  10223. YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
  10224. if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
  10225. incorrect destructor might then be invoked immediately. In the
  10226. case of YYERROR or YYBACKUP, subsequent parser actions might lead
  10227. to an incorrect destructor call or verbose syntax error message
  10228. before the lookahead is translated. */
  10229. YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
  10230. YYPOPSTACK (yylen);
  10231. yylen = 0;
  10232. *++yyvsp = yyval;
  10233. /* Now 'shift' the result of the reduction. Determine what state
  10234. that goes to, based on the state we popped back to and the rule
  10235. number reduced by. */
  10236. {
  10237. const int yylhs = yyr1[yyn] - YYNTOKENS;
  10238. const int yyi = yypgoto[yylhs] + *yyssp;
  10239. yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
  10240. ? yytable[yyi]
  10241. : yydefgoto[yylhs]);
  10242. }
  10243. goto yynewstate;
  10244. /*--------------------------------------.
  10245. | yyerrlab -- here on detecting error. |
  10246. `--------------------------------------*/
  10247. yyerrlab:
  10248. /* Make sure we have latest lookahead translation. See comments at
  10249. user semantic actions for why this is necessary. */
  10250. yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
  10251. /* If not already recovering from an error, report this error. */
  10252. if (!yyerrstatus)
  10253. {
  10254. ++yynerrs;
  10255. {
  10256. yypcontext_t yyctx
  10257. = {yyssp, yytoken};
  10258. char const *yymsgp = YY_("syntax error");
  10259. int yysyntax_error_status;
  10260. yysyntax_error_status = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
  10261. if (yysyntax_error_status == 0)
  10262. yymsgp = yymsg;
  10263. else if (yysyntax_error_status == -1)
  10264. {
  10265. if (yymsg != yymsgbuf)
  10266. YYSTACK_FREE (yymsg);
  10267. yymsg = YY_CAST (char *,
  10268. YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc)));
  10269. if (yymsg)
  10270. {
  10271. yysyntax_error_status
  10272. = yysyntax_error (&yymsg_alloc, &yymsg, &yyctx);
  10273. yymsgp = yymsg;
  10274. }
  10275. else
  10276. {
  10277. yymsg = yymsgbuf;
  10278. yymsg_alloc = sizeof yymsgbuf;
  10279. yysyntax_error_status = YYENOMEM;
  10280. }
  10281. }
  10282. yyerror (pParseContext, yymsgp);
  10283. if (yysyntax_error_status == YYENOMEM)
  10284. goto yyexhaustedlab;
  10285. }
  10286. }
  10287. if (yyerrstatus == 3)
  10288. {
  10289. /* If just tried and failed to reuse lookahead token after an
  10290. error, discard it. */
  10291. if (yychar <= YYEOF)
  10292. {
  10293. /* Return failure if at end of input. */
  10294. if (yychar == YYEOF)
  10295. YYABORT;
  10296. }
  10297. else
  10298. {
  10299. yydestruct ("Error: discarding",
  10300. yytoken, &yylval, pParseContext);
  10301. yychar = YYEMPTY;
  10302. }
  10303. }
  10304. /* Else will try to reuse lookahead token after shifting the error
  10305. token. */
  10306. goto yyerrlab1;
  10307. /*---------------------------------------------------.
  10308. | yyerrorlab -- error raised explicitly by YYERROR. |
  10309. `---------------------------------------------------*/
  10310. yyerrorlab:
  10311. /* Pacify compilers when the user code never invokes YYERROR and the
  10312. label yyerrorlab therefore never appears in user code. */
  10313. if (0)
  10314. YYERROR;
  10315. /* Do not reclaim the symbols of the rule whose action triggered
  10316. this YYERROR. */
  10317. YYPOPSTACK (yylen);
  10318. yylen = 0;
  10319. YY_STACK_PRINT (yyss, yyssp);
  10320. yystate = *yyssp;
  10321. goto yyerrlab1;
  10322. /*-------------------------------------------------------------.
  10323. | yyerrlab1 -- common code for both syntax error and YYERROR. |
  10324. `-------------------------------------------------------------*/
  10325. yyerrlab1:
  10326. yyerrstatus = 3; /* Each real token shifted decrements this. */
  10327. /* Pop stack until we find a state that shifts the error token. */
  10328. for (;;)
  10329. {
  10330. yyn = yypact[yystate];
  10331. if (!yypact_value_is_default (yyn))
  10332. {
  10333. yyn += YYSYMBOL_YYerror;
  10334. if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
  10335. {
  10336. yyn = yytable[yyn];
  10337. if (0 < yyn)
  10338. break;
  10339. }
  10340. }
  10341. /* Pop the current state because it cannot handle the error token. */
  10342. if (yyssp == yyss)
  10343. YYABORT;
  10344. yydestruct ("Error: popping",
  10345. YY_ACCESSING_SYMBOL (yystate), yyvsp, pParseContext);
  10346. YYPOPSTACK (1);
  10347. yystate = *yyssp;
  10348. YY_STACK_PRINT (yyss, yyssp);
  10349. }
  10350. YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
  10351. *++yyvsp = yylval;
  10352. YY_IGNORE_MAYBE_UNINITIALIZED_END
  10353. /* Shift the error token. */
  10354. YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
  10355. yystate = yyn;
  10356. goto yynewstate;
  10357. /*-------------------------------------.
  10358. | yyacceptlab -- YYACCEPT comes here. |
  10359. `-------------------------------------*/
  10360. yyacceptlab:
  10361. yyresult = 0;
  10362. goto yyreturn;
  10363. /*-----------------------------------.
  10364. | yyabortlab -- YYABORT comes here. |
  10365. `-----------------------------------*/
  10366. yyabortlab:
  10367. yyresult = 1;
  10368. goto yyreturn;
  10369. #if 1
  10370. /*-------------------------------------------------.
  10371. | yyexhaustedlab -- memory exhaustion comes here. |
  10372. `-------------------------------------------------*/
  10373. yyexhaustedlab:
  10374. yyerror (pParseContext, YY_("memory exhausted"));
  10375. yyresult = 2;
  10376. goto yyreturn;
  10377. #endif
  10378. /*-------------------------------------------------------.
  10379. | yyreturn -- parsing is finished, clean up and return. |
  10380. `-------------------------------------------------------*/
  10381. yyreturn:
  10382. if (yychar != YYEMPTY)
  10383. {
  10384. /* Make sure we have latest lookahead translation. See comments at
  10385. user semantic actions for why this is necessary. */
  10386. yytoken = YYTRANSLATE (yychar);
  10387. yydestruct ("Cleanup: discarding lookahead",
  10388. yytoken, &yylval, pParseContext);
  10389. }
  10390. /* Do not reclaim the symbols of the rule whose action triggered
  10391. this YYABORT or YYACCEPT. */
  10392. YYPOPSTACK (yylen);
  10393. YY_STACK_PRINT (yyss, yyssp);
  10394. while (yyssp != yyss)
  10395. {
  10396. yydestruct ("Cleanup: popping",
  10397. YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, pParseContext);
  10398. YYPOPSTACK (1);
  10399. }
  10400. #ifndef yyoverflow
  10401. if (yyss != yyssa)
  10402. YYSTACK_FREE (yyss);
  10403. #endif
  10404. if (yymsg != yymsgbuf)
  10405. YYSTACK_FREE (yymsg);
  10406. return yyresult;
  10407. }
  10408. #line 4050 "MachineIndependent/glslang.y"