| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272 |
- /*
- * My changes over the original lempar.c from SQLite are encased in
- * #if __MOJOSHADER__ blocks. --ryan.
- */
- #ifndef __MOJOSHADER__
- #define __MOJOSHADER__ 1
- #endif
- #if !__MOJOSHADER__
- #define LEMON_SUPPORT_TRACING (!defined(NDEBUG))
- #endif
- /* Driver template for the LEMON parser generator.
- ** The original author(s) of lempar.c disclaim copyright to this source code.
- ** However, changes made for MojoShader fall under the same license as the
- ** rest of MojoShader. Please see the file LICENSE.txt in the source's root
- ** directory.
- */
- /* First off, code is included that follows the "include" declaration
- ** in the input grammar file. */
- #include <stdio.h>
- #line 31 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- #ifndef __MOJOSHADER_HLSL_COMPILER__
- #error Do not compile this file directly.
- #endif
- #line 28 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- /* Next is all token values, in a form suitable for use by makeheaders.
- ** This section will be null unless lemon is run with the -m switch.
- */
- /*
- ** These constants (all generated automatically by the parser generator)
- ** specify the various kinds of tokens (terminals) that the parser
- ** understands.
- **
- ** Each symbol here is a terminal symbol in the grammar.
- */
- #define TOKEN_HLSL_COMMA 1
- #define TOKEN_HLSL_ASSIGN 2
- #define TOKEN_HLSL_ADDASSIGN 3
- #define TOKEN_HLSL_SUBASSIGN 4
- #define TOKEN_HLSL_MULASSIGN 5
- #define TOKEN_HLSL_DIVASSIGN 6
- #define TOKEN_HLSL_MODASSIGN 7
- #define TOKEN_HLSL_LSHIFTASSIGN 8
- #define TOKEN_HLSL_RSHIFTASSIGN 9
- #define TOKEN_HLSL_ANDASSIGN 10
- #define TOKEN_HLSL_ORASSIGN 11
- #define TOKEN_HLSL_XORASSIGN 12
- #define TOKEN_HLSL_QUESTION 13
- #define TOKEN_HLSL_OROR 14
- #define TOKEN_HLSL_ANDAND 15
- #define TOKEN_HLSL_OR 16
- #define TOKEN_HLSL_XOR 17
- #define TOKEN_HLSL_AND 18
- #define TOKEN_HLSL_EQL 19
- #define TOKEN_HLSL_NEQ 20
- #define TOKEN_HLSL_LT 21
- #define TOKEN_HLSL_LEQ 22
- #define TOKEN_HLSL_GT 23
- #define TOKEN_HLSL_GEQ 24
- #define TOKEN_HLSL_LSHIFT 25
- #define TOKEN_HLSL_RSHIFT 26
- #define TOKEN_HLSL_PLUS 27
- #define TOKEN_HLSL_MINUS 28
- #define TOKEN_HLSL_STAR 29
- #define TOKEN_HLSL_SLASH 30
- #define TOKEN_HLSL_PERCENT 31
- #define TOKEN_HLSL_TYPECAST 32
- #define TOKEN_HLSL_EXCLAMATION 33
- #define TOKEN_HLSL_COMPLEMENT 34
- #define TOKEN_HLSL_MINUSMINUS 35
- #define TOKEN_HLSL_PLUSPLUS 36
- #define TOKEN_HLSL_DOT 37
- #define TOKEN_HLSL_LBRACKET 38
- #define TOKEN_HLSL_RBRACKET 39
- #define TOKEN_HLSL_LPAREN 40
- #define TOKEN_HLSL_RPAREN 41
- #define TOKEN_HLSL_ELSE 42
- #define TOKEN_HLSL_SEMICOLON 43
- #define TOKEN_HLSL_TYPEDEF 44
- #define TOKEN_HLSL_CONST 45
- #define TOKEN_HLSL_IDENTIFIER 46
- #define TOKEN_HLSL_VOID 47
- #define TOKEN_HLSL_INLINE 48
- #define TOKEN_HLSL_IN 49
- #define TOKEN_HLSL_INOUT 50
- #define TOKEN_HLSL_OUT 51
- #define TOKEN_HLSL_UNIFORM 52
- #define TOKEN_HLSL_COLON 53
- #define TOKEN_HLSL_LINEAR 54
- #define TOKEN_HLSL_CENTROID 55
- #define TOKEN_HLSL_NOINTERPOLATION 56
- #define TOKEN_HLSL_NOPERSPECTIVE 57
- #define TOKEN_HLSL_SAMPLE 58
- #define TOKEN_HLSL_EXTERN 59
- #define TOKEN_HLSL_SHARED 60
- #define TOKEN_HLSL_STATIC 61
- #define TOKEN_HLSL_VOLATILE 62
- #define TOKEN_HLSL_ROWMAJOR 63
- #define TOKEN_HLSL_COLUMNMAJOR 64
- #define TOKEN_HLSL_LBRACE 65
- #define TOKEN_HLSL_RBRACE 66
- #define TOKEN_HLSL_STRUCT 67
- #define TOKEN_HLSL_PACKOFFSET 68
- #define TOKEN_HLSL_REGISTER 69
- #define TOKEN_HLSL_USERTYPE 70
- #define TOKEN_HLSL_SAMPLER 71
- #define TOKEN_HLSL_SAMPLER1D 72
- #define TOKEN_HLSL_SAMPLER2D 73
- #define TOKEN_HLSL_SAMPLER3D 74
- #define TOKEN_HLSL_SAMPLERCUBE 75
- #define TOKEN_HLSL_SAMPLER_STATE 76
- #define TOKEN_HLSL_SAMPLERSTATE 77
- #define TOKEN_HLSL_SAMPLERCOMPARISONSTATE 78
- #define TOKEN_HLSL_BOOL 79
- #define TOKEN_HLSL_INT 80
- #define TOKEN_HLSL_UINT 81
- #define TOKEN_HLSL_HALF 82
- #define TOKEN_HLSL_FLOAT 83
- #define TOKEN_HLSL_DOUBLE 84
- #define TOKEN_HLSL_STRING 85
- #define TOKEN_HLSL_SNORM 86
- #define TOKEN_HLSL_UNORM 87
- #define TOKEN_HLSL_BUFFER 88
- #define TOKEN_HLSL_VECTOR 89
- #define TOKEN_HLSL_INT_CONSTANT 90
- #define TOKEN_HLSL_MATRIX 91
- #define TOKEN_HLSL_ISOLATE 92
- #define TOKEN_HLSL_MAXINSTRUCTIONCOUNT 93
- #define TOKEN_HLSL_NOEXPRESSIONOPTIMIZATIONS 94
- #define TOKEN_HLSL_REMOVEUNUSEDINPUTS 95
- #define TOKEN_HLSL_UNUSED 96
- #define TOKEN_HLSL_XPS 97
- #define TOKEN_HLSL_BREAK 98
- #define TOKEN_HLSL_CONTINUE 99
- #define TOKEN_HLSL_DISCARD 100
- #define TOKEN_HLSL_DO 101
- #define TOKEN_HLSL_WHILE 102
- #define TOKEN_HLSL_RETURN 103
- #define TOKEN_HLSL_UNROLL 104
- #define TOKEN_HLSL_LOOP 105
- #define TOKEN_HLSL_FOR 106
- #define TOKEN_HLSL_BRANCH 107
- #define TOKEN_HLSL_IF 108
- #define TOKEN_HLSL_FLATTEN 109
- #define TOKEN_HLSL_IFALL 110
- #define TOKEN_HLSL_IFANY 111
- #define TOKEN_HLSL_PREDICATE 112
- #define TOKEN_HLSL_PREDICATEBLOCK 113
- #define TOKEN_HLSL_SWITCH 114
- #define TOKEN_HLSL_FORCECASE 115
- #define TOKEN_HLSL_CALL 116
- #define TOKEN_HLSL_CASE 117
- #define TOKEN_HLSL_DEFAULT 118
- #define TOKEN_HLSL_FLOAT_CONSTANT 119
- #define TOKEN_HLSL_STRING_LITERAL 120
- #define TOKEN_HLSL_TRUE 121
- #define TOKEN_HLSL_FALSE 122
- /* Make sure the INTERFACE macro is defined.
- */
- #ifndef INTERFACE
- # define INTERFACE 1
- #endif
- /* The next thing included is series of defines which control
- ** various aspects of the generated parser.
- ** YYCODETYPE is the data type used for storing terminal
- ** and nonterminal numbers. "unsigned char" is
- ** used if there are fewer than 250 terminals
- ** and nonterminals. "int" is used otherwise.
- ** YYNOCODE is a number of type YYCODETYPE which corresponds
- ** to no legal terminal or nonterminal number. This
- ** number is used to fill in empty slots of the hash
- ** table.
- ** YYFALLBACK If defined, this indicates that one or more tokens
- ** have fall-back values which should be used if the
- ** original value of the token will not parse.
- ** YYACTIONTYPE is the data type used for storing terminal
- ** and nonterminal numbers. "unsigned char" is
- ** used if there are fewer than 250 rules and
- ** states combined. "int" is used otherwise.
- ** ParseHLSLTOKENTYPE is the data type used for minor tokens given
- ** directly to the parser from the tokenizer.
- ** YYMINORTYPE is the data type used for all minor tokens.
- ** This is typically a union of many types, one of
- ** which is ParseHLSLTOKENTYPE. The entry in the union
- ** for base tokens is called "yy0".
- ** YYSTACKDEPTH is the maximum depth of the parser's stack. If
- ** zero the stack is dynamically sized using realloc()
- ** ParseHLSLARG_SDECL A static variable declaration for the %extra_argument
- ** ParseHLSLARG_PDECL A parameter declaration for the %extra_argument
- ** ParseHLSLARG_STORE Code to store %extra_argument into yypParser
- ** ParseHLSLARG_FETCH Code to extract %extra_argument from yypParser
- ** YYNSTATE the combined number of states.
- ** YYNRULE the number of rules in the grammar
- ** YYERRORSYMBOL is the code number of the error symbol. If not
- ** defined, then do no error processing.
- */
- #define YYCODETYPE unsigned char
- #define YYNOCODE 198
- #define YYACTIONTYPE unsigned short int
- #define ParseHLSLTOKENTYPE TokenData
- typedef union {
- int yyinit;
- ParseHLSLTOKENTYPE yy0;
- MOJOSHADER_astPackOffset * yy8;
- MOJOSHADER_astVariableDeclaration * yy24;
- MOJOSHADER_astArguments * yy26;
- const MOJOSHADER_astDataType * yy37;
- MOJOSHADER_astTypedef * yy71;
- MOJOSHADER_astInputModifier yy75;
- MOJOSHADER_astVariableLowLevel * yy82;
- MOJOSHADER_astInterpolationModifier yy111;
- MOJOSHADER_astCompilationUnit * yy139;
- MOJOSHADER_astSwitchCases * yy165;
- MOJOSHADER_astFunctionStorageClass yy175;
- MOJOSHADER_astStatement * yy233;
- MOJOSHADER_astStructDeclaration * yy249;
- MOJOSHADER_astAnnotations * yy268;
- int yy270;
- const char * yy306;
- MOJOSHADER_astFunctionParameters * yy307;
- MOJOSHADER_astExpression * yy322;
- MOJOSHADER_astStructMembers * yy346;
- MOJOSHADER_astFunctionSignature * yy364;
- MOJOSHADER_astScalarOrArray * yy380;
- } YYMINORTYPE;
- #ifndef YYSTACKDEPTH
- #define YYSTACKDEPTH 100
- #endif
- #define ParseHLSLARG_SDECL Context *ctx ;
- #define ParseHLSLARG_PDECL , Context *ctx
- #define ParseHLSLARG_FETCH Context *ctx = yypParser->ctx
- #define ParseHLSLARG_STORE yypParser->ctx = ctx
- #define YYNSTATE 525
- #define YYNRULE 288
- #define YY_NO_ACTION (YYNSTATE+YYNRULE+2)
- #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1)
- #define YY_ERROR_ACTION (YYNSTATE+YYNRULE)
- /* The yyzerominor constant is used to initialize instances of
- ** YYMINORTYPE objects to zero. */
- static const YYMINORTYPE yyzerominor = { 0 };
- /* Define the yytestcase() macro to be a no-op if is not already defined
- ** otherwise.
- **
- ** Applications can choose to define yytestcase() in the %include section
- ** to a macro that can assist in verifying code coverage. For production
- ** code the yytestcase() macro should be turned off. But it is useful
- ** for testing.
- */
- #ifndef yytestcase
- # define yytestcase(X)
- #endif
- /* Next are the tables used to determine what action to take based on the
- ** current state and lookahead token. These tables are used to implement
- ** functions that take a state number and lookahead value and return an
- ** action integer.
- **
- ** Suppose the action integer is N. Then the action is determined as
- ** follows
- **
- ** 0 <= N < YYNSTATE Shift N. That is, push the lookahead
- ** token onto the stack and goto state N.
- **
- ** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE.
- **
- ** N == YYNSTATE+YYNRULE A syntax error has occurred.
- **
- ** N == YYNSTATE+YYNRULE+1 The parser accepts its input.
- **
- ** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused
- ** slots in the yy_action[] table.
- **
- ** The action table is constructed as a single large table named yy_action[].
- ** Given state S and lookahead X, the action is computed as
- **
- ** yy_action[ yy_shift_ofst[S] + X ]
- **
- ** If the index value yy_shift_ofst[S]+X is out of range or if the value
- ** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S]
- ** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table
- ** and that yy_default[S] should be used instead.
- **
- ** The formula above is for computing the action when the lookahead is
- ** a terminal symbol. If the lookahead is a non-terminal (as occurs after
- ** a reduce action) then the yy_reduce_ofst[] array is used in place of
- ** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of
- ** YY_SHIFT_USE_DFLT.
- **
- ** The following are the tables generated in this section:
- **
- ** yy_action[] A single table containing all actions.
- ** yy_lookahead[] A table containing the lookahead for each entry in
- ** yy_action. Used to detect hash collisions.
- ** yy_shift_ofst[] For each state, the offset into yy_action for
- ** shifting terminals.
- ** yy_reduce_ofst[] For each state, the offset into yy_action for
- ** shifting non-terminals after a reduce.
- ** yy_default[] Default action for each state.
- */
- #define YY_ACTTAB_COUNT (5407)
- static const YYACTIONTYPE yy_action[] = {
- /* 0 */ 86, 85, 446, 447, 264, 46, 83, 84, 90, 91,
- /* 10 */ 39, 123, 88, 47, 27, 114, 344, 97, 405, 143,
- /* 20 */ 104, 422, 82, 81, 80, 407, 348, 140, 139, 410,
- /* 30 */ 78, 77, 411, 409, 408, 406, 404, 403, 1, 383,
- /* 40 */ 249, 495, 60, 511, 510, 509, 508, 507, 506, 505,
- /* 50 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295,
- /* 60 */ 294, 293, 282, 482, 278, 250, 398, 397, 396, 395,
- /* 70 */ 394, 248, 247, 246, 334, 338, 37, 40, 214, 336,
- /* 80 */ 518, 333, 74, 72, 73, 71, 39, 332, 494, 100,
- /* 90 */ 86, 85, 481, 480, 479, 478, 83, 84, 90, 91,
- /* 100 */ 186, 123, 413, 47, 27, 115, 344, 97, 405, 143,
- /* 110 */ 362, 429, 70, 69, 432, 407, 361, 140, 139, 410,
- /* 120 */ 140, 139, 411, 409, 408, 406, 404, 403, 1, 384,
- /* 130 */ 249, 76, 75, 511, 510, 509, 508, 507, 506, 505,
- /* 140 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295,
- /* 150 */ 294, 293, 282, 482, 278, 146, 398, 397, 396, 395,
- /* 160 */ 394, 248, 247, 246, 334, 338, 37, 369, 371, 336,
- /* 170 */ 119, 333, 370, 366, 368, 132, 310, 332, 367, 100,
- /* 180 */ 86, 85, 481, 480, 479, 478, 83, 84, 90, 91,
- /* 190 */ 180, 123, 413, 47, 113, 423, 344, 97, 405, 143,
- /* 200 */ 416, 140, 139, 493, 417, 407, 140, 139, 100, 410,
- /* 210 */ 140, 139, 411, 409, 408, 406, 404, 403, 1, 181,
- /* 220 */ 249, 413, 60, 511, 510, 509, 508, 507, 506, 505,
- /* 230 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295,
- /* 240 */ 294, 293, 282, 482, 278, 63, 436, 117, 418, 138,
- /* 250 */ 492, 248, 247, 246, 334, 338, 37, 415, 122, 336,
- /* 260 */ 121, 333, 477, 140, 139, 62, 63, 332, 263, 259,
- /* 270 */ 86, 85, 481, 480, 479, 478, 83, 84, 90, 91,
- /* 280 */ 391, 261, 24, 47, 61, 434, 33, 515, 405, 143,
- /* 290 */ 512, 517, 516, 514, 513, 407, 363, 365, 100, 410,
- /* 300 */ 438, 364, 411, 409, 408, 406, 404, 403, 48, 181,
- /* 310 */ 249, 413, 60, 511, 510, 509, 508, 507, 506, 505,
- /* 320 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295,
- /* 330 */ 294, 293, 282, 482, 278, 263, 259, 352, 118, 340,
- /* 340 */ 345, 109, 102, 130, 306, 122, 474, 428, 443, 122,
- /* 350 */ 475, 152, 241, 94, 360, 399, 491, 421, 400, 252,
- /* 360 */ 359, 296, 481, 480, 479, 478, 170, 24, 60, 515,
- /* 370 */ 38, 79, 512, 517, 516, 514, 513, 18, 346, 60,
- /* 380 */ 223, 219, 218, 216, 251, 339, 135, 402, 60, 476,
- /* 390 */ 150, 401, 60, 450, 145, 467, 157, 199, 198, 149,
- /* 400 */ 191, 272, 271, 269, 267, 189, 462, 352, 220, 340,
- /* 410 */ 345, 109, 102, 502, 501, 500, 499, 498, 497, 496,
- /* 420 */ 295, 294, 60, 94, 100, 399, 390, 522, 21, 252,
- /* 430 */ 490, 3, 426, 489, 343, 38, 170, 437, 60, 515,
- /* 440 */ 60, 296, 512, 517, 516, 514, 513, 5, 346, 1,
- /* 450 */ 223, 219, 218, 216, 318, 339, 135, 296, 27, 476,
- /* 460 */ 150, 27, 20, 450, 145, 467, 157, 199, 198, 149,
- /* 470 */ 191, 272, 271, 269, 267, 189, 462, 105, 215, 285,
- /* 480 */ 105, 352, 341, 340, 345, 109, 102, 502, 501, 500,
- /* 490 */ 499, 498, 497, 496, 295, 294, 101, 94, 488, 399,
- /* 500 */ 126, 487, 112, 252, 320, 40, 214, 103, 414, 184,
- /* 510 */ 170, 283, 154, 515, 140, 139, 512, 517, 516, 514,
- /* 520 */ 513, 4, 346, 486, 223, 219, 218, 216, 60, 339,
- /* 530 */ 135, 60, 213, 476, 150, 134, 125, 450, 145, 467,
- /* 540 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 550 */ 462, 352, 137, 340, 345, 109, 102, 280, 60, 515,
- /* 560 */ 60, 60, 512, 517, 516, 514, 513, 94, 485, 399,
- /* 570 */ 36, 17, 179, 252, 292, 291, 290, 289, 288, 287,
- /* 580 */ 170, 286, 284, 515, 60, 124, 512, 517, 516, 514,
- /* 590 */ 513, 60, 222, 60, 223, 219, 218, 216, 14, 339,
- /* 600 */ 135, 12, 31, 476, 150, 144, 60, 450, 145, 467,
- /* 610 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 620 */ 462, 27, 133, 312, 279, 352, 35, 340, 345, 109,
- /* 630 */ 102, 10, 515, 9, 276, 512, 517, 516, 514, 513,
- /* 640 */ 60, 94, 275, 399, 131, 308, 274, 252, 29, 420,
- /* 650 */ 138, 273, 484, 68, 170, 67, 65, 515, 64, 448,
- /* 660 */ 512, 517, 516, 514, 513, 262, 350, 185, 223, 219,
- /* 670 */ 218, 216, 184, 339, 135, 209, 260, 476, 150, 259,
- /* 680 */ 6, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 690 */ 271, 269, 267, 189, 462, 352, 435, 340, 345, 109,
- /* 700 */ 102, 258, 515, 257, 433, 512, 517, 516, 514, 513,
- /* 710 */ 60, 94, 263, 399, 419, 89, 389, 252, 436, 385,
- /* 720 */ 381, 380, 379, 244, 170, 377, 243, 515, 136, 239,
- /* 730 */ 512, 517, 516, 514, 513, 153, 217, 240, 223, 219,
- /* 740 */ 218, 216, 151, 339, 135, 177, 176, 476, 150, 141,
- /* 750 */ 234, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 760 */ 271, 269, 267, 189, 462, 232, 358, 357, 230, 352,
- /* 770 */ 356, 340, 345, 109, 102, 228, 515, 355, 226, 512,
- /* 780 */ 517, 516, 514, 513, 224, 94, 22, 399, 354, 353,
- /* 790 */ 44, 252, 221, 43, 351, 42, 19, 41, 170, 120,
- /* 800 */ 2, 515, 212, 88, 512, 517, 516, 514, 513, 316,
- /* 810 */ 349, 93, 223, 219, 218, 216, 107, 339, 135, 106,
- /* 820 */ 305, 476, 150, 303, 204, 450, 145, 467, 157, 199,
- /* 830 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 352,
- /* 840 */ 87, 340, 345, 109, 102, 300, 520, 296, 483, 38,
- /* 850 */ 439, 256, 431, 430, 27, 94, 255, 399, 253, 388,
- /* 860 */ 250, 252, 474, 337, 372, 23, 317, 1, 170, 313,
- /* 870 */ 311, 515, 521, 309, 512, 517, 516, 514, 513, 307,
- /* 880 */ 382, 281, 223, 219, 218, 216, 347, 339, 135, 242,
- /* 890 */ 184, 476, 150, 158, 299, 450, 145, 467, 157, 199,
- /* 900 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 815,
- /* 910 */ 815, 277, 815, 352, 815, 340, 345, 109, 102, 815,
- /* 920 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94,
- /* 930 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815,
- /* 940 */ 815, 815, 170, 815, 815, 515, 815, 815, 512, 517,
- /* 950 */ 516, 514, 513, 815, 335, 815, 223, 219, 218, 216,
- /* 960 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450,
- /* 970 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 980 */ 267, 189, 462, 352, 815, 340, 345, 109, 102, 815,
- /* 990 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94,
- /* 1000 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815,
- /* 1010 */ 815, 815, 170, 815, 815, 515, 815, 815, 512, 517,
- /* 1020 */ 516, 514, 513, 815, 331, 815, 223, 219, 218, 216,
- /* 1030 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450,
- /* 1040 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 1050 */ 267, 189, 462, 815, 815, 815, 815, 352, 815, 340,
- /* 1060 */ 345, 109, 102, 815, 815, 815, 815, 815, 815, 815,
- /* 1070 */ 815, 815, 815, 94, 815, 399, 815, 815, 815, 252,
- /* 1080 */ 815, 815, 815, 815, 815, 815, 170, 815, 815, 515,
- /* 1090 */ 815, 815, 512, 517, 516, 514, 513, 815, 330, 815,
- /* 1100 */ 223, 219, 218, 216, 815, 339, 135, 815, 815, 476,
- /* 1110 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149,
- /* 1120 */ 191, 272, 271, 269, 267, 189, 462, 352, 815, 340,
- /* 1130 */ 345, 109, 102, 815, 815, 815, 815, 815, 815, 815,
- /* 1140 */ 815, 815, 815, 94, 815, 399, 815, 815, 815, 252,
- /* 1150 */ 815, 815, 815, 815, 815, 815, 170, 815, 815, 515,
- /* 1160 */ 815, 815, 512, 517, 516, 514, 513, 815, 329, 815,
- /* 1170 */ 223, 219, 218, 216, 815, 339, 135, 815, 815, 476,
- /* 1180 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149,
- /* 1190 */ 191, 272, 271, 269, 267, 189, 462, 815, 815, 815,
- /* 1200 */ 815, 352, 815, 340, 345, 109, 102, 815, 815, 815,
- /* 1210 */ 815, 815, 815, 815, 815, 815, 815, 94, 815, 399,
- /* 1220 */ 815, 815, 815, 252, 815, 815, 815, 815, 815, 815,
- /* 1230 */ 170, 815, 815, 515, 815, 815, 512, 517, 516, 514,
- /* 1240 */ 513, 815, 328, 815, 223, 219, 218, 216, 815, 339,
- /* 1250 */ 135, 815, 815, 476, 150, 815, 815, 450, 145, 467,
- /* 1260 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 1270 */ 462, 352, 815, 340, 345, 109, 102, 815, 815, 815,
- /* 1280 */ 815, 815, 815, 815, 815, 815, 815, 94, 815, 399,
- /* 1290 */ 815, 815, 815, 252, 815, 815, 815, 815, 815, 815,
- /* 1300 */ 170, 815, 815, 515, 815, 815, 512, 517, 516, 514,
- /* 1310 */ 513, 815, 327, 815, 223, 219, 218, 216, 815, 339,
- /* 1320 */ 135, 815, 815, 476, 150, 815, 815, 450, 145, 467,
- /* 1330 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 1340 */ 462, 815, 815, 815, 815, 352, 815, 340, 345, 109,
- /* 1350 */ 102, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 1360 */ 815, 94, 815, 399, 815, 815, 815, 252, 815, 815,
- /* 1370 */ 815, 815, 815, 815, 170, 815, 815, 515, 815, 815,
- /* 1380 */ 512, 517, 516, 514, 513, 815, 326, 815, 223, 219,
- /* 1390 */ 218, 216, 815, 339, 135, 815, 815, 476, 150, 815,
- /* 1400 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 1410 */ 271, 269, 267, 189, 462, 352, 815, 340, 345, 109,
- /* 1420 */ 102, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 1430 */ 815, 94, 815, 399, 815, 815, 815, 252, 815, 815,
- /* 1440 */ 815, 815, 815, 815, 170, 815, 815, 515, 815, 815,
- /* 1450 */ 512, 517, 516, 514, 513, 815, 325, 815, 223, 219,
- /* 1460 */ 218, 216, 815, 339, 135, 815, 815, 476, 150, 815,
- /* 1470 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 1480 */ 271, 269, 267, 189, 462, 815, 815, 815, 815, 352,
- /* 1490 */ 815, 340, 345, 109, 102, 815, 815, 815, 815, 815,
- /* 1500 */ 815, 815, 815, 815, 815, 94, 815, 399, 815, 815,
- /* 1510 */ 815, 252, 815, 815, 815, 815, 815, 815, 170, 815,
- /* 1520 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 1530 */ 324, 815, 223, 219, 218, 216, 815, 339, 135, 815,
- /* 1540 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199,
- /* 1550 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 352,
- /* 1560 */ 815, 340, 345, 109, 102, 815, 815, 815, 815, 815,
- /* 1570 */ 815, 815, 815, 815, 815, 94, 815, 399, 815, 815,
- /* 1580 */ 815, 252, 815, 815, 815, 815, 815, 815, 170, 815,
- /* 1590 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 1600 */ 323, 815, 223, 219, 218, 216, 815, 339, 135, 815,
- /* 1610 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199,
- /* 1620 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 815,
- /* 1630 */ 815, 815, 815, 352, 815, 340, 345, 109, 102, 815,
- /* 1640 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94,
- /* 1650 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815,
- /* 1660 */ 815, 815, 170, 815, 815, 515, 815, 815, 512, 517,
- /* 1670 */ 516, 514, 513, 815, 322, 815, 223, 219, 218, 216,
- /* 1680 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450,
- /* 1690 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 1700 */ 267, 189, 462, 352, 815, 340, 345, 109, 102, 815,
- /* 1710 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 94,
- /* 1720 */ 815, 399, 815, 815, 815, 252, 815, 815, 815, 815,
- /* 1730 */ 815, 815, 170, 525, 815, 515, 815, 815, 512, 517,
- /* 1740 */ 516, 514, 513, 815, 321, 815, 223, 219, 218, 216,
- /* 1750 */ 815, 339, 135, 815, 815, 476, 150, 815, 815, 450,
- /* 1760 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 1770 */ 267, 189, 462, 815, 815, 815, 815, 97, 405, 815,
- /* 1780 */ 205, 298, 815, 815, 815, 407, 815, 815, 815, 410,
- /* 1790 */ 815, 815, 411, 409, 408, 406, 404, 403, 815, 815,
- /* 1800 */ 249, 815, 815, 511, 510, 509, 508, 507, 506, 505,
- /* 1810 */ 504, 503, 502, 501, 500, 499, 498, 497, 496, 295,
- /* 1820 */ 294, 293, 282, 815, 278, 86, 85, 815, 815, 815,
- /* 1830 */ 815, 83, 84, 90, 91, 815, 815, 519, 47, 815,
- /* 1840 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 815,
- /* 1850 */ 815, 815, 815, 83, 84, 90, 91, 815, 815, 815,
- /* 1860 */ 47, 444, 815, 815, 815, 815, 143, 815, 511, 510,
- /* 1870 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 1880 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 1890 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 1900 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 1910 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479,
- /* 1920 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 815,
- /* 1930 */ 815, 342, 815, 815, 143, 815, 815, 86, 85, 481,
- /* 1940 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815,
- /* 1950 */ 47, 815, 815, 34, 815, 815, 143, 815, 511, 510,
- /* 1960 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 1970 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 1980 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 1990 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2000 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479,
- /* 2010 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 16,
- /* 2020 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 481,
- /* 2030 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815,
- /* 2040 */ 47, 15, 815, 815, 815, 815, 143, 815, 511, 510,
- /* 2050 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 2060 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 2070 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 2080 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2090 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479,
- /* 2100 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 815,
- /* 2110 */ 815, 32, 815, 815, 143, 815, 815, 86, 85, 481,
- /* 2120 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815,
- /* 2130 */ 47, 13, 815, 815, 815, 815, 143, 815, 511, 510,
- /* 2140 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 2150 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 2160 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 2170 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2180 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479,
- /* 2190 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 11,
- /* 2200 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 481,
- /* 2210 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815,
- /* 2220 */ 47, 815, 815, 28, 815, 815, 143, 815, 511, 510,
- /* 2230 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 2240 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 2250 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 2260 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2270 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479,
- /* 2280 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 8,
- /* 2290 */ 815, 815, 815, 815, 143, 815, 815, 86, 85, 481,
- /* 2300 */ 480, 479, 478, 83, 84, 90, 91, 815, 815, 815,
- /* 2310 */ 47, 7, 815, 815, 815, 815, 143, 815, 511, 510,
- /* 2320 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 2330 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 2340 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 2350 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2360 */ 482, 278, 815, 815, 815, 86, 85, 481, 480, 479,
- /* 2370 */ 478, 83, 84, 90, 91, 815, 815, 815, 47, 815,
- /* 2380 */ 815, 815, 815, 815, 143, 815, 815, 815, 815, 481,
- /* 2390 */ 480, 479, 478, 815, 815, 815, 815, 815, 815, 815,
- /* 2400 */ 815, 815, 815, 26, 815, 815, 815, 815, 511, 510,
- /* 2410 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 2420 */ 499, 498, 497, 496, 295, 294, 293, 282, 482, 278,
- /* 2430 */ 815, 86, 85, 815, 121, 815, 815, 83, 84, 90,
- /* 2440 */ 91, 815, 815, 96, 47, 815, 815, 815, 815, 815,
- /* 2450 */ 143, 815, 92, 386, 387, 815, 815, 481, 480, 479,
- /* 2460 */ 478, 515, 815, 815, 512, 517, 516, 514, 513, 25,
- /* 2470 */ 815, 815, 815, 815, 511, 510, 509, 508, 507, 506,
- /* 2480 */ 505, 504, 503, 502, 501, 500, 499, 498, 497, 496,
- /* 2490 */ 295, 294, 293, 282, 482, 278, 815, 86, 85, 815,
- /* 2500 */ 815, 815, 815, 83, 84, 90, 91, 815, 815, 815,
- /* 2510 */ 45, 815, 815, 815, 815, 815, 143, 815, 815, 815,
- /* 2520 */ 815, 815, 815, 481, 480, 479, 478, 59, 55, 54,
- /* 2530 */ 58, 57, 56, 53, 52, 51, 49, 50, 815, 815,
- /* 2540 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 2550 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2560 */ 482, 278, 815, 815, 815, 815, 815, 815, 86, 85,
- /* 2570 */ 815, 208, 815, 815, 83, 84, 90, 91, 314, 98,
- /* 2580 */ 815, 47, 815, 815, 815, 815, 815, 143, 815, 481,
- /* 2590 */ 480, 479, 478, 815, 815, 815, 815, 815, 515, 815,
- /* 2600 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815,
- /* 2610 */ 815, 511, 510, 509, 508, 507, 506, 505, 504, 503,
- /* 2620 */ 502, 501, 500, 499, 498, 497, 496, 295, 294, 293,
- /* 2630 */ 282, 482, 278, 815, 378, 245, 376, 375, 374, 373,
- /* 2640 */ 815, 815, 815, 815, 815, 815, 178, 238, 815, 237,
- /* 2650 */ 815, 236, 235, 233, 231, 229, 815, 227, 225, 815,
- /* 2660 */ 481, 480, 479, 478, 97, 405, 815, 205, 298, 815,
- /* 2670 */ 815, 815, 407, 815, 815, 815, 410, 815, 815, 411,
- /* 2680 */ 409, 408, 406, 404, 403, 815, 815, 249, 815, 815,
- /* 2690 */ 511, 510, 509, 508, 507, 506, 505, 504, 503, 502,
- /* 2700 */ 501, 500, 499, 498, 497, 496, 295, 294, 293, 282,
- /* 2710 */ 405, 278, 815, 815, 815, 815, 815, 407, 815, 815,
- /* 2720 */ 815, 410, 815, 815, 411, 409, 408, 406, 404, 403,
- /* 2730 */ 815, 815, 815, 815, 815, 511, 510, 509, 508, 507,
- /* 2740 */ 506, 505, 504, 503, 502, 501, 500, 499, 498, 497,
- /* 2750 */ 496, 295, 294, 293, 282, 30, 278, 815, 815, 111,
- /* 2760 */ 102, 815, 815, 815, 815, 815, 815, 815, 815, 121,
- /* 2770 */ 815, 94, 815, 399, 815, 815, 815, 252, 96, 815,
- /* 2780 */ 815, 815, 815, 815, 168, 815, 815, 515, 392, 387,
- /* 2790 */ 512, 517, 516, 514, 513, 815, 515, 815, 815, 512,
- /* 2800 */ 517, 516, 514, 513, 815, 815, 815, 476, 150, 815,
- /* 2810 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 2820 */ 271, 269, 267, 189, 462, 815, 398, 397, 396, 395,
- /* 2830 */ 394, 815, 815, 815, 815, 815, 815, 815, 393, 815,
- /* 2840 */ 815, 815, 511, 510, 509, 508, 507, 506, 505, 504,
- /* 2850 */ 503, 502, 501, 500, 499, 498, 497, 496, 295, 294,
- /* 2860 */ 293, 282, 815, 278, 815, 815, 398, 397, 396, 395,
- /* 2870 */ 394, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 2880 */ 815, 815, 511, 510, 509, 508, 507, 506, 505, 504,
- /* 2890 */ 503, 502, 501, 500, 499, 498, 497, 496, 295, 294,
- /* 2900 */ 293, 282, 315, 278, 207, 304, 206, 302, 815, 815,
- /* 2910 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 2920 */ 815, 815, 815, 815, 815, 511, 510, 509, 508, 507,
- /* 2930 */ 506, 505, 504, 503, 502, 501, 500, 499, 498, 497,
- /* 2940 */ 496, 295, 294, 293, 282, 815, 278, 207, 304, 206,
- /* 2950 */ 302, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 2960 */ 815, 815, 815, 815, 815, 815, 815, 815, 511, 510,
- /* 2970 */ 509, 508, 507, 506, 505, 504, 503, 502, 501, 500,
- /* 2980 */ 499, 498, 497, 496, 295, 294, 293, 282, 142, 278,
- /* 2990 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 3000 */ 208, 815, 815, 815, 815, 211, 210, 301, 98, 815,
- /* 3010 */ 815, 815, 424, 815, 815, 515, 815, 425, 512, 517,
- /* 3020 */ 516, 514, 513, 815, 815, 815, 815, 515, 815, 142,
- /* 3030 */ 512, 517, 516, 514, 513, 476, 150, 815, 815, 450,
- /* 3040 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 3050 */ 267, 189, 462, 254, 815, 815, 515, 182, 815, 512,
- /* 3060 */ 517, 516, 514, 513, 815, 815, 815, 815, 815, 815,
- /* 3070 */ 142, 815, 815, 815, 815, 815, 476, 150, 815, 815,
- /* 3080 */ 450, 145, 467, 157, 199, 198, 149, 191, 272, 271,
- /* 3090 */ 269, 267, 189, 462, 254, 815, 815, 515, 183, 815,
- /* 3100 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 3110 */ 815, 142, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 3120 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 3130 */ 271, 269, 267, 189, 462, 254, 815, 815, 515, 427,
- /* 3140 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815,
- /* 3150 */ 815, 815, 127, 815, 815, 815, 815, 815, 476, 150,
- /* 3160 */ 815, 815, 450, 145, 467, 157, 199, 198, 149, 191,
- /* 3170 */ 272, 271, 269, 267, 189, 462, 201, 815, 815, 515,
- /* 3180 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815,
- /* 3190 */ 815, 815, 815, 142, 815, 815, 815, 815, 815, 476,
- /* 3200 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149,
- /* 3210 */ 191, 272, 271, 269, 267, 189, 462, 200, 815, 815,
- /* 3220 */ 515, 815, 815, 512, 517, 516, 514, 513, 815, 815,
- /* 3230 */ 815, 815, 815, 815, 142, 815, 815, 815, 815, 815,
- /* 3240 */ 476, 150, 815, 815, 450, 145, 467, 157, 199, 198,
- /* 3250 */ 149, 191, 272, 271, 269, 267, 189, 462, 201, 815,
- /* 3260 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 3270 */ 815, 815, 815, 815, 815, 142, 815, 815, 815, 815,
- /* 3280 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199,
- /* 3290 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 175,
- /* 3300 */ 815, 815, 515, 815, 815, 512, 517, 516, 514, 513,
- /* 3310 */ 815, 815, 815, 815, 815, 815, 142, 815, 815, 815,
- /* 3320 */ 815, 815, 476, 150, 815, 815, 450, 145, 467, 157,
- /* 3330 */ 199, 198, 149, 191, 272, 271, 269, 267, 189, 462,
- /* 3340 */ 174, 815, 815, 515, 815, 815, 512, 517, 516, 514,
- /* 3350 */ 513, 815, 815, 815, 815, 815, 815, 142, 815, 815,
- /* 3360 */ 815, 815, 815, 476, 150, 815, 815, 450, 145, 467,
- /* 3370 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 3380 */ 462, 173, 815, 815, 515, 815, 815, 512, 517, 516,
- /* 3390 */ 514, 513, 815, 815, 815, 815, 815, 815, 142, 815,
- /* 3400 */ 815, 815, 815, 815, 476, 150, 815, 815, 450, 145,
- /* 3410 */ 467, 157, 199, 198, 149, 191, 272, 271, 269, 267,
- /* 3420 */ 189, 462, 172, 815, 815, 515, 815, 815, 512, 517,
- /* 3430 */ 516, 514, 513, 815, 815, 815, 815, 815, 815, 142,
- /* 3440 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 450,
- /* 3450 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 3460 */ 267, 189, 462, 171, 815, 815, 515, 815, 815, 512,
- /* 3470 */ 517, 516, 514, 513, 815, 815, 815, 815, 815, 815,
- /* 3480 */ 142, 815, 815, 815, 815, 815, 476, 150, 815, 815,
- /* 3490 */ 450, 145, 467, 157, 199, 198, 149, 191, 272, 271,
- /* 3500 */ 269, 267, 189, 462, 202, 815, 815, 515, 815, 815,
- /* 3510 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 3520 */ 142, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 3530 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 3540 */ 271, 269, 267, 189, 462, 815, 815, 515, 815, 815,
- /* 3550 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 3560 */ 815, 142, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 3570 */ 187, 441, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 3580 */ 271, 269, 267, 189, 462, 169, 815, 815, 515, 815,
- /* 3590 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815,
- /* 3600 */ 815, 815, 142, 815, 815, 815, 815, 815, 476, 150,
- /* 3610 */ 815, 815, 450, 145, 467, 157, 199, 198, 149, 191,
- /* 3620 */ 272, 271, 269, 267, 189, 462, 167, 815, 815, 515,
- /* 3630 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815,
- /* 3640 */ 815, 815, 815, 142, 815, 815, 815, 815, 815, 476,
- /* 3650 */ 150, 815, 815, 450, 145, 467, 157, 199, 198, 149,
- /* 3660 */ 191, 272, 271, 269, 267, 189, 462, 166, 815, 815,
- /* 3670 */ 515, 815, 815, 512, 517, 516, 514, 513, 815, 815,
- /* 3680 */ 815, 815, 815, 815, 142, 815, 815, 815, 815, 815,
- /* 3690 */ 476, 150, 815, 815, 450, 145, 467, 157, 199, 198,
- /* 3700 */ 149, 191, 272, 271, 269, 267, 189, 462, 165, 815,
- /* 3710 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 3720 */ 815, 815, 815, 815, 815, 142, 815, 815, 815, 815,
- /* 3730 */ 815, 476, 150, 815, 815, 450, 145, 467, 157, 199,
- /* 3740 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 163,
- /* 3750 */ 815, 815, 515, 815, 815, 512, 517, 516, 514, 513,
- /* 3760 */ 815, 815, 815, 815, 815, 815, 142, 815, 815, 815,
- /* 3770 */ 815, 815, 476, 150, 815, 815, 450, 145, 467, 157,
- /* 3780 */ 199, 198, 149, 191, 272, 271, 269, 267, 189, 462,
- /* 3790 */ 164, 815, 815, 515, 815, 815, 512, 517, 516, 514,
- /* 3800 */ 513, 815, 815, 815, 815, 815, 815, 142, 815, 815,
- /* 3810 */ 815, 815, 815, 476, 150, 815, 815, 450, 145, 467,
- /* 3820 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 3830 */ 462, 162, 815, 815, 515, 815, 815, 512, 517, 516,
- /* 3840 */ 514, 513, 815, 815, 815, 815, 815, 815, 142, 815,
- /* 3850 */ 815, 815, 815, 815, 476, 150, 815, 815, 450, 145,
- /* 3860 */ 467, 157, 199, 198, 149, 191, 272, 271, 269, 267,
- /* 3870 */ 189, 462, 161, 815, 815, 515, 815, 815, 512, 517,
- /* 3880 */ 516, 514, 513, 815, 815, 815, 815, 815, 815, 142,
- /* 3890 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 450,
- /* 3900 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 3910 */ 267, 189, 462, 160, 815, 815, 515, 815, 815, 512,
- /* 3920 */ 517, 516, 514, 513, 815, 815, 815, 815, 815, 815,
- /* 3930 */ 142, 815, 815, 815, 815, 815, 476, 150, 815, 815,
- /* 3940 */ 450, 145, 467, 157, 199, 198, 149, 191, 272, 271,
- /* 3950 */ 269, 267, 189, 462, 159, 815, 815, 515, 815, 815,
- /* 3960 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 3970 */ 142, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 3980 */ 815, 450, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 3990 */ 271, 269, 267, 189, 462, 815, 815, 515, 815, 815,
- /* 4000 */ 512, 517, 516, 514, 513, 815, 815, 815, 142, 815,
- /* 4010 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 4020 */ 815, 440, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 4030 */ 271, 269, 267, 189, 462, 515, 815, 815, 512, 517,
- /* 4040 */ 516, 514, 513, 815, 815, 815, 142, 815, 815, 815,
- /* 4050 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 461,
- /* 4060 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 4070 */ 267, 189, 462, 515, 815, 815, 512, 517, 516, 514,
- /* 4080 */ 513, 815, 815, 815, 142, 815, 815, 815, 815, 815,
- /* 4090 */ 815, 815, 815, 476, 150, 815, 815, 460, 145, 467,
- /* 4100 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 4110 */ 462, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 4120 */ 815, 815, 142, 815, 815, 815, 815, 815, 815, 815,
- /* 4130 */ 815, 476, 150, 815, 815, 459, 145, 467, 157, 199,
- /* 4140 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 515,
- /* 4150 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815,
- /* 4160 */ 142, 815, 815, 815, 815, 815, 815, 815, 815, 476,
- /* 4170 */ 150, 815, 815, 458, 145, 467, 157, 199, 198, 149,
- /* 4180 */ 191, 272, 271, 269, 267, 189, 462, 515, 815, 815,
- /* 4190 */ 512, 517, 516, 514, 513, 815, 815, 815, 142, 815,
- /* 4200 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 4210 */ 815, 457, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 4220 */ 271, 269, 267, 189, 462, 515, 815, 815, 512, 517,
- /* 4230 */ 516, 514, 513, 815, 815, 815, 142, 815, 815, 815,
- /* 4240 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 456,
- /* 4250 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 4260 */ 267, 189, 462, 515, 815, 815, 512, 517, 516, 514,
- /* 4270 */ 513, 815, 815, 815, 142, 815, 815, 815, 815, 815,
- /* 4280 */ 815, 815, 815, 476, 150, 815, 815, 455, 145, 467,
- /* 4290 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 4300 */ 462, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 4310 */ 815, 815, 142, 815, 815, 815, 815, 815, 815, 815,
- /* 4320 */ 815, 476, 150, 815, 815, 454, 145, 467, 157, 199,
- /* 4330 */ 198, 149, 191, 272, 271, 269, 267, 189, 462, 515,
- /* 4340 */ 815, 815, 512, 517, 516, 514, 513, 815, 815, 815,
- /* 4350 */ 142, 815, 815, 815, 815, 815, 815, 815, 815, 476,
- /* 4360 */ 150, 815, 815, 453, 145, 467, 157, 199, 198, 149,
- /* 4370 */ 191, 272, 271, 269, 267, 189, 462, 515, 815, 815,
- /* 4380 */ 512, 517, 516, 514, 513, 815, 815, 815, 142, 815,
- /* 4390 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 4400 */ 815, 452, 145, 467, 157, 199, 198, 149, 191, 272,
- /* 4410 */ 271, 269, 267, 189, 462, 515, 815, 815, 512, 517,
- /* 4420 */ 516, 514, 513, 815, 815, 815, 142, 815, 815, 815,
- /* 4430 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 451,
- /* 4440 */ 145, 467, 157, 199, 198, 149, 191, 272, 271, 269,
- /* 4450 */ 267, 189, 462, 515, 815, 815, 512, 517, 516, 514,
- /* 4460 */ 513, 815, 815, 815, 815, 815, 99, 815, 815, 815,
- /* 4470 */ 815, 815, 815, 476, 150, 815, 815, 442, 145, 467,
- /* 4480 */ 157, 199, 198, 149, 191, 272, 271, 269, 267, 189,
- /* 4490 */ 462, 511, 510, 509, 508, 507, 506, 505, 504, 503,
- /* 4500 */ 502, 501, 500, 499, 498, 497, 496, 295, 294, 293,
- /* 4510 */ 282, 815, 278, 815, 205, 815, 815, 815, 815, 815,
- /* 4520 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 4530 */ 142, 815, 815, 815, 815, 815, 815, 511, 510, 509,
- /* 4540 */ 508, 507, 506, 505, 504, 503, 502, 501, 500, 499,
- /* 4550 */ 498, 497, 496, 295, 294, 293, 282, 515, 278, 815,
- /* 4560 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 4570 */ 815, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 4580 */ 815, 815, 468, 467, 157, 199, 198, 149, 191, 272,
- /* 4590 */ 271, 269, 267, 189, 463, 815, 815, 815, 815, 815,
- /* 4600 */ 815, 511, 510, 509, 508, 507, 506, 505, 504, 503,
- /* 4610 */ 502, 501, 500, 499, 498, 497, 496, 295, 294, 293,
- /* 4620 */ 282, 142, 278, 815, 814, 66, 297, 523, 128, 815,
- /* 4630 */ 319, 108, 110, 815, 95, 129, 815, 815, 815, 815,
- /* 4640 */ 815, 815, 815, 94, 815, 399, 815, 815, 515, 252,
- /* 4650 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 515,
- /* 4660 */ 815, 815, 512, 517, 516, 514, 513, 815, 476, 150,
- /* 4670 */ 142, 815, 815, 468, 467, 157, 199, 198, 149, 191,
- /* 4680 */ 272, 271, 269, 267, 188, 815, 815, 815, 815, 815,
- /* 4690 */ 815, 815, 815, 815, 815, 815, 815, 515, 815, 815,
- /* 4700 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 4710 */ 142, 815, 815, 815, 815, 815, 815, 476, 150, 815,
- /* 4720 */ 116, 815, 468, 467, 157, 199, 198, 149, 191, 272,
- /* 4730 */ 271, 269, 265, 412, 815, 815, 815, 515, 815, 815,
- /* 4740 */ 512, 517, 516, 514, 513, 142, 815, 515, 815, 815,
- /* 4750 */ 512, 517, 516, 514, 513, 815, 815, 476, 150, 815,
- /* 4760 */ 815, 815, 468, 467, 157, 199, 198, 149, 191, 272,
- /* 4770 */ 271, 266, 515, 815, 815, 512, 517, 516, 514, 513,
- /* 4780 */ 815, 142, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 4790 */ 815, 815, 476, 150, 815, 815, 815, 468, 467, 157,
- /* 4800 */ 199, 198, 149, 191, 272, 268, 815, 815, 515, 815,
- /* 4810 */ 815, 512, 517, 516, 514, 513, 815, 815, 815, 815,
- /* 4820 */ 815, 815, 815, 815, 815, 815, 815, 815, 476, 150,
- /* 4830 */ 815, 815, 815, 468, 467, 157, 199, 198, 149, 191,
- /* 4840 */ 270, 815, 815, 815, 524, 523, 128, 815, 319, 108,
- /* 4850 */ 110, 815, 95, 129, 815, 815, 815, 815, 142, 815,
- /* 4860 */ 815, 94, 815, 399, 815, 815, 815, 252, 815, 815,
- /* 4870 */ 142, 815, 815, 815, 815, 815, 815, 515, 815, 815,
- /* 4880 */ 512, 517, 516, 514, 513, 515, 815, 815, 512, 517,
- /* 4890 */ 516, 514, 513, 815, 815, 815, 815, 515, 815, 815,
- /* 4900 */ 512, 517, 516, 514, 513, 476, 150, 815, 142, 815,
- /* 4910 */ 468, 467, 157, 199, 198, 149, 190, 476, 150, 815,
- /* 4920 */ 815, 815, 468, 467, 157, 199, 198, 148, 815, 815,
- /* 4930 */ 815, 815, 815, 815, 815, 515, 815, 815, 512, 517,
- /* 4940 */ 516, 514, 513, 815, 142, 815, 815, 815, 815, 815,
- /* 4950 */ 815, 815, 815, 815, 815, 476, 150, 815, 815, 815,
- /* 4960 */ 468, 467, 157, 199, 198, 147, 815, 815, 815, 815,
- /* 4970 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 142,
- /* 4980 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 4990 */ 815, 476, 150, 815, 815, 815, 468, 467, 157, 199,
- /* 5000 */ 195, 815, 815, 815, 815, 815, 515, 815, 815, 512,
- /* 5010 */ 517, 516, 514, 513, 142, 815, 815, 815, 815, 815,
- /* 5020 */ 815, 815, 815, 815, 142, 815, 476, 150, 815, 815,
- /* 5030 */ 815, 468, 467, 157, 199, 194, 815, 815, 815, 815,
- /* 5040 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 5050 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 142,
- /* 5060 */ 815, 476, 150, 815, 815, 815, 468, 467, 157, 199,
- /* 5070 */ 193, 476, 150, 815, 815, 815, 468, 467, 157, 199,
- /* 5080 */ 192, 815, 815, 815, 815, 815, 515, 815, 142, 512,
- /* 5090 */ 517, 516, 514, 513, 815, 815, 815, 142, 815, 815,
- /* 5100 */ 815, 815, 815, 815, 815, 815, 476, 150, 815, 815,
- /* 5110 */ 815, 468, 467, 157, 197, 515, 815, 815, 512, 517,
- /* 5120 */ 516, 514, 513, 815, 515, 142, 815, 512, 517, 516,
- /* 5130 */ 514, 513, 815, 815, 815, 476, 150, 815, 815, 815,
- /* 5140 */ 468, 467, 157, 196, 476, 150, 815, 815, 815, 468,
- /* 5150 */ 467, 156, 515, 815, 815, 512, 517, 516, 514, 513,
- /* 5160 */ 208, 815, 815, 815, 815, 203, 210, 301, 98, 815,
- /* 5170 */ 815, 815, 476, 150, 142, 815, 815, 468, 467, 155,
- /* 5180 */ 815, 815, 815, 815, 142, 815, 815, 515, 815, 815,
- /* 5190 */ 512, 517, 516, 514, 513, 815, 815, 815, 815, 815,
- /* 5200 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 5210 */ 815, 515, 142, 815, 512, 517, 516, 514, 513, 815,
- /* 5220 */ 815, 476, 150, 142, 815, 815, 468, 472, 815, 815,
- /* 5230 */ 815, 476, 150, 815, 815, 815, 468, 471, 815, 515,
- /* 5240 */ 815, 815, 512, 517, 516, 514, 513, 142, 815, 815,
- /* 5250 */ 515, 815, 815, 512, 517, 516, 514, 513, 142, 476,
- /* 5260 */ 150, 815, 815, 815, 468, 470, 815, 815, 815, 815,
- /* 5270 */ 476, 150, 815, 815, 515, 468, 469, 512, 517, 516,
- /* 5280 */ 514, 513, 142, 815, 815, 515, 815, 815, 512, 517,
- /* 5290 */ 516, 514, 513, 142, 476, 150, 815, 815, 815, 468,
- /* 5300 */ 466, 815, 815, 815, 815, 476, 150, 815, 815, 515,
- /* 5310 */ 468, 465, 512, 517, 516, 514, 513, 142, 815, 815,
- /* 5320 */ 515, 815, 815, 512, 517, 516, 514, 513, 815, 476,
- /* 5330 */ 150, 815, 815, 815, 468, 464, 815, 815, 815, 815,
- /* 5340 */ 476, 150, 815, 815, 515, 468, 445, 512, 517, 516,
- /* 5350 */ 514, 513, 815, 815, 142, 815, 815, 815, 815, 815,
- /* 5360 */ 815, 815, 815, 815, 476, 150, 815, 815, 815, 449,
- /* 5370 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 5380 */ 815, 515, 815, 815, 512, 517, 516, 514, 513, 815,
- /* 5390 */ 815, 815, 815, 815, 815, 815, 815, 815, 815, 815,
- /* 5400 */ 815, 476, 150, 815, 815, 815, 473,
- };
- static const YYCODETYPE yy_lookahead[] = {
- /* 0 */ 27, 28, 35, 36, 37, 38, 33, 34, 35, 36,
- /* 10 */ 38, 38, 40, 40, 2, 142, 43, 44, 45, 46,
- /* 20 */ 147, 148, 29, 30, 31, 52, 66, 154, 155, 56,
- /* 30 */ 27, 28, 59, 60, 61, 62, 63, 64, 65, 66,
- /* 40 */ 67, 83, 1, 70, 71, 72, 73, 74, 75, 76,
- /* 50 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- /* 60 */ 87, 88, 89, 90, 91, 53, 54, 55, 56, 57,
- /* 70 */ 58, 98, 99, 100, 101, 102, 103, 117, 118, 106,
- /* 80 */ 39, 108, 21, 22, 23, 24, 38, 114, 83, 133,
- /* 90 */ 27, 28, 119, 120, 121, 122, 33, 34, 35, 36,
- /* 100 */ 144, 38, 146, 40, 2, 142, 43, 44, 45, 46,
- /* 110 */ 108, 148, 19, 20, 148, 52, 114, 154, 155, 56,
- /* 120 */ 154, 155, 59, 60, 61, 62, 63, 64, 65, 66,
- /* 130 */ 67, 25, 26, 70, 71, 72, 73, 74, 75, 76,
- /* 140 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- /* 150 */ 87, 88, 89, 90, 91, 21, 54, 55, 56, 57,
- /* 160 */ 58, 98, 99, 100, 101, 102, 103, 101, 102, 106,
- /* 170 */ 136, 108, 106, 101, 102, 141, 142, 114, 106, 133,
- /* 180 */ 27, 28, 119, 120, 121, 122, 33, 34, 35, 36,
- /* 190 */ 144, 38, 146, 40, 142, 148, 43, 44, 45, 46,
- /* 200 */ 148, 154, 155, 23, 148, 52, 154, 155, 133, 56,
- /* 210 */ 154, 155, 59, 60, 61, 62, 63, 64, 65, 144,
- /* 220 */ 67, 146, 1, 70, 71, 72, 73, 74, 75, 76,
- /* 230 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- /* 240 */ 87, 88, 89, 90, 91, 14, 46, 157, 158, 159,
- /* 250 */ 23, 98, 99, 100, 101, 102, 103, 148, 1, 106,
- /* 260 */ 132, 108, 41, 154, 155, 13, 14, 114, 68, 69,
- /* 270 */ 27, 28, 119, 120, 121, 122, 33, 34, 35, 36,
- /* 280 */ 152, 37, 1, 40, 53, 41, 43, 159, 45, 46,
- /* 290 */ 162, 163, 164, 165, 166, 52, 101, 102, 133, 56,
- /* 300 */ 43, 106, 59, 60, 61, 62, 63, 64, 1, 144,
- /* 310 */ 67, 146, 1, 70, 71, 72, 73, 74, 75, 76,
- /* 320 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- /* 330 */ 87, 88, 89, 90, 91, 68, 69, 127, 136, 129,
- /* 340 */ 130, 131, 132, 141, 142, 1, 181, 66, 41, 1,
- /* 350 */ 39, 39, 40, 143, 108, 145, 23, 23, 43, 149,
- /* 360 */ 114, 46, 119, 120, 121, 122, 156, 1, 1, 159,
- /* 370 */ 40, 41, 162, 163, 164, 165, 166, 167, 168, 1,
- /* 380 */ 170, 171, 172, 173, 1, 175, 176, 43, 1, 179,
- /* 390 */ 180, 43, 1, 183, 184, 185, 186, 187, 188, 189,
- /* 400 */ 190, 191, 192, 193, 194, 195, 196, 127, 41, 129,
- /* 410 */ 130, 131, 132, 79, 80, 81, 82, 83, 84, 85,
- /* 420 */ 86, 87, 1, 143, 133, 145, 43, 43, 41, 149,
- /* 430 */ 23, 53, 66, 23, 43, 40, 156, 146, 1, 159,
- /* 440 */ 1, 46, 162, 163, 164, 165, 166, 167, 168, 65,
- /* 450 */ 170, 171, 172, 173, 43, 175, 176, 46, 2, 179,
- /* 460 */ 180, 2, 41, 183, 184, 185, 186, 187, 188, 189,
- /* 470 */ 190, 191, 192, 193, 194, 195, 196, 21, 41, 83,
- /* 480 */ 21, 127, 43, 129, 130, 131, 132, 79, 80, 81,
- /* 490 */ 82, 83, 84, 85, 86, 87, 136, 143, 23, 145,
- /* 500 */ 174, 23, 142, 149, 178, 117, 118, 147, 148, 53,
- /* 510 */ 156, 83, 53, 159, 154, 155, 162, 163, 164, 165,
- /* 520 */ 166, 167, 168, 23, 170, 171, 172, 173, 1, 175,
- /* 530 */ 176, 1, 132, 179, 180, 135, 21, 183, 184, 185,
- /* 540 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 550 */ 196, 127, 133, 129, 130, 131, 132, 1, 1, 159,
- /* 560 */ 1, 1, 162, 163, 164, 165, 166, 143, 23, 145,
- /* 570 */ 43, 41, 153, 149, 79, 80, 81, 82, 83, 84,
- /* 580 */ 156, 86, 87, 159, 1, 21, 162, 163, 164, 165,
- /* 590 */ 166, 1, 168, 1, 170, 171, 172, 173, 41, 175,
- /* 600 */ 176, 41, 43, 179, 180, 132, 1, 183, 184, 185,
- /* 610 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 620 */ 196, 2, 141, 142, 90, 127, 43, 129, 130, 131,
- /* 630 */ 132, 41, 159, 41, 1, 162, 163, 164, 165, 166,
- /* 640 */ 1, 143, 90, 145, 141, 142, 1, 149, 43, 158,
- /* 650 */ 159, 90, 23, 18, 156, 17, 16, 159, 15, 46,
- /* 660 */ 162, 163, 164, 165, 166, 40, 168, 46, 170, 171,
- /* 670 */ 172, 173, 53, 175, 176, 132, 46, 179, 180, 69,
- /* 680 */ 41, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 690 */ 192, 193, 194, 195, 196, 127, 41, 129, 130, 131,
- /* 700 */ 132, 40, 159, 46, 41, 162, 163, 164, 165, 166,
- /* 710 */ 1, 143, 68, 145, 43, 65, 46, 149, 46, 46,
- /* 720 */ 43, 43, 43, 40, 156, 41, 90, 159, 39, 41,
- /* 730 */ 162, 163, 164, 165, 166, 39, 168, 90, 170, 171,
- /* 740 */ 172, 173, 39, 175, 176, 39, 39, 179, 180, 132,
- /* 750 */ 39, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 760 */ 192, 193, 194, 195, 196, 39, 108, 108, 39, 127,
- /* 770 */ 108, 129, 130, 131, 132, 39, 159, 108, 39, 162,
- /* 780 */ 163, 164, 165, 166, 39, 143, 101, 145, 114, 114,
- /* 790 */ 40, 149, 102, 40, 43, 40, 42, 40, 156, 65,
- /* 800 */ 53, 159, 46, 40, 162, 163, 164, 165, 166, 41,
- /* 810 */ 168, 1, 170, 171, 172, 173, 46, 175, 176, 46,
- /* 820 */ 51, 179, 180, 49, 46, 183, 184, 185, 186, 187,
- /* 830 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 127,
- /* 840 */ 40, 129, 130, 131, 132, 41, 133, 46, 181, 40,
- /* 850 */ 133, 53, 155, 154, 2, 143, 53, 145, 142, 136,
- /* 860 */ 53, 149, 181, 177, 129, 40, 136, 65, 156, 142,
- /* 870 */ 142, 159, 129, 142, 162, 163, 164, 165, 166, 142,
- /* 880 */ 168, 159, 170, 171, 172, 173, 178, 175, 176, 169,
- /* 890 */ 53, 179, 180, 46, 136, 183, 184, 185, 186, 187,
- /* 900 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- /* 910 */ 197, 159, 197, 127, 197, 129, 130, 131, 132, 197,
- /* 920 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143,
- /* 930 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197,
- /* 940 */ 197, 197, 156, 197, 197, 159, 197, 197, 162, 163,
- /* 950 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173,
- /* 960 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183,
- /* 970 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 980 */ 194, 195, 196, 127, 197, 129, 130, 131, 132, 197,
- /* 990 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143,
- /* 1000 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197,
- /* 1010 */ 197, 197, 156, 197, 197, 159, 197, 197, 162, 163,
- /* 1020 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173,
- /* 1030 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183,
- /* 1040 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 1050 */ 194, 195, 196, 197, 197, 197, 197, 127, 197, 129,
- /* 1060 */ 130, 131, 132, 197, 197, 197, 197, 197, 197, 197,
- /* 1070 */ 197, 197, 197, 143, 197, 145, 197, 197, 197, 149,
- /* 1080 */ 197, 197, 197, 197, 197, 197, 156, 197, 197, 159,
- /* 1090 */ 197, 197, 162, 163, 164, 165, 166, 197, 168, 197,
- /* 1100 */ 170, 171, 172, 173, 197, 175, 176, 197, 197, 179,
- /* 1110 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189,
- /* 1120 */ 190, 191, 192, 193, 194, 195, 196, 127, 197, 129,
- /* 1130 */ 130, 131, 132, 197, 197, 197, 197, 197, 197, 197,
- /* 1140 */ 197, 197, 197, 143, 197, 145, 197, 197, 197, 149,
- /* 1150 */ 197, 197, 197, 197, 197, 197, 156, 197, 197, 159,
- /* 1160 */ 197, 197, 162, 163, 164, 165, 166, 197, 168, 197,
- /* 1170 */ 170, 171, 172, 173, 197, 175, 176, 197, 197, 179,
- /* 1180 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189,
- /* 1190 */ 190, 191, 192, 193, 194, 195, 196, 197, 197, 197,
- /* 1200 */ 197, 127, 197, 129, 130, 131, 132, 197, 197, 197,
- /* 1210 */ 197, 197, 197, 197, 197, 197, 197, 143, 197, 145,
- /* 1220 */ 197, 197, 197, 149, 197, 197, 197, 197, 197, 197,
- /* 1230 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165,
- /* 1240 */ 166, 197, 168, 197, 170, 171, 172, 173, 197, 175,
- /* 1250 */ 176, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 1260 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 1270 */ 196, 127, 197, 129, 130, 131, 132, 197, 197, 197,
- /* 1280 */ 197, 197, 197, 197, 197, 197, 197, 143, 197, 145,
- /* 1290 */ 197, 197, 197, 149, 197, 197, 197, 197, 197, 197,
- /* 1300 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165,
- /* 1310 */ 166, 197, 168, 197, 170, 171, 172, 173, 197, 175,
- /* 1320 */ 176, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 1330 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 1340 */ 196, 197, 197, 197, 197, 127, 197, 129, 130, 131,
- /* 1350 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 1360 */ 197, 143, 197, 145, 197, 197, 197, 149, 197, 197,
- /* 1370 */ 197, 197, 197, 197, 156, 197, 197, 159, 197, 197,
- /* 1380 */ 162, 163, 164, 165, 166, 197, 168, 197, 170, 171,
- /* 1390 */ 172, 173, 197, 175, 176, 197, 197, 179, 180, 197,
- /* 1400 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 1410 */ 192, 193, 194, 195, 196, 127, 197, 129, 130, 131,
- /* 1420 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 1430 */ 197, 143, 197, 145, 197, 197, 197, 149, 197, 197,
- /* 1440 */ 197, 197, 197, 197, 156, 197, 197, 159, 197, 197,
- /* 1450 */ 162, 163, 164, 165, 166, 197, 168, 197, 170, 171,
- /* 1460 */ 172, 173, 197, 175, 176, 197, 197, 179, 180, 197,
- /* 1470 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 1480 */ 192, 193, 194, 195, 196, 197, 197, 197, 197, 127,
- /* 1490 */ 197, 129, 130, 131, 132, 197, 197, 197, 197, 197,
- /* 1500 */ 197, 197, 197, 197, 197, 143, 197, 145, 197, 197,
- /* 1510 */ 197, 149, 197, 197, 197, 197, 197, 197, 156, 197,
- /* 1520 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 1530 */ 168, 197, 170, 171, 172, 173, 197, 175, 176, 197,
- /* 1540 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187,
- /* 1550 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 127,
- /* 1560 */ 197, 129, 130, 131, 132, 197, 197, 197, 197, 197,
- /* 1570 */ 197, 197, 197, 197, 197, 143, 197, 145, 197, 197,
- /* 1580 */ 197, 149, 197, 197, 197, 197, 197, 197, 156, 197,
- /* 1590 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 1600 */ 168, 197, 170, 171, 172, 173, 197, 175, 176, 197,
- /* 1610 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187,
- /* 1620 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
- /* 1630 */ 197, 197, 197, 127, 197, 129, 130, 131, 132, 197,
- /* 1640 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143,
- /* 1650 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197,
- /* 1660 */ 197, 197, 156, 197, 197, 159, 197, 197, 162, 163,
- /* 1670 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173,
- /* 1680 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183,
- /* 1690 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 1700 */ 194, 195, 196, 127, 197, 129, 130, 131, 132, 197,
- /* 1710 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 143,
- /* 1720 */ 197, 145, 197, 197, 197, 149, 197, 197, 197, 197,
- /* 1730 */ 197, 197, 156, 0, 197, 159, 197, 197, 162, 163,
- /* 1740 */ 164, 165, 166, 197, 168, 197, 170, 171, 172, 173,
- /* 1750 */ 197, 175, 176, 197, 197, 179, 180, 197, 197, 183,
- /* 1760 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 1770 */ 194, 195, 196, 197, 197, 197, 197, 44, 45, 197,
- /* 1780 */ 47, 48, 197, 197, 197, 52, 197, 197, 197, 56,
- /* 1790 */ 197, 197, 59, 60, 61, 62, 63, 64, 197, 197,
- /* 1800 */ 67, 197, 197, 70, 71, 72, 73, 74, 75, 76,
- /* 1810 */ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
- /* 1820 */ 87, 88, 89, 197, 91, 27, 28, 197, 197, 197,
- /* 1830 */ 197, 33, 34, 35, 36, 197, 197, 39, 40, 197,
- /* 1840 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 197,
- /* 1850 */ 197, 197, 197, 33, 34, 35, 36, 197, 197, 197,
- /* 1860 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71,
- /* 1870 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 1880 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 1890 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 1900 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 1910 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121,
- /* 1920 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 197,
- /* 1930 */ 197, 43, 197, 197, 46, 197, 197, 27, 28, 119,
- /* 1940 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197,
- /* 1950 */ 40, 197, 197, 43, 197, 197, 46, 197, 70, 71,
- /* 1960 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 1970 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 1980 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 1990 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2000 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121,
- /* 2010 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 41,
- /* 2020 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 119,
- /* 2030 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197,
- /* 2040 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71,
- /* 2050 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 2060 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 2070 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 2080 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2090 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121,
- /* 2100 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 197,
- /* 2110 */ 197, 43, 197, 197, 46, 197, 197, 27, 28, 119,
- /* 2120 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197,
- /* 2130 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71,
- /* 2140 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 2150 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 2160 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 2170 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2180 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121,
- /* 2190 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 41,
- /* 2200 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 119,
- /* 2210 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197,
- /* 2220 */ 40, 197, 197, 43, 197, 197, 46, 197, 70, 71,
- /* 2230 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 2240 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 2250 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 2260 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2270 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121,
- /* 2280 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 41,
- /* 2290 */ 197, 197, 197, 197, 46, 197, 197, 27, 28, 119,
- /* 2300 */ 120, 121, 122, 33, 34, 35, 36, 197, 197, 197,
- /* 2310 */ 40, 41, 197, 197, 197, 197, 46, 197, 70, 71,
- /* 2320 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 2330 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 2340 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 2350 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2360 */ 90, 91, 197, 197, 197, 27, 28, 119, 120, 121,
- /* 2370 */ 122, 33, 34, 35, 36, 197, 197, 197, 40, 197,
- /* 2380 */ 197, 197, 197, 197, 46, 197, 197, 197, 197, 119,
- /* 2390 */ 120, 121, 122, 197, 197, 197, 197, 197, 197, 197,
- /* 2400 */ 197, 197, 197, 65, 197, 197, 197, 197, 70, 71,
- /* 2410 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 2420 */ 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- /* 2430 */ 197, 27, 28, 197, 132, 197, 197, 33, 34, 35,
- /* 2440 */ 36, 197, 197, 141, 40, 197, 197, 197, 197, 197,
- /* 2450 */ 46, 197, 150, 151, 152, 197, 197, 119, 120, 121,
- /* 2460 */ 122, 159, 197, 197, 162, 163, 164, 165, 166, 65,
- /* 2470 */ 197, 197, 197, 197, 70, 71, 72, 73, 74, 75,
- /* 2480 */ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
- /* 2490 */ 86, 87, 88, 89, 90, 91, 197, 27, 28, 197,
- /* 2500 */ 197, 197, 197, 33, 34, 35, 36, 197, 197, 197,
- /* 2510 */ 40, 197, 197, 197, 197, 197, 46, 197, 197, 197,
- /* 2520 */ 197, 197, 197, 119, 120, 121, 122, 2, 3, 4,
- /* 2530 */ 5, 6, 7, 8, 9, 10, 11, 12, 197, 197,
- /* 2540 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 2550 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2560 */ 90, 91, 197, 197, 197, 197, 197, 197, 27, 28,
- /* 2570 */ 197, 132, 197, 197, 33, 34, 35, 36, 139, 140,
- /* 2580 */ 197, 40, 197, 197, 197, 197, 197, 46, 197, 119,
- /* 2590 */ 120, 121, 122, 197, 197, 197, 197, 197, 159, 197,
- /* 2600 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197,
- /* 2610 */ 197, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- /* 2620 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- /* 2630 */ 89, 90, 91, 197, 92, 93, 94, 95, 96, 97,
- /* 2640 */ 197, 197, 197, 197, 197, 197, 104, 105, 197, 107,
- /* 2650 */ 197, 109, 110, 111, 112, 113, 197, 115, 116, 197,
- /* 2660 */ 119, 120, 121, 122, 44, 45, 197, 47, 48, 197,
- /* 2670 */ 197, 197, 52, 197, 197, 197, 56, 197, 197, 59,
- /* 2680 */ 60, 61, 62, 63, 64, 197, 197, 67, 197, 197,
- /* 2690 */ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- /* 2700 */ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- /* 2710 */ 45, 91, 197, 197, 197, 197, 197, 52, 197, 197,
- /* 2720 */ 197, 56, 197, 197, 59, 60, 61, 62, 63, 64,
- /* 2730 */ 197, 197, 197, 197, 197, 70, 71, 72, 73, 74,
- /* 2740 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- /* 2750 */ 85, 86, 87, 88, 89, 127, 91, 197, 197, 131,
- /* 2760 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 132,
- /* 2770 */ 197, 143, 197, 145, 197, 197, 197, 149, 141, 197,
- /* 2780 */ 197, 197, 197, 197, 156, 197, 197, 159, 151, 152,
- /* 2790 */ 162, 163, 164, 165, 166, 197, 159, 197, 197, 162,
- /* 2800 */ 163, 164, 165, 166, 197, 197, 197, 179, 180, 197,
- /* 2810 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 2820 */ 192, 193, 194, 195, 196, 197, 54, 55, 56, 57,
- /* 2830 */ 58, 197, 197, 197, 197, 197, 197, 197, 66, 197,
- /* 2840 */ 197, 197, 70, 71, 72, 73, 74, 75, 76, 77,
- /* 2850 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- /* 2860 */ 88, 89, 197, 91, 197, 197, 54, 55, 56, 57,
- /* 2870 */ 58, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 2880 */ 197, 197, 70, 71, 72, 73, 74, 75, 76, 77,
- /* 2890 */ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
- /* 2900 */ 88, 89, 47, 91, 49, 50, 51, 52, 197, 197,
- /* 2910 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 2920 */ 197, 197, 197, 197, 197, 70, 71, 72, 73, 74,
- /* 2930 */ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- /* 2940 */ 85, 86, 87, 88, 89, 197, 91, 49, 50, 51,
- /* 2950 */ 52, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 2960 */ 197, 197, 197, 197, 197, 197, 197, 197, 70, 71,
- /* 2970 */ 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- /* 2980 */ 82, 83, 84, 85, 86, 87, 88, 89, 132, 91,
- /* 2990 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 3000 */ 132, 197, 197, 197, 197, 137, 138, 139, 140, 197,
- /* 3010 */ 197, 197, 156, 197, 197, 159, 197, 161, 162, 163,
- /* 3020 */ 164, 165, 166, 197, 197, 197, 197, 159, 197, 132,
- /* 3030 */ 162, 163, 164, 165, 166, 179, 180, 197, 197, 183,
- /* 3040 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 3050 */ 194, 195, 196, 156, 197, 197, 159, 160, 197, 162,
- /* 3060 */ 163, 164, 165, 166, 197, 197, 197, 197, 197, 197,
- /* 3070 */ 132, 197, 197, 197, 197, 197, 179, 180, 197, 197,
- /* 3080 */ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- /* 3090 */ 193, 194, 195, 196, 156, 197, 197, 159, 160, 197,
- /* 3100 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 3110 */ 197, 132, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 3120 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 3130 */ 192, 193, 194, 195, 196, 156, 197, 197, 159, 160,
- /* 3140 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197,
- /* 3150 */ 197, 197, 132, 197, 197, 197, 197, 197, 179, 180,
- /* 3160 */ 197, 197, 183, 184, 185, 186, 187, 188, 189, 190,
- /* 3170 */ 191, 192, 193, 194, 195, 196, 156, 197, 197, 159,
- /* 3180 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197,
- /* 3190 */ 197, 197, 197, 132, 197, 197, 197, 197, 197, 179,
- /* 3200 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189,
- /* 3210 */ 190, 191, 192, 193, 194, 195, 196, 156, 197, 197,
- /* 3220 */ 159, 197, 197, 162, 163, 164, 165, 166, 197, 197,
- /* 3230 */ 197, 197, 197, 197, 132, 197, 197, 197, 197, 197,
- /* 3240 */ 179, 180, 197, 197, 183, 184, 185, 186, 187, 188,
- /* 3250 */ 189, 190, 191, 192, 193, 194, 195, 196, 156, 197,
- /* 3260 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 3270 */ 197, 197, 197, 197, 197, 132, 197, 197, 197, 197,
- /* 3280 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187,
- /* 3290 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 156,
- /* 3300 */ 197, 197, 159, 197, 197, 162, 163, 164, 165, 166,
- /* 3310 */ 197, 197, 197, 197, 197, 197, 132, 197, 197, 197,
- /* 3320 */ 197, 197, 179, 180, 197, 197, 183, 184, 185, 186,
- /* 3330 */ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- /* 3340 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165,
- /* 3350 */ 166, 197, 197, 197, 197, 197, 197, 132, 197, 197,
- /* 3360 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 3370 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 3380 */ 196, 156, 197, 197, 159, 197, 197, 162, 163, 164,
- /* 3390 */ 165, 166, 197, 197, 197, 197, 197, 197, 132, 197,
- /* 3400 */ 197, 197, 197, 197, 179, 180, 197, 197, 183, 184,
- /* 3410 */ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- /* 3420 */ 195, 196, 156, 197, 197, 159, 197, 197, 162, 163,
- /* 3430 */ 164, 165, 166, 197, 197, 197, 197, 197, 197, 132,
- /* 3440 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183,
- /* 3450 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 3460 */ 194, 195, 196, 156, 197, 197, 159, 197, 197, 162,
- /* 3470 */ 163, 164, 165, 166, 197, 197, 197, 197, 197, 197,
- /* 3480 */ 132, 197, 197, 197, 197, 197, 179, 180, 197, 197,
- /* 3490 */ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- /* 3500 */ 193, 194, 195, 196, 156, 197, 197, 159, 197, 197,
- /* 3510 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 3520 */ 132, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 3530 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 3540 */ 192, 193, 194, 195, 196, 197, 197, 159, 197, 197,
- /* 3550 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 3560 */ 197, 132, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 3570 */ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 3580 */ 192, 193, 194, 195, 196, 156, 197, 197, 159, 197,
- /* 3590 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197,
- /* 3600 */ 197, 197, 132, 197, 197, 197, 197, 197, 179, 180,
- /* 3610 */ 197, 197, 183, 184, 185, 186, 187, 188, 189, 190,
- /* 3620 */ 191, 192, 193, 194, 195, 196, 156, 197, 197, 159,
- /* 3630 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197,
- /* 3640 */ 197, 197, 197, 132, 197, 197, 197, 197, 197, 179,
- /* 3650 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189,
- /* 3660 */ 190, 191, 192, 193, 194, 195, 196, 156, 197, 197,
- /* 3670 */ 159, 197, 197, 162, 163, 164, 165, 166, 197, 197,
- /* 3680 */ 197, 197, 197, 197, 132, 197, 197, 197, 197, 197,
- /* 3690 */ 179, 180, 197, 197, 183, 184, 185, 186, 187, 188,
- /* 3700 */ 189, 190, 191, 192, 193, 194, 195, 196, 156, 197,
- /* 3710 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 3720 */ 197, 197, 197, 197, 197, 132, 197, 197, 197, 197,
- /* 3730 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187,
- /* 3740 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 156,
- /* 3750 */ 197, 197, 159, 197, 197, 162, 163, 164, 165, 166,
- /* 3760 */ 197, 197, 197, 197, 197, 197, 132, 197, 197, 197,
- /* 3770 */ 197, 197, 179, 180, 197, 197, 183, 184, 185, 186,
- /* 3780 */ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
- /* 3790 */ 156, 197, 197, 159, 197, 197, 162, 163, 164, 165,
- /* 3800 */ 166, 197, 197, 197, 197, 197, 197, 132, 197, 197,
- /* 3810 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 3820 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 3830 */ 196, 156, 197, 197, 159, 197, 197, 162, 163, 164,
- /* 3840 */ 165, 166, 197, 197, 197, 197, 197, 197, 132, 197,
- /* 3850 */ 197, 197, 197, 197, 179, 180, 197, 197, 183, 184,
- /* 3860 */ 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
- /* 3870 */ 195, 196, 156, 197, 197, 159, 197, 197, 162, 163,
- /* 3880 */ 164, 165, 166, 197, 197, 197, 197, 197, 197, 132,
- /* 3890 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183,
- /* 3900 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 3910 */ 194, 195, 196, 156, 197, 197, 159, 197, 197, 162,
- /* 3920 */ 163, 164, 165, 166, 197, 197, 197, 197, 197, 197,
- /* 3930 */ 132, 197, 197, 197, 197, 197, 179, 180, 197, 197,
- /* 3940 */ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
- /* 3950 */ 193, 194, 195, 196, 156, 197, 197, 159, 197, 197,
- /* 3960 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 3970 */ 132, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 3980 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 3990 */ 192, 193, 194, 195, 196, 197, 197, 159, 197, 197,
- /* 4000 */ 162, 163, 164, 165, 166, 197, 197, 197, 132, 197,
- /* 4010 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 4020 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 4030 */ 192, 193, 194, 195, 196, 159, 197, 197, 162, 163,
- /* 4040 */ 164, 165, 166, 197, 197, 197, 132, 197, 197, 197,
- /* 4050 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183,
- /* 4060 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 4070 */ 194, 195, 196, 159, 197, 197, 162, 163, 164, 165,
- /* 4080 */ 166, 197, 197, 197, 132, 197, 197, 197, 197, 197,
- /* 4090 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 4100 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 4110 */ 196, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 4120 */ 197, 197, 132, 197, 197, 197, 197, 197, 197, 197,
- /* 4130 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187,
- /* 4140 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 159,
- /* 4150 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197,
- /* 4160 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 179,
- /* 4170 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189,
- /* 4180 */ 190, 191, 192, 193, 194, 195, 196, 159, 197, 197,
- /* 4190 */ 162, 163, 164, 165, 166, 197, 197, 197, 132, 197,
- /* 4200 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 4210 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 4220 */ 192, 193, 194, 195, 196, 159, 197, 197, 162, 163,
- /* 4230 */ 164, 165, 166, 197, 197, 197, 132, 197, 197, 197,
- /* 4240 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183,
- /* 4250 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 4260 */ 194, 195, 196, 159, 197, 197, 162, 163, 164, 165,
- /* 4270 */ 166, 197, 197, 197, 132, 197, 197, 197, 197, 197,
- /* 4280 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 4290 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 4300 */ 196, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 4310 */ 197, 197, 132, 197, 197, 197, 197, 197, 197, 197,
- /* 4320 */ 197, 179, 180, 197, 197, 183, 184, 185, 186, 187,
- /* 4330 */ 188, 189, 190, 191, 192, 193, 194, 195, 196, 159,
- /* 4340 */ 197, 197, 162, 163, 164, 165, 166, 197, 197, 197,
- /* 4350 */ 132, 197, 197, 197, 197, 197, 197, 197, 197, 179,
- /* 4360 */ 180, 197, 197, 183, 184, 185, 186, 187, 188, 189,
- /* 4370 */ 190, 191, 192, 193, 194, 195, 196, 159, 197, 197,
- /* 4380 */ 162, 163, 164, 165, 166, 197, 197, 197, 132, 197,
- /* 4390 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 4400 */ 197, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 4410 */ 192, 193, 194, 195, 196, 159, 197, 197, 162, 163,
- /* 4420 */ 164, 165, 166, 197, 197, 197, 132, 197, 197, 197,
- /* 4430 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 183,
- /* 4440 */ 184, 185, 186, 187, 188, 189, 190, 191, 192, 193,
- /* 4450 */ 194, 195, 196, 159, 197, 197, 162, 163, 164, 165,
- /* 4460 */ 166, 197, 197, 197, 197, 197, 45, 197, 197, 197,
- /* 4470 */ 197, 197, 197, 179, 180, 197, 197, 183, 184, 185,
- /* 4480 */ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
- /* 4490 */ 196, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- /* 4500 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- /* 4510 */ 89, 197, 91, 197, 47, 197, 197, 197, 197, 197,
- /* 4520 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 4530 */ 132, 197, 197, 197, 197, 197, 197, 70, 71, 72,
- /* 4540 */ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- /* 4550 */ 83, 84, 85, 86, 87, 88, 89, 159, 91, 197,
- /* 4560 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 4570 */ 197, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 4580 */ 197, 197, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 4590 */ 192, 193, 194, 195, 196, 197, 197, 197, 197, 197,
- /* 4600 */ 197, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- /* 4610 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
- /* 4620 */ 89, 132, 91, 197, 124, 125, 126, 127, 128, 197,
- /* 4630 */ 130, 131, 132, 197, 134, 135, 197, 197, 197, 197,
- /* 4640 */ 197, 197, 197, 143, 197, 145, 197, 197, 159, 149,
- /* 4650 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 159,
- /* 4660 */ 197, 197, 162, 163, 164, 165, 166, 197, 179, 180,
- /* 4670 */ 132, 197, 197, 184, 185, 186, 187, 188, 189, 190,
- /* 4680 */ 191, 192, 193, 194, 195, 197, 197, 197, 197, 197,
- /* 4690 */ 197, 197, 197, 197, 197, 197, 197, 159, 197, 197,
- /* 4700 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 4710 */ 132, 197, 197, 197, 197, 197, 197, 179, 180, 197,
- /* 4720 */ 132, 197, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 4730 */ 192, 193, 194, 145, 197, 197, 197, 159, 197, 197,
- /* 4740 */ 162, 163, 164, 165, 166, 132, 197, 159, 197, 197,
- /* 4750 */ 162, 163, 164, 165, 166, 197, 197, 179, 180, 197,
- /* 4760 */ 197, 197, 184, 185, 186, 187, 188, 189, 190, 191,
- /* 4770 */ 192, 193, 159, 197, 197, 162, 163, 164, 165, 166,
- /* 4780 */ 197, 132, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 4790 */ 197, 197, 179, 180, 197, 197, 197, 184, 185, 186,
- /* 4800 */ 187, 188, 189, 190, 191, 192, 197, 197, 159, 197,
- /* 4810 */ 197, 162, 163, 164, 165, 166, 197, 197, 197, 197,
- /* 4820 */ 197, 197, 197, 197, 197, 197, 197, 197, 179, 180,
- /* 4830 */ 197, 197, 197, 184, 185, 186, 187, 188, 189, 190,
- /* 4840 */ 191, 197, 197, 197, 126, 127, 128, 197, 130, 131,
- /* 4850 */ 132, 197, 134, 135, 197, 197, 197, 197, 132, 197,
- /* 4860 */ 197, 143, 197, 145, 197, 197, 197, 149, 197, 197,
- /* 4870 */ 132, 197, 197, 197, 197, 197, 197, 159, 197, 197,
- /* 4880 */ 162, 163, 164, 165, 166, 159, 197, 197, 162, 163,
- /* 4890 */ 164, 165, 166, 197, 197, 197, 197, 159, 197, 197,
- /* 4900 */ 162, 163, 164, 165, 166, 179, 180, 197, 132, 197,
- /* 4910 */ 184, 185, 186, 187, 188, 189, 190, 179, 180, 197,
- /* 4920 */ 197, 197, 184, 185, 186, 187, 188, 189, 197, 197,
- /* 4930 */ 197, 197, 197, 197, 197, 159, 197, 197, 162, 163,
- /* 4940 */ 164, 165, 166, 197, 132, 197, 197, 197, 197, 197,
- /* 4950 */ 197, 197, 197, 197, 197, 179, 180, 197, 197, 197,
- /* 4960 */ 184, 185, 186, 187, 188, 189, 197, 197, 197, 197,
- /* 4970 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 132,
- /* 4980 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 4990 */ 197, 179, 180, 197, 197, 197, 184, 185, 186, 187,
- /* 5000 */ 188, 197, 197, 197, 197, 197, 159, 197, 197, 162,
- /* 5010 */ 163, 164, 165, 166, 132, 197, 197, 197, 197, 197,
- /* 5020 */ 197, 197, 197, 197, 132, 197, 179, 180, 197, 197,
- /* 5030 */ 197, 184, 185, 186, 187, 188, 197, 197, 197, 197,
- /* 5040 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 5050 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 132,
- /* 5060 */ 197, 179, 180, 197, 197, 197, 184, 185, 186, 187,
- /* 5070 */ 188, 179, 180, 197, 197, 197, 184, 185, 186, 187,
- /* 5080 */ 188, 197, 197, 197, 197, 197, 159, 197, 132, 162,
- /* 5090 */ 163, 164, 165, 166, 197, 197, 197, 132, 197, 197,
- /* 5100 */ 197, 197, 197, 197, 197, 197, 179, 180, 197, 197,
- /* 5110 */ 197, 184, 185, 186, 187, 159, 197, 197, 162, 163,
- /* 5120 */ 164, 165, 166, 197, 159, 132, 197, 162, 163, 164,
- /* 5130 */ 165, 166, 197, 197, 197, 179, 180, 197, 197, 197,
- /* 5140 */ 184, 185, 186, 187, 179, 180, 197, 197, 197, 184,
- /* 5150 */ 185, 186, 159, 197, 197, 162, 163, 164, 165, 166,
- /* 5160 */ 132, 197, 197, 197, 197, 137, 138, 139, 140, 197,
- /* 5170 */ 197, 197, 179, 180, 132, 197, 197, 184, 185, 186,
- /* 5180 */ 197, 197, 197, 197, 132, 197, 197, 159, 197, 197,
- /* 5190 */ 162, 163, 164, 165, 166, 197, 197, 197, 197, 197,
- /* 5200 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 5210 */ 197, 159, 132, 197, 162, 163, 164, 165, 166, 197,
- /* 5220 */ 197, 179, 180, 132, 197, 197, 184, 185, 197, 197,
- /* 5230 */ 197, 179, 180, 197, 197, 197, 184, 185, 197, 159,
- /* 5240 */ 197, 197, 162, 163, 164, 165, 166, 132, 197, 197,
- /* 5250 */ 159, 197, 197, 162, 163, 164, 165, 166, 132, 179,
- /* 5260 */ 180, 197, 197, 197, 184, 185, 197, 197, 197, 197,
- /* 5270 */ 179, 180, 197, 197, 159, 184, 185, 162, 163, 164,
- /* 5280 */ 165, 166, 132, 197, 197, 159, 197, 197, 162, 163,
- /* 5290 */ 164, 165, 166, 132, 179, 180, 197, 197, 197, 184,
- /* 5300 */ 185, 197, 197, 197, 197, 179, 180, 197, 197, 159,
- /* 5310 */ 184, 185, 162, 163, 164, 165, 166, 132, 197, 197,
- /* 5320 */ 159, 197, 197, 162, 163, 164, 165, 166, 197, 179,
- /* 5330 */ 180, 197, 197, 197, 184, 185, 197, 197, 197, 197,
- /* 5340 */ 179, 180, 197, 197, 159, 184, 185, 162, 163, 164,
- /* 5350 */ 165, 166, 197, 197, 132, 197, 197, 197, 197, 197,
- /* 5360 */ 197, 197, 197, 197, 179, 180, 197, 197, 197, 184,
- /* 5370 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 5380 */ 197, 159, 197, 197, 162, 163, 164, 165, 166, 197,
- /* 5390 */ 197, 197, 197, 197, 197, 197, 197, 197, 197, 197,
- /* 5400 */ 197, 179, 180, 197, 197, 197, 184,
- };
- #define YY_SHIFT_USE_DFLT (-43)
- #define YY_SHIFT_COUNT (296)
- #define YY_SHIFT_MIN (-42)
- #define YY_SHIFT_MAX (4531)
- static const short yy_shift_ofst[] = {
- /* 0 */ 2620, 63, 153, 153, -27, 153, 153, 153, 153, 153,
- /* 10 */ 153, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- /* 20 */ 153, 153, 153, 243, 2404, 2404, 2404, 2338, 2270, 2248,
- /* 30 */ 2180, 2158, 2090, 2068, 2000, 1978, 1910, 1888, 1820, 1798,
- /* 40 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541,
- /* 50 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541,
- /* 60 */ 2541, 2541, 2541, 2541, 2541, 2541, 1733, 2541, 2541, 2541,
- /* 70 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2541,
- /* 80 */ 2541, 2541, 2541, 2541, 2541, 2541, 2541, 2855, 2855, 2812,
- /* 90 */ 2470, 2470, 2772, 2898, 2665, 4467, 4531, 4421, 4531, 4531,
- /* 100 */ 459, 456, 395, 619, 619, 408, 12, 12, 411, 315,
- /* 110 */ 847, 801, 837, 837, 837, 837, 801, 334, 102, 102,
- /* 120 */ 388, 801, 801, 2542, 408, 408, -40, 330, 384, 807,
- /* 130 */ 852, 852, 852, 852, 807, 825, 802, 807, 852, 803,
- /* 140 */ 798, 801, 809, 809, 801, 2525, 495, 61, 61, 61,
- /* 150 */ -33, 195, 72, 66, 200, -7, -7, -7, -28, 639,
- /* 160 */ 592, 605, 590, 559, 560, 557, 530, 583, 527, 439,
- /* 170 */ 391, 378, 437, 421, 387, 367, 246, 2, 312, 383,
- /* 180 */ 348, 344, 366, 281, 267, 244, 257, 307, 231, 252,
- /* 190 */ 93, 93, 106, 106, 106, 106, 3, 3, 106, 3,
- /* 200 */ 311, 221, 41, 804, 800, 778, 774, 769, 773, 770,
- /* 210 */ 810, 768, 763, 756, 747, 734, 757, 754, 755, 753,
- /* 220 */ 751, 750, 690, 685, 675, 745, 674, 739, 669, 736,
- /* 230 */ 662, 729, 659, 726, 658, 711, 707, 706, 703, 696,
- /* 240 */ 688, 647, 689, 684, 636, 683, 679, 678, 677, 673,
- /* 250 */ 672, 670, 650, 671, 709, 644, 610, 663, 657, 661,
- /* 260 */ 655, 630, 621, 625, 613, 643, 640, 643, 638, 640,
- /* 270 */ 635, 638, 635, 629, 561, 645, 552, 633, 564, 545,
- /* 280 */ 534, 556, 515, 500, 428, 478, 396, 475, 410, 407,
- /* 290 */ 333, 227, 180, 134, 5, -42, 48,
- };
- #define YY_REDUCE_USE_DFLT (-128)
- #define YY_REDUCE_COUNT (144)
- #define YY_REDUCE_MIN (-127)
- #define YY_REDUCE_MAX (5222)
- static const short yy_reduce_ofst[] = {
- /* 0 */ 4500, 354, 280, 210, 712, 712, 1576, 1506, 1432, 1362,
- /* 10 */ 1288, 1218, 1144, 1074, 1000, 930, 856, 786, 712, 642,
- /* 20 */ 568, 498, 424, 2628, 2979, 2938, 2897, 2856, 3798, 3757,
- /* 30 */ 3716, 3675, 3634, 3593, 3552, 3511, 3470, 3429, 3388, 3348,
- /* 40 */ 3307, 3266, 3225, 3184, 3143, 3102, 3061, 3020, 4294, 4256,
- /* 50 */ 4218, 4180, 4142, 4104, 4066, 4028, 3990, 3952, 3914, 3876,
- /* 60 */ 3838, 4398, 4489, 4538, 4578, 4613, 4718, 4649, 4726, 4776,
- /* 70 */ 4738, 4892, 4882, 4847, 4812, 4956, 4927, 4993, 4965, 5161,
- /* 80 */ 5150, 5126, 5115, 5091, 5080, 5052, 5042, 5028, 2868, 2302,
- /* 90 */ 5222, 5185, 2637, 2439, 4588, 400, 128, 617, 543, 473,
- /* 100 */ 360, -127, 165, 52, -37, 90, 202, 34, 46, 46,
- /* 110 */ 75, 46, 109, 56, 47, -34, -44, 491, 503, 481,
- /* 120 */ 326, 419, 291, 720, 752, 722, 708, 681, 743, 758,
- /* 130 */ 737, 731, 728, 727, 730, 686, 735, 723, 716, 699,
- /* 140 */ 697, 717, 681, 667, 713,
- };
- static const YYACTIONTYPE yy_default[] = {
- /* 0 */ 813, 813, 741, 739, 813, 740, 813, 813, 813, 813,
- /* 10 */ 813, 813, 813, 813, 813, 813, 813, 813, 738, 813,
- /* 20 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 30 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 40 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 50 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 60 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 70 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 80 */ 813, 813, 813, 813, 813, 813, 813, 544, 544, 813,
- /* 90 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 100 */ 606, 598, 813, 602, 594, 813, 562, 554, 813, 813,
- /* 110 */ 813, 813, 604, 600, 596, 592, 813, 813, 558, 550,
- /* 120 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 538,
- /* 130 */ 560, 556, 552, 548, 536, 813, 813, 614, 813, 620,
- /* 140 */ 619, 813, 813, 742, 813, 767, 813, 786, 785, 784,
- /* 150 */ 760, 813, 813, 813, 813, 775, 774, 773, 623, 813,
- /* 160 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 170 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 180 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 797,
- /* 190 */ 788, 787, 783, 782, 781, 780, 778, 777, 779, 776,
- /* 200 */ 813, 813, 813, 813, 813, 813, 565, 563, 813, 813,
- /* 210 */ 543, 813, 813, 813, 813, 813, 813, 689, 813, 813,
- /* 220 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 230 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 240 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 250 */ 813, 813, 813, 813, 631, 813, 813, 813, 813, 813,
- /* 260 */ 813, 813, 813, 813, 813, 796, 794, 795, 792, 793,
- /* 270 */ 790, 791, 789, 813, 813, 813, 813, 813, 813, 813,
- /* 280 */ 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
- /* 290 */ 813, 813, 813, 813, 813, 813, 623, 526, 541, 537,
- /* 300 */ 540, 545, 568, 567, 564, 566, 561, 559, 557, 555,
- /* 310 */ 553, 551, 549, 547, 546, 542, 539, 535, 532, 531,
- /* 320 */ 736, 718, 717, 719, 716, 712, 711, 710, 709, 714,
- /* 330 */ 713, 715, 735, 730, 723, 708, 707, 703, 702, 698,
- /* 340 */ 697, 696, 695, 694, 693, 692, 673, 737, 691, 690,
- /* 350 */ 688, 687, 685, 734, 733, 729, 728, 727, 726, 731,
- /* 360 */ 725, 732, 724, 722, 706, 701, 721, 705, 700, 720,
- /* 370 */ 704, 699, 684, 680, 679, 678, 677, 676, 675, 683,
- /* 380 */ 682, 681, 674, 672, 671, 608, 609, 612, 615, 616,
- /* 390 */ 613, 611, 610, 607, 574, 573, 572, 571, 570, 578,
- /* 400 */ 686, 577, 576, 588, 587, 586, 585, 584, 583, 582,
- /* 410 */ 581, 580, 579, 589, 605, 603, 601, 599, 628, 630,
- /* 420 */ 629, 627, 597, 595, 636, 635, 634, 633, 632, 593,
- /* 430 */ 618, 617, 591, 626, 625, 624, 569, 590, 575, 534,
- /* 440 */ 812, 758, 759, 757, 756, 768, 755, 754, 753, 761,
- /* 450 */ 811, 810, 809, 808, 807, 806, 805, 804, 803, 802,
- /* 460 */ 801, 800, 799, 798, 772, 771, 770, 769, 767, 766,
- /* 470 */ 765, 764, 763, 762, 752, 750, 749, 748, 747, 746,
- /* 480 */ 745, 744, 743, 751, 670, 669, 668, 667, 666, 665,
- /* 490 */ 664, 663, 662, 661, 660, 659, 658, 657, 656, 655,
- /* 500 */ 654, 653, 652, 651, 650, 649, 648, 647, 646, 645,
- /* 510 */ 644, 643, 642, 641, 640, 639, 638, 637, 622, 621,
- /* 520 */ 533, 530, 529, 528, 527,
- };
- /* The next table maps tokens into fallback tokens. If a construct
- ** like the following:
- **
- ** %fallback ID X Y Z.
- **
- ** appears in the grammar, then ID becomes a fallback token for X, Y,
- ** and Z. Whenever one of the tokens X, Y, or Z is input to the parser
- ** but it does not parse, the type of the token is changed to ID and
- ** the parse is retried before an error is thrown.
- */
- #ifdef YYFALLBACK
- static const YYCODETYPE yyFallback[] = {
- };
- #endif /* YYFALLBACK */
- /* The following structure represents a single element of the
- ** parser's stack. Information stored includes:
- **
- ** + The state number for the parser at this level of the stack.
- **
- ** + The value of the token stored at this level of the stack.
- ** (In other words, the "major" token.)
- **
- ** + The semantic value stored at this level of the stack. This is
- ** the information used by the action routines in the grammar.
- ** It is sometimes called the "minor" token.
- */
- struct yyStackEntry {
- YYACTIONTYPE stateno; /* The state-number */
- YYCODETYPE major; /* The major token value. This is the code
- ** number for the token at this stack level */
- YYMINORTYPE minor; /* The user-supplied minor token value. This
- ** is the value of the token */
- };
- typedef struct yyStackEntry yyStackEntry;
- /* The state of the parser is completely contained in an instance of
- ** the following structure */
- struct yyParser {
- int yyidx; /* Index of top element in stack */
- #ifdef YYTRACKMAXSTACKDEPTH
- int yyidxMax; /* Maximum value of yyidx */
- #endif
- int yyerrcnt; /* Shifts left before out of the error */
- ParseHLSLARG_SDECL /* A place to hold %extra_argument */
- #if YYSTACKDEPTH<=0
- int yystksz; /* Current side of the stack */
- yyStackEntry *yystack; /* The parser's stack */
- #else
- yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */
- #endif
- };
- typedef struct yyParser yyParser;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- #include <stdio.h>
- static FILE *yyTraceFILE = 0;
- static char *yyTracePrompt = 0;
- #endif /* NDEBUG */
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- /*
- ** Turn parser tracing on by giving a stream to which to write the trace
- ** and a prompt to preface each trace message. Tracing is turned off
- ** by making either argument NULL
- **
- ** Inputs:
- ** <ul>
- ** <li> A FILE* to which trace output should be written.
- ** If NULL, then tracing is turned off.
- ** <li> A prefix string written at the beginning of every
- ** line of trace output. If NULL, then tracing is
- ** turned off.
- ** </ul>
- **
- ** Outputs:
- ** None.
- */
- #if __MOJOSHADER__
- static
- #endif
- void ParseHLSLTrace(FILE *TraceFILE, char *zTracePrompt){
- yyTraceFILE = TraceFILE;
- yyTracePrompt = zTracePrompt;
- if( yyTraceFILE==0 ) yyTracePrompt = 0;
- else if( yyTracePrompt==0 ) yyTraceFILE = 0;
- }
- #endif /* NDEBUG */
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- /* For tracing shifts, the names of all terminals and nonterminals
- ** are required. The following table supplies these names */
- static const char *const yyTokenName[] = {
- "$", "COMMA", "ASSIGN", "ADDASSIGN",
- "SUBASSIGN", "MULASSIGN", "DIVASSIGN", "MODASSIGN",
- "LSHIFTASSIGN", "RSHIFTASSIGN", "ANDASSIGN", "ORASSIGN",
- "XORASSIGN", "QUESTION", "OROR", "ANDAND",
- "OR", "XOR", "AND", "EQL",
- "NEQ", "LT", "LEQ", "GT",
- "GEQ", "LSHIFT", "RSHIFT", "PLUS",
- "MINUS", "STAR", "SLASH", "PERCENT",
- "TYPECAST", "EXCLAMATION", "COMPLEMENT", "MINUSMINUS",
- "PLUSPLUS", "DOT", "LBRACKET", "RBRACKET",
- "LPAREN", "RPAREN", "ELSE", "SEMICOLON",
- "TYPEDEF", "CONST", "IDENTIFIER", "VOID",
- "INLINE", "IN", "INOUT", "OUT",
- "UNIFORM", "COLON", "LINEAR", "CENTROID",
- "NOINTERPOLATION", "NOPERSPECTIVE", "SAMPLE", "EXTERN",
- "SHARED", "STATIC", "VOLATILE", "ROWMAJOR",
- "COLUMNMAJOR", "LBRACE", "RBRACE", "STRUCT",
- "PACKOFFSET", "REGISTER", "USERTYPE", "SAMPLER",
- "SAMPLER1D", "SAMPLER2D", "SAMPLER3D", "SAMPLERCUBE",
- "SAMPLER_STATE", "SAMPLERSTATE", "SAMPLERCOMPARISONSTATE", "BOOL",
- "INT", "UINT", "HALF", "FLOAT",
- "DOUBLE", "STRING", "SNORM", "UNORM",
- "BUFFER", "VECTOR", "INT_CONSTANT", "MATRIX",
- "ISOLATE", "MAXINSTRUCTIONCOUNT", "NOEXPRESSIONOPTIMIZATIONS", "REMOVEUNUSEDINPUTS",
- "UNUSED", "XPS", "BREAK", "CONTINUE",
- "DISCARD", "DO", "WHILE", "RETURN",
- "UNROLL", "LOOP", "FOR", "BRANCH",
- "IF", "FLATTEN", "IFALL", "IFANY",
- "PREDICATE", "PREDICATEBLOCK", "SWITCH", "FORCECASE",
- "CALL", "CASE", "DEFAULT", "FLOAT_CONSTANT",
- "STRING_LITERAL", "TRUE", "FALSE", "error",
- "shader", "compilation_units", "compilation_unit", "variable_declaration",
- "function_signature", "statement_block", "typedef", "struct_declaration",
- "datatype", "scalar_or_array", "function_storageclass", "function_details",
- "semantic", "function_parameters", "function_parameter_list", "function_parameter",
- "input_modifier", "interpolation_mod", "initializer", "variable_attribute_list",
- "variable_declaration_details_list", "variable_attribute", "variable_declaration_details", "annotations",
- "variable_lowlevel", "struct_intro", "struct_member_list", "struct_member",
- "struct_member_details", "struct_member_item_list", "packoffset", "register",
- "expression", "annotation_list", "annotation", "datatype_scalar",
- "initializer_block_list", "initializer_block", "intrinsic_datatype", "datatype_vector",
- "datatype_matrix", "datatype_sampler", "datatype_buffer", "statement_list",
- "statement", "statement_attribute", "do_intro", "while_intro",
- "if_intro", "switch_intro", "switch_case_list", "for_statement",
- "for_intro", "for_details", "switch_case", "primary_expr",
- "postfix_expr", "arguments", "argument_list", "assignment_expr",
- "unary_expr", "cast_expr", "multiplicative_expr", "additive_expr",
- "shift_expr", "relational_expr", "equality_expr", "and_expr",
- "exclusive_or_expr", "inclusive_or_expr", "logical_and_expr", "logical_or_expr",
- "conditional_expr",
- };
- #endif /* NDEBUG */
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- /* For tracing reduce actions, the names of all rules are required.
- */
- static const char *const yyRuleName[] = {
- /* 0 */ "shader ::= compilation_units",
- /* 1 */ "compilation_units ::= compilation_unit",
- /* 2 */ "compilation_units ::= compilation_units compilation_unit",
- /* 3 */ "compilation_unit ::= variable_declaration",
- /* 4 */ "compilation_unit ::= function_signature SEMICOLON",
- /* 5 */ "compilation_unit ::= function_signature statement_block",
- /* 6 */ "compilation_unit ::= typedef",
- /* 7 */ "compilation_unit ::= struct_declaration SEMICOLON",
- /* 8 */ "typedef ::= TYPEDEF CONST datatype scalar_or_array",
- /* 9 */ "typedef ::= TYPEDEF datatype scalar_or_array",
- /* 10 */ "function_signature ::= function_storageclass function_details semantic",
- /* 11 */ "function_signature ::= function_storageclass function_details",
- /* 12 */ "function_signature ::= function_details semantic",
- /* 13 */ "function_signature ::= function_details",
- /* 14 */ "function_details ::= datatype IDENTIFIER LPAREN function_parameters RPAREN",
- /* 15 */ "function_details ::= VOID IDENTIFIER LPAREN function_parameters RPAREN",
- /* 16 */ "function_storageclass ::= INLINE",
- /* 17 */ "function_parameters ::= VOID",
- /* 18 */ "function_parameters ::= function_parameter_list",
- /* 19 */ "function_parameters ::=",
- /* 20 */ "function_parameter_list ::= function_parameter",
- /* 21 */ "function_parameter_list ::= function_parameter_list COMMA function_parameter",
- /* 22 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod initializer",
- /* 23 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod",
- /* 24 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic initializer",
- /* 25 */ "function_parameter ::= input_modifier datatype IDENTIFIER semantic",
- /* 26 */ "function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod initializer",
- /* 27 */ "function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod",
- /* 28 */ "function_parameter ::= input_modifier datatype IDENTIFIER initializer",
- /* 29 */ "function_parameter ::= input_modifier datatype IDENTIFIER",
- /* 30 */ "function_parameter ::= datatype IDENTIFIER semantic interpolation_mod initializer",
- /* 31 */ "function_parameter ::= datatype IDENTIFIER semantic interpolation_mod",
- /* 32 */ "function_parameter ::= datatype IDENTIFIER semantic initializer",
- /* 33 */ "function_parameter ::= datatype IDENTIFIER semantic",
- /* 34 */ "function_parameter ::= datatype IDENTIFIER interpolation_mod initializer",
- /* 35 */ "function_parameter ::= datatype IDENTIFIER interpolation_mod",
- /* 36 */ "function_parameter ::= datatype IDENTIFIER initializer",
- /* 37 */ "function_parameter ::= datatype IDENTIFIER",
- /* 38 */ "input_modifier ::= IN",
- /* 39 */ "input_modifier ::= INOUT",
- /* 40 */ "input_modifier ::= OUT",
- /* 41 */ "input_modifier ::= IN OUT",
- /* 42 */ "input_modifier ::= OUT IN",
- /* 43 */ "input_modifier ::= UNIFORM",
- /* 44 */ "semantic ::= COLON IDENTIFIER",
- /* 45 */ "interpolation_mod ::= LINEAR",
- /* 46 */ "interpolation_mod ::= CENTROID",
- /* 47 */ "interpolation_mod ::= NOINTERPOLATION",
- /* 48 */ "interpolation_mod ::= NOPERSPECTIVE",
- /* 49 */ "interpolation_mod ::= SAMPLE",
- /* 50 */ "variable_declaration ::= variable_attribute_list datatype variable_declaration_details_list SEMICOLON",
- /* 51 */ "variable_declaration ::= datatype variable_declaration_details_list SEMICOLON",
- /* 52 */ "variable_declaration ::= struct_declaration variable_declaration_details_list SEMICOLON",
- /* 53 */ "variable_attribute_list ::= variable_attribute",
- /* 54 */ "variable_attribute_list ::= variable_attribute_list variable_attribute",
- /* 55 */ "variable_attribute ::= EXTERN",
- /* 56 */ "variable_attribute ::= NOINTERPOLATION",
- /* 57 */ "variable_attribute ::= SHARED",
- /* 58 */ "variable_attribute ::= STATIC",
- /* 59 */ "variable_attribute ::= UNIFORM",
- /* 60 */ "variable_attribute ::= VOLATILE",
- /* 61 */ "variable_attribute ::= CONST",
- /* 62 */ "variable_attribute ::= ROWMAJOR",
- /* 63 */ "variable_attribute ::= COLUMNMAJOR",
- /* 64 */ "variable_declaration_details_list ::= variable_declaration_details",
- /* 65 */ "variable_declaration_details_list ::= variable_declaration_details_list COMMA variable_declaration_details",
- /* 66 */ "variable_declaration_details ::= scalar_or_array semantic annotations initializer variable_lowlevel",
- /* 67 */ "variable_declaration_details ::= scalar_or_array semantic annotations initializer",
- /* 68 */ "variable_declaration_details ::= scalar_or_array semantic annotations variable_lowlevel",
- /* 69 */ "variable_declaration_details ::= scalar_or_array semantic annotations",
- /* 70 */ "variable_declaration_details ::= scalar_or_array semantic initializer variable_lowlevel",
- /* 71 */ "variable_declaration_details ::= scalar_or_array semantic initializer",
- /* 72 */ "variable_declaration_details ::= scalar_or_array semantic variable_lowlevel",
- /* 73 */ "variable_declaration_details ::= scalar_or_array semantic",
- /* 74 */ "variable_declaration_details ::= scalar_or_array annotations initializer variable_lowlevel",
- /* 75 */ "variable_declaration_details ::= scalar_or_array annotations initializer",
- /* 76 */ "variable_declaration_details ::= scalar_or_array annotations variable_lowlevel",
- /* 77 */ "variable_declaration_details ::= scalar_or_array annotations",
- /* 78 */ "variable_declaration_details ::= scalar_or_array initializer variable_lowlevel",
- /* 79 */ "variable_declaration_details ::= scalar_or_array initializer",
- /* 80 */ "variable_declaration_details ::= scalar_or_array variable_lowlevel",
- /* 81 */ "variable_declaration_details ::= scalar_or_array",
- /* 82 */ "struct_declaration ::= struct_intro LBRACE struct_member_list RBRACE",
- /* 83 */ "struct_intro ::= STRUCT IDENTIFIER",
- /* 84 */ "struct_member_list ::= struct_member",
- /* 85 */ "struct_member_list ::= struct_member_list struct_member",
- /* 86 */ "struct_member ::= interpolation_mod struct_member_details",
- /* 87 */ "struct_member ::= struct_member_details",
- /* 88 */ "struct_member_details ::= datatype struct_member_item_list SEMICOLON",
- /* 89 */ "struct_member_item_list ::= scalar_or_array",
- /* 90 */ "struct_member_item_list ::= scalar_or_array semantic",
- /* 91 */ "struct_member_item_list ::= struct_member_item_list COMMA IDENTIFIER",
- /* 92 */ "variable_lowlevel ::= packoffset register",
- /* 93 */ "variable_lowlevel ::= register packoffset",
- /* 94 */ "variable_lowlevel ::= packoffset",
- /* 95 */ "variable_lowlevel ::= register",
- /* 96 */ "scalar_or_array ::= IDENTIFIER LBRACKET RBRACKET",
- /* 97 */ "scalar_or_array ::= IDENTIFIER LBRACKET expression RBRACKET",
- /* 98 */ "scalar_or_array ::= IDENTIFIER",
- /* 99 */ "packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER DOT IDENTIFIER RPAREN",
- /* 100 */ "packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER RPAREN",
- /* 101 */ "register ::= COLON REGISTER LPAREN IDENTIFIER RPAREN",
- /* 102 */ "annotations ::= LT annotation_list GT",
- /* 103 */ "annotation_list ::= annotation",
- /* 104 */ "annotation_list ::= annotation_list annotation",
- /* 105 */ "annotation ::= datatype_scalar initializer SEMICOLON",
- /* 106 */ "initializer_block_list ::= expression",
- /* 107 */ "initializer_block_list ::= LBRACE initializer_block_list RBRACE",
- /* 108 */ "initializer_block_list ::= initializer_block_list COMMA initializer_block_list",
- /* 109 */ "initializer_block ::= LBRACE initializer_block_list RBRACE",
- /* 110 */ "initializer ::= ASSIGN initializer_block",
- /* 111 */ "initializer ::= ASSIGN expression",
- /* 112 */ "intrinsic_datatype ::= datatype_vector",
- /* 113 */ "intrinsic_datatype ::= datatype_matrix",
- /* 114 */ "intrinsic_datatype ::= datatype_scalar",
- /* 115 */ "intrinsic_datatype ::= datatype_sampler",
- /* 116 */ "intrinsic_datatype ::= datatype_buffer",
- /* 117 */ "datatype ::= intrinsic_datatype",
- /* 118 */ "datatype ::= USERTYPE",
- /* 119 */ "datatype_sampler ::= SAMPLER",
- /* 120 */ "datatype_sampler ::= SAMPLER1D",
- /* 121 */ "datatype_sampler ::= SAMPLER2D",
- /* 122 */ "datatype_sampler ::= SAMPLER3D",
- /* 123 */ "datatype_sampler ::= SAMPLERCUBE",
- /* 124 */ "datatype_sampler ::= SAMPLER_STATE",
- /* 125 */ "datatype_sampler ::= SAMPLERSTATE",
- /* 126 */ "datatype_sampler ::= SAMPLERCOMPARISONSTATE",
- /* 127 */ "datatype_scalar ::= BOOL",
- /* 128 */ "datatype_scalar ::= INT",
- /* 129 */ "datatype_scalar ::= UINT",
- /* 130 */ "datatype_scalar ::= HALF",
- /* 131 */ "datatype_scalar ::= FLOAT",
- /* 132 */ "datatype_scalar ::= DOUBLE",
- /* 133 */ "datatype_scalar ::= STRING",
- /* 134 */ "datatype_scalar ::= SNORM FLOAT",
- /* 135 */ "datatype_scalar ::= UNORM FLOAT",
- /* 136 */ "datatype_buffer ::= BUFFER LT BOOL GT",
- /* 137 */ "datatype_buffer ::= BUFFER LT INT GT",
- /* 138 */ "datatype_buffer ::= BUFFER LT UINT GT",
- /* 139 */ "datatype_buffer ::= BUFFER LT HALF GT",
- /* 140 */ "datatype_buffer ::= BUFFER LT FLOAT GT",
- /* 141 */ "datatype_buffer ::= BUFFER LT DOUBLE GT",
- /* 142 */ "datatype_buffer ::= BUFFER LT SNORM FLOAT GT",
- /* 143 */ "datatype_buffer ::= BUFFER LT UNORM FLOAT GT",
- /* 144 */ "datatype_vector ::= VECTOR LT datatype_scalar COMMA INT_CONSTANT GT",
- /* 145 */ "datatype_matrix ::= MATRIX LT datatype_scalar COMMA INT_CONSTANT COMMA INT_CONSTANT GT",
- /* 146 */ "statement_block ::= LBRACE RBRACE",
- /* 147 */ "statement_block ::= LBRACE statement_list RBRACE",
- /* 148 */ "statement_list ::= statement",
- /* 149 */ "statement_list ::= statement_list statement",
- /* 150 */ "statement_attribute ::= ISOLATE",
- /* 151 */ "statement_attribute ::= MAXINSTRUCTIONCOUNT LPAREN INT_CONSTANT RPAREN",
- /* 152 */ "statement_attribute ::= NOEXPRESSIONOPTIMIZATIONS",
- /* 153 */ "statement_attribute ::= REMOVEUNUSEDINPUTS",
- /* 154 */ "statement_attribute ::= UNUSED",
- /* 155 */ "statement_attribute ::= XPS",
- /* 156 */ "statement ::= BREAK SEMICOLON",
- /* 157 */ "statement ::= CONTINUE SEMICOLON",
- /* 158 */ "statement ::= DISCARD SEMICOLON",
- /* 159 */ "statement ::= LBRACKET statement_attribute RBRACKET statement_block",
- /* 160 */ "statement ::= variable_declaration",
- /* 161 */ "statement ::= struct_declaration SEMICOLON",
- /* 162 */ "statement ::= do_intro DO statement WHILE LPAREN expression RPAREN SEMICOLON",
- /* 163 */ "statement ::= while_intro LPAREN expression RPAREN statement",
- /* 164 */ "statement ::= if_intro LPAREN expression RPAREN statement",
- /* 165 */ "statement ::= if_intro LPAREN expression RPAREN statement ELSE statement",
- /* 166 */ "statement ::= switch_intro LPAREN expression RPAREN LBRACE switch_case_list RBRACE",
- /* 167 */ "statement ::= typedef",
- /* 168 */ "statement ::= SEMICOLON",
- /* 169 */ "statement ::= expression SEMICOLON",
- /* 170 */ "statement ::= RETURN SEMICOLON",
- /* 171 */ "statement ::= RETURN expression SEMICOLON",
- /* 172 */ "statement ::= statement_block",
- /* 173 */ "statement ::= for_statement",
- /* 174 */ "while_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET WHILE",
- /* 175 */ "while_intro ::= LBRACKET UNROLL RBRACKET WHILE",
- /* 176 */ "while_intro ::= LBRACKET LOOP RBRACKET WHILE",
- /* 177 */ "while_intro ::= WHILE",
- /* 178 */ "for_statement ::= for_intro for_details",
- /* 179 */ "for_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET FOR",
- /* 180 */ "for_intro ::= LBRACKET UNROLL RBRACKET FOR",
- /* 181 */ "for_intro ::= LBRACKET LOOP RBRACKET FOR",
- /* 182 */ "for_intro ::= FOR",
- /* 183 */ "for_details ::= LPAREN expression SEMICOLON expression SEMICOLON expression RPAREN statement",
- /* 184 */ "for_details ::= LPAREN SEMICOLON SEMICOLON RPAREN statement",
- /* 185 */ "for_details ::= LPAREN SEMICOLON SEMICOLON expression RPAREN statement",
- /* 186 */ "for_details ::= LPAREN SEMICOLON expression SEMICOLON RPAREN statement",
- /* 187 */ "for_details ::= LPAREN SEMICOLON expression SEMICOLON expression RPAREN statement",
- /* 188 */ "for_details ::= LPAREN expression SEMICOLON SEMICOLON RPAREN statement",
- /* 189 */ "for_details ::= LPAREN expression SEMICOLON SEMICOLON expression RPAREN statement",
- /* 190 */ "for_details ::= LPAREN expression SEMICOLON expression SEMICOLON RPAREN statement",
- /* 191 */ "for_details ::= LPAREN variable_declaration expression SEMICOLON expression RPAREN statement",
- /* 192 */ "for_details ::= LPAREN variable_declaration SEMICOLON RPAREN statement",
- /* 193 */ "for_details ::= LPAREN variable_declaration SEMICOLON expression RPAREN statement",
- /* 194 */ "for_details ::= LPAREN variable_declaration expression SEMICOLON RPAREN statement",
- /* 195 */ "do_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET DO",
- /* 196 */ "do_intro ::= LBRACKET UNROLL RBRACKET DO",
- /* 197 */ "do_intro ::= LBRACKET LOOP RBRACKET DO",
- /* 198 */ "do_intro ::= DO",
- /* 199 */ "if_intro ::= LBRACKET BRANCH RBRACKET IF",
- /* 200 */ "if_intro ::= LBRACKET FLATTEN RBRACKET IF",
- /* 201 */ "if_intro ::= LBRACKET IFALL RBRACKET IF",
- /* 202 */ "if_intro ::= LBRACKET IFANY RBRACKET IF",
- /* 203 */ "if_intro ::= LBRACKET PREDICATE RBRACKET IF",
- /* 204 */ "if_intro ::= LBRACKET PREDICATEBLOCK RBRACKET IF",
- /* 205 */ "if_intro ::= IF",
- /* 206 */ "switch_intro ::= LBRACKET FLATTEN RBRACKET SWITCH",
- /* 207 */ "switch_intro ::= LBRACKET BRANCH RBRACKET SWITCH",
- /* 208 */ "switch_intro ::= LBRACKET FORCECASE RBRACKET SWITCH",
- /* 209 */ "switch_intro ::= LBRACKET CALL RBRACKET SWITCH",
- /* 210 */ "switch_intro ::= SWITCH",
- /* 211 */ "switch_case_list ::= switch_case",
- /* 212 */ "switch_case_list ::= switch_case_list switch_case",
- /* 213 */ "switch_case ::= CASE expression COLON statement_list",
- /* 214 */ "switch_case ::= CASE expression COLON",
- /* 215 */ "switch_case ::= DEFAULT COLON statement_list",
- /* 216 */ "switch_case ::= DEFAULT COLON",
- /* 217 */ "primary_expr ::= IDENTIFIER",
- /* 218 */ "primary_expr ::= INT_CONSTANT",
- /* 219 */ "primary_expr ::= FLOAT_CONSTANT",
- /* 220 */ "primary_expr ::= STRING_LITERAL",
- /* 221 */ "primary_expr ::= TRUE",
- /* 222 */ "primary_expr ::= FALSE",
- /* 223 */ "primary_expr ::= LPAREN expression RPAREN",
- /* 224 */ "postfix_expr ::= primary_expr",
- /* 225 */ "postfix_expr ::= postfix_expr LBRACKET expression RBRACKET",
- /* 226 */ "postfix_expr ::= IDENTIFIER arguments",
- /* 227 */ "postfix_expr ::= datatype arguments",
- /* 228 */ "postfix_expr ::= postfix_expr DOT IDENTIFIER",
- /* 229 */ "postfix_expr ::= postfix_expr PLUSPLUS",
- /* 230 */ "postfix_expr ::= postfix_expr MINUSMINUS",
- /* 231 */ "arguments ::= LPAREN RPAREN",
- /* 232 */ "arguments ::= LPAREN argument_list RPAREN",
- /* 233 */ "argument_list ::= assignment_expr",
- /* 234 */ "argument_list ::= argument_list COMMA assignment_expr",
- /* 235 */ "unary_expr ::= postfix_expr",
- /* 236 */ "unary_expr ::= PLUSPLUS unary_expr",
- /* 237 */ "unary_expr ::= MINUSMINUS unary_expr",
- /* 238 */ "unary_expr ::= PLUS cast_expr",
- /* 239 */ "unary_expr ::= MINUS cast_expr",
- /* 240 */ "unary_expr ::= COMPLEMENT cast_expr",
- /* 241 */ "unary_expr ::= EXCLAMATION cast_expr",
- /* 242 */ "cast_expr ::= unary_expr",
- /* 243 */ "cast_expr ::= LPAREN datatype RPAREN cast_expr",
- /* 244 */ "multiplicative_expr ::= cast_expr",
- /* 245 */ "multiplicative_expr ::= multiplicative_expr STAR cast_expr",
- /* 246 */ "multiplicative_expr ::= multiplicative_expr SLASH cast_expr",
- /* 247 */ "multiplicative_expr ::= multiplicative_expr PERCENT cast_expr",
- /* 248 */ "additive_expr ::= multiplicative_expr",
- /* 249 */ "additive_expr ::= additive_expr PLUS multiplicative_expr",
- /* 250 */ "additive_expr ::= additive_expr MINUS multiplicative_expr",
- /* 251 */ "shift_expr ::= additive_expr",
- /* 252 */ "shift_expr ::= shift_expr LSHIFT additive_expr",
- /* 253 */ "shift_expr ::= shift_expr RSHIFT additive_expr",
- /* 254 */ "relational_expr ::= shift_expr",
- /* 255 */ "relational_expr ::= relational_expr LT shift_expr",
- /* 256 */ "relational_expr ::= relational_expr GT shift_expr",
- /* 257 */ "relational_expr ::= relational_expr LEQ shift_expr",
- /* 258 */ "relational_expr ::= relational_expr GEQ shift_expr",
- /* 259 */ "equality_expr ::= relational_expr",
- /* 260 */ "equality_expr ::= equality_expr EQL relational_expr",
- /* 261 */ "equality_expr ::= equality_expr NEQ relational_expr",
- /* 262 */ "and_expr ::= equality_expr",
- /* 263 */ "and_expr ::= and_expr AND equality_expr",
- /* 264 */ "exclusive_or_expr ::= and_expr",
- /* 265 */ "exclusive_or_expr ::= exclusive_or_expr XOR and_expr",
- /* 266 */ "inclusive_or_expr ::= exclusive_or_expr",
- /* 267 */ "inclusive_or_expr ::= inclusive_or_expr OR exclusive_or_expr",
- /* 268 */ "logical_and_expr ::= inclusive_or_expr",
- /* 269 */ "logical_and_expr ::= logical_and_expr ANDAND inclusive_or_expr",
- /* 270 */ "logical_or_expr ::= logical_and_expr",
- /* 271 */ "logical_or_expr ::= logical_or_expr OROR logical_and_expr",
- /* 272 */ "conditional_expr ::= logical_or_expr",
- /* 273 */ "conditional_expr ::= logical_or_expr QUESTION logical_or_expr COLON conditional_expr",
- /* 274 */ "assignment_expr ::= conditional_expr",
- /* 275 */ "assignment_expr ::= unary_expr ASSIGN assignment_expr",
- /* 276 */ "assignment_expr ::= unary_expr MULASSIGN assignment_expr",
- /* 277 */ "assignment_expr ::= unary_expr DIVASSIGN assignment_expr",
- /* 278 */ "assignment_expr ::= unary_expr MODASSIGN assignment_expr",
- /* 279 */ "assignment_expr ::= unary_expr ADDASSIGN assignment_expr",
- /* 280 */ "assignment_expr ::= unary_expr SUBASSIGN assignment_expr",
- /* 281 */ "assignment_expr ::= unary_expr LSHIFTASSIGN assignment_expr",
- /* 282 */ "assignment_expr ::= unary_expr RSHIFTASSIGN assignment_expr",
- /* 283 */ "assignment_expr ::= unary_expr ANDASSIGN assignment_expr",
- /* 284 */ "assignment_expr ::= unary_expr XORASSIGN assignment_expr",
- /* 285 */ "assignment_expr ::= unary_expr ORASSIGN assignment_expr",
- /* 286 */ "expression ::= assignment_expr",
- /* 287 */ "expression ::= expression COMMA assignment_expr",
- };
- #endif /* NDEBUG */
- #if YYSTACKDEPTH<=0
- /*
- ** Try to increase the size of the parser stack.
- */
- static void yyGrowStack(yyParser *p){
- int newSize;
- yyStackEntry *pNew;
- newSize = p->yystksz*2 + 100;
- pNew = realloc(p->yystack, newSize*sizeof(pNew[0]));
- if( pNew ){
- p->yystack = pNew;
- p->yystksz = newSize;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sStack grows to %d entries!\n",
- yyTracePrompt, p->yystksz);
- }
- #endif
- }
- }
- #endif
- /*
- ** This function allocates a new parser.
- ** The only argument is a pointer to a function which works like
- ** malloc.
- **
- ** Inputs:
- ** A pointer to the function used to allocate memory.
- **
- ** Outputs:
- ** A pointer to a parser. This pointer is used in subsequent calls
- ** to ParseHLSL and ParseHLSLFree.
- */
- #if __MOJOSHADER__
- static void *ParseHLSLAlloc(void *(*mallocProc)(int,void *), void *malloc_data){
- yyParser *pParser;
- pParser = (yyParser*)(*mallocProc)( (int)sizeof(yyParser), malloc_data );
- #else
- void *ParseHLSLAlloc(void *(*mallocProc)(size_t)){
- yyParser *pParser;
- pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );
- #endif
- if( pParser ){
- pParser->yyidx = -1;
- #ifdef YYTRACKMAXSTACKDEPTH
- pParser->yyidxMax = 0;
- #endif
- #if YYSTACKDEPTH<=0
- pParser->yystack = NULL;
- pParser->yystksz = 0;
- yyGrowStack(pParser);
- #endif
- }
- return pParser;
- }
- /* The following function deletes the value associated with a
- ** symbol. The symbol can be either a terminal or nonterminal.
- ** "yymajor" is the symbol code, and "yypminor" is a pointer to
- ** the value.
- */
- static void yy_destructor(
- yyParser *yypParser, /* The parser */
- YYCODETYPE yymajor, /* Type code for object to destroy */
- YYMINORTYPE *yypminor /* The object to be destroyed */
- ){
- ParseHLSLARG_FETCH;
- switch( yymajor ){
- /* Here is inserted the actions which take place when a
- ** terminal or non-terminal is destroyed. This can happen
- ** when the symbol is popped from the stack during a
- ** reduce or during error processing or when a parser is
- ** being destroyed before it is finished parsing.
- **
- ** Note: during a reduce, the only symbols destroyed are those
- ** which appear on the RHS of the rule, but which are not used
- ** inside the C code.
- */
- case 125: /* compilation_units */
- case 126: /* compilation_unit */
- {
- #line 81 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_compilation_unit(ctx, (yypminor->yy139));
- #line 2033 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 127: /* variable_declaration */
- case 144: /* variable_declaration_details_list */
- case 146: /* variable_declaration_details */
- {
- #line 175 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_variable_declaration(ctx, (yypminor->yy24));
- #line 2042 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 128: /* function_signature */
- case 135: /* function_details */
- {
- #line 102 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_function_signature(ctx, (yypminor->yy364));
- #line 2050 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 129: /* statement_block */
- case 167: /* statement_list */
- case 168: /* statement */
- case 175: /* for_statement */
- case 177: /* for_details */
- {
- #line 354 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_statement(ctx, (yypminor->yy233));
- #line 2061 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 130: /* typedef */
- {
- #line 96 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_typedef(ctx, (yypminor->yy71));
- #line 2068 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 131: /* struct_declaration */
- {
- #line 224 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_struct_declaration(ctx, (yypminor->yy249));
- #line 2075 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 133: /* scalar_or_array */
- {
- #line 260 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_scalar_or_array(ctx, (yypminor->yy380));
- #line 2082 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 137: /* function_parameters */
- case 138: /* function_parameter_list */
- case 139: /* function_parameter */
- {
- #line 124 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_function_params(ctx, (yypminor->yy307));
- #line 2091 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 142: /* initializer */
- case 156: /* expression */
- case 160: /* initializer_block_list */
- case 161: /* initializer_block */
- case 179: /* primary_expr */
- case 180: /* postfix_expr */
- case 183: /* assignment_expr */
- case 184: /* unary_expr */
- case 185: /* cast_expr */
- case 186: /* multiplicative_expr */
- case 187: /* additive_expr */
- case 188: /* shift_expr */
- case 189: /* relational_expr */
- case 190: /* equality_expr */
- case 191: /* and_expr */
- case 192: /* exclusive_or_expr */
- case 193: /* inclusive_or_expr */
- case 194: /* logical_and_expr */
- case 195: /* logical_or_expr */
- case 196: /* conditional_expr */
- {
- #line 301 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_expr(ctx, (yypminor->yy322));
- #line 2117 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 147: /* annotations */
- case 157: /* annotation_list */
- case 158: /* annotation */
- {
- #line 277 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_annotation(ctx, (yypminor->yy268));
- #line 2126 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 148: /* variable_lowlevel */
- {
- #line 252 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_variable_lowlevel(ctx, (yypminor->yy82));
- #line 2133 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 150: /* struct_member_list */
- case 151: /* struct_member */
- case 152: /* struct_member_details */
- case 153: /* struct_member_item_list */
- {
- #line 232 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_struct_member(ctx, (yypminor->yy346));
- #line 2143 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 154: /* packoffset */
- {
- #line 266 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_pack_offset(ctx, (yypminor->yy8));
- #line 2150 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 174: /* switch_case_list */
- case 178: /* switch_case */
- {
- #line 450 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_switch_case(ctx, (yypminor->yy165));
- #line 2158 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- case 181: /* arguments */
- case 182: /* argument_list */
- {
- #line 485 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- delete_arguments(ctx, (yypminor->yy26));
- #line 2166 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- }
- break;
- default: break; /* If no destructor action specified: do nothing */
- }
- }
- /*
- ** Pop the parser's stack once.
- **
- ** If there is a destructor routine associated with the token which
- ** is popped from the stack, then call it.
- **
- ** Return the major token number for the symbol popped.
- */
- static int yy_pop_parser_stack(yyParser *pParser){
- YYCODETYPE yymajor;
- yyStackEntry *yytos = &pParser->yystack[pParser->yyidx];
- if( pParser->yyidx<0 ) return 0;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE && pParser->yyidx>=0 ){
- fprintf(yyTraceFILE,"%sPopping %s\n",
- yyTracePrompt,
- yyTokenName[yytos->major]);
- }
- #endif
- yymajor = yytos->major;
- yy_destructor(pParser, yymajor, &yytos->minor);
- pParser->yyidx--;
- return yymajor;
- }
- /*
- ** Deallocate and destroy a parser. Destructors are all called for
- ** all stack elements before shutting the parser down.
- **
- ** Inputs:
- ** <ul>
- ** <li> A pointer to the parser. This should be a pointer
- ** obtained from ParseHLSLAlloc.
- ** <li> A pointer to a function used to reclaim memory obtained
- ** from malloc.
- ** </ul>
- */
- #if __MOJOSHADER__
- static
- #endif
- void ParseHLSLFree(
- void *p, /* The parser to be deleted */
- #if __MOJOSHADER__
- void (*freeProc)(void*,void*), /* Function used to reclaim memory */
- void *malloc_data
- #else
- void (*freeProc)(void*) /* Function used to reclaim memory */
- #endif
- ){
- yyParser *pParser = (yyParser*)p;
- if( pParser==0 ) return;
- while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser);
- #if YYSTACKDEPTH<=0
- free(pParser->yystack);
- #endif
- #if __MOJOSHADER__
- (*freeProc)((void*)pParser, malloc_data);
- #else
- (*freeProc)((void*)pParser);
- #endif
- }
- /*
- ** Return the peak depth of the stack for a parser.
- */
- #ifdef YYTRACKMAXSTACKDEPTH
- static int ParseHLSLStackPeak(void *p){
- yyParser *pParser = (yyParser*)p;
- return pParser->yyidxMax;
- }
- #endif
- /*
- ** Find the appropriate action for a parser given the terminal
- ** look-ahead token iLookAhead.
- **
- ** If the look-ahead token is YYNOCODE, then check to see if the action is
- ** independent of the look-ahead. If it is, return the action, otherwise
- ** return YY_NO_ACTION.
- */
- static int yy_find_shift_action(
- yyParser *pParser, /* The parser */
- YYCODETYPE iLookAhead /* The look-ahead token */
- ){
- int i;
- int stateno = pParser->yystack[pParser->yyidx].stateno;
-
- if( stateno>YY_SHIFT_COUNT
- || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){
- return yy_default[stateno];
- }
- assert( iLookAhead!=YYNOCODE );
- i += iLookAhead;
- if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
- if( iLookAhead>0 ){
- #ifdef YYFALLBACK
- YYCODETYPE iFallback; /* Fallback token */
- if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
- && (iFallback = yyFallback[iLookAhead])!=0 ){
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE, "%sFALLBACK %s => %s\n",
- yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]);
- }
- #endif
- return yy_find_shift_action(pParser, iFallback);
- }
- #endif
- #ifdef YYWILDCARD
- {
- int j = i - iLookAhead + YYWILDCARD;
- if(
- #if YY_SHIFT_MIN+YYWILDCARD<0
- j>=0 &&
- #endif
- #if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT
- j<YY_ACTTAB_COUNT &&
- #endif
- yy_lookahead[j]==YYWILDCARD
- ){
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
- yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]);
- }
- #endif /* NDEBUG */
- return yy_action[j];
- }
- }
- #endif /* YYWILDCARD */
- }
- return yy_default[stateno];
- }else{
- return yy_action[i];
- }
- }
- /*
- ** Find the appropriate action for a parser given the non-terminal
- ** look-ahead token iLookAhead.
- **
- ** If the look-ahead token is YYNOCODE, then check to see if the action is
- ** independent of the look-ahead. If it is, return the action, otherwise
- ** return YY_NO_ACTION.
- */
- static int yy_find_reduce_action(
- int stateno, /* Current state number */
- YYCODETYPE iLookAhead /* The look-ahead token */
- ){
- int i;
- #ifdef YYERRORSYMBOL
- if( stateno>YY_REDUCE_COUNT ){
- return yy_default[stateno];
- }
- #else
- assert( stateno<=YY_REDUCE_COUNT );
- #endif
- i = yy_reduce_ofst[stateno];
- assert( i!=YY_REDUCE_USE_DFLT );
- assert( iLookAhead!=YYNOCODE );
- i += iLookAhead;
- #ifdef YYERRORSYMBOL
- if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){
- return yy_default[stateno];
- }
- #else
- assert( i>=0 && i<YY_ACTTAB_COUNT );
- assert( yy_lookahead[i]==iLookAhead );
- #endif
- return yy_action[i];
- }
- /*
- ** The following routine is called if the stack overflows.
- */
- static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){
- ParseHLSLARG_FETCH;
- yypParser->yyidx--;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt);
- }
- #endif
- while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
- /* Here code is inserted which will execute if the parser
- ** stack every overflows */
- #line 47 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- // !!! FIXME: make this a proper fail() function.
- fail(ctx, "Giving up. Parser stack overflow");
- #line 2364 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument var */
- }
- /*
- ** Perform a shift action.
- */
- static void yy_shift(
- yyParser *yypParser, /* The parser to be shifted */
- int yyNewState, /* The new state to shift in */
- int yyMajor, /* The major token to shift in */
- YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */
- ){
- yyStackEntry *yytos;
- yypParser->yyidx++;
- #ifdef YYTRACKMAXSTACKDEPTH
- if( yypParser->yyidx>yypParser->yyidxMax ){
- yypParser->yyidxMax = yypParser->yyidx;
- }
- #endif
- #if YYSTACKDEPTH>0
- if( yypParser->yyidx>=YYSTACKDEPTH ){
- yyStackOverflow(yypParser, yypMinor);
- return;
- }
- #else
- if( yypParser->yyidx>=yypParser->yystksz ){
- yyGrowStack(yypParser);
- if( yypParser->yyidx>=yypParser->yystksz ){
- yyStackOverflow(yypParser, yypMinor);
- return;
- }
- }
- #endif
- yytos = &yypParser->yystack[yypParser->yyidx];
- yytos->stateno = (YYACTIONTYPE)yyNewState;
- yytos->major = (YYCODETYPE)yyMajor;
- yytos->minor = *yypMinor;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE && yypParser->yyidx>0 ){
- int i;
- fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState);
- fprintf(yyTraceFILE,"%sStack:",yyTracePrompt);
- for(i=1; i<=yypParser->yyidx; i++)
- fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]);
- fprintf(yyTraceFILE,"\n");
- }
- #endif
- }
- /* The following table contains information about every rule that
- ** is used during the reduce.
- */
- static const struct {
- YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */
- unsigned char nrhs; /* Number of right-hand side symbols in the rule */
- } yyRuleInfo[] = {
- { 124, 1 },
- { 125, 1 },
- { 125, 2 },
- { 126, 1 },
- { 126, 2 },
- { 126, 2 },
- { 126, 1 },
- { 126, 2 },
- { 130, 4 },
- { 130, 3 },
- { 128, 3 },
- { 128, 2 },
- { 128, 2 },
- { 128, 1 },
- { 135, 5 },
- { 135, 5 },
- { 134, 1 },
- { 137, 1 },
- { 137, 1 },
- { 137, 0 },
- { 138, 1 },
- { 138, 3 },
- { 139, 6 },
- { 139, 5 },
- { 139, 5 },
- { 139, 4 },
- { 139, 5 },
- { 139, 4 },
- { 139, 4 },
- { 139, 3 },
- { 139, 5 },
- { 139, 4 },
- { 139, 4 },
- { 139, 3 },
- { 139, 4 },
- { 139, 3 },
- { 139, 3 },
- { 139, 2 },
- { 140, 1 },
- { 140, 1 },
- { 140, 1 },
- { 140, 2 },
- { 140, 2 },
- { 140, 1 },
- { 136, 2 },
- { 141, 1 },
- { 141, 1 },
- { 141, 1 },
- { 141, 1 },
- { 141, 1 },
- { 127, 4 },
- { 127, 3 },
- { 127, 3 },
- { 143, 1 },
- { 143, 2 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 145, 1 },
- { 144, 1 },
- { 144, 3 },
- { 146, 5 },
- { 146, 4 },
- { 146, 4 },
- { 146, 3 },
- { 146, 4 },
- { 146, 3 },
- { 146, 3 },
- { 146, 2 },
- { 146, 4 },
- { 146, 3 },
- { 146, 3 },
- { 146, 2 },
- { 146, 3 },
- { 146, 2 },
- { 146, 2 },
- { 146, 1 },
- { 131, 4 },
- { 149, 2 },
- { 150, 1 },
- { 150, 2 },
- { 151, 2 },
- { 151, 1 },
- { 152, 3 },
- { 153, 1 },
- { 153, 2 },
- { 153, 3 },
- { 148, 2 },
- { 148, 2 },
- { 148, 1 },
- { 148, 1 },
- { 133, 3 },
- { 133, 4 },
- { 133, 1 },
- { 154, 7 },
- { 154, 5 },
- { 155, 5 },
- { 147, 3 },
- { 157, 1 },
- { 157, 2 },
- { 158, 3 },
- { 160, 1 },
- { 160, 3 },
- { 160, 3 },
- { 161, 3 },
- { 142, 2 },
- { 142, 2 },
- { 162, 1 },
- { 162, 1 },
- { 162, 1 },
- { 162, 1 },
- { 162, 1 },
- { 132, 1 },
- { 132, 1 },
- { 165, 1 },
- { 165, 1 },
- { 165, 1 },
- { 165, 1 },
- { 165, 1 },
- { 165, 1 },
- { 165, 1 },
- { 165, 1 },
- { 159, 1 },
- { 159, 1 },
- { 159, 1 },
- { 159, 1 },
- { 159, 1 },
- { 159, 1 },
- { 159, 1 },
- { 159, 2 },
- { 159, 2 },
- { 166, 4 },
- { 166, 4 },
- { 166, 4 },
- { 166, 4 },
- { 166, 4 },
- { 166, 4 },
- { 166, 5 },
- { 166, 5 },
- { 163, 6 },
- { 164, 8 },
- { 129, 2 },
- { 129, 3 },
- { 167, 1 },
- { 167, 2 },
- { 169, 1 },
- { 169, 4 },
- { 169, 1 },
- { 169, 1 },
- { 169, 1 },
- { 169, 1 },
- { 168, 2 },
- { 168, 2 },
- { 168, 2 },
- { 168, 4 },
- { 168, 1 },
- { 168, 2 },
- { 168, 8 },
- { 168, 5 },
- { 168, 5 },
- { 168, 7 },
- { 168, 7 },
- { 168, 1 },
- { 168, 1 },
- { 168, 2 },
- { 168, 2 },
- { 168, 3 },
- { 168, 1 },
- { 168, 1 },
- { 171, 7 },
- { 171, 4 },
- { 171, 4 },
- { 171, 1 },
- { 175, 2 },
- { 176, 7 },
- { 176, 4 },
- { 176, 4 },
- { 176, 1 },
- { 177, 8 },
- { 177, 5 },
- { 177, 6 },
- { 177, 6 },
- { 177, 7 },
- { 177, 6 },
- { 177, 7 },
- { 177, 7 },
- { 177, 7 },
- { 177, 5 },
- { 177, 6 },
- { 177, 6 },
- { 170, 7 },
- { 170, 4 },
- { 170, 4 },
- { 170, 1 },
- { 172, 4 },
- { 172, 4 },
- { 172, 4 },
- { 172, 4 },
- { 172, 4 },
- { 172, 4 },
- { 172, 1 },
- { 173, 4 },
- { 173, 4 },
- { 173, 4 },
- { 173, 4 },
- { 173, 1 },
- { 174, 1 },
- { 174, 2 },
- { 178, 4 },
- { 178, 3 },
- { 178, 3 },
- { 178, 2 },
- { 179, 1 },
- { 179, 1 },
- { 179, 1 },
- { 179, 1 },
- { 179, 1 },
- { 179, 1 },
- { 179, 3 },
- { 180, 1 },
- { 180, 4 },
- { 180, 2 },
- { 180, 2 },
- { 180, 3 },
- { 180, 2 },
- { 180, 2 },
- { 181, 2 },
- { 181, 3 },
- { 182, 1 },
- { 182, 3 },
- { 184, 1 },
- { 184, 2 },
- { 184, 2 },
- { 184, 2 },
- { 184, 2 },
- { 184, 2 },
- { 184, 2 },
- { 185, 1 },
- { 185, 4 },
- { 186, 1 },
- { 186, 3 },
- { 186, 3 },
- { 186, 3 },
- { 187, 1 },
- { 187, 3 },
- { 187, 3 },
- { 188, 1 },
- { 188, 3 },
- { 188, 3 },
- { 189, 1 },
- { 189, 3 },
- { 189, 3 },
- { 189, 3 },
- { 189, 3 },
- { 190, 1 },
- { 190, 3 },
- { 190, 3 },
- { 191, 1 },
- { 191, 3 },
- { 192, 1 },
- { 192, 3 },
- { 193, 1 },
- { 193, 3 },
- { 194, 1 },
- { 194, 3 },
- { 195, 1 },
- { 195, 3 },
- { 196, 1 },
- { 196, 5 },
- { 183, 1 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 183, 3 },
- { 156, 1 },
- { 156, 3 },
- };
- static void yy_accept(yyParser*); /* Forward Declaration */
- /*
- ** Perform a reduce action and the shift that must immediately
- ** follow the reduce.
- */
- static void yy_reduce(
- yyParser *yypParser, /* The parser */
- int yyruleno /* Number of the rule by which to reduce */
- ){
- int yygoto; /* The next state */
- int yyact; /* The next action */
- YYMINORTYPE yygotominor; /* The LHS of the rule reduced */
- yyStackEntry *yymsp; /* The top of the parser's stack */
- int yysize; /* Amount to pop the stack */
- ParseHLSLARG_FETCH;
- yymsp = &yypParser->yystack[yypParser->yyidx];
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE && yyruleno>=0
- && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
- fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
- yyRuleName[yyruleno]);
- }
- #endif /* NDEBUG */
- /* Silence complaints from purify about yygotominor being uninitialized
- ** in some cases when it is copied into the stack after the following
- ** switch. yygotominor is uninitialized when a rule reduces that does
- ** not set the value of its left-hand side nonterminal. Leaving the
- ** value of the nonterminal uninitialized is utterly harmless as long
- ** as the value is never used. So really the only thing this code
- ** accomplishes is to quieten purify.
- **
- ** 2007-01-16: The wireshark project (www.wireshark.org) reports that
- ** without this code, their parser segfaults. I'm not sure what there
- ** parser is doing to make this happen. This is the second bug report
- ** from wireshark this week. Clearly they are stressing Lemon in ways
- ** that it has not been previously stressed... (SQLite ticket #2172)
- */
- /*memset(&yygotominor, 0, sizeof(yygotominor));*/
- yygotominor = yyzerominor;
- switch( yyruleno ){
- /* Beginning here are the reduction cases. A typical example
- ** follows:
- ** case 0:
- ** #line <lineno> <grammarfile>
- ** { ... } // User supplied code
- ** #line <lineno> <thisfile>
- ** break;
- */
- case 0: /* shader ::= compilation_units */
- #line 78 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { assert(ctx->ast == NULL); REVERSE_LINKED_LIST(MOJOSHADER_astCompilationUnit, yymsp[0].minor.yy139); ctx->ast = (MOJOSHADER_astNode *) yymsp[0].minor.yy139; }
- #line 2766 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 1: /* compilation_units ::= compilation_unit */
- #line 82 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy139 = yymsp[0].minor.yy139; }
- #line 2771 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 2: /* compilation_units ::= compilation_units compilation_unit */
- #line 83 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { if (yymsp[0].minor.yy139) { yymsp[0].minor.yy139->next = yymsp[-1].minor.yy139; yygotominor.yy139 = yymsp[0].minor.yy139; } }
- #line 2776 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 3: /* compilation_unit ::= variable_declaration */
- #line 88 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy139 = new_global_variable(ctx, yymsp[0].minor.yy24); }
- #line 2781 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 4: /* compilation_unit ::= function_signature SEMICOLON */
- #line 89 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy139 = new_function(ctx, yymsp[-1].minor.yy364, NULL); }
- #line 2786 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 5: /* compilation_unit ::= function_signature statement_block */
- #line 90 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy139 = new_function(ctx, yymsp[-1].minor.yy364, yymsp[0].minor.yy233); }
- #line 2791 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 6: /* compilation_unit ::= typedef */
- #line 91 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy139 = new_global_typedef(ctx, yymsp[0].minor.yy71); }
- #line 2796 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 7: /* compilation_unit ::= struct_declaration SEMICOLON */
- #line 92 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy139 = new_global_struct(ctx, yymsp[-1].minor.yy249); }
- #line 2801 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 8: /* typedef ::= TYPEDEF CONST datatype scalar_or_array */
- #line 98 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy71 = new_typedef(ctx, 1, yymsp[-1].minor.yy37, yymsp[0].minor.yy380); push_usertype(ctx, yymsp[0].minor.yy380->identifier, yygotominor.yy71->datatype); }
- #line 2806 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 9: /* typedef ::= TYPEDEF datatype scalar_or_array */
- #line 99 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy71 = new_typedef(ctx, 0, yymsp[-1].minor.yy37, yymsp[0].minor.yy380); push_usertype(ctx, yymsp[0].minor.yy380->identifier, yygotominor.yy71->datatype); }
- #line 2811 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 10: /* function_signature ::= function_storageclass function_details semantic */
- #line 103 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy364 = yymsp[-1].minor.yy364; yygotominor.yy364->storage_class = yymsp[-2].minor.yy175; yygotominor.yy364->semantic = yymsp[0].minor.yy306; }
- #line 2816 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 11: /* function_signature ::= function_storageclass function_details */
- #line 104 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy364 = yymsp[0].minor.yy364; yygotominor.yy364->storage_class = yymsp[-1].minor.yy175; }
- #line 2821 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 12: /* function_signature ::= function_details semantic */
- #line 105 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy364 = yymsp[-1].minor.yy364; yygotominor.yy364->semantic = yymsp[0].minor.yy306; }
- #line 2826 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 13: /* function_signature ::= function_details */
- #line 106 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy364 = yymsp[0].minor.yy364; }
- #line 2831 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 14: /* function_details ::= datatype IDENTIFIER LPAREN function_parameters RPAREN */
- #line 110 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy364 = new_function_signature(ctx, yymsp[-4].minor.yy37, yymsp[-3].minor.yy0.string, yymsp[-1].minor.yy307); }
- #line 2836 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 15: /* function_details ::= VOID IDENTIFIER LPAREN function_parameters RPAREN */
- #line 111 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy364 = new_function_signature(ctx, NULL, yymsp[-3].minor.yy0.string, yymsp[-1].minor.yy307); }
- #line 2841 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 16: /* function_storageclass ::= INLINE */
- #line 121 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy175 = MOJOSHADER_AST_FNSTORECLS_INLINE; }
- #line 2846 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 17: /* function_parameters ::= VOID */
- case 19: /* function_parameters ::= */ yytestcase(yyruleno==19);
- #line 125 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = NULL; }
- #line 2852 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 18: /* function_parameters ::= function_parameter_list */
- #line 126 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astFunctionParameters, yymsp[0].minor.yy307); yygotominor.yy307 = yymsp[0].minor.yy307; }
- #line 2857 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 20: /* function_parameter_list ::= function_parameter */
- #line 131 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = yymsp[0].minor.yy307; }
- #line 2862 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 21: /* function_parameter_list ::= function_parameter_list COMMA function_parameter */
- #line 132 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yymsp[0].minor.yy307->next = yymsp[-2].minor.yy307; yygotominor.yy307 = yymsp[0].minor.yy307; }
- #line 2867 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 22: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod initializer */
- #line 138 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-5].minor.yy75, yymsp[-4].minor.yy37, yymsp[-3].minor.yy0.string, yymsp[-2].minor.yy306, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); }
- #line 2872 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 23: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic interpolation_mod */
- #line 139 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-4].minor.yy75, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, yymsp[0].minor.yy111, NULL); }
- #line 2877 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 24: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic initializer */
- #line 140 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-4].minor.yy75, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); }
- #line 2882 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 25: /* function_parameter ::= input_modifier datatype IDENTIFIER semantic */
- #line 141 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-3].minor.yy75, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, yymsp[0].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, NULL); }
- #line 2887 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 26: /* function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod initializer */
- #line 142 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-4].minor.yy75, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, NULL, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); }
- #line 2892 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 27: /* function_parameter ::= input_modifier datatype IDENTIFIER interpolation_mod */
- #line 143 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-3].minor.yy75, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, yymsp[0].minor.yy111, NULL); }
- #line 2897 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 28: /* function_parameter ::= input_modifier datatype IDENTIFIER initializer */
- #line 144 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-3].minor.yy75, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); }
- #line 2902 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 29: /* function_parameter ::= input_modifier datatype IDENTIFIER */
- #line 145 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, yymsp[-2].minor.yy75, yymsp[-1].minor.yy37, yymsp[0].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, NULL); }
- #line 2907 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 30: /* function_parameter ::= datatype IDENTIFIER semantic interpolation_mod initializer */
- #line 146 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-4].minor.yy37, yymsp[-3].minor.yy0.string, yymsp[-2].minor.yy306, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); }
- #line 2912 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 31: /* function_parameter ::= datatype IDENTIFIER semantic interpolation_mod */
- #line 147 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, yymsp[0].minor.yy111, NULL); }
- #line 2917 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 32: /* function_parameter ::= datatype IDENTIFIER semantic initializer */
- #line 148 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, yymsp[-1].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); }
- #line 2922 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 33: /* function_parameter ::= datatype IDENTIFIER semantic */
- #line 149 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, yymsp[0].minor.yy306, MOJOSHADER_AST_INTERPMOD_NONE, NULL); }
- #line 2927 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 34: /* function_parameter ::= datatype IDENTIFIER interpolation_mod initializer */
- #line 150 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-3].minor.yy37, yymsp[-2].minor.yy0.string, NULL, yymsp[-1].minor.yy111, yymsp[0].minor.yy322); }
- #line 2932 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 35: /* function_parameter ::= datatype IDENTIFIER interpolation_mod */
- #line 151 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, yymsp[0].minor.yy111, NULL); }
- #line 2937 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 36: /* function_parameter ::= datatype IDENTIFIER initializer */
- #line 152 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-2].minor.yy37, yymsp[-1].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, yymsp[0].minor.yy322); }
- #line 2942 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 37: /* function_parameter ::= datatype IDENTIFIER */
- #line 153 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy307 = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, yymsp[-1].minor.yy37, yymsp[0].minor.yy0.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, NULL); }
- #line 2947 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 38: /* input_modifier ::= IN */
- #line 156 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_IN; }
- #line 2952 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 39: /* input_modifier ::= INOUT */
- case 41: /* input_modifier ::= IN OUT */ yytestcase(yyruleno==41);
- case 42: /* input_modifier ::= OUT IN */ yytestcase(yyruleno==42);
- #line 157 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_INOUT; }
- #line 2959 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 40: /* input_modifier ::= OUT */
- #line 158 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_OUT; }
- #line 2964 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 43: /* input_modifier ::= UNIFORM */
- #line 161 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy75 = MOJOSHADER_AST_INPUTMOD_UNIFORM; }
- #line 2969 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 44: /* semantic ::= COLON IDENTIFIER */
- #line 164 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy306 = yymsp[0].minor.yy0.string; }
- #line 2974 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 45: /* interpolation_mod ::= LINEAR */
- #line 168 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_LINEAR; }
- #line 2979 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 46: /* interpolation_mod ::= CENTROID */
- #line 169 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_CENTROID; }
- #line 2984 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 47: /* interpolation_mod ::= NOINTERPOLATION */
- #line 170 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_NOINTERPOLATION; }
- #line 2989 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 48: /* interpolation_mod ::= NOPERSPECTIVE */
- #line 171 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_NOPERSPECTIVE; }
- #line 2994 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 49: /* interpolation_mod ::= SAMPLE */
- #line 172 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy111 = MOJOSHADER_AST_INTERPMOD_SAMPLE; }
- #line 2999 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 50: /* variable_declaration ::= variable_attribute_list datatype variable_declaration_details_list SEMICOLON */
- #line 176 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, yymsp[-1].minor.yy24); yygotominor.yy24 = yymsp[-1].minor.yy24; yygotominor.yy24->attributes = yymsp[-3].minor.yy270; yygotominor.yy24->datatype = yymsp[-2].minor.yy37; }
- #line 3004 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 51: /* variable_declaration ::= datatype variable_declaration_details_list SEMICOLON */
- #line 177 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, yymsp[-1].minor.yy24); yygotominor.yy24 = yymsp[-1].minor.yy24; yygotominor.yy24->datatype = yymsp[-2].minor.yy37; }
- #line 3009 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 52: /* variable_declaration ::= struct_declaration variable_declaration_details_list SEMICOLON */
- #line 179 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, yymsp[-1].minor.yy24); yygotominor.yy24 = yymsp[-1].minor.yy24; yygotominor.yy24->anonymous_datatype = yymsp[-2].minor.yy249; }
- #line 3014 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 53: /* variable_attribute_list ::= variable_attribute */
- #line 182 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = yymsp[0].minor.yy270; }
- #line 3019 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 54: /* variable_attribute_list ::= variable_attribute_list variable_attribute */
- #line 183 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = yymsp[-1].minor.yy270 | yymsp[0].minor.yy270; }
- #line 3024 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 55: /* variable_attribute ::= EXTERN */
- #line 186 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_EXTERN; }
- #line 3029 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 56: /* variable_attribute ::= NOINTERPOLATION */
- #line 187 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_NOINTERPOLATION; }
- #line 3034 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 57: /* variable_attribute ::= SHARED */
- #line 188 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_SHARED; }
- #line 3039 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 58: /* variable_attribute ::= STATIC */
- #line 189 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_STATIC; }
- #line 3044 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 59: /* variable_attribute ::= UNIFORM */
- #line 190 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_UNIFORM; }
- #line 3049 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 60: /* variable_attribute ::= VOLATILE */
- #line 191 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_VOLATILE; }
- #line 3054 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 61: /* variable_attribute ::= CONST */
- #line 192 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_CONST; }
- #line 3059 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 62: /* variable_attribute ::= ROWMAJOR */
- #line 193 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_ROWMAJOR; }
- #line 3064 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 63: /* variable_attribute ::= COLUMNMAJOR */
- #line 194 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_VARATTR_COLUMNMAJOR; }
- #line 3069 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 64: /* variable_declaration_details_list ::= variable_declaration_details */
- #line 198 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = yymsp[0].minor.yy24; }
- #line 3074 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 65: /* variable_declaration_details_list ::= variable_declaration_details_list COMMA variable_declaration_details */
- #line 199 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = yymsp[0].minor.yy24; yygotominor.yy24->next = yymsp[-2].minor.yy24; }
- #line 3079 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 66: /* variable_declaration_details ::= scalar_or_array semantic annotations initializer variable_lowlevel */
- #line 203 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-4].minor.yy380, yymsp[-3].minor.yy306, yymsp[-2].minor.yy268, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); }
- #line 3084 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 67: /* variable_declaration_details ::= scalar_or_array semantic annotations initializer */
- #line 204 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, yymsp[-2].minor.yy306, yymsp[-1].minor.yy268, yymsp[0].minor.yy322, NULL); }
- #line 3089 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 68: /* variable_declaration_details ::= scalar_or_array semantic annotations variable_lowlevel */
- #line 205 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, yymsp[-2].minor.yy306, yymsp[-1].minor.yy268, NULL, yymsp[0].minor.yy82); }
- #line 3094 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 69: /* variable_declaration_details ::= scalar_or_array semantic annotations */
- #line 206 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, yymsp[-1].minor.yy306, yymsp[0].minor.yy268, NULL, NULL); }
- #line 3099 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 70: /* variable_declaration_details ::= scalar_or_array semantic initializer variable_lowlevel */
- #line 207 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, yymsp[-2].minor.yy306, NULL, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); }
- #line 3104 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 71: /* variable_declaration_details ::= scalar_or_array semantic initializer */
- #line 208 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, yymsp[-1].minor.yy306, NULL, yymsp[0].minor.yy322, NULL); }
- #line 3109 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 72: /* variable_declaration_details ::= scalar_or_array semantic variable_lowlevel */
- #line 209 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, yymsp[-1].minor.yy306, NULL, NULL, yymsp[0].minor.yy82); }
- #line 3114 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 73: /* variable_declaration_details ::= scalar_or_array semantic */
- #line 210 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, yymsp[0].minor.yy306, NULL, NULL, NULL); }
- #line 3119 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 74: /* variable_declaration_details ::= scalar_or_array annotations initializer variable_lowlevel */
- #line 211 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-3].minor.yy380, NULL, yymsp[-2].minor.yy268, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); }
- #line 3124 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 75: /* variable_declaration_details ::= scalar_or_array annotations initializer */
- #line 212 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, NULL, yymsp[-1].minor.yy268, yymsp[0].minor.yy322, NULL); }
- #line 3129 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 76: /* variable_declaration_details ::= scalar_or_array annotations variable_lowlevel */
- #line 213 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, NULL, yymsp[-1].minor.yy268, NULL, yymsp[0].minor.yy82); }
- #line 3134 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 77: /* variable_declaration_details ::= scalar_or_array annotations */
- #line 214 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, NULL, yymsp[0].minor.yy268, NULL, NULL); }
- #line 3139 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 78: /* variable_declaration_details ::= scalar_or_array initializer variable_lowlevel */
- #line 215 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-2].minor.yy380, NULL, NULL, yymsp[-1].minor.yy322, yymsp[0].minor.yy82); }
- #line 3144 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 79: /* variable_declaration_details ::= scalar_or_array initializer */
- #line 216 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, NULL, NULL, yymsp[0].minor.yy322, NULL); }
- #line 3149 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 80: /* variable_declaration_details ::= scalar_or_array variable_lowlevel */
- #line 217 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[-1].minor.yy380, NULL, NULL, NULL, yymsp[0].minor.yy82); }
- #line 3154 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 81: /* variable_declaration_details ::= scalar_or_array */
- #line 218 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy24 = new_variable_declaration(ctx, yymsp[0].minor.yy380, NULL, NULL, NULL, NULL); }
- #line 3159 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 82: /* struct_declaration ::= struct_intro LBRACE struct_member_list RBRACE */
- #line 225 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astStructMembers, yymsp[-1].minor.yy346); yygotominor.yy249 = new_struct_declaration(ctx, yymsp[-3].minor.yy306, yymsp[-1].minor.yy346); }
- #line 3164 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 83: /* struct_intro ::= STRUCT IDENTIFIER */
- #line 229 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy306 = yymsp[0].minor.yy0.string; push_usertype(ctx, yygotominor.yy306, &ctx->dt_none); }
- #line 3169 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 84: /* struct_member_list ::= struct_member */
- case 87: /* struct_member ::= struct_member_details */ yytestcase(yyruleno==87);
- #line 233 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy346 = yymsp[0].minor.yy346; }
- #line 3175 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 85: /* struct_member_list ::= struct_member_list struct_member */
- #line 234 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy346 = yymsp[0].minor.yy346; MOJOSHADER_astStructMembers *i = yygotominor.yy346; while (i->next) { i = i->next; } i->next = yymsp[-1].minor.yy346; }
- #line 3180 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 86: /* struct_member ::= interpolation_mod struct_member_details */
- #line 238 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { MOJOSHADER_astStructMembers *i = yymsp[0].minor.yy346; yygotominor.yy346 = yymsp[0].minor.yy346; while (i) { i->interpolation_mod = yymsp[-1].minor.yy111; i = i->next; } }
- #line 3185 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 88: /* struct_member_details ::= datatype struct_member_item_list SEMICOLON */
- #line 243 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { MOJOSHADER_astStructMembers *i = yymsp[-1].minor.yy346; yygotominor.yy346 = yymsp[-1].minor.yy346; while (i) { i->datatype = yymsp[-2].minor.yy37; i = i->next; } }
- #line 3190 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 89: /* struct_member_item_list ::= scalar_or_array */
- #line 247 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy346 = new_struct_member(ctx, yymsp[0].minor.yy380, NULL); }
- #line 3195 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 90: /* struct_member_item_list ::= scalar_or_array semantic */
- #line 248 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy346 = new_struct_member(ctx, yymsp[-1].minor.yy380, yymsp[0].minor.yy306); }
- #line 3200 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 91: /* struct_member_item_list ::= struct_member_item_list COMMA IDENTIFIER */
- #line 249 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy346 = new_struct_member(ctx, new_scalar_or_array(ctx, yymsp[0].minor.yy0.string, 0, NULL), NULL); yygotominor.yy346->next = yymsp[-2].minor.yy346; yygotominor.yy346->semantic = yymsp[-2].minor.yy346->semantic; }
- #line 3205 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 92: /* variable_lowlevel ::= packoffset register */
- #line 253 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy82 = new_variable_lowlevel(ctx, yymsp[-1].minor.yy8, yymsp[0].minor.yy306); }
- #line 3210 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 93: /* variable_lowlevel ::= register packoffset */
- #line 254 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy82 = new_variable_lowlevel(ctx, yymsp[0].minor.yy8, yymsp[-1].minor.yy306); }
- #line 3215 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 94: /* variable_lowlevel ::= packoffset */
- #line 255 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy82 = new_variable_lowlevel(ctx, yymsp[0].minor.yy8, NULL); }
- #line 3220 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 95: /* variable_lowlevel ::= register */
- #line 256 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy82 = new_variable_lowlevel(ctx, NULL, yymsp[0].minor.yy306); }
- #line 3225 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 96: /* scalar_or_array ::= IDENTIFIER LBRACKET RBRACKET */
- #line 261 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy380 = new_scalar_or_array(ctx, yymsp[-2].minor.yy0.string, 1, NULL); }
- #line 3230 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 97: /* scalar_or_array ::= IDENTIFIER LBRACKET expression RBRACKET */
- #line 262 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy380 = new_scalar_or_array(ctx, yymsp[-3].minor.yy0.string, 1, yymsp[-1].minor.yy322); }
- #line 3235 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 98: /* scalar_or_array ::= IDENTIFIER */
- #line 263 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy380 = new_scalar_or_array(ctx, yymsp[0].minor.yy0.string, 0, NULL); }
- #line 3240 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 99: /* packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER DOT IDENTIFIER RPAREN */
- #line 267 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy8 = new_pack_offset(ctx, yymsp[-3].minor.yy0.string, yymsp[-1].minor.yy0.string); }
- #line 3245 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 100: /* packoffset ::= COLON PACKOFFSET LPAREN IDENTIFIER RPAREN */
- #line 268 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy8 = new_pack_offset(ctx, yymsp[-1].minor.yy0.string, NULL); }
- #line 3250 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 101: /* register ::= COLON REGISTER LPAREN IDENTIFIER RPAREN */
- #line 274 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy306 = yymsp[-1].minor.yy0.string; }
- #line 3255 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 102: /* annotations ::= LT annotation_list GT */
- #line 278 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astAnnotations, yymsp[-1].minor.yy268); yygotominor.yy268 = yymsp[-1].minor.yy268; }
- #line 3260 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 103: /* annotation_list ::= annotation */
- #line 282 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy268 = yymsp[0].minor.yy268; }
- #line 3265 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 104: /* annotation_list ::= annotation_list annotation */
- #line 283 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy268 = yymsp[0].minor.yy268; yygotominor.yy268->next = yymsp[-1].minor.yy268; }
- #line 3270 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 105: /* annotation ::= datatype_scalar initializer SEMICOLON */
- #line 288 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy268 = new_annotation(ctx, yymsp[-2].minor.yy37, yymsp[-1].minor.yy322); }
- #line 3275 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 106: /* initializer_block_list ::= expression */
- case 110: /* initializer ::= ASSIGN initializer_block */ yytestcase(yyruleno==110);
- case 111: /* initializer ::= ASSIGN expression */ yytestcase(yyruleno==111);
- case 224: /* postfix_expr ::= primary_expr */ yytestcase(yyruleno==224);
- case 235: /* unary_expr ::= postfix_expr */ yytestcase(yyruleno==235);
- case 238: /* unary_expr ::= PLUS cast_expr */ yytestcase(yyruleno==238);
- case 242: /* cast_expr ::= unary_expr */ yytestcase(yyruleno==242);
- case 244: /* multiplicative_expr ::= cast_expr */ yytestcase(yyruleno==244);
- case 248: /* additive_expr ::= multiplicative_expr */ yytestcase(yyruleno==248);
- case 251: /* shift_expr ::= additive_expr */ yytestcase(yyruleno==251);
- case 254: /* relational_expr ::= shift_expr */ yytestcase(yyruleno==254);
- case 259: /* equality_expr ::= relational_expr */ yytestcase(yyruleno==259);
- case 262: /* and_expr ::= equality_expr */ yytestcase(yyruleno==262);
- case 264: /* exclusive_or_expr ::= and_expr */ yytestcase(yyruleno==264);
- case 266: /* inclusive_or_expr ::= exclusive_or_expr */ yytestcase(yyruleno==266);
- case 268: /* logical_and_expr ::= inclusive_or_expr */ yytestcase(yyruleno==268);
- case 270: /* logical_or_expr ::= logical_and_expr */ yytestcase(yyruleno==270);
- case 272: /* conditional_expr ::= logical_or_expr */ yytestcase(yyruleno==272);
- case 274: /* assignment_expr ::= conditional_expr */ yytestcase(yyruleno==274);
- case 286: /* expression ::= assignment_expr */ yytestcase(yyruleno==286);
- #line 292 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = yymsp[0].minor.yy322; }
- #line 3299 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 107: /* initializer_block_list ::= LBRACE initializer_block_list RBRACE */
- case 109: /* initializer_block ::= LBRACE initializer_block_list RBRACE */ yytestcase(yyruleno==109);
- case 223: /* primary_expr ::= LPAREN expression RPAREN */ yytestcase(yyruleno==223);
- #line 293 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = yymsp[-1].minor.yy322; }
- #line 3306 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 108: /* initializer_block_list ::= initializer_block_list COMMA initializer_block_list */
- case 287: /* expression ::= expression COMMA assignment_expr */ yytestcase(yyruleno==287);
- #line 294 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_COMMA, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3312 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 112: /* intrinsic_datatype ::= datatype_vector */
- case 113: /* intrinsic_datatype ::= datatype_matrix */ yytestcase(yyruleno==113);
- case 114: /* intrinsic_datatype ::= datatype_scalar */ yytestcase(yyruleno==114);
- case 115: /* intrinsic_datatype ::= datatype_sampler */ yytestcase(yyruleno==115);
- case 116: /* intrinsic_datatype ::= datatype_buffer */ yytestcase(yyruleno==116);
- case 117: /* datatype ::= intrinsic_datatype */ yytestcase(yyruleno==117);
- #line 306 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = yymsp[0].minor.yy37; }
- #line 3322 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 118: /* datatype ::= USERTYPE */
- #line 314 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = yymsp[0].minor.yy0.datatype; }
- #line 3327 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 119: /* datatype_sampler ::= SAMPLER */
- case 121: /* datatype_sampler ::= SAMPLER2D */ yytestcase(yyruleno==121);
- #line 317 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_sampler2d; }
- #line 3333 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 120: /* datatype_sampler ::= SAMPLER1D */
- #line 318 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_sampler1d; }
- #line 3338 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 122: /* datatype_sampler ::= SAMPLER3D */
- #line 320 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_sampler3d; }
- #line 3343 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 123: /* datatype_sampler ::= SAMPLERCUBE */
- #line 321 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_samplercube; }
- #line 3348 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 124: /* datatype_sampler ::= SAMPLER_STATE */
- case 125: /* datatype_sampler ::= SAMPLERSTATE */ yytestcase(yyruleno==125);
- #line 322 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_samplerstate; }
- #line 3354 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 126: /* datatype_sampler ::= SAMPLERCOMPARISONSTATE */
- #line 324 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_samplercompstate; }
- #line 3359 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 127: /* datatype_scalar ::= BOOL */
- #line 327 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_bool; }
- #line 3364 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 128: /* datatype_scalar ::= INT */
- #line 328 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_int; }
- #line 3369 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 129: /* datatype_scalar ::= UINT */
- #line 329 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_uint; }
- #line 3374 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 130: /* datatype_scalar ::= HALF */
- #line 330 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_half; }
- #line 3379 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 131: /* datatype_scalar ::= FLOAT */
- #line 331 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_float; }
- #line 3384 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 132: /* datatype_scalar ::= DOUBLE */
- #line 332 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_double; }
- #line 3389 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 133: /* datatype_scalar ::= STRING */
- #line 333 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_string; }
- #line 3394 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 134: /* datatype_scalar ::= SNORM FLOAT */
- #line 334 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_float_snorm; }
- #line 3399 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 135: /* datatype_scalar ::= UNORM FLOAT */
- #line 335 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_float_unorm; }
- #line 3404 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 136: /* datatype_buffer ::= BUFFER LT BOOL GT */
- #line 338 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_bool; }
- #line 3409 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 137: /* datatype_buffer ::= BUFFER LT INT GT */
- #line 339 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_int; }
- #line 3414 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 138: /* datatype_buffer ::= BUFFER LT UINT GT */
- #line 340 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_uint; }
- #line 3419 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 139: /* datatype_buffer ::= BUFFER LT HALF GT */
- #line 341 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_half; }
- #line 3424 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 140: /* datatype_buffer ::= BUFFER LT FLOAT GT */
- #line 342 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_float; }
- #line 3429 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 141: /* datatype_buffer ::= BUFFER LT DOUBLE GT */
- #line 343 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_double; }
- #line 3434 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 142: /* datatype_buffer ::= BUFFER LT SNORM FLOAT GT */
- #line 344 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_float_snorm; }
- #line 3439 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 143: /* datatype_buffer ::= BUFFER LT UNORM FLOAT GT */
- #line 345 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = &ctx->dt_buf_float_unorm; }
- #line 3444 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 144: /* datatype_vector ::= VECTOR LT datatype_scalar COMMA INT_CONSTANT GT */
- #line 348 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = new_datatype_vector(ctx, yymsp[-3].minor.yy37, (int) yymsp[-1].minor.yy0.i64); }
- #line 3449 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 145: /* datatype_matrix ::= MATRIX LT datatype_scalar COMMA INT_CONSTANT COMMA INT_CONSTANT GT */
- #line 351 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy37 = new_datatype_matrix(ctx, yymsp[-5].minor.yy37, (int) yymsp[-3].minor.yy0.i64, (int) yymsp[-1].minor.yy0.i64); }
- #line 3454 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 146: /* statement_block ::= LBRACE RBRACE */
- #line 355 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_block_statement(ctx, NULL); }
- #line 3459 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 147: /* statement_block ::= LBRACE statement_list RBRACE */
- #line 356 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, yymsp[-1].minor.yy233); yygotominor.yy233 = new_block_statement(ctx, yymsp[-1].minor.yy233); }
- #line 3464 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 148: /* statement_list ::= statement */
- case 172: /* statement ::= statement_block */ yytestcase(yyruleno==172);
- case 173: /* statement ::= for_statement */ yytestcase(yyruleno==173);
- #line 360 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = yymsp[0].minor.yy233; }
- #line 3471 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 149: /* statement_list ::= statement_list statement */
- #line 361 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = yymsp[0].minor.yy233; yygotominor.yy233->next = yymsp[-1].minor.yy233; }
- #line 3476 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 150: /* statement_attribute ::= ISOLATE */
- case 151: /* statement_attribute ::= MAXINSTRUCTIONCOUNT LPAREN INT_CONSTANT RPAREN */ yytestcase(yyruleno==151);
- case 152: /* statement_attribute ::= NOEXPRESSIONOPTIMIZATIONS */ yytestcase(yyruleno==152);
- case 153: /* statement_attribute ::= REMOVEUNUSEDINPUTS */ yytestcase(yyruleno==153);
- case 154: /* statement_attribute ::= UNUSED */ yytestcase(yyruleno==154);
- case 155: /* statement_attribute ::= XPS */ yytestcase(yyruleno==155);
- case 176: /* while_intro ::= LBRACKET LOOP RBRACKET WHILE */ yytestcase(yyruleno==176);
- case 181: /* for_intro ::= LBRACKET LOOP RBRACKET FOR */ yytestcase(yyruleno==181);
- case 197: /* do_intro ::= LBRACKET LOOP RBRACKET DO */ yytestcase(yyruleno==197);
- #line 367 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = 0; }
- #line 3489 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 156: /* statement ::= BREAK SEMICOLON */
- #line 376 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_break_statement(ctx); }
- #line 3494 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 157: /* statement ::= CONTINUE SEMICOLON */
- #line 377 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_continue_statement(ctx); }
- #line 3499 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 158: /* statement ::= DISCARD SEMICOLON */
- #line 378 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_discard_statement(ctx); }
- #line 3504 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 159: /* statement ::= LBRACKET statement_attribute RBRACKET statement_block */
- #line 379 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = yymsp[0].minor.yy233; /* !!! FIXME: yygotominor.yy233->attributes = yymsp[-2].minor.yy270;*/ yymsp[-2].minor.yy270 = 0; }
- #line 3509 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 160: /* statement ::= variable_declaration */
- #line 380 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_vardecl_statement(ctx, yymsp[0].minor.yy24); }
- #line 3514 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 161: /* statement ::= struct_declaration SEMICOLON */
- #line 381 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_struct_statement(ctx, yymsp[-1].minor.yy249); }
- #line 3519 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 162: /* statement ::= do_intro DO statement WHILE LPAREN expression RPAREN SEMICOLON */
- #line 382 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_do_statement(ctx, yymsp[-7].minor.yy270, yymsp[-5].minor.yy233, yymsp[-2].minor.yy322); }
- #line 3524 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 163: /* statement ::= while_intro LPAREN expression RPAREN statement */
- #line 383 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_while_statement(ctx, yymsp[-4].minor.yy270, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3529 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 164: /* statement ::= if_intro LPAREN expression RPAREN statement */
- #line 384 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_if_statement(ctx, yymsp[-4].minor.yy270, yymsp[-2].minor.yy322, yymsp[0].minor.yy233, NULL); }
- #line 3534 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 165: /* statement ::= if_intro LPAREN expression RPAREN statement ELSE statement */
- #line 385 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_if_statement(ctx, yymsp[-6].minor.yy270, yymsp[-4].minor.yy322, yymsp[-2].minor.yy233, yymsp[0].minor.yy233); }
- #line 3539 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 166: /* statement ::= switch_intro LPAREN expression RPAREN LBRACE switch_case_list RBRACE */
- #line 386 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astSwitchCases, yymsp[-1].minor.yy165); yygotominor.yy233 = new_switch_statement(ctx, yymsp[-6].minor.yy270, yymsp[-4].minor.yy322, yymsp[-1].minor.yy165); }
- #line 3544 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 167: /* statement ::= typedef */
- #line 387 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_typedef_statement(ctx, yymsp[0].minor.yy71); }
- #line 3549 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 168: /* statement ::= SEMICOLON */
- #line 388 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_empty_statement(ctx); }
- #line 3554 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 169: /* statement ::= expression SEMICOLON */
- #line 389 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_expr_statement(ctx, yymsp[-1].minor.yy322); }
- #line 3559 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 170: /* statement ::= RETURN SEMICOLON */
- #line 390 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_return_statement(ctx, NULL); }
- #line 3564 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 171: /* statement ::= RETURN expression SEMICOLON */
- #line 391 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_return_statement(ctx, yymsp[-1].minor.yy322); }
- #line 3569 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 174: /* while_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET WHILE */
- case 179: /* for_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET FOR */ yytestcase(yyruleno==179);
- #line 397 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = (yymsp[-3].minor.yy0.i64 < 0) ? 0 : yymsp[-3].minor.yy0.i64; }
- #line 3575 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 175: /* while_intro ::= LBRACKET UNROLL RBRACKET WHILE */
- case 180: /* for_intro ::= LBRACKET UNROLL RBRACKET FOR */ yytestcase(yyruleno==180);
- case 196: /* do_intro ::= LBRACKET UNROLL RBRACKET DO */ yytestcase(yyruleno==196);
- #line 398 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = -1; }
- #line 3582 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 177: /* while_intro ::= WHILE */
- case 182: /* for_intro ::= FOR */ yytestcase(yyruleno==182);
- case 198: /* do_intro ::= DO */ yytestcase(yyruleno==198);
- #line 400 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = -2; }
- #line 3589 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 178: /* for_statement ::= for_intro for_details */
- #line 404 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = yymsp[0].minor.yy233; ((MOJOSHADER_astForStatement *) yygotominor.yy233)->unroll = yymsp[-1].minor.yy270; }
- #line 3594 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 183: /* for_details ::= LPAREN expression SEMICOLON expression SEMICOLON expression RPAREN statement */
- #line 414 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-6].minor.yy322, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3599 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 184: /* for_details ::= LPAREN SEMICOLON SEMICOLON RPAREN statement */
- #line 415 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, NULL, NULL, yymsp[0].minor.yy233); }
- #line 3604 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 185: /* for_details ::= LPAREN SEMICOLON SEMICOLON expression RPAREN statement */
- #line 416 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, NULL, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3609 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 186: /* for_details ::= LPAREN SEMICOLON expression SEMICOLON RPAREN statement */
- #line 417 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, yymsp[-3].minor.yy322, NULL, yymsp[0].minor.yy233); }
- #line 3614 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 187: /* for_details ::= LPAREN SEMICOLON expression SEMICOLON expression RPAREN statement */
- #line 418 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, NULL, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3619 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 188: /* for_details ::= LPAREN expression SEMICOLON SEMICOLON RPAREN statement */
- #line 419 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-4].minor.yy322, NULL, NULL, yymsp[0].minor.yy233); }
- #line 3624 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 189: /* for_details ::= LPAREN expression SEMICOLON SEMICOLON expression RPAREN statement */
- #line 420 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-5].minor.yy322, NULL, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3629 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 190: /* for_details ::= LPAREN expression SEMICOLON expression SEMICOLON RPAREN statement */
- #line 421 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, NULL, yymsp[-5].minor.yy322, yymsp[-3].minor.yy322, NULL, yymsp[0].minor.yy233); }
- #line 3634 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 191: /* for_details ::= LPAREN variable_declaration expression SEMICOLON expression RPAREN statement */
- #line 422 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, yymsp[-5].minor.yy24, NULL, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3639 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 192: /* for_details ::= LPAREN variable_declaration SEMICOLON RPAREN statement */
- #line 423 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, yymsp[-3].minor.yy24, NULL, NULL, NULL, yymsp[0].minor.yy233); }
- #line 3644 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 193: /* for_details ::= LPAREN variable_declaration SEMICOLON expression RPAREN statement */
- #line 424 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, yymsp[-4].minor.yy24, NULL, yymsp[-2].minor.yy322, NULL, yymsp[0].minor.yy233); }
- #line 3649 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 194: /* for_details ::= LPAREN variable_declaration expression SEMICOLON RPAREN statement */
- #line 425 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy233 = new_for_statement(ctx, yymsp[-4].minor.yy24, NULL, yymsp[-3].minor.yy322, NULL, yymsp[0].minor.yy233); }
- #line 3654 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 195: /* do_intro ::= LBRACKET UNROLL LPAREN INT_CONSTANT RPAREN RBRACKET DO */
- #line 428 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = (yymsp[-3].minor.yy0.i64 < 0) ? 0 : (int) yymsp[-3].minor.yy0.i64; }
- #line 3659 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 199: /* if_intro ::= LBRACKET BRANCH RBRACKET IF */
- #line 434 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_BRANCH; }
- #line 3664 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 200: /* if_intro ::= LBRACKET FLATTEN RBRACKET IF */
- #line 435 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_FLATTEN; }
- #line 3669 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 201: /* if_intro ::= LBRACKET IFALL RBRACKET IF */
- #line 436 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_IFALL; }
- #line 3674 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 202: /* if_intro ::= LBRACKET IFANY RBRACKET IF */
- #line 437 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_IFANY; }
- #line 3679 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 203: /* if_intro ::= LBRACKET PREDICATE RBRACKET IF */
- #line 438 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_PREDICATE; }
- #line 3684 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 204: /* if_intro ::= LBRACKET PREDICATEBLOCK RBRACKET IF */
- #line 439 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_PREDICATEBLOCK; }
- #line 3689 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 205: /* if_intro ::= IF */
- #line 440 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_IFATTR_NONE; }
- #line 3694 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 206: /* switch_intro ::= LBRACKET FLATTEN RBRACKET SWITCH */
- #line 443 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_FLATTEN; }
- #line 3699 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 207: /* switch_intro ::= LBRACKET BRANCH RBRACKET SWITCH */
- #line 444 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_BRANCH; }
- #line 3704 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 208: /* switch_intro ::= LBRACKET FORCECASE RBRACKET SWITCH */
- #line 445 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_FORCECASE; }
- #line 3709 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 209: /* switch_intro ::= LBRACKET CALL RBRACKET SWITCH */
- #line 446 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_CALL; }
- #line 3714 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 210: /* switch_intro ::= SWITCH */
- #line 447 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy270 = MOJOSHADER_AST_SWITCHATTR_NONE; }
- #line 3719 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 211: /* switch_case_list ::= switch_case */
- #line 451 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy165 = yymsp[0].minor.yy165; }
- #line 3724 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 212: /* switch_case_list ::= switch_case_list switch_case */
- #line 452 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy165 = yymsp[0].minor.yy165; yygotominor.yy165->next = yymsp[-1].minor.yy165; }
- #line 3729 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 213: /* switch_case ::= CASE expression COLON statement_list */
- #line 458 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, yymsp[0].minor.yy233); yygotominor.yy165 = new_switch_case(ctx, yymsp[-2].minor.yy322, yymsp[0].minor.yy233); }
- #line 3734 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 214: /* switch_case ::= CASE expression COLON */
- #line 459 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy165 = new_switch_case(ctx, yymsp[-1].minor.yy322, NULL); }
- #line 3739 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 215: /* switch_case ::= DEFAULT COLON statement_list */
- #line 460 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, yymsp[0].minor.yy233); yygotominor.yy165 = new_switch_case(ctx, NULL, yymsp[0].minor.yy233); }
- #line 3744 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 216: /* switch_case ::= DEFAULT COLON */
- #line 461 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy165 = new_switch_case(ctx, NULL, NULL); }
- #line 3749 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 217: /* primary_expr ::= IDENTIFIER */
- #line 466 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_identifier_expr(ctx, yymsp[0].minor.yy0.string); }
- #line 3754 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 218: /* primary_expr ::= INT_CONSTANT */
- #line 467 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_literal_int_expr(ctx, yymsp[0].minor.yy0.i64); }
- #line 3759 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 219: /* primary_expr ::= FLOAT_CONSTANT */
- #line 468 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_literal_float_expr(ctx, yymsp[0].minor.yy0.dbl); }
- #line 3764 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 220: /* primary_expr ::= STRING_LITERAL */
- #line 469 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_literal_string_expr(ctx, yymsp[0].minor.yy0.string); }
- #line 3769 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 221: /* primary_expr ::= TRUE */
- #line 470 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_literal_boolean_expr(ctx, 1); }
- #line 3774 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 222: /* primary_expr ::= FALSE */
- #line 471 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_literal_boolean_expr(ctx, 0); }
- #line 3779 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 225: /* postfix_expr ::= postfix_expr LBRACKET expression RBRACKET */
- #line 477 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_DEREF_ARRAY, yymsp[-3].minor.yy322, yymsp[-1].minor.yy322); }
- #line 3784 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 226: /* postfix_expr ::= IDENTIFIER arguments */
- #line 478 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_callfunc_expr(ctx, yymsp[-1].minor.yy0.string, yymsp[0].minor.yy26); }
- #line 3789 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 227: /* postfix_expr ::= datatype arguments */
- #line 479 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_constructor_expr(ctx, yymsp[-1].minor.yy37, yymsp[0].minor.yy26); }
- #line 3794 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 228: /* postfix_expr ::= postfix_expr DOT IDENTIFIER */
- #line 480 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_deref_struct_expr(ctx, yymsp[-2].minor.yy322, yymsp[0].minor.yy0.string); }
- #line 3799 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 229: /* postfix_expr ::= postfix_expr PLUSPLUS */
- #line 481 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_POSTINCREMENT, yymsp[-1].minor.yy322); }
- #line 3804 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 230: /* postfix_expr ::= postfix_expr MINUSMINUS */
- #line 482 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_POSTDECREMENT, yymsp[-1].minor.yy322); }
- #line 3809 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 231: /* arguments ::= LPAREN RPAREN */
- #line 486 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy26 = NULL; }
- #line 3814 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 232: /* arguments ::= LPAREN argument_list RPAREN */
- #line 487 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { REVERSE_LINKED_LIST(MOJOSHADER_astArguments, yymsp[-1].minor.yy26); yygotominor.yy26 = yymsp[-1].minor.yy26; }
- #line 3819 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 233: /* argument_list ::= assignment_expr */
- #line 491 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy26 = new_argument(ctx, yymsp[0].minor.yy322); }
- #line 3824 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 234: /* argument_list ::= argument_list COMMA assignment_expr */
- #line 492 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy26 = new_argument(ctx, yymsp[0].minor.yy322); yygotominor.yy26->next = yymsp[-2].minor.yy26; }
- #line 3829 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 236: /* unary_expr ::= PLUSPLUS unary_expr */
- #line 497 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_PREINCREMENT, yymsp[0].minor.yy322); }
- #line 3834 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 237: /* unary_expr ::= MINUSMINUS unary_expr */
- #line 498 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_PREDECREMENT, yymsp[0].minor.yy322); }
- #line 3839 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 239: /* unary_expr ::= MINUS cast_expr */
- #line 500 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_NEGATE, yymsp[0].minor.yy322); }
- #line 3844 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 240: /* unary_expr ::= COMPLEMENT cast_expr */
- #line 501 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_COMPLEMENT, yymsp[0].minor.yy322); }
- #line 3849 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 241: /* unary_expr ::= EXCLAMATION cast_expr */
- #line 502 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_unary_expr(ctx, MOJOSHADER_AST_OP_NOT, yymsp[0].minor.yy322); }
- #line 3854 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 243: /* cast_expr ::= LPAREN datatype RPAREN cast_expr */
- #line 507 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_cast_expr(ctx, yymsp[-2].minor.yy37, yymsp[0].minor.yy322); }
- #line 3859 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 245: /* multiplicative_expr ::= multiplicative_expr STAR cast_expr */
- #line 512 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MULTIPLY, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3864 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 246: /* multiplicative_expr ::= multiplicative_expr SLASH cast_expr */
- #line 513 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_DIVIDE, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3869 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 247: /* multiplicative_expr ::= multiplicative_expr PERCENT cast_expr */
- #line 514 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MODULO, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3874 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 249: /* additive_expr ::= additive_expr PLUS multiplicative_expr */
- #line 519 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ADD, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3879 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 250: /* additive_expr ::= additive_expr MINUS multiplicative_expr */
- #line 520 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_SUBTRACT, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3884 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 252: /* shift_expr ::= shift_expr LSHIFT additive_expr */
- #line 525 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LSHIFT, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3889 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 253: /* shift_expr ::= shift_expr RSHIFT additive_expr */
- #line 526 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_RSHIFT, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3894 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 255: /* relational_expr ::= relational_expr LT shift_expr */
- #line 531 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LESSTHAN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3899 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 256: /* relational_expr ::= relational_expr GT shift_expr */
- #line 532 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_GREATERTHAN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3904 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 257: /* relational_expr ::= relational_expr LEQ shift_expr */
- #line 533 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LESSTHANOREQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3909 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 258: /* relational_expr ::= relational_expr GEQ shift_expr */
- #line 534 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_GREATERTHANOREQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3914 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 260: /* equality_expr ::= equality_expr EQL relational_expr */
- #line 539 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_EQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3919 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 261: /* equality_expr ::= equality_expr NEQ relational_expr */
- #line 540 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_NOTEQUAL, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3924 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 263: /* and_expr ::= and_expr AND equality_expr */
- #line 545 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYAND, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3929 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 265: /* exclusive_or_expr ::= exclusive_or_expr XOR and_expr */
- #line 550 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYXOR, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3934 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 267: /* inclusive_or_expr ::= inclusive_or_expr OR exclusive_or_expr */
- #line 555 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYOR, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3939 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 269: /* logical_and_expr ::= logical_and_expr ANDAND inclusive_or_expr */
- #line 560 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LOGICALAND, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3944 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 271: /* logical_or_expr ::= logical_or_expr OROR logical_and_expr */
- #line 565 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LOGICALOR, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3949 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 273: /* conditional_expr ::= logical_or_expr QUESTION logical_or_expr COLON conditional_expr */
- #line 570 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_ternary_expr(ctx, MOJOSHADER_AST_OP_CONDITIONAL, yymsp[-4].minor.yy322, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3954 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 275: /* assignment_expr ::= unary_expr ASSIGN assignment_expr */
- #line 575 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3959 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 276: /* assignment_expr ::= unary_expr MULASSIGN assignment_expr */
- #line 576 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MULASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3964 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 277: /* assignment_expr ::= unary_expr DIVASSIGN assignment_expr */
- #line 577 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_DIVASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3969 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 278: /* assignment_expr ::= unary_expr MODASSIGN assignment_expr */
- #line 578 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_MODASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3974 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 279: /* assignment_expr ::= unary_expr ADDASSIGN assignment_expr */
- #line 579 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ADDASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3979 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 280: /* assignment_expr ::= unary_expr SUBASSIGN assignment_expr */
- #line 580 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_SUBASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3984 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 281: /* assignment_expr ::= unary_expr LSHIFTASSIGN assignment_expr */
- #line 581 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_LSHIFTASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3989 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 282: /* assignment_expr ::= unary_expr RSHIFTASSIGN assignment_expr */
- #line 582 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_RSHIFTASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3994 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 283: /* assignment_expr ::= unary_expr ANDASSIGN assignment_expr */
- #line 583 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ANDASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 3999 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 284: /* assignment_expr ::= unary_expr XORASSIGN assignment_expr */
- #line 584 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_XORASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 4004 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- case 285: /* assignment_expr ::= unary_expr ORASSIGN assignment_expr */
- #line 585 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- { yygotominor.yy322 = new_binary_expr(ctx, MOJOSHADER_AST_OP_ORASSIGN, yymsp[-2].minor.yy322, yymsp[0].minor.yy322); }
- #line 4009 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- break;
- default:
- break;
- };
- yygoto = yyRuleInfo[yyruleno].lhs;
- yysize = yyRuleInfo[yyruleno].nrhs;
- yypParser->yyidx -= yysize;
- yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto);
- if( yyact < YYNSTATE ){
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- /* If we are not debugging and the reduce action popped at least
- ** one element off the stack, then we can push the new element back
- ** onto the stack here, and skip the stack overflow test in yy_shift().
- ** That gives a significant speed improvement. */
- if( yysize ){
- yypParser->yyidx++;
- yymsp -= yysize-1;
- yymsp->stateno = (YYACTIONTYPE)yyact;
- yymsp->major = (YYCODETYPE)yygoto;
- yymsp->minor = yygotominor;
- }else
- #endif
- {
- yy_shift(yypParser,yyact,yygoto,&yygotominor);
- }
- }else{
- assert( yyact == YYNSTATE + YYNRULE + 1 );
- yy_accept(yypParser);
- }
- }
- /*
- ** The following code executes when the parse fails
- */
- #ifndef YYNOERRORRECOVERY
- static void yy_parse_failed(
- yyParser *yypParser /* The parser */
- ){
- ParseHLSLARG_FETCH;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt);
- }
- #endif
- while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
- /* Here code is inserted which will be executed whenever the
- ** parser fails */
- #line 42 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- // !!! FIXME: make this a proper fail() function.
- fail(ctx, "Giving up. Parser is hopelessly lost...");
- #line 4061 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument variable */
- }
- #endif /* YYNOERRORRECOVERY */
- /*
- ** The following code executes when a syntax error first occurs.
- */
- static void yy_syntax_error(
- yyParser *yypParser, /* The parser */
- int yymajor, /* The major type of the error token */
- YYMINORTYPE yyminor /* The minor type of the error token */
- ){
- ParseHLSLARG_FETCH;
- #define TOKEN (yyminor.yy0)
- #line 37 "D:/dev/mojoshader/mojoshader_parser_hlsl.lemon"
- // !!! FIXME: make this a proper fail() function.
- fail(ctx, "Syntax error");
- #line 4080 "D:/dev/mojoshader/mojoshader_parser_hlsl.h"
- ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument variable */
- }
- /*
- ** The following is executed when the parser accepts
- */
- static void yy_accept(
- yyParser *yypParser /* The parser */
- ){
- ParseHLSLARG_FETCH;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt);
- }
- #endif
- while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
- /* Here code is inserted which will be executed whenever the
- ** parser accepts */
- ParseHLSLARG_STORE; /* Suppress warning about unused %extra_argument variable */
- }
- /* The main parser program.
- ** The first argument is a pointer to a structure obtained from
- ** "ParseHLSLAlloc" which describes the current state of the parser.
- ** The second argument is the major token number. The third is
- ** the minor token. The fourth optional argument is whatever the
- ** user wants (and specified in the grammar) and is available for
- ** use by the action routines.
- **
- ** Inputs:
- ** <ul>
- ** <li> A pointer to the parser (an opaque structure.)
- ** <li> The major token number.
- ** <li> The minor token number.
- ** <li> An option argument of a grammar-specified type.
- ** </ul>
- **
- ** Outputs:
- ** None.
- */
- #if __MOJOSHADER__
- static
- #endif
- void ParseHLSL(
- void *yyp, /* The parser */
- int yymajor, /* The major token code number */
- ParseHLSLTOKENTYPE yyminor /* The value for the token */
- ParseHLSLARG_PDECL /* Optional %extra_argument parameter */
- ){
- YYMINORTYPE yyminorunion;
- int yyact; /* The parser action. */
- int yyendofinput; /* True if we are at the end of input */
- #ifdef YYERRORSYMBOL
- int yyerrorhit = 0; /* True if yymajor has invoked an error */
- #endif
- yyParser *yypParser; /* The parser */
- /* (re)initialize the parser, if necessary */
- yypParser = (yyParser*)yyp;
- if( yypParser->yyidx<0 ){
- #if YYSTACKDEPTH<=0
- if( yypParser->yystksz <=0 ){
- /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/
- yyminorunion = yyzerominor;
- yyStackOverflow(yypParser, &yyminorunion);
- return;
- }
- #endif
- yypParser->yyidx = 0;
- yypParser->yyerrcnt = -1;
- yypParser->yystack[0].stateno = 0;
- yypParser->yystack[0].major = 0;
- }
- yyminorunion.yy0 = yyminor;
- yyendofinput = (yymajor==0);
- ParseHLSLARG_STORE;
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]);
- }
- #endif
- do{
- yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor);
- if( yyact<YYNSTATE ){
- assert( !yyendofinput ); /* Impossible to shift the $ token */
- yy_shift(yypParser,yyact,yymajor,&yyminorunion);
- yypParser->yyerrcnt--;
- yymajor = YYNOCODE;
- }else if( yyact < YYNSTATE + YYNRULE ){
- yy_reduce(yypParser,yyact-YYNSTATE);
- }else{
- assert( yyact == YY_ERROR_ACTION );
- #ifdef YYERRORSYMBOL
- int yymx;
- #endif
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt);
- }
- #endif
- #ifdef YYERRORSYMBOL
- /* A syntax error has occurred.
- ** The response to an error depends upon whether or not the
- ** grammar defines an error token "ERROR".
- **
- ** This is what we do if the grammar does define ERROR:
- **
- ** * Call the %syntax_error function.
- **
- ** * Begin popping the stack until we enter a state where
- ** it is legal to shift the error symbol, then shift
- ** the error symbol.
- **
- ** * Set the error count to three.
- **
- ** * Begin accepting and shifting new tokens. No new error
- ** processing will occur until three tokens have been
- ** shifted successfully.
- **
- */
- if( yypParser->yyerrcnt<0 ){
- yy_syntax_error(yypParser,yymajor,yyminorunion);
- }
- yymx = yypParser->yystack[yypParser->yyidx].major;
- if( yymx==YYERRORSYMBOL || yyerrorhit ){
- #if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */
- if( yyTraceFILE ){
- fprintf(yyTraceFILE,"%sDiscard input token %s\n",
- yyTracePrompt,yyTokenName[yymajor]);
- }
- #endif
- yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion);
- yymajor = YYNOCODE;
- }else{
- while(
- yypParser->yyidx >= 0 &&
- yymx != YYERRORSYMBOL &&
- (yyact = yy_find_reduce_action(
- yypParser->yystack[yypParser->yyidx].stateno,
- YYERRORSYMBOL)) >= YYNSTATE
- ){
- yy_pop_parser_stack(yypParser);
- }
- if( yypParser->yyidx < 0 || yymajor==0 ){
- yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
- yy_parse_failed(yypParser);
- yymajor = YYNOCODE;
- }else if( yymx!=YYERRORSYMBOL ){
- YYMINORTYPE u2;
- u2.YYERRSYMDT = 0;
- yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2);
- }
- }
- yypParser->yyerrcnt = 3;
- yyerrorhit = 1;
- #elif defined(YYNOERRORRECOVERY)
- /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to
- ** do any kind of error recovery. Instead, simply invoke the syntax
- ** error routine and continue going as if nothing had happened.
- **
- ** Applications can set this macro (for example inside %include) if
- ** they intend to abandon the parse upon the first syntax error seen.
- */
- yy_syntax_error(yypParser,yymajor,yyminorunion);
- yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
- yymajor = YYNOCODE;
-
- #else /* YYERRORSYMBOL is not defined */
- /* This is what we do if the grammar does not define ERROR:
- **
- ** * Report an error message, and throw away the input token.
- **
- ** * If the input token is $, then fail the parse.
- **
- ** As before, subsequent error messages are suppressed until
- ** three input tokens have been successfully shifted.
- */
- if( yypParser->yyerrcnt<=0 ){
- yy_syntax_error(yypParser,yymajor,yyminorunion);
- }
- yypParser->yyerrcnt = 3;
- yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion);
- if( yyendofinput ){
- yy_parse_failed(yypParser);
- }
- yymajor = YYNOCODE;
- #endif
- }
- }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 );
- return;
- }
|