123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893 |
- #line 1 "dhcp6_lexer.cc"
- #line 3 "dhcp6_lexer.cc"
- #define YY_INT_ALIGNED short int
- /* A lexical scanner generated by flex */
- /* %not-for-header */
- /* %if-c-only */
- /* %if-not-reentrant */
- #define yy_create_buffer parser6__create_buffer
- #define yy_delete_buffer parser6__delete_buffer
- #define yy_flex_debug parser6__flex_debug
- #define yy_init_buffer parser6__init_buffer
- #define yy_flush_buffer parser6__flush_buffer
- #define yy_load_buffer_state parser6__load_buffer_state
- #define yy_switch_to_buffer parser6__switch_to_buffer
- #define yyin parser6_in
- #define yyleng parser6_leng
- #define yylex parser6_lex
- #define yylineno parser6_lineno
- #define yyout parser6_out
- #define yyrestart parser6_restart
- #define yytext parser6_text
- #define yywrap parser6_wrap
- #define yyalloc parser6_alloc
- #define yyrealloc parser6_realloc
- #define yyfree parser6_free
- /* %endif */
- /* %endif */
- /* %ok-for-header */
- #define FLEX_SCANNER
- #define YY_FLEX_MAJOR_VERSION 2
- #define YY_FLEX_MINOR_VERSION 6
- #define YY_FLEX_SUBMINOR_VERSION 3
- #if YY_FLEX_SUBMINOR_VERSION > 0
- #define FLEX_BETA
- #endif
- /* %if-c++-only */
- /* %endif */
- /* %if-c-only */
- #define yy_create_buffer parser6__create_buffer
- #define yy_delete_buffer parser6__delete_buffer
- #define yy_scan_buffer parser6__scan_buffer
- #define yy_scan_string parser6__scan_string
- #define yy_scan_bytes parser6__scan_bytes
- #define yy_init_buffer parser6__init_buffer
- #define yy_flush_buffer parser6__flush_buffer
- #define yy_load_buffer_state parser6__load_buffer_state
- #define yy_switch_to_buffer parser6__switch_to_buffer
- #define yypush_buffer_state parser6_push_buffer_state
- #define yypop_buffer_state parser6_pop_buffer_state
- #define yyensure_buffer_stack parser6_ensure_buffer_stack
- #define yylex parser6_lex
- #define yyrestart parser6_restart
- #define yylex_init parser6_lex_init
- #define yylex_init_extra parser6_lex_init_extra
- #define yylex_destroy parser6_lex_destroy
- #define yyget_debug parser6_get_debug
- #define yyset_debug parser6_set_debug
- #define yyget_extra parser6_get_extra
- #define yyset_extra parser6_set_extra
- #define yyget_in parser6_get_in
- #define yyset_in parser6_set_in
- #define yyget_out parser6_get_out
- #define yyset_out parser6_set_out
- #define yyget_leng parser6_get_leng
- #define yyget_text parser6_get_text
- #define yyget_lineno parser6_get_lineno
- #define yyset_lineno parser6_set_lineno
- #define yywrap parser6_wrap
- /* %endif */
- #define yyalloc parser6_alloc
- #define yyrealloc parser6_realloc
- #define yyfree parser6_free
- /* %if-c-only */
- #define yytext parser6_text
- #define yyleng parser6_leng
- #define yyin parser6_in
- #define yyout parser6_out
- #define yy_flex_debug parser6__flex_debug
- #define yylineno parser6_lineno
- /* %endif */
- /* First, we deal with platform-specific or compiler-specific issues. */
- /* begin standard C headers. */
- /* %if-c-only */
- #include <stdio.h>
- #include <string.h>
- #include <errno.h>
- #include <stdlib.h>
- /* %endif */
- /* %if-tables-serialization */
- /* %endif */
- /* end standard C headers. */
- /* %if-c-or-c++ */
- /* flex integer type definitions */
- #ifndef FLEXINT_H
- #define FLEXINT_H
- /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
- #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
- /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types.
- */
- #ifndef __STDC_LIMIT_MACROS
- #define __STDC_LIMIT_MACROS 1
- #endif
- #include <inttypes.h>
- typedef int8_t flex_int8_t;
- typedef uint8_t flex_uint8_t;
- typedef int16_t flex_int16_t;
- typedef uint16_t flex_uint16_t;
- typedef int32_t flex_int32_t;
- typedef uint32_t flex_uint32_t;
- #else
- typedef signed char flex_int8_t;
- typedef short int flex_int16_t;
- typedef int flex_int32_t;
- typedef unsigned char flex_uint8_t;
- typedef unsigned short int flex_uint16_t;
- typedef unsigned int flex_uint32_t;
- /* Limits of integral types. */
- #ifndef INT8_MIN
- #define INT8_MIN (-128)
- #endif
- #ifndef INT16_MIN
- #define INT16_MIN (-32767-1)
- #endif
- #ifndef INT32_MIN
- #define INT32_MIN (-2147483647-1)
- #endif
- #ifndef INT8_MAX
- #define INT8_MAX (127)
- #endif
- #ifndef INT16_MAX
- #define INT16_MAX (32767)
- #endif
- #ifndef INT32_MAX
- #define INT32_MAX (2147483647)
- #endif
- #ifndef UINT8_MAX
- #define UINT8_MAX (255U)
- #endif
- #ifndef UINT16_MAX
- #define UINT16_MAX (65535U)
- #endif
- #ifndef UINT32_MAX
- #define UINT32_MAX (4294967295U)
- #endif
- #endif /* ! C99 */
- #endif /* ! FLEXINT_H */
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- /* TODO: this is always defined, so inline it */
- #define yyconst const
- #if defined(__GNUC__) && __GNUC__ >= 3
- #define yynoreturn __attribute__((__noreturn__))
- #else
- #define yynoreturn
- #endif
- /* %not-for-header */
- /* Returned upon end-of-file. */
- #define YY_NULL 0
- /* %ok-for-header */
- /* %not-for-header */
- /* Promotes a possibly negative, possibly signed char to an
- * integer in range [0..255] for use as an array index.
- */
- #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
- /* %ok-for-header */
- /* %if-reentrant */
- /* %endif */
- /* %if-not-reentrant */
- /* %endif */
- /* Enter a start condition. This macro really ought to take a parameter,
- * but we do it the disgusting crufty way forced on us by the ()-less
- * definition of BEGIN.
- */
- #define BEGIN (yy_start) = 1 + 2 *
- /* Translate the current start state into a value that can be later handed
- * to BEGIN to return to the state. The YYSTATE alias is for lex
- * compatibility.
- */
- #define YY_START (((yy_start) - 1) / 2)
- #define YYSTATE YY_START
- /* Action number for EOF rule of a given start state. */
- #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
- /* Special action meaning "start processing a new file". */
- #define YY_NEW_FILE parser6_restart(parser6_in )
- #define YY_END_OF_BUFFER_CHAR 0
- /* Size of default input buffer. */
- #ifndef YY_BUF_SIZE
- #ifdef __ia64__
- /* On IA-64, the buffer size is 16k, not 8k.
- * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
- * Ditto for the __ia64__ case accordingly.
- */
- #define YY_BUF_SIZE 32768
- #else
- #define YY_BUF_SIZE 16384
- #endif /* __ia64__ */
- #endif
- /* The state buf must be large enough to hold one state per character in the main buffer.
- */
- #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
- #ifndef YY_TYPEDEF_YY_BUFFER_STATE
- #define YY_TYPEDEF_YY_BUFFER_STATE
- typedef struct yy_buffer_state *YY_BUFFER_STATE;
- #endif
- #ifndef YY_TYPEDEF_YY_SIZE_T
- #define YY_TYPEDEF_YY_SIZE_T
- typedef size_t yy_size_t;
- #endif
- /* %if-not-reentrant */
- extern int parser6_leng;
- /* %endif */
- /* %if-c-only */
- /* %if-not-reentrant */
- extern FILE *parser6_in, *parser6_out;
- /* %endif */
- /* %endif */
- #define EOB_ACT_CONTINUE_SCAN 0
- #define EOB_ACT_END_OF_FILE 1
- #define EOB_ACT_LAST_MATCH 2
-
- #define YY_LESS_LINENO(n)
- #define YY_LINENO_REWIND_TO(ptr)
-
- /* Return all but the first "n" matched characters back to the input stream. */
- #define yyless(n) \
- do \
- { \
- /* Undo effects of setting up parser6_text. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- *yy_cp = (yy_hold_char); \
- YY_RESTORE_YY_MORE_OFFSET \
- (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
- YY_DO_BEFORE_ACTION; /* set up parser6_text again */ \
- } \
- while ( 0 )
- #define unput(c) yyunput( c, (yytext_ptr) )
- #ifndef YY_STRUCT_YY_BUFFER_STATE
- #define YY_STRUCT_YY_BUFFER_STATE
- struct yy_buffer_state
- {
- /* %if-c-only */
- FILE *yy_input_file;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- char *yy_ch_buf; /* input buffer */
- char *yy_buf_pos; /* current position in input buffer */
- /* Size of input buffer in bytes, not including room for EOB
- * characters.
- */
- int yy_buf_size;
- /* Number of characters read into yy_ch_buf, not including EOB
- * characters.
- */
- int yy_n_chars;
- /* Whether we "own" the buffer - i.e., we know we created it,
- * and can realloc() it to grow it, and should free() it to
- * delete it.
- */
- int yy_is_our_buffer;
- /* Whether this is an "interactive" input source; if so, and
- * if we're using stdio for input, then we want to use getc()
- * instead of fread(), to make sure we stop fetching input after
- * each newline.
- */
- int yy_is_interactive;
- /* Whether we're considered to be at the beginning of a line.
- * If so, '^' rules will be active on the next match, otherwise
- * not.
- */
- int yy_at_bol;
- int yy_bs_lineno; /**< The line count. */
- int yy_bs_column; /**< The column count. */
- /* Whether to try to fill the input buffer when we reach the
- * end of it.
- */
- int yy_fill_buffer;
- int yy_buffer_status;
- #define YY_BUFFER_NEW 0
- #define YY_BUFFER_NORMAL 1
- /* When an EOF's been seen but there's still some text to process
- * then we mark the buffer as YY_EOF_PENDING, to indicate that we
- * shouldn't try reading from the input source any more. We might
- * still have a bunch of tokens to match, though, because of
- * possible backing-up.
- *
- * When we actually see the EOF, we change the status to "new"
- * (via parser6_restart()), so that the user can continue scanning by
- * just pointing parser6_in at a new input file.
- */
- #define YY_BUFFER_EOF_PENDING 2
- };
- #endif /* !YY_STRUCT_YY_BUFFER_STATE */
- /* %if-c-only Standard (non-C++) definition */
- /* %not-for-header */
- /* %if-not-reentrant */
- /* Stack of input buffers. */
- static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
- static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
- static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
- /* %endif */
- /* %ok-for-header */
- /* %endif */
- /* We provide macros for accessing buffer states in case in the
- * future we want to put the buffer states in a more general
- * "scanner state".
- *
- * Returns the top of the stack, or NULL.
- */
- #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
- ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
- : NULL)
- /* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
- #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
- /* %if-c-only Standard (non-C++) definition */
- /* %if-not-reentrant */
- /* %not-for-header */
- /* yy_hold_char holds the character lost when parser6_text is formed. */
- static char yy_hold_char;
- static int yy_n_chars; /* number of characters read into yy_ch_buf */
- int parser6_leng;
- /* Points to current character in buffer. */
- static char *yy_c_buf_p = NULL;
- static int yy_init = 0; /* whether we need to initialize */
- static int yy_start = 0; /* start state number */
- /* Flag which is used to allow parser6_wrap()'s to do buffer switches
- * instead of setting up a fresh parser6_in. A bit of a hack ...
- */
- static int yy_did_buffer_switch_on_eof;
- /* %ok-for-header */
- /* %endif */
- void parser6_restart ( FILE *input_file );
- void parser6__switch_to_buffer ( YY_BUFFER_STATE new_buffer );
- YY_BUFFER_STATE parser6__create_buffer ( FILE *file, int size );
- void parser6__delete_buffer ( YY_BUFFER_STATE b );
- void parser6__flush_buffer ( YY_BUFFER_STATE b );
- void parser6_push_buffer_state ( YY_BUFFER_STATE new_buffer );
- void parser6_pop_buffer_state ( void );
- static void parser6_ensure_buffer_stack ( void );
- static void parser6__load_buffer_state ( void );
- static void parser6__init_buffer ( YY_BUFFER_STATE b, FILE *file );
- #define YY_FLUSH_BUFFER parser6__flush_buffer(YY_CURRENT_BUFFER )
- YY_BUFFER_STATE parser6__scan_buffer ( char *base, yy_size_t size );
- YY_BUFFER_STATE parser6__scan_string ( const char *yy_str );
- YY_BUFFER_STATE parser6__scan_bytes ( const char *bytes, int len );
- /* %endif */
- void *parser6_alloc ( yy_size_t );
- void *parser6_realloc ( void *, yy_size_t );
- void parser6_free ( void * );
- #define yy_new_buffer parser6__create_buffer
- #define yy_set_interactive(is_interactive) \
- { \
- if ( ! YY_CURRENT_BUFFER ){ \
- parser6_ensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- parser6__create_buffer(parser6_in,YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
- }
- #define yy_set_bol(at_bol) \
- { \
- if ( ! YY_CURRENT_BUFFER ){\
- parser6_ensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- parser6__create_buffer(parser6_in,YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
- }
- #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
- /* %% [1.0] parser6_text/parser6_in/parser6_out/yy_state_type/parser6_lineno etc. def's & init go here */
- /* Begin user sect3 */
- #define parser6_wrap() (/*CONSTCOND*/1)
- #define YY_SKIP_YYWRAP
- #define FLEX_DEBUG
- typedef flex_uint8_t YY_CHAR;
- FILE *parser6_in = NULL, *parser6_out = NULL;
- typedef int yy_state_type;
- extern int parser6_lineno;
- int parser6_lineno = 1;
- extern char *parser6_text;
- #ifdef yytext_ptr
- #undef yytext_ptr
- #endif
- #define yytext_ptr parser6_text
- /* %% [1.5] DFA */
- /* %if-c-only Standard (non-C++) definition */
- static yy_state_type yy_get_previous_state ( void );
- static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
- static int yy_get_next_buffer ( void );
- static void yynoreturn yy_fatal_error ( const char* msg );
- /* %endif */
- /* Done after the current pattern has been matched and before the
- * corresponding action - sets up parser6_text.
- */
- #define YY_DO_BEFORE_ACTION \
- (yytext_ptr) = yy_bp; \
- /* %% [2.0] code to fiddle parser6_text and parser6_leng for yymore() goes here \ */\
- parser6_leng = (int) (yy_cp - yy_bp); \
- (yy_hold_char) = *yy_cp; \
- *yy_cp = '\0'; \
- /* %% [3.0] code to copy yytext_ptr to parser6_text[] goes here, if %array \ */\
- (yy_c_buf_p) = yy_cp;
- /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
- #define YY_NUM_RULES 150
- #define YY_END_OF_BUFFER 151
- /* This struct is not used in this scanner,
- but its presence is necessary. */
- struct yy_trans_info
- {
- flex_int32_t yy_verify;
- flex_int32_t yy_nxt;
- };
- static const flex_int16_t yy_accept[1204] =
- { 0,
- 143, 143, 0, 0, 0, 0, 0, 0, 0, 0,
- 151, 149, 10, 11, 149, 1, 143, 140, 143, 143,
- 149, 142, 141, 149, 149, 149, 149, 149, 136, 137,
- 149, 149, 149, 138, 139, 5, 5, 5, 149, 149,
- 149, 10, 11, 0, 0, 132, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 143, 143,
- 0, 142, 143, 3, 2, 6, 0, 143, 0, 0,
- 0, 0, 0, 0, 4, 0, 0, 9, 0, 133,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 135, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 2, 0, 0,
- 0, 0, 0, 0, 0, 8, 0, 0, 0, 112,
- 0, 0, 113, 0, 0, 0, 0, 0, 0, 0,
- 0, 134, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 78,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 148, 146, 0,
- 145, 144, 0, 0, 0, 0, 0, 0, 111, 0,
- 0, 28, 0, 27, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 46, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 147, 144, 0, 0, 0, 0, 0, 0, 0, 29,
- 0, 0, 31, 0, 0, 0, 0, 0, 0, 81,
- 0, 0, 0, 0, 65, 0, 0, 0, 0, 0,
- 97, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,
- 0, 50, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 93, 116, 42, 0, 47, 0, 0, 0, 0,
- 0, 130, 36, 0, 33, 0, 32, 0, 0, 0,
- 0, 104, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 115, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 44, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 66, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 105, 0,
- 0, 0, 0, 0, 0, 0, 0, 100, 0, 0,
- 0, 0, 7, 34, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 88, 0,
- 0, 0, 0, 0, 0, 0, 0, 68, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 75, 0, 0, 0, 0, 0,
- 85, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 109, 86, 0, 0, 0, 43,
- 0, 0, 0, 0, 0, 0, 0, 0, 51, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 0, 0, 131, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 99,
- 0, 0, 0, 0, 0, 54, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 48, 67,
- 0, 0, 0, 96, 0, 0, 41, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 129, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 76, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 16, 0, 110, 14, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 101,
- 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 98, 114, 0, 38, 0,
- 106, 0, 0, 0, 0, 0, 0, 20, 0, 0,
- 62, 0, 0, 0, 108, 45, 0, 69, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 103, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 82, 0, 0, 0, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 58, 0, 0, 0,
- 17, 15, 128, 127, 0, 0, 0, 0, 30, 0,
- 0, 92, 0, 0, 0, 0, 0, 0, 125, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
- 0, 95, 0, 52, 0, 0, 0, 19, 0, 0,
- 0, 0, 0, 79, 59, 0, 102, 0, 0, 0,
- 94, 0, 74, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 72, 0, 117, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 91, 0, 55, 126, 0, 12, 0, 0,
- 0, 0, 0, 0, 0, 40, 0, 39, 18, 0,
- 0, 87, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 57, 0, 0, 0, 53, 0, 70, 0, 0,
- 0, 0, 0, 107, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 35, 0, 0,
- 0, 0, 0, 0, 26, 0, 0, 0, 0, 123,
- 0, 0, 0, 0, 0, 0, 0, 80, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
- 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 122, 0, 23, 56, 0,
- 0, 0, 0, 22, 21, 0, 71, 0, 0, 121,
- 0, 0, 0, 0, 25, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 24, 0, 83, 0,
- 0, 0, 0, 0, 119, 124, 60, 0, 0, 0,
- 118, 0, 0, 0, 0, 0, 0, 0, 84, 0,
- 0, 120, 0
- } ;
- static const YY_CHAR yy_ec[256] =
- { 0,
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
- 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 4, 5, 6, 7, 5, 5, 5, 5, 5,
- 5, 8, 9, 10, 11, 12, 13, 14, 14, 14,
- 14, 15, 14, 16, 14, 14, 14, 17, 5, 18,
- 5, 19, 20, 5, 21, 22, 23, 24, 25, 26,
- 5, 27, 5, 28, 5, 29, 5, 30, 31, 32,
- 5, 33, 34, 35, 36, 37, 38, 5, 39, 5,
- 40, 41, 42, 5, 43, 5, 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, 5, 71, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
- 5, 5, 5, 5, 5
- } ;
- static const YY_CHAR yy_meta[72] =
- { 0,
- 1, 1, 2, 3, 3, 4, 3, 3, 3, 3,
- 3, 3, 3, 5, 5, 5, 3, 3, 3, 3,
- 5, 5, 5, 5, 5, 5, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 5, 5, 5, 5, 5, 5, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3
- } ;
- static const flex_int16_t yy_base[1216] =
- { 0,
- 0, 70, 19, 29, 41, 49, 52, 58, 87, 95,
- 1566, 1567, 32, 1562, 141, 0, 201, 1567, 206, 88,
- 11, 213, 1567, 1544, 114, 25, 2, 6, 1567, 1567,
- 73, 11, 17, 1567, 1567, 1567, 104, 1550, 1505, 0,
- 1542, 107, 1557, 217, 241, 1567, 185, 1508, 1528, 93,
- 58, 190, 91, 211, 200, 14, 267, 213, 175, 188,
- 64, 220, 1509, 187, 75, 1508, 261, 215, 289, 256,
- 278, 1491, 207, 284, 311, 293, 1510, 0, 337, 352,
- 360, 366, 372, 1567, 0, 1567, 331, 378, 227, 231,
- 320, 294, 341, 325, 1567, 1507, 1546, 1567, 237, 1567,
- 377, 335, 1505, 1544, 366, 253, 323, 1499, 362, 295,
- 366, 306, 293, 1542, 0, 428, 369, 1486, 1494, 351,
- 1490, 1479, 1480, 358, 1496, 1489, 365, 360, 1476, 1482,
- 374, 1470, 1526, 399, 1473, 1524, 1466, 1489, 1486, 1486,
- 1480, 364, 1473, 1466, 1471, 1465, 1462, 1461, 1475, 354,
- 1511, 1460, 397, 1472, 1475, 1459, 423, 399, 1471, 1472,
- 1470, 1452, 1457, 1453, 1445, 1462, 1454, 0, 383, 408,
- 398, 399, 410, 400, 1453, 1567, 0, 445, 1448, 1567,
- 428, 427, 1567, 1500, 1455, 445, 1498, 446, 1497, 449,
- 1496, 1567, 493, 1443, 460, 1456, 1451, 1450, 429, 1491,
- 1485, 1451, 1430, 1438, 1444, 1432, 1443, 1444, 1444, 1439,
- 1431, 1433, 1422, 1435, 1435, 1427, 1417, 1420, 1434, 1567,
- 1420, 1428, 1431, 1412, 1411, 1461, 1410, 1420, 1458, 1457,
- 1418, 1406, 1417, 1453, 1411, 1403, 1400, 1416, 1397, 1399,
- 1395, 1401, 1392, 1391, 1404, 1397, 1399, 1403, 1397, 80,
- 1404, 1399, 1391, 1397, 1397, 1378, 1394, 1387, 1394, 1382,
- 1375, 1389, 1388, 1391, 1373, 1381, 462, 1567, 1567, 463,
- 1567, 1567, 1368, 0, 444, 481, 473, 1425, 1567, 1378,
- 462, 1567, 1423, 1567, 1417, 529, 1361, 452, 1358, 1368,
- 1418, 1375, 469, 1567, 1373, 1415, 1370, 1367, 1368, 488,
- 1411, 1361, 1356, 1353, 1349, 1351, 1360, 1349, 1398, 1346,
- 522, 1359, 1359, 1342, 1343, 1356, 1343, 1353, 1348, 1355,
- 1350, 1335, 440, 1344, 1340, 1388, 473, 1335, 1328, 1330,
- 1334, 1323, 1330, 1335, 62, 1380, 1335, 477, 1332, 1336,
- 1324, 1324, 1336, 1318, 1310, 1311, 1332, 1314, 1326, 1325,
- 1311, 1323, 1322, 1321, 1362, 1361, 1360, 1304, 520, 1317,
- 1567, 1567, 1316, 0, 500, 1356, 1355, 1313, 1353, 1567,
- 1301, 1351, 1567, 526, 572, 1345, 501, 1349, 1291, 1567,
- 1307, 1306, 1293, 1292, 1567, 1294, 1291, 1303, 1299, 1287,
- 1567, 1296, 1281, 1283, 1294, 1292, 1328, 1294, 1276, 1325,
- 1567, 1274, 1290, 1322, 1326, 1284, 1278, 1280, 1281, 1283,
- 1315, 1268, 1263, 1262, 1264, 1257, 1272, 1264, 1312, 1567,
- 1259, 1255, 1258, 1251, 1261, 1264, 1253, 1252, 1247, 1567,
- 1302, 1567, 1246, 1245, 1238, 1255, 1292, 1245, 1254, 1248,
- 1252, 553, 1287, 1251, 1231, 1234, 1233, 1241, 1229, 1285,
- 1227, 1567, 1567, 1567, 1232, 1567, 1242, 1276, 1238, 0,
- 1279, 1567, 1567, 1227, 1567, 1233, 1567, 534, 528, 1236,
- 560, 1567, 1270, 1217, 1216, 1223, 1216, 1228, 1227, 1211,
- 1226, 1256, 1260, 1206, 1208, 1220, 1220, 1205, 1202, 1216,
- 1208, 1214, 1205, 1213, 1567, 1198, 1209, 1213, 1195, 1209,
- 1207, 1190, 1184, 1189, 1186, 1201, 1202, 1199, 1567, 1185,
- 1187, 1233, 561, 1196, 1179, 1180, 1185, 1176, 1567, 1190,
- 1176, 594, 1168, 1189, 1179, 1222, 1176, 1220, 1567, 1168,
- 1166, 1180, 1183, 1215, 1214, 1161, 1212, 1567, 530, 1174,
- 1163, 1165, 1567, 1567, 1157, 1212, 545, 499, 1162, 1164,
- 1169, 1203, 1202, 1201, 1155, 1145, 1198, 1160, 1150, 1195,
- 1141, 1149, 1151, 1155, 1190, 1152, 1151, 1152, 1145, 1134,
- 1147, 1150, 1145, 1140, 1145, 1142, 1141, 1144, 1139, 1180,
- 1179, 1123, 1119, 1127, 1175, 1124, 1116, 1131, 1567, 1119,
- 1128, 1127, 1127, 1111, 1166, 1109, 1122, 1567, 1114, 1106,
- 1115, 1108, 1097, 1101, 1152, 1099, 1097, 1108, 1148, 1095,
- 547, 550, 1089, 544, 1567, 1150, 1108, 1097, 1101, 1146,
- 1567, 1140, 548, 1098, 1092, 1093, 1084, 1087, 1083, 1100,
- 1095, 1083, 1094, 1078, 1080, 1079, 1093, 1074, 1124, 1079,
- 1087, 1085, 1076, 1085, 1081, 1122, 1064, 1064, 1077, 1076,
- 1061, 1116, 1058, 1059, 1567, 1567, 1073, 1070, 1073, 1567,
- 1072, 1057, 524, 1055, 1102, 1051, 1105, 1104, 1567, 1049,
- 1061, 1059, 1100, 1048, 1048, 1097, 1050, 1038, 1032, 1040,
- 1042, 1051, 1044, 1036, 1036, 501, 1035, 1086, 1047, 1022,
- 1567, 1078, 1025, 1038, 1567, 571, 565, 1038, 1039, 1040,
- 1031, 1024, 1023, 1017, 1024, 1017, 1066, 1070, 1017, 1027,
- 1010, 1024, 1012, 1022, 1014, 1057, 15, 65, 185, 1567,
- 237, 298, 351, 616, 440, 1567, 483, 484, 509, 558,
- 518, 518, 545, 548, 563, 551, 569, 561, 1567, 1567,
- 569, 614, 571, 1567, 579, 575, 1567, 576, 581, 575,
- 576, 588, 582, 580, 633, 579, 635, 637, 583, 1567,
- 589, 587, 586, 600, 601, 618, 620, 595, 598, 592,
- 599, 604, 611, 652, 653, 602, 606, 1567, 601, 619,
- 616, 654, 605, 623, 624, 610, 618, 627, 607, 628,
- 668, 669, 1567, 624, 674, 675, 637, 639, 622, 624,
- 631, 682, 631, 646, 685, 640, 638, 636, 689, 690,
- 642, 692, 688, 648, 653, 646, 655, 649, 644, 654,
- 650, 1567, 645, 1567, 1567, 646, 662, 663, 664, 646,
- 651, 690, 681, 654, 654, 657, 672, 664, 668, 1567,
- 1567, 679, 677, 663, 664, 722, 677, 682, 669, 680,
- 672, 678, 674, 692, 693, 1567, 1567, 692, 1567, 694,
- 1567, 679, 698, 688, 739, 694, 736, 1567, 693, 743,
- 1567, 692, 699, 741, 1567, 1567, 701, 1567, 692, 692,
- 695, 709, 696, 707, 754, 713, 751, 757, 758, 759,
- 760, 721, 705, 717, 736, 765, 761, 726, 768, 717,
- 713, 729, 734, 722, 774, 733, 1567, 735, 734, 736,
- 729, 738, 739, 736, 726, 728, 785, 734, 787, 732,
- 789, 1567, 727, 742, 793, 1567, 743, 753, 738, 754,
- 740, 800, 801, 747, 803, 762, 1567, 754, 756, 808,
- 1567, 1567, 1567, 1567, 760, 811, 762, 794, 1567, 756,
- 773, 1567, 760, 759, 762, 762, 763, 821, 1567, 766,
- 823, 778, 769, 784, 784, 787, 787, 784, 789, 1567,
- 781, 1567, 791, 1567, 792, 793, 791, 1567, 782, 788,
- 787, 799, 799, 1567, 1567, 838, 1567, 803, 788, 794,
- 1567, 809, 1567, 806, 825, 797, 846, 852, 796, 854,
- 855, 810, 1567, 857, 1567, 797, 854, 819, 815, 857,
- 807, 812, 865, 823, 867, 868, 831, 820, 871, 815,
- 832, 817, 832, 817, 873, 874, 839, 835, 882, 854,
- 843, 842, 1567, 886, 1567, 1567, 835, 1567, 888, 836,
- 885, 830, 835, 894, 844, 1567, 850, 1567, 1567, 841,
- 856, 1567, 894, 862, 855, 856, 865, 852, 854, 864,
- 857, 1567, 908, 871, 856, 1567, 861, 1567, 864, 859,
- 858, 916, 871, 1567, 913, 875, 878, 921, 864, 866,
- 874, 864, 880, 874, 890, 929, 925, 1567, 874, 891,
- 928, 892, 883, 890, 1567, 887, 892, 939, 884, 1567,
- 888, 900, 901, 944, 888, 889, 897, 1567, 908, 907,
- 899, 898, 901, 913, 904, 913, 915, 1567, 957, 917,
- 959, 960, 1567, 956, 916, 921, 902, 965, 966, 925,
- 968, 927, 928, 971, 930, 1567, 935, 1567, 1567, 917,
- 923, 976, 937, 1567, 1567, 923, 1567, 923, 925, 1567,
- 930, 925, 937, 933, 1567, 936, 940, 931, 983, 932,
- 948, 941, 936, 951, 942, 949, 936, 951, 998, 957,
- 1000, 945, 961, 952, 966, 962, 1567, 1006, 1567, 1007,
- 1008, 965, 964, 965, 1567, 1567, 1567, 1012, 956, 972,
- 1567, 1010, 961, 960, 962, 973, 1020, 971, 1567, 980,
- 1023, 1567, 1567, 1029, 1034, 1039, 1044, 1049, 1054, 1059,
- 1062, 1036, 1041, 1043, 1056
- } ;
- static const flex_int16_t yy_def[1216] =
- { 0,
- 1204, 1204, 1205, 1205, 1204, 1204, 1204, 1204, 1204, 1204,
- 1203, 1203, 1203, 1203, 1203, 1206, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1207,
- 1203, 1203, 1203, 1208, 15, 1203, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1209, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1206, 1203, 1203,
- 1203, 1203, 1203, 1203, 1210, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1207, 1203, 1208, 1203,
- 1203, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1211, 45, 1209, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1210, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1212, 45, 45, 1203,
- 45, 45, 1203, 45, 45, 45, 45, 45, 45, 45,
- 1211, 1203, 1209, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1213, 45, 45, 45, 45, 1203, 45,
- 45, 1203, 45, 1203, 45, 1209, 45, 45, 45, 45,
- 45, 45, 45, 1203, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1203, 1203, 1203, 1214, 45, 45, 45, 45, 45, 1203,
- 45, 45, 1203, 45, 1209, 45, 45, 45, 45, 1203,
- 45, 45, 45, 45, 1203, 45, 45, 45, 45, 45,
- 1203, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1203, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 45, 1203, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1203, 1203, 1203, 45, 1203, 45, 45, 1203, 1215,
- 45, 1203, 1203, 45, 1203, 45, 1203, 45, 45, 45,
- 45, 1203, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1203, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 45, 45, 1203, 1203, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1203, 45, 45, 45, 45, 45,
- 1203, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1203, 1203, 45, 45, 45, 1203,
- 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1203, 45, 45, 45, 1203, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 45, 45, 45, 45, 45, 1203, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1203, 1203,
- 45, 45, 45, 1203, 45, 45, 1203, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1203, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1203, 45, 1203, 1203, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 1203, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1203, 1203, 45, 1203, 45,
- 1203, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 1203, 45, 45, 45, 1203, 1203, 45, 1203, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1203, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1203, 45, 45, 45, 1203, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1203, 45, 45, 45,
- 1203, 1203, 1203, 1203, 45, 45, 45, 45, 1203, 45,
- 45, 1203, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203,
- 45, 1203, 45, 1203, 45, 45, 45, 1203, 45, 45,
- 45, 45, 45, 1203, 1203, 45, 1203, 45, 45, 45,
- 1203, 45, 1203, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1203, 45, 1203, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1203, 45, 1203, 1203, 45, 1203, 45, 45,
- 45, 45, 45, 45, 45, 1203, 45, 1203, 1203, 45,
- 45, 1203, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1203, 45, 45, 45, 1203, 45, 1203, 45, 45,
- 45, 45, 45, 1203, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 45, 45, 45, 45, 1203, 45, 45, 45, 45, 1203,
- 45, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1203, 45, 45,
- 45, 45, 1203, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1203, 45, 1203, 1203, 45,
- 45, 45, 45, 1203, 1203, 45, 1203, 45, 45, 1203,
- 45, 45, 45, 45, 1203, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1203, 45, 1203, 45,
- 45, 45, 45, 45, 1203, 1203, 1203, 45, 45, 45,
- 1203, 45, 45, 45, 45, 45, 45, 45, 1203, 45,
- 45, 1203, 0, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203
- } ;
- static const flex_int16_t yy_nxt[1639] =
- { 0,
- 1203, 13, 14, 13, 1203, 15, 16, 1203, 17, 18,
- 19, 20, 21, 22, 22, 22, 23, 24, 84, 1203,
- 37, 14, 37, 85, 25, 26, 38, 1203, 1203, 27,
- 37, 14, 37, 42, 28, 42, 38, 90, 91, 29,
- 113, 30, 13, 14, 13, 89, 90, 25, 31, 91,
- 13, 14, 13, 13, 14, 13, 32, 40, 787, 13,
- 14, 13, 33, 40, 113, 90, 91, 430, 89, 34,
- 35, 13, 14, 13, 93, 15, 16, 94, 17, 18,
- 19, 20, 21, 22, 22, 22, 23, 24, 13, 14,
- 13, 106, 39, 89, 25, 26, 13, 14, 13, 27,
- 39, 83, 83, 83, 28, 42, 41, 42, 42, 29,
- 42, 30, 81, 105, 41, 109, 92, 25, 31, 106,
- 127, 134, 87, 431, 87, 788, 32, 88, 88, 88,
- 128, 135, 33, 136, 343, 81, 105, 344, 109, 34,
- 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 47, 45, 45, 48, 49, 50, 45, 51, 52,
- 53, 45, 45, 45, 45, 54, 55, 45, 56, 45,
- 45, 57, 45, 45, 58, 45, 59, 60, 61, 62,
- 63, 64, 65, 51, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 56, 45, 45, 45,
- 45, 45, 79, 102, 80, 80, 80, 79, 107, 82,
- 82, 82, 100, 112, 79, 81, 82, 82, 82, 119,
- 81, 123, 120, 110, 121, 124, 122, 81, 125, 102,
- 105, 102, 100, 111, 131, 789, 112, 108, 81, 132,
- 156, 126, 133, 81, 157, 169, 110, 101, 142, 170,
- 81, 45, 143, 105, 45, 45, 45, 117, 45, 45,
- 45, 111, 115, 118, 129, 45, 45, 101, 45, 45,
- 790, 169, 144, 182, 45, 170, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 138, 139,
- 182, 45, 140, 109, 147, 45, 112, 190, 141, 148,
- 149, 150, 169, 45, 151, 152, 187, 45, 183, 45,
- 116, 158, 145, 110, 146, 153, 109, 189, 154, 112,
- 190, 159, 160, 111, 88, 88, 88, 161, 172, 165,
- 83, 83, 83, 187, 166, 171, 110, 184, 162, 791,
- 171, 81, 163, 79, 189, 80, 80, 80, 87, 170,
- 87, 111, 178, 88, 88, 88, 81, 79, 164, 82,
- 82, 82, 99, 171, 81, 83, 83, 83, 174, 99,
- 81, 88, 88, 88, 181, 173, 81, 198, 186, 81,
- 178, 188, 203, 204, 220, 211, 178, 199, 208, 229,
- 209, 792, 205, 81, 238, 239, 267, 99, 212, 81,
- 181, 99, 269, 194, 269, 99, 186, 210, 215, 188,
- 230, 216, 267, 99, 195, 217, 268, 99, 268, 99,
- 177, 193, 193, 193, 267, 269, 221, 272, 193, 193,
- 193, 193, 193, 193, 242, 255, 278, 243, 244, 256,
- 270, 277, 268, 257, 271, 275, 248, 249, 250, 281,
- 283, 193, 193, 193, 193, 193, 193, 251, 285, 252,
- 275, 253, 365, 278, 254, 292, 361, 361, 275, 277,
- 365, 293, 281, 283, 372, 366, 367, 369, 389, 416,
- 417, 796, 390, 288, 368, 285, 286, 286, 286, 361,
- 362, 365, 382, 286, 286, 286, 286, 286, 286, 377,
- 369, 421, 372, 623, 434, 456, 797, 401, 435, 383,
- 457, 422, 402, 461, 461, 615, 286, 286, 286, 286,
- 286, 286, 375, 375, 375, 616, 623, 757, 798, 375,
- 375, 375, 375, 375, 375, 468, 799, 469, 529, 758,
- 548, 461, 471, 530, 547, 544, 589, 734, 800, 801,
- 550, 735, 375, 375, 375, 375, 375, 375, 403, 622,
- 802, 697, 468, 404, 469, 45, 45, 45, 548, 767,
- 803, 547, 45, 45, 45, 45, 45, 45, 684, 598,
- 689, 686, 766, 590, 599, 685, 690, 622, 687, 697,
- 804, 805, 767, 806, 807, 45, 45, 45, 45, 45,
- 45, 793, 809, 810, 811, 808, 794, 812, 813, 766,
- 814, 815, 816, 817, 818, 819, 820, 821, 822, 823,
- 824, 600, 825, 826, 827, 828, 829, 830, 831, 833,
- 832, 834, 835, 836, 837, 838, 839, 840, 841, 842,
- 843, 844, 845, 846, 847, 848, 849, 850, 851, 852,
- 853, 854, 855, 856, 857, 858, 833, 795, 832, 859,
- 861, 863, 864, 865, 860, 866, 867, 868, 869, 870,
- 871, 872, 873, 874, 875, 876, 877, 878, 879, 880,
- 881, 882, 883, 884, 885, 886, 887, 888, 889, 890,
- 891, 892, 893, 894, 895, 896, 897, 898, 899, 900,
- 901, 902, 862, 903, 904, 905, 906, 907, 908, 909,
- 910, 911, 912, 913, 914, 915, 916, 895, 917, 918,
- 919, 920, 921, 896, 922, 923, 924, 925, 926, 927,
- 928, 929, 930, 931, 932, 933, 934, 935, 936, 937,
- 938, 939, 941, 942, 943, 944, 945, 946, 947, 948,
- 949, 950, 951, 952, 954, 955, 956, 957, 958, 959,
- 960, 961, 962, 963, 964, 965, 966, 967, 968, 969,
- 970, 971, 972, 973, 974, 975, 976, 948, 978, 979,
- 980, 981, 982, 983, 977, 984, 985, 986, 987, 988,
- 989, 990, 940, 991, 992, 953, 993, 994, 995, 996,
- 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006,
- 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016,
- 1017, 995, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025,
- 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035,
- 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045,
- 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
- 1056, 1030, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
- 1065, 1066, 1067, 1068, 1070, 1071, 1072, 1073, 1069, 1074,
- 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
- 1085, 1086, 1087, 1088, 1089, 1090, 1063, 1091, 1092, 1093,
- 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
- 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
- 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
- 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
- 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143,
- 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153,
- 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
- 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
- 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
- 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193,
- 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 12,
- 12, 12, 12, 12, 36, 36, 36, 36, 36, 78,
- 274, 78, 78, 78, 97, 364, 97, 460, 97, 99,
- 99, 99, 99, 99, 114, 114, 114, 114, 114, 168,
- 99, 168, 168, 168, 191, 191, 191, 786, 785, 784,
- 783, 782, 781, 780, 779, 778, 777, 776, 775, 774,
- 773, 772, 771, 770, 769, 768, 765, 764, 763, 762,
- 761, 760, 759, 756, 755, 754, 753, 752, 751, 750,
- 749, 748, 747, 746, 745, 744, 743, 742, 741, 740,
- 739, 738, 737, 736, 733, 732, 731, 730, 729, 728,
- 727, 726, 725, 724, 723, 722, 721, 720, 719, 718,
- 717, 716, 715, 714, 713, 712, 711, 710, 709, 708,
- 707, 706, 705, 704, 703, 702, 701, 700, 699, 698,
- 696, 695, 694, 693, 692, 691, 688, 683, 682, 681,
- 680, 679, 678, 677, 676, 675, 674, 673, 672, 671,
- 670, 669, 668, 667, 666, 665, 664, 663, 662, 661,
- 660, 659, 658, 657, 656, 655, 654, 653, 652, 651,
- 650, 649, 648, 647, 646, 645, 644, 643, 642, 641,
- 640, 639, 638, 637, 636, 635, 634, 633, 632, 631,
- 630, 629, 628, 627, 626, 625, 624, 621, 620, 619,
- 618, 617, 614, 613, 612, 611, 610, 609, 608, 607,
- 606, 605, 604, 603, 602, 601, 597, 596, 595, 594,
- 593, 592, 591, 588, 587, 586, 585, 584, 583, 582,
- 581, 580, 579, 578, 577, 576, 575, 574, 573, 572,
- 571, 570, 569, 568, 567, 566, 565, 564, 563, 562,
- 561, 560, 559, 558, 557, 556, 555, 554, 553, 552,
- 551, 549, 546, 545, 544, 543, 542, 541, 540, 539,
- 538, 537, 536, 535, 534, 533, 532, 531, 528, 527,
- 526, 525, 524, 523, 522, 521, 520, 519, 518, 517,
- 516, 515, 514, 513, 512, 511, 510, 509, 508, 507,
- 506, 505, 504, 503, 502, 501, 500, 499, 498, 497,
- 496, 495, 494, 493, 492, 491, 490, 489, 488, 487,
- 486, 485, 484, 483, 482, 481, 480, 479, 478, 477,
- 476, 475, 474, 473, 472, 470, 467, 466, 465, 464,
- 463, 462, 459, 458, 455, 454, 453, 452, 451, 450,
- 449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
- 439, 438, 437, 436, 433, 432, 429, 428, 427, 426,
- 425, 424, 423, 420, 419, 418, 415, 414, 413, 412,
- 411, 410, 409, 408, 407, 406, 405, 400, 399, 398,
- 397, 396, 395, 394, 393, 392, 391, 388, 387, 386,
- 385, 384, 381, 380, 379, 378, 376, 374, 373, 371,
- 370, 363, 360, 359, 358, 357, 356, 355, 354, 353,
- 352, 351, 350, 349, 348, 347, 346, 345, 342, 341,
- 340, 339, 338, 337, 336, 335, 334, 333, 332, 331,
- 330, 329, 328, 327, 326, 325, 324, 323, 322, 321,
- 320, 319, 318, 317, 316, 315, 314, 313, 312, 311,
- 310, 309, 308, 307, 306, 305, 304, 303, 302, 301,
- 300, 299, 298, 297, 296, 295, 294, 291, 290, 289,
- 287, 192, 284, 282, 280, 279, 276, 273, 266, 265,
- 264, 263, 262, 261, 260, 259, 258, 247, 246, 245,
- 241, 240, 237, 236, 235, 234, 233, 232, 231, 228,
- 227, 226, 225, 224, 223, 222, 219, 218, 214, 213,
- 207, 206, 202, 201, 200, 197, 196, 192, 185, 180,
- 179, 176, 175, 167, 155, 137, 130, 104, 103, 43,
- 98, 96, 95, 86, 43, 1203, 11, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203
- } ;
- static const flex_int16_t yy_chk[1639] =
- { 0,
- 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 21, 0,
- 3, 3, 3, 21, 1, 1, 3, 0, 0, 1,
- 4, 4, 4, 13, 1, 13, 4, 27, 28, 1,
- 56, 1, 5, 5, 5, 26, 32, 1, 1, 33,
- 6, 6, 6, 7, 7, 7, 1, 7, 717, 8,
- 8, 8, 1, 8, 56, 27, 28, 335, 26, 1,
- 1, 2, 2, 2, 32, 2, 2, 33, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 9, 9,
- 9, 51, 5, 31, 2, 2, 10, 10, 10, 2,
- 6, 20, 20, 20, 2, 37, 9, 37, 42, 2,
- 42, 2, 20, 50, 10, 53, 31, 2, 2, 51,
- 61, 65, 25, 335, 25, 718, 2, 25, 25, 25,
- 61, 65, 2, 65, 250, 20, 50, 250, 53, 2,
- 2, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
- 15, 15, 17, 47, 17, 17, 17, 19, 52, 19,
- 19, 19, 44, 55, 22, 17, 22, 22, 22, 59,
- 19, 60, 59, 54, 59, 60, 59, 22, 60, 47,
- 62, 58, 99, 54, 64, 719, 55, 52, 17, 64,
- 73, 60, 64, 19, 73, 89, 54, 44, 68, 90,
- 22, 45, 68, 62, 45, 45, 45, 58, 45, 45,
- 45, 54, 57, 58, 62, 45, 45, 99, 45, 57,
- 721, 89, 68, 106, 45, 90, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 57, 67, 67,
- 106, 57, 67, 69, 70, 57, 76, 113, 67, 70,
- 70, 71, 92, 57, 71, 71, 110, 57, 107, 57,
- 57, 74, 69, 75, 69, 71, 69, 112, 71, 76,
- 113, 74, 74, 75, 87, 87, 87, 74, 92, 76,
- 79, 79, 79, 110, 76, 91, 75, 107, 75, 722,
- 94, 79, 75, 80, 112, 80, 80, 80, 81, 93,
- 81, 75, 102, 81, 81, 81, 80, 82, 75, 82,
- 82, 82, 101, 91, 79, 83, 83, 83, 94, 101,
- 82, 88, 88, 88, 105, 93, 83, 120, 109, 80,
- 102, 111, 124, 124, 134, 128, 117, 120, 127, 142,
- 127, 723, 124, 82, 150, 150, 169, 101, 128, 83,
- 105, 101, 171, 117, 174, 101, 109, 127, 131, 111,
- 142, 131, 172, 101, 117, 131, 170, 101, 173, 101,
- 101, 116, 116, 116, 169, 171, 134, 174, 116, 116,
- 116, 116, 116, 116, 153, 158, 182, 153, 153, 158,
- 172, 181, 170, 158, 173, 178, 157, 157, 157, 186,
- 188, 116, 116, 116, 116, 116, 116, 157, 190, 157,
- 195, 157, 275, 182, 157, 199, 267, 270, 178, 181,
- 288, 199, 186, 188, 281, 276, 276, 277, 300, 323,
- 323, 725, 300, 195, 276, 190, 193, 193, 193, 267,
- 270, 275, 293, 193, 193, 193, 193, 193, 193, 288,
- 277, 327, 281, 548, 338, 359, 727, 311, 338, 293,
- 359, 327, 311, 365, 377, 539, 193, 193, 193, 193,
- 193, 193, 286, 286, 286, 539, 548, 686, 728, 286,
- 286, 286, 286, 286, 286, 374, 729, 374, 442, 686,
- 469, 365, 377, 442, 468, 471, 513, 663, 730, 731,
- 471, 663, 286, 286, 286, 286, 286, 286, 311, 547,
- 732, 623, 374, 311, 374, 375, 375, 375, 469, 697,
- 733, 468, 375, 375, 375, 375, 375, 375, 611, 522,
- 614, 612, 696, 513, 522, 611, 614, 547, 612, 623,
- 734, 735, 697, 736, 737, 375, 375, 375, 375, 375,
- 375, 724, 738, 741, 742, 737, 724, 743, 745, 696,
- 746, 748, 749, 750, 751, 752, 753, 754, 755, 756,
- 757, 522, 758, 759, 761, 762, 763, 764, 765, 767,
- 766, 768, 769, 770, 771, 772, 773, 774, 775, 776,
- 777, 779, 780, 781, 782, 783, 784, 785, 786, 787,
- 788, 789, 790, 791, 792, 794, 767, 724, 766, 795,
- 796, 797, 798, 799, 795, 800, 801, 802, 803, 804,
- 805, 806, 807, 808, 809, 810, 811, 812, 813, 814,
- 815, 816, 817, 818, 819, 820, 821, 823, 826, 827,
- 828, 829, 830, 831, 832, 833, 834, 835, 836, 837,
- 838, 839, 796, 842, 843, 844, 845, 846, 847, 848,
- 849, 850, 851, 852, 853, 854, 855, 832, 858, 860,
- 862, 863, 864, 833, 865, 866, 867, 869, 870, 872,
- 873, 874, 877, 879, 880, 881, 882, 883, 884, 885,
- 886, 887, 888, 889, 890, 891, 892, 893, 894, 895,
- 896, 897, 898, 899, 900, 901, 902, 903, 904, 905,
- 906, 908, 909, 910, 911, 912, 913, 914, 915, 916,
- 917, 918, 919, 920, 921, 923, 924, 895, 925, 927,
- 928, 929, 930, 931, 924, 932, 933, 934, 935, 936,
- 938, 939, 887, 940, 945, 899, 946, 947, 948, 950,
- 951, 953, 954, 955, 956, 957, 958, 960, 961, 962,
- 963, 964, 965, 966, 967, 968, 969, 971, 973, 975,
- 976, 948, 977, 979, 980, 981, 982, 983, 986, 988,
- 989, 990, 992, 994, 995, 996, 997, 998, 999, 1000,
- 1001, 1002, 1004, 1006, 1007, 1008, 1009, 1010, 1011, 1012,
- 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022,
- 1023, 995, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031,
- 1032, 1034, 1037, 1039, 1040, 1041, 1042, 1043, 1039, 1044,
- 1045, 1047, 1050, 1051, 1053, 1054, 1055, 1056, 1057, 1058,
- 1059, 1060, 1061, 1063, 1064, 1065, 1030, 1067, 1069, 1070,
- 1071, 1072, 1073, 1075, 1076, 1077, 1078, 1079, 1080, 1081,
- 1082, 1083, 1084, 1085, 1086, 1087, 1089, 1090, 1091, 1092,
- 1093, 1094, 1096, 1097, 1098, 1099, 1101, 1102, 1103, 1104,
- 1105, 1106, 1107, 1109, 1110, 1111, 1112, 1113, 1114, 1115,
- 1116, 1117, 1119, 1120, 1121, 1122, 1124, 1125, 1126, 1127,
- 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1137, 1140,
- 1141, 1142, 1143, 1146, 1148, 1149, 1151, 1152, 1153, 1154,
- 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165,
- 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175,
- 1176, 1178, 1180, 1181, 1182, 1183, 1184, 1188, 1189, 1190,
- 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1200, 1201, 1204,
- 1204, 1204, 1204, 1204, 1205, 1205, 1205, 1205, 1205, 1206,
- 1212, 1206, 1206, 1206, 1207, 1213, 1207, 1214, 1207, 1208,
- 1208, 1208, 1208, 1208, 1209, 1209, 1209, 1209, 1209, 1210,
- 1215, 1210, 1210, 1210, 1211, 1211, 1211, 716, 715, 714,
- 713, 712, 711, 710, 709, 708, 707, 706, 705, 704,
- 703, 702, 701, 700, 699, 698, 694, 693, 692, 690,
- 689, 688, 687, 685, 684, 683, 682, 681, 680, 679,
- 678, 677, 676, 675, 674, 673, 672, 671, 670, 668,
- 667, 666, 665, 664, 662, 661, 659, 658, 657, 654,
- 653, 652, 651, 650, 649, 648, 647, 646, 645, 644,
- 643, 642, 641, 640, 639, 638, 637, 636, 635, 634,
- 633, 632, 631, 630, 629, 628, 627, 626, 625, 624,
- 622, 620, 619, 618, 617, 616, 613, 610, 609, 608,
- 607, 606, 605, 604, 603, 602, 601, 600, 599, 597,
- 596, 595, 594, 593, 592, 591, 590, 588, 587, 586,
- 585, 584, 583, 582, 581, 580, 579, 578, 577, 576,
- 575, 574, 573, 572, 571, 570, 569, 568, 567, 566,
- 565, 564, 563, 562, 561, 560, 559, 558, 557, 556,
- 555, 554, 553, 552, 551, 550, 549, 546, 545, 542,
- 541, 540, 537, 536, 535, 534, 533, 532, 531, 530,
- 528, 527, 526, 525, 524, 523, 521, 520, 518, 517,
- 516, 515, 514, 512, 511, 510, 508, 507, 506, 505,
- 504, 503, 502, 501, 500, 499, 498, 497, 496, 494,
- 493, 492, 491, 490, 489, 488, 487, 486, 485, 484,
- 483, 482, 481, 480, 479, 478, 477, 476, 475, 474,
- 473, 470, 466, 464, 461, 459, 458, 457, 455, 451,
- 450, 449, 448, 447, 446, 445, 444, 443, 441, 440,
- 439, 438, 437, 436, 435, 434, 433, 431, 429, 428,
- 427, 426, 425, 424, 423, 422, 421, 419, 418, 417,
- 416, 415, 414, 413, 412, 411, 410, 409, 408, 407,
- 406, 405, 404, 403, 402, 400, 399, 398, 397, 396,
- 395, 394, 393, 392, 390, 389, 388, 387, 386, 384,
- 383, 382, 381, 379, 378, 376, 372, 371, 369, 368,
- 367, 366, 363, 360, 358, 357, 356, 355, 354, 353,
- 352, 351, 350, 349, 348, 347, 346, 345, 344, 343,
- 342, 341, 340, 339, 337, 336, 334, 333, 332, 331,
- 330, 329, 328, 326, 325, 324, 322, 321, 320, 319,
- 318, 317, 316, 315, 314, 313, 312, 310, 309, 308,
- 307, 306, 305, 304, 303, 302, 301, 299, 298, 297,
- 296, 295, 292, 291, 290, 289, 287, 285, 283, 280,
- 278, 273, 266, 265, 264, 263, 262, 261, 260, 259,
- 258, 257, 256, 255, 254, 253, 252, 251, 249, 248,
- 247, 246, 245, 244, 243, 242, 241, 240, 239, 238,
- 237, 236, 235, 234, 233, 232, 231, 230, 229, 228,
- 227, 226, 225, 224, 223, 222, 221, 219, 218, 217,
- 216, 215, 214, 213, 212, 211, 210, 209, 208, 207,
- 206, 205, 204, 203, 202, 201, 200, 198, 197, 196,
- 194, 191, 189, 187, 185, 184, 179, 175, 167, 166,
- 165, 164, 163, 162, 161, 160, 159, 156, 155, 154,
- 152, 151, 149, 148, 147, 146, 145, 144, 143, 141,
- 140, 139, 138, 137, 136, 135, 133, 132, 130, 129,
- 126, 125, 123, 122, 121, 119, 118, 114, 108, 104,
- 103, 97, 96, 77, 72, 66, 63, 49, 48, 43,
- 41, 39, 38, 24, 14, 11, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
- 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203
- } ;
- static yy_state_type yy_last_accepting_state;
- static char *yy_last_accepting_cpos;
- extern int parser6__flex_debug;
- int parser6__flex_debug = 1;
- static const flex_int16_t yy_rule_linenum[150] =
- { 0,
- 133, 135, 137, 142, 143, 148, 149, 150, 162, 165,
- 170, 177, 186, 195, 204, 213, 222, 231, 240, 249,
- 258, 267, 276, 285, 294, 303, 312, 322, 332, 342,
- 352, 362, 372, 382, 392, 402, 411, 420, 429, 438,
- 447, 456, 468, 477, 486, 495, 504, 514, 524, 534,
- 544, 555, 565, 575, 585, 595, 605, 615, 625, 635,
- 644, 653, 662, 677, 692, 701, 710, 719, 728, 737,
- 746, 755, 764, 773, 783, 792, 801, 810, 819, 828,
- 837, 847, 856, 865, 874, 883, 892, 901, 910, 919,
- 928, 938, 948, 958, 967, 976, 985, 996, 1006, 1015,
- 1025, 1034, 1043, 1052, 1061, 1070, 1079, 1089, 1098, 1107,
- 1116, 1125, 1134, 1143, 1152, 1161, 1170, 1179, 1188, 1197,
- 1206, 1215, 1224, 1233, 1242, 1251, 1260, 1269, 1278, 1287,
- 1296, 1305, 1403, 1408, 1413, 1418, 1419, 1420, 1421, 1422,
- 1423, 1425, 1443, 1456, 1461, 1465, 1467, 1469, 1471
- } ;
- /* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
- #define REJECT reject_used_but_not_detected
- #define yymore() yymore_used_but_not_detected
- #define YY_MORE_ADJ 0
- #define YY_RESTORE_YY_MORE_OFFSET
- char *parser6_text;
- #line 1 "dhcp6_lexer.ll"
- /* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
- This Source Code Form is subject to the terms of the Mozilla Public
- License, v. 2.0. If a copy of the MPL was not distributed with this
- file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #line 8 "dhcp6_lexer.ll"
- #include <cerrno>
- #include <climits>
- #include <cstdlib>
- #include <string>
- #include <dhcp6/parser_context.h>
- #include <asiolink/io_address.h>
- #include <boost/lexical_cast.hpp>
- #include <exceptions/exceptions.h>
- // Work around an incompatibility in flex (at least versions
- // 2.5.31 through 2.5.33): it generates code that does
- // not conform to C89. See Debian bug 333231
- // <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.
- # undef yywrap
- # define yywrap() 1
- namespace {
- bool start_token_flag = false;
- isc::dhcp::Parser6Context::ParserType start_token_value;
- unsigned int comment_start_line = 0;
- };
- // To avoid the call to exit... oops!
- #define YY_FATAL_ERROR(msg) isc::dhcp::Parser6Context::fatal(msg)
- #line 1429 "dhcp6_lexer.cc"
- /* noyywrap disables automatic rewinding for the next file to parse. Since we
- always parse only a single string, there's no need to do any wraps. And
- using yywrap requires linking with -lfl, which provides the default yywrap
- implementation that always returns 1 anyway. */
- /* nounput simplifies the lexer, by removing support for putting a character
- back into the input stream. We never use such capability anyway. */
- /* batch means that we'll never use the generated lexer interactively. */
- /* avoid to get static global variables to remain with C++. */
- /* in last resort %option reentrant */
- /* Enables debug mode. To see the debug messages, one needs to also set
- yy_flex_debug to 1, then the debug messages will be printed on stderr. */
- /* I have no idea what this option does, except it was specified in the bison
- examples and Postgres folks added it to remove gcc 4.3 warnings. Let's
- be on the safe side and keep it. */
- #define YY_NO_INPUT 1
- /* These are not token expressions yet, just convenience expressions that
- can be used during actual token definitions. Note some can match
- incorrect inputs (e.g., IP addresses) which must be checked. */
- /* for errors */
- #line 86 "dhcp6_lexer.ll"
- // This code run each time a pattern is matched. It updates the location
- // by moving it ahead by yyleng bytes. yyleng specifies the length of the
- // currently matched token.
- #define YY_USER_ACTION driver.loc_.columns(yyleng);
- #line 1455 "dhcp6_lexer.cc"
- #line 1456 "dhcp6_lexer.cc"
- #define INITIAL 0
- #define COMMENT 1
- #define DIR_ENTER 2
- #define DIR_INCLUDE 3
- #define DIR_EXIT 4
- #ifndef YY_NO_UNISTD_H
- /* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
- /* %if-c-only */
- #include <unistd.h>
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- #endif
- #ifndef YY_EXTRA_TYPE
- #define YY_EXTRA_TYPE void *
- #endif
- /* %if-c-only Reentrant structure and macros (non-C++). */
- /* %if-reentrant */
- /* %if-c-only */
- static int yy_init_globals ( void );
- /* %endif */
- /* %if-reentrant */
- /* %endif */
- /* %endif End reentrant structures and macros. */
- /* Accessor methods to globals.
- These are made visible to non-reentrant scanners for convenience. */
- int parser6_lex_destroy ( void );
- int parser6_get_debug ( void );
- void parser6_set_debug ( int debug_flag );
- YY_EXTRA_TYPE parser6_get_extra ( void );
- void parser6_set_extra ( YY_EXTRA_TYPE user_defined );
- FILE *parser6_get_in ( void );
- void parser6_set_in ( FILE * _in_str );
- FILE *parser6_get_out ( void );
- void parser6_set_out ( FILE * _out_str );
- int parser6_get_leng ( void );
- char *parser6_get_text ( void );
- int parser6_get_lineno ( void );
- void parser6_set_lineno ( int _line_number );
- /* %if-bison-bridge */
- /* %endif */
- /* Macros after this point can all be overridden by user definitions in
- * section 1.
- */
- #ifndef YY_SKIP_YYWRAP
- #ifdef __cplusplus
- extern "C" int parser6_wrap ( void );
- #else
- extern int parser6_wrap ( void );
- #endif
- #endif
- /* %not-for-header */
- #ifndef YY_NO_UNPUT
-
- #endif
- /* %ok-for-header */
- /* %endif */
- #ifndef yytext_ptr
- static void yy_flex_strncpy ( char *, const char *, int );
- #endif
- #ifdef YY_NEED_STRLEN
- static int yy_flex_strlen ( const char * );
- #endif
- #ifndef YY_NO_INPUT
- /* %if-c-only Standard (non-C++) definition */
- /* %not-for-header */
- #ifdef __cplusplus
- static int yyinput ( void );
- #else
- static int input ( void );
- #endif
- /* %ok-for-header */
- /* %endif */
- #endif
- /* %if-c-only */
- /* %endif */
- /* Amount of stuff to slurp up with each read. */
- #ifndef YY_READ_BUF_SIZE
- #ifdef __ia64__
- /* On IA-64, the buffer size is 16k, not 8k */
- #define YY_READ_BUF_SIZE 16384
- #else
- #define YY_READ_BUF_SIZE 8192
- #endif /* __ia64__ */
- #endif
- /* Copy whatever the last rule matched to the standard output. */
- #ifndef ECHO
- /* %if-c-only Standard (non-C++) definition */
- /* This used to be an fputs(), but since the string might contain NUL's,
- * we now use fwrite().
- */
- #define ECHO do { if (fwrite( parser6_text, (size_t) parser6_leng, 1, parser6_out )) {} } while (0)
- /* %endif */
- /* %if-c++-only C++ definition */
- /* %endif */
- #endif
- /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
- * is returned in "result".
- */
- #ifndef YY_INPUT
- #define YY_INPUT(buf,result,max_size) \
- /* %% [5.0] fread()/read() definition of YY_INPUT goes here unless we're doing C++ \ */\
- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
- { \
- int c = '*'; \
- int n; \
- for ( n = 0; n < max_size && \
- (c = getc( parser6_in )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( parser6_in ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else \
- { \
- errno=0; \
- while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, parser6_in)) == 0 && ferror(parser6_in)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(parser6_in); \
- } \
- }\
- \
- /* %if-c++-only C++ definition \ */\
- /* %endif */
- #endif
- /* No semi-colon after return; correct usage is to write "yyterminate();" -
- * we don't want an extra ';' after the "return" because that will cause
- * some compilers to complain about unreachable statements.
- */
- #ifndef yyterminate
- #define yyterminate() return YY_NULL
- #endif
- /* Number of entries by which start-condition stack grows. */
- #ifndef YY_START_STACK_INCR
- #define YY_START_STACK_INCR 25
- #endif
- /* Report a fatal error. */
- #ifndef YY_FATAL_ERROR
- /* %if-c-only */
- #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- #endif
- /* %if-tables-serialization structures and prototypes */
- /* %not-for-header */
- /* %ok-for-header */
- /* %not-for-header */
- /* %tables-yydmap generated elements */
- /* %endif */
- /* end tables serialization structures and prototypes */
- /* %ok-for-header */
- /* Default declaration of generated scanner - a define so the user can
- * easily add parameters.
- */
- #ifndef YY_DECL
- #define YY_DECL_IS_OURS 1
- /* %if-c-only Standard (non-C++) definition */
- extern int parser6_lex (void);
- #define YY_DECL int parser6_lex (void)
- /* %endif */
- /* %if-c++-only C++ definition */
- /* %endif */
- #endif /* !YY_DECL */
- /* Code executed at the beginning of each rule, after parser6_text and parser6_leng
- * have been set up.
- */
- #ifndef YY_USER_ACTION
- #define YY_USER_ACTION
- #endif
- /* Code executed at the end of each rule. */
- #ifndef YY_BREAK
- #define YY_BREAK /*LINTED*/break;
- #endif
- /* %% [6.0] YY_RULE_SETUP definition goes here */
- #define YY_RULE_SETUP \
- YY_USER_ACTION
- /* %not-for-header */
- /** The main scanner function which does all the work.
- */
- YY_DECL
- {
- yy_state_type yy_current_state;
- char *yy_cp, *yy_bp;
- int yy_act;
-
- if ( !(yy_init) )
- {
- (yy_init) = 1;
- #ifdef YY_USER_INIT
- YY_USER_INIT;
- #endif
- if ( ! (yy_start) )
- (yy_start) = 1; /* first start state */
- if ( ! parser6_in )
- /* %if-c-only */
- parser6_in = stdin;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- if ( ! parser6_out )
- /* %if-c-only */
- parser6_out = stdout;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- if ( ! YY_CURRENT_BUFFER ) {
- parser6_ensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- parser6__create_buffer(parser6_in,YY_BUF_SIZE );
- }
- parser6__load_buffer_state( );
- }
- {
- /* %% [7.0] user's declarations go here */
- #line 92 "dhcp6_lexer.ll"
- #line 96 "dhcp6_lexer.ll"
- // This part of the code is copied over to the verbatim to the top
- // of the generated yylex function. Explanation:
- // http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html
- // Code run each time yylex is called.
- driver.loc_.step();
- if (start_token_flag) {
- start_token_flag = false;
- switch (start_token_value) {
- case Parser6Context::PARSER_JSON:
- default:
- return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_JSON(driver.loc_);
- case Parser6Context::PARSER_DHCP6:
- return isc::dhcp::Dhcp6Parser::make_TOPLEVEL_DHCP6(driver.loc_);
- case Parser6Context::SUBPARSER_DHCP6:
- return isc::dhcp::Dhcp6Parser::make_SUB_DHCP6(driver.loc_);
- case Parser6Context::PARSER_INTERFACES:
- return isc::dhcp::Dhcp6Parser::make_SUB_INTERFACES6(driver.loc_);
- case Parser6Context::PARSER_SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_SUB_SUBNET6(driver.loc_);
- case Parser6Context::PARSER_POOL6:
- return isc::dhcp::Dhcp6Parser::make_SUB_POOL6(driver.loc_);
- case Parser6Context::PARSER_PD_POOL:
- return isc::dhcp::Dhcp6Parser::make_SUB_PD_POOL(driver.loc_);
- case Parser6Context::PARSER_HOST_RESERVATION:
- return isc::dhcp::Dhcp6Parser::make_SUB_RESERVATION(driver.loc_);
- case Parser6Context::PARSER_OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_SUB_OPTION_DATA(driver.loc_);
- case Parser6Context::PARSER_HOOKS_LIBRARY:
- return isc::dhcp::Dhcp6Parser::make_SUB_HOOKS_LIBRARY(driver.loc_);
- case Parser6Context::PARSER_DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_SUB_DHCP_DDNS(driver.loc_);
- }
- }
- #line 1780 "dhcp6_lexer.cc"
- while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
- {
- /* %% [8.0] yymore()-related code goes here */
- yy_cp = (yy_c_buf_p);
- /* Support of parser6_text. */
- *yy_cp = (yy_hold_char);
- /* yy_bp points to the position in yy_ch_buf of the start of
- * the current run.
- */
- yy_bp = yy_cp;
- /* %% [9.0] code to set up and find next match goes here */
- yy_current_state = (yy_start);
- yy_match:
- do
- {
- YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1204 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- ++yy_cp;
- }
- while ( yy_current_state != 1203 );
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- yy_find_action:
- /* %% [10.0] code to find the action number goes here */
- yy_act = yy_accept[yy_current_state];
- YY_DO_BEFORE_ACTION;
- /* %% [11.0] code for parser6_lineno update goes here */
- do_action: /* This label is used only to access EOF actions. */
- /* %% [12.0] debug code goes here */
- if ( parser6__flex_debug )
- {
- if ( yy_act == 0 )
- fprintf( stderr, "--scanner backing up\n" );
- else if ( yy_act < 150 )
- fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
- (long)yy_rule_linenum[yy_act], parser6_text );
- else if ( yy_act == 150 )
- fprintf( stderr, "--accepting default rule (\"%s\")\n",
- parser6_text );
- else if ( yy_act == 151 )
- fprintf( stderr, "--(end of buffer or a NUL)\n" );
- else
- fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
- }
- switch ( yy_act )
- { /* beginning of action switch */
- /* %% [13.0] actions go here */
- case 0: /* must back up */
- /* undo the effects of YY_DO_BEFORE_ACTION */
- *yy_cp = (yy_hold_char);
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- goto yy_find_action;
- case 1:
- YY_RULE_SETUP
- #line 133 "dhcp6_lexer.ll"
- ;
- YY_BREAK
- case 2:
- YY_RULE_SETUP
- #line 135 "dhcp6_lexer.ll"
- ;
- YY_BREAK
- case 3:
- YY_RULE_SETUP
- #line 137 "dhcp6_lexer.ll"
- {
- BEGIN(COMMENT);
- comment_start_line = driver.loc_.end.line;;
- }
- YY_BREAK
- case 4:
- YY_RULE_SETUP
- #line 142 "dhcp6_lexer.ll"
- BEGIN(INITIAL);
- YY_BREAK
- case 5:
- YY_RULE_SETUP
- #line 143 "dhcp6_lexer.ll"
- ;
- YY_BREAK
- case YY_STATE_EOF(COMMENT):
- #line 144 "dhcp6_lexer.ll"
- {
- isc_throw(Dhcp6ParseError, "Comment not closed. (/* in line " << comment_start_line);
- }
- YY_BREAK
- case 6:
- YY_RULE_SETUP
- #line 148 "dhcp6_lexer.ll"
- BEGIN(DIR_ENTER);
- YY_BREAK
- case 7:
- YY_RULE_SETUP
- #line 149 "dhcp6_lexer.ll"
- BEGIN(DIR_INCLUDE);
- YY_BREAK
- case 8:
- YY_RULE_SETUP
- #line 150 "dhcp6_lexer.ll"
- {
- // Include directive.
- // Extract the filename.
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- driver.includeFile(tmp);
- }
- YY_BREAK
- case YY_STATE_EOF(DIR_ENTER):
- case YY_STATE_EOF(DIR_INCLUDE):
- case YY_STATE_EOF(DIR_EXIT):
- #line 159 "dhcp6_lexer.ll"
- {
- isc_throw(Dhcp6ParseError, "Directive not closed.");
- }
- YY_BREAK
- case 9:
- YY_RULE_SETUP
- #line 162 "dhcp6_lexer.ll"
- BEGIN(INITIAL);
- YY_BREAK
- case 10:
- YY_RULE_SETUP
- #line 165 "dhcp6_lexer.ll"
- {
- // Ok, we found a with space. Let's ignore it and update loc variable.
- driver.loc_.step();
- }
- YY_BREAK
- case 11:
- /* rule 11 can match eol */
- YY_RULE_SETUP
- #line 170 "dhcp6_lexer.ll"
- {
- // Newline found. Let's update the location and continue.
- driver.loc_.lines(yyleng);
- driver.loc_.step();
- }
- YY_BREAK
- case 12:
- YY_RULE_SETUP
- #line 177 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_ENABLE_UPDATES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("enable-updates", driver.loc_);
- }
- }
- YY_BREAK
- case 13:
- YY_RULE_SETUP
- #line 186 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_QUALIFYING_SUFFIX(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("qualifying-suffix", driver.loc_);
- }
- }
- YY_BREAK
- case 14:
- YY_RULE_SETUP
- #line 195 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_SERVER_IP(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("server-ip", driver.loc_);
- }
- }
- YY_BREAK
- case 15:
- YY_RULE_SETUP
- #line 204 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_SERVER_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("server-port", driver.loc_);
- }
- }
- YY_BREAK
- case 16:
- YY_RULE_SETUP
- #line 213 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_SENDER_IP(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("sender-ip", driver.loc_);
- }
- }
- YY_BREAK
- case 17:
- YY_RULE_SETUP
- #line 222 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_SENDER_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("sender-port", driver.loc_);
- }
- }
- YY_BREAK
- case 18:
- YY_RULE_SETUP
- #line 231 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_MAX_QUEUE_SIZE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("max-queue-size", driver.loc_);
- }
- }
- YY_BREAK
- case 19:
- YY_RULE_SETUP
- #line 240 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_NCR_PROTOCOL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("ncr-protocol", driver.loc_);
- }
- }
- YY_BREAK
- case 20:
- YY_RULE_SETUP
- #line 249 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_NCR_FORMAT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("ncr-format", driver.loc_);
- }
- }
- YY_BREAK
- case 21:
- YY_RULE_SETUP
- #line 258 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_ALWAYS_INCLUDE_FQDN(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("always-include-fqdn", driver.loc_);
- }
- }
- YY_BREAK
- case 22:
- YY_RULE_SETUP
- #line 267 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_ALLOW_CLIENT_UPDATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("allow-client-update", driver.loc_);
- }
- }
- YY_BREAK
- case 23:
- YY_RULE_SETUP
- #line 276 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_OVERRIDE_NO_UPDATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("override-no-update", driver.loc_);
- }
- }
- YY_BREAK
- case 24:
- YY_RULE_SETUP
- #line 285 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_OVERRIDE_CLIENT_UPDATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("override-client-update", driver.loc_);
- }
- }
- YY_BREAK
- case 25:
- YY_RULE_SETUP
- #line 294 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_REPLACE_CLIENT_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("replace-client-name", driver.loc_);
- }
- }
- YY_BREAK
- case 26:
- YY_RULE_SETUP
- #line 303 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP_DDNS:
- return isc::dhcp::Dhcp6Parser::make_GENERATED_PREFIX(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("generated-prefix", driver.loc_);
- }
- }
- YY_BREAK
- case 27:
- YY_RULE_SETUP
- #line 312 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
- return isc::dhcp::Dhcp6Parser::make_UDP(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 28:
- YY_RULE_SETUP
- #line 322 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_PROTOCOL) {
- return isc::dhcp::Dhcp6Parser::make_TCP(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 29:
- YY_RULE_SETUP
- #line 332 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::NCR_FORMAT) {
- return isc::dhcp::Dhcp6Parser::make_JSON(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 30:
- YY_RULE_SETUP
- #line 342 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 31:
- YY_RULE_SETUP
- #line 352 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp6Parser::make_WHEN_PRESENT(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 32:
- YY_RULE_SETUP
- #line 362 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 33:
- YY_RULE_SETUP
- #line 372 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp6Parser::make_NEVER(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 34:
- YY_RULE_SETUP
- #line 382 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp6Parser::make_ALWAYS(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 35:
- YY_RULE_SETUP
- #line 392 "dhcp6_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser6Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp6Parser::make_WHEN_NOT_PRESENT(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp6Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 36:
- YY_RULE_SETUP
- #line 402 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_DHCP6(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp6", driver.loc_);
- }
- }
- YY_BREAK
- case 37:
- YY_RULE_SETUP
- #line 411 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_INTERFACES_CONFIG(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interfaces-config", driver.loc_);
- }
- }
- YY_BREAK
- case 38:
- YY_RULE_SETUP
- #line 420 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::INTERFACES_CONFIG:
- return isc::dhcp::Dhcp6Parser::make_INTERFACES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interfaces", driver.loc_);
- }
- }
- YY_BREAK
- case 39:
- YY_RULE_SETUP
- #line 429 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_LEASE_DATABASE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("lease-database", driver.loc_);
- }
- }
- YY_BREAK
- case 40:
- YY_RULE_SETUP
- #line 438 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_HOSTS_DATABASE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hosts-database", driver.loc_);
- }
- }
- YY_BREAK
- case 41:
- YY_RULE_SETUP
- #line 447 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_READONLY(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("readonly", driver.loc_);
- }
- }
- YY_BREAK
- case 42:
- YY_RULE_SETUP
- #line 456 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- case isc::dhcp::Parser6Context::OPTION_DEF:
- case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_TYPE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("type", driver.loc_);
- }
- }
- YY_BREAK
- case 43:
- YY_RULE_SETUP
- #line 468 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_MEMFILE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("memfile", driver.loc_);
- }
- }
- YY_BREAK
- case 44:
- YY_RULE_SETUP
- #line 477 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_MYSQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("mysql", driver.loc_);
- }
- }
- YY_BREAK
- case 45:
- YY_RULE_SETUP
- #line 486 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_POSTGRESQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("postgresql", driver.loc_);
- }
- }
- YY_BREAK
- case 46:
- YY_RULE_SETUP
- #line 495 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp6Parser::make_CQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("cql", driver.loc_);
- }
- }
- YY_BREAK
- case 47:
- YY_RULE_SETUP
- #line 504 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_USER(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("user", driver.loc_);
- }
- }
- YY_BREAK
- case 48:
- YY_RULE_SETUP
- #line 514 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_PASSWORD(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("password", driver.loc_);
- }
- }
- YY_BREAK
- case 49:
- YY_RULE_SETUP
- #line 524 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_HOST(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("host", driver.loc_);
- }
- }
- YY_BREAK
- case 50:
- YY_RULE_SETUP
- #line 534 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("port", driver.loc_);
- }
- }
- YY_BREAK
- case 51:
- YY_RULE_SETUP
- #line 544 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_PERSIST(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("persist", driver.loc_);
- }
- }
- YY_BREAK
- case 52:
- YY_RULE_SETUP
- #line 555 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_LFC_INTERVAL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("lfc-interval", driver.loc_);
- }
- }
- YY_BREAK
- case 53:
- YY_RULE_SETUP
- #line 565 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_CONNECT_TIMEOUT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("connect-timeout", driver.loc_);
- }
- }
- YY_BREAK
- case 54:
- YY_RULE_SETUP
- #line 575 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_KEYSPACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("keyspace", driver.loc_);
- }
- }
- YY_BREAK
- case 55:
- YY_RULE_SETUP
- #line 585 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp6Parser::make_CONTACT_POINTS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("contact-points", driver.loc_);
- }
- }
- YY_BREAK
- case 56:
- YY_RULE_SETUP
- #line 595 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_);
- }
- }
- YY_BREAK
- case 57:
- YY_RULE_SETUP
- #line 605 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_);
- }
- }
- YY_BREAK
- case 58:
- YY_RULE_SETUP
- #line 615 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_);
- }
- }
- YY_BREAK
- case 59:
- YY_RULE_SETUP
- #line 625 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_);
- }
- }
- YY_BREAK
- case 60:
- YY_RULE_SETUP
- #line 635 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_DECLINE_PROBATION_PERIOD(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("decline-probation-period", driver.loc_);
- }
- }
- YY_BREAK
- case 61:
- YY_RULE_SETUP
- #line 644 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_);
- }
- }
- YY_BREAK
- case 62:
- YY_RULE_SETUP
- #line 653 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_OPTION_DEF(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("option-def", driver.loc_);
- }
- }
- YY_BREAK
- case 63:
- YY_RULE_SETUP
- #line 662 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- case isc::dhcp::Parser6Context::SUBNET6:
- case isc::dhcp::Parser6Context::POOLS:
- case isc::dhcp::Parser6Context::PD_POOLS:
- case isc::dhcp::Parser6Context::RESERVATIONS:
- case isc::dhcp::Parser6Context::CLIENT_CLASSES:
- case isc::dhcp::Parser6Context::CLIENT_CLASS:
- return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_);
- }
- }
- YY_BREAK
- case 64:
- YY_RULE_SETUP
- #line 677 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LEASE_DATABASE:
- case isc::dhcp::Parser6Context::HOSTS_DATABASE:
- case isc::dhcp::Parser6Context::OPTION_DEF:
- case isc::dhcp::Parser6Context::OPTION_DATA:
- case isc::dhcp::Parser6Context::CLIENT_CLASSES:
- case isc::dhcp::Parser6Context::CLIENT_CLASS:
- case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_);
- }
- }
- YY_BREAK
- case 65:
- YY_RULE_SETUP
- #line 692 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_DATA(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("data", driver.loc_);
- }
- }
- YY_BREAK
- case 66:
- YY_RULE_SETUP
- #line 701 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_POOLS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("pools", driver.loc_);
- }
- }
- YY_BREAK
- case 67:
- YY_RULE_SETUP
- #line 710 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_PD_POOLS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("pd-pools", driver.loc_);
- }
- }
- YY_BREAK
- case 68:
- YY_RULE_SETUP
- #line 719 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_PREFIX(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("prefix", driver.loc_);
- }
- }
- YY_BREAK
- case 69:
- YY_RULE_SETUP
- #line 728 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_PREFIX_LEN(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("prefix-len", driver.loc_);
- }
- }
- YY_BREAK
- case 70:
- YY_RULE_SETUP
- #line 737 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_EXCLUDED_PREFIX(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix", driver.loc_);
- }
- }
- YY_BREAK
- case 71:
- YY_RULE_SETUP
- #line 746 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_EXCLUDED_PREFIX_LEN(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("excluded-prefix-len", driver.loc_);
- }
- }
- YY_BREAK
- case 72:
- YY_RULE_SETUP
- #line 755 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_DELEGATED_LEN(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("delegated-len", driver.loc_);
- }
- }
- YY_BREAK
- case 73:
- YY_RULE_SETUP
- #line 764 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::POOLS:
- return isc::dhcp::Dhcp6Parser::make_POOL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("pool", driver.loc_);
- }
- }
- YY_BREAK
- case 74:
- YY_RULE_SETUP
- #line 773 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::POOLS:
- case isc::dhcp::Parser6Context::PD_POOLS:
- return isc::dhcp::Dhcp6Parser::make_USER_CONTEXT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("user-context", driver.loc_);
- }
- }
- YY_BREAK
- case 75:
- YY_RULE_SETUP
- #line 783 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_SUBNET(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("subnet", driver.loc_);
- }
- }
- YY_BREAK
- case 76:
- YY_RULE_SETUP
- #line 792 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_);
- }
- }
- YY_BREAK
- case 77:
- YY_RULE_SETUP
- #line 801 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_INTERFACE_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_);
- }
- }
- YY_BREAK
- case 78:
- YY_RULE_SETUP
- #line 810 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("id", driver.loc_);
- }
- }
- YY_BREAK
- case 79:
- YY_RULE_SETUP
- #line 819 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_RAPID_COMMIT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_);
- }
- }
- YY_BREAK
- case 80:
- YY_RULE_SETUP
- #line 828 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_RESERVATION_MODE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_);
- }
- }
- YY_BREAK
- case 81:
- YY_RULE_SETUP
- #line 837 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DEF:
- case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_CODE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("code", driver.loc_);
- }
- }
- YY_BREAK
- case 82:
- YY_RULE_SETUP
- #line 847 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_MAC_SOURCES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("mac-sources", driver.loc_);
- }
- }
- YY_BREAK
- case 83:
- YY_RULE_SETUP
- #line 856 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_RELAY_SUPPLIED_OPTIONS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("relay-supplied-options", driver.loc_);
- }
- }
- YY_BREAK
- case 84:
- YY_RULE_SETUP
- #line 865 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_HOST_RESERVATION_IDENTIFIERS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("host-reservation-identifiers", driver.loc_);
- }
- }
- YY_BREAK
- case 85:
- YY_RULE_SETUP
- #line 874 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_LOGGING(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("Logging", driver.loc_);
- }
- }
- YY_BREAK
- case 86:
- YY_RULE_SETUP
- #line 883 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LOGGING:
- return isc::dhcp::Dhcp6Parser::make_LOGGERS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("loggers", driver.loc_);
- }
- }
- YY_BREAK
- case 87:
- YY_RULE_SETUP
- #line 892 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_OUTPUT_OPTIONS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("output_options", driver.loc_);
- }
- }
- YY_BREAK
- case 88:
- YY_RULE_SETUP
- #line 901 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OUTPUT_OPTIONS:
- return isc::dhcp::Dhcp6Parser::make_OUTPUT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("output", driver.loc_);
- }
- }
- YY_BREAK
- case 89:
- YY_RULE_SETUP
- #line 910 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_DEBUGLEVEL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("debuglevel", driver.loc_);
- }
- }
- YY_BREAK
- case 90:
- YY_RULE_SETUP
- #line 919 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::LOGGERS:
- return isc::dhcp::Dhcp6Parser::make_SEVERITY(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("severity", driver.loc_);
- }
- }
- YY_BREAK
- case 91:
- YY_RULE_SETUP
- #line 928 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASSES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("client-classes", driver.loc_);
- }
- }
- YY_BREAK
- case 92:
- YY_RULE_SETUP
- #line 938 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- case isc::dhcp::Parser6Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_);
- }
- }
- YY_BREAK
- case 93:
- YY_RULE_SETUP
- #line 948 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CLIENT_CLASSES:
- case isc::dhcp::Parser6Context::CLIENT_CLASS:
- return isc::dhcp::Dhcp6Parser::make_TEST(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("test", driver.loc_);
- }
- }
- YY_BREAK
- case 94:
- YY_RULE_SETUP
- #line 958 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_RESERVATIONS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("reservations", driver.loc_);
- }
- }
- YY_BREAK
- case 95:
- YY_RULE_SETUP
- #line 967 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_IP_ADDRESSES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("ip-addresses", driver.loc_);
- }
- }
- YY_BREAK
- case 96:
- YY_RULE_SETUP
- #line 976 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_PREFIXES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("prefixes", driver.loc_);
- }
- }
- YY_BREAK
- case 97:
- YY_RULE_SETUP
- #line 985 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::MAC_SOURCES:
- case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_DUID(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("duid", driver.loc_);
- }
- }
- YY_BREAK
- case 98:
- YY_RULE_SETUP
- #line 996 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_HW_ADDRESS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hw-address", driver.loc_);
- }
- }
- YY_BREAK
- case 99:
- YY_RULE_SETUP
- #line 1006 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::RESERVATIONS:
- return isc::dhcp::Dhcp6Parser::make_HOSTNAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hostname", driver.loc_);
- }
- }
- YY_BREAK
- case 100:
- YY_RULE_SETUP
- #line 1015 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DEF:
- case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_SPACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("space", driver.loc_);
- }
- }
- YY_BREAK
- case 101:
- YY_RULE_SETUP
- #line 1025 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DATA:
- return isc::dhcp::Dhcp6Parser::make_CSV_FORMAT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("csv-format", driver.loc_);
- }
- }
- YY_BREAK
- case 102:
- YY_RULE_SETUP
- #line 1034 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DEF:
- return isc::dhcp::Dhcp6Parser::make_RECORD_TYPES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("record-types", driver.loc_);
- }
- }
- YY_BREAK
- case 103:
- YY_RULE_SETUP
- #line 1043 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DEF:
- return isc::dhcp::Dhcp6Parser::make_ENCAPSULATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("encapsulate", driver.loc_);
- }
- }
- YY_BREAK
- case 104:
- YY_RULE_SETUP
- #line 1052 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::OPTION_DEF:
- return isc::dhcp::Dhcp6Parser::make_ARRAY(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("array", driver.loc_);
- }
- }
- YY_BREAK
- case 105:
- YY_RULE_SETUP
- #line 1061 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SUBNET6:
- return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_);
- }
- }
- YY_BREAK
- case 106:
- YY_RULE_SETUP
- #line 1070 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::RELAY:
- return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_);
- }
- }
- YY_BREAK
- case 107:
- YY_RULE_SETUP
- #line 1079 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_HOOKS_LIBRARIES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hooks-libraries", driver.loc_);
- }
- }
- YY_BREAK
- case 108:
- YY_RULE_SETUP
- #line 1089 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
- return isc::dhcp::Dhcp6Parser::make_PARAMETERS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("parameters", driver.loc_);
- }
- }
- YY_BREAK
- case 109:
- YY_RULE_SETUP
- #line 1098 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::HOOKS_LIBRARIES:
- return isc::dhcp::Dhcp6Parser::make_LIBRARY(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("library", driver.loc_);
- }
- }
- YY_BREAK
- case 110:
- YY_RULE_SETUP
- #line 1107 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_SERVER_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("server-id", driver.loc_);
- }
- }
- YY_BREAK
- case 111:
- YY_RULE_SETUP
- #line 1116 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DUID_TYPE:
- return isc::dhcp::Dhcp6Parser::make_LLT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("LLT", driver.loc_);
- }
- }
- YY_BREAK
- case 112:
- YY_RULE_SETUP
- #line 1125 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DUID_TYPE:
- return isc::dhcp::Dhcp6Parser::make_EN(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("EN", driver.loc_);
- }
- }
- YY_BREAK
- case 113:
- YY_RULE_SETUP
- #line 1134 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DUID_TYPE:
- return isc::dhcp::Dhcp6Parser::make_LL(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("LL", driver.loc_);
- }
- }
- YY_BREAK
- case 114:
- YY_RULE_SETUP
- #line 1143 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_IDENTIFIER(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("identifier", driver.loc_);
- }
- }
- YY_BREAK
- case 115:
- YY_RULE_SETUP
- #line 1152 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_HTYPE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("htype", driver.loc_);
- }
- }
- YY_BREAK
- case 116:
- YY_RULE_SETUP
- #line 1161 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("time", driver.loc_);
- }
- }
- YY_BREAK
- case 117:
- YY_RULE_SETUP
- #line 1170 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::SERVER_ID:
- return isc::dhcp::Dhcp6Parser::make_ENTERPRISE_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("enterprise-id", driver.loc_);
- }
- }
- YY_BREAK
- case 118:
- YY_RULE_SETUP
- #line 1179 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_EXPIRED_LEASES_PROCESSING(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("expired-leases-processing", driver.loc_);
- }
- }
- YY_BREAK
- case 119:
- YY_RULE_SETUP
- #line 1188 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp6Parser::make_RECLAIM_TIMER_WAIT_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
- }
- }
- YY_BREAK
- case 120:
- YY_RULE_SETUP
- #line 1197 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp6Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
- }
- }
- YY_BREAK
- case 121:
- YY_RULE_SETUP
- #line 1206 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp6Parser::make_HOLD_RECLAIMED_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("hold-reclaimed-time", driver.loc_);
- }
- }
- YY_BREAK
- case 122:
- YY_RULE_SETUP
- #line 1215 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp6Parser::make_MAX_RECLAIM_LEASES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-leases", driver.loc_);
- }
- }
- YY_BREAK
- case 123:
- YY_RULE_SETUP
- #line 1224 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp6Parser::make_MAX_RECLAIM_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("max-reclaim-time", driver.loc_);
- }
- }
- YY_BREAK
- case 124:
- YY_RULE_SETUP
- #line 1233 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp6Parser::make_UNWARNED_RECLAIM_CYCLES(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
- }
- }
- YY_BREAK
- case 125:
- YY_RULE_SETUP
- #line 1242 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_DHCP4O6_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("dhcp4o6-port", driver.loc_);
- }
- }
- YY_BREAK
- case 126:
- YY_RULE_SETUP
- #line 1251 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_CONTROL_SOCKET(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("control-socket", driver.loc_);
- }
- }
- YY_BREAK
- case 127:
- YY_RULE_SETUP
- #line 1260 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CONTROL_SOCKET:
- return isc::dhcp::Dhcp6Parser::make_SOCKET_TYPE(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("socket-type", driver.loc_);
- }
- }
- YY_BREAK
- case 128:
- YY_RULE_SETUP
- #line 1269 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CONTROL_SOCKET:
- return isc::dhcp::Dhcp6Parser::make_SOCKET_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("socket-name", driver.loc_);
- }
- }
- YY_BREAK
- case 129:
- YY_RULE_SETUP
- #line 1278 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::DHCP6:
- return isc::dhcp::Dhcp6Parser::make_DHCP_DDNS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("dhcp-ddns", driver.loc_);
- }
- }
- YY_BREAK
- case 130:
- YY_RULE_SETUP
- #line 1287 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_DHCP4(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("Dhcp4", driver.loc_);
- }
- }
- YY_BREAK
- case 131:
- YY_RULE_SETUP
- #line 1296 "dhcp6_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser6Context::CONFIG:
- return isc::dhcp::Dhcp6Parser::make_DHCPDDNS(driver.loc_);
- default:
- return isc::dhcp::Dhcp6Parser::make_STRING("DhcpDdns", driver.loc_);
- }
- }
- YY_BREAK
- case 132:
- YY_RULE_SETUP
- #line 1305 "dhcp6_lexer.ll"
- {
- // A string has been matched. It contains the actual string and single quotes.
- // We need to get those quotes out of the way and just use its content, e.g.
- // for 'foo' we should get foo
- std::string raw(yytext+1);
- size_t len = raw.size() - 1;
- raw.resize(len);
- std::string decoded;
- decoded.reserve(len);
- for (size_t pos = 0; pos < len; ++pos) {
- int b = 0;
- char c = raw[pos];
- switch (c) {
- case '"':
- // impossible condition
- driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
- case '\\':
- ++pos;
- if (pos >= len) {
- // impossible condition
- driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
- }
- c = raw[pos];
- switch (c) {
- case '"':
- case '\\':
- case '/':
- decoded.push_back(c);
- break;
- case 'b':
- decoded.push_back('\b');
- break;
- case 'f':
- decoded.push_back('\f');
- break;
- case 'n':
- decoded.push_back('\n');
- break;
- case 'r':
- decoded.push_back('\r');
- break;
- case 't':
- decoded.push_back('\t');
- break;
- case 'u':
- // support only \u0000 to \u00ff
- ++pos;
- if (pos + 4 > len) {
- // impossible condition
- driver.error(driver.loc_,
- "Overflow unicode escape in \"" + raw + "\"");
- }
- if ((raw[pos] != '0') || (raw[pos + 1] != '0')) {
- driver.error(driver.loc_, "Unsupported unicode escape in \"" + raw + "\"");
- }
- pos += 2;
- c = raw[pos];
- if ((c >= '0') && (c <= '9')) {
- b = (c - '0') << 4;
- } else if ((c >= 'A') && (c <= 'F')) {
- b = (c - 'A' + 10) << 4;
- } else if ((c >= 'a') && (c <= 'f')) {
- b = (c - 'a' + 10) << 4;
- } else {
- // impossible condition
- driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
- }
- pos++;
- c = raw[pos];
- if ((c >= '0') && (c <= '9')) {
- b |= c - '0';
- } else if ((c >= 'A') && (c <= 'F')) {
- b |= c - 'A' + 10;
- } else if ((c >= 'a') && (c <= 'f')) {
- b |= c - 'a' + 10;
- } else {
- // impossible condition
- driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
- }
- decoded.push_back(static_cast<char>(b & 0xff));
- break;
- default:
- // impossible condition
- driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
- }
- break;
- default:
- if ((c >= 0) && (c < 0x20)) {
- // impossible condition
- driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
- }
- decoded.push_back(c);
- }
- }
- return isc::dhcp::Dhcp6Parser::make_STRING(decoded, driver.loc_);
- }
- YY_BREAK
- case 133:
- /* rule 133 can match eol */
- YY_RULE_SETUP
- #line 1403 "dhcp6_lexer.ll"
- {
- // Bad string with a forbidden control character inside
- driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
- }
- YY_BREAK
- case 134:
- /* rule 134 can match eol */
- YY_RULE_SETUP
- #line 1408 "dhcp6_lexer.ll"
- {
- // Bad string with a bad escape inside
- driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
- }
- YY_BREAK
- case 135:
- YY_RULE_SETUP
- #line 1413 "dhcp6_lexer.ll"
- {
- // Bad string with an open escape at the end
- driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
- }
- YY_BREAK
- case 136:
- YY_RULE_SETUP
- #line 1418 "dhcp6_lexer.ll"
- { return isc::dhcp::Dhcp6Parser::make_LSQUARE_BRACKET(driver.loc_); }
- YY_BREAK
- case 137:
- YY_RULE_SETUP
- #line 1419 "dhcp6_lexer.ll"
- { return isc::dhcp::Dhcp6Parser::make_RSQUARE_BRACKET(driver.loc_); }
- YY_BREAK
- case 138:
- YY_RULE_SETUP
- #line 1420 "dhcp6_lexer.ll"
- { return isc::dhcp::Dhcp6Parser::make_LCURLY_BRACKET(driver.loc_); }
- YY_BREAK
- case 139:
- YY_RULE_SETUP
- #line 1421 "dhcp6_lexer.ll"
- { return isc::dhcp::Dhcp6Parser::make_RCURLY_BRACKET(driver.loc_); }
- YY_BREAK
- case 140:
- YY_RULE_SETUP
- #line 1422 "dhcp6_lexer.ll"
- { return isc::dhcp::Dhcp6Parser::make_COMMA(driver.loc_); }
- YY_BREAK
- case 141:
- YY_RULE_SETUP
- #line 1423 "dhcp6_lexer.ll"
- { return isc::dhcp::Dhcp6Parser::make_COLON(driver.loc_); }
- YY_BREAK
- case 142:
- YY_RULE_SETUP
- #line 1425 "dhcp6_lexer.ll"
- {
- // An integer was found.
- std::string tmp(yytext);
- int64_t integer = 0;
- try {
- // In substring we want to use negative values (e.g. -1).
- // In enterprise-id we need to use values up to 0xffffffff.
- // To cover both of those use cases, we need at least
- // int64_t.
- integer = boost::lexical_cast<int64_t>(tmp);
- } catch (const boost::bad_lexical_cast &) {
- driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
- }
- // The parser needs the string form as double conversion is no lossless
- return isc::dhcp::Dhcp6Parser::make_INTEGER(integer, driver.loc_);
- }
- YY_BREAK
- case 143:
- YY_RULE_SETUP
- #line 1443 "dhcp6_lexer.ll"
- {
- // A floating point was found.
- std::string tmp(yytext);
- double fp = 0.0;
- try {
- fp = boost::lexical_cast<double>(tmp);
- } catch (const boost::bad_lexical_cast &) {
- driver.error(driver.loc_, "Failed to convert " + tmp + " to a floating point.");
- }
- return isc::dhcp::Dhcp6Parser::make_FLOAT(fp, driver.loc_);
- }
- YY_BREAK
- case 144:
- YY_RULE_SETUP
- #line 1456 "dhcp6_lexer.ll"
- {
- string tmp(yytext);
- return isc::dhcp::Dhcp6Parser::make_BOOLEAN(tmp == "true", driver.loc_);
- }
- YY_BREAK
- case 145:
- YY_RULE_SETUP
- #line 1461 "dhcp6_lexer.ll"
- {
- return isc::dhcp::Dhcp6Parser::make_NULL_TYPE(driver.loc_);
- }
- YY_BREAK
- case 146:
- YY_RULE_SETUP
- #line 1465 "dhcp6_lexer.ll"
- driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
- YY_BREAK
- case 147:
- YY_RULE_SETUP
- #line 1467 "dhcp6_lexer.ll"
- driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
- YY_BREAK
- case 148:
- YY_RULE_SETUP
- #line 1469 "dhcp6_lexer.ll"
- driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
- YY_BREAK
- case 149:
- YY_RULE_SETUP
- #line 1471 "dhcp6_lexer.ll"
- driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
- YY_BREAK
- case YY_STATE_EOF(INITIAL):
- #line 1473 "dhcp6_lexer.ll"
- {
- if (driver.states_.empty()) {
- return isc::dhcp::Dhcp6Parser::make_END(driver.loc_);
- }
- driver.loc_ = driver.locs_.back();
- driver.locs_.pop_back();
- driver.file_ = driver.files_.back();
- driver.files_.pop_back();
- if (driver.sfile_) {
- fclose(driver.sfile_);
- driver.sfile_ = 0;
- }
- if (!driver.sfiles_.empty()) {
- driver.sfile_ = driver.sfiles_.back();
- driver.sfiles_.pop_back();
- }
- parser6__delete_buffer(YY_CURRENT_BUFFER);
- parser6__switch_to_buffer(driver.states_.back());
- driver.states_.pop_back();
- BEGIN(DIR_EXIT);
- }
- YY_BREAK
- case 150:
- YY_RULE_SETUP
- #line 1496 "dhcp6_lexer.ll"
- ECHO;
- YY_BREAK
- #line 3690 "dhcp6_lexer.cc"
- case YY_END_OF_BUFFER:
- {
- /* Amount of text matched not including the EOB char. */
- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
- /* Undo the effects of YY_DO_BEFORE_ACTION. */
- *yy_cp = (yy_hold_char);
- YY_RESTORE_YY_MORE_OFFSET
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
- {
- /* We're scanning a new file or input source. It's
- * possible that this happened because the user
- * just pointed parser6_in at a new source and called
- * parser6_lex(). If so, then we have to assure
- * consistency between YY_CURRENT_BUFFER and our
- * globals. Here is the right place to do so, because
- * this is the first action (other than possibly a
- * back-up) that will match for the new input source.
- */
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- /* %if-c-only */
- YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser6_in;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
- }
- /* Note that here we test for yy_c_buf_p "<=" to the position
- * of the first EOB in the buffer, since yy_c_buf_p will
- * already have been incremented past the NUL character
- * (since all states make transitions on EOB to the
- * end-of-buffer state). Contrast this with the test
- * in input().
- */
- if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- { /* This was really a NUL. */
- yy_state_type yy_next_state;
- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
- yy_current_state = yy_get_previous_state( );
- /* Okay, we're now positioned to make the NUL
- * transition. We couldn't have
- * yy_get_previous_state() go ahead and do it
- * for us because it doesn't know how to deal
- * with the possibility of jamming (and we don't
- * want to build jamming into it because then it
- * will run more slowly).
- */
- yy_next_state = yy_try_NUL_trans( yy_current_state );
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- if ( yy_next_state )
- {
- /* Consume the NUL. */
- yy_cp = ++(yy_c_buf_p);
- yy_current_state = yy_next_state;
- goto yy_match;
- }
- else
- {
- /* %% [14.0] code to do back-up for compressed tables and set up yy_cp goes here */
- yy_cp = (yy_last_accepting_cpos);
- yy_current_state = (yy_last_accepting_state);
- goto yy_find_action;
- }
- }
- else switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_END_OF_FILE:
- {
- (yy_did_buffer_switch_on_eof) = 0;
- if ( parser6_wrap( ) )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * parser6_text, we can now set up
- * yy_c_buf_p so that if some total
- * hoser (like flex itself) wants to
- * call the scanner after we return the
- * YY_NULL, it'll still work - another
- * YY_NULL will get returned.
- */
- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
- yy_act = YY_STATE_EOF(YY_START);
- goto do_action;
- }
- else
- {
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
- }
- break;
- }
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) =
- (yytext_ptr) + yy_amount_of_matched_text;
- yy_current_state = yy_get_previous_state( );
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_match;
- case EOB_ACT_LAST_MATCH:
- (yy_c_buf_p) =
- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
- yy_current_state = yy_get_previous_state( );
- yy_cp = (yy_c_buf_p);
- yy_bp = (yytext_ptr) + YY_MORE_ADJ;
- goto yy_find_action;
- }
- break;
- }
- default:
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--no action found" );
- } /* end of action switch */
- } /* end of scanning one token */
- } /* end of user's declarations */
- } /* end of parser6_lex */
- /* %ok-for-header */
- /* %if-c++-only */
- /* %not-for-header */
- /* %ok-for-header */
- /* %endif */
- /* yy_get_next_buffer - try to read in a new buffer
- *
- * Returns a code representing an action:
- * EOB_ACT_LAST_MATCH -
- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
- * EOB_ACT_END_OF_FILE - end of file
- */
- /* %if-c-only */
- static int yy_get_next_buffer (void)
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
- char *source = (yytext_ptr);
- int number_to_move, i;
- int ret_val;
- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
- YY_FATAL_ERROR(
- "fatal flex scanner internal error--end of buffer missed" );
- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
- { /* Don't try to fill the buffer, so this is an EOF. */
- if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
- {
- /* We matched a single character, the EOB, so
- * treat this as a final EOF.
- */
- return EOB_ACT_END_OF_FILE;
- }
- else
- {
- /* We matched some text prior to the EOB, first
- * process it.
- */
- return EOB_ACT_LAST_MATCH;
- }
- }
- /* Try to read more data. */
- /* First move last chars to start of buffer. */
- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
- for ( i = 0; i < number_to_move; ++i )
- *(dest++) = *(source++);
- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
- /* don't do the read, it's not guaranteed to return an EOF,
- * just force an EOF
- */
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
- else
- {
- int num_to_read =
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
- while ( num_to_read <= 0 )
- { /* Not enough room in the buffer - grow it. */
- /* just a shorter name for the current buffer */
- YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
- int yy_c_buf_p_offset =
- (int) ((yy_c_buf_p) - b->yy_ch_buf);
- if ( b->yy_is_our_buffer )
- {
- int new_size = b->yy_buf_size * 2;
- if ( new_size <= 0 )
- b->yy_buf_size += b->yy_buf_size / 8;
- else
- b->yy_buf_size *= 2;
- b->yy_ch_buf = (char *)
- /* Include room in for 2 EOB chars. */
- parser6_realloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) );
- }
- else
- /* Can't grow it, we don't own it. */
- b->yy_ch_buf = NULL;
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR(
- "fatal error - scanner input buffer overflow" );
- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
- number_to_move - 1;
- }
- if ( num_to_read > YY_READ_BUF_SIZE )
- num_to_read = YY_READ_BUF_SIZE;
- /* Read in more data. */
- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
- (yy_n_chars), num_to_read );
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
- if ( (yy_n_chars) == 0 )
- {
- if ( number_to_move == YY_MORE_ADJ )
- {
- ret_val = EOB_ACT_END_OF_FILE;
- parser6_restart(parser6_in );
- }
- else
- {
- ret_val = EOB_ACT_LAST_MATCH;
- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
- YY_BUFFER_EOF_PENDING;
- }
- }
- else
- ret_val = EOB_ACT_CONTINUE_SCAN;
- if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
- /* Extend the array by 50%, plus the number we really need. */
- int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser6_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size );
- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
- }
- (yy_n_chars) += number_to_move;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
- return ret_val;
- }
- /* yy_get_previous_state - get the state just before the EOB char was reached */
- /* %if-c-only */
- /* %not-for-header */
- static yy_state_type yy_get_previous_state (void)
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- yy_state_type yy_current_state;
- char *yy_cp;
-
- /* %% [15.0] code to get the start state into yy_current_state goes here */
- yy_current_state = (yy_start);
- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
- {
- /* %% [16.0] code to find the next state goes here */
- YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1204 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- }
- return yy_current_state;
- }
- /* yy_try_NUL_trans - try to make a transition on the NUL character
- *
- * synopsis
- * next_state = yy_try_NUL_trans( current_state );
- */
- /* %if-c-only */
- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- int yy_is_jam;
- /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
- char *yy_cp = (yy_c_buf_p);
- YY_CHAR yy_c = 1;
- if ( yy_accept[yy_current_state] )
- {
- (yy_last_accepting_state) = yy_current_state;
- (yy_last_accepting_cpos) = yy_cp;
- }
- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
- {
- yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 1204 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1203);
- return yy_is_jam ? 0 : yy_current_state;
- }
- #ifndef YY_NO_UNPUT
- /* %if-c-only */
- /* %endif */
- #endif
- /* %if-c-only */
- #ifndef YY_NO_INPUT
- #ifdef __cplusplus
- static int yyinput (void)
- #else
- static int input (void)
- #endif
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- int c;
-
- *(yy_c_buf_p) = (yy_hold_char);
- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
- {
- /* yy_c_buf_p now points to the character we want to return.
- * If this occurs *before* the EOB characters, then it's a
- * valid NUL; if not, then we've hit the end of the buffer.
- */
- if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
- /* This was really a NUL. */
- *(yy_c_buf_p) = '\0';
- else
- { /* need more input */
- int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
- ++(yy_c_buf_p);
- switch ( yy_get_next_buffer( ) )
- {
- case EOB_ACT_LAST_MATCH:
- /* This happens because yy_g_n_b()
- * sees that we've accumulated a
- * token and flags that we need to
- * try matching the token before
- * proceeding. But for input(),
- * there's no matching to consider.
- * So convert the EOB_ACT_LAST_MATCH
- * to EOB_ACT_END_OF_FILE.
- */
- /* Reset buffer status. */
- parser6_restart(parser6_in );
- /*FALLTHROUGH*/
- case EOB_ACT_END_OF_FILE:
- {
- if ( parser6_wrap( ) )
- return 0;
- if ( ! (yy_did_buffer_switch_on_eof) )
- YY_NEW_FILE;
- #ifdef __cplusplus
- return yyinput();
- #else
- return input();
- #endif
- }
- case EOB_ACT_CONTINUE_SCAN:
- (yy_c_buf_p) = (yytext_ptr) + offset;
- break;
- }
- }
- }
- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
- *(yy_c_buf_p) = '\0'; /* preserve parser6_text */
- (yy_hold_char) = *++(yy_c_buf_p);
- /* %% [19.0] update BOL and parser6_lineno */
- return c;
- }
- /* %if-c-only */
- #endif /* ifndef YY_NO_INPUT */
- /* %endif */
- /** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- *
- * @note This function does not reset the start condition to @c INITIAL .
- */
- /* %if-c-only */
- void parser6_restart (FILE * input_file )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
-
- if ( ! YY_CURRENT_BUFFER ){
- parser6_ensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- parser6__create_buffer(parser6_in,YY_BUF_SIZE );
- }
- parser6__init_buffer(YY_CURRENT_BUFFER,input_file );
- parser6__load_buffer_state( );
- }
- /* %if-c++-only */
- /* %endif */
- /** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
- /* %if-c-only */
- void parser6__switch_to_buffer (YY_BUFFER_STATE new_buffer )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
-
- /* TODO. We should be able to replace this entire function body
- * with
- * parser6_pop_buffer_state();
- * parser6_push_buffer_state(new_buffer);
- */
- parser6_ensure_buffer_stack ();
- if ( YY_CURRENT_BUFFER == new_buffer )
- return;
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
- parser6__load_buffer_state( );
- /* We don't actually know whether we did this switch during
- * EOF (parser6_wrap()) processing, but the only time this flag
- * is looked at is after parser6_wrap() is called, so it's safe
- * to go ahead and always set it.
- */
- (yy_did_buffer_switch_on_eof) = 1;
- }
- /* %if-c-only */
- static void parser6__load_buffer_state (void)
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
- /* %if-c-only */
- parser6_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- (yy_hold_char) = *(yy_c_buf_p);
- }
- /** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- *
- * @return the allocated buffer state.
- */
- /* %if-c-only */
- YY_BUFFER_STATE parser6__create_buffer (FILE * file, int size )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) parser6_alloc(sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" );
- b->yy_buf_size = size;
- /* yy_ch_buf has to be 2 characters longer than the size given because
- * we need to put in 2 end-of-buffer characters.
- */
- b->yy_ch_buf = (char *) parser6_alloc((yy_size_t) (b->yy_buf_size + 2) );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in parser6__create_buffer()" );
- b->yy_is_our_buffer = 1;
- parser6__init_buffer(b,file );
- return b;
- }
- /* %if-c++-only */
- /* %endif */
- /** Destroy the buffer.
- * @param b a buffer created with parser6__create_buffer()
- *
- */
- /* %if-c-only */
- void parser6__delete_buffer (YY_BUFFER_STATE b )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
-
- if ( ! b )
- return;
- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
- if ( b->yy_is_our_buffer )
- parser6_free((void *) b->yy_ch_buf );
- parser6_free((void *) b );
- }
- /* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a parser6_restart() or at EOF.
- */
- /* %if-c-only */
- static void parser6__init_buffer (YY_BUFFER_STATE b, FILE * file )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- int oerrno = errno;
-
- parser6__flush_buffer(b );
- /* %if-c-only */
- b->yy_input_file = file;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- b->yy_fill_buffer = 1;
- /* If b is the current buffer, then parser6__init_buffer was _probably_
- * called from parser6_restart() or through yy_get_next_buffer.
- * In that case, we don't want to reset the lineno or column.
- */
- if (b != YY_CURRENT_BUFFER){
- b->yy_bs_lineno = 1;
- b->yy_bs_column = 0;
- }
- /* %if-c-only */
- b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
-
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- errno = oerrno;
- }
- /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- *
- */
- /* %if-c-only */
- void parser6__flush_buffer (YY_BUFFER_STATE b )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- if ( ! b )
- return;
- b->yy_n_chars = 0;
- /* We always need two end-of-buffer characters. The first causes
- * a transition to the end-of-buffer state. The second causes
- * a jam in that state.
- */
- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
- b->yy_buf_pos = &b->yy_ch_buf[0];
- b->yy_at_bol = 1;
- b->yy_buffer_status = YY_BUFFER_NEW;
- if ( b == YY_CURRENT_BUFFER )
- parser6__load_buffer_state( );
- }
- /* %if-c-or-c++ */
- /** Pushes the new state onto the stack. The new state becomes
- * the current state. This function will allocate the stack
- * if necessary.
- * @param new_buffer The new state.
- *
- */
- /* %if-c-only */
- void parser6_push_buffer_state (YY_BUFFER_STATE new_buffer )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- if (new_buffer == NULL)
- return;
- parser6_ensure_buffer_stack();
- /* This block is copied from parser6__switch_to_buffer. */
- if ( YY_CURRENT_BUFFER )
- {
- /* Flush out information for old buffer. */
- *(yy_c_buf_p) = (yy_hold_char);
- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
- }
- /* Only push if top exists. Otherwise, replace top. */
- if (YY_CURRENT_BUFFER)
- (yy_buffer_stack_top)++;
- YY_CURRENT_BUFFER_LVALUE = new_buffer;
- /* copied from parser6__switch_to_buffer. */
- parser6__load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
- /* %endif */
- /* %if-c-or-c++ */
- /** Removes and deletes the top of the stack, if present.
- * The next element becomes the new top.
- *
- */
- /* %if-c-only */
- void parser6_pop_buffer_state (void)
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- if (!YY_CURRENT_BUFFER)
- return;
- parser6__delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- if ((yy_buffer_stack_top) > 0)
- --(yy_buffer_stack_top);
- if (YY_CURRENT_BUFFER) {
- parser6__load_buffer_state( );
- (yy_did_buffer_switch_on_eof) = 1;
- }
- }
- /* %endif */
- /* %if-c-or-c++ */
- /* Allocates the stack if it does not exist.
- * Guarantees space for at least one push.
- */
- /* %if-c-only */
- static void parser6_ensure_buffer_stack (void)
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- yy_size_t num_to_alloc;
-
- if (!(yy_buffer_stack)) {
- /* First allocation is just for 2 elements, since we don't know if this
- * scanner will even need a stack. We use 2 instead of 1 to avoid an
- * immediate realloc on the next call.
- */
- num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
- (yy_buffer_stack) = (struct yy_buffer_state**)parser6_alloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_buffer_stack()" );
- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
- (yy_buffer_stack_max) = num_to_alloc;
- (yy_buffer_stack_top) = 0;
- return;
- }
- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
- /* Increase the buffer to prepare for a possible push. */
- yy_size_t grow_size = 8 /* arbitrary grow size */;
- num_to_alloc = (yy_buffer_stack_max) + grow_size;
- (yy_buffer_stack) = (struct yy_buffer_state**)parser6_realloc
- ((yy_buffer_stack),
- num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in parser6_ensure_buffer_stack()" );
- /* zero only the new slots.*/
- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
- (yy_buffer_stack_max) = num_to_alloc;
- }
- }
- /* %endif */
- /* %if-c-only */
- /** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- *
- * @return the newly allocated buffer state object.
- */
- YY_BUFFER_STATE parser6__scan_buffer (char * base, yy_size_t size )
- {
- YY_BUFFER_STATE b;
-
- if ( size < 2 ||
- base[size-2] != YY_END_OF_BUFFER_CHAR ||
- base[size-1] != YY_END_OF_BUFFER_CHAR )
- /* They forgot to leave room for the EOB's. */
- return NULL;
- b = (YY_BUFFER_STATE) parser6_alloc(sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_buffer()" );
- b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
- b->yy_buf_pos = b->yy_ch_buf = base;
- b->yy_is_our_buffer = 0;
- b->yy_input_file = NULL;
- b->yy_n_chars = b->yy_buf_size;
- b->yy_is_interactive = 0;
- b->yy_at_bol = 1;
- b->yy_fill_buffer = 0;
- b->yy_buffer_status = YY_BUFFER_NEW;
- parser6__switch_to_buffer(b );
- return b;
- }
- /* %endif */
- /* %if-c-only */
- /** Setup the input buffer state to scan a string. The next call to parser6_lex() will
- * scan from a @e copy of @a str.
- * @param yystr a NUL-terminated string to scan
- *
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- * parser6__scan_bytes() instead.
- */
- YY_BUFFER_STATE parser6__scan_string (const char * yystr )
- {
-
- return parser6__scan_bytes(yystr,(int) strlen(yystr) );
- }
- /* %endif */
- /* %if-c-only */
- /** Setup the input buffer state to scan the given bytes. The next call to parser6_lex() will
- * scan from a @e copy of @a bytes.
- * @param yybytes the byte buffer to scan
- * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
- *
- * @return the newly allocated buffer state object.
- */
- YY_BUFFER_STATE parser6__scan_bytes (const char * yybytes, int _yybytes_len )
- {
- YY_BUFFER_STATE b;
- char *buf;
- yy_size_t n;
- int i;
-
- /* Get memory for full buffer, including space for trailing EOB's. */
- n = (yy_size_t) (_yybytes_len + 2);
- buf = (char *) parser6_alloc(n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in parser6__scan_bytes()" );
- for ( i = 0; i < _yybytes_len; ++i )
- buf[i] = yybytes[i];
- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
- b = parser6__scan_buffer(buf,n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in parser6__scan_bytes()" );
- /* It's okay to grow etc. this buffer, and we should throw it
- * away when we're done.
- */
- b->yy_is_our_buffer = 1;
- return b;
- }
- /* %endif */
- #ifndef YY_EXIT_FAILURE
- #define YY_EXIT_FAILURE 2
- #endif
- /* %if-c-only */
- static void yynoreturn yy_fatal_error (const char* msg )
- {
- (void) fprintf( stderr, "%s\n", msg );
- exit( YY_EXIT_FAILURE );
- }
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- /* Redefine yyless() so it works in section 3 code. */
- #undef yyless
- #define yyless(n) \
- do \
- { \
- /* Undo effects of setting up parser6_text. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- parser6_text[parser6_leng] = (yy_hold_char); \
- (yy_c_buf_p) = parser6_text + yyless_macro_arg; \
- (yy_hold_char) = *(yy_c_buf_p); \
- *(yy_c_buf_p) = '\0'; \
- parser6_leng = yyless_macro_arg; \
- } \
- while ( 0 )
- /* Accessor methods (get/set functions) to struct members. */
- /* %if-c-only */
- /* %if-reentrant */
- /* %endif */
- /** Get the current line number.
- *
- */
- int parser6_get_lineno (void)
- {
-
- return parser6_lineno;
- }
- /** Get the input stream.
- *
- */
- FILE *parser6_get_in (void)
- {
- return parser6_in;
- }
- /** Get the output stream.
- *
- */
- FILE *parser6_get_out (void)
- {
- return parser6_out;
- }
- /** Get the length of the current token.
- *
- */
- int parser6_get_leng (void)
- {
- return parser6_leng;
- }
- /** Get the current token.
- *
- */
- char *parser6_get_text (void)
- {
- return parser6_text;
- }
- /* %if-reentrant */
- /* %endif */
- /** Set the current line number.
- * @param _line_number line number
- *
- */
- void parser6_set_lineno (int _line_number )
- {
-
- parser6_lineno = _line_number;
- }
- /** Set the input stream. This does not discard the current
- * input buffer.
- * @param _in_str A readable stream.
- *
- * @see parser6__switch_to_buffer
- */
- void parser6_set_in (FILE * _in_str )
- {
- parser6_in = _in_str ;
- }
- void parser6_set_out (FILE * _out_str )
- {
- parser6_out = _out_str ;
- }
- int parser6_get_debug (void)
- {
- return parser6__flex_debug;
- }
- void parser6_set_debug (int _bdebug )
- {
- parser6__flex_debug = _bdebug ;
- }
- /* %endif */
- /* %if-reentrant */
- /* %if-bison-bridge */
- /* %endif */
- /* %endif if-c-only */
- /* %if-c-only */
- static int yy_init_globals (void)
- {
- /* Initialization is the same as for the non-reentrant scanner.
- * This function is called from parser6_lex_destroy(), so don't allocate here.
- */
- (yy_buffer_stack) = NULL;
- (yy_buffer_stack_top) = 0;
- (yy_buffer_stack_max) = 0;
- (yy_c_buf_p) = NULL;
- (yy_init) = 0;
- (yy_start) = 0;
- /* Defined in main.c */
- #ifdef YY_STDINIT
- parser6_in = stdin;
- parser6_out = stdout;
- #else
- parser6_in = NULL;
- parser6_out = NULL;
- #endif
- /* For future reference: Set errno on error, since we are called by
- * parser6_lex_init()
- */
- return 0;
- }
- /* %endif */
- /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
- /* parser6_lex_destroy is for both reentrant and non-reentrant scanners. */
- int parser6_lex_destroy (void)
- {
-
- /* Pop the buffer stack, destroying each element. */
- while(YY_CURRENT_BUFFER){
- parser6__delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- parser6_pop_buffer_state();
- }
- /* Destroy the stack itself. */
- parser6_free((yy_buffer_stack) );
- (yy_buffer_stack) = NULL;
- /* Reset the globals. This is important in a non-reentrant scanner so the next time
- * parser6_lex() is called, initialization will occur. */
- yy_init_globals( );
- /* %if-reentrant */
- /* %endif */
- return 0;
- }
- /* %endif */
- /*
- * Internal utility routines.
- */
- #ifndef yytext_ptr
- static void yy_flex_strncpy (char* s1, const char * s2, int n )
- {
-
- int i;
- for ( i = 0; i < n; ++i )
- s1[i] = s2[i];
- }
- #endif
- #ifdef YY_NEED_STRLEN
- static int yy_flex_strlen (const char * s )
- {
- int n;
- for ( n = 0; s[n]; ++n )
- ;
- return n;
- }
- #endif
- void *parser6_alloc (yy_size_t size )
- {
- return malloc(size);
- }
- void *parser6_realloc (void * ptr, yy_size_t size )
- {
-
- /* The cast to (char *) in the following accommodates both
- * implementations that use char* generic pointers, and those
- * that use void* generic pointers. It works with the latter
- * because both ANSI C and C++ allow castless assignment from
- * any pointer type to void*, and deal with argument conversions
- * as though doing an assignment.
- */
- return realloc(ptr, size);
- }
- void parser6_free (void * ptr )
- {
- free( (char *) ptr ); /* see parser6_realloc() for (char *) cast */
- }
- /* %if-tables-serialization definitions */
- /* %define-yytables The name for this specific scanner's tables. */
- #define YYTABLES_NAME "yytables"
- /* %endif */
- /* %ok-for-header */
- #line 1496 "dhcp6_lexer.ll"
- using namespace isc::dhcp;
- void
- Parser6Context::scanStringBegin(const std::string& str, ParserType parser_type)
- {
- start_token_flag = true;
- start_token_value = parser_type;
- file_ = "<string>";
- sfile_ = 0;
- loc_.initialize(&file_);
- yy_flex_debug = trace_scanning_;
- YY_BUFFER_STATE buffer;
- buffer = parser6__scan_bytes(str.c_str(), str.size());
- if (!buffer) {
- fatal("cannot scan string");
- // fatal() throws an exception so this can't be reached
- }
- }
- void
- Parser6Context::scanFileBegin(FILE * f,
- const std::string& filename,
- ParserType parser_type)
- {
- start_token_flag = true;
- start_token_value = parser_type;
- file_ = filename;
- sfile_ = f;
- loc_.initialize(&file_);
- yy_flex_debug = trace_scanning_;
- YY_BUFFER_STATE buffer;
- // See dhcp6_lexer.cc header for available definitions
- buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
- if (!buffer) {
- fatal("cannot scan file " + filename);
- }
- parser6__switch_to_buffer(buffer);
- }
- void
- Parser6Context::scanEnd() {
- if (sfile_)
- fclose(sfile_);
- sfile_ = 0;
- static_cast<void>(parser6_lex_destroy());
- // Close files
- while (!sfiles_.empty()) {
- FILE* f = sfiles_.back();
- if (f) {
- fclose(f);
- }
- sfiles_.pop_back();
- }
- // Delete states
- while (!states_.empty()) {
- parser6__delete_buffer(states_.back());
- states_.pop_back();
- }
- }
- void
- Parser6Context::includeFile(const std::string& filename) {
- if (states_.size() > 10) {
- fatal("Too many nested include.");
- }
- FILE* f = fopen(filename.c_str(), "r");
- if (!f) {
- fatal("Can't open include file " + filename);
- }
- if (sfile_) {
- sfiles_.push_back(sfile_);
- }
- sfile_ = f;
- states_.push_back(YY_CURRENT_BUFFER);
- YY_BUFFER_STATE buffer;
- buffer = parser6__create_buffer(f, 65536 /*buffer size*/);
- if (!buffer) {
- fatal( "Can't scan include file " + filename);
- }
- parser6__switch_to_buffer(buffer);
- files_.push_back(file_);
- file_ = filename;
- locs_.push_back(loc_);
- loc_.initialize(&file_);
- BEGIN(INITIAL);
- }
- namespace {
- /// To avoid unused function error
- class Dummy {
- // cppcheck-suppress unusedPrivateFunction
- void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
- };
- }
|