| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527 |
- /* A Bison parser, made by GNU Bison 2.7. */
- /* Skeleton implementation for Bison GLR parsers in C
-
- Copyright (C) 2002-2012 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
- /* As a special exception, you may create a larger work that contains
- part or all of the Bison parser skeleton and distribute that work
- under terms of your choice, so long as that work isn't itself a
- parser generator using the skeleton or a modified version thereof
- as a parser skeleton. Alternatively, if you modify or redistribute
- the parser skeleton itself, you may (at your option) remove this
- special exception, which will cause the skeleton and the resulting
- Bison output files to be licensed under the GNU General Public
- License without this special exception.
-
- This special exception was added by the Free Software Foundation in
- version 2.2 of Bison. */
- /* C GLR parser skeleton written by Paul Hilfinger. */
- /* Identify Bison output. */
- #define YYBISON 1
- /* Bison version. */
- #define YYBISON_VERSION "2.7"
- /* Skeleton name. */
- #define YYSKELETON_NAME "glr.c"
- /* Pure parsers. */
- #define YYPURE 1
- /* Copy the first part of user declarations. */
- /* Line 207 of glr.c */
- #line 1 "BsParserFX.y"
- #include "BsParserFX.h"
- #include "BsLexerFX.h"
- #define inline
- void yyerror(YYLTYPE *locp, ParseState* parse_state, yyscan_t scanner, const char *msg);
- /* Line 207 of glr.c */
- #line 64 "BsParserFX.c"
- # ifndef YY_NULL
- # if defined __cplusplus && 201103L <= __cplusplus
- # define YY_NULL nullptr
- # else
- # define YY_NULL 0
- # endif
- # endif
- #include "BsParserFX.h"
- /* Enabling verbose error messages. */
- #ifdef YYERROR_VERBOSE
- # undef YYERROR_VERBOSE
- # define YYERROR_VERBOSE 1
- #else
- # define YYERROR_VERBOSE 0
- #endif
- /* Default (constant) value used for initialization for null
- right-hand sides. Unlike the standard yacc.c template, here we set
- the default value of $$ to a zeroed-out value. Since the default
- value is undefined, this behavior is technically correct. */
- static YYSTYPE yyval_default;
- static YYLTYPE yyloc_default
- # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
- = { 1, 1, 1, 1 }
- # endif
- ;
- /* Copy the second part of user declarations. */
- /* Line 230 of glr.c */
- #line 98 "BsParserFX.c"
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #ifndef YY_
- # if defined YYENABLE_NLS && YYENABLE_NLS
- # if ENABLE_NLS
- # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
- # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
- # endif
- # endif
- # ifndef YY_
- # define YY_(Msgid) Msgid
- # endif
- #endif
- /* Suppress unused-variable warnings by "using" E. */
- #if ! defined lint || defined __GNUC__
- # define YYUSE(E) ((void) (E))
- #else
- # define YYUSE(E) /* empty */
- #endif
- /* Identity function, used to suppress warnings about constant conditions. */
- #ifndef lint
- # define YYID(N) (N)
- #else
- #if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- static int
- YYID (int i)
- #else
- static int
- YYID (i)
- int i;
- #endif
- {
- return i;
- }
- #endif
- #ifndef YYFREE
- # define YYFREE free
- #endif
- #ifndef YYMALLOC
- # define YYMALLOC malloc
- #endif
- #ifndef YYREALLOC
- # define YYREALLOC realloc
- #endif
- #define YYSIZEMAX ((size_t) -1)
- #ifdef __cplusplus
- typedef bool yybool;
- #else
- typedef unsigned char yybool;
- #endif
- #define yytrue 1
- #define yyfalse 0
- #ifndef YYSETJMP
- # include <setjmp.h>
- # define YYJMP_BUF jmp_buf
- # define YYSETJMP(Env) setjmp (Env)
- /* Pacify clang. */
- # define YYLONGJMP(Env, Val) (longjmp (Env, Val), YYASSERT (0))
- #endif
- /*-----------------.
- | GCC extensions. |
- `-----------------*/
- #ifndef __attribute__
- /* This feature is available in gcc versions 2.5 and later. */
- # if (! defined __GNUC__ || __GNUC__ < 2 \
- || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
- # define __attribute__(Spec) /* empty */
- # endif
- #endif
- #ifndef YYASSERT
- # define YYASSERT(Condition) ((void) ((Condition) || (abort (), 0)))
- #endif
- /* YYFINAL -- State number of the termination state. */
- #define YYFINAL 26
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 627
- /* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 121
- /* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 84
- /* YYNRULES -- Number of rules. */
- #define YYNRULES 201
- /* YYNRULES -- Number of states. */
- #define YYNSTATES 648
- /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
- #define YYMAXRHS 33
- /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
- accessed by $0, $-1, etc., in any rule. */
- #define YYMAXLEFT 0
- /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 367
- #define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
- static const unsigned char yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 119, 120, 2, 2, 117, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 118, 114,
- 2, 113, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 115, 2, 116, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
- 105, 106, 107, 108, 109, 110, 111, 112
- };
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
- static const unsigned short int yyprhs[] =
- {
- 0, 0, 3, 4, 7, 9, 11, 13, 15, 20,
- 25, 30, 35, 40, 46, 49, 50, 53, 55, 57,
- 59, 61, 66, 71, 77, 80, 81, 84, 86, 88,
- 93, 98, 103, 108, 113, 118, 123, 128, 133, 138,
- 143, 148, 153, 158, 163, 169, 175, 181, 187, 192,
- 197, 199, 204, 213, 216, 219, 222, 225, 228, 231,
- 234, 237, 240, 248, 249, 252, 257, 262, 267, 272,
- 278, 281, 282, 285, 287, 292, 297, 303, 309, 315,
- 321, 326, 329, 332, 333, 336, 342, 347, 352, 357,
- 358, 361, 363, 368, 373, 378, 383, 388, 393, 398,
- 403, 408, 414, 420, 423, 429, 430, 433, 438, 443,
- 448, 454, 462, 472, 486, 504, 524, 550, 584, 590,
- 593, 594, 597, 602, 607, 612, 617, 622, 627, 632,
- 637, 642, 647, 652, 657, 662, 667, 671, 675, 678,
- 681, 684, 687, 690, 693, 696, 699, 702, 705, 708,
- 711, 714, 717, 720, 723, 726, 729, 732, 735, 738,
- 741, 744, 747, 750, 753, 756, 759, 762, 765, 768,
- 771, 772, 775, 776, 779, 780, 783, 784, 787, 788,
- 791, 792, 795, 796, 799, 800, 803, 804, 807, 808,
- 813, 819, 822, 823, 826, 830, 833, 834, 837, 843,
- 849, 855
- };
- /* YYRHS -- A `-1'-separated list of the rules' RHS. */
- static const short int yyrhs[] =
- {
- 122, 0, -1, -1, 123, 122, -1, 124, -1, 125,
- -1, 167, -1, 198, -1, 53, 113, 5, 114, -1,
- 54, 113, 3, 114, -1, 55, 113, 3, 114, -1,
- 62, 113, 6, 114, -1, 56, 113, 5, 114, -1,
- 126, 115, 127, 116, 114, -1, 59, 113, -1, -1,
- 128, 127, -1, 129, -1, 130, -1, 134, -1, 135,
- -1, 60, 113, 6, 114, -1, 61, 113, 6, 114,
- -1, 131, 115, 132, 116, 114, -1, 63, 113, -1,
- -1, 133, 132, -1, 134, -1, 135, -1, 93, 113,
- 3, 114, -1, 72, 113, 8, 114, -1, 73, 113,
- 9, 114, -1, 74, 113, 4, 114, -1, 75, 113,
- 4, 114, -1, 76, 113, 5, 114, -1, 77, 113,
- 5, 114, -1, 78, 113, 5, 114, -1, 79, 113,
- 5, 114, -1, 80, 113, 5, 114, -1, 81, 113,
- 5, 114, -1, 82, 113, 10, 114, -1, 83, 113,
- 5, 114, -1, 84, 113, 3, 114, -1, 85, 113,
- 3, 114, -1, 137, 115, 140, 116, 114, -1, 138,
- 115, 140, 116, 114, -1, 137, 115, 139, 116, 114,
- -1, 138, 115, 139, 116, 114, -1, 90, 113, 5,
- 114, -1, 91, 113, 5, 114, -1, 142, -1, 71,
- 113, 3, 114, -1, 136, 115, 93, 113, 3, 114,
- 116, 114, -1, 64, 113, -1, 65, 113, -1, 66,
- 113, -1, 67, 113, -1, 68, 113, -1, 69, 113,
- -1, 70, 113, -1, 86, 113, -1, 87, 113, -1,
- 11, 117, 11, 117, 11, 117, 10, -1, -1, 141,
- 140, -1, 88, 113, 11, 114, -1, 89, 113, 11,
- 114, -1, 63, 113, 11, 114, -1, 82, 113, 10,
- 114, -1, 143, 115, 144, 116, 114, -1, 92, 113,
- -1, -1, 145, 144, -1, 146, -1, 93, 113, 3,
- 114, -1, 94, 113, 5, 114, -1, 147, 115, 149,
- 116, 114, -1, 148, 115, 149, 116, 114, -1, 147,
- 115, 150, 116, 114, -1, 148, 115, 150, 116, 114,
- -1, 97, 113, 12, 114, -1, 95, 113, -1, 96,
- 113, -1, -1, 151, 149, -1, 11, 117, 11, 117,
- 15, -1, 98, 113, 11, 114, -1, 99, 113, 11,
- 114, -1, 100, 113, 15, 114, -1, -1, 153, 152,
- -1, 154, -1, 102, 113, 14, 114, -1, 103, 113,
- 14, 114, -1, 104, 113, 14, 114, -1, 105, 113,
- 3, 114, -1, 106, 113, 4, 114, -1, 107, 113,
- 4, 114, -1, 108, 113, 4, 114, -1, 109, 113,
- 161, 114, -1, 82, 113, 10, 114, -1, 155, 115,
- 157, 116, 114, -1, 155, 115, 156, 116, 114, -1,
- 101, 113, -1, 13, 117, 13, 117, 13, -1, -1,
- 158, 157, -1, 110, 113, 13, 114, -1, 111, 113,
- 13, 114, -1, 112, 113, 13, 114, -1, 115, 4,
- 117, 4, 116, -1, 115, 4, 117, 4, 117, 4,
- 116, -1, 115, 4, 117, 4, 117, 4, 117, 4,
- 116, -1, 115, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 117, 4, 116, -1, 115, 4, 117, 4,
- 117, 4, 117, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 116, -1, 115, 4, 117, 4, 117, 4,
- 117, 4, 117, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 116, -1, 115, 4, 117, 4, 117, 4,
- 117, 4, 117, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 117, 4, 117, 4, 117, 4, 116, -1,
- 115, 4, 117, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 117, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 117, 4, 117, 4, 117, 4, 117, 4,
- 117, 4, 116, -1, 168, 115, 169, 116, 114, -1,
- 57, 113, -1, -1, 170, 169, -1, 171, 203, 188,
- 114, -1, 172, 203, 189, 114, -1, 173, 203, 190,
- 114, -1, 174, 203, 191, 114, -1, 175, 203, 191,
- 114, -1, 176, 203, 191, 114, -1, 177, 203, 192,
- 114, -1, 178, 203, 193, 114, -1, 179, 203, 192,
- 114, -1, 180, 203, 194, 114, -1, 181, 203, 195,
- 114, -1, 182, 203, 193, 114, -1, 183, 203, 195,
- 114, -1, 184, 203, 196, 114, -1, 186, 203, 114,
- -1, 187, 197, 114, -1, 17, 7, -1, 18, 7,
- -1, 19, 7, -1, 20, 7, -1, 21, 7, -1,
- 22, 7, -1, 23, 7, -1, 24, 7, -1, 25,
- 7, -1, 26, 7, -1, 27, 7, -1, 28, 7,
- -1, 29, 7, -1, 30, 7, -1, 31, 7, -1,
- 32, 7, -1, 33, 7, -1, 34, 7, -1, 35,
- 7, -1, 36, 7, -1, 37, 7, -1, 38, 7,
- -1, 39, 7, -1, 40, 7, -1, 41, 7, -1,
- 42, 7, -1, 43, 7, -1, 44, 7, -1, 45,
- 7, -1, 46, 7, -1, 47, 7, -1, 185, 203,
- -1, -1, 113, 4, -1, -1, 113, 159, -1, -1,
- 113, 160, -1, -1, 113, 161, -1, -1, 113, 162,
- -1, -1, 113, 163, -1, -1, 113, 164, -1, -1,
- 113, 165, -1, -1, 113, 166, -1, -1, 113, 115,
- 152, 116, -1, 199, 115, 200, 116, 114, -1, 58,
- 113, -1, -1, 201, 200, -1, 202, 203, 114, -1,
- 48, 7, -1, -1, 204, 203, -1, 118, 50, 119,
- 6, 120, -1, 118, 49, 119, 6, 120, -1, 118,
- 51, 119, 5, 120, -1, 118, 52, 119, 16, 120,
- -1
- };
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
- static const unsigned short int yyrline[] =
- {
- 0, 231, 231, 232, 236, 237, 238, 239, 243, 244,
- 245, 246, 247, 253, 257, 264, 266, 270, 271, 272,
- 273, 277, 278, 284, 288, 295, 297, 301, 302, 306,
- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
- 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
- 327, 328, 334, 348, 353, 358, 363, 368, 373, 378,
- 388, 396, 404, 418, 420, 424, 425, 426, 427, 432,
- 436, 443, 445, 449, 453, 454, 455, 456, 457, 458,
- 459, 464, 472, 479, 481, 485, 498, 499, 500, 505,
- 507, 511, 512, 513, 514, 515, 516, 517, 518, 519,
- 520, 525, 526, 530, 538, 550, 552, 556, 557, 558,
- 563, 567, 571, 575, 584, 595, 606, 617, 631, 635,
- 642, 644, 648, 649, 650, 651, 652, 653, 654, 655,
- 656, 657, 658, 659, 660, 661, 662, 663, 679, 683,
- 687, 691, 695, 699, 703, 707, 711, 715, 719, 723,
- 727, 731, 735, 736, 737, 738, 739, 743, 744, 745,
- 746, 747, 748, 749, 750, 751, 752, 753, 754, 758,
- 766, 767, 771, 772, 776, 777, 781, 782, 786, 787,
- 791, 792, 796, 797, 801, 802, 806, 807, 811, 812,
- 817, 821, 828, 830, 834, 838, 852, 854, 858, 859,
- 860, 861
- };
- #endif
- #if YYDEBUG || YYERROR_VERBOSE || 0
- /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "TOKEN_INTEGER", "TOKEN_FLOAT",
- "TOKEN_BOOLEAN", "TOKEN_STRING", "TOKEN_IDENTIFIER",
- "TOKEN_FILLMODEVALUE", "TOKEN_CULLMODEVALUE", "TOKEN_COMPFUNCVALUE",
- "TOKEN_OPVALUE", "TOKEN_COLORMASK", "TOKEN_ADDRMODEVALUE",
- "TOKEN_FILTERVALUE", "TOKEN_BLENDOPVALUE", "TOKEN_BUFFERUSAGE",
- "TOKEN_FLOATTYPE", "TOKEN_FLOAT2TYPE", "TOKEN_FLOAT3TYPE",
- "TOKEN_FLOAT4TYPE", "TOKEN_COLORTYPE", "TOKEN_MAT2x2TYPE",
- "TOKEN_MAT2x3TYPE", "TOKEN_MAT2x4TYPE", "TOKEN_MAT3x2TYPE",
- "TOKEN_MAT3x3TYPE", "TOKEN_MAT3x4TYPE", "TOKEN_MAT4x2TYPE",
- "TOKEN_MAT4x3TYPE", "TOKEN_MAT4x4TYPE", "TOKEN_SAMPLER1D",
- "TOKEN_SAMPLER2D", "TOKEN_SAMPLER3D", "TOKEN_SAMPLERCUBE",
- "TOKEN_SAMPLER2DMS", "TOKEN_TEXTURE1D", "TOKEN_TEXTURE2D",
- "TOKEN_TEXTURE3D", "TOKEN_TEXTURECUBE", "TOKEN_TEXTURE2DMS",
- "TOKEN_BYTEBUFFER", "TOKEN_STRUCTBUFFER", "TOKEN_RWTYPEDBUFFER",
- "TOKEN_RWBYTEBUFFER", "TOKEN_RWSTRUCTBUFFER", "TOKEN_RWAPPENDBUFFER",
- "TOKEN_RWCONSUMEBUFFER", "TOKEN_PARAMSBLOCK", "TOKEN_AUTO",
- "TOKEN_ALIAS", "TOKEN_SHARED", "TOKEN_USAGE", "TOKEN_SEPARABLE",
- "TOKEN_QUEUE", "TOKEN_PRIORITY", "TOKEN_TRANSPARENT", "TOKEN_PARAMETERS",
- "TOKEN_BLOCKS", "TOKEN_TECHNIQUE", "TOKEN_RENDERER", "TOKEN_LANGUAGE",
- "TOKEN_INCLUDE", "TOKEN_PASS", "TOKEN_VERTEX", "TOKEN_FRAGMENT",
- "TOKEN_GEOMETRY", "TOKEN_HULL", "TOKEN_DOMAIN", "TOKEN_COMPUTE",
- "TOKEN_COMMON", "TOKEN_STENCILREF", "TOKEN_FILLMODE", "TOKEN_CULLMODE",
- "TOKEN_DEPTHBIAS", "TOKEN_SDEPTHBIAS", "TOKEN_DEPTHCLIP",
- "TOKEN_SCISSOR", "TOKEN_MULTISAMPLE", "TOKEN_AALINE", "TOKEN_DEPTHREAD",
- "TOKEN_DEPTHWRITE", "TOKEN_COMPAREFUNC", "TOKEN_STENCIL",
- "TOKEN_STENCILREADMASK", "TOKEN_STENCILWRITEMASK",
- "TOKEN_STENCILOPFRONT", "TOKEN_STENCILOPBACK", "TOKEN_FAIL",
- "TOKEN_ZFAIL", "TOKEN_ALPHATOCOVERAGE", "TOKEN_INDEPENDANTBLEND",
- "TOKEN_TARGET", "TOKEN_INDEX", "TOKEN_BLEND", "TOKEN_COLOR",
- "TOKEN_ALPHA", "TOKEN_WRITEMASK", "TOKEN_SOURCE", "TOKEN_DEST",
- "TOKEN_OP", "TOKEN_ADDRMODE", "TOKEN_MINFILTER", "TOKEN_MAGFILTER",
- "TOKEN_MIPFILTER", "TOKEN_MAXANISO", "TOKEN_MIPBIAS", "TOKEN_MIPMIN",
- "TOKEN_MIPMAX", "TOKEN_BORDERCOLOR", "TOKEN_U", "TOKEN_V", "TOKEN_W",
- "'='", "';'", "'{'", "'}'", "','", "':'", "'('", "')'", "$accept",
- "shader", "shader_statement", "shader_option", "technique",
- "technique_header", "technique_body", "technique_statement",
- "technique_option", "pass", "pass_header", "pass_body", "pass_statement",
- "pass_option", "code", "code_header", "stencil_op_front_header",
- "stencil_op_back_header", "stencil_op_body_init", "stencil_op_body",
- "stencil_op_option", "target", "target_header", "target_body",
- "target_statement", "target_option", "blend_color_header",
- "blend_alpha_header", "blenddef_body", "blenddef_body_init",
- "blenddef_option", "sampler_state_body", "sampler_state_option",
- "addr_mode", "addr_mode_header", "addr_mode_body_init", "addr_mode_body",
- "addr_mode_option", "float2", "float3", "float4", "mat6", "mat8", "mat9",
- "mat12", "mat16", "parameters", "parameters_header", "parameters_body",
- "parameter", "param_header_float", "param_header_float2",
- "param_header_float3", "param_header_float4", "param_header_color",
- "param_header_mat2x2", "param_header_mat2x3", "param_header_mat2x4",
- "param_header_mat3x2", "param_header_mat3x3", "param_header_mat3x4",
- "param_header_mat4x2", "param_header_mat4x3", "param_header_mat4x4",
- "param_header_sampler", "param_header_generic",
- "param_header_qualified_sampler", "param_body_float",
- "param_body_float2", "param_body_float3", "param_body_float4",
- "param_body_mat6", "param_body_mat8", "param_body_mat9",
- "param_body_mat12", "param_body_mat16", "param_body_sampler", "blocks",
- "blocks_header", "blocks_body", "block", "block_header",
- "qualifier_list", "qualifier", YY_NULL
- };
- #endif
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
- static const unsigned char yyr1[] =
- {
- 0, 121, 122, 122, 123, 123, 123, 123, 124, 124,
- 124, 124, 124, 125, 126, 127, 127, 128, 128, 128,
- 128, 129, 129, 130, 131, 132, 132, 133, 133, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 134, 134, 134, 134, 134, 134, 134, 134,
- 134, 134, 135, 136, 136, 136, 136, 136, 136, 136,
- 137, 138, 139, 140, 140, 141, 141, 141, 141, 142,
- 143, 144, 144, 145, 146, 146, 146, 146, 146, 146,
- 146, 147, 148, 149, 149, 150, 151, 151, 151, 152,
- 152, 153, 153, 153, 153, 153, 153, 153, 153, 153,
- 153, 154, 154, 155, 156, 157, 157, 158, 158, 158,
- 159, 160, 161, 162, 163, 164, 165, 166, 167, 168,
- 169, 169, 170, 170, 170, 170, 170, 170, 170, 170,
- 170, 170, 170, 170, 170, 170, 170, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 185, 185, 185, 185, 186, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 186, 186, 187,
- 188, 188, 189, 189, 190, 190, 191, 191, 192, 192,
- 193, 193, 194, 194, 195, 195, 196, 196, 197, 197,
- 198, 199, 200, 200, 201, 202, 203, 203, 204, 204,
- 204, 204
- };
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
- static const unsigned char yyr2[] =
- {
- 0, 2, 0, 2, 1, 1, 1, 1, 4, 4,
- 4, 4, 4, 5, 2, 0, 2, 1, 1, 1,
- 1, 4, 4, 5, 2, 0, 2, 1, 1, 4,
- 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 5, 5, 5, 5, 4, 4,
- 1, 4, 8, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 7, 0, 2, 4, 4, 4, 4, 5,
- 2, 0, 2, 1, 4, 4, 5, 5, 5, 5,
- 4, 2, 2, 0, 2, 5, 4, 4, 4, 0,
- 2, 1, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 5, 5, 2, 5, 0, 2, 4, 4, 4,
- 5, 7, 9, 13, 17, 19, 25, 33, 5, 2,
- 0, 2, 4, 4, 4, 4, 4, 4, 4, 4,
- 4, 4, 4, 4, 4, 4, 3, 3, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 0, 2, 0, 2, 0, 2, 0, 2, 0, 2,
- 0, 2, 0, 2, 0, 2, 0, 2, 0, 4,
- 5, 2, 0, 2, 3, 2, 0, 2, 5, 5,
- 5, 5
- };
- /* YYDPREC[RULE-NUM] -- Dynamic precedence of rule #RULE-NUM (0 if none). */
- static const unsigned char yydprec[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0
- };
- /* YYMERGER[RULE-NUM] -- Index of merging function for rule #RULE-NUM. */
- static const unsigned char yymerger[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0
- };
- /* YYDEFACT[S] -- default reduction number in state S. Performed when
- YYTABLE doesn't specify something else to do. Zero means the default
- is an error. */
- static const unsigned char yydefact[] =
- {
- 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 2, 4, 5, 0, 6, 0, 7, 0, 0, 0,
- 0, 0, 119, 191, 14, 0, 1, 3, 15, 120,
- 192, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 15, 17,
- 18, 0, 19, 20, 0, 0, 0, 50, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 120, 196, 196, 196, 196, 196, 196, 196, 196,
- 196, 196, 196, 196, 196, 196, 196, 196, 188, 0,
- 0, 192, 196, 8, 9, 10, 12, 11, 0, 0,
- 24, 53, 54, 55, 56, 57, 58, 59, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 60, 61, 0, 0, 70, 0, 0,
- 16, 25, 0, 63, 63, 71, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
- 162, 163, 164, 165, 166, 167, 168, 0, 121, 0,
- 170, 196, 172, 174, 176, 176, 176, 178, 180, 178,
- 182, 184, 180, 184, 186, 169, 0, 0, 0, 195,
- 0, 193, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 13, 0, 25, 27, 28, 0, 0,
- 0, 0, 0, 0, 0, 0, 63, 0, 0, 0,
- 0, 0, 0, 0, 0, 71, 73, 0, 0, 118,
- 0, 0, 0, 0, 0, 0, 197, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 136, 89,
- 137, 190, 194, 21, 22, 51, 30, 31, 32, 33,
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 48, 49, 29, 0, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 64, 0, 0, 0, 0, 81, 82,
- 0, 0, 72, 83, 83, 0, 0, 0, 0, 171,
- 122, 0, 173, 123, 0, 175, 124, 0, 177, 125,
- 126, 127, 0, 179, 128, 0, 181, 129, 130, 0,
- 183, 131, 0, 185, 132, 133, 134, 0, 187, 135,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 89, 91, 0, 23, 0, 0, 0, 0, 0,
- 0, 46, 44, 47, 45, 0, 0, 0, 69, 0,
- 0, 0, 0, 0, 0, 83, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 103, 0, 0, 0, 0, 0, 0, 0, 0,
- 189, 90, 105, 0, 0, 67, 68, 65, 66, 74,
- 75, 80, 0, 0, 0, 0, 0, 0, 84, 0,
- 0, 199, 198, 200, 201, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
- 0, 0, 0, 0, 0, 76, 78, 77, 79, 0,
- 0, 0, 0, 0, 0, 0, 0, 100, 92, 93,
- 94, 95, 96, 97, 98, 99, 0, 0, 0, 0,
- 0, 0, 106, 52, 0, 0, 86, 87, 88, 110,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 102, 101, 62, 85, 0, 0, 0, 0, 0,
- 0, 0, 0, 107, 108, 109, 111, 0, 0, 0,
- 0, 0, 0, 104, 0, 0, 0, 0, 0, 0,
- 112, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 113, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 114, 0,
- 0, 0, 0, 0, 0, 115, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 116, 0,
- 0, 0, 0, 0, 0, 0, 0, 117
- };
- /* YYPDEFGOTO[NTERM-NUM]. */
- static const short int yydefgoto[] =
- {
- -1, 9, 10, 11, 12, 13, 67, 68, 69, 70,
- 71, 254, 255, 72, 73, 74, 75, 76, 264, 265,
- 266, 77, 78, 274, 275, 276, 277, 278, 423, 424,
- 425, 400, 401, 402, 403, 496, 497, 498, 362, 365,
- 368, 373, 376, 380, 383, 388, 14, 15, 110, 111,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 126, 127, 128, 285, 288, 290,
- 292, 296, 298, 301, 303, 307, 228, 16, 17, 130,
- 131, 132, 210, 211
- };
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -335
- static const short int yypact[] =
- {
- 10, -86, -43, -42, -33, -24, -23, -19, -18, 86,
- 10, -335, -335, 50, -335, 55, -335, 56, 87, 93,
- 169, 168, -335, -335, -335, 170, -335, -335, -32, 92,
- 126, 61, 63, 64, 65, 66, 68, 69, 79, 80,
- 81, 83, 84, 85, 88, 89, 90, 91, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 108, 109, 110, 111, 112, 113, -32, -335,
- -335, 115, -335, -335, 116, 117, 118, -335, 119, 188,
- 192, 193, 198, 199, 219, 220, 221, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 142, 92, 141, 141, 141, 141, 141, 141, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 141, 147, 254,
- 146, 126, 141, -335, -335, -335, -335, -335, 257, 258,
- -335, -335, -335, -335, -335, -335, -335, -335, 262, 259,
- 260, 264, 266, 261, 267, 268, 269, 270, 271, 272,
- 273, 274, 276, -335, -335, 275, 278, -335, 281, 157,
- -335, 76, 194, 19, 19, -71, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, 167, -335, 24,
- 172, 141, 173, 175, 176, 176, 176, 177, 178, 177,
- 179, 180, 178, 180, 181, -335, 182, 183, 185, -335,
- 186, -335, 187, 189, 190, 191, 195, 196, 197, 200,
- 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
- 211, 212, 213, -335, 214, 76, -335, -335, 184, 215,
- 216, 218, 222, 223, 217, 224, -1, 225, 226, 251,
- 252, 253, 255, 256, 227, -71, -335, 263, 265, -335,
- 277, 279, 280, 282, 291, 283, -335, 285, 288, 289,
- 292, 290, 293, 294, 295, 296, 298, 299, 301, 302,
- 303, 305, 306, 308, 309, 310, 311, 313, -335, 82,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, 314, -335, 304, 297, 317, 324, 326,
- 327, 315, 316, -335, 318, 319, 336, 307, -335, -335,
- 332, 320, -335, 6, 6, 300, 339, 341, 286, -335,
- -335, 343, -335, -335, 344, -335, -335, 345, -335, -335,
- -335, -335, 346, -335, -335, 347, -335, -335, -335, 348,
- -335, -335, 349, -335, -335, -335, -335, 350, -335, -335,
- 312, 322, 323, 325, 328, 329, 330, 331, 333, 334,
- 287, 82, -335, 335, -335, 337, 338, 340, 342, 351,
- 352, -335, -335, -335, -335, 353, 354, 355, -335, 356,
- 357, 358, 359, 321, 360, -21, 361, 362, 363, 364,
- 365, 366, 370, 371, 372, 373, 374, 375, 376, 377,
- 367, -335, 368, 369, 378, 381, 382, 383, 384, 290,
- -335, -335, -13, 379, 380, -335, -335, -335, -335, -335,
- -335, -335, 399, 402, 406, 405, 385, 386, -335, 387,
- 388, -335, -335, -335, -335, 389, 390, 391, 427, 435,
- 436, 441, 444, 392, 393, 394, 395, 396, 397, 398,
- 400, 401, 403, 404, 408, 409, 407, 410, -27, 411,
- 412, 413, 414, 417, 418, -335, -335, -335, -335, 419,
- 416, 420, 421, 422, 423, 424, 425, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, 439, 440, 445, 446,
- 429, 430, -335, -335, 447, 434, -335, -335, -335, -335,
- 456, 457, 458, 459, 460, 470, 471, 428, 432, 433,
- 437, -335, -335, -335, -335, 438, 431, 442, 443, 448,
- 449, 450, 466, -335, -335, -335, -335, 476, 477, 478,
- 492, 493, 494, -335, 452, 453, 454, 455, 461, 462,
- -335, 499, 500, 501, 509, 512, 463, 464, 465, 467,
- 468, 514, 515, 520, 523, 530, 472, 469, 473, 474,
- 475, -335, 532, 545, 546, 548, 479, 480, 481, 482,
- 549, 551, 552, 553, 484, 485, 486, 487, -335, 554,
- 557, 558, 489, 490, 491, -335, 559, 560, 495, 496,
- 565, 569, 497, 498, 570, 571, 502, 503, -335, 572,
- 504, 573, 505, 579, 506, 583, 508, -335
- };
- /* YYPGOTO[NTERM-NUM]. */
- static const short int yypgoto[] =
- {
- -335, 584, -335, -335, -335, -335, 521, -335, -335, -335,
- -335, 58, -335, -153, -152, -335, -335, -335, 451, -173,
- -335, -335, -335, 114, -335, -335, -335, -335, -334, 1,
- -335, -45, -335, -335, -335, -335, -141, -335, -335, -335,
- -91, -335, -335, -335, -335, -335, -335, -335, 516, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -335, -335, -335, -335, -335, -335, -335, -335, -335, -335,
- -159, 140, 138, -335, 139, -335, -335, -335, -335, 488,
- -335, -335, -111, -335
- };
- /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
- positive, shift that token. If negative, reduce the rule which
- number is the opposite. If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -1
- static const unsigned short int yytable[] =
- {
- 492, 268, 212, 213, 214, 215, 216, 217, 218, 219,
- 220, 221, 222, 223, 224, 225, 226, 419, 256, 257,
- 426, 232, 269, 270, 271, 272, 273, 18, 36, 37,
- 259, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 58, 59, 60, 61, 62, 293, 294, 63, 64,
- 65, 66, 260, 1, 2, 3, 4, 5, 6, 7,
- 19, 20, 8, 280, 281, 282, 283, 420, 421, 422,
- 21, 261, 260, 493, 494, 495, 26, 262, 263, 22,
- 23, 468, 31, 343, 24, 25, 32, 493, 494, 495,
- 286, 261, 256, 257, 420, 421, 422, 262, 263, 79,
- 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
- 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 390, 28, 63, 64, 65, 66,
- 29, 30, 33, 34, 129, 133, 35, 134, 135, 136,
- 137, 138, 139, 391, 392, 393, 394, 395, 396, 397,
- 398, 399, 140, 141, 142, 176, 143, 144, 145, 177,
- 178, 146, 147, 148, 149, 179, 180, 150, 151, 152,
- 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 181, 182, 183, 169,
- 171, 172, 173, 174, 175, 184, 185, 186, 187, 188,
- 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
- 199, 200, 201, 202, 203, 204, 205, 206, 207, 209,
- 227, 229, 230, 233, 234, 235, 240, 236, 238, 237,
- 239, 253, 241, 242, 243, 244, 245, 248, 247, 249,
- 250, 279, 246, 251, 252, 284, 287, 258, 289, 291,
- 295, 297, 300, 302, 306, 359, 308, 335, 309, 310,
- 311, 312, 431, 313, 314, 315, 428, 405, 406, 316,
- 317, 318, 416, 334, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 407, 337,
- 333, 338, 336, 341, 408, 339, 340, 409, 410, 415,
- 342, 344, 345, 351, 417, 429, 430, 432, 433, 434,
- 435, 436, 437, 438, 439, 427, 451, 532, 491, 299,
- 304, 0, 305, 0, 346, 347, 348, 0, 349, 350,
- 0, 0, 0, 0, 0, 0, 0, 483, 353, 0,
- 354, 0, 484, 485, 487, 0, 488, 489, 490, 352,
- 0, 500, 486, 509, 510, 511, 355, 360, 356, 357,
- 361, 358, 363, 450, 364, 367, 366, 369, 370, 371,
- 501, 372, 374, 502, 375, 377, 378, 503, 379, 381,
- 504, 382, 384, 385, 386, 440, 387, 389, 404, 411,
- 412, 512, 413, 414, 418, 441, 442, 466, 443, 513,
- 514, 444, 445, 446, 447, 515, 448, 449, 516, 554,
- 452, 453, 547, 548, 455, 454, 456, 553, 549, 550,
- 555, 556, 557, 558, 559, 457, 458, 459, 460, 461,
- 463, 464, 465, 462, 560, 561, 467, 469, 470, 573,
- 574, 575, 576, 471, 472, 473, 474, 475, 476, 477,
- 478, 479, 480, 481, 482, 499, 577, 578, 579, 505,
- 506, 507, 508, 586, 587, 588, 517, 518, 519, 520,
- 521, 522, 523, 589, 524, 525, 590, 527, 596, 597,
- 526, 528, 529, 530, 598, 533, 531, 599, 536, 534,
- 535, 537, 538, 540, 600, 539, 606, 541, 542, 543,
- 544, 545, 546, 551, 552, 562, 563, 564, 567, 607,
- 608, 565, 609, 614, 566, 615, 616, 617, 622, 568,
- 569, 623, 624, 628, 629, 570, 571, 572, 580, 632,
- 581, 582, 583, 633, 636, 637, 640, 642, 584, 585,
- 591, 592, 593, 644, 594, 595, 602, 646, 601, 170,
- 603, 604, 605, 0, 27, 0, 610, 611, 612, 613,
- 618, 0, 619, 620, 621, 625, 0, 626, 627, 0,
- 0, 0, 630, 631, 634, 635, 0, 0, 638, 231,
- 639, 641, 643, 645, 647, 267, 0, 208
- };
- /* YYCONFLP[YYPACT[STATE-NUM]] -- Pointer into YYCONFL of start of
- list of conflicting reductions corresponding to action entry for
- state STATE-NUM in yytable. 0 means no conflicts. The list in
- yyconfl is terminated by a rule number of 0. */
- static const unsigned char yyconflp[] =
- {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
- };
- /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
- 0, pointed into by YYCONFLP. */
- static const short int yyconfl[] =
- {
- 0
- };
- static const short int yycheck[] =
- {
- 13, 174, 113, 114, 115, 116, 117, 118, 119, 120,
- 121, 122, 123, 124, 125, 126, 127, 11, 171, 171,
- 354, 132, 93, 94, 95, 96, 97, 113, 60, 61,
- 11, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, 86, 87, 215, 216, 90, 91,
- 92, 93, 63, 53, 54, 55, 56, 57, 58, 59,
- 113, 113, 62, 49, 50, 51, 52, 98, 99, 100,
- 113, 82, 63, 110, 111, 112, 0, 88, 89, 113,
- 113, 425, 5, 266, 113, 113, 3, 110, 111, 112,
- 211, 82, 255, 255, 98, 99, 100, 88, 89, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 82, 115, 90, 91, 92, 93,
- 115, 115, 3, 5, 48, 114, 6, 114, 114, 114,
- 114, 113, 113, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 113, 113, 113, 7, 113, 113, 113, 7,
- 7, 113, 113, 113, 113, 7, 7, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 7, 7, 7, 116,
- 115, 115, 115, 115, 115, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 116, 118,
- 113, 7, 116, 6, 6, 3, 5, 8, 4, 9,
- 4, 114, 5, 5, 5, 5, 5, 3, 5, 3,
- 5, 114, 10, 5, 3, 113, 113, 93, 113, 113,
- 113, 113, 113, 113, 113, 4, 114, 113, 115, 114,
- 114, 114, 16, 114, 114, 114, 6, 3, 11, 114,
- 114, 114, 5, 255, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 11, 113,
- 116, 113, 117, 116, 10, 113, 113, 11, 11, 3,
- 116, 116, 116, 116, 12, 6, 5, 4, 4, 4,
- 4, 4, 4, 4, 4, 354, 401, 498, 449, 219,
- 222, -1, 223, -1, 113, 113, 113, -1, 113, 113,
- -1, -1, -1, -1, -1, -1, -1, 10, 115, -1,
- 115, -1, 14, 14, 3, -1, 4, 4, 4, 275,
- -1, 11, 14, 4, 4, 4, 119, 114, 119, 119,
- 115, 119, 114, 116, 115, 115, 114, 114, 114, 114,
- 11, 115, 114, 11, 115, 114, 114, 11, 115, 114,
- 15, 115, 114, 114, 114, 113, 115, 114, 114, 114,
- 114, 4, 114, 114, 114, 113, 113, 116, 113, 4,
- 4, 113, 113, 113, 113, 4, 113, 113, 4, 15,
- 115, 114, 13, 13, 114, 117, 114, 10, 13, 13,
- 4, 4, 4, 4, 4, 114, 114, 114, 114, 114,
- 113, 113, 113, 117, 4, 4, 116, 116, 116, 13,
- 4, 4, 4, 120, 120, 120, 120, 117, 117, 117,
- 117, 117, 117, 117, 117, 116, 4, 4, 4, 114,
- 114, 114, 114, 4, 4, 4, 114, 114, 114, 114,
- 114, 114, 114, 4, 114, 114, 4, 113, 4, 4,
- 117, 113, 113, 116, 4, 114, 116, 4, 114, 117,
- 117, 114, 114, 117, 4, 116, 4, 117, 117, 117,
- 117, 117, 117, 114, 114, 117, 114, 114, 117, 4,
- 4, 114, 4, 4, 116, 4, 4, 4, 4, 117,
- 117, 4, 4, 4, 4, 117, 117, 117, 116, 4,
- 117, 117, 117, 4, 4, 4, 4, 4, 117, 117,
- 117, 117, 117, 4, 117, 117, 117, 4, 116, 68,
- 117, 117, 117, -1, 10, -1, 117, 117, 117, 117,
- 116, -1, 117, 117, 117, 116, -1, 117, 117, -1,
- -1, -1, 117, 117, 117, 117, -1, -1, 116, 131,
- 117, 117, 117, 117, 116, 174, -1, 111
- };
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
- static const unsigned char yystos[] =
- {
- 0, 53, 54, 55, 56, 57, 58, 59, 62, 122,
- 123, 124, 125, 126, 167, 168, 198, 199, 113, 113,
- 113, 113, 113, 113, 113, 113, 0, 122, 115, 115,
- 115, 5, 3, 3, 5, 6, 60, 61, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 90, 91, 92, 93, 127, 128, 129,
- 130, 131, 134, 135, 136, 137, 138, 142, 143, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
- 179, 180, 181, 182, 183, 184, 185, 186, 187, 48,
- 200, 201, 202, 114, 114, 114, 114, 114, 113, 113,
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 116,
- 127, 115, 115, 115, 115, 115, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 116, 169, 118,
- 203, 204, 203, 203, 203, 203, 203, 203, 203, 203,
- 203, 203, 203, 203, 203, 203, 203, 113, 197, 7,
- 116, 200, 203, 6, 6, 3, 8, 9, 4, 4,
- 5, 5, 5, 5, 5, 5, 10, 5, 3, 3,
- 5, 5, 3, 114, 132, 133, 134, 135, 93, 11,
- 63, 82, 88, 89, 139, 140, 141, 139, 140, 93,
- 94, 95, 96, 97, 144, 145, 146, 147, 148, 114,
- 49, 50, 51, 52, 113, 188, 203, 113, 189, 113,
- 190, 113, 191, 191, 191, 113, 192, 113, 193, 192,
- 113, 194, 113, 195, 193, 195, 113, 196, 114, 115,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 114, 114, 114, 114,
- 114, 114, 114, 116, 132, 113, 117, 113, 113, 113,
- 113, 116, 116, 140, 116, 116, 113, 113, 113, 113,
- 113, 116, 144, 115, 115, 119, 119, 119, 119, 4,
- 114, 115, 159, 114, 115, 160, 114, 115, 161, 114,
- 114, 114, 115, 162, 114, 115, 163, 114, 114, 115,
- 164, 114, 115, 165, 114, 114, 114, 115, 166, 114,
- 82, 101, 102, 103, 104, 105, 106, 107, 108, 109,
- 152, 153, 154, 155, 114, 3, 11, 11, 10, 11,
- 11, 114, 114, 114, 114, 3, 5, 12, 114, 11,
- 98, 99, 100, 149, 150, 151, 149, 150, 6, 6,
- 5, 16, 4, 4, 4, 4, 4, 4, 4, 4,
- 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
- 116, 152, 115, 114, 117, 114, 114, 114, 114, 114,
- 114, 114, 117, 113, 113, 113, 116, 116, 149, 116,
- 116, 120, 120, 120, 120, 117, 117, 117, 117, 117,
- 117, 117, 117, 10, 14, 14, 14, 3, 4, 4,
- 4, 161, 13, 110, 111, 112, 156, 157, 158, 116,
- 11, 11, 11, 11, 15, 114, 114, 114, 114, 4,
- 4, 4, 4, 4, 4, 4, 4, 114, 114, 114,
- 114, 114, 114, 114, 114, 114, 117, 113, 113, 113,
- 116, 116, 157, 114, 117, 117, 114, 114, 114, 116,
- 117, 117, 117, 117, 117, 117, 117, 13, 13, 13,
- 13, 114, 114, 10, 15, 4, 4, 4, 4, 4,
- 4, 4, 117, 114, 114, 114, 116, 117, 117, 117,
- 117, 117, 117, 13, 4, 4, 4, 4, 4, 4,
- 116, 117, 117, 117, 117, 117, 4, 4, 4, 4,
- 4, 117, 117, 117, 117, 117, 4, 4, 4, 4,
- 4, 116, 117, 117, 117, 117, 4, 4, 4, 4,
- 117, 117, 117, 117, 4, 4, 4, 4, 116, 117,
- 117, 117, 4, 4, 4, 116, 117, 117, 4, 4,
- 117, 117, 4, 4, 117, 117, 4, 4, 116, 117,
- 4, 117, 4, 117, 4, 117, 4, 116
- };
- /* Error token number */
- #define YYTERROR 1
- /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
- If N is 0, then set CURRENT to the empty location which ends
- the previous symbol: RHS[0] (always defined). */
- #ifndef YYLLOC_DEFAULT
- # define YYLLOC_DEFAULT(Current, Rhs, N) \
- do \
- if (YYID (N)) \
- { \
- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
- } \
- else \
- { \
- (Current).first_line = (Current).last_line = \
- YYRHSLOC (Rhs, 0).last_line; \
- (Current).first_column = (Current).last_column = \
- YYRHSLOC (Rhs, 0).last_column; \
- } \
- while (YYID (0))
- #endif
- # define YYRHSLOC(Rhs, K) ((Rhs)[K].yystate.yyloc)
- /* YY_LOCATION_PRINT -- Print the location on the stream.
- This macro was not mandated originally: define only if we know
- we won't break user code: when these are the locations we know. */
- #ifndef __attribute__
- /* This feature is available in gcc versions 2.5 and later. */
- # if (! defined __GNUC__ || __GNUC__ < 2 \
- || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
- # define __attribute__(Spec) /* empty */
- # endif
- #endif
- #ifndef YY_LOCATION_PRINT
- # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
- /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
- __attribute__((__unused__))
- #if (defined __STDC__ || defined __C99__FUNC__ \
- || defined __cplusplus || defined _MSC_VER)
- static unsigned
- yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
- #else
- static unsigned
- yy_location_print_ (yyo, yylocp)
- FILE *yyo;
- YYLTYPE const * const yylocp;
- #endif
- {
- unsigned res = 0;
- int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
- if (0 <= yylocp->first_line)
- {
- res += fprintf (yyo, "%d", yylocp->first_line);
- if (0 <= yylocp->first_column)
- res += fprintf (yyo, ".%d", yylocp->first_column);
- }
- if (0 <= yylocp->last_line)
- {
- if (yylocp->first_line < yylocp->last_line)
- {
- res += fprintf (yyo, "-%d", yylocp->last_line);
- if (0 <= end_col)
- res += fprintf (yyo, ".%d", end_col);
- }
- else if (0 <= end_col && yylocp->first_column < end_col)
- res += fprintf (yyo, "-%d", end_col);
- }
- return res;
- }
- # define YY_LOCATION_PRINT(File, Loc) \
- yy_location_print_ (File, &(Loc))
- # else
- # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
- # endif
- #endif
- /* YYLEX -- calling `yylex' with the right arguments. */
- #define YYLEX yylex (&yylval, &yylloc, scanner)
- #undef yynerrs
- #define yynerrs (yystackp->yyerrcnt)
- #undef yychar
- #define yychar (yystackp->yyrawchar)
- #undef yylval
- #define yylval (yystackp->yyval)
- #undef yylloc
- #define yylloc (yystackp->yyloc)
- static const int YYEOF = 0;
- static const int YYEMPTY = -2;
- typedef enum { yyok, yyaccept, yyabort, yyerr } YYRESULTTAG;
- #define YYCHK(YYE) \
- do { YYRESULTTAG yyflag = YYE; if (yyflag != yyok) return yyflag; } \
- while (YYID (0))
- #if YYDEBUG
- # ifndef YYFPRINTF
- # define YYFPRINTF fprintf
- # endif
- # define YYDPRINTF(Args) \
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
- } while (YYID (0))
- /*--------------------------------.
- | Print this symbol on YYOUTPUT. |
- `--------------------------------*/
- /*ARGSUSED*/
- static void
- yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, ParseState* parse_state, yyscan_t scanner)
- {
- FILE *yyo = yyoutput;
- YYUSE (yyo);
- if (!yyvaluep)
- return;
- YYUSE (yylocationp);
- YYUSE (parse_state);
- YYUSE (scanner);
- # ifdef YYPRINT
- if (yytype < YYNTOKENS)
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
- # else
- YYUSE (yyoutput);
- # endif
- switch (yytype)
- {
- default:
- break;
- }
- }
- /*--------------------------------.
- | Print this symbol on YYOUTPUT. |
- `--------------------------------*/
- static void
- yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, ParseState* parse_state, yyscan_t scanner)
- {
- if (yytype < YYNTOKENS)
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
- YY_LOCATION_PRINT (yyoutput, *yylocationp);
- YYFPRINTF (yyoutput, ": ");
- yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, parse_state, scanner);
- YYFPRINTF (yyoutput, ")");
- }
- # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
- do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yy_symbol_print (stderr, Type, Value, Location, parse_state, scanner); \
- YYFPRINTF (stderr, "\n"); \
- } \
- } while (YYID (0))
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
- # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- #endif /* !YYDEBUG */
- /* YYINITDEPTH -- initial size of the parser's stacks. */
- #ifndef YYINITDEPTH
- # define YYINITDEPTH 200
- #endif
- /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
- Do not make this value too large; the results are undefined if
- SIZE_MAX < YYMAXDEPTH * sizeof (GLRStackItem)
- evaluated with infinite-precision integer arithmetic. */
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
- /* Minimum number of free items on the stack allowed after an
- allocation. This is to allow allocation and initialization
- to be completed by functions that call yyexpandGLRStack before the
- stack is expanded, thus insuring that all necessary pointers get
- properly redirected to new data. */
- #define YYHEADROOM 2
- #ifndef YYSTACKEXPANDABLE
- # if (! defined __cplusplus \
- || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
- && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))
- # define YYSTACKEXPANDABLE 1
- # else
- # define YYSTACKEXPANDABLE 0
- # endif
- #endif
- #if YYSTACKEXPANDABLE
- # define YY_RESERVE_GLRSTACK(Yystack) \
- do { \
- if (Yystack->yyspaceLeft < YYHEADROOM) \
- yyexpandGLRStack (Yystack); \
- } while (YYID (0))
- #else
- # define YY_RESERVE_GLRSTACK(Yystack) \
- do { \
- if (Yystack->yyspaceLeft < YYHEADROOM) \
- yyMemoryExhausted (Yystack); \
- } while (YYID (0))
- #endif
- #if YYERROR_VERBOSE
- # ifndef yystpcpy
- # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
- static char *
- yystpcpy (char *yydest, const char *yysrc)
- {
- char *yyd = yydest;
- const char *yys = yysrc;
- while ((*yyd++ = *yys++) != '\0')
- continue;
- return yyd - 1;
- }
- # endif
- # endif
- # ifndef yytnamerr
- /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
- quotes and backslashes, so that it's suitable for yyerror. The
- heuristic is that double-quoting is unnecessary unless the string
- contains an apostrophe, a comma, or backslash (other than
- backslash-backslash). YYSTR is taken from yytname. If YYRES is
- null, do not copy; instead, return the length of what the result
- would have been. */
- static size_t
- yytnamerr (char *yyres, const char *yystr)
- {
- if (*yystr == '"')
- {
- size_t yyn = 0;
- char const *yyp = yystr;
- for (;;)
- switch (*++yyp)
- {
- case '\'':
- case ',':
- goto do_not_strip_quotes;
- case '\\':
- if (*++yyp != '\\')
- goto do_not_strip_quotes;
- /* Fall through. */
- default:
- if (yyres)
- yyres[yyn] = *yyp;
- yyn++;
- break;
- case '"':
- if (yyres)
- yyres[yyn] = '\0';
- return yyn;
- }
- do_not_strip_quotes: ;
- }
- if (! yyres)
- return strlen (yystr);
- return yystpcpy (yyres, yystr) - yyres;
- }
- # endif
- #endif /* !YYERROR_VERBOSE */
- /** State numbers, as in LALR(1) machine */
- typedef int yyStateNum;
- /** Rule numbers, as in LALR(1) machine */
- typedef int yyRuleNum;
- /** Grammar symbol */
- typedef short int yySymbol;
- /** Item references, as in LALR(1) machine */
- typedef short int yyItemNum;
- typedef struct yyGLRState yyGLRState;
- typedef struct yyGLRStateSet yyGLRStateSet;
- typedef struct yySemanticOption yySemanticOption;
- typedef union yyGLRStackItem yyGLRStackItem;
- typedef struct yyGLRStack yyGLRStack;
- struct yyGLRState {
- /** Type tag: always true. */
- yybool yyisState;
- /** Type tag for yysemantics. If true, yysval applies, otherwise
- * yyfirstVal applies. */
- yybool yyresolved;
- /** Number of corresponding LALR(1) machine state. */
- yyStateNum yylrState;
- /** Preceding state in this stack */
- yyGLRState* yypred;
- /** Source position of the first token produced by my symbol */
- size_t yyposn;
- union {
- /** First in a chain of alternative reductions producing the
- * non-terminal corresponding to this state, threaded through
- * yynext. */
- yySemanticOption* yyfirstVal;
- /** Semantic value for this state. */
- YYSTYPE yysval;
- } yysemantics;
- /** Source location for this state. */
- YYLTYPE yyloc;
- };
- struct yyGLRStateSet {
- yyGLRState** yystates;
- /** During nondeterministic operation, yylookaheadNeeds tracks which
- * stacks have actually needed the current lookahead. During deterministic
- * operation, yylookaheadNeeds[0] is not maintained since it would merely
- * duplicate yychar != YYEMPTY. */
- yybool* yylookaheadNeeds;
- size_t yysize, yycapacity;
- };
- struct yySemanticOption {
- /** Type tag: always false. */
- yybool yyisState;
- /** Rule number for this reduction */
- yyRuleNum yyrule;
- /** The last RHS state in the list of states to be reduced. */
- yyGLRState* yystate;
- /** The lookahead for this reduction. */
- int yyrawchar;
- YYSTYPE yyval;
- YYLTYPE yyloc;
- /** Next sibling in chain of options. To facilitate merging,
- * options are chained in decreasing order by address. */
- yySemanticOption* yynext;
- };
- /** Type of the items in the GLR stack. The yyisState field
- * indicates which item of the union is valid. */
- union yyGLRStackItem {
- yyGLRState yystate;
- yySemanticOption yyoption;
- };
- struct yyGLRStack {
- int yyerrState;
- /* To compute the location of the error token. */
- yyGLRStackItem yyerror_range[3];
- int yyerrcnt;
- int yyrawchar;
- YYSTYPE yyval;
- YYLTYPE yyloc;
- YYJMP_BUF yyexception_buffer;
- yyGLRStackItem* yyitems;
- yyGLRStackItem* yynextFree;
- size_t yyspaceLeft;
- yyGLRState* yysplitPoint;
- yyGLRState* yylastDeleted;
- yyGLRStateSet yytops;
- };
- #if YYSTACKEXPANDABLE
- static void yyexpandGLRStack (yyGLRStack* yystackp);
- #endif
- static void yyFail (yyGLRStack* yystackp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner, const char* yymsg)
- __attribute__ ((__noreturn__));
- static void
- yyFail (yyGLRStack* yystackp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner, const char* yymsg)
- {
- if (yymsg != YY_NULL)
- yyerror (yylocp, parse_state, scanner, yymsg);
- YYLONGJMP (yystackp->yyexception_buffer, 1);
- }
- static void yyMemoryExhausted (yyGLRStack* yystackp)
- __attribute__ ((__noreturn__));
- static void
- yyMemoryExhausted (yyGLRStack* yystackp)
- {
- YYLONGJMP (yystackp->yyexception_buffer, 2);
- }
- #if YYDEBUG || YYERROR_VERBOSE
- /** A printable representation of TOKEN. */
- static inline const char*
- yytokenName (yySymbol yytoken)
- {
- if (yytoken == YYEMPTY)
- return "";
- return yytname[yytoken];
- }
- #endif
- /** Fill in YYVSP[YYLOW1 .. YYLOW0-1] from the chain of states starting
- * at YYVSP[YYLOW0].yystate.yypred. Leaves YYVSP[YYLOW1].yystate.yypred
- * containing the pointer to the next state in the chain. */
- static void yyfillin (yyGLRStackItem *, int, int) __attribute__ ((__unused__));
- static void
- yyfillin (yyGLRStackItem *yyvsp, int yylow0, int yylow1)
- {
- int i;
- yyGLRState *s = yyvsp[yylow0].yystate.yypred;
- for (i = yylow0-1; i >= yylow1; i -= 1)
- {
- YYASSERT (s->yyresolved);
- yyvsp[i].yystate.yyresolved = yytrue;
- yyvsp[i].yystate.yysemantics.yysval = s->yysemantics.yysval;
- yyvsp[i].yystate.yyloc = s->yyloc;
- s = yyvsp[i].yystate.yypred = s->yypred;
- }
- }
- /* Do nothing if YYNORMAL or if *YYLOW <= YYLOW1. Otherwise, fill in
- * YYVSP[YYLOW1 .. *YYLOW-1] as in yyfillin and set *YYLOW = YYLOW1.
- * For convenience, always return YYLOW1. */
- static inline int yyfill (yyGLRStackItem *, int *, int, yybool)
- __attribute__ ((__unused__));
- static inline int
- yyfill (yyGLRStackItem *yyvsp, int *yylow, int yylow1, yybool yynormal)
- {
- if (!yynormal && yylow1 < *yylow)
- {
- yyfillin (yyvsp, *yylow, yylow1);
- *yylow = yylow1;
- }
- return yylow1;
- }
- /** Perform user action for rule number YYN, with RHS length YYRHSLEN,
- * and top stack item YYVSP. YYLVALP points to place to put semantic
- * value ($$), and yylocp points to place for location information
- * (@$). Returns yyok for normal return, yyaccept for YYACCEPT,
- * yyerr for YYERROR, yyabort for YYABORT. */
- /*ARGSUSED*/ static YYRESULTTAG
- yyuserAction (yyRuleNum yyn, int yyrhslen, yyGLRStackItem* yyvsp,
- yyGLRStack* yystackp,
- YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
- {
- yybool yynormal __attribute__ ((__unused__)) =
- (yystackp->yysplitPoint == YY_NULL);
- int yylow;
- YYUSE (parse_state);
- YYUSE (scanner);
- # undef yyerrok
- # define yyerrok (yystackp->yyerrState = 0)
- # undef YYACCEPT
- # define YYACCEPT return yyaccept
- # undef YYABORT
- # define YYABORT return yyabort
- # undef YYERROR
- # define YYERROR return yyerrok, yyerr
- # undef YYRECOVERING
- # define YYRECOVERING() (yystackp->yyerrState != 0)
- # undef yyclearin
- # define yyclearin (yychar = YYEMPTY)
- # undef YYFILL
- # define YYFILL(N) yyfill (yyvsp, &yylow, N, yynormal)
- # undef YYBACKUP
- # define YYBACKUP(Token, Value) \
- return yyerror (yylocp, parse_state, scanner, YY_("syntax error: cannot back up")), \
- yyerrok, yyerr
- yylow = 1;
- if (yyrhslen == 0)
- *yyvalp = yyval_default;
- else
- *yyvalp = yyvsp[YYFILL (1-yyrhslen)].yystate.yysemantics.yysval;
- YYLLOC_DEFAULT ((*yylocp), (yyvsp - yyrhslen), yyrhslen);
- yystackp->yyerror_range[1].yystate.yyloc = *yylocp;
- switch (yyn)
- {
- case 2:
- /* Line 868 of glr.c */
- #line 231 "BsParserFX.y"
- { }
- break;
- case 3:
- /* Line 868 of glr.c */
- #line 232 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 5:
- /* Line 868 of glr.c */
- #line 237 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Technique; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 6:
- /* Line 868 of glr.c */
- #line 238 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Parameters; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 7:
- /* Line 868 of glr.c */
- #line 239 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Blocks; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 8:
- /* Line 868 of glr.c */
- #line 243 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Separable; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 9:
- /* Line 868 of glr.c */
- #line 244 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Queue; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 10:
- /* Line 868 of glr.c */
- #line 245 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Priority; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 11:
- /* Line 868 of glr.c */
- #line 246 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Include; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.strValue); }
- break;
- case 12:
- /* Line 868 of glr.c */
- #line 247 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Transparent; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 13:
- /* Line 868 of glr.c */
- #line 253 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 14:
- /* Line 868 of glr.c */
- #line 258 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Technique);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 16:
- /* Line 868 of glr.c */
- #line 266 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 18:
- /* Line 868 of glr.c */
- #line 271 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Pass; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 20:
- /* Line 868 of glr.c */
- #line 273 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Code; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 21:
- /* Line 868 of glr.c */
- #line 277 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Renderer; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.strValue); }
- break;
- case 22:
- /* Line 868 of glr.c */
- #line 278 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Language; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.strValue); }
- break;
- case 23:
- /* Line 868 of glr.c */
- #line 284 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 24:
- /* Line 868 of glr.c */
- #line 289 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Pass);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 26:
- /* Line 868 of glr.c */
- #line 297 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 28:
- /* Line 868 of glr.c */
- #line 302 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Code; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 29:
- /* Line 868 of glr.c */
- #line 306 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Index; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 30:
- /* Line 868 of glr.c */
- #line 307 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_FillMode; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 31:
- /* Line 868 of glr.c */
- #line 308 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_CullMode; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 32:
- /* Line 868 of glr.c */
- #line 309 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_DepthBias; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 33:
- /* Line 868 of glr.c */
- #line 310 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_SDepthBias; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 34:
- /* Line 868 of glr.c */
- #line 311 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_DepthClip; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 35:
- /* Line 868 of glr.c */
- #line 312 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Scissor; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 36:
- /* Line 868 of glr.c */
- #line 313 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Multisample; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 37:
- /* Line 868 of glr.c */
- #line 314 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_AALine; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 38:
- /* Line 868 of glr.c */
- #line 315 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_DepthRead; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 39:
- /* Line 868 of glr.c */
- #line 316 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_DepthWrite; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 40:
- /* Line 868 of glr.c */
- #line 317 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_CompareFunc; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 41:
- /* Line 868 of glr.c */
- #line 318 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Stencil; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 42:
- /* Line 868 of glr.c */
- #line 319 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_StencilReadMask; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 43:
- /* Line 868 of glr.c */
- #line 320 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_StencilWriteMask; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 44:
- /* Line 868 of glr.c */
- #line 321 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpFront; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 45:
- /* Line 868 of glr.c */
- #line 322 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpBack; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 46:
- /* Line 868 of glr.c */
- #line 323 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpFront; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 47:
- /* Line 868 of glr.c */
- #line 324 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_StencilOpBack; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 48:
- /* Line 868 of glr.c */
- #line 325 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_AlphaToCoverage; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 49:
- /* Line 868 of glr.c */
- #line 326 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_IndependantBlend; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 50:
- /* Line 868 of glr.c */
- #line 327 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Target; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 51:
- /* Line 868 of glr.c */
- #line 328 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_StencilRef; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 52:
- /* Line 868 of glr.c */
- #line 335 "BsParserFX.y"
- {
- NodeOption index;
- index.type = OT_Index;
- index.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (8))].yystate.yysemantics.yysval.intValue);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &index);
- nodePop(parse_state);
- ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (8))].yystate.yysemantics.yysval.nodePtr);
- }
- break;
- case 53:
- /* Line 868 of glr.c */
- #line 349 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 54:
- /* Line 868 of glr.c */
- #line 354 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 55:
- /* Line 868 of glr.c */
- #line 359 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 56:
- /* Line 868 of glr.c */
- #line 364 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 57:
- /* Line 868 of glr.c */
- #line 369 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 58:
- /* Line 868 of glr.c */
- #line 374 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 59:
- /* Line 868 of glr.c */
- #line 379 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Code);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 60:
- /* Line 868 of glr.c */
- #line 389 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_StencilOp);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 61:
- /* Line 868 of glr.c */
- #line 397 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_StencilOp);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 62:
- /* Line 868 of glr.c */
- #line 405 "BsParserFX.y"
- {
- NodeOption fail; fail.type = OT_Fail; fail.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (7))].yystate.yysemantics.yysval.intValue);
- NodeOption zfail; zfail.type = OT_ZFail; zfail.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (7))].yystate.yysemantics.yysval.intValue);
- NodeOption pass; pass.type = OT_PassOp; pass.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (7))].yystate.yysemantics.yysval.intValue);
- NodeOption cmp; cmp.type = OT_CompareFunc; cmp.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((7) - (7))].yystate.yysemantics.yysval.intValue);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &fail);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &zfail);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &pass);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &cmp);
- }
- break;
- case 64:
- /* Line 868 of glr.c */
- #line 420 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 65:
- /* Line 868 of glr.c */
- #line 424 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Fail; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 66:
- /* Line 868 of glr.c */
- #line 425 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ZFail; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 67:
- /* Line 868 of glr.c */
- #line 426 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_PassOp; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 68:
- /* Line 868 of glr.c */
- #line 427 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_CompareFunc; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 69:
- /* Line 868 of glr.c */
- #line 432 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 70:
- /* Line 868 of glr.c */
- #line 437 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Target);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 72:
- /* Line 868 of glr.c */
- #line 445 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 74:
- /* Line 868 of glr.c */
- #line 453 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Index; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 75:
- /* Line 868 of glr.c */
- #line 454 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Blend; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 76:
- /* Line 868 of glr.c */
- #line 455 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Color; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 77:
- /* Line 868 of glr.c */
- #line 456 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Alpha; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 78:
- /* Line 868 of glr.c */
- #line 457 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Color; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 79:
- /* Line 868 of glr.c */
- #line 458 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Alpha; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 80:
- /* Line 868 of glr.c */
- #line 459 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_WriteMask; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 81:
- /* Line 868 of glr.c */
- #line 465 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_BlendDef);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 82:
- /* Line 868 of glr.c */
- #line 473 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_BlendDef);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 84:
- /* Line 868 of glr.c */
- #line 481 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 85:
- /* Line 868 of glr.c */
- #line 486 "BsParserFX.y"
- {
- NodeOption src; src.type = OT_Source; src.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.intValue);
- NodeOption dst; dst.type = OT_Dest; dst.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (5))].yystate.yysemantics.yysval.intValue);
- NodeOption op; op.type = OT_Op; op.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (5))].yystate.yysemantics.yysval.intValue);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &src);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &dst);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &op);
- }
- break;
- case 86:
- /* Line 868 of glr.c */
- #line 498 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Source; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 87:
- /* Line 868 of glr.c */
- #line 499 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Dest; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 88:
- /* Line 868 of glr.c */
- #line 500 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Op; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 90:
- /* Line 868 of glr.c */
- #line 507 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 91:
- /* Line 868 of glr.c */
- #line 511 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_AddrMode; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (1))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 92:
- /* Line 868 of glr.c */
- #line 512 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MinFilter; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 93:
- /* Line 868 of glr.c */
- #line 513 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MagFilter; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 94:
- /* Line 868 of glr.c */
- #line 514 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MipFilter; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 95:
- /* Line 868 of glr.c */
- #line 515 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MaxAniso; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 96:
- /* Line 868 of glr.c */
- #line 516 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MipBias; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 97:
- /* Line 868 of glr.c */
- #line 517 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MipMin; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 98:
- /* Line 868 of glr.c */
- #line 518 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_MipMax; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 99:
- /* Line 868 of glr.c */
- #line 519 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_BorderColor; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 100:
- /* Line 868 of glr.c */
- #line 520 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_CompareFunc; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 101:
- /* Line 868 of glr.c */
- #line 525 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 102:
- /* Line 868 of glr.c */
- #line 526 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 103:
- /* Line 868 of glr.c */
- #line 531 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_AddrMode);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 104:
- /* Line 868 of glr.c */
- #line 539 "BsParserFX.y"
- {
- NodeOption u; u.type = OT_U; u.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.intValue);
- NodeOption v; v.type = OT_V; v.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (5))].yystate.yysemantics.yysval.intValue);
- NodeOption w; w.type = OT_W; w.value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((5) - (5))].yystate.yysemantics.yysval.intValue);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &u);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &v);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &w);
- }
- break;
- case 106:
- /* Line 868 of glr.c */
- #line 552 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 107:
- /* Line 868 of glr.c */
- #line 556 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_U; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 108:
- /* Line 868 of glr.c */
- #line 557 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_V; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 109:
- /* Line 868 of glr.c */
- #line 558 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_W; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.intValue); }
- break;
- case 110:
- /* Line 868 of glr.c */
- #line 563 "BsParserFX.y"
- { ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (5))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 111:
- /* Line 868 of glr.c */
- #line 567 "BsParserFX.y"
- { ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (7))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (7))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (7))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 112:
- /* Line 868 of glr.c */
- #line 571 "BsParserFX.y"
- { ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (9))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (9))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (9))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (9))].yystate.yysemantics.yysval.floatValue);}
- break;
- case 113:
- /* Line 868 of glr.c */
- #line 577 "BsParserFX.y"
- {
- ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (13))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (13))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (13))].yystate.yysemantics.yysval.floatValue);
- }
- break;
- case 114:
- /* Line 868 of glr.c */
- #line 587 "BsParserFX.y"
- {
- ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (17))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (17))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (17))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (17))].yystate.yysemantics.yysval.floatValue);
- }
- break;
- case 115:
- /* Line 868 of glr.c */
- #line 598 "BsParserFX.y"
- {
- ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (19))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (19))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (19))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[8] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((18) - (19))].yystate.yysemantics.yysval.floatValue);
- }
- break;
- case 116:
- /* Line 868 of glr.c */
- #line 609 "BsParserFX.y"
- {
- ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (25))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (25))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[8] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((18) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[9] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((20) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[10] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((22) - (25))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[11] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((24) - (25))].yystate.yysemantics.yysval.floatValue);
- }
- break;
- case 117:
- /* Line 868 of glr.c */
- #line 621 "BsParserFX.y"
- {
- ((*yyvalp).matrixValue)[0] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[1] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[2] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((6) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[3] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((8) - (33))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[4] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((10) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[5] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((12) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[6] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((14) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[7] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((16) - (33))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[8] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((18) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[9] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((20) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[10] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((22) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[11] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((24) - (33))].yystate.yysemantics.yysval.floatValue);
- ((*yyvalp).matrixValue)[12] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((26) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[13] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((28) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[14] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((30) - (33))].yystate.yysemantics.yysval.floatValue); ((*yyvalp).matrixValue)[15] = (((yyGLRStackItem const *)yyvsp)[YYFILL ((32) - (33))].yystate.yysemantics.yysval.floatValue);
- }
- break;
- case 118:
- /* Line 868 of glr.c */
- #line 631 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 119:
- /* Line 868 of glr.c */
- #line 636 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Parameters);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 121:
- /* Line 868 of glr.c */
- #line 644 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 122:
- /* Line 868 of glr.c */
- #line 648 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 123:
- /* Line 868 of glr.c */
- #line 649 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 124:
- /* Line 868 of glr.c */
- #line 650 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 125:
- /* Line 868 of glr.c */
- #line 651 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 126:
- /* Line 868 of glr.c */
- #line 652 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 127:
- /* Line 868 of glr.c */
- #line 653 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 128:
- /* Line 868 of glr.c */
- #line 654 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 129:
- /* Line 868 of glr.c */
- #line 655 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 130:
- /* Line 868 of glr.c */
- #line 656 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 131:
- /* Line 868 of glr.c */
- #line 657 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 132:
- /* Line 868 of glr.c */
- #line 658 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 133:
- /* Line 868 of glr.c */
- #line 659 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 134:
- /* Line 868 of glr.c */
- #line 660 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 135:
- /* Line 868 of glr.c */
- #line 661 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((3) - (4))].yystate.yysemantics.yysval.nodeOption)); nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (4))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 136:
- /* Line 868 of glr.c */
- #line 662 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 137:
- /* Line 868 of glr.c */
- #line 664 "BsParserFX.y"
- {
- nodePop(parse_state);
- NodeOption samplerState;
- samplerState.type = OT_SamplerState;
- samplerState.value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.nodePtr);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &samplerState);
- ((*yyvalp).nodeOption).type = OT_Parameter; ((*yyvalp).nodeOption).value.nodePtr = parse_state->topNode;
- nodePop(parse_state);
- }
- break;
- case 138:
- /* Line 868 of glr.c */
- #line 679 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 139:
- /* Line 868 of glr.c */
- #line 683 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 140:
- /* Line 868 of glr.c */
- #line 687 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 141:
- /* Line 868 of glr.c */
- #line 691 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 142:
- /* Line 868 of glr.c */
- #line 695 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 143:
- /* Line 868 of glr.c */
- #line 699 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 144:
- /* Line 868 of glr.c */
- #line 703 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 145:
- /* Line 868 of glr.c */
- #line 707 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 146:
- /* Line 868 of glr.c */
- #line 711 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 147:
- /* Line 868 of glr.c */
- #line 715 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 148:
- /* Line 868 of glr.c */
- #line 719 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 149:
- /* Line 868 of glr.c */
- #line 723 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 150:
- /* Line 868 of glr.c */
- #line 727 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 151:
- /* Line 868 of glr.c */
- #line 731 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 152:
- /* Line 868 of glr.c */
- #line 735 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 153:
- /* Line 868 of glr.c */
- #line 736 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 154:
- /* Line 868 of glr.c */
- #line 737 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 155:
- /* Line 868 of glr.c */
- #line 738 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 156:
- /* Line 868 of glr.c */
- #line 739 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 157:
- /* Line 868 of glr.c */
- #line 743 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 158:
- /* Line 868 of glr.c */
- #line 744 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 159:
- /* Line 868 of glr.c */
- #line 745 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 160:
- /* Line 868 of glr.c */
- #line 746 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 161:
- /* Line 868 of glr.c */
- #line 747 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 162:
- /* Line 868 of glr.c */
- #line 748 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 163:
- /* Line 868 of glr.c */
- #line 749 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 164:
- /* Line 868 of glr.c */
- #line 750 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 165:
- /* Line 868 of glr.c */
- #line 751 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 166:
- /* Line 868 of glr.c */
- #line 752 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 167:
- /* Line 868 of glr.c */
- #line 753 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 168:
- /* Line 868 of glr.c */
- #line 754 "BsParserFX.y"
- { ADD_PARAMETER(((*yyvalp).nodePtr), (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.intValue), (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue)); }
- break;
- case 169:
- /* Line 868 of glr.c */
- #line 759 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_SamplerState);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 170:
- /* Line 868 of glr.c */
- #line 766 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 171:
- /* Line 868 of glr.c */
- #line 767 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; ((*yyvalp).nodeOption).value.floatValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.floatValue); }
- break;
- case 172:
- /* Line 868 of glr.c */
- #line 771 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 173:
- /* Line 868 of glr.c */
- #line 772 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 174:
- /* Line 868 of glr.c */
- #line 776 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 175:
- /* Line 868 of glr.c */
- #line 777 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 176:
- /* Line 868 of glr.c */
- #line 781 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 177:
- /* Line 868 of glr.c */
- #line 782 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 178:
- /* Line 868 of glr.c */
- #line 786 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 179:
- /* Line 868 of glr.c */
- #line 787 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 180:
- /* Line 868 of glr.c */
- #line 791 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 181:
- /* Line 868 of glr.c */
- #line 792 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 182:
- /* Line 868 of glr.c */
- #line 796 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 183:
- /* Line 868 of glr.c */
- #line 797 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 184:
- /* Line 868 of glr.c */
- #line 801 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 185:
- /* Line 868 of glr.c */
- #line 802 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 186:
- /* Line 868 of glr.c */
- #line 806 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 187:
- /* Line 868 of glr.c */
- #line 807 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_ParamValue; memcpy(((*yyvalp).nodeOption).value.matrixValue, (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue), sizeof((((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.matrixValue))); }
- break;
- case 188:
- /* Line 868 of glr.c */
- #line 811 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_None; }
- break;
- case 189:
- /* Line 868 of glr.c */
- #line 812 "BsParserFX.y"
- { }
- break;
- case 190:
- /* Line 868 of glr.c */
- #line 817 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodePtr) = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (5))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 191:
- /* Line 868 of glr.c */
- #line 822 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Blocks);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- }
- break;
- case 193:
- /* Line 868 of glr.c */
- #line 830 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 194:
- /* Line 868 of glr.c */
- #line 834 "BsParserFX.y"
- { nodePop(parse_state); ((*yyvalp).nodeOption).type = OT_Block; ((*yyvalp).nodeOption).value.nodePtr = (((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (3))].yystate.yysemantics.yysval.nodePtr); }
- break;
- case 195:
- /* Line 868 of glr.c */
- #line 839 "BsParserFX.y"
- {
- ((*yyvalp).nodePtr) = nodeCreate(parse_state->memContext, NT_Block);
- nodePush(parse_state, ((*yyvalp).nodePtr));
- NodeOption blockName;
- blockName.type = OT_Identifier;
- blockName.value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((2) - (2))].yystate.yysemantics.yysval.strValue);
- nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &blockName);
- }
- break;
- case 197:
- /* Line 868 of glr.c */
- #line 854 "BsParserFX.y"
- { nodeOptionsAdd(parse_state->memContext, parse_state->topNode->options, &(((yyGLRStackItem const *)yyvsp)[YYFILL ((1) - (2))].yystate.yysemantics.yysval.nodeOption)); }
- break;
- case 198:
- /* Line 868 of glr.c */
- #line 858 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Alias; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.strValue); }
- break;
- case 199:
- /* Line 868 of glr.c */
- #line 859 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Auto; ((*yyvalp).nodeOption).value.strValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.strValue); }
- break;
- case 200:
- /* Line 868 of glr.c */
- #line 860 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Shared; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.intValue); }
- break;
- case 201:
- /* Line 868 of glr.c */
- #line 861 "BsParserFX.y"
- { ((*yyvalp).nodeOption).type = OT_Usage; ((*yyvalp).nodeOption).value.intValue = (((yyGLRStackItem const *)yyvsp)[YYFILL ((4) - (5))].yystate.yysemantics.yysval.intValue); }
- break;
- /* Line 868 of glr.c */
- #line 2792 "BsParserFX.c"
- default: break;
- }
- return yyok;
- # undef yyerrok
- # undef YYABORT
- # undef YYACCEPT
- # undef YYERROR
- # undef YYBACKUP
- # undef yyclearin
- # undef YYRECOVERING
- }
- /*ARGSUSED*/ static void
- yyuserMerge (int yyn, YYSTYPE* yy0, YYSTYPE* yy1)
- {
- YYUSE (yy0);
- YYUSE (yy1);
- switch (yyn)
- {
-
- default: break;
- }
- }
- /* Bison grammar-table manipulation. */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
- /*ARGSUSED*/
- static void
- yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, ParseState* parse_state, yyscan_t scanner)
- {
- YYUSE (yyvaluep);
- YYUSE (yylocationp);
- YYUSE (parse_state);
- YYUSE (scanner);
- if (!yymsg)
- yymsg = "Deleting";
- YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
- switch (yytype)
- {
- default:
- break;
- }
- }
- /** Number of symbols composing the right hand side of rule #RULE. */
- static inline int
- yyrhsLength (yyRuleNum yyrule)
- {
- return yyr2[yyrule];
- }
- static void
- yydestroyGLRState (char const *yymsg, yyGLRState *yys, ParseState* parse_state, yyscan_t scanner)
- {
- if (yys->yyresolved)
- yydestruct (yymsg, yystos[yys->yylrState],
- &yys->yysemantics.yysval, &yys->yyloc, parse_state, scanner);
- else
- {
- #if YYDEBUG
- if (yydebug)
- {
- if (yys->yysemantics.yyfirstVal)
- YYFPRINTF (stderr, "%s unresolved ", yymsg);
- else
- YYFPRINTF (stderr, "%s incomplete ", yymsg);
- yy_symbol_print (stderr, yystos[yys->yylrState],
- YY_NULL, &yys->yyloc, parse_state, scanner);
- YYFPRINTF (stderr, "\n");
- }
- #endif
- if (yys->yysemantics.yyfirstVal)
- {
- yySemanticOption *yyoption = yys->yysemantics.yyfirstVal;
- yyGLRState *yyrh;
- int yyn;
- for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
- yyn > 0;
- yyrh = yyrh->yypred, yyn -= 1)
- yydestroyGLRState (yymsg, yyrh, parse_state, scanner);
- }
- }
- }
- /** Left-hand-side symbol for rule #RULE. */
- static inline yySymbol
- yylhsNonterm (yyRuleNum yyrule)
- {
- return yyr1[yyrule];
- }
- #define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-335)))
- /** True iff LR state STATE has only a default reduction (regardless
- * of token). */
- static inline yybool
- yyisDefaultedState (yyStateNum yystate)
- {
- return yypact_value_is_default (yypact[yystate]);
- }
- /** The default reduction for STATE, assuming it has one. */
- static inline yyRuleNum
- yydefaultAction (yyStateNum yystate)
- {
- return yydefact[yystate];
- }
- #define yytable_value_is_error(Yytable_value) \
- YYID (0)
- /** Set *YYACTION to the action to take in YYSTATE on seeing YYTOKEN.
- * Result R means
- * R < 0: Reduce on rule -R.
- * R = 0: Error.
- * R > 0: Shift to state R.
- * Set *CONFLICTS to a pointer into yyconfl to 0-terminated list of
- * conflicting reductions.
- */
- static inline void
- yygetLRActions (yyStateNum yystate, int yytoken,
- int* yyaction, const short int** yyconflicts)
- {
- int yyindex = yypact[yystate] + yytoken;
- if (yypact_value_is_default (yypact[yystate])
- || yyindex < 0 || YYLAST < yyindex || yycheck[yyindex] != yytoken)
- {
- *yyaction = -yydefact[yystate];
- *yyconflicts = yyconfl;
- }
- else if (! yytable_value_is_error (yytable[yyindex]))
- {
- *yyaction = yytable[yyindex];
- *yyconflicts = yyconfl + yyconflp[yyindex];
- }
- else
- {
- *yyaction = 0;
- *yyconflicts = yyconfl + yyconflp[yyindex];
- }
- }
- static inline yyStateNum
- yyLRgotoState (yyStateNum yystate, yySymbol yylhs)
- {
- int yyr;
- yyr = yypgoto[yylhs - YYNTOKENS] + yystate;
- if (0 <= yyr && yyr <= YYLAST && yycheck[yyr] == yystate)
- return yytable[yyr];
- else
- return yydefgoto[yylhs - YYNTOKENS];
- }
- static inline yybool
- yyisShiftAction (int yyaction)
- {
- return 0 < yyaction;
- }
- static inline yybool
- yyisErrorAction (int yyaction)
- {
- return yyaction == 0;
- }
- /* GLRStates */
- /** Return a fresh GLRStackItem. Callers should call
- * YY_RESERVE_GLRSTACK afterwards to make sure there is sufficient
- * headroom. */
- static inline yyGLRStackItem*
- yynewGLRStackItem (yyGLRStack* yystackp, yybool yyisState)
- {
- yyGLRStackItem* yynewItem = yystackp->yynextFree;
- yystackp->yyspaceLeft -= 1;
- yystackp->yynextFree += 1;
- yynewItem->yystate.yyisState = yyisState;
- return yynewItem;
- }
- /** Add a new semantic action that will execute the action for rule
- * RULENUM on the semantic values in RHS to the list of
- * alternative actions for STATE. Assumes that RHS comes from
- * stack #K of *STACKP. */
- static void
- yyaddDeferredAction (yyGLRStack* yystackp, size_t yyk, yyGLRState* yystate,
- yyGLRState* rhs, yyRuleNum yyrule)
- {
- yySemanticOption* yynewOption =
- &yynewGLRStackItem (yystackp, yyfalse)->yyoption;
- yynewOption->yystate = rhs;
- yynewOption->yyrule = yyrule;
- if (yystackp->yytops.yylookaheadNeeds[yyk])
- {
- yynewOption->yyrawchar = yychar;
- yynewOption->yyval = yylval;
- yynewOption->yyloc = yylloc;
- }
- else
- yynewOption->yyrawchar = YYEMPTY;
- yynewOption->yynext = yystate->yysemantics.yyfirstVal;
- yystate->yysemantics.yyfirstVal = yynewOption;
- YY_RESERVE_GLRSTACK (yystackp);
- }
- /* GLRStacks */
- /** Initialize SET to a singleton set containing an empty stack. */
- static yybool
- yyinitStateSet (yyGLRStateSet* yyset)
- {
- yyset->yysize = 1;
- yyset->yycapacity = 16;
- yyset->yystates = (yyGLRState**) YYMALLOC (16 * sizeof yyset->yystates[0]);
- if (! yyset->yystates)
- return yyfalse;
- yyset->yystates[0] = YY_NULL;
- yyset->yylookaheadNeeds =
- (yybool*) YYMALLOC (16 * sizeof yyset->yylookaheadNeeds[0]);
- if (! yyset->yylookaheadNeeds)
- {
- YYFREE (yyset->yystates);
- return yyfalse;
- }
- return yytrue;
- }
- static void yyfreeStateSet (yyGLRStateSet* yyset)
- {
- YYFREE (yyset->yystates);
- YYFREE (yyset->yylookaheadNeeds);
- }
- /** Initialize STACK to a single empty stack, with total maximum
- * capacity for all stacks of SIZE. */
- static yybool
- yyinitGLRStack (yyGLRStack* yystackp, size_t yysize)
- {
- yystackp->yyerrState = 0;
- yynerrs = 0;
- yystackp->yyspaceLeft = yysize;
- yystackp->yyitems =
- (yyGLRStackItem*) YYMALLOC (yysize * sizeof yystackp->yynextFree[0]);
- if (!yystackp->yyitems)
- return yyfalse;
- yystackp->yynextFree = yystackp->yyitems;
- yystackp->yysplitPoint = YY_NULL;
- yystackp->yylastDeleted = YY_NULL;
- return yyinitStateSet (&yystackp->yytops);
- }
- #if YYSTACKEXPANDABLE
- # define YYRELOC(YYFROMITEMS,YYTOITEMS,YYX,YYTYPE) \
- &((YYTOITEMS) - ((YYFROMITEMS) - (yyGLRStackItem*) (YYX)))->YYTYPE
- /** If STACK is expandable, extend it. WARNING: Pointers into the
- stack from outside should be considered invalid after this call.
- We always expand when there are 1 or fewer items left AFTER an
- allocation, so that we can avoid having external pointers exist
- across an allocation. */
- static void
- yyexpandGLRStack (yyGLRStack* yystackp)
- {
- yyGLRStackItem* yynewItems;
- yyGLRStackItem* yyp0, *yyp1;
- size_t yynewSize;
- size_t yyn;
- size_t yysize = yystackp->yynextFree - yystackp->yyitems;
- if (YYMAXDEPTH - YYHEADROOM < yysize)
- yyMemoryExhausted (yystackp);
- yynewSize = 2*yysize;
- if (YYMAXDEPTH < yynewSize)
- yynewSize = YYMAXDEPTH;
- yynewItems = (yyGLRStackItem*) YYMALLOC (yynewSize * sizeof yynewItems[0]);
- if (! yynewItems)
- yyMemoryExhausted (yystackp);
- for (yyp0 = yystackp->yyitems, yyp1 = yynewItems, yyn = yysize;
- 0 < yyn;
- yyn -= 1, yyp0 += 1, yyp1 += 1)
- {
- *yyp1 = *yyp0;
- if (*(yybool *) yyp0)
- {
- yyGLRState* yys0 = &yyp0->yystate;
- yyGLRState* yys1 = &yyp1->yystate;
- if (yys0->yypred != YY_NULL)
- yys1->yypred =
- YYRELOC (yyp0, yyp1, yys0->yypred, yystate);
- if (! yys0->yyresolved && yys0->yysemantics.yyfirstVal != YY_NULL)
- yys1->yysemantics.yyfirstVal =
- YYRELOC (yyp0, yyp1, yys0->yysemantics.yyfirstVal, yyoption);
- }
- else
- {
- yySemanticOption* yyv0 = &yyp0->yyoption;
- yySemanticOption* yyv1 = &yyp1->yyoption;
- if (yyv0->yystate != YY_NULL)
- yyv1->yystate = YYRELOC (yyp0, yyp1, yyv0->yystate, yystate);
- if (yyv0->yynext != YY_NULL)
- yyv1->yynext = YYRELOC (yyp0, yyp1, yyv0->yynext, yyoption);
- }
- }
- if (yystackp->yysplitPoint != YY_NULL)
- yystackp->yysplitPoint = YYRELOC (yystackp->yyitems, yynewItems,
- yystackp->yysplitPoint, yystate);
- for (yyn = 0; yyn < yystackp->yytops.yysize; yyn += 1)
- if (yystackp->yytops.yystates[yyn] != YY_NULL)
- yystackp->yytops.yystates[yyn] =
- YYRELOC (yystackp->yyitems, yynewItems,
- yystackp->yytops.yystates[yyn], yystate);
- YYFREE (yystackp->yyitems);
- yystackp->yyitems = yynewItems;
- yystackp->yynextFree = yynewItems + yysize;
- yystackp->yyspaceLeft = yynewSize - yysize;
- }
- #endif
- static void
- yyfreeGLRStack (yyGLRStack* yystackp)
- {
- YYFREE (yystackp->yyitems);
- yyfreeStateSet (&yystackp->yytops);
- }
- /** Assuming that S is a GLRState somewhere on STACK, update the
- * splitpoint of STACK, if needed, so that it is at least as deep as
- * S. */
- static inline void
- yyupdateSplit (yyGLRStack* yystackp, yyGLRState* yys)
- {
- if (yystackp->yysplitPoint != YY_NULL && yystackp->yysplitPoint > yys)
- yystackp->yysplitPoint = yys;
- }
- /** Invalidate stack #K in STACK. */
- static inline void
- yymarkStackDeleted (yyGLRStack* yystackp, size_t yyk)
- {
- if (yystackp->yytops.yystates[yyk] != YY_NULL)
- yystackp->yylastDeleted = yystackp->yytops.yystates[yyk];
- yystackp->yytops.yystates[yyk] = YY_NULL;
- }
- /** Undelete the last stack that was marked as deleted. Can only be
- done once after a deletion, and only when all other stacks have
- been deleted. */
- static void
- yyundeleteLastStack (yyGLRStack* yystackp)
- {
- if (yystackp->yylastDeleted == YY_NULL || yystackp->yytops.yysize != 0)
- return;
- yystackp->yytops.yystates[0] = yystackp->yylastDeleted;
- yystackp->yytops.yysize = 1;
- YYDPRINTF ((stderr, "Restoring last deleted stack as stack #0.\n"));
- yystackp->yylastDeleted = YY_NULL;
- }
- static inline void
- yyremoveDeletes (yyGLRStack* yystackp)
- {
- size_t yyi, yyj;
- yyi = yyj = 0;
- while (yyj < yystackp->yytops.yysize)
- {
- if (yystackp->yytops.yystates[yyi] == YY_NULL)
- {
- if (yyi == yyj)
- {
- YYDPRINTF ((stderr, "Removing dead stacks.\n"));
- }
- yystackp->yytops.yysize -= 1;
- }
- else
- {
- yystackp->yytops.yystates[yyj] = yystackp->yytops.yystates[yyi];
- /* In the current implementation, it's unnecessary to copy
- yystackp->yytops.yylookaheadNeeds[yyi] since, after
- yyremoveDeletes returns, the parser immediately either enters
- deterministic operation or shifts a token. However, it doesn't
- hurt, and the code might evolve to need it. */
- yystackp->yytops.yylookaheadNeeds[yyj] =
- yystackp->yytops.yylookaheadNeeds[yyi];
- if (yyj != yyi)
- {
- YYDPRINTF ((stderr, "Rename stack %lu -> %lu.\n",
- (unsigned long int) yyi, (unsigned long int) yyj));
- }
- yyj += 1;
- }
- yyi += 1;
- }
- }
- /** Shift to a new state on stack #K of STACK, corresponding to LR state
- * LRSTATE, at input position POSN, with (resolved) semantic value SVAL. */
- static inline void
- yyglrShift (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
- size_t yyposn,
- YYSTYPE* yyvalp, YYLTYPE* yylocp)
- {
- yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
- yynewState->yylrState = yylrState;
- yynewState->yyposn = yyposn;
- yynewState->yyresolved = yytrue;
- yynewState->yypred = yystackp->yytops.yystates[yyk];
- yynewState->yysemantics.yysval = *yyvalp;
- yynewState->yyloc = *yylocp;
- yystackp->yytops.yystates[yyk] = yynewState;
- YY_RESERVE_GLRSTACK (yystackp);
- }
- /** Shift stack #K of YYSTACK, to a new state corresponding to LR
- * state YYLRSTATE, at input position YYPOSN, with the (unresolved)
- * semantic value of YYRHS under the action for YYRULE. */
- static inline void
- yyglrShiftDefer (yyGLRStack* yystackp, size_t yyk, yyStateNum yylrState,
- size_t yyposn, yyGLRState* rhs, yyRuleNum yyrule)
- {
- yyGLRState* yynewState = &yynewGLRStackItem (yystackp, yytrue)->yystate;
- yynewState->yylrState = yylrState;
- yynewState->yyposn = yyposn;
- yynewState->yyresolved = yyfalse;
- yynewState->yypred = yystackp->yytops.yystates[yyk];
- yynewState->yysemantics.yyfirstVal = YY_NULL;
- yystackp->yytops.yystates[yyk] = yynewState;
- /* Invokes YY_RESERVE_GLRSTACK. */
- yyaddDeferredAction (yystackp, yyk, yynewState, rhs, yyrule);
- }
- /** Pop the symbols consumed by reduction #RULE from the top of stack
- * #K of STACK, and perform the appropriate semantic action on their
- * semantic values. Assumes that all ambiguities in semantic values
- * have been previously resolved. Set *VALP to the resulting value,
- * and *LOCP to the computed location (if any). Return value is as
- * for userAction. */
- static inline YYRESULTTAG
- yydoAction (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
- YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
- {
- int yynrhs = yyrhsLength (yyrule);
- if (yystackp->yysplitPoint == YY_NULL)
- {
- /* Standard special case: single stack. */
- yyGLRStackItem* rhs = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
- YYASSERT (yyk == 0);
- yystackp->yynextFree -= yynrhs;
- yystackp->yyspaceLeft += yynrhs;
- yystackp->yytops.yystates[0] = & yystackp->yynextFree[-1].yystate;
- return yyuserAction (yyrule, yynrhs, rhs, yystackp,
- yyvalp, yylocp, parse_state, scanner);
- }
- else
- {
- /* At present, doAction is never called in nondeterministic
- * mode, so this branch is never taken. It is here in
- * anticipation of a future feature that will allow immediate
- * evaluation of selected actions in nondeterministic mode. */
- int yyi;
- yyGLRState* yys;
- yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
- yys = yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred
- = yystackp->yytops.yystates[yyk];
- if (yynrhs == 0)
- /* Set default location. */
- yyrhsVals[YYMAXRHS + YYMAXLEFT - 1].yystate.yyloc = yys->yyloc;
- for (yyi = 0; yyi < yynrhs; yyi += 1)
- {
- yys = yys->yypred;
- YYASSERT (yys);
- }
- yyupdateSplit (yystackp, yys);
- yystackp->yytops.yystates[yyk] = yys;
- return yyuserAction (yyrule, yynrhs, yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
- yystackp, yyvalp, yylocp, parse_state, scanner);
- }
- }
- #if !YYDEBUG
- # define YY_REDUCE_PRINT(Args)
- #else
- # define YY_REDUCE_PRINT(Args) \
- do { \
- if (yydebug) \
- yy_reduce_print Args; \
- } while (YYID (0))
- /*----------------------------------------------------------.
- | Report that the RULE is going to be reduced on stack #K. |
- `----------------------------------------------------------*/
- /*ARGSUSED*/ static inline void
- yy_reduce_print (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
- YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
- {
- int yynrhs = yyrhsLength (yyrule);
- yybool yynormal __attribute__ ((__unused__)) =
- (yystackp->yysplitPoint == YY_NULL);
- yyGLRStackItem* yyvsp = (yyGLRStackItem*) yystackp->yytops.yystates[yyk];
- int yylow = 1;
- int yyi;
- YYUSE (yyvalp);
- YYUSE (yylocp);
- YYUSE (parse_state);
- YYUSE (scanner);
- YYFPRINTF (stderr, "Reducing stack %lu by rule %d (line %lu):\n",
- (unsigned long int) yyk, yyrule - 1,
- (unsigned long int) yyrline[yyrule]);
- /* The symbols being reduced. */
- for (yyi = 0; yyi < yynrhs; yyi++)
- {
- YYFPRINTF (stderr, " $%d = ", yyi + 1);
- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
- &(((yyGLRStackItem const *)yyvsp)[YYFILL ((yyi + 1) - (yynrhs))].yystate.yysemantics.yysval)
- , &(((yyGLRStackItem const *)yyvsp)[YYFILL ((yyi + 1) - (yynrhs))].yystate.yyloc) , parse_state, scanner);
- YYFPRINTF (stderr, "\n");
- }
- }
- #endif
- /** Pop items off stack #K of STACK according to grammar rule RULE,
- * and push back on the resulting nonterminal symbol. Perform the
- * semantic action associated with RULE and store its value with the
- * newly pushed state, if FORCEEVAL or if STACK is currently
- * unambiguous. Otherwise, store the deferred semantic action with
- * the new state. If the new state would have an identical input
- * position, LR state, and predecessor to an existing state on the stack,
- * it is identified with that existing state, eliminating stack #K from
- * the STACK. In this case, the (necessarily deferred) semantic value is
- * added to the options for the existing state's semantic value.
- */
- static inline YYRESULTTAG
- yyglrReduce (yyGLRStack* yystackp, size_t yyk, yyRuleNum yyrule,
- yybool yyforceEval, ParseState* parse_state, yyscan_t scanner)
- {
- size_t yyposn = yystackp->yytops.yystates[yyk]->yyposn;
- if (yyforceEval || yystackp->yysplitPoint == YY_NULL)
- {
- YYSTYPE yysval;
- YYLTYPE yyloc;
- YY_REDUCE_PRINT ((yystackp, yyk, yyrule, &yysval, &yyloc, parse_state, scanner));
- YYCHK (yydoAction (yystackp, yyk, yyrule, &yysval, &yyloc, parse_state, scanner));
- YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyrule], &yysval, &yyloc);
- yyglrShift (yystackp, yyk,
- yyLRgotoState (yystackp->yytops.yystates[yyk]->yylrState,
- yylhsNonterm (yyrule)),
- yyposn, &yysval, &yyloc);
- }
- else
- {
- size_t yyi;
- int yyn;
- yyGLRState* yys, *yys0 = yystackp->yytops.yystates[yyk];
- yyStateNum yynewLRState;
- for (yys = yystackp->yytops.yystates[yyk], yyn = yyrhsLength (yyrule);
- 0 < yyn; yyn -= 1)
- {
- yys = yys->yypred;
- YYASSERT (yys);
- }
- yyupdateSplit (yystackp, yys);
- yynewLRState = yyLRgotoState (yys->yylrState, yylhsNonterm (yyrule));
- YYDPRINTF ((stderr,
- "Reduced stack %lu by rule #%d; action deferred. Now in state %d.\n",
- (unsigned long int) yyk, yyrule - 1, yynewLRState));
- for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
- if (yyi != yyk && yystackp->yytops.yystates[yyi] != YY_NULL)
- {
- yyGLRState *yysplit = yystackp->yysplitPoint;
- yyGLRState *yyp = yystackp->yytops.yystates[yyi];
- while (yyp != yys && yyp != yysplit && yyp->yyposn >= yyposn)
- {
- if (yyp->yylrState == yynewLRState && yyp->yypred == yys)
- {
- yyaddDeferredAction (yystackp, yyk, yyp, yys0, yyrule);
- yymarkStackDeleted (yystackp, yyk);
- YYDPRINTF ((stderr, "Merging stack %lu into stack %lu.\n",
- (unsigned long int) yyk,
- (unsigned long int) yyi));
- return yyok;
- }
- yyp = yyp->yypred;
- }
- }
- yystackp->yytops.yystates[yyk] = yys;
- yyglrShiftDefer (yystackp, yyk, yynewLRState, yyposn, yys0, yyrule);
- }
- return yyok;
- }
- static size_t
- yysplitStack (yyGLRStack* yystackp, size_t yyk)
- {
- if (yystackp->yysplitPoint == YY_NULL)
- {
- YYASSERT (yyk == 0);
- yystackp->yysplitPoint = yystackp->yytops.yystates[yyk];
- }
- if (yystackp->yytops.yysize >= yystackp->yytops.yycapacity)
- {
- yyGLRState** yynewStates;
- yybool* yynewLookaheadNeeds;
- yynewStates = YY_NULL;
- if (yystackp->yytops.yycapacity
- > (YYSIZEMAX / (2 * sizeof yynewStates[0])))
- yyMemoryExhausted (yystackp);
- yystackp->yytops.yycapacity *= 2;
- yynewStates =
- (yyGLRState**) YYREALLOC (yystackp->yytops.yystates,
- (yystackp->yytops.yycapacity
- * sizeof yynewStates[0]));
- if (yynewStates == YY_NULL)
- yyMemoryExhausted (yystackp);
- yystackp->yytops.yystates = yynewStates;
- yynewLookaheadNeeds =
- (yybool*) YYREALLOC (yystackp->yytops.yylookaheadNeeds,
- (yystackp->yytops.yycapacity
- * sizeof yynewLookaheadNeeds[0]));
- if (yynewLookaheadNeeds == YY_NULL)
- yyMemoryExhausted (yystackp);
- yystackp->yytops.yylookaheadNeeds = yynewLookaheadNeeds;
- }
- yystackp->yytops.yystates[yystackp->yytops.yysize]
- = yystackp->yytops.yystates[yyk];
- yystackp->yytops.yylookaheadNeeds[yystackp->yytops.yysize]
- = yystackp->yytops.yylookaheadNeeds[yyk];
- yystackp->yytops.yysize += 1;
- return yystackp->yytops.yysize-1;
- }
- /** True iff Y0 and Y1 represent identical options at the top level.
- * That is, they represent the same rule applied to RHS symbols
- * that produce the same terminal symbols. */
- static yybool
- yyidenticalOptions (yySemanticOption* yyy0, yySemanticOption* yyy1)
- {
- if (yyy0->yyrule == yyy1->yyrule)
- {
- yyGLRState *yys0, *yys1;
- int yyn;
- for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
- yyn = yyrhsLength (yyy0->yyrule);
- yyn > 0;
- yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
- if (yys0->yyposn != yys1->yyposn)
- return yyfalse;
- return yytrue;
- }
- else
- return yyfalse;
- }
- /** Assuming identicalOptions (Y0,Y1), destructively merge the
- * alternative semantic values for the RHS-symbols of Y1 and Y0. */
- static void
- yymergeOptionSets (yySemanticOption* yyy0, yySemanticOption* yyy1)
- {
- yyGLRState *yys0, *yys1;
- int yyn;
- for (yys0 = yyy0->yystate, yys1 = yyy1->yystate,
- yyn = yyrhsLength (yyy0->yyrule);
- yyn > 0;
- yys0 = yys0->yypred, yys1 = yys1->yypred, yyn -= 1)
- {
- if (yys0 == yys1)
- break;
- else if (yys0->yyresolved)
- {
- yys1->yyresolved = yytrue;
- yys1->yysemantics.yysval = yys0->yysemantics.yysval;
- }
- else if (yys1->yyresolved)
- {
- yys0->yyresolved = yytrue;
- yys0->yysemantics.yysval = yys1->yysemantics.yysval;
- }
- else
- {
- yySemanticOption** yyz0p = &yys0->yysemantics.yyfirstVal;
- yySemanticOption* yyz1 = yys1->yysemantics.yyfirstVal;
- while (YYID (yytrue))
- {
- if (yyz1 == *yyz0p || yyz1 == YY_NULL)
- break;
- else if (*yyz0p == YY_NULL)
- {
- *yyz0p = yyz1;
- break;
- }
- else if (*yyz0p < yyz1)
- {
- yySemanticOption* yyz = *yyz0p;
- *yyz0p = yyz1;
- yyz1 = yyz1->yynext;
- (*yyz0p)->yynext = yyz;
- }
- yyz0p = &(*yyz0p)->yynext;
- }
- yys1->yysemantics.yyfirstVal = yys0->yysemantics.yyfirstVal;
- }
- }
- }
- /** Y0 and Y1 represent two possible actions to take in a given
- * parsing state; return 0 if no combination is possible,
- * 1 if user-mergeable, 2 if Y0 is preferred, 3 if Y1 is preferred. */
- static int
- yypreference (yySemanticOption* y0, yySemanticOption* y1)
- {
- yyRuleNum r0 = y0->yyrule, r1 = y1->yyrule;
- int p0 = yydprec[r0], p1 = yydprec[r1];
- if (p0 == p1)
- {
- if (yymerger[r0] == 0 || yymerger[r0] != yymerger[r1])
- return 0;
- else
- return 1;
- }
- if (p0 == 0 || p1 == 0)
- return 0;
- if (p0 < p1)
- return 3;
- if (p1 < p0)
- return 2;
- return 0;
- }
- static YYRESULTTAG yyresolveValue (yyGLRState* yys,
- yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner);
- /** Resolve the previous N states starting at and including state S. If result
- * != yyok, some states may have been left unresolved possibly with empty
- * semantic option chains. Regardless of whether result = yyok, each state
- * has been left with consistent data so that yydestroyGLRState can be invoked
- * if necessary. */
- static YYRESULTTAG
- yyresolveStates (yyGLRState* yys, int yyn,
- yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
- {
- if (0 < yyn)
- {
- YYASSERT (yys->yypred);
- YYCHK (yyresolveStates (yys->yypred, yyn-1, yystackp, parse_state, scanner));
- if (! yys->yyresolved)
- YYCHK (yyresolveValue (yys, yystackp, parse_state, scanner));
- }
- return yyok;
- }
- /** Resolve the states for the RHS of OPT, perform its user action, and return
- * the semantic value and location. Regardless of whether result = yyok, all
- * RHS states have been destroyed (assuming the user action destroys all RHS
- * semantic values if invoked). */
- static YYRESULTTAG
- yyresolveAction (yySemanticOption* yyopt, yyGLRStack* yystackp,
- YYSTYPE* yyvalp, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
- {
- yyGLRStackItem yyrhsVals[YYMAXRHS + YYMAXLEFT + 1];
- int yynrhs = yyrhsLength (yyopt->yyrule);
- YYRESULTTAG yyflag =
- yyresolveStates (yyopt->yystate, yynrhs, yystackp, parse_state, scanner);
- if (yyflag != yyok)
- {
- yyGLRState *yys;
- for (yys = yyopt->yystate; yynrhs > 0; yys = yys->yypred, yynrhs -= 1)
- yydestroyGLRState ("Cleanup: popping", yys, parse_state, scanner);
- return yyflag;
- }
- yyrhsVals[YYMAXRHS + YYMAXLEFT].yystate.yypred = yyopt->yystate;
- if (yynrhs == 0)
- /* Set default location. */
- yyrhsVals[YYMAXRHS + YYMAXLEFT - 1].yystate.yyloc = yyopt->yystate->yyloc;
- {
- int yychar_current = yychar;
- YYSTYPE yylval_current = yylval;
- YYLTYPE yylloc_current = yylloc;
- yychar = yyopt->yyrawchar;
- yylval = yyopt->yyval;
- yylloc = yyopt->yyloc;
- yyflag = yyuserAction (yyopt->yyrule, yynrhs,
- yyrhsVals + YYMAXRHS + YYMAXLEFT - 1,
- yystackp, yyvalp, yylocp, parse_state, scanner);
- yychar = yychar_current;
- yylval = yylval_current;
- yylloc = yylloc_current;
- }
- return yyflag;
- }
- #if YYDEBUG
- static void
- yyreportTree (yySemanticOption* yyx, int yyindent)
- {
- int yynrhs = yyrhsLength (yyx->yyrule);
- int yyi;
- yyGLRState* yys;
- yyGLRState* yystates[1 + YYMAXRHS];
- yyGLRState yyleftmost_state;
- for (yyi = yynrhs, yys = yyx->yystate; 0 < yyi; yyi -= 1, yys = yys->yypred)
- yystates[yyi] = yys;
- if (yys == YY_NULL)
- {
- yyleftmost_state.yyposn = 0;
- yystates[0] = &yyleftmost_state;
- }
- else
- yystates[0] = yys;
- if (yyx->yystate->yyposn < yys->yyposn + 1)
- YYFPRINTF (stderr, "%*s%s -> <Rule %d, empty>\n",
- yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
- yyx->yyrule - 1);
- else
- YYFPRINTF (stderr, "%*s%s -> <Rule %d, tokens %lu .. %lu>\n",
- yyindent, "", yytokenName (yylhsNonterm (yyx->yyrule)),
- yyx->yyrule - 1, (unsigned long int) (yys->yyposn + 1),
- (unsigned long int) yyx->yystate->yyposn);
- for (yyi = 1; yyi <= yynrhs; yyi += 1)
- {
- if (yystates[yyi]->yyresolved)
- {
- if (yystates[yyi-1]->yyposn+1 > yystates[yyi]->yyposn)
- YYFPRINTF (stderr, "%*s%s <empty>\n", yyindent+2, "",
- yytokenName (yyrhs[yyprhs[yyx->yyrule]+yyi-1]));
- else
- YYFPRINTF (stderr, "%*s%s <tokens %lu .. %lu>\n", yyindent+2, "",
- yytokenName (yyrhs[yyprhs[yyx->yyrule]+yyi-1]),
- (unsigned long int) (yystates[yyi - 1]->yyposn + 1),
- (unsigned long int) yystates[yyi]->yyposn);
- }
- else
- yyreportTree (yystates[yyi]->yysemantics.yyfirstVal, yyindent+2);
- }
- }
- #endif
- /*ARGSUSED*/ static YYRESULTTAG
- yyreportAmbiguity (yySemanticOption* yyx0,
- yySemanticOption* yyx1, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
- {
- YYUSE (yyx0);
- YYUSE (yyx1);
- #if YYDEBUG
- YYFPRINTF (stderr, "Ambiguity detected.\n");
- YYFPRINTF (stderr, "Option 1,\n");
- yyreportTree (yyx0, 2);
- YYFPRINTF (stderr, "\nOption 2,\n");
- yyreportTree (yyx1, 2);
- YYFPRINTF (stderr, "\n");
- #endif
- yyerror (yylocp, parse_state, scanner, YY_("syntax is ambiguous"));
- return yyabort;
- }
- /** Starting at and including state S1, resolve the location for each of the
- * previous N1 states that is unresolved. The first semantic option of a state
- * is always chosen. */
- static void
- yyresolveLocations (yyGLRState* yys1, int yyn1,
- yyGLRStack *yystackp, ParseState* parse_state, yyscan_t scanner)
- {
- if (0 < yyn1)
- {
- yyresolveLocations (yys1->yypred, yyn1 - 1, yystackp, parse_state, scanner);
- if (!yys1->yyresolved)
- {
- yyGLRStackItem yyrhsloc[1 + YYMAXRHS];
- int yynrhs;
- yySemanticOption *yyoption = yys1->yysemantics.yyfirstVal;
- YYASSERT (yyoption != YY_NULL);
- yynrhs = yyrhsLength (yyoption->yyrule);
- if (yynrhs > 0)
- {
- yyGLRState *yys;
- int yyn;
- yyresolveLocations (yyoption->yystate, yynrhs,
- yystackp, parse_state, scanner);
- for (yys = yyoption->yystate, yyn = yynrhs;
- yyn > 0;
- yys = yys->yypred, yyn -= 1)
- yyrhsloc[yyn].yystate.yyloc = yys->yyloc;
- }
- else
- {
- /* Both yyresolveAction and yyresolveLocations traverse the GSS
- in reverse rightmost order. It is only necessary to invoke
- yyresolveLocations on a subforest for which yyresolveAction
- would have been invoked next had an ambiguity not been
- detected. Thus the location of the previous state (but not
- necessarily the previous state itself) is guaranteed to be
- resolved already. */
- yyGLRState *yyprevious = yyoption->yystate;
- yyrhsloc[0].yystate.yyloc = yyprevious->yyloc;
- }
- {
- int yychar_current = yychar;
- YYSTYPE yylval_current = yylval;
- YYLTYPE yylloc_current = yylloc;
- yychar = yyoption->yyrawchar;
- yylval = yyoption->yyval;
- yylloc = yyoption->yyloc;
- YYLLOC_DEFAULT ((yys1->yyloc), yyrhsloc, yynrhs);
- yychar = yychar_current;
- yylval = yylval_current;
- yylloc = yylloc_current;
- }
- }
- }
- }
- /** Resolve the ambiguity represented in state S, perform the indicated
- * actions, and set the semantic value of S. If result != yyok, the chain of
- * semantic options in S has been cleared instead or it has been left
- * unmodified except that redundant options may have been removed. Regardless
- * of whether result = yyok, S has been left with consistent data so that
- * yydestroyGLRState can be invoked if necessary. */
- static YYRESULTTAG
- yyresolveValue (yyGLRState* yys, yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
- {
- yySemanticOption* yyoptionList = yys->yysemantics.yyfirstVal;
- yySemanticOption* yybest = yyoptionList;
- yySemanticOption** yypp;
- yybool yymerge = yyfalse;
- YYSTYPE yysval;
- YYRESULTTAG yyflag;
- YYLTYPE *yylocp = &yys->yyloc;
- for (yypp = &yyoptionList->yynext; *yypp != YY_NULL; )
- {
- yySemanticOption* yyp = *yypp;
- if (yyidenticalOptions (yybest, yyp))
- {
- yymergeOptionSets (yybest, yyp);
- *yypp = yyp->yynext;
- }
- else
- {
- switch (yypreference (yybest, yyp))
- {
- case 0:
- yyresolveLocations (yys, 1, yystackp, parse_state, scanner);
- return yyreportAmbiguity (yybest, yyp, yylocp, parse_state, scanner);
- break;
- case 1:
- yymerge = yytrue;
- break;
- case 2:
- break;
- case 3:
- yybest = yyp;
- yymerge = yyfalse;
- break;
- default:
- /* This cannot happen so it is not worth a YYASSERT (yyfalse),
- but some compilers complain if the default case is
- omitted. */
- break;
- }
- yypp = &yyp->yynext;
- }
- }
- if (yymerge)
- {
- yySemanticOption* yyp;
- int yyprec = yydprec[yybest->yyrule];
- yyflag = yyresolveAction (yybest, yystackp, &yysval, yylocp, parse_state, scanner);
- if (yyflag == yyok)
- for (yyp = yybest->yynext; yyp != YY_NULL; yyp = yyp->yynext)
- {
- if (yyprec == yydprec[yyp->yyrule])
- {
- YYSTYPE yysval_other;
- YYLTYPE yydummy;
- yyflag = yyresolveAction (yyp, yystackp, &yysval_other, &yydummy, parse_state, scanner);
- if (yyflag != yyok)
- {
- yydestruct ("Cleanup: discarding incompletely merged value for",
- yystos[yys->yylrState],
- &yysval, yylocp, parse_state, scanner);
- break;
- }
- yyuserMerge (yymerger[yyp->yyrule], &yysval, &yysval_other);
- }
- }
- }
- else
- yyflag = yyresolveAction (yybest, yystackp, &yysval, yylocp, parse_state, scanner);
- if (yyflag == yyok)
- {
- yys->yyresolved = yytrue;
- yys->yysemantics.yysval = yysval;
- }
- else
- yys->yysemantics.yyfirstVal = YY_NULL;
- return yyflag;
- }
- static YYRESULTTAG
- yyresolveStack (yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
- {
- if (yystackp->yysplitPoint != YY_NULL)
- {
- yyGLRState* yys;
- int yyn;
- for (yyn = 0, yys = yystackp->yytops.yystates[0];
- yys != yystackp->yysplitPoint;
- yys = yys->yypred, yyn += 1)
- continue;
- YYCHK (yyresolveStates (yystackp->yytops.yystates[0], yyn, yystackp
- , parse_state, scanner));
- }
- return yyok;
- }
- static void
- yycompressStack (yyGLRStack* yystackp)
- {
- yyGLRState* yyp, *yyq, *yyr;
- if (yystackp->yytops.yysize != 1 || yystackp->yysplitPoint == YY_NULL)
- return;
- for (yyp = yystackp->yytops.yystates[0], yyq = yyp->yypred, yyr = YY_NULL;
- yyp != yystackp->yysplitPoint;
- yyr = yyp, yyp = yyq, yyq = yyp->yypred)
- yyp->yypred = yyr;
- yystackp->yyspaceLeft += yystackp->yynextFree - yystackp->yyitems;
- yystackp->yynextFree = ((yyGLRStackItem*) yystackp->yysplitPoint) + 1;
- yystackp->yyspaceLeft -= yystackp->yynextFree - yystackp->yyitems;
- yystackp->yysplitPoint = YY_NULL;
- yystackp->yylastDeleted = YY_NULL;
- while (yyr != YY_NULL)
- {
- yystackp->yynextFree->yystate = *yyr;
- yyr = yyr->yypred;
- yystackp->yynextFree->yystate.yypred = &yystackp->yynextFree[-1].yystate;
- yystackp->yytops.yystates[0] = &yystackp->yynextFree->yystate;
- yystackp->yynextFree += 1;
- yystackp->yyspaceLeft -= 1;
- }
- }
- static YYRESULTTAG
- yyprocessOneStack (yyGLRStack* yystackp, size_t yyk,
- size_t yyposn, YYLTYPE *yylocp, ParseState* parse_state, yyscan_t scanner)
- {
- int yyaction;
- const short int* yyconflicts;
- yyRuleNum yyrule;
- while (yystackp->yytops.yystates[yyk] != YY_NULL)
- {
- yyStateNum yystate = yystackp->yytops.yystates[yyk]->yylrState;
- YYDPRINTF ((stderr, "Stack %lu Entering state %d\n",
- (unsigned long int) yyk, yystate));
- YYASSERT (yystate != YYFINAL);
- if (yyisDefaultedState (yystate))
- {
- yyrule = yydefaultAction (yystate);
- if (yyrule == 0)
- {
- YYDPRINTF ((stderr, "Stack %lu dies.\n",
- (unsigned long int) yyk));
- yymarkStackDeleted (yystackp, yyk);
- return yyok;
- }
- YYCHK (yyglrReduce (yystackp, yyk, yyrule, yyfalse, parse_state, scanner));
- }
- else
- {
- yySymbol yytoken;
- yystackp->yytops.yylookaheadNeeds[yyk] = yytrue;
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
- yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
- while (*yyconflicts != 0)
- {
- size_t yynewStack = yysplitStack (yystackp, yyk);
- YYDPRINTF ((stderr, "Splitting off stack %lu from %lu.\n",
- (unsigned long int) yynewStack,
- (unsigned long int) yyk));
- YYCHK (yyglrReduce (yystackp, yynewStack,
- *yyconflicts, yyfalse, parse_state, scanner));
- YYCHK (yyprocessOneStack (yystackp, yynewStack,
- yyposn, yylocp, parse_state, scanner));
- yyconflicts += 1;
- }
- if (yyisShiftAction (yyaction))
- break;
- else if (yyisErrorAction (yyaction))
- {
- YYDPRINTF ((stderr, "Stack %lu dies.\n",
- (unsigned long int) yyk));
- yymarkStackDeleted (yystackp, yyk);
- break;
- }
- else
- YYCHK (yyglrReduce (yystackp, yyk, -yyaction,
- yyfalse, parse_state, scanner));
- }
- }
- return yyok;
- }
- /*ARGSUSED*/ static void
- yyreportSyntaxError (yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
- {
- if (yystackp->yyerrState != 0)
- return;
- #if ! YYERROR_VERBOSE
- yyerror (&yylloc, parse_state, scanner, YY_("syntax error"));
- #else
- {
- yySymbol yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
- size_t yysize0 = yytnamerr (YY_NULL, yytokenName (yytoken));
- size_t yysize = yysize0;
- yybool yysize_overflow = yyfalse;
- char* yymsg = YY_NULL;
- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
- /* Internationalized format string. */
- const char *yyformat = YY_NULL;
- /* Arguments of yyformat. */
- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
- /* Number of reported tokens (one for the "unexpected", one per
- "expected"). */
- int yycount = 0;
- /* There are many possibilities here to consider:
- - If this state is a consistent state with a default action, then
- the only way this function was invoked is if the default action
- is an error action. In that case, don't check for expected
- tokens because there are none.
- - The only way there can be no lookahead present (in yychar) is if
- this state is a consistent state with a default action. Thus,
- detecting the absence of a lookahead is sufficient to determine
- that there is no unexpected or expected token to report. In that
- case, just report a simple "syntax error".
- - Don't assume there isn't a lookahead just because this state is a
- consistent state with a default action. There might have been a
- previous inconsistent state, consistent state with a non-default
- action, or user semantic action that manipulated yychar.
- - Of course, the expected token list depends on states to have
- correct lookahead information, and it depends on the parser not
- to perform extra reductions after fetching a lookahead from the
- scanner and before detecting a syntax error. Thus, state merging
- (from LALR or IELR) and default reductions corrupt the expected
- token list. However, the list is correct for canonical LR with
- one exception: it will still contain any token that will not be
- accepted due to an error action in a later state.
- */
- if (yytoken != YYEMPTY)
- {
- int yyn = yypact[yystackp->yytops.yystates[0]->yylrState];
- yyarg[yycount++] = yytokenName (yytoken);
- if (!yypact_value_is_default (yyn))
- {
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. In other words, skip the first -YYN actions for this
- state because they are default actions. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn + 1;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yyx;
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
- && !yytable_value_is_error (yytable[yyx + yyn]))
- {
- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
- {
- yycount = 1;
- yysize = yysize0;
- break;
- }
- yyarg[yycount++] = yytokenName (yyx);
- {
- size_t yysz = yysize + yytnamerr (YY_NULL, yytokenName (yyx));
- yysize_overflow |= yysz < yysize;
- yysize = yysz;
- }
- }
- }
- }
- switch (yycount)
- {
- #define YYCASE_(N, S) \
- case N: \
- yyformat = S; \
- break
- YYCASE_(0, YY_("syntax error"));
- YYCASE_(1, YY_("syntax error, unexpected %s"));
- YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
- YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
- YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
- YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
- #undef YYCASE_
- }
- {
- size_t yysz = yysize + strlen (yyformat);
- yysize_overflow |= yysz < yysize;
- yysize = yysz;
- }
- if (!yysize_overflow)
- yymsg = (char *) YYMALLOC (yysize);
- if (yymsg)
- {
- char *yyp = yymsg;
- int yyi = 0;
- while ((*yyp = *yyformat))
- {
- if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
- {
- yyp += yytnamerr (yyp, yyarg[yyi++]);
- yyformat += 2;
- }
- else
- {
- yyp++;
- yyformat++;
- }
- }
- yyerror (&yylloc, parse_state, scanner, yymsg);
- YYFREE (yymsg);
- }
- else
- {
- yyerror (&yylloc, parse_state, scanner, YY_("syntax error"));
- yyMemoryExhausted (yystackp);
- }
- }
- #endif /* YYERROR_VERBOSE */
- yynerrs += 1;
- }
- /* Recover from a syntax error on *YYSTACKP, assuming that *YYSTACKP->YYTOKENP,
- yylval, and yylloc are the syntactic category, semantic value, and location
- of the lookahead. */
- /*ARGSUSED*/ static void
- yyrecoverSyntaxError (yyGLRStack* yystackp, ParseState* parse_state, yyscan_t scanner)
- {
- size_t yyk;
- int yyj;
- if (yystackp->yyerrState == 3)
- /* We just shifted the error token and (perhaps) took some
- reductions. Skip tokens until we can proceed. */
- while (YYID (yytrue))
- {
- yySymbol yytoken;
- if (yychar == YYEOF)
- yyFail (yystackp, &yylloc, parse_state, scanner, YY_NULL);
- if (yychar != YYEMPTY)
- {
- /* We throw away the lookahead, but the error range
- of the shifted error token must take it into account. */
- yyGLRState *yys = yystackp->yytops.yystates[0];
- yyGLRStackItem yyerror_range[3];
- yyerror_range[1].yystate.yyloc = yys->yyloc;
- yyerror_range[2].yystate.yyloc = yylloc;
- YYLLOC_DEFAULT ((yys->yyloc), yyerror_range, 2);
- yytoken = YYTRANSLATE (yychar);
- yydestruct ("Error: discarding",
- yytoken, &yylval, &yylloc, parse_state, scanner);
- }
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
- yyj = yypact[yystackp->yytops.yystates[0]->yylrState];
- if (yypact_value_is_default (yyj))
- return;
- yyj += yytoken;
- if (yyj < 0 || YYLAST < yyj || yycheck[yyj] != yytoken)
- {
- if (yydefact[yystackp->yytops.yystates[0]->yylrState] != 0)
- return;
- }
- else if (! yytable_value_is_error (yytable[yyj]))
- return;
- }
- /* Reduce to one stack. */
- for (yyk = 0; yyk < yystackp->yytops.yysize; yyk += 1)
- if (yystackp->yytops.yystates[yyk] != YY_NULL)
- break;
- if (yyk >= yystackp->yytops.yysize)
- yyFail (yystackp, &yylloc, parse_state, scanner, YY_NULL);
- for (yyk += 1; yyk < yystackp->yytops.yysize; yyk += 1)
- yymarkStackDeleted (yystackp, yyk);
- yyremoveDeletes (yystackp);
- yycompressStack (yystackp);
- /* Now pop stack until we find a state that shifts the error token. */
- yystackp->yyerrState = 3;
- while (yystackp->yytops.yystates[0] != YY_NULL)
- {
- yyGLRState *yys = yystackp->yytops.yystates[0];
- yyj = yypact[yys->yylrState];
- if (! yypact_value_is_default (yyj))
- {
- yyj += YYTERROR;
- if (0 <= yyj && yyj <= YYLAST && yycheck[yyj] == YYTERROR
- && yyisShiftAction (yytable[yyj]))
- {
- /* Shift the error token. */
- /* First adjust its location.*/
- YYLTYPE yyerrloc;
- yystackp->yyerror_range[2].yystate.yyloc = yylloc;
- YYLLOC_DEFAULT (yyerrloc, (yystackp->yyerror_range), 2);
- YY_SYMBOL_PRINT ("Shifting", yystos[yytable[yyj]],
- &yylval, &yyerrloc);
- yyglrShift (yystackp, 0, yytable[yyj],
- yys->yyposn, &yylval, &yyerrloc);
- yys = yystackp->yytops.yystates[0];
- break;
- }
- }
- yystackp->yyerror_range[1].yystate.yyloc = yys->yyloc;
- if (yys->yypred != YY_NULL)
- yydestroyGLRState ("Error: popping", yys, parse_state, scanner);
- yystackp->yytops.yystates[0] = yys->yypred;
- yystackp->yynextFree -= 1;
- yystackp->yyspaceLeft += 1;
- }
- if (yystackp->yytops.yystates[0] == YY_NULL)
- yyFail (yystackp, &yylloc, parse_state, scanner, YY_NULL);
- }
- #define YYCHK1(YYE) \
- do { \
- switch (YYE) { \
- case yyok: \
- break; \
- case yyabort: \
- goto yyabortlab; \
- case yyaccept: \
- goto yyacceptlab; \
- case yyerr: \
- goto yyuser_error; \
- default: \
- goto yybuglab; \
- } \
- } while (YYID (0))
- /*----------.
- | yyparse. |
- `----------*/
- int
- yyparse (ParseState* parse_state, yyscan_t scanner)
- {
- int yyresult;
- yyGLRStack yystack;
- yyGLRStack* const yystackp = &yystack;
- size_t yyposn;
- YYDPRINTF ((stderr, "Starting parse\n"));
- yychar = YYEMPTY;
- yylval = yyval_default;
- yylloc = yyloc_default;
- if (! yyinitGLRStack (yystackp, YYINITDEPTH))
- goto yyexhaustedlab;
- switch (YYSETJMP (yystack.yyexception_buffer))
- {
- case 0: break;
- case 1: goto yyabortlab;
- case 2: goto yyexhaustedlab;
- default: goto yybuglab;
- }
- yyglrShift (&yystack, 0, 0, 0, &yylval, &yylloc);
- yyposn = 0;
- while (YYID (yytrue))
- {
- /* For efficiency, we have two loops, the first of which is
- specialized to deterministic operation (single stack, no
- potential ambiguity). */
- /* Standard mode */
- while (YYID (yytrue))
- {
- yyRuleNum yyrule;
- int yyaction;
- const short int* yyconflicts;
- yyStateNum yystate = yystack.yytops.yystates[0]->yylrState;
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
- if (yystate == YYFINAL)
- goto yyacceptlab;
- if (yyisDefaultedState (yystate))
- {
- yyrule = yydefaultAction (yystate);
- if (yyrule == 0)
- {
- yystack.yyerror_range[1].yystate.yyloc = yylloc;
- yyreportSyntaxError (&yystack, parse_state, scanner);
- goto yyuser_error;
- }
- YYCHK1 (yyglrReduce (&yystack, 0, yyrule, yytrue, parse_state, scanner));
- }
- else
- {
- yySymbol yytoken;
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
- yychar = YYLEX;
- }
- if (yychar <= YYEOF)
- {
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
- }
- else
- {
- yytoken = YYTRANSLATE (yychar);
- YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
- yygetLRActions (yystate, yytoken, &yyaction, &yyconflicts);
- if (*yyconflicts != 0)
- break;
- if (yyisShiftAction (yyaction))
- {
- YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
- yychar = YYEMPTY;
- yyposn += 1;
- yyglrShift (&yystack, 0, yyaction, yyposn, &yylval, &yylloc);
- if (0 < yystack.yyerrState)
- yystack.yyerrState -= 1;
- }
- else if (yyisErrorAction (yyaction))
- {
- yystack.yyerror_range[1].yystate.yyloc = yylloc;
- yyreportSyntaxError (&yystack, parse_state, scanner);
- goto yyuser_error;
- }
- else
- YYCHK1 (yyglrReduce (&yystack, 0, -yyaction, yytrue, parse_state, scanner));
- }
- }
- while (YYID (yytrue))
- {
- yySymbol yytoken_to_shift;
- size_t yys;
- for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
- yystackp->yytops.yylookaheadNeeds[yys] = yychar != YYEMPTY;
- /* yyprocessOneStack returns one of three things:
- - An error flag. If the caller is yyprocessOneStack, it
- immediately returns as well. When the caller is finally
- yyparse, it jumps to an error label via YYCHK1.
- - yyok, but yyprocessOneStack has invoked yymarkStackDeleted
- (&yystack, yys), which sets the top state of yys to NULL. Thus,
- yyparse's following invocation of yyremoveDeletes will remove
- the stack.
- - yyok, when ready to shift a token.
- Except in the first case, yyparse will invoke yyremoveDeletes and
- then shift the next token onto all remaining stacks. This
- synchronization of the shift (that is, after all preceding
- reductions on all stacks) helps prevent double destructor calls
- on yylval in the event of memory exhaustion. */
- for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
- YYCHK1 (yyprocessOneStack (&yystack, yys, yyposn, &yylloc, parse_state, scanner));
- yyremoveDeletes (&yystack);
- if (yystack.yytops.yysize == 0)
- {
- yyundeleteLastStack (&yystack);
- if (yystack.yytops.yysize == 0)
- yyFail (&yystack, &yylloc, parse_state, scanner, YY_("syntax error"));
- YYCHK1 (yyresolveStack (&yystack, parse_state, scanner));
- YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
- yystack.yyerror_range[1].yystate.yyloc = yylloc;
- yyreportSyntaxError (&yystack, parse_state, scanner);
- goto yyuser_error;
- }
- /* If any yyglrShift call fails, it will fail after shifting. Thus,
- a copy of yylval will already be on stack 0 in the event of a
- failure in the following loop. Thus, yychar is set to YYEMPTY
- before the loop to make sure the user destructor for yylval isn't
- called twice. */
- yytoken_to_shift = YYTRANSLATE (yychar);
- yychar = YYEMPTY;
- yyposn += 1;
- for (yys = 0; yys < yystack.yytops.yysize; yys += 1)
- {
- int yyaction;
- const short int* yyconflicts;
- yyStateNum yystate = yystack.yytops.yystates[yys]->yylrState;
- yygetLRActions (yystate, yytoken_to_shift, &yyaction,
- &yyconflicts);
- /* Note that yyconflicts were handled by yyprocessOneStack. */
- YYDPRINTF ((stderr, "On stack %lu, ", (unsigned long int) yys));
- YY_SYMBOL_PRINT ("shifting", yytoken_to_shift, &yylval, &yylloc);
- yyglrShift (&yystack, yys, yyaction, yyposn,
- &yylval, &yylloc);
- YYDPRINTF ((stderr, "Stack %lu now in state #%d\n",
- (unsigned long int) yys,
- yystack.yytops.yystates[yys]->yylrState));
- }
- if (yystack.yytops.yysize == 1)
- {
- YYCHK1 (yyresolveStack (&yystack, parse_state, scanner));
- YYDPRINTF ((stderr, "Returning to deterministic operation.\n"));
- yycompressStack (&yystack);
- break;
- }
- }
- continue;
- yyuser_error:
- yyrecoverSyntaxError (&yystack, parse_state, scanner);
- yyposn = yystack.yytops.yystates[0]->yyposn;
- }
- yyacceptlab:
- yyresult = 0;
- goto yyreturn;
- yybuglab:
- YYASSERT (yyfalse);
- goto yyabortlab;
- yyabortlab:
- yyresult = 1;
- goto yyreturn;
- yyexhaustedlab:
- yyerror (&yylloc, parse_state, scanner, YY_("memory exhausted"));
- yyresult = 2;
- goto yyreturn;
- yyreturn:
- if (yychar != YYEMPTY)
- yydestruct ("Cleanup: discarding lookahead",
- YYTRANSLATE (yychar), &yylval, &yylloc, parse_state, scanner);
- /* If the stack is well-formed, pop the stack until it is empty,
- destroying its entries as we go. But free the stack regardless
- of whether it is well-formed. */
- if (yystack.yyitems)
- {
- yyGLRState** yystates = yystack.yytops.yystates;
- if (yystates)
- {
- size_t yysize = yystack.yytops.yysize;
- size_t yyk;
- for (yyk = 0; yyk < yysize; yyk += 1)
- if (yystates[yyk])
- {
- while (yystates[yyk])
- {
- yyGLRState *yys = yystates[yyk];
- yystack.yyerror_range[1].yystate.yyloc = yys->yyloc;
- if (yys->yypred != YY_NULL)
- yydestroyGLRState ("Cleanup: popping", yys, parse_state, scanner);
- yystates[yyk] = yys->yypred;
- yystack.yynextFree -= 1;
- yystack.yyspaceLeft += 1;
- }
- break;
- }
- }
- yyfreeGLRStack (&yystack);
- }
- /* Make sure YYID is used. */
- return YYID (yyresult);
- }
- /* DEBUGGING ONLY */
- #if YYDEBUG
- static void yypstack (yyGLRStack* yystackp, size_t yyk)
- __attribute__ ((__unused__));
- static void yypdumpstack (yyGLRStack* yystackp) __attribute__ ((__unused__));
- static void
- yy_yypstack (yyGLRState* yys)
- {
- if (yys->yypred)
- {
- yy_yypstack (yys->yypred);
- YYFPRINTF (stderr, " -> ");
- }
- YYFPRINTF (stderr, "%d@%lu", yys->yylrState,
- (unsigned long int) yys->yyposn);
- }
- static void
- yypstates (yyGLRState* yyst)
- {
- if (yyst == YY_NULL)
- YYFPRINTF (stderr, "<null>");
- else
- yy_yypstack (yyst);
- YYFPRINTF (stderr, "\n");
- }
- static void
- yypstack (yyGLRStack* yystackp, size_t yyk)
- {
- yypstates (yystackp->yytops.yystates[yyk]);
- }
- #define YYINDEX(YYX) \
- ((YYX) == YY_NULL ? -1 : (yyGLRStackItem*) (YYX) - yystackp->yyitems)
- static void
- yypdumpstack (yyGLRStack* yystackp)
- {
- yyGLRStackItem* yyp;
- size_t yyi;
- for (yyp = yystackp->yyitems; yyp < yystackp->yynextFree; yyp += 1)
- {
- YYFPRINTF (stderr, "%3lu. ",
- (unsigned long int) (yyp - yystackp->yyitems));
- if (*(yybool *) yyp)
- {
- YYFPRINTF (stderr, "Res: %d, LR State: %d, posn: %lu, pred: %ld",
- yyp->yystate.yyresolved, yyp->yystate.yylrState,
- (unsigned long int) yyp->yystate.yyposn,
- (long int) YYINDEX (yyp->yystate.yypred));
- if (! yyp->yystate.yyresolved)
- YYFPRINTF (stderr, ", firstVal: %ld",
- (long int) YYINDEX (yyp->yystate
- .yysemantics.yyfirstVal));
- }
- else
- {
- YYFPRINTF (stderr, "Option. rule: %d, state: %ld, next: %ld",
- yyp->yyoption.yyrule - 1,
- (long int) YYINDEX (yyp->yyoption.yystate),
- (long int) YYINDEX (yyp->yyoption.yynext));
- }
- YYFPRINTF (stderr, "\n");
- }
- YYFPRINTF (stderr, "Tops:");
- for (yyi = 0; yyi < yystackp->yytops.yysize; yyi += 1)
- YYFPRINTF (stderr, "%lu: %ld; ", (unsigned long int) yyi,
- (long int) YYINDEX (yystackp->yytops.yystates[yyi]));
- YYFPRINTF (stderr, "\n");
- }
- #endif
- /* Line 2575 of glr.c */
- #line 863 "BsParserFX.y"
- void yyerror(YYLTYPE *locp, ParseState* parse_state, yyscan_t scanner, const char *msg)
- {
- parse_state->hasError = 1;
- parse_state->errorLine = locp->first_line;
- parse_state->errorColumn = locp->first_column;
- parse_state->errorMessage = mmalloc_strdup(parse_state->memContext, msg);
- }
|