1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173 |
- #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 155
- #define YY_END_OF_BUFFER 156
- /* 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[1246] =
- { 0,
- 148, 148, 0, 0, 0, 0, 0, 0, 0, 0,
- 156, 154, 10, 11, 154, 1, 148, 145, 148, 148,
- 154, 147, 146, 154, 154, 154, 154, 154, 141, 142,
- 154, 154, 154, 143, 144, 5, 5, 5, 154, 154,
- 154, 10, 11, 0, 0, 137, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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,
- 148, 148, 0, 147, 148, 3, 2, 6, 0, 148,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 9,
- 0, 138, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,
- 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, 139, 0, 0, 0,
- 0, 0, 0, 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, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 153, 151, 0, 150, 149,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 118, 0, 117, 0, 0, 59, 0, 0, 0, 0,
- 0, 0, 0, 0, 26, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 57,
- 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, 16, 0, 0, 0, 152, 149, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 119, 0, 0,
- 121, 0, 0, 0, 0, 0, 0, 0, 60, 0,
- 0, 0, 0, 45, 0, 0, 0, 0, 0, 75,
- 0, 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, 44, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
- 0, 30, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 73, 22, 0, 27, 0, 0, 0, 0, 0,
- 0, 0, 0, 12, 126, 0, 123, 0, 122, 0,
- 0, 0, 85, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 67, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 47, 0, 0, 0, 0, 0,
- 0, 0, 0, 86, 0, 0, 0, 0, 0, 0,
- 0, 0, 81, 0, 0, 0, 0, 7, 0, 0,
- 124, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 69, 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, 50, 0, 0, 0, 0, 0, 0,
- 0, 0, 62, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 79, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 90,
- 63, 0, 0, 0, 68, 23, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 31, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
- 0, 0, 0, 127, 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, 80, 0, 0, 0, 0, 34, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 28, 0, 0, 0, 0, 21, 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, 77, 0, 0, 0, 0,
- 0, 0, 102, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 51, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 18, 0,
- 0, 0, 0, 0, 0, 107, 0, 0, 105, 0,
- 0, 0, 0, 0, 0, 0, 0, 131, 0, 0,
- 0, 0, 0, 0, 78, 0, 0, 0, 0, 82,
- 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 76, 0, 17, 0, 87, 0,
- 0, 0, 0, 0, 111, 0, 0, 0, 42, 0,
- 0, 0, 0, 89, 25, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 46, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 84, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 134, 43, 58, 0, 0, 0,
- 0, 0, 0, 0, 0, 37, 0, 0, 0, 108,
- 0, 106, 0, 101, 100, 0, 0, 0, 0, 0,
- 0, 120, 0, 0, 72, 0, 0, 0, 0, 0,
- 0, 98, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 52, 0, 0, 32, 0, 0, 0, 0, 110,
- 0, 0, 0, 0, 54, 38, 0, 83, 0, 0,
- 74, 0, 0, 0, 49, 0, 129, 0, 128, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 136, 71, 0,
- 35, 99, 0, 0, 132, 103, 0, 0, 0, 0,
- 0, 0, 20, 0, 19, 0, 109, 0, 0, 64,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 36,
- 0, 0, 0, 33, 0, 0, 0, 0, 0, 0,
- 88, 0, 0, 133, 0, 0, 0, 0, 0, 0,
- 0, 0, 135, 41, 0, 130, 125, 0, 0, 14,
- 0, 0, 116, 0, 0, 0, 0, 96, 0, 0,
- 0, 0, 0, 55, 0, 0, 0, 0, 0, 0,
- 0, 13, 0, 0, 0, 104, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 95, 0, 113, 0, 0,
- 0, 112, 0, 0, 0, 94, 0, 0, 0, 115,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 114,
- 0, 0, 0, 0, 0, 0, 92, 97, 39, 0,
- 0, 0, 91, 0, 0, 0, 0, 0, 0, 0,
- 61, 0, 0, 93, 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[1258] =
- { 0,
- 0, 70, 19, 29, 41, 49, 52, 58, 87, 95,
- 1608, 1609, 32, 1604, 141, 0, 201, 1609, 206, 88,
- 11, 213, 1609, 1586, 114, 25, 2, 6, 1609, 1609,
- 73, 11, 17, 1609, 1609, 1609, 104, 1592, 1547, 0,
- 1584, 107, 1599, 217, 247, 1609, 1543, 185, 1542, 1548,
- 93, 58, 1540, 91, 211, 195, 14, 273, 195, 1539,
- 181, 275, 202, 209, 1548, 66, 188, 1547, 232, 219,
- 296, 282, 207, 1530, 78, 297, 305, 305, 1549, 0,
- 343, 360, 368, 374, 355, 1609, 0, 1609, 301, 349,
- 223, 295, 196, 349, 352, 210, 1609, 1546, 1585, 1609,
- 319, 1609, 387, 1574, 349, 1532, 1542, 363, 363, 1537,
- 358, 365, 362, 370, 241, 1580, 0, 438, 372, 1524,
- 1526, 1522, 1530, 74, 1526, 1515, 1516, 89, 1532, 1515,
- 1524, 1524, 289, 1515, 348, 1516, 351, 1561, 1565, 1507,
- 1558, 1500, 1523, 1520, 1520, 1514, 338, 1507, 1500, 1505,
- 1499, 374, 1510, 1495, 1494, 1508, 355, 1494, 372, 1510,
- 376, 434, 408, 1509, 1506, 1507, 1505, 1487, 1489, 387,
- 1481, 1498, 1490, 0, 406, 402, 295, 409, 420, 389,
- 1489, 1609, 0, 1532, 426, 1479, 1482, 432, 442, 1490,
- 433, 1533, 442, 1532, 444, 1531, 1609, 488, 1530, 456,
- 1491, 1471, 1487, 1484, 1483, 435, 1524, 1518, 1484, 1463,
- 1471, 1466, 1480, 1476, 1464, 1476, 1476, 1467, 1451, 1455,
- 1468, 1468, 1460, 1450, 1468, 1609, 1463, 1466, 1447, 1446,
- 1496, 1445, 1455, 1458, 465, 1454, 1442, 1453, 1489, 1436,
- 1492, 1445, 9, 1435, 1451, 1432, 1431, 1437, 1428, 1427,
- 1434, 1436, 1481, 1439, 1438, 1432, 450, 1439, 1434, 1426,
- 1432, 1432, 1413, 1429, 1415, 1421, 1428, 1416, 1409, 1423,
- 1464, 1425, 1407, 1415, 470, 1609, 1609, 472, 1609, 1609,
- 1402, 0, 454, 449, 1404, 507, 490, 1458, 1411, 486,
- 1609, 1456, 1609, 1450, 534, 1609, 485, 1392, 1448, 1394,
- 1400, 1450, 1407, 288, 1609, 1405, 1447, 1402, 1399, 510,
- 1405, 1443, 1437, 1392, 1387, 1384, 1433, 1392, 1381, 1430,
- 1378, 533, 1392, 1377, 1390, 1377, 1387, 1382, 1389, 1384,
- 1380, 395, 1378, 1381, 1376, 1372, 1420, 492, 1414, 1609,
- 1366, 1365, 1358, 1360, 1364, 1353, 1366, 501, 1411, 1366,
- 1363, 1367, 1609, 1365, 1354, 1354, 1366, 1348, 1340, 1341,
- 1362, 1344, 1356, 1355, 1341, 1353, 1352, 1351, 1350, 1391,
- 1390, 1609, 1334, 414, 1347, 1609, 1609, 1346, 0, 1335,
- 1327, 492, 1332, 1383, 1382, 1340, 1380, 1609, 1328, 1378,
- 1609, 510, 582, 509, 1377, 1333, 1329, 1317, 1609, 1333,
- 1332, 1319, 1318, 1609, 1320, 1317, 499, 1315, 1317, 1609,
- 1325, 1322, 1307, 1320, 1315, 559, 1322, 1304, 1353, 1609,
- 1302, 1318, 1350, 1313, 1310, 1311, 1313, 1345, 1298, 1293,
- 1292, 1341, 1287, 1302, 1280, 1287, 1292, 1340, 1609, 1287,
- 1283, 1281, 1285, 1292, 1277, 1287, 1290, 1279, 1274, 1609,
- 1329, 1609, 1273, 1284, 1321, 1268, 1273, 1282, 1276, 1280,
- 1320, 1314, 1278, 1258, 1261, 1260, 1268, 1272, 1255, 1311,
- 1253, 1609, 1609, 1258, 1609, 1268, 1302, 1264, 0, 1248,
- 1265, 1303, 1253, 1609, 1609, 1250, 1609, 1256, 1609, 514,
- 531, 562, 1609, 1253, 1241, 1292, 1239, 1238, 1245, 1238,
- 1250, 1249, 1249, 1237, 1278, 1245, 1237, 1280, 1226, 1242,
- 1241, 1609, 1226, 1223, 1237, 1229, 1235, 1226, 1234, 1219,
- 1235, 1217, 1231, 1229, 1212, 1206, 1211, 1226, 1223, 1224,
- 1221, 1262, 1219, 1609, 1205, 1207, 1216, 1252, 1251, 523,
- 1214, 1197, 1198, 1195, 1609, 1209, 1188, 1209, 1206, 1198,
- 1241, 1195, 1239, 1609, 1186, 1200, 1203, 1235, 1234, 1181,
- 1232, 1231, 1609, 569, 1193, 1182, 1184, 1609, 1190, 1180,
- 1609, 1225, 1173, 1228, 539, 537, 524, 1178, 1221, 541,
- 1220, 1219, 1218, 1172, 1162, 1215, 1168, 1178, 1212, 1175,
- 1169, 1156, 1164, 1207, 1211, 1168, 1167, 1168, 1161, 1150,
- 1163, 1166, 1161, 1162, 1159, 1158, 1161, 1156, 1197, 1196,
- 1146, 1136, 1144, 1192, 1609, 1191, 1140, 1132, 1133, 1146,
- 1133, 1609, 1133, 1142, 1141, 1141, 1181, 1124, 1133, 1126,
- 1137, 1114, 1118, 1169, 1116, 1126, 1166, 1113, 542, 558,
- 1107, 1117, 555, 1609, 1167, 1125, 1114, 1118, 1108, 1120,
- 1123, 1160, 1609, 1154, 554, 1107, 1115, 1114, 1109, 1105,
- 1112, 1095, 1098, 1094, 1111, 1106, 1094, 1090, 1097, 1091,
- 1143, 1100, 1088, 1102, 1090, 1609, 1098, 1096, 1087, 1096,
- 1092, 1133, 1075, 1075, 1088, 1073, 1128, 1070, 1071, 1609,
- 1609, 1079, 1082, 1085, 1609, 1609, 1084, 1069, 1061, 567,
- 1067, 1065, 1112, 1061, 1115, 1609, 1060, 1062, 1062, 1054,
- 1110, 1063, 1051, 1045, 1056, 1065, 1058, 0, 80, 179,
- 229, 296, 522, 504, 533, 521, 1609, 580, 536, 551,
- 564, 551, 569, 1609, 588, 596, 576, 566, 613, 578,
- 588, 627, 582, 577, 578, 574, 583, 578, 634, 593,
- 584, 1609, 586, 598, 583, 600, 594, 639, 607, 591,
- 592, 1609, 610, 593, 650, 595, 1609, 614, 594, 612,
- 651, 611, 601, 619, 618, 604, 619, 611, 607, 625,
- 610, 1609, 618, 624, 619, 670, 1609, 621, 626, 620,
- 632, 626, 625, 678, 624, 624, 681, 627, 1609, 626,
- 634, 632, 631, 645, 646, 651, 690, 649, 665, 670,
- 644, 654, 645, 697, 642, 1609, 649, 654, 661, 702,
- 703, 652, 1609, 648, 652, 651, 671, 668, 673, 674,
- 660, 668, 677, 657, 678, 718, 1609, 673, 722, 723,
- 685, 687, 675, 672, 679, 730, 679, 677, 695, 734,
- 686, 690, 688, 686, 739, 740, 736, 696, 1609, 701,
- 694, 703, 691, 701, 697, 1609, 692, 693, 1609, 694,
- 692, 711, 712, 713, 695, 700, 718, 1609, 708, 741,
- 732, 704, 763, 726, 1609, 709, 724, 716, 720, 1609,
- 1609, 730, 765, 714, 767, 716, 774, 719, 730, 722,
- 728, 724, 742, 743, 1609, 741, 1609, 744, 1609, 747,
- 737, 730, 742, 785, 1609, 742, 792, 793, 1609, 794,
- 743, 750, 792, 1609, 1609, 742, 742, 745, 759, 746,
- 803, 762, 800, 806, 756, 808, 757, 810, 811, 772,
- 756, 768, 773, 759, 789, 818, 778, 1609, 770, 821,
- 770, 766, 782, 787, 769, 827, 782, 787, 1609, 788,
- 781, 790, 791, 788, 778, 780, 837, 786, 783, 840,
- 836, 779, 794, 844, 1609, 1609, 1609, 795, 805, 790,
- 791, 850, 852, 798, 854, 1609, 804, 807, 858, 1609,
- 821, 1609, 805, 1609, 1609, 812, 862, 814, 865, 866,
- 848, 1609, 826, 827, 1609, 815, 814, 817, 817, 818,
- 814, 1609, 836, 822, 823, 838, 838, 841, 841, 838,
- 843, 1609, 835, 845, 1609, 842, 847, 849, 846, 1609,
- 837, 843, 842, 853, 1609, 1609, 892, 1609, 841, 847,
- 1609, 850, 853, 864, 1609, 861, 1609, 858, 1609, 881,
- 901, 907, 908, 852, 910, 911, 866, 860, 914, 915,
- 911, 876, 872, 914, 864, 869, 922, 880, 924, 884,
- 926, 889, 878, 929, 873, 890, 890, 874, 930, 895,
- 895, 882, 893, 940, 900, 913, 900, 1609, 1609, 944,
- 1609, 1609, 893, 904, 1609, 1609, 894, 943, 888, 893,
- 951, 901, 1609, 907, 1609, 954, 1609, 899, 914, 1609,
- 952, 920, 913, 922, 910, 920, 963, 964, 915, 1609,
- 966, 967, 914, 1609, 918, 971, 917, 916, 974, 929,
- 1609, 971, 933, 1609, 936, 979, 922, 924, 921, 937,
- 946, 985, 1609, 1609, 981, 1609, 1609, 946, 983, 1609,
- 937, 944, 1609, 941, 946, 993, 938, 1609, 942, 954,
- 997, 941, 949, 1609, 960, 950, 949, 963, 954, 963,
- 965, 1609, 1007, 967, 1009, 1609, 1005, 969, 950, 1013,
- 972, 973, 974, 1017, 976, 1609, 981, 1609, 963, 1021,
- 982, 1609, 968, 968, 970, 1609, 975, 970, 982, 1609,
- 980, 984, 975, 1027, 976, 992, 985, 994, 985, 992,
- 979, 994, 1041, 1000, 987, 1003, 994, 1008, 1004, 1609,
- 1048, 1049, 1050, 1007, 1006, 1007, 1609, 1609, 1609, 1054,
- 998, 1014, 1609, 1052, 1003, 1002, 1004, 1015, 1062, 1013,
- 1609, 1022, 1065, 1609, 1609, 1071, 1076, 1081, 1086, 1091,
- 1096, 1101, 1104, 1078, 1083, 1085, 1098
- } ;
- static const flex_int16_t yy_def[1258] =
- { 0,
- 1246, 1246, 1247, 1247, 1246, 1246, 1246, 1246, 1246, 1246,
- 1245, 1245, 1245, 1245, 1245, 1248, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1249,
- 1245, 1245, 1245, 1250, 15, 1245, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1251, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1248,
- 1245, 1245, 1245, 1245, 1245, 1245, 1252, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1249, 1245,
- 1250, 1245, 1245, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1253, 45, 1251, 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, 1252, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1254, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1253, 1245, 1251, 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, 1245, 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, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1255, 45, 45, 45, 45, 45, 45, 45, 45,
- 1245, 45, 1245, 45, 1251, 1245, 45, 45, 45, 45,
- 45, 45, 45, 45, 1245, 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, 1245,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 1245, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 1245, 1245, 1245, 1256, 45,
- 45, 45, 45, 45, 45, 45, 45, 1245, 45, 45,
- 1245, 45, 1251, 45, 45, 45, 45, 45, 1245, 45,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 1245,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1245,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1245, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1245,
- 45, 1245, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 1245, 45, 1245, 45, 45, 1245, 1257, 45,
- 45, 45, 45, 1245, 1245, 45, 1245, 45, 1245, 45,
- 45, 45, 1245, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1245, 45, 45, 45, 45, 45,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 45, 45, 1245, 45, 45, 45, 45, 1245, 45, 45,
- 1245, 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, 1245, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 45, 45, 1245, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1245, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1245,
- 1245, 45, 45, 45, 1245, 1245, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1245, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1245, 45, 45, 45,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 45, 1245, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 45, 1245, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1245, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1245, 45, 45, 45, 45,
- 45, 45, 1245, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 1245, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1245, 45,
- 45, 45, 45, 45, 45, 1245, 45, 45, 1245, 45,
- 45, 45, 45, 45, 45, 45, 45, 1245, 45, 45,
- 45, 45, 45, 45, 1245, 45, 45, 45, 45, 1245,
- 1245, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1245, 45, 1245, 45, 1245, 45,
- 45, 45, 45, 45, 1245, 45, 45, 45, 1245, 45,
- 45, 45, 45, 1245, 1245, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 1245, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 1245, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 1245, 1245, 1245, 45, 45, 45,
- 45, 45, 45, 45, 45, 1245, 45, 45, 45, 1245,
- 45, 1245, 45, 1245, 1245, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 1245, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 1245, 45, 45, 45, 45, 1245,
- 45, 45, 45, 45, 1245, 1245, 45, 1245, 45, 45,
- 1245, 45, 45, 45, 1245, 45, 1245, 45, 1245, 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, 1245, 1245, 45,
- 1245, 1245, 45, 45, 1245, 1245, 45, 45, 45, 45,
- 45, 45, 1245, 45, 1245, 45, 1245, 45, 45, 1245,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1245,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 1245, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 45, 45, 1245, 1245, 45, 1245, 1245, 45, 45, 1245,
- 45, 45, 1245, 45, 45, 45, 45, 1245, 45, 45,
- 45, 45, 45, 1245, 45, 45, 45, 45, 45, 45,
- 45, 1245, 45, 45, 45, 1245, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 1245, 45, 1245, 45, 45,
- 45, 1245, 45, 45, 45, 1245, 45, 45, 45, 1245,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 45, 45, 45, 45, 1245,
- 45, 45, 45, 45, 45, 45, 1245, 1245, 1245, 45,
- 45, 45, 1245, 45, 45, 45, 45, 45, 45, 45,
- 1245, 45, 45, 1245, 0, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245
- } ;
- static const flex_int16_t yy_nxt[1681] =
- { 0,
- 1245, 13, 14, 13, 1245, 15, 16, 1245, 17, 18,
- 19, 20, 21, 22, 22, 22, 23, 24, 86, 342,
- 37, 14, 37, 87, 25, 26, 38, 1245, 1245, 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, 794, 13,
- 14, 13, 33, 40, 115, 92, 93, 343, 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,
- 205, 161, 89, 137, 89, 162, 32, 90, 90, 90,
- 206, 138, 33, 210, 211, 83, 108, 795, 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, 177, 122, 112, 139, 123, 796, 83, 124, 105,
- 125, 114, 126, 113, 140, 177, 141, 132, 83, 119,
- 157, 175, 108, 83, 158, 120, 112, 103, 133, 177,
- 83, 45, 147, 135, 159, 195, 148, 45, 134, 45,
- 45, 113, 45, 180, 45, 45, 45, 175, 117, 143,
- 144, 45, 45, 145, 45, 45, 149, 797, 195, 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, 277,
- 111, 45, 128, 176, 102, 129, 130, 112, 114, 45,
- 153, 401, 216, 45, 217, 45, 118, 113, 131, 150,
- 154, 151, 277, 152, 163, 155, 156, 164, 402, 176,
- 112, 170, 168, 798, 165, 166, 85, 85, 85, 103,
- 167, 171, 90, 90, 90, 113, 172, 83, 85, 85,
- 85, 81, 169, 82, 82, 82, 89, 175, 89, 83,
- 176, 90, 90, 90, 83, 81, 185, 84, 84, 84,
- 83, 188, 101, 189, 191, 219, 192, 193, 83, 101,
- 234, 194, 83, 178, 235, 222, 179, 83, 223, 185,
- 191, 220, 224, 277, 185, 245, 246, 188, 194, 475,
- 189, 83, 191, 192, 476, 193, 199, 101, 194, 248,
- 276, 101, 249, 250, 252, 101, 280, 200, 191, 275,
- 240, 253, 275, 101, 254, 271, 284, 101, 276, 101,
- 183, 198, 198, 198, 433, 434, 276, 290, 198, 198,
- 198, 198, 198, 198, 262, 287, 292, 275, 263, 284,
- 278, 288, 264, 294, 279, 332, 284, 255, 256, 257,
- 290, 198, 198, 198, 198, 198, 198, 382, 258, 292,
- 259, 303, 260, 287, 376, 261, 376, 304, 288, 297,
- 294, 295, 295, 295, 357, 380, 450, 358, 295, 295,
- 295, 295, 295, 295, 387, 381, 382, 376, 390, 377,
- 407, 384, 385, 382, 408, 482, 333, 799, 622, 334,
- 386, 295, 295, 295, 295, 295, 295, 387, 420, 490,
- 440, 491, 482, 421, 575, 503, 390, 393, 393, 393,
- 441, 800, 394, 482, 393, 393, 393, 393, 393, 393,
- 504, 655, 451, 576, 512, 623, 490, 571, 491, 513,
- 492, 575, 577, 654, 644, 656, 801, 393, 393, 393,
- 393, 393, 393, 645, 655, 657, 660, 736, 802, 422,
- 803, 576, 661, 718, 423, 45, 45, 45, 804, 805,
- 719, 654, 45, 45, 45, 45, 45, 45, 720, 721,
- 776, 725, 806, 807, 777, 736, 722, 726, 808, 809,
- 810, 811, 812, 813, 814, 45, 45, 45, 45, 45,
- 45, 815, 816, 817, 818, 819, 820, 821, 822, 823,
- 824, 825, 826, 810, 827, 828, 809, 829, 830, 831,
- 832, 833, 834, 835, 836, 837, 840, 841, 842, 843,
- 838, 844, 845, 846, 847, 848, 849, 850, 851, 852,
- 853, 855, 856, 857, 858, 859, 860, 861, 862, 863,
- 864, 854, 865, 866, 867, 868, 869, 870, 871, 872,
- 873, 874, 875, 876, 877, 878, 879, 880, 882, 881,
- 883, 884, 885, 886, 887, 888, 889, 890, 891, 892,
- 893, 839, 894, 895, 896, 897, 898, 899, 900, 901,
- 902, 903, 904, 905, 906, 880, 881, 907, 909, 910,
- 911, 912, 908, 913, 914, 915, 916, 917, 918, 919,
- 920, 921, 922, 923, 924, 925, 926, 927, 928, 929,
- 930, 931, 932, 933, 934, 935, 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, 945, 968,
- 969, 970, 971, 972, 946, 973, 974, 975, 976, 977,
- 978, 979, 980, 981, 982, 983, 984, 985, 986, 987,
- 988, 990, 991, 992, 993, 994, 995, 996, 997, 998,
- 999, 1000, 1001, 1002, 1003, 1004, 1005, 1007, 1008, 1009,
- 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019,
- 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1030,
- 1001, 1031, 1032, 1033, 1034, 1035, 1029, 1036, 1037, 1038,
- 1039, 989, 1040, 1041, 1042, 1043, 1044, 1045, 1006, 1046,
- 1047, 1049, 1050, 1051, 1052, 1048, 1053, 1054, 1055, 1056,
- 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066,
- 1067, 1068, 1069, 1070, 1071, 1050, 1072, 1073, 1074, 1075,
- 1076, 1077, 1078, 1079, 1080, 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, 1108, 1109, 1110, 1111, 1112, 1086, 1113, 1114,
- 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124,
- 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134,
- 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144,
- 1145, 1146, 1147, 1148, 1149, 1122, 1150, 1151, 1152, 1153,
- 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163,
- 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173,
- 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
- 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193,
- 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 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, 12, 12, 12, 12, 12, 36, 36, 36, 36,
- 36, 80, 282, 80, 80, 80, 99, 379, 99, 479,
- 99, 101, 101, 101, 101, 101, 116, 116, 116, 116,
- 116, 174, 101, 174, 174, 174, 196, 196, 196, 793,
- 792, 791, 790, 789, 788, 787, 786, 785, 784, 783,
- 782, 781, 780, 779, 778, 775, 774, 773, 772, 771,
- 770, 769, 768, 767, 766, 765, 764, 763, 762, 761,
- 760, 759, 758, 757, 756, 755, 754, 753, 752, 751,
- 750, 749, 748, 747, 746, 745, 744, 743, 742, 741,
- 740, 739, 738, 737, 735, 734, 733, 732, 731, 730,
- 729, 728, 727, 724, 723, 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, 675, 674, 673,
- 672, 671, 670, 669, 668, 667, 666, 665, 664, 663,
- 662, 659, 658, 653, 652, 651, 650, 649, 648, 647,
- 646, 643, 642, 641, 640, 639, 638, 637, 636, 635,
- 634, 633, 632, 631, 630, 629, 628, 627, 626, 625,
- 624, 621, 620, 619, 618, 617, 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, 588, 587, 586, 585, 584, 583,
- 582, 581, 580, 579, 578, 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, 521, 520,
- 519, 518, 517, 516, 515, 514, 511, 510, 509, 508,
- 507, 506, 505, 502, 501, 500, 499, 498, 497, 496,
- 495, 494, 493, 489, 488, 487, 486, 485, 484, 483,
- 481, 480, 478, 477, 474, 473, 472, 471, 470, 469,
- 468, 467, 466, 465, 464, 463, 462, 461, 460, 459,
- 458, 457, 456, 455, 454, 453, 452, 449, 448, 447,
- 446, 445, 444, 443, 442, 439, 438, 437, 436, 435,
- 432, 431, 430, 429, 428, 427, 426, 425, 424, 419,
- 418, 417, 416, 415, 414, 413, 412, 411, 410, 409,
- 406, 405, 404, 403, 400, 399, 398, 397, 396, 395,
- 392, 391, 389, 388, 383, 378, 375, 374, 373, 372,
- 371, 370, 369, 368, 367, 366, 365, 364, 363, 362,
- 361, 360, 359, 356, 355, 354, 353, 352, 351, 350,
- 349, 348, 347, 346, 345, 344, 341, 340, 339, 338,
- 337, 336, 335, 331, 330, 329, 328, 327, 326, 325,
- 324, 323, 322, 321, 320, 319, 318, 317, 316, 315,
- 314, 313, 312, 311, 310, 309, 308, 307, 306, 305,
- 302, 301, 300, 299, 298, 296, 197, 293, 291, 289,
- 286, 285, 283, 281, 274, 273, 272, 270, 269, 268,
- 267, 266, 265, 251, 247, 244, 243, 242, 241, 239,
- 238, 237, 236, 233, 232, 231, 230, 229, 228, 227,
- 226, 225, 221, 218, 215, 214, 213, 212, 209, 208,
- 207, 204, 203, 202, 201, 197, 190, 187, 186, 184,
- 182, 181, 173, 160, 142, 136, 121, 110, 107, 106,
- 104, 43, 100, 98, 97, 88, 43, 1245, 11, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245
- } ;
- static const flex_int16_t yy_chk[1681] =
- { 0,
- 0, 1, 1, 1, 0, 1, 1, 0, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 21, 243,
- 3, 3, 3, 21, 1, 1, 3, 0, 0, 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, 718, 8,
- 8, 8, 1, 8, 57, 27, 28, 243, 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, 719, 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, 720, 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, 115, 70, 45, 63, 45,
- 45, 55, 45, 96, 45, 45, 45, 91, 58, 69,
- 69, 45, 45, 69, 45, 58, 70, 721, 115, 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, 177,
- 71, 58, 62, 92, 101, 62, 62, 77, 78, 58,
- 72, 304, 133, 58, 133, 58, 58, 77, 62, 71,
- 72, 71, 177, 71, 76, 72, 72, 76, 304, 92,
- 77, 78, 77, 722, 76, 76, 81, 81, 81, 101,
- 76, 78, 90, 90, 90, 77, 78, 81, 85, 85,
- 85, 82, 77, 82, 82, 82, 83, 94, 83, 85,
- 95, 83, 83, 83, 82, 84, 105, 84, 84, 84,
- 81, 108, 103, 109, 111, 135, 112, 113, 84, 103,
- 147, 114, 85, 94, 147, 137, 95, 82, 137, 119,
- 152, 135, 137, 180, 105, 157, 157, 108, 170, 374,
- 109, 84, 111, 112, 374, 113, 119, 103, 114, 159,
- 176, 103, 159, 159, 161, 103, 180, 119, 152, 175,
- 152, 161, 178, 103, 162, 170, 185, 103, 179, 103,
- 103, 118, 118, 118, 332, 332, 176, 191, 118, 118,
- 118, 118, 118, 118, 163, 188, 193, 175, 163, 185,
- 178, 189, 163, 195, 179, 235, 200, 162, 162, 162,
- 191, 118, 118, 118, 118, 118, 118, 284, 162, 193,
- 162, 206, 162, 188, 275, 162, 278, 206, 189, 200,
- 195, 198, 198, 198, 257, 283, 348, 257, 198, 198,
- 198, 198, 198, 198, 287, 283, 284, 275, 290, 278,
- 310, 286, 286, 297, 310, 382, 235, 723, 540, 235,
- 286, 198, 198, 198, 198, 198, 198, 287, 322, 392,
- 338, 392, 394, 322, 490, 407, 290, 295, 295, 295,
- 338, 724, 297, 382, 295, 295, 295, 295, 295, 295,
- 407, 576, 348, 491, 416, 540, 392, 492, 392, 416,
- 394, 490, 492, 575, 564, 577, 725, 295, 295, 295,
- 295, 295, 295, 564, 576, 577, 580, 655, 726, 322,
- 728, 491, 580, 639, 322, 393, 393, 393, 729, 730,
- 639, 575, 393, 393, 393, 393, 393, 393, 640, 640,
- 700, 643, 731, 732, 700, 655, 640, 643, 733, 735,
- 736, 737, 738, 739, 740, 393, 393, 393, 393, 393,
- 393, 741, 742, 743, 744, 745, 746, 747, 748, 749,
- 750, 751, 753, 736, 754, 755, 735, 756, 757, 758,
- 759, 760, 761, 763, 764, 765, 766, 768, 769, 770,
- 765, 771, 772, 773, 774, 775, 776, 777, 778, 779,
- 780, 781, 783, 784, 785, 786, 788, 789, 790, 791,
- 792, 780, 793, 794, 795, 796, 797, 798, 800, 801,
- 802, 803, 804, 805, 806, 807, 808, 809, 811, 810,
- 812, 813, 814, 815, 817, 818, 819, 820, 821, 822,
- 824, 765, 825, 826, 827, 828, 829, 830, 831, 832,
- 833, 834, 835, 836, 838, 809, 810, 839, 840, 841,
- 842, 843, 839, 844, 845, 846, 847, 848, 849, 850,
- 851, 852, 853, 854, 855, 856, 857, 858, 860, 861,
- 862, 863, 864, 865, 867, 868, 870, 871, 872, 873,
- 874, 875, 876, 877, 879, 880, 881, 882, 883, 884,
- 886, 887, 888, 889, 892, 893, 894, 895, 896, 897,
- 898, 899, 900, 901, 902, 903, 904, 906, 880, 908,
- 910, 911, 912, 913, 881, 914, 916, 917, 918, 920,
- 921, 922, 923, 926, 927, 928, 929, 930, 931, 932,
- 933, 934, 935, 936, 937, 938, 939, 940, 941, 942,
- 943, 944, 945, 946, 947, 949, 950, 951, 952, 953,
- 954, 955, 956, 957, 958, 960, 961, 962, 963, 964,
- 965, 966, 967, 968, 969, 970, 971, 972, 973, 974,
- 945, 978, 979, 980, 981, 982, 973, 983, 984, 985,
- 987, 933, 988, 989, 991, 993, 996, 997, 950, 998,
- 999, 1000, 1001, 1003, 1004, 999, 1006, 1007, 1008, 1009,
- 1010, 1011, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
- 1021, 1023, 1024, 1026, 1027, 1001, 1028, 1029, 1031, 1032,
- 1033, 1034, 1037, 1039, 1040, 1042, 1043, 1044, 1046, 1048,
- 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059,
- 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
- 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1050, 1077, 1078,
- 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1090,
- 1093, 1094, 1097, 1098, 1099, 1100, 1101, 1102, 1104, 1106,
- 1108, 1109, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118,
- 1119, 1121, 1122, 1123, 1125, 1086, 1126, 1127, 1128, 1129,
- 1130, 1132, 1133, 1135, 1136, 1137, 1138, 1139, 1140, 1141,
- 1142, 1145, 1148, 1149, 1151, 1152, 1154, 1155, 1156, 1157,
- 1159, 1160, 1161, 1162, 1163, 1165, 1166, 1167, 1168, 1169,
- 1170, 1171, 1173, 1174, 1175, 1177, 1178, 1179, 1180, 1181,
- 1182, 1183, 1184, 1185, 1187, 1189, 1190, 1191, 1193, 1194,
- 1195, 1197, 1198, 1199, 1201, 1202, 1203, 1204, 1205, 1206,
- 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216,
- 1217, 1218, 1219, 1221, 1222, 1223, 1224, 1225, 1226, 1230,
- 1231, 1232, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1242,
- 1243, 1246, 1246, 1246, 1246, 1246, 1247, 1247, 1247, 1247,
- 1247, 1248, 1254, 1248, 1248, 1248, 1249, 1255, 1249, 1256,
- 1249, 1250, 1250, 1250, 1250, 1250, 1251, 1251, 1251, 1251,
- 1251, 1252, 1257, 1252, 1252, 1252, 1253, 1253, 1253, 717,
- 716, 715, 714, 713, 712, 711, 710, 709, 708, 707,
- 705, 704, 703, 702, 701, 699, 698, 697, 694, 693,
- 692, 689, 688, 687, 686, 685, 684, 683, 682, 681,
- 680, 679, 678, 677, 675, 674, 673, 672, 671, 670,
- 669, 668, 667, 666, 665, 664, 663, 662, 661, 660,
- 659, 658, 657, 656, 654, 652, 651, 650, 649, 648,
- 647, 646, 645, 642, 641, 638, 637, 636, 635, 634,
- 633, 632, 631, 630, 629, 628, 627, 626, 625, 624,
- 623, 621, 620, 619, 618, 617, 616, 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, 588, 587, 586, 585, 584, 583, 582,
- 581, 579, 578, 574, 573, 572, 570, 569, 567, 566,
- 565, 562, 561, 560, 559, 558, 557, 556, 555, 553,
- 552, 551, 550, 549, 548, 547, 546, 544, 543, 542,
- 541, 539, 538, 537, 536, 535, 533, 532, 531, 530,
- 529, 528, 527, 526, 525, 524, 523, 522, 521, 520,
- 519, 518, 517, 516, 515, 514, 513, 511, 510, 509,
- 508, 507, 506, 505, 504, 503, 502, 501, 500, 499,
- 498, 497, 496, 495, 494, 488, 486, 483, 482, 481,
- 480, 478, 477, 476, 474, 471, 470, 469, 468, 467,
- 466, 465, 464, 463, 462, 461, 460, 459, 458, 457,
- 456, 455, 454, 453, 451, 449, 448, 447, 446, 445,
- 444, 443, 442, 441, 440, 438, 437, 436, 435, 434,
- 433, 432, 431, 430, 429, 428, 427, 426, 425, 424,
- 423, 422, 421, 419, 418, 417, 415, 414, 413, 412,
- 411, 409, 408, 406, 405, 403, 402, 401, 400, 398,
- 397, 396, 395, 390, 389, 387, 386, 385, 384, 383,
- 381, 380, 378, 375, 373, 371, 370, 369, 368, 367,
- 366, 365, 364, 363, 362, 361, 360, 359, 358, 357,
- 356, 355, 354, 352, 351, 350, 349, 347, 346, 345,
- 344, 343, 342, 341, 339, 337, 336, 335, 334, 333,
- 331, 330, 329, 328, 327, 326, 325, 324, 323, 321,
- 320, 319, 318, 317, 316, 315, 314, 313, 312, 311,
- 309, 308, 307, 306, 303, 302, 301, 300, 299, 298,
- 294, 292, 289, 288, 285, 281, 274, 273, 272, 271,
- 270, 269, 268, 267, 266, 265, 264, 263, 262, 261,
- 260, 259, 258, 256, 255, 254, 253, 252, 251, 250,
- 249, 248, 247, 246, 245, 244, 242, 241, 240, 239,
- 238, 237, 236, 234, 233, 232, 231, 230, 229, 228,
- 227, 225, 224, 223, 222, 221, 220, 219, 218, 217,
- 216, 215, 214, 213, 212, 211, 210, 209, 208, 207,
- 205, 204, 203, 202, 201, 199, 196, 194, 192, 190,
- 187, 186, 184, 181, 173, 172, 171, 169, 168, 167,
- 166, 165, 164, 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, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245,
- 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245
- } ;
- 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[155] =
- { 0,
- 139, 141, 143, 148, 149, 154, 155, 156, 168, 171,
- 176, 183, 192, 201, 210, 219, 229, 238, 247, 256,
- 265, 274, 285, 294, 303, 312, 321, 331, 341, 351,
- 361, 371, 381, 391, 401, 411, 422, 433, 444, 453,
- 463, 472, 481, 496, 512, 521, 530, 539, 548, 558,
- 567, 577, 586, 595, 604, 614, 623, 632, 641, 650,
- 660, 669, 678, 687, 696, 705, 714, 723, 732, 741,
- 750, 760, 771, 781, 790, 800, 810, 820, 830, 840,
- 849, 859, 868, 877, 886, 895, 905, 915, 925, 934,
- 943, 952, 961, 970, 979, 988, 997, 1006, 1015, 1024,
- 1033, 1042, 1051, 1060, 1069, 1078, 1087, 1096, 1105, 1114,
- 1123, 1132, 1141, 1150, 1159, 1168, 1177, 1187, 1197, 1207,
- 1217, 1227, 1237, 1247, 1257, 1267, 1276, 1285, 1294, 1303,
- 1312, 1321, 1332, 1343, 1356, 1367, 1380, 1478, 1483, 1488,
- 1493, 1494, 1495, 1496, 1497, 1498, 1500, 1518, 1531, 1536,
- 1540, 1542, 1544, 1546
- } ;
- /* 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"
- #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 1621 "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 90 "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 1647 "dhcp4_lexer.cc"
- #line 1648 "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 96 "dhcp4_lexer.ll"
- #line 100 "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 1974 "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 >= 1246 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- ++yy_cp;
- }
- while ( yy_current_state != 1245 );
- 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 < 155 )
- fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
- (long)yy_rule_linenum[yy_act], yytext );
- else if ( yy_act == 155 )
- fprintf( stderr, "--accepting default rule (\"%s\")\n",
- yytext );
- else if ( yy_act == 156 )
- 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 139 "dhcp4_lexer.ll"
- ;
- YY_BREAK
- case 2:
- YY_RULE_SETUP
- #line 141 "dhcp4_lexer.ll"
- ;
- YY_BREAK
- case 3:
- YY_RULE_SETUP
- #line 143 "dhcp4_lexer.ll"
- {
- BEGIN(COMMENT);
- comment_start_line = driver.loc_.end.line;;
- }
- YY_BREAK
- case 4:
- YY_RULE_SETUP
- #line 148 "dhcp4_lexer.ll"
- BEGIN(INITIAL);
- YY_BREAK
- case 5:
- YY_RULE_SETUP
- #line 149 "dhcp4_lexer.ll"
- ;
- YY_BREAK
- case YY_STATE_EOF(COMMENT):
- #line 150 "dhcp4_lexer.ll"
- {
- isc_throw(Dhcp4ParseError, "Comment not closed. (/* in line " << comment_start_line);
- }
- YY_BREAK
- case 6:
- YY_RULE_SETUP
- #line 154 "dhcp4_lexer.ll"
- BEGIN(DIR_ENTER);
- YY_BREAK
- case 7:
- YY_RULE_SETUP
- #line 155 "dhcp4_lexer.ll"
- BEGIN(DIR_INCLUDE);
- YY_BREAK
- case 8:
- YY_RULE_SETUP
- #line 156 "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 165 "dhcp4_lexer.ll"
- {
- isc_throw(Dhcp4ParseError, "Directive not closed.");
- }
- YY_BREAK
- case 9:
- YY_RULE_SETUP
- #line 168 "dhcp4_lexer.ll"
- BEGIN(INITIAL);
- YY_BREAK
- case 10:
- YY_RULE_SETUP
- #line 171 "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 176 "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 183 "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 192 "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 201 "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 210 "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 219 "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 229 "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 18:
- YY_RULE_SETUP
- #line 238 "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 19:
- YY_RULE_SETUP
- #line 247 "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 20:
- YY_RULE_SETUP
- #line 256 "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 21:
- YY_RULE_SETUP
- #line 265 "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 22:
- YY_RULE_SETUP
- #line 274 "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 23:
- YY_RULE_SETUP
- #line 285 "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 24:
- YY_RULE_SETUP
- #line 294 "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 25:
- YY_RULE_SETUP
- #line 303 "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 26:
- YY_RULE_SETUP
- #line 312 "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 27:
- YY_RULE_SETUP
- #line 321 "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 28:
- YY_RULE_SETUP
- #line 331 "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 29:
- YY_RULE_SETUP
- #line 341 "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 30:
- YY_RULE_SETUP
- #line 351 "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 31:
- YY_RULE_SETUP
- #line 361 "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 32:
- YY_RULE_SETUP
- #line 371 "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 33:
- YY_RULE_SETUP
- #line 381 "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 34:
- YY_RULE_SETUP
- #line 391 "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 35:
- YY_RULE_SETUP
- #line 401 "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 36:
- YY_RULE_SETUP
- #line 411 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case 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 37:
- YY_RULE_SETUP
- #line 422 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case 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 38:
- YY_RULE_SETUP
- #line 433 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case 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 39:
- YY_RULE_SETUP
- #line 444 "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 40:
- YY_RULE_SETUP
- #line 453 "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 41:
- YY_RULE_SETUP
- #line 463 "dhcp4_lexer.ll"
- {
- switch (driver.ctx_) {
- case Parser4Context::DHCP4:
- return Dhcp4Parser::make_SHARED_NETWORKS(driver.loc_);
- default:
- return Dhcp4Parser::make_STRING("shared-networks", driver.loc_);
- }
- }
- YY_BREAK
- case 42:
- YY_RULE_SETUP
- #line 472 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- return isc::dhcp::Dhcp4Parser::make_OPTION_DEF(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("option-def", driver.loc_);
- }
- }
- YY_BREAK
- case 43:
- YY_RULE_SETUP
- #line 481 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::POOLS:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- case isc::dhcp::Parser4Context::CLIENT_CLASS:
- case Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_OPTION_DATA(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("option-data", driver.loc_);
- }
- }
- YY_BREAK
- case 44:
- YY_RULE_SETUP
- #line 496 "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 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 45:
- YY_RULE_SETUP
- #line 512 "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 46:
- YY_RULE_SETUP
- #line 521 "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 47:
- YY_RULE_SETUP
- #line 530 "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 48:
- YY_RULE_SETUP
- #line 539 "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 49:
- YY_RULE_SETUP
- #line 548 "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 50:
- YY_RULE_SETUP
- #line 558 "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 51:
- YY_RULE_SETUP
- #line 567 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_INTERFACE(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("interface", driver.loc_);
- }
- }
- YY_BREAK
- case 52:
- YY_RULE_SETUP
- #line 577 "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 53:
- YY_RULE_SETUP
- #line 586 "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 54:
- YY_RULE_SETUP
- #line 595 "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 55:
- YY_RULE_SETUP
- #line 604 "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 56:
- YY_RULE_SETUP
- #line 614 "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 57:
- YY_RULE_SETUP
- #line 623 "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 58:
- YY_RULE_SETUP
- #line 632 "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 59:
- YY_RULE_SETUP
- #line 641 "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 60:
- YY_RULE_SETUP
- #line 650 "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 61:
- YY_RULE_SETUP
- #line 660 "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 62:
- YY_RULE_SETUP
- #line 669 "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 63:
- YY_RULE_SETUP
- #line 678 "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 64:
- YY_RULE_SETUP
- #line 687 "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 65:
- YY_RULE_SETUP
- #line 696 "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 66:
- YY_RULE_SETUP
- #line 705 "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 67:
- YY_RULE_SETUP
- #line 714 "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 68:
- YY_RULE_SETUP
- #line 723 "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 69:
- YY_RULE_SETUP
- #line 732 "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 70:
- YY_RULE_SETUP
- #line 741 "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 71:
- YY_RULE_SETUP
- #line 750 "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 72:
- YY_RULE_SETUP
- #line 760 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- case Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("client-class", driver.loc_);
- }
- }
- YY_BREAK
- case 73:
- YY_RULE_SETUP
- #line 771 "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 74:
- YY_RULE_SETUP
- #line 781 "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 75:
- YY_RULE_SETUP
- #line 790 "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 76:
- YY_RULE_SETUP
- #line 800 "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 77:
- YY_RULE_SETUP
- #line 810 "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 78:
- YY_RULE_SETUP
- #line 820 "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 79:
- YY_RULE_SETUP
- #line 830 "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 80:
- YY_RULE_SETUP
- #line 840 "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 81:
- YY_RULE_SETUP
- #line 849 "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 82:
- YY_RULE_SETUP
- #line 859 "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 83:
- YY_RULE_SETUP
- #line 868 "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 84:
- YY_RULE_SETUP
- #line 877 "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 85:
- YY_RULE_SETUP
- #line 886 "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 86:
- YY_RULE_SETUP
- #line 895 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- case Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_RELAY(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("relay", driver.loc_);
- }
- }
- YY_BREAK
- case 87:
- YY_RULE_SETUP
- #line 905 "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 88:
- YY_RULE_SETUP
- #line 915 "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 89:
- YY_RULE_SETUP
- #line 925 "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 90:
- YY_RULE_SETUP
- #line 934 "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 91:
- YY_RULE_SETUP
- #line 943 "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 92:
- YY_RULE_SETUP
- #line 952 "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 93:
- YY_RULE_SETUP
- #line 961 "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 94:
- YY_RULE_SETUP
- #line 970 "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 95:
- YY_RULE_SETUP
- #line 979 "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 96:
- YY_RULE_SETUP
- #line 988 "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 97:
- YY_RULE_SETUP
- #line 997 "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 98:
- YY_RULE_SETUP
- #line 1006 "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 99:
- YY_RULE_SETUP
- #line 1015 "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 100:
- YY_RULE_SETUP
- #line 1024 "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 101:
- YY_RULE_SETUP
- #line 1033 "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 102:
- YY_RULE_SETUP
- #line 1042 "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 103:
- YY_RULE_SETUP
- #line 1051 "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 104:
- YY_RULE_SETUP
- #line 1060 "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 105:
- YY_RULE_SETUP
- #line 1069 "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 106:
- YY_RULE_SETUP
- #line 1078 "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 107:
- YY_RULE_SETUP
- #line 1087 "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 108:
- YY_RULE_SETUP
- #line 1096 "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 109:
- YY_RULE_SETUP
- #line 1105 "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 110:
- YY_RULE_SETUP
- #line 1114 "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 111:
- YY_RULE_SETUP
- #line 1123 "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 112:
- YY_RULE_SETUP
- #line 1132 "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 113:
- YY_RULE_SETUP
- #line 1141 "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 114:
- YY_RULE_SETUP
- #line 1150 "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 115:
- YY_RULE_SETUP
- #line 1159 "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 116:
- YY_RULE_SETUP
- #line 1168 "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 117:
- YY_RULE_SETUP
- #line 1177 "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 118:
- YY_RULE_SETUP
- #line 1187 "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 119:
- YY_RULE_SETUP
- #line 1197 "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 120:
- YY_RULE_SETUP
- #line 1207 "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 121:
- YY_RULE_SETUP
- #line 1217 "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 122:
- YY_RULE_SETUP
- #line 1227 "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 123:
- YY_RULE_SETUP
- #line 1237 "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 124:
- YY_RULE_SETUP
- #line 1247 "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 125:
- YY_RULE_SETUP
- #line 1257 "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 126:
- YY_RULE_SETUP
- #line 1267 "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 127:
- YY_RULE_SETUP
- #line 1276 "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 128:
- YY_RULE_SETUP
- #line 1285 "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 129:
- YY_RULE_SETUP
- #line 1294 "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 130:
- YY_RULE_SETUP
- #line 1303 "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 131:
- YY_RULE_SETUP
- #line 1312 "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 132:
- YY_RULE_SETUP
- #line 1321 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case Parser4Context::SHARED_NETWORK:
- 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 133:
- YY_RULE_SETUP
- #line 1332 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case 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 134:
- YY_RULE_SETUP
- #line 1343 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::DHCP4:
- case isc::dhcp::Parser4Context::SUBNET4:
- case isc::dhcp::Parser4Context::RESERVATIONS:
- case isc::dhcp::Parser4Context::CLIENT_CLASSES:
- case Parser4Context::SHARED_NETWORK:
- return isc::dhcp::Dhcp4Parser::make_NEXT_SERVER(driver.loc_);
- default:
- return isc::dhcp::Dhcp4Parser::make_STRING("next-server", driver.loc_);
- }
- }
- YY_BREAK
- case 135:
- YY_RULE_SETUP
- #line 1356 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- 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 136:
- YY_RULE_SETUP
- #line 1367 "dhcp4_lexer.ll"
- {
- switch(driver.ctx_) {
- case isc::dhcp::Parser4Context::SUBNET4:
- 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 137:
- YY_RULE_SETUP
- #line 1380 "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 138:
- /* rule 138 can match eol */
- YY_RULE_SETUP
- #line 1478 "dhcp4_lexer.ll"
- {
- /* Bad string with a forbidden control character inside */
- driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
- }
- YY_BREAK
- case 139:
- /* rule 139 can match eol */
- YY_RULE_SETUP
- #line 1483 "dhcp4_lexer.ll"
- {
- /* Bad string with a bad escape inside */
- driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
- }
- YY_BREAK
- case 140:
- YY_RULE_SETUP
- #line 1488 "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 141:
- YY_RULE_SETUP
- #line 1493 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_LSQUARE_BRACKET(driver.loc_); }
- YY_BREAK
- case 142:
- YY_RULE_SETUP
- #line 1494 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_RSQUARE_BRACKET(driver.loc_); }
- YY_BREAK
- case 143:
- YY_RULE_SETUP
- #line 1495 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_LCURLY_BRACKET(driver.loc_); }
- YY_BREAK
- case 144:
- YY_RULE_SETUP
- #line 1496 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_RCURLY_BRACKET(driver.loc_); }
- YY_BREAK
- case 145:
- YY_RULE_SETUP
- #line 1497 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_COMMA(driver.loc_); }
- YY_BREAK
- case 146:
- YY_RULE_SETUP
- #line 1498 "dhcp4_lexer.ll"
- { return isc::dhcp::Dhcp4Parser::make_COLON(driver.loc_); }
- YY_BREAK
- case 147:
- YY_RULE_SETUP
- #line 1500 "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 148:
- YY_RULE_SETUP
- #line 1518 "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 149:
- YY_RULE_SETUP
- #line 1531 "dhcp4_lexer.ll"
- {
- string tmp(yytext);
- return isc::dhcp::Dhcp4Parser::make_BOOLEAN(tmp == "true", driver.loc_);
- }
- YY_BREAK
- case 150:
- YY_RULE_SETUP
- #line 1536 "dhcp4_lexer.ll"
- {
- return isc::dhcp::Dhcp4Parser::make_NULL_TYPE(driver.loc_);
- }
- YY_BREAK
- case 151:
- YY_RULE_SETUP
- #line 1540 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
- YY_BREAK
- case 152:
- YY_RULE_SETUP
- #line 1542 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
- YY_BREAK
- case 153:
- YY_RULE_SETUP
- #line 1544 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
- YY_BREAK
- case 154:
- YY_RULE_SETUP
- #line 1546 "dhcp4_lexer.ll"
- driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
- YY_BREAK
- case YY_STATE_EOF(INITIAL):
- #line 1548 "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 155:
- YY_RULE_SETUP
- #line 1571 "dhcp4_lexer.ll"
- ECHO;
- YY_BREAK
- #line 3966 "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 >= 1246 )
- 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 >= 1246 )
- yy_c = yy_meta[yy_c];
- }
- yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
- yy_is_jam = (yy_current_state == 1245);
- 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 1571 "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?"); }
- };
- }
|