123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241 |
- #line 1 "dhcp4_lexer.cc"
- #line 3 "dhcp4_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 parser4__create_buffer
- #define yy_delete_buffer parser4__delete_buffer
- #define yy_scan_buffer parser4__scan_buffer
- #define yy_scan_string parser4__scan_string
- #define yy_scan_bytes parser4__scan_bytes
- #define yy_init_buffer parser4__init_buffer
- #define yy_flush_buffer parser4__flush_buffer
- #define yy_load_buffer_state parser4__load_buffer_state
- #define yy_switch_to_buffer parser4__switch_to_buffer
- #define yypush_buffer_state parser4_push_buffer_state
- #define yypop_buffer_state parser4_pop_buffer_state
- #define yyensure_buffer_stack parser4_ensure_buffer_stack
- #define yy_flex_debug parser4__flex_debug
- #define yyin parser4_in
- #define yyleng parser4_leng
- #define yylex parser4_lex
- #define yylineno parser4_lineno
- #define yyout parser4_out
- #define yyrestart parser4_restart
- #define yytext parser4_text
- #define yywrap parser4_wrap
- #define yyalloc parser4_alloc
- #define yyrealloc parser4_realloc
- #define yyfree parser4_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 4
- #if YY_FLEX_SUBMINOR_VERSION > 0
- #define FLEX_BETA
- #endif
- /* %if-c++-only */
- /* %endif */
- /* %if-c-only */
- #ifdef yy_create_buffer
- #define parser4__create_buffer_ALREADY_DEFINED
- #else
- #define yy_create_buffer parser4__create_buffer
- #endif
- #ifdef yy_delete_buffer
- #define parser4__delete_buffer_ALREADY_DEFINED
- #else
- #define yy_delete_buffer parser4__delete_buffer
- #endif
- #ifdef yy_scan_buffer
- #define parser4__scan_buffer_ALREADY_DEFINED
- #else
- #define yy_scan_buffer parser4__scan_buffer
- #endif
- #ifdef yy_scan_string
- #define parser4__scan_string_ALREADY_DEFINED
- #else
- #define yy_scan_string parser4__scan_string
- #endif
- #ifdef yy_scan_bytes
- #define parser4__scan_bytes_ALREADY_DEFINED
- #else
- #define yy_scan_bytes parser4__scan_bytes
- #endif
- #ifdef yy_init_buffer
- #define parser4__init_buffer_ALREADY_DEFINED
- #else
- #define yy_init_buffer parser4__init_buffer
- #endif
- #ifdef yy_flush_buffer
- #define parser4__flush_buffer_ALREADY_DEFINED
- #else
- #define yy_flush_buffer parser4__flush_buffer
- #endif
- #ifdef yy_load_buffer_state
- #define parser4__load_buffer_state_ALREADY_DEFINED
- #else
- #define yy_load_buffer_state parser4__load_buffer_state
- #endif
- #ifdef yy_switch_to_buffer
- #define parser4__switch_to_buffer_ALREADY_DEFINED
- #else
- #define yy_switch_to_buffer parser4__switch_to_buffer
- #endif
- #ifdef yypush_buffer_state
- #define parser4_push_buffer_state_ALREADY_DEFINED
- #else
- #define yypush_buffer_state parser4_push_buffer_state
- #endif
- #ifdef yypop_buffer_state
- #define parser4_pop_buffer_state_ALREADY_DEFINED
- #else
- #define yypop_buffer_state parser4_pop_buffer_state
- #endif
- #ifdef yyensure_buffer_stack
- #define parser4_ensure_buffer_stack_ALREADY_DEFINED
- #else
- #define yyensure_buffer_stack parser4_ensure_buffer_stack
- #endif
- #ifdef yylex
- #define parser4_lex_ALREADY_DEFINED
- #else
- #define yylex parser4_lex
- #endif
- #ifdef yyrestart
- #define parser4_restart_ALREADY_DEFINED
- #else
- #define yyrestart parser4_restart
- #endif
- #ifdef yylex_init
- #define parser4_lex_init_ALREADY_DEFINED
- #else
- #define yylex_init parser4_lex_init
- #endif
- #ifdef yylex_init_extra
- #define parser4_lex_init_extra_ALREADY_DEFINED
- #else
- #define yylex_init_extra parser4_lex_init_extra
- #endif
- #ifdef yylex_destroy
- #define parser4_lex_destroy_ALREADY_DEFINED
- #else
- #define yylex_destroy parser4_lex_destroy
- #endif
- #ifdef yyget_debug
- #define parser4_get_debug_ALREADY_DEFINED
- #else
- #define yyget_debug parser4_get_debug
- #endif
- #ifdef yyset_debug
- #define parser4_set_debug_ALREADY_DEFINED
- #else
- #define yyset_debug parser4_set_debug
- #endif
- #ifdef yyget_extra
- #define parser4_get_extra_ALREADY_DEFINED
- #else
- #define yyget_extra parser4_get_extra
- #endif
- #ifdef yyset_extra
- #define parser4_set_extra_ALREADY_DEFINED
- #else
- #define yyset_extra parser4_set_extra
- #endif
- #ifdef yyget_in
- #define parser4_get_in_ALREADY_DEFINED
- #else
- #define yyget_in parser4_get_in
- #endif
- #ifdef yyset_in
- #define parser4_set_in_ALREADY_DEFINED
- #else
- #define yyset_in parser4_set_in
- #endif
- #ifdef yyget_out
- #define parser4_get_out_ALREADY_DEFINED
- #else
- #define yyget_out parser4_get_out
- #endif
- #ifdef yyset_out
- #define parser4_set_out_ALREADY_DEFINED
- #else
- #define yyset_out parser4_set_out
- #endif
- #ifdef yyget_leng
- #define parser4_get_leng_ALREADY_DEFINED
- #else
- #define yyget_leng parser4_get_leng
- #endif
- #ifdef yyget_text
- #define parser4_get_text_ALREADY_DEFINED
- #else
- #define yyget_text parser4_get_text
- #endif
- #ifdef yyget_lineno
- #define parser4_get_lineno_ALREADY_DEFINED
- #else
- #define yyget_lineno parser4_get_lineno
- #endif
- #ifdef yyset_lineno
- #define parser4_set_lineno_ALREADY_DEFINED
- #else
- #define yyset_lineno parser4_set_lineno
- #endif
- #ifdef yywrap
- #define parser4_wrap_ALREADY_DEFINED
- #else
- #define yywrap parser4_wrap
- #endif
- /* %endif */
- #ifdef yyalloc
- #define parser4_alloc_ALREADY_DEFINED
- #else
- #define yyalloc parser4_alloc
- #endif
- #ifdef yyrealloc
- #define parser4_realloc_ALREADY_DEFINED
- #else
- #define yyrealloc parser4_realloc
- #endif
- #ifdef yyfree
- #define parser4_free_ALREADY_DEFINED
- #else
- #define yyfree parser4_free
- #endif
- /* %if-c-only */
- #ifdef yytext
- #define parser4_text_ALREADY_DEFINED
- #else
- #define yytext parser4_text
- #endif
- #ifdef yyleng
- #define parser4_leng_ALREADY_DEFINED
- #else
- #define yyleng parser4_leng
- #endif
- #ifdef yyin
- #define parser4_in_ALREADY_DEFINED
- #else
- #define yyin parser4_in
- #endif
- #ifdef yyout
- #define parser4_out_ALREADY_DEFINED
- #else
- #define yyout parser4_out
- #endif
- #ifdef yy_flex_debug
- #define parser4__flex_debug_ALREADY_DEFINED
- #else
- #define yy_flex_debug parser4__flex_debug
- #endif
- #ifdef yylineno
- #define parser4_lineno_ALREADY_DEFINED
- #else
- #define yylineno parser4_lineno
- #endif
- /* %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
- #ifndef SIZE_MAX
- #define SIZE_MAX (~(size_t)0)
- #endif
- #endif /* ! C99 */
- #endif /* ! FLEXINT_H */
- /* %endif */
- /* begin standard C++ headers. */
- /* %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 yyrestart( yyin )
- #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 yyleng;
- /* %endif */
- /* %if-c-only */
- /* %if-not-reentrant */
- extern FILE *yyin, *yyout;
- /* %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 yytext. */ \
- 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 yytext 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 yyrestart()), so that the user can continue scanning by
- * just pointing yyin 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 yytext is formed. */
- static char yy_hold_char;
- static int yy_n_chars; /* number of characters read into yy_ch_buf */
- int yyleng;
- /* 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 yywrap()'s to do buffer switches
- * instead of setting up a fresh yyin. A bit of a hack ...
- */
- static int yy_did_buffer_switch_on_eof;
- /* %ok-for-header */
- /* %endif */
- void yyrestart ( FILE *input_file );
- void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
- YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
- void yy_delete_buffer ( YY_BUFFER_STATE b );
- void yy_flush_buffer ( YY_BUFFER_STATE b );
- void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
- void yypop_buffer_state ( void );
- static void yyensure_buffer_stack ( void );
- static void yy_load_buffer_state ( void );
- static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
- #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
- YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
- YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
- YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
- /* %endif */
- void *yyalloc ( yy_size_t );
- void *yyrealloc ( void *, yy_size_t );
- void yyfree ( void * );
- #define yy_new_buffer yy_create_buffer
- #define yy_set_interactive(is_interactive) \
- { \
- if ( ! YY_CURRENT_BUFFER ){ \
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer( yyin, YY_BUF_SIZE ); \
- } \
- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
- }
- #define yy_set_bol(at_bol) \
- { \
- if ( ! YY_CURRENT_BUFFER ){\
- yyensure_buffer_stack (); \
- YY_CURRENT_BUFFER_LVALUE = \
- yy_create_buffer( yyin, 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] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
- /* Begin user sect3 */
- #define parser4_wrap() (/*CONSTCOND*/1)
- #define YY_SKIP_YYWRAP
- #define FLEX_DEBUG
- typedef flex_uint8_t YY_CHAR;
- FILE *yyin = NULL, *yyout = NULL;
- typedef int yy_state_type;
- extern int yylineno;
- int yylineno = 1;
- extern char *yytext;
- #ifdef yytext_ptr
- #undef yytext_ptr
- #endif
- #define yytext_ptr yytext
- /* %% [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 yytext.
- */
- #define YY_DO_BEFORE_ACTION \
- (yytext_ptr) = yy_bp; \
- /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
- yyleng = (int) (yy_cp - yy_bp); \
- (yy_hold_char) = *yy_cp; \
- *yy_cp = '\0'; \
- /* %% [3.0] code to copy yytext_ptr to yytext[] 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 158
- #define YY_END_OF_BUFFER 159
- /* 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[1286] =
- { 0,
- 151, 151, 0, 0, 0, 0, 0, 0, 0, 0,
- 159, 157, 10, 11, 157, 1, 151, 148, 151, 151,
- 157, 150, 149, 157, 157, 157, 157, 157, 144, 145,
- 157, 157, 157, 146, 147, 5, 5, 5, 157, 157,
- 157, 10, 11, 0, 0, 140, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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,
- 151, 151, 0, 150, 151, 3, 2, 6, 0, 151,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
- 0, 141, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 143, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 142, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 56, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 156, 154, 0,
- 153, 152, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 121, 0, 120, 0, 0, 62, 0, 0,
- 0, 0, 0, 0, 0, 0, 29, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
- 155, 152, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 122, 0, 0, 124, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 0, 48, 0,
- 0, 0, 0, 0, 78, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 47, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 51, 0, 33, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 76, 25,
- 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
- 0, 12, 129, 0, 126, 0, 125, 0, 0, 0,
- 88, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 70,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 27, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 50, 0, 0, 0, 0, 0, 0,
- 0, 0, 89, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 84, 0, 0, 0, 0, 0, 7, 0,
- 0, 127, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 72, 0, 0, 0, 0,
- 0, 0, 0, 68, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 53, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 93, 66, 0, 0, 0, 71, 26,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
- 130, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 59, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 83, 0,
- 0, 0, 0, 37, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 0, 0, 0, 0, 24, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 73, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 80, 0, 0, 0, 0,
- 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 54, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 21,
- 0, 0, 0, 0, 0, 0, 0, 110, 0, 0,
- 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 134, 0, 0, 0, 0, 0, 0, 81, 0, 0,
- 0, 0, 85, 69, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 79, 0, 20,
- 0, 90, 0, 0, 0, 0, 0, 114, 0, 0,
- 0, 45, 0, 0, 0, 0, 0, 92, 28, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 87, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 137, 46, 61, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 40, 0, 0, 0, 0, 111, 0, 109,
- 0, 104, 103, 0, 19, 0, 0, 0, 0, 0,
- 123, 0, 0, 75, 0, 0, 0, 0, 0, 0,
- 101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 55, 0, 0, 35, 0, 0, 0, 0, 113, 0,
- 0, 0, 0, 0, 57, 41, 0, 86, 0, 0,
- 77, 0, 0, 0, 0, 52, 0, 132, 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, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 139, 74, 0, 38, 102, 0, 0, 135, 106, 0,
- 0, 0, 0, 0, 0, 23, 0, 22, 0, 112,
- 0, 0, 0, 67, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 39, 0, 0, 0, 36, 0,
- 0, 0, 0, 0, 0, 91, 0, 0, 136, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 138,
- 44, 0, 133, 128, 0, 0, 14, 0, 0, 119,
- 0, 0, 0, 0, 99, 0, 0, 0, 0, 0,
- 0, 58, 0, 0, 0, 0, 0, 0, 0, 13,
- 0, 0, 0, 0, 107, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 98, 17, 0, 116, 0, 0,
- 0, 115, 0, 0, 0, 97, 0, 0, 0, 118,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 117,
- 0, 0, 0, 0, 0, 0, 95, 100, 42, 0,
- 0, 0, 94, 0, 0, 0, 0, 0, 0, 0,
- 64, 0, 0, 96, 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[1298] =
- { 0,
- 0, 70, 19, 29, 41, 49, 52, 58, 87, 95,
- 1647, 1648, 32, 1643, 141, 0, 201, 1648, 206, 88,
- 11, 213, 1648, 1625, 114, 25, 2, 6, 1648, 1648,
- 73, 11, 17, 1648, 1648, 1648, 104, 1631, 1586, 0,
- 1623, 107, 1638, 217, 247, 1648, 1582, 185, 1581, 1587,
- 93, 58, 1579, 91, 211, 195, 14, 273, 195, 1578,
- 181, 275, 202, 209, 1587, 66, 188, 1586, 232, 219,
- 296, 282, 207, 1569, 78, 301, 302, 296, 1588, 0,
- 341, 357, 365, 371, 376, 1648, 0, 1648, 301, 379,
- 223, 299, 196, 309, 322, 210, 1648, 1585, 1624, 1648,
- 283, 1648, 391, 1613, 295, 1571, 1581, 333, 344, 1576,
- 341, 352, 362, 368, 374, 1619, 0, 442, 365, 1563,
- 1565, 1561, 1569, 74, 1565, 1554, 1555, 89, 1571, 1554,
- 1563, 1563, 363, 1554, 364, 1555, 355, 1600, 1604, 1546,
- 1597, 1539, 1562, 1559, 1559, 1553, 351, 1546, 1539, 1544,
- 1538, 378, 1549, 1534, 1533, 1547, 306, 1533, 372, 1549,
- 357, 438, 1536, 364, 1547, 1544, 1545, 1543, 1525, 1527,
- 376, 1519, 1536, 1528, 0, 407, 415, 412, 412, 418,
- 413, 1527, 1648, 0, 1570, 418, 1517, 1520, 416, 423,
- 1528, 446, 1571, 450, 1570, 442, 1569, 1648, 487, 1568,
- 460, 1529, 1509, 1525, 1522, 1521, 422, 1562, 1556, 1522,
- 1501, 1509, 1504, 1518, 1514, 1502, 1514, 1514, 1505, 1489,
- 1493, 1506, 1506, 1498, 1488, 1506, 1648, 1501, 1504, 1485,
- 1484, 1534, 1483, 1493, 1496, 465, 1492, 1480, 1491, 1527,
- 1474, 1530, 1483, 481, 1473, 1489, 1470, 1469, 1475, 1466,
- 1465, 1472, 1474, 1519, 1477, 1476, 1470, 274, 1477, 1472,
- 1464, 1470, 1469, 1469, 1450, 1466, 1452, 1458, 1465, 1453,
- 1446, 1460, 1501, 1462, 485, 1453, 480, 1648, 1648, 481,
- 1648, 1648, 1440, 0, 455, 198, 1442, 499, 491, 1496,
- 1449, 486, 1648, 1494, 1648, 1488, 534, 1648, 483, 1430,
- 1486, 1432, 1438, 1488, 1445, 398, 1648, 1443, 1485, 1440,
- 1437, 509, 1443, 1481, 1475, 1430, 1425, 1422, 1471, 1430,
- 1419, 1468, 1416, 531, 1430, 1415, 1428, 1415, 1425, 1420,
- 1427, 1422, 1418, 483, 1416, 1419, 1414, 1410, 1458, 503,
- 1452, 1648, 1404, 1403, 1402, 1395, 1397, 1401, 1390, 1403,
- 512, 1448, 1403, 1400, 1404, 1648, 1402, 1391, 1391, 1403,
- 1385, 1377, 1378, 1399, 1381, 1430, 1392, 1391, 1377, 1389,
- 1388, 1387, 1386, 1427, 1426, 1648, 1370, 1369, 555, 1382,
- 1648, 1648, 1381, 0, 1370, 1362, 491, 1367, 1418, 1417,
- 1375, 1415, 1648, 1363, 1413, 1648, 533, 580, 507, 1412,
- 1368, 1364, 1352, 1648, 1368, 1367, 1354, 1353, 1648, 1355,
- 1352, 523, 1350, 1352, 1648, 1360, 1357, 1342, 1355, 1350,
- 561, 1357, 1339, 1388, 1648, 1337, 1353, 1385, 1348, 1345,
- 1346, 1348, 1380, 1333, 1328, 1327, 1376, 1322, 1337, 1315,
- 1322, 1327, 1375, 1648, 1322, 1318, 1316, 1320, 1327, 1311,
- 1311, 1321, 1324, 1313, 1308, 1648, 1363, 1648, 1307, 1318,
- 1355, 1302, 1307, 1316, 1310, 1314, 1354, 1348, 1312, 1292,
- 1312, 1294, 1293, 1301, 1305, 1288, 1344, 1286, 1648, 1648,
- 1291, 1289, 1648, 1300, 1334, 1296, 0, 1280, 1297, 1335,
- 1285, 1648, 1648, 1282, 1648, 1288, 1648, 533, 512, 565,
- 1648, 1285, 1273, 1324, 1271, 1270, 1277, 1270, 1282, 1281,
- 1281, 1269, 1310, 1277, 1269, 1312, 1258, 1274, 1273, 1648,
- 1258, 1255, 1269, 1261, 1267, 1258, 1266, 1251, 1267, 1249,
- 1263, 1261, 1244, 1238, 1243, 1258, 1255, 1256, 1253, 1294,
- 1251, 1648, 1237, 1239, 1248, 1284, 1283, 1236, 532, 1245,
- 1228, 1229, 1226, 1648, 1240, 1219, 1240, 1237, 1229, 1272,
- 1226, 1270, 1648, 1217, 1231, 1234, 1215, 1265, 1264, 1211,
- 1262, 1261, 1648, 14, 1223, 1206, 1211, 1213, 1648, 1219,
- 1209, 1648, 1254, 1202, 1257, 549, 529, 535, 1207, 1250,
- 561, 1249, 1248, 1247, 1201, 1191, 1244, 1197, 1207, 1241,
- 1204, 1198, 1185, 1193, 1236, 1240, 1197, 1196, 1197, 1190,
- 1179, 1192, 1195, 1190, 1191, 1188, 1187, 1190, 1185, 1226,
- 1225, 1175, 1165, 1173, 1221, 1648, 1220, 1169, 1161, 1162,
- 1175, 1162, 1173, 1648, 1161, 1170, 1169, 1169, 1209, 1152,
- 1161, 1154, 1165, 1142, 1146, 1197, 1144, 1154, 1194, 1141,
- 1192, 556, 558, 1134, 1144, 557, 1648, 1194, 1152, 1135,
- 1140, 1144, 1134, 1146, 1149, 1186, 1648, 1180, 577, 1133,
- 1141, 1140, 1135, 1131, 1138, 1121, 1124, 1120, 1137, 1132,
- 1120, 1116, 1123, 1117, 1169, 1126, 1114, 1128, 1116, 1648,
- 1124, 1122, 1113, 1122, 1118, 1159, 1101, 1101, 1114, 1099,
- 1154, 1096, 1097, 1648, 1648, 1105, 1108, 1111, 1648, 1648,
- 1110, 1095, 1087, 574, 1093, 1139, 1090, 17, 7, 132,
- 1648, 228, 394, 421, 458, 562, 534, 526, 530, 543,
- 554, 564, 567, 562, 565, 572, 572, 574, 627, 586,
- 591, 568, 1648, 626, 586, 577, 592, 593, 580, 594,
- 1648, 613, 621, 601, 591, 638, 603, 607, 646, 601,
- 596, 597, 593, 602, 597, 653, 612, 603, 1648, 605,
- 616, 601, 617, 611, 656, 624, 609, 610, 1648, 629,
- 612, 669, 614, 1648, 633, 613, 631, 670, 630, 620,
- 638, 637, 623, 638, 630, 637, 627, 645, 630, 1648,
- 638, 644, 639, 690, 1648, 641, 646, 640, 652, 646,
- 645, 647, 699, 645, 645, 702, 648, 1648, 647, 655,
- 653, 652, 657, 667, 668, 673, 712, 671, 687, 692,
- 666, 676, 667, 719, 664, 1648, 671, 676, 683, 724,
- 726, 675, 1648, 671, 674, 673, 693, 690, 695, 696,
- 682, 690, 699, 679, 700, 740, 1648, 695, 744, 745,
- 707, 709, 697, 694, 701, 752, 701, 699, 717, 756,
- 708, 707, 713, 711, 709, 762, 763, 759, 719, 1648,
- 724, 717, 726, 714, 724, 720, 733, 1648, 716, 717,
- 1648, 718, 716, 735, 736, 737, 736, 720, 725, 743,
- 1648, 733, 766, 757, 729, 788, 751, 1648, 734, 749,
- 741, 745, 1648, 1648, 755, 790, 739, 792, 741, 799,
- 744, 755, 747, 753, 749, 767, 768, 1648, 766, 1648,
- 769, 1648, 772, 762, 755, 767, 810, 1648, 767, 817,
- 818, 1648, 819, 763, 769, 776, 818, 1648, 1648, 768,
- 768, 771, 785, 772, 829, 788, 826, 780, 833, 783,
- 835, 784, 837, 838, 799, 840, 784, 796, 801, 787,
- 817, 846, 806, 1648, 798, 849, 798, 794, 810, 815,
- 797, 855, 810, 815, 1648, 816, 809, 818, 819, 816,
- 806, 808, 865, 814, 811, 868, 864, 807, 822, 872,
- 1648, 1648, 1648, 832, 824, 834, 819, 820, 880, 881,
- 828, 884, 1648, 834, 836, 887, 830, 1648, 851, 1648,
- 835, 1648, 1648, 843, 1648, 893, 844, 895, 896, 878,
- 1648, 856, 857, 1648, 845, 844, 847, 847, 848, 844,
- 1648, 866, 852, 853, 868, 868, 871, 871, 868, 873,
- 1648, 865, 875, 1648, 872, 877, 879, 876, 1648, 868,
- 868, 874, 873, 884, 1648, 1648, 923, 1648, 872, 878,
- 1648, 880, 882, 885, 896, 1648, 893, 1648, 890, 1648,
- 913, 933, 939, 940, 884, 942, 943, 898, 892, 946,
- 947, 943, 908, 904, 946, 896, 901, 954, 912, 956,
- 916, 958, 921, 910, 918, 962, 906, 924, 923, 907,
- 963, 928, 929, 929, 916, 927, 974, 934, 947, 934,
- 1648, 1648, 978, 1648, 1648, 927, 938, 1648, 1648, 928,
- 977, 922, 927, 985, 935, 1648, 941, 1648, 988, 1648,
- 933, 948, 953, 1648, 987, 955, 948, 957, 945, 955,
- 998, 999, 1000, 951, 1648, 1002, 1003, 951, 1648, 955,
- 1007, 953, 952, 1010, 965, 1648, 1007, 969, 1648, 972,
- 1015, 976, 959, 961, 958, 974, 983, 1022, 1648, 1648,
- 1648, 1018, 1648, 1648, 983, 1020, 1648, 974, 981, 1648,
- 978, 983, 1030, 975, 1648, 990, 980, 992, 1035, 979,
- 987, 1648, 998, 988, 987, 1001, 992, 1001, 1003, 1648,
- 1045, 1046, 1006, 1048, 1648, 1044, 1008, 989, 1052, 1011,
- 1012, 1013, 1056, 1015, 1648, 1648, 1020, 1648, 1002, 1060,
- 1021, 1648, 1007, 1007, 1009, 1648, 1014, 1009, 1021, 1648,
- 1019, 1023, 1014, 1066, 1015, 1031, 1024, 1033, 1024, 1031,
- 1018, 1033, 1080, 1039, 1026, 1042, 1033, 1047, 1043, 1648,
- 1087, 1088, 1089, 1046, 1045, 1046, 1648, 1648, 1648, 1093,
- 1037, 1053, 1648, 1091, 1042, 1041, 1043, 1054, 1101, 1052,
- 1648, 1061, 1104, 1648, 1648, 1110, 1115, 1120, 1125, 1130,
- 1135, 1140, 1143, 1117, 1122, 1124, 1137
- } ;
- static const flex_int16_t yy_def[1298] =
- { 0,
- 1286, 1286, 1287, 1287, 1286, 1286, 1286, 1286, 1286, 1286,
- 1285, 1285, 1285, 1285, 1285, 1288, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1289,
- 1285, 1285, 1285, 1290, 15, 1285, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1291, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1288,
- 1285, 1285, 1285, 1285, 1285, 1285, 1292, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1289, 1285,
- 1290, 1285, 1285, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1293, 45, 1291, 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, 1292, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1294, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1293, 1285, 1291, 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, 1285, 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, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1295, 45, 45, 45, 45, 45, 45,
- 45, 45, 1285, 45, 1285, 45, 1291, 1285, 45, 45,
- 45, 45, 45, 45, 45, 45, 1285, 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, 1285, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1285, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1285, 45, 45, 45, 45,
- 1285, 1285, 1285, 1296, 45, 45, 45, 45, 45, 45,
- 45, 45, 1285, 45, 45, 1285, 45, 1291, 45, 45,
- 45, 45, 45, 1285, 45, 45, 45, 45, 1285, 45,
- 45, 45, 45, 45, 1285, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1285, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1285, 45, 1285, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1285, 1285,
- 45, 45, 1285, 45, 45, 1285, 1297, 45, 45, 45,
- 45, 1285, 1285, 45, 1285, 45, 1285, 45, 45, 45,
- 1285, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1285,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1285, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 1285, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1285, 45, 45, 45, 45, 45, 1285, 45,
- 45, 1285, 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, 1285, 45, 45, 45, 45,
- 45, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1285, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1285, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1285,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1285, 1285, 45, 45, 45, 1285, 1285,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1285, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1285, 45, 45, 45, 45, 45, 45, 45,
- 1285, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1285, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1285, 45,
- 45, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1285,
- 45, 45, 45, 45, 1285, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1285, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1285, 45, 45, 45, 45,
- 45, 45, 1285, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1285, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1285,
- 45, 45, 45, 45, 45, 45, 45, 1285, 45, 45,
- 1285, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1285, 45, 45, 45, 45, 45, 45, 1285, 45, 45,
- 45, 45, 1285, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1285, 45, 1285,
- 45, 1285, 45, 45, 45, 45, 45, 1285, 45, 45,
- 45, 1285, 45, 45, 45, 45, 45, 1285, 1285, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1285, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1285, 1285, 1285, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1285, 45, 45, 45, 45, 1285, 45, 1285,
- 45, 1285, 1285, 45, 1285, 45, 45, 45, 45, 45,
- 1285, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 1285, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 1285, 45, 45, 1285, 45, 45, 45, 45, 1285, 45,
- 45, 45, 45, 45, 1285, 1285, 45, 1285, 45, 45,
- 1285, 45, 45, 45, 45, 1285, 45, 1285, 45, 1285,
- 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,
- 1285, 1285, 45, 1285, 1285, 45, 45, 1285, 1285, 45,
- 45, 45, 45, 45, 45, 1285, 45, 1285, 45, 1285,
- 45, 45, 45, 1285, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1285, 45, 45, 45, 1285, 45,
- 45, 45, 45, 45, 45, 1285, 45, 45, 1285, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1285, 1285,
- 1285, 45, 1285, 1285, 45, 45, 1285, 45, 45, 1285,
- 45, 45, 45, 45, 1285, 45, 45, 45, 45, 45,
- 45, 1285, 45, 45, 45, 45, 45, 45, 45, 1285,
- 45, 45, 45, 45, 1285, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1285, 1285, 45, 1285, 45, 45,
- 45, 1285, 45, 45, 45, 1285, 45, 45, 45, 1285,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1285,
- 45, 45, 45, 45, 45, 45, 1285, 1285, 1285, 45,
- 45, 45, 1285, 45, 45, 45, 45, 45, 45, 45,
- 1285, 45, 45, 1285, 0, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285
- } ;
- static const flex_int16_t yy_nxt[1720] =
- { 0,
- 1285, 13, 14, 13, 1285, 15, 16, 1285, 17, 18,
- 19, 20, 21, 22, 22, 22, 23, 24, 86, 657,
- 37, 14, 37, 87, 25, 26, 38, 798, 658, 27,
- 37, 14, 37, 42, 28, 42, 38, 92, 93, 29,
- 115, 30, 13, 14, 13, 91, 92, 25, 31, 93,
- 13, 14, 13, 13, 14, 13, 32, 40, 1285, 13,
- 14, 13, 33, 40, 115, 92, 93, 799, 91, 34,
- 35, 13, 14, 13, 95, 15, 16, 96, 17, 18,
- 19, 20, 21, 22, 22, 22, 23, 24, 13, 14,
- 13, 109, 39, 91, 25, 26, 13, 14, 13, 27,
- 39, 85, 85, 85, 28, 42, 41, 42, 42, 29,
- 42, 30, 83, 108, 41, 111, 94, 25, 31, 109,
- 206, 161, 89, 137, 89, 162, 32, 90, 90, 90,
- 207, 138, 33, 211, 212, 83, 108, 800, 111, 34,
- 35, 44, 44, 44, 45, 45, 46, 45, 45, 45,
- 45, 45, 45, 45, 45, 47, 45, 45, 45, 45,
- 45, 48, 45, 49, 50, 45, 51, 45, 52, 53,
- 54, 45, 45, 45, 45, 55, 56, 45, 57, 45,
- 45, 58, 45, 45, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 52, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 57, 45, 45, 45,
- 45, 45, 81, 105, 82, 82, 82, 81, 114, 84,
- 84, 84, 102, 105, 81, 83, 84, 84, 84, 108,
- 83, 178, 122, 112, 139, 123, 387, 83, 124, 105,
- 125, 114, 126, 113, 140, 178, 141, 132, 83, 119,
- 157, 176, 108, 83, 158, 120, 112, 103, 133, 178,
- 83, 45, 147, 135, 159, 387, 148, 45, 134, 45,
- 45, 113, 45, 181, 45, 45, 45, 176, 117, 143,
- 144, 45, 45, 145, 45, 45, 149, 801, 102, 146,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 90, 90, 90, 45, 127, 114,
- 111, 45, 128, 103, 112, 129, 130, 177, 360, 45,
- 153, 361, 186, 45, 113, 45, 118, 176, 131, 150,
- 154, 151, 171, 152, 163, 155, 156, 112, 164, 169,
- 177, 165, 172, 177, 85, 85, 85, 173, 166, 167,
- 186, 189, 113, 179, 168, 83, 246, 247, 81, 170,
- 82, 82, 82, 89, 190, 89, 180, 192, 90, 90,
- 90, 83, 81, 193, 84, 84, 84, 189, 83, 85,
- 85, 85, 90, 90, 90, 83, 101, 194, 196, 195,
- 83, 190, 186, 101, 83, 192, 217, 195, 218, 223,
- 193, 220, 224, 235, 192, 253, 225, 236, 83, 200,
- 264, 196, 254, 83, 265, 194, 195, 221, 266, 249,
- 201, 101, 250, 251, 273, 101, 279, 279, 286, 101,
- 277, 406, 192, 278, 241, 277, 278, 101, 255, 289,
- 802, 101, 290, 101, 184, 199, 199, 199, 407, 279,
- 282, 286, 199, 199, 199, 199, 199, 199, 277, 278,
- 292, 296, 281, 280, 294, 334, 803, 289, 305, 290,
- 286, 256, 257, 258, 306, 199, 199, 199, 199, 199,
- 199, 344, 259, 292, 260, 378, 261, 294, 296, 262,
- 297, 297, 297, 299, 381, 381, 385, 297, 297, 297,
- 297, 297, 297, 389, 390, 392, 386, 456, 395, 412,
- 804, 387, 391, 413, 490, 345, 335, 381, 382, 336,
- 297, 297, 297, 297, 297, 297, 425, 634, 392, 346,
- 490, 426, 438, 439, 587, 379, 395, 398, 398, 398,
- 399, 445, 490, 669, 398, 398, 398, 398, 398, 398,
- 483, 446, 498, 586, 499, 484, 520, 805, 500, 511,
- 582, 521, 587, 457, 635, 588, 669, 398, 398, 398,
- 398, 398, 398, 668, 512, 806, 670, 427, 807, 498,
- 586, 499, 428, 45, 45, 45, 671, 808, 809, 810,
- 45, 45, 45, 45, 45, 45, 674, 734, 736, 737,
- 753, 668, 675, 741, 735, 811, 738, 793, 812, 742,
- 813, 794, 814, 45, 45, 45, 45, 45, 45, 815,
- 816, 817, 818, 819, 820, 821, 822, 823, 753, 824,
- 825, 826, 827, 828, 829, 830, 831, 832, 833, 834,
- 835, 836, 837, 838, 839, 840, 841, 842, 843, 844,
- 845, 846, 847, 848, 849, 850, 851, 852, 830, 853,
- 854, 829, 855, 856, 857, 860, 861, 862, 863, 858,
- 864, 865, 866, 867, 868, 869, 870, 871, 872, 873,
- 874, 876, 877, 878, 879, 880, 881, 882, 883, 884,
- 885, 875, 886, 887, 888, 889, 890, 891, 892, 893,
- 894, 895, 896, 897, 898, 899, 900, 901, 902, 903,
- 905, 904, 906, 907, 908, 909, 910, 911, 912, 913,
- 859, 914, 915, 916, 917, 918, 919, 920, 921, 922,
- 923, 924, 925, 926, 927, 928, 929, 903, 904, 930,
- 932, 933, 934, 935, 931, 936, 937, 938, 939, 940,
- 941, 942, 943, 944, 945, 946, 947, 948, 949, 950,
- 951, 952, 953, 954, 955, 956, 957, 958, 959, 960,
- 961, 962, 963, 964, 965, 966, 967, 968, 969, 970,
- 971, 972, 973, 974, 975, 976, 977, 978, 979, 980,
- 981, 982, 983, 984, 985, 986, 987, 988, 989, 990,
- 991, 992, 993, 971, 994, 995, 996, 997, 998, 972,
- 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008,
- 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1017, 1018, 1019,
- 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029,
- 1030, 1031, 1032, 1033, 1034, 1036, 1037, 1038, 1039, 1040,
- 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
- 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1059, 1030, 1060,
- 1061, 1062, 1063, 1064, 1058, 1065, 1066, 1016, 1067, 1068,
- 1069, 1070, 1071, 1072, 1073, 1074, 1035, 1075, 1076, 1077,
- 1078, 1080, 1081, 1082, 1083, 1079, 1084, 1085, 1086, 1087,
- 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097,
- 1098, 1099, 1100, 1101, 1102, 1081, 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, 1119,
- 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, 1157,
- 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
- 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
- 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214,
- 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224,
- 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234,
- 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244,
- 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254,
- 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264,
- 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274,
- 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284,
- 12, 12, 12, 12, 12, 36, 36, 36, 36, 36,
- 80, 284, 80, 80, 80, 99, 384, 99, 487, 99,
- 101, 101, 101, 101, 101, 116, 116, 116, 116, 116,
- 175, 101, 175, 175, 175, 197, 197, 197, 797, 796,
- 795, 792, 791, 790, 789, 788, 787, 786, 785, 784,
- 783, 782, 781, 780, 779, 778, 777, 776, 775, 774,
- 773, 772, 771, 770, 769, 768, 767, 766, 765, 764,
- 763, 762, 761, 760, 759, 758, 757, 756, 755, 754,
- 752, 751, 750, 749, 748, 747, 746, 745, 744, 743,
- 740, 739, 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, 697, 696,
- 695, 694, 693, 692, 691, 690, 689, 688, 687, 686,
- 685, 684, 683, 682, 681, 680, 679, 678, 677, 676,
- 673, 672, 667, 666, 665, 664, 663, 662, 661, 660,
- 659, 656, 655, 654, 653, 652, 651, 650, 649, 648,
- 647, 646, 645, 644, 643, 642, 641, 640, 639, 638,
- 637, 636, 633, 632, 631, 630, 629, 628, 627, 626,
- 625, 624, 623, 622, 621, 620, 619, 618, 617, 616,
- 615, 614, 613, 612, 611, 610, 609, 608, 607, 606,
- 605, 604, 603, 602, 601, 600, 599, 598, 597, 596,
- 595, 594, 593, 592, 591, 590, 589, 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, 548, 547, 546, 545, 544, 543,
- 542, 541, 540, 539, 538, 537, 536, 535, 534, 533,
- 532, 531, 530, 529, 528, 527, 526, 525, 524, 523,
- 522, 519, 518, 517, 516, 515, 514, 513, 510, 509,
- 508, 507, 506, 505, 504, 503, 502, 501, 497, 496,
- 495, 494, 493, 492, 491, 489, 488, 486, 485, 482,
- 481, 480, 479, 478, 477, 476, 475, 474, 473, 472,
- 471, 470, 469, 468, 467, 466, 465, 464, 463, 462,
- 461, 460, 459, 458, 455, 454, 453, 452, 451, 450,
- 449, 448, 447, 444, 443, 442, 441, 440, 437, 436,
- 435, 434, 433, 432, 431, 430, 429, 424, 423, 422,
- 421, 420, 419, 418, 417, 416, 415, 414, 411, 410,
- 409, 408, 405, 404, 403, 402, 401, 400, 397, 396,
- 394, 393, 388, 383, 380, 377, 376, 375, 374, 373,
- 372, 371, 370, 369, 368, 367, 366, 365, 364, 363,
- 362, 359, 358, 357, 356, 355, 354, 353, 352, 351,
- 350, 349, 348, 347, 343, 342, 341, 340, 339, 338,
- 337, 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, 304, 303,
- 302, 301, 300, 298, 198, 295, 293, 291, 288, 287,
- 285, 283, 276, 275, 274, 272, 271, 270, 269, 268,
- 267, 263, 252, 248, 245, 244, 243, 242, 240, 239,
- 238, 237, 234, 233, 232, 231, 230, 229, 228, 227,
- 226, 222, 219, 216, 215, 214, 213, 210, 209, 208,
- 205, 204, 203, 202, 198, 191, 188, 187, 185, 183,
- 182, 174, 160, 142, 136, 121, 110, 107, 106, 104,
- 43, 100, 98, 97, 88, 43, 1285, 11, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285
- } ;
- static const flex_int16_t yy_chk[1720] =
- { 0,
- 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 21, 574,
- 3, 3, 3, 21, 1, 1, 3, 718, 574, 1,
- 4, 4, 4, 13, 1, 13, 4, 27, 28, 1,
- 57, 1, 5, 5, 5, 26, 32, 1, 1, 33,
- 6, 6, 6, 7, 7, 7, 1, 7, 0, 8,
- 8, 8, 1, 8, 57, 27, 28, 719, 26, 1,
- 1, 2, 2, 2, 32, 2, 2, 33, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 9, 9,
- 9, 52, 5, 31, 2, 2, 10, 10, 10, 2,
- 6, 20, 20, 20, 2, 37, 9, 37, 42, 2,
- 42, 2, 20, 51, 10, 54, 31, 2, 2, 52,
- 124, 75, 25, 66, 25, 75, 2, 25, 25, 25,
- 124, 66, 2, 128, 128, 20, 51, 720, 54, 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, 48, 17, 17, 17, 19, 56, 19,
- 19, 19, 44, 59, 22, 17, 22, 22, 22, 64,
- 19, 93, 61, 55, 67, 61, 286, 22, 61, 48,
- 61, 56, 61, 55, 67, 96, 67, 63, 17, 59,
- 73, 91, 64, 19, 73, 59, 55, 44, 63, 93,
- 22, 45, 70, 64, 73, 286, 70, 45, 63, 45,
- 45, 55, 45, 96, 45, 45, 45, 91, 58, 69,
- 69, 45, 45, 69, 45, 58, 70, 722, 101, 69,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 58, 89, 89, 89, 58, 62, 78,
- 71, 58, 62, 101, 77, 62, 62, 92, 258, 58,
- 72, 258, 105, 58, 77, 58, 58, 94, 62, 71,
- 72, 71, 78, 71, 76, 72, 72, 77, 76, 77,
- 95, 76, 78, 92, 81, 81, 81, 78, 76, 76,
- 105, 108, 77, 94, 76, 81, 157, 157, 82, 77,
- 82, 82, 82, 83, 109, 83, 95, 111, 83, 83,
- 83, 82, 84, 112, 84, 84, 84, 108, 81, 85,
- 85, 85, 90, 90, 90, 84, 103, 113, 115, 114,
- 85, 109, 119, 103, 82, 111, 133, 171, 133, 137,
- 112, 135, 137, 147, 152, 161, 137, 147, 84, 119,
- 164, 115, 161, 85, 164, 113, 114, 135, 164, 159,
- 119, 103, 159, 159, 171, 103, 178, 181, 186, 103,
- 176, 306, 152, 177, 152, 179, 180, 103, 162, 189,
- 723, 103, 190, 103, 103, 118, 118, 118, 306, 178,
- 181, 186, 118, 118, 118, 118, 118, 118, 176, 177,
- 192, 196, 180, 179, 194, 236, 724, 189, 207, 190,
- 201, 162, 162, 162, 207, 118, 118, 118, 118, 118,
- 118, 244, 162, 192, 162, 275, 162, 194, 196, 162,
- 199, 199, 199, 201, 277, 280, 285, 199, 199, 199,
- 199, 199, 199, 288, 288, 289, 285, 351, 292, 312,
- 725, 299, 288, 312, 387, 244, 236, 277, 280, 236,
- 199, 199, 199, 199, 199, 199, 324, 549, 289, 244,
- 399, 324, 334, 334, 499, 275, 292, 297, 297, 297,
- 299, 340, 387, 587, 297, 297, 297, 297, 297, 297,
- 379, 340, 397, 498, 397, 379, 421, 726, 399, 412,
- 500, 421, 499, 351, 549, 500, 587, 297, 297, 297,
- 297, 297, 297, 586, 412, 727, 588, 324, 728, 397,
- 498, 397, 324, 398, 398, 398, 588, 729, 730, 731,
- 398, 398, 398, 398, 398, 398, 591, 652, 653, 653,
- 669, 586, 591, 656, 652, 732, 653, 714, 733, 656,
- 734, 714, 735, 398, 398, 398, 398, 398, 398, 736,
- 737, 738, 739, 740, 741, 742, 744, 745, 669, 746,
- 747, 748, 749, 750, 752, 753, 754, 755, 756, 757,
- 758, 759, 760, 761, 762, 763, 764, 765, 766, 767,
- 768, 770, 771, 772, 773, 774, 775, 776, 753, 777,
- 778, 752, 780, 781, 782, 783, 785, 786, 787, 782,
- 788, 789, 790, 791, 792, 793, 794, 795, 796, 797,
- 798, 799, 801, 802, 803, 804, 806, 807, 808, 809,
- 810, 798, 811, 812, 813, 814, 815, 816, 817, 819,
- 820, 821, 822, 823, 824, 825, 826, 827, 828, 829,
- 831, 830, 832, 833, 834, 835, 837, 838, 839, 840,
- 782, 841, 842, 844, 845, 846, 847, 848, 849, 850,
- 851, 852, 853, 854, 855, 856, 858, 829, 830, 859,
- 860, 861, 862, 863, 859, 864, 865, 866, 867, 868,
- 869, 870, 871, 872, 873, 874, 875, 876, 877, 878,
- 879, 881, 882, 883, 884, 885, 886, 887, 889, 890,
- 892, 893, 894, 895, 896, 897, 898, 899, 900, 902,
- 903, 904, 905, 906, 907, 909, 910, 911, 912, 915,
- 916, 917, 918, 919, 920, 921, 922, 923, 924, 925,
- 926, 927, 929, 903, 931, 933, 934, 935, 936, 904,
- 937, 939, 940, 941, 943, 944, 945, 946, 947, 950,
- 951, 952, 953, 954, 955, 956, 957, 958, 959, 960,
- 961, 962, 963, 964, 965, 966, 967, 968, 969, 970,
- 971, 972, 973, 975, 976, 977, 978, 979, 980, 981,
- 982, 983, 984, 986, 987, 988, 989, 990, 991, 992,
- 993, 994, 995, 996, 997, 998, 999, 1000, 971, 1004,
- 1005, 1006, 1007, 1008, 999, 1009, 1010, 957, 1011, 1012,
- 1014, 1015, 1016, 1017, 1019, 1021, 976, 1024, 1026, 1027,
- 1028, 1029, 1030, 1032, 1033, 1028, 1035, 1036, 1037, 1038,
- 1039, 1040, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049,
- 1050, 1052, 1053, 1055, 1056, 1030, 1057, 1058, 1060, 1061,
- 1062, 1063, 1064, 1067, 1069, 1070, 1072, 1073, 1074, 1075,
- 1077, 1079, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088,
- 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098,
- 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1081,
- 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117,
- 1118, 1119, 1120, 1123, 1126, 1127, 1130, 1131, 1132, 1133,
- 1134, 1135, 1137, 1139, 1141, 1142, 1143, 1145, 1146, 1147,
- 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1156, 1157, 1119,
- 1158, 1160, 1161, 1162, 1163, 1164, 1165, 1167, 1168, 1170,
- 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1182, 1185,
- 1186, 1188, 1189, 1191, 1192, 1193, 1194, 1196, 1197, 1198,
- 1199, 1200, 1201, 1203, 1204, 1205, 1206, 1207, 1208, 1209,
- 1211, 1212, 1213, 1214, 1216, 1217, 1218, 1219, 1220, 1221,
- 1222, 1223, 1224, 1227, 1229, 1230, 1231, 1233, 1234, 1235,
- 1237, 1238, 1239, 1241, 1242, 1243, 1244, 1245, 1246, 1247,
- 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257,
- 1258, 1259, 1261, 1262, 1263, 1264, 1265, 1266, 1270, 1271,
- 1272, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1282, 1283,
- 1286, 1286, 1286, 1286, 1286, 1287, 1287, 1287, 1287, 1287,
- 1288, 1294, 1288, 1288, 1288, 1289, 1295, 1289, 1296, 1289,
- 1290, 1290, 1290, 1290, 1290, 1291, 1291, 1291, 1291, 1291,
- 1292, 1297, 1292, 1292, 1292, 1293, 1293, 1293, 717, 716,
- 715, 713, 712, 711, 708, 707, 706, 703, 702, 701,
- 700, 699, 698, 697, 696, 695, 694, 693, 692, 691,
- 689, 688, 687, 686, 685, 684, 683, 682, 681, 680,
- 679, 678, 677, 676, 675, 674, 673, 672, 671, 670,
- 668, 666, 665, 664, 663, 662, 661, 660, 659, 658,
- 655, 654, 651, 650, 649, 648, 647, 646, 645, 644,
- 643, 642, 641, 640, 639, 638, 637, 636, 635, 633,
- 632, 631, 630, 629, 628, 627, 625, 624, 623, 622,
- 621, 620, 619, 618, 617, 616, 615, 614, 613, 612,
- 611, 610, 609, 608, 607, 606, 605, 604, 603, 602,
- 601, 600, 599, 598, 597, 596, 595, 594, 593, 592,
- 590, 589, 585, 584, 583, 581, 580, 578, 577, 576,
- 575, 572, 571, 570, 569, 568, 567, 566, 565, 564,
- 562, 561, 560, 559, 558, 557, 556, 555, 553, 552,
- 551, 550, 548, 547, 546, 545, 544, 543, 541, 540,
- 539, 538, 537, 536, 535, 534, 533, 532, 531, 530,
- 529, 528, 527, 526, 525, 524, 523, 522, 521, 519,
- 518, 517, 516, 515, 514, 513, 512, 511, 510, 509,
- 508, 507, 506, 505, 504, 503, 502, 496, 494, 491,
- 490, 489, 488, 486, 485, 484, 482, 481, 478, 477,
- 476, 475, 474, 473, 472, 471, 470, 469, 468, 467,
- 466, 465, 464, 463, 462, 461, 460, 459, 457, 455,
- 454, 453, 452, 451, 450, 449, 448, 447, 446, 445,
- 443, 442, 441, 440, 439, 438, 437, 436, 435, 434,
- 433, 432, 431, 430, 429, 428, 427, 426, 424, 423,
- 422, 420, 419, 418, 417, 416, 414, 413, 411, 410,
- 408, 407, 406, 405, 403, 402, 401, 400, 395, 394,
- 392, 391, 390, 389, 388, 386, 385, 383, 380, 378,
- 377, 375, 374, 373, 372, 371, 370, 369, 368, 367,
- 366, 365, 364, 363, 362, 361, 360, 359, 358, 357,
- 355, 354, 353, 352, 350, 349, 348, 347, 346, 345,
- 344, 343, 341, 339, 338, 337, 336, 335, 333, 332,
- 331, 330, 329, 328, 327, 326, 325, 323, 322, 321,
- 320, 319, 318, 317, 316, 315, 314, 313, 311, 310,
- 309, 308, 305, 304, 303, 302, 301, 300, 296, 294,
- 291, 290, 287, 283, 276, 274, 273, 272, 271, 270,
- 269, 268, 267, 266, 265, 264, 263, 262, 261, 260,
- 259, 257, 256, 255, 254, 253, 252, 251, 250, 249,
- 248, 247, 246, 245, 243, 242, 241, 240, 239, 238,
- 237, 235, 234, 233, 232, 231, 230, 229, 228, 226,
- 225, 224, 223, 222, 221, 220, 219, 218, 217, 216,
- 215, 214, 213, 212, 211, 210, 209, 208, 206, 205,
- 204, 203, 202, 200, 197, 195, 193, 191, 188, 187,
- 185, 182, 174, 173, 172, 170, 169, 168, 167, 166,
- 165, 163, 160, 158, 156, 155, 154, 153, 151, 150,
- 149, 148, 146, 145, 144, 143, 142, 141, 140, 139,
- 138, 136, 134, 132, 131, 130, 129, 127, 126, 125,
- 123, 122, 121, 120, 116, 110, 107, 106, 104, 99,
- 98, 79, 74, 68, 65, 60, 53, 50, 49, 47,
- 43, 41, 39, 38, 24, 14, 11, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285,
- 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285, 1285
- } ;
- static yy_state_type yy_last_accepting_state;
- static char *yy_last_accepting_cpos;
- extern int yy_flex_debug;
- int yy_flex_debug = 1;
- static const flex_int16_t yy_rule_linenum[158] =
- { 0,
- 143, 145, 147, 152, 153, 158, 159, 160, 172, 175,
- 180, 187, 196, 205, 214, 223, 233, 242, 251, 260,
- 269, 278, 287, 296, 305, 316, 325, 334, 343, 352,
- 362, 372, 382, 392, 402, 412, 422, 432, 442, 453,
- 464, 475, 484, 494, 503, 513, 528, 544, 553, 562,
- 571, 580, 590, 599, 609, 618, 627, 636, 646, 655,
- 664, 673, 682, 692, 701, 710, 719, 728, 737, 746,
- 755, 764, 773, 782, 792, 803, 813, 822, 832, 842,
- 852, 862, 872, 881, 891, 900, 909, 918, 927, 937,
- 947, 957, 966, 975, 984, 993, 1002, 1011, 1020, 1029,
- 1038, 1047, 1056, 1065, 1074, 1083, 1092, 1101, 1110, 1119,
- 1128, 1137, 1146, 1155, 1164, 1173, 1182, 1191, 1200, 1209,
- 1219, 1229, 1239, 1249, 1259, 1269, 1279, 1289, 1299, 1308,
- 1317, 1326, 1335, 1344, 1353, 1362, 1373, 1386, 1399, 1414,
- 1512, 1517, 1522, 1527, 1528, 1529, 1530, 1531, 1532, 1534,
- 1552, 1565, 1570, 1574, 1576, 1578, 1580
- } ;
- /* 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 *yytext;
- #line 1 "dhcp4_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 "dhcp4_lexer.ll"
- /* Generated files do not make clang static analyser so happy */
- #ifndef __clang_analyzer__
- #include <cerrno>
- #include <climits>
- #include <cstdlib>
- #include <string>
- #include <dhcp4/parser_context.h>
- #include <asiolink/io_address.h>
- #include <boost/lexical_cast.hpp>
- #include <exceptions/exceptions.h>
- /* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
- /* 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::Parser4Context::ParserType start_token_value;
- unsigned int comment_start_line = 0;
- using namespace isc::dhcp;
- };
- /* To avoid the call to exit... oops! */
- #define YY_FATAL_ERROR(msg) isc::dhcp::Parser4Context::fatal(msg)
- #line 1649 "dhcp4_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 94 "dhcp4_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 1675 "dhcp4_lexer.cc"
- #line 1676 "dhcp4_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 yylex_destroy ( void );
- int yyget_debug ( void );
- void yyset_debug ( int debug_flag );
- YY_EXTRA_TYPE yyget_extra ( void );
- void yyset_extra ( YY_EXTRA_TYPE user_defined );
- FILE *yyget_in ( void );
- void yyset_in ( FILE * _in_str );
- FILE *yyget_out ( void );
- void yyset_out ( FILE * _out_str );
- int yyget_leng ( void );
- char *yyget_text ( void );
- int yyget_lineno ( void );
- void yyset_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 yywrap ( void );
- #else
- extern int yywrap ( 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( yytext, (size_t) yyleng, 1, yyout )) {} } 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( yyin )) != EOF && c != '\n'; ++n ) \
- buf[n] = (char) c; \
- if ( c == '\n' ) \
- buf[n++] = (char) c; \
- if ( c == EOF && ferror( yyin ) ) \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- result = n; \
- } \
- else \
- { \
- errno=0; \
- while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
- { \
- if( errno != EINTR) \
- { \
- YY_FATAL_ERROR( "input in flex scanner failed" ); \
- break; \
- } \
- errno=0; \
- clearerr(yyin); \
- } \
- }\
- \
- /* %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 yylex (void);
- #define YY_DECL int yylex (void)
- /* %endif */
- /* %if-c++-only C++ definition */
- /* %endif */
- #endif /* !YY_DECL */
- /* Code executed at the beginning of each rule, after yytext and yyleng
- * 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 ( ! yyin )
- /* %if-c-only */
- yyin = stdin;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- if ( ! yyout )
- /* %if-c-only */
- yyout = stdout;
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- if ( ! YY_CURRENT_BUFFER ) {
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer( yyin, YY_BUF_SIZE );
- }
- yy_load_buffer_state( );
- }
- {
- /* %% [7.0] user's declarations go here */
- #line 100 "dhcp4_lexer.ll"
- #line 104 "dhcp4_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 Parser4Context::PARSER_JSON:
- default:
- return isc::dhcp::Dhcp4Parser::make_TOPLEVEL_JSON(driver.loc_);
- case Parser4Context::PARSER_DHCP4:
- return isc::dhcp::Dhcp4Parser::make_TOPLEVEL_DHCP4(driver.loc_);
- case Parser4Context::SUBPARSER_DHCP4:
- return isc::dhcp::Dhcp4Parser::make_SUB_DHCP4(driver.loc_);
- case Parser4Context::PARSER_INTERFACES:
- return isc::dhcp::Dhcp4Parser::make_SUB_INTERFACES4(driver.loc_);
- case Parser4Context::PARSER_SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_SUB_SUBNET4(driver.loc_);
- case Parser4Context::PARSER_POOL4:
- return isc::dhcp::Dhcp4Parser::make_SUB_POOL4(driver.loc_);
- case Parser4Context::PARSER_HOST_RESERVATION:
- return isc::dhcp::Dhcp4Parser::make_SUB_RESERVATION(driver.loc_);
- case Parser4Context::PARSER_OPTION_DEFS:
- return isc::dhcp::Dhcp4Parser::make_SUB_OPTION_DEFS(driver.loc_);
- case Parser4Context::PARSER_OPTION_DEF:
- return isc::dhcp::Dhcp4Parser::make_SUB_OPTION_DEF(driver.loc_);
- case Parser4Context::PARSER_OPTION_DATA:
- return isc::dhcp::Dhcp4Parser::make_SUB_OPTION_DATA(driver.loc_);
- case Parser4Context::PARSER_HOOKS_LIBRARY:
- return isc::dhcp::Dhcp4Parser::make_SUB_HOOKS_LIBRARY(driver.loc_);
- case Parser4Context::PARSER_DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_SUB_DHCP_DDNS(driver.loc_);
- }
- }
- #line 2002 "dhcp4_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 yytext. */
- *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 >= 1286 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- ++yy_cp;
- }
- while ( yy_current_state != 1285 );
- 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 yylineno update goes here */
- do_action: /* This label is used only to access EOF actions. */
- /* %% [12.0] debug code goes here */
- if ( yy_flex_debug )
- {
- if ( yy_act == 0 )
- fprintf( stderr, "--scanner backing up\n" );
- else if ( yy_act < 158 )
- fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
- (long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 158 )
- fprintf( stderr, "--accepting default rule (\"%s\")\n",
- yytext );
- else if ( yy_act == 159 )
- 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 143 "dhcp4_lexer.ll"
- ;
- YY_BREAK
- case 2:
- YY_RULE_SETUP
- #line 145 "dhcp4_lexer.ll"
- ;
- YY_BREAK
- case 3:
- YY_RULE_SETUP
- #line 147 "dhcp4_lexer.ll"
- {
- BEGIN(COMMENT);
- comment_start_line = driver.loc_.end.line;;
- }
- YY_BREAK
- case 4:
- YY_RULE_SETUP
- #line 152 "dhcp4_lexer.ll"
- BEGIN(INITIAL);
- YY_BREAK
- case 5:
- YY_RULE_SETUP
- #line 153 "dhcp4_lexer.ll"
- ;
- YY_BREAK
- case YY_STATE_EOF(COMMENT):
- #line 154 "dhcp4_lexer.ll"
- {
- isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
- }
- YY_BREAK
- case 6:
- YY_RULE_SETUP
- #line 158 "dhcp4_lexer.ll"
- BEGIN(DIR_ENTER);
- YY_BREAK
- case 7:
- YY_RULE_SETUP
- #line 159 "dhcp4_lexer.ll"
- BEGIN(DIR_INCLUDE);
- YY_BREAK
- case 8:
- YY_RULE_SETUP
- #line 160 "dhcp4_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 169 "dhcp4_lexer.ll"
- {
- isc_throw(Dhcp4ParseError, "Directive not closed.");
- }
- YY_BREAK
- case 9:
- YY_RULE_SETUP
- #line 172 "dhcp4_lexer.ll"
- BEGIN(INITIAL);
- YY_BREAK
- case 10:
- YY_RULE_SETUP
- #line 175 "dhcp4_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 180 "dhcp4_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 187 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONFIG:
- return isc::dhcp::Dhcp4Parser::make_DHCP4(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp4", driver.loc_);
- }
- }
- YY_BREAK
- case 13:
- YY_RULE_SETUP
- #line 196 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_INTERFACES_CONFIG(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("interfaces-config", driver.loc_);
- }
- }
- YY_BREAK
- case 14:
- YY_RULE_SETUP
- #line 205 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
- return isc::dhcp::Dhcp4Parser::make_DHCP_SOCKET_TYPE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-socket-type", driver.loc_);
- }
- }
- YY_BREAK
- case 15:
- YY_RULE_SETUP
- #line 214 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
- return isc::dhcp::Dhcp4Parser::make_RAW(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("raw", driver.loc_);
- }
- }
- YY_BREAK
- case 16:
- YY_RULE_SETUP
- #line 223 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_SOCKET_TYPE:
- case isc::dhcp::Parser4Context::NCR_PROTOCOL:
- return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("udp", driver.loc_);
- }
- }
- YY_BREAK
- case 17:
- YY_RULE_SETUP
- #line 233 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case Parser4Context::INTERFACES_CONFIG:
- return isc::dhcp::Dhcp4Parser::make_OUTBOUND_INTERFACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("outbound-interface", driver.loc_);
- }
- }
- YY_BREAK
- case 18:
- YY_RULE_SETUP
- #line 242 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case Parser4Context::OUTBOUND_INTERFACE:
- return Dhcp4Parser::make_SAME_AS_INBOUND(driver.loc_);
- default:
- return Dhcp4Parser::make_STRING("same-as-inbound", driver.loc_);
- }
- }
- YY_BREAK
- case 19:
- YY_RULE_SETUP
- #line 251 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case Parser4Context::OUTBOUND_INTERFACE:
- return Dhcp4Parser::make_USE_ROUTING(driver.loc_);
- default:
- return Dhcp4Parser::make_STRING("use-routing", driver.loc_);
- }
- }
- YY_BREAK
- case 20:
- YY_RULE_SETUP
- #line 260 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
- return isc::dhcp::Dhcp4Parser::make_INTERFACES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("interfaces", driver.loc_);
- }
- }
- YY_BREAK
- case 21:
- YY_RULE_SETUP
- #line 269 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::INTERFACES_CONFIG:
- return isc::dhcp::Dhcp4Parser::make_RE_DETECT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("re-detect", driver.loc_);
- }
- }
- YY_BREAK
- case 22:
- YY_RULE_SETUP
- #line 278 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_LEASE_DATABASE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("lease-database", driver.loc_);
- }
- }
- YY_BREAK
- case 23:
- YY_RULE_SETUP
- #line 287 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_HOSTS_DATABASE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("hosts-database", driver.loc_);
- }
- }
- YY_BREAK
- case 24:
- YY_RULE_SETUP
- #line 296 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_READONLY(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("readonly", driver.loc_);
- }
- }
- YY_BREAK
- case 25:
- YY_RULE_SETUP
- #line 305 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- case isc::dhcp::Parser4Context::OPTION_DEF:
- return isc::dhcp::Dhcp4Parser::make_TYPE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("type", driver.loc_);
- }
- }
- YY_BREAK
- case 26:
- YY_RULE_SETUP
- #line 316 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_MEMFILE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("memfile", driver.loc_);
- }
- }
- YY_BREAK
- case 27:
- YY_RULE_SETUP
- #line 325 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_MYSQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("mysql", driver.loc_);
- }
- }
- YY_BREAK
- case 28:
- YY_RULE_SETUP
- #line 334 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_POSTGRESQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("postgresql", driver.loc_);
- }
- }
- YY_BREAK
- case 29:
- YY_RULE_SETUP
- #line 343 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DATABASE_TYPE:
- return isc::dhcp::Dhcp4Parser::make_CQL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("cql", driver.loc_);
- }
- }
- YY_BREAK
- case 30:
- YY_RULE_SETUP
- #line 352 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_USER(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("user", driver.loc_);
- }
- }
- YY_BREAK
- case 31:
- YY_RULE_SETUP
- #line 362 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_PASSWORD(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("password", driver.loc_);
- }
- }
- YY_BREAK
- case 32:
- YY_RULE_SETUP
- #line 372 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_HOST(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("host", driver.loc_);
- }
- }
- YY_BREAK
- case 33:
- YY_RULE_SETUP
- #line 382 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("port", driver.loc_);
- }
- }
- YY_BREAK
- case 34:
- YY_RULE_SETUP
- #line 392 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_PERSIST(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("persist", driver.loc_);
- }
- }
- YY_BREAK
- case 35:
- YY_RULE_SETUP
- #line 402 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_LFC_INTERVAL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("lfc-interval", driver.loc_);
- }
- }
- YY_BREAK
- case 36:
- YY_RULE_SETUP
- #line 412 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_CONNECT_TIMEOUT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("connect-timeout", driver.loc_);
- }
- }
- YY_BREAK
- case 37:
- YY_RULE_SETUP
- #line 422 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_KEYSPACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("keyspace", driver.loc_);
- }
- }
- YY_BREAK
- case 38:
- YY_RULE_SETUP
- #line 432 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- return isc::dhcp::Dhcp4Parser::make_CONTACT_POINTS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("contact-points", driver.loc_);
- }
- }
- YY_BREAK
- case 39:
- YY_RULE_SETUP
- #line 442 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_VALID_LIFETIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("valid-lifetime", driver.loc_);
- }
- }
- YY_BREAK
- case 40:
- YY_RULE_SETUP
- #line 453 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_RENEW_TIMER(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("renew-timer", driver.loc_);
- }
- }
- YY_BREAK
- case 41:
- YY_RULE_SETUP
- #line 464 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_REBIND_TIMER(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("rebind-timer", driver.loc_);
- }
- }
- YY_BREAK
- case 42:
- YY_RULE_SETUP
- #line 475 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_DECLINE_PROBATION_PERIOD(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("decline-probation-period", driver.loc_);
- }
- }
- YY_BREAK
- case 43:
- YY_RULE_SETUP
- #line 484 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_SUBNET4(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("subnet4", driver.loc_);
- }
- }
- YY_BREAK
- case 44:
- YY_RULE_SETUP
- #line 494 "dhcp4_lexer.ll"
- {
- switch (driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_SHARED_NETWORKS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
- }
- }
- YY_BREAK
- case 45:
- YY_RULE_SETUP
- #line 503 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
- }
- }
- YY_BREAK
- case 46:
- YY_RULE_SETUP
- #line 513 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- case isc::dhcp::Parser4Context::POOLS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- case isc::dhcp::Parser4Context::CLIENT_CLASS:
- return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
- }
- }
- YY_BREAK
- case 47:
- YY_RULE_SETUP
- #line 528 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LEASE_DATABASE:
- case isc::dhcp::Parser4Context::HOSTS_DATABASE:
- case isc::dhcp::Parser4Context::OPTION_DEF:
- case isc::dhcp::Parser4Context::OPTION_DATA:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- case isc::dhcp::Parser4Context::CLIENT_CLASS:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- case isc::dhcp::Parser4Context::LOGGERS:
- return isc::dhcp::Dhcp4Parser::make_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("name", driver.loc_);
- }
- }
- YY_BREAK
- case 48:
- YY_RULE_SETUP
- #line 544 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DATA:
- return isc::dhcp::Dhcp4Parser::make_DATA(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("data", driver.loc_);
- }
- }
- YY_BREAK
- case 49:
- YY_RULE_SETUP
- #line 553 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DATA:
- return isc::dhcp::Dhcp4Parser::make_ALWAYS_SEND(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("always-send", driver.loc_);
- }
- }
- YY_BREAK
- case 50:
- YY_RULE_SETUP
- #line 562 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_POOLS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("pools", driver.loc_);
- }
- }
- YY_BREAK
- case 51:
- YY_RULE_SETUP
- #line 571 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::POOLS:
- return isc::dhcp::Dhcp4Parser::make_POOL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("pool", driver.loc_);
- }
- }
- YY_BREAK
- case 52:
- YY_RULE_SETUP
- #line 580 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::POOLS:
- return isc::dhcp::Dhcp4Parser::make_USER_CONTEXT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("user-context", driver.loc_);
- }
- }
- YY_BREAK
- case 53:
- YY_RULE_SETUP
- #line 590 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_SUBNET(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("subnet", driver.loc_);
- }
- }
- YY_BREAK
- case 54:
- YY_RULE_SETUP
- #line 599 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
- }
- }
- YY_BREAK
- case 55:
- YY_RULE_SETUP
- #line 609 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_INTERFACE_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("interface-id", driver.loc_);
- }
- }
- YY_BREAK
- case 56:
- YY_RULE_SETUP
- #line 618 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("id", driver.loc_);
- }
- }
- YY_BREAK
- case 57:
- YY_RULE_SETUP
- #line 627 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_RAPID_COMMIT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("rapid-commit", driver.loc_);
- }
- }
- YY_BREAK
- case 58:
- YY_RULE_SETUP
- #line 636 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_RESERVATION_MODE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("reservation-mode", driver.loc_);
- }
- }
- YY_BREAK
- case 59:
- YY_RULE_SETUP
- #line 646 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::RESERVATION_MODE:
- return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("disabled", driver.loc_);
- }
- }
- YY_BREAK
- case 60:
- YY_RULE_SETUP
- #line 655 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::RESERVATION_MODE:
- return isc::dhcp::Dhcp4Parser::make_DISABLED(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("off", driver.loc_);
- }
- }
- YY_BREAK
- case 61:
- YY_RULE_SETUP
- #line 664 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::RESERVATION_MODE:
- return isc::dhcp::Dhcp4Parser::make_OUT_OF_POOL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("out-of-pool", driver.loc_);
- }
- }
- YY_BREAK
- case 62:
- YY_RULE_SETUP
- #line 673 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::RESERVATION_MODE:
- return isc::dhcp::Dhcp4Parser::make_ALL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("all", driver.loc_);
- }
- }
- YY_BREAK
- case 63:
- YY_RULE_SETUP
- #line 682 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DEF:
- case isc::dhcp::Parser4Context::OPTION_DATA:
- return isc::dhcp::Dhcp4Parser::make_CODE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("code", driver.loc_);
- }
- }
- YY_BREAK
- case 64:
- YY_RULE_SETUP
- #line 692 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_HOST_RESERVATION_IDENTIFIERS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("host-reservation-identifiers", driver.loc_);
- }
- }
- YY_BREAK
- case 65:
- YY_RULE_SETUP
- #line 701 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONFIG:
- return isc::dhcp::Dhcp4Parser::make_LOGGING(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("Logging", driver.loc_);
- }
- }
- YY_BREAK
- case 66:
- YY_RULE_SETUP
- #line 710 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LOGGING:
- return isc::dhcp::Dhcp4Parser::make_LOGGERS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("loggers", driver.loc_);
- }
- }
- YY_BREAK
- case 67:
- YY_RULE_SETUP
- #line 719 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LOGGERS:
- return isc::dhcp::Dhcp4Parser::make_OUTPUT_OPTIONS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("output_options", driver.loc_);
- }
- }
- YY_BREAK
- case 68:
- YY_RULE_SETUP
- #line 728 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
- return isc::dhcp::Dhcp4Parser::make_OUTPUT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("output", driver.loc_);
- }
- }
- YY_BREAK
- case 69:
- YY_RULE_SETUP
- #line 737 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LOGGERS:
- return isc::dhcp::Dhcp4Parser::make_DEBUGLEVEL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("debuglevel", driver.loc_);
- }
- }
- YY_BREAK
- case 70:
- YY_RULE_SETUP
- #line 746 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
- return isc::dhcp::Dhcp4Parser::make_FLUSH(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("flush", driver.loc_);
- }
- }
- YY_BREAK
- case 71:
- YY_RULE_SETUP
- #line 755 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
- return isc::dhcp::Dhcp4Parser::make_MAXSIZE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("maxsize", driver.loc_);
- }
- }
- YY_BREAK
- case 72:
- YY_RULE_SETUP
- #line 764 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OUTPUT_OPTIONS:
- return isc::dhcp::Dhcp4Parser::make_MAXVER(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("maxver", driver.loc_);
- }
- }
- YY_BREAK
- case 73:
- YY_RULE_SETUP
- #line 773 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::LOGGERS:
- return isc::dhcp::Dhcp4Parser::make_SEVERITY(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("severity", driver.loc_);
- }
- }
- YY_BREAK
- case 74:
- YY_RULE_SETUP
- #line 782 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASSES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("client-classes", driver.loc_);
- }
- }
- YY_BREAK
- case 75:
- YY_RULE_SETUP
- #line 792 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
- }
- }
- YY_BREAK
- case 76:
- YY_RULE_SETUP
- #line 803 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- case isc::dhcp::Parser4Context::CLIENT_CLASS:
- return isc::dhcp::Dhcp4Parser::make_TEST(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("test", driver.loc_);
- }
- }
- YY_BREAK
- case 77:
- YY_RULE_SETUP
- #line 813 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_RESERVATIONS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("reservations", driver.loc_);
- }
- }
- YY_BREAK
- case 78:
- YY_RULE_SETUP
- #line 822 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_DUID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("duid", driver.loc_);
- }
- }
- YY_BREAK
- case 79:
- YY_RULE_SETUP
- #line 832 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_HW_ADDRESS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("hw-address", driver.loc_);
- }
- }
- YY_BREAK
- case 80:
- YY_RULE_SETUP
- #line 842 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_CLIENT_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("client-id", driver.loc_);
- }
- }
- YY_BREAK
- case 81:
- YY_RULE_SETUP
- #line 852 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_CIRCUIT_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("circuit-id", driver.loc_);
- }
- }
- YY_BREAK
- case 82:
- YY_RULE_SETUP
- #line 862 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOST_RESERVATION_IDENTIFIERS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_FLEX_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("flex-id", driver.loc_);
- }
- }
- YY_BREAK
- case 83:
- YY_RULE_SETUP
- #line 872 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_HOSTNAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("hostname", driver.loc_);
- }
- }
- YY_BREAK
- case 84:
- YY_RULE_SETUP
- #line 881 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DEF:
- case isc::dhcp::Parser4Context::OPTION_DATA:
- return isc::dhcp::Dhcp4Parser::make_SPACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("space", driver.loc_);
- }
- }
- YY_BREAK
- case 85:
- YY_RULE_SETUP
- #line 891 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DATA:
- return isc::dhcp::Dhcp4Parser::make_CSV_FORMAT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("csv-format", driver.loc_);
- }
- }
- YY_BREAK
- case 86:
- YY_RULE_SETUP
- #line 900 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DEF:
- return isc::dhcp::Dhcp4Parser::make_RECORD_TYPES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("record-types", driver.loc_);
- }
- }
- YY_BREAK
- case 87:
- YY_RULE_SETUP
- #line 909 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DEF:
- return isc::dhcp::Dhcp4Parser::make_ENCAPSULATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("encapsulate", driver.loc_);
- }
- }
- YY_BREAK
- case 88:
- YY_RULE_SETUP
- #line 918 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::OPTION_DEF:
- return isc::dhcp::Dhcp4Parser::make_ARRAY(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("array", driver.loc_);
- }
- }
- YY_BREAK
- case 89:
- YY_RULE_SETUP
- #line 927 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
- }
- }
- YY_BREAK
- case 90:
- YY_RULE_SETUP
- #line 937 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::RELAY:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- return isc::dhcp::Dhcp4Parser::make_IP_ADDRESS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("ip-address", driver.loc_);
- }
- }
- YY_BREAK
- case 91:
- YY_RULE_SETUP
- #line 947 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_HOOKS_LIBRARIES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("hooks-libraries", driver.loc_);
- }
- }
- YY_BREAK
- case 92:
- YY_RULE_SETUP
- #line 957 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
- return isc::dhcp::Dhcp4Parser::make_PARAMETERS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("parameters", driver.loc_);
- }
- }
- YY_BREAK
- case 93:
- YY_RULE_SETUP
- #line 966 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::HOOKS_LIBRARIES:
- return isc::dhcp::Dhcp4Parser::make_LIBRARY(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("library", driver.loc_);
- }
- }
- YY_BREAK
- case 94:
- YY_RULE_SETUP
- #line 975 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_EXPIRED_LEASES_PROCESSING(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("expired-leases-processing", driver.loc_);
- }
- }
- YY_BREAK
- case 95:
- YY_RULE_SETUP
- #line 984 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp4Parser::make_RECLAIM_TIMER_WAIT_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("reclaim-timer-wait-time", driver.loc_);
- }
- }
- YY_BREAK
- case 96:
- YY_RULE_SETUP
- #line 993 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp4Parser::make_FLUSH_RECLAIMED_TIMER_WAIT_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("flush-reclaimed-timer-wait-time", driver.loc_);
- }
- }
- YY_BREAK
- case 97:
- YY_RULE_SETUP
- #line 1002 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp4Parser::make_HOLD_RECLAIMED_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("hold-reclaimed-time", driver.loc_);
- }
- }
- YY_BREAK
- case 98:
- YY_RULE_SETUP
- #line 1011 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp4Parser::make_MAX_RECLAIM_LEASES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-leases", driver.loc_);
- }
- }
- YY_BREAK
- case 99:
- YY_RULE_SETUP
- #line 1020 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp4Parser::make_MAX_RECLAIM_TIME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("max-reclaim-time", driver.loc_);
- }
- }
- YY_BREAK
- case 100:
- YY_RULE_SETUP
- #line 1029 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::EXPIRED_LEASES_PROCESSING:
- return isc::dhcp::Dhcp4Parser::make_UNWARNED_RECLAIM_CYCLES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("unwarned-reclaim-cycles", driver.loc_);
- }
- }
- YY_BREAK
- case 101:
- YY_RULE_SETUP
- #line 1038 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_DHCP4O6_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("dhcp4o6-port", driver.loc_);
- }
- }
- YY_BREAK
- case 102:
- YY_RULE_SETUP
- #line 1047 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_CONTROL_SOCKET(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("control-socket", driver.loc_);
- }
- }
- YY_BREAK
- case 103:
- YY_RULE_SETUP
- #line 1056 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONTROL_SOCKET:
- return isc::dhcp::Dhcp4Parser::make_SOCKET_TYPE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("socket-type", driver.loc_);
- }
- }
- YY_BREAK
- case 104:
- YY_RULE_SETUP
- #line 1065 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONTROL_SOCKET:
- return isc::dhcp::Dhcp4Parser::make_SOCKET_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("socket-name", driver.loc_);
- }
- }
- YY_BREAK
- case 105:
- YY_RULE_SETUP
- #line 1074 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_DHCP_DDNS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("dhcp-ddns", driver.loc_);
- }
- }
- YY_BREAK
- case 106:
- YY_RULE_SETUP
- #line 1083 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_ENABLE_UPDATES(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("enable-updates", driver.loc_);
- }
- }
- YY_BREAK
- case 107:
- YY_RULE_SETUP
- #line 1092 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_QUALIFYING_SUFFIX(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("qualifying-suffix", driver.loc_);
- }
- }
- YY_BREAK
- case 108:
- YY_RULE_SETUP
- #line 1101 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_SERVER_IP(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("server-ip", driver.loc_);
- }
- }
- YY_BREAK
- case 109:
- YY_RULE_SETUP
- #line 1110 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_SERVER_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("server-port", driver.loc_);
- }
- }
- YY_BREAK
- case 110:
- YY_RULE_SETUP
- #line 1119 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_SENDER_IP(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("sender-ip", driver.loc_);
- }
- }
- YY_BREAK
- case 111:
- YY_RULE_SETUP
- #line 1128 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_SENDER_PORT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("sender-port", driver.loc_);
- }
- }
- YY_BREAK
- case 112:
- YY_RULE_SETUP
- #line 1137 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_MAX_QUEUE_SIZE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("max-queue-size", driver.loc_);
- }
- }
- YY_BREAK
- case 113:
- YY_RULE_SETUP
- #line 1146 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_NCR_PROTOCOL(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("ncr-protocol", driver.loc_);
- }
- }
- YY_BREAK
- case 114:
- YY_RULE_SETUP
- #line 1155 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_NCR_FORMAT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("ncr-format", driver.loc_);
- }
- }
- YY_BREAK
- case 115:
- YY_RULE_SETUP
- #line 1164 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_ALWAYS_INCLUDE_FQDN(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("always-include-fqdn", driver.loc_);
- }
- }
- YY_BREAK
- case 116:
- YY_RULE_SETUP
- #line 1173 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_OVERRIDE_NO_UPDATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("override-no-update", driver.loc_);
- }
- }
- YY_BREAK
- case 117:
- YY_RULE_SETUP
- #line 1182 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_OVERRIDE_CLIENT_UPDATE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("override-client-update", driver.loc_);
- }
- }
- YY_BREAK
- case 118:
- YY_RULE_SETUP
- #line 1191 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_REPLACE_CLIENT_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("replace-client-name", driver.loc_);
- }
- }
- YY_BREAK
- case 119:
- YY_RULE_SETUP
- #line 1200 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP_DDNS:
- return isc::dhcp::Dhcp4Parser::make_GENERATED_PREFIX(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("generated-prefix", driver.loc_);
- }
- }
- YY_BREAK
- case 120:
- YY_RULE_SETUP
- #line 1209 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
- return isc::dhcp::Dhcp4Parser::make_UDP(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 121:
- YY_RULE_SETUP
- #line 1219 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_PROTOCOL) {
- return isc::dhcp::Dhcp4Parser::make_TCP(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 122:
- YY_RULE_SETUP
- #line 1229 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::NCR_FORMAT) {
- return isc::dhcp::Dhcp4Parser::make_JSON(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 123:
- YY_RULE_SETUP
- #line 1239 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 124:
- YY_RULE_SETUP
- #line 1249 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp4Parser::make_WHEN_PRESENT(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 125:
- YY_RULE_SETUP
- #line 1259 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 126:
- YY_RULE_SETUP
- #line 1269 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp4Parser::make_NEVER(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 127:
- YY_RULE_SETUP
- #line 1279 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp4Parser::make_ALWAYS(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 128:
- YY_RULE_SETUP
- #line 1289 "dhcp4_lexer.ll"
- {
- /* dhcp-ddns value keywords are case insensitive */
- if (driver.ctx_ == isc::dhcp::Parser4Context::REPLACE_CLIENT_NAME) {
- return isc::dhcp::Dhcp4Parser::make_WHEN_NOT_PRESENT(driver.loc_);
- }
- std::string tmp(yytext+1);
- tmp.resize(tmp.size() - 1);
- return isc::dhcp::Dhcp4Parser::make_STRING(tmp, driver.loc_);
- }
- YY_BREAK
- case 129:
- YY_RULE_SETUP
- #line 1299 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONFIG:
- return isc::dhcp::Dhcp4Parser::make_DHCP6(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("Dhcp6", driver.loc_);
- }
- }
- YY_BREAK
- case 130:
- YY_RULE_SETUP
- #line 1308 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONFIG:
- return isc::dhcp::Dhcp4Parser::make_DHCPDDNS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("DhcpDdns", driver.loc_);
- }
- }
- YY_BREAK
- case 131:
- YY_RULE_SETUP
- #line 1317 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::CONFIG:
- return isc::dhcp::Dhcp4Parser::make_CONTROL_AGENT(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("Control-agent", driver.loc_);
- }
- }
- YY_BREAK
- case 132:
- YY_RULE_SETUP
- #line 1326 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_SUBNET_4O6_INTERFACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface", driver.loc_);
- }
- }
- YY_BREAK
- case 133:
- YY_RULE_SETUP
- #line 1335 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_SUBNET_4O6_INTERFACE_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("4o6-interface-id", driver.loc_);
- }
- }
- YY_BREAK
- case 134:
- YY_RULE_SETUP
- #line 1344 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- return isc::dhcp::Dhcp4Parser::make_SUBNET_4O6_SUBNET(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("4o6-subnet", driver.loc_);
- }
- }
- YY_BREAK
- case 135:
- YY_RULE_SETUP
- #line 1353 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_ECHO_CLIENT_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("echo-client-id", driver.loc_);
- }
- }
- YY_BREAK
- case 136:
- YY_RULE_SETUP
- #line 1362 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_MATCH_CLIENT_ID(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("match-client-id", driver.loc_);
- }
- }
- YY_BREAK
- case 137:
- YY_RULE_SETUP
- #line 1373 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
- }
- }
- YY_BREAK
- case 138:
- YY_RULE_SETUP
- #line 1386 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp4Parser::make_SERVER_HOSTNAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("server-hostname", driver.loc_);
- }
- }
- YY_BREAK
- case 139:
- YY_RULE_SETUP
- #line 1399 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::SHARED_NETWORK:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- return isc::dhcp::Dhcp4Parser::make_BOOT_FILE_NAME(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("boot-file-name", driver.loc_);
- }
- }
- YY_BREAK
- case 140:
- YY_RULE_SETUP
- #line 1414 "dhcp4_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::Dhcp4Parser::make_STRING(decoded, driver.loc_);
- }
- YY_BREAK
- case 141:
- /* rule 141 can match eol */
- YY_RULE_SETUP
- #line 1512 "dhcp4_lexer.ll"
- {
- /* Bad string with a forbidden control character inside */
- driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
- }
- YY_BREAK
- case 142:
- /* rule 142 can match eol */
- YY_RULE_SETUP
- #line 1517 "dhcp4_lexer.ll"
- {
- /* Bad string with a bad escape inside */
- driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
- }
- YY_BREAK
- case 143:
- YY_RULE_SETUP
- #line 1522 "dhcp4_lexer.ll"
- {
- /* Bad string with an open escape at the end */
- driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
- }
- YY_BREAK
- case 144:
- YY_RULE_SETUP
- #line 1527 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
- YY_BREAK
- case 145:
- YY_RULE_SETUP
- #line 1528 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
- YY_BREAK
- case 146:
- YY_RULE_SETUP
- #line 1529 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
- YY_BREAK
- case 147:
- YY_RULE_SETUP
- #line 1530 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
- YY_BREAK
- case 148:
- YY_RULE_SETUP
- #line 1531 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
- YY_BREAK
- case 149:
- YY_RULE_SETUP
- #line 1532 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
- YY_BREAK
- case 150:
- YY_RULE_SETUP
- #line 1534 "dhcp4_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::Dhcp4Parser::make_INTEGER(integer, driver.loc_);
- }
- YY_BREAK
- case 151:
- YY_RULE_SETUP
- #line 1552 "dhcp4_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::Dhcp4Parser::make_FLOAT(fp, driver.loc_);
- }
- YY_BREAK
- case 152:
- YY_RULE_SETUP
- #line 1565 "dhcp4_lexer.ll"
- {
- string tmp(yytext);
- return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
- }
- YY_BREAK
- case 153:
- YY_RULE_SETUP
- #line 1570 "dhcp4_lexer.ll"
- {
- return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
- }
- YY_BREAK
- case 154:
- YY_RULE_SETUP
- #line 1574 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
- YY_BREAK
- case 155:
- YY_RULE_SETUP
- #line 1576 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
- YY_BREAK
- case 156:
- YY_RULE_SETUP
- #line 1578 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
- YY_BREAK
- case 157:
- YY_RULE_SETUP
- #line 1580 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
- YY_BREAK
- case YY_STATE_EOF(INITIAL):
- #line 1582 "dhcp4_lexer.ll"
- {
- if (driver.states_.empty()) {
- return isc::dhcp::Dhcp4Parser::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();
- }
- parser4__delete_buffer(YY_CURRENT_BUFFER);
- parser4__switch_to_buffer(driver.states_.back());
- driver.states_.pop_back();
- BEGIN(DIR_EXIT);
- }
- YY_BREAK
- case 158:
- YY_RULE_SETUP
- #line 1605 "dhcp4_lexer.ll"
- ECHO;
- YY_BREAK
- #line 4033 "dhcp4_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 yyin at a new source and called
- * yylex(). 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 = yyin;
- /* %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 ( yywrap( ) )
- {
- /* Note: because we've taken care in
- * yy_get_next_buffer() to have set up
- * yytext, 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 yylex */
- /* %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. */
- yyrealloc( (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;
- yyrestart( yyin );
- }
- 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 *) yyrealloc(
- (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()" );
- /* "- 2" to take care of EOB's */
- YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
- }
- (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 >= 1286 )
- 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 >= 1286 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1285);
- 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. */
- yyrestart( yyin );
- /*FALLTHROUGH*/
- case EOB_ACT_END_OF_FILE:
- {
- if ( yywrap( ) )
- 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 yytext */
- (yy_hold_char) = *++(yy_c_buf_p);
- /* %% [19.0] update BOL and yylineno */
- 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 yyrestart (FILE * input_file )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
-
- if ( ! YY_CURRENT_BUFFER ){
- yyensure_buffer_stack ();
- YY_CURRENT_BUFFER_LVALUE =
- yy_create_buffer( yyin, YY_BUF_SIZE );
- }
- yy_init_buffer( YY_CURRENT_BUFFER, input_file );
- yy_load_buffer_state( );
- }
- /* %if-c++-only */
- /* %endif */
- /** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- *
- */
- /* %if-c-only */
- void yy_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
- * yypop_buffer_state();
- * yypush_buffer_state(new_buffer);
- */
- yyensure_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;
- yy_load_buffer_state( );
- /* We don't actually know whether we did this switch during
- * EOF (yywrap()) processing, but the only time this flag
- * is looked at is after yywrap() 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 yy_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 */
- yyin = 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 yy_create_buffer (FILE * file, int size )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- YY_BUFFER_STATE b;
-
- b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_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 *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
- if ( ! b->yy_ch_buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
- b->yy_is_our_buffer = 1;
- yy_init_buffer( b, file );
- return b;
- }
- /* %if-c++-only */
- /* %endif */
- /** Destroy the buffer.
- * @param b a buffer created with yy_create_buffer()
- *
- */
- /* %if-c-only */
- void yy_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 )
- yyfree( (void *) b->yy_ch_buf );
- yyfree( (void *) b );
- }
- /* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a yyrestart() or at EOF.
- */
- /* %if-c-only */
- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- int oerrno = errno;
-
- yy_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 yy_init_buffer was _probably_
- * called from yyrestart() 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 yy_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 )
- yy_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 yypush_buffer_state (YY_BUFFER_STATE new_buffer )
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- if (new_buffer == NULL)
- return;
- yyensure_buffer_stack();
- /* This block is copied from yy_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 yy_switch_to_buffer. */
- yy_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 yypop_buffer_state (void)
- /* %endif */
- /* %if-c++-only */
- /* %endif */
- {
- if (!YY_CURRENT_BUFFER)
- return;
- yy_delete_buffer(YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- if ((yy_buffer_stack_top) > 0)
- --(yy_buffer_stack_top);
- if (YY_CURRENT_BUFFER) {
- yy_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 yyensure_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**)yyalloc
- (num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_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**)yyrealloc
- ((yy_buffer_stack),
- num_to_alloc * sizeof(struct yy_buffer_state*)
- );
- if ( ! (yy_buffer_stack) )
- YY_FATAL_ERROR( "out of dynamic memory in yyensure_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 yy_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) yyalloc( sizeof( struct yy_buffer_state ) );
- if ( ! b )
- YY_FATAL_ERROR( "out of dynamic memory in yy_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;
- yy_switch_to_buffer( b );
- return b;
- }
- /* %endif */
- /* %if-c-only */
- /** Setup the input buffer state to scan a string. The next call to yylex() 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
- * yy_scan_bytes() instead.
- */
- YY_BUFFER_STATE yy_scan_string (const char * yystr )
- {
-
- return yy_scan_bytes( yystr, (int) strlen(yystr) );
- }
- /* %endif */
- /* %if-c-only */
- /** Setup the input buffer state to scan the given bytes. The next call to yylex() 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 yy_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 *) yyalloc( n );
- if ( ! buf )
- YY_FATAL_ERROR( "out of dynamic memory in yy_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 = yy_scan_buffer( buf, n );
- if ( ! b )
- YY_FATAL_ERROR( "bad buffer in yy_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 )
- {
- 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 yytext. */ \
- int yyless_macro_arg = (n); \
- YY_LESS_LINENO(yyless_macro_arg);\
- yytext[yyleng] = (yy_hold_char); \
- (yy_c_buf_p) = yytext + yyless_macro_arg; \
- (yy_hold_char) = *(yy_c_buf_p); \
- *(yy_c_buf_p) = '\0'; \
- yyleng = 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 yyget_lineno (void)
- {
-
- return yylineno;
- }
- /** Get the input stream.
- *
- */
- FILE *yyget_in (void)
- {
- return yyin;
- }
- /** Get the output stream.
- *
- */
- FILE *yyget_out (void)
- {
- return yyout;
- }
- /** Get the length of the current token.
- *
- */
- int yyget_leng (void)
- {
- return yyleng;
- }
- /** Get the current token.
- *
- */
- char *yyget_text (void)
- {
- return yytext;
- }
- /* %if-reentrant */
- /* %endif */
- /** Set the current line number.
- * @param _line_number line number
- *
- */
- void yyset_lineno (int _line_number )
- {
-
- yylineno = _line_number;
- }
- /** Set the input stream. This does not discard the current
- * input buffer.
- * @param _in_str A readable stream.
- *
- * @see yy_switch_to_buffer
- */
- void yyset_in (FILE * _in_str )
- {
- yyin = _in_str ;
- }
- void yyset_out (FILE * _out_str )
- {
- yyout = _out_str ;
- }
- int yyget_debug (void)
- {
- return yy_flex_debug;
- }
- void yyset_debug (int _bdebug )
- {
- yy_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 yylex_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
- yyin = stdin;
- yyout = stdout;
- #else
- yyin = NULL;
- yyout = NULL;
- #endif
- /* For future reference: Set errno on error, since we are called by
- * yylex_init()
- */
- return 0;
- }
- /* %endif */
- /* %if-c-only SNIP! this currently causes conflicts with the c++ scanner */
- /* yylex_destroy is for both reentrant and non-reentrant scanners. */
- int yylex_destroy (void)
- {
-
- /* Pop the buffer stack, destroying each element. */
- while(YY_CURRENT_BUFFER){
- yy_delete_buffer( YY_CURRENT_BUFFER );
- YY_CURRENT_BUFFER_LVALUE = NULL;
- yypop_buffer_state();
- }
- /* Destroy the stack itself. */
- yyfree((yy_buffer_stack) );
- (yy_buffer_stack) = NULL;
- /* Reset the globals. This is important in a non-reentrant scanner so the next time
- * yylex() 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 *yyalloc (yy_size_t size )
- {
- return malloc(size);
- }
- void *yyrealloc (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 yyfree (void * ptr )
- {
- free( (char *) ptr ); /* see yyrealloc() 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 1605 "dhcp4_lexer.ll"
- using namespace isc::dhcp;
- void
- Parser4Context::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 = parser4__scan_bytes(str.c_str(), str.size());
- if (!buffer) {
- fatal("cannot scan string");
- /* fatal() throws an exception so this can't be reached */
- }
- }
- void
- Parser4Context::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 dhcp4_lexer.cc header for available definitions */
- buffer = parser4__create_buffer(f, 65536 /*buffer size*/);
- if (!buffer) {
- fatal("cannot scan file " + filename);
- }
- parser4__switch_to_buffer(buffer);
- }
- void
- Parser4Context::scanEnd() {
- if (sfile_)
- fclose(sfile_);
- sfile_ = 0;
- static_cast<void>(parser4_lex_destroy());
- /* Close files */
- while (!sfiles_.empty()) {
- FILE* f = sfiles_.back();
- if (f) {
- fclose(f);
- }
- sfiles_.pop_back();
- }
- /* Delete states */
- while (!states_.empty()) {
- parser4__delete_buffer(states_.back());
- states_.pop_back();
- }
- }
- void
- Parser4Context::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 = parser4__create_buffer(f, 65536 /*buffer size*/);
- if (!buffer) {
- fatal( "Can't scan include file " + filename);
- }
- parser4__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?"); }
- };
- }
- #endif /* !__clang_analyzer__ */
|