lexer.lex.c 116 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201
  1. #define YY_INT_ALIGNED short int
  2. /* A lexical scanner generated by flex */
  3. #define FLEX_SCANNER
  4. #define YY_FLEX_MAJOR_VERSION 2
  5. #define YY_FLEX_MINOR_VERSION 6
  6. #define YY_FLEX_SUBMINOR_VERSION 4
  7. #if YY_FLEX_SUBMINOR_VERSION > 0
  8. #define FLEX_BETA
  9. #endif
  10. /* First, we deal with platform-specific or compiler-specific issues. */
  11. /* begin standard C headers. */
  12. #include <stdio.h>
  13. #include <string.h>
  14. #include <errno.h>
  15. #include <stdlib.h>
  16. /* end standard C headers. */
  17. /* flex integer type definitions */
  18. #ifndef FLEXINT_H
  19. #define FLEXINT_H
  20. /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
  21. #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  22. /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  23. * if you want the limit (max/min) macros for int types.
  24. */
  25. #ifndef __STDC_LIMIT_MACROS
  26. #define __STDC_LIMIT_MACROS 1
  27. #endif
  28. #include <inttypes.h>
  29. typedef int8_t flex_int8_t;
  30. typedef uint8_t flex_uint8_t;
  31. typedef int16_t flex_int16_t;
  32. typedef uint16_t flex_uint16_t;
  33. typedef int32_t flex_int32_t;
  34. typedef uint32_t flex_uint32_t;
  35. #else
  36. typedef signed char flex_int8_t;
  37. typedef short int flex_int16_t;
  38. typedef int flex_int32_t;
  39. typedef unsigned char flex_uint8_t;
  40. typedef unsigned short int flex_uint16_t;
  41. typedef unsigned int flex_uint32_t;
  42. /* Limits of integral types. */
  43. #ifndef INT8_MIN
  44. #define INT8_MIN (-128)
  45. #endif
  46. #ifndef INT16_MIN
  47. #define INT16_MIN (-32767-1)
  48. #endif
  49. #ifndef INT32_MIN
  50. #define INT32_MIN (-2147483647-1)
  51. #endif
  52. #ifndef INT8_MAX
  53. #define INT8_MAX (127)
  54. #endif
  55. #ifndef INT16_MAX
  56. #define INT16_MAX (32767)
  57. #endif
  58. #ifndef INT32_MAX
  59. #define INT32_MAX (2147483647)
  60. #endif
  61. #ifndef UINT8_MAX
  62. #define UINT8_MAX (255U)
  63. #endif
  64. #ifndef UINT16_MAX
  65. #define UINT16_MAX (65535U)
  66. #endif
  67. #ifndef UINT32_MAX
  68. #define UINT32_MAX (4294967295U)
  69. #endif
  70. #ifndef SIZE_MAX
  71. #define SIZE_MAX (~(size_t)0)
  72. #endif
  73. #endif /* ! C99 */
  74. #endif /* ! FLEXINT_H */
  75. /* begin standard C++ headers. */
  76. /* TODO: this is always defined, so inline it */
  77. #define yyconst const
  78. #if defined(__GNUC__) && __GNUC__ >= 3
  79. #define yynoreturn __attribute__((__noreturn__))
  80. #else
  81. #define yynoreturn
  82. #endif
  83. /* Returned upon end-of-file. */
  84. #define YY_NULL 0
  85. /* Promotes a possibly negative, possibly signed char to an
  86. * integer in range [0..255] for use as an array index.
  87. */
  88. #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
  89. /* Enter a start condition. This macro really ought to take a parameter,
  90. * but we do it the disgusting crufty way forced on us by the ()-less
  91. * definition of BEGIN.
  92. */
  93. #define BEGIN (yy_start) = 1 + 2 *
  94. /* Translate the current start state into a value that can be later handed
  95. * to BEGIN to return to the state. The YYSTATE alias is for lex
  96. * compatibility.
  97. */
  98. #define YY_START (((yy_start) - 1) / 2)
  99. #define YYSTATE YY_START
  100. /* Action number for EOF rule of a given start state. */
  101. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  102. /* Special action meaning "start processing a new file". */
  103. #define YY_NEW_FILE yyrestart( yyin )
  104. #define YY_END_OF_BUFFER_CHAR 0
  105. /* Size of default input buffer. */
  106. #ifndef YY_BUF_SIZE
  107. #ifdef __ia64__
  108. /* On IA-64, the buffer size is 16k, not 8k.
  109. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
  110. * Ditto for the __ia64__ case accordingly.
  111. */
  112. #define YY_BUF_SIZE 32768
  113. #else
  114. #define YY_BUF_SIZE 16384
  115. #endif /* __ia64__ */
  116. #endif
  117. /* The state buf must be large enough to hold one state per character in the main buffer.
  118. */
  119. #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
  120. #ifndef YY_TYPEDEF_YY_BUFFER_STATE
  121. #define YY_TYPEDEF_YY_BUFFER_STATE
  122. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  123. #endif
  124. #ifndef YY_TYPEDEF_YY_SIZE_T
  125. #define YY_TYPEDEF_YY_SIZE_T
  126. typedef size_t yy_size_t;
  127. #endif
  128. extern int yyleng;
  129. extern FILE *yyin, *yyout;
  130. #define EOB_ACT_CONTINUE_SCAN 0
  131. #define EOB_ACT_END_OF_FILE 1
  132. #define EOB_ACT_LAST_MATCH 2
  133. /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
  134. * access to the local variable yy_act. Since yyless() is a macro, it would break
  135. * existing scanners that call yyless() from OUTSIDE yylex.
  136. * One obvious solution it to make yy_act a global. I tried that, and saw
  137. * a 5% performance hit in a non-yylineno scanner, because yy_act is
  138. * normally declared as a register variable-- so it is not worth it.
  139. */
  140. #define YY_LESS_LINENO(n) \
  141. do { \
  142. int yyl;\
  143. for ( yyl = n; yyl < yyleng; ++yyl )\
  144. if ( yytext[yyl] == '\n' )\
  145. --yylineno;\
  146. }while(0)
  147. #define YY_LINENO_REWIND_TO(dst) \
  148. do {\
  149. const char *p;\
  150. for ( p = yy_cp-1; p >= (dst); --p)\
  151. if ( *p == '\n' )\
  152. --yylineno;\
  153. }while(0)
  154. /* Return all but the first "n" matched characters back to the input stream. */
  155. #define yyless(n) \
  156. do \
  157. { \
  158. /* Undo effects of setting up yytext. */ \
  159. int yyless_macro_arg = (n); \
  160. YY_LESS_LINENO(yyless_macro_arg);\
  161. *yy_cp = (yy_hold_char); \
  162. YY_RESTORE_YY_MORE_OFFSET \
  163. (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  164. YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  165. } \
  166. while ( 0 )
  167. #define unput(c) yyunput( c, (yytext_ptr) )
  168. #ifndef YY_STRUCT_YY_BUFFER_STATE
  169. #define YY_STRUCT_YY_BUFFER_STATE
  170. struct yy_buffer_state
  171. {
  172. FILE *yy_input_file;
  173. char *yy_ch_buf; /* input buffer */
  174. char *yy_buf_pos; /* current position in input buffer */
  175. /* Size of input buffer in bytes, not including room for EOB
  176. * characters.
  177. */
  178. int yy_buf_size;
  179. /* Number of characters read into yy_ch_buf, not including EOB
  180. * characters.
  181. */
  182. int yy_n_chars;
  183. /* Whether we "own" the buffer - i.e., we know we created it,
  184. * and can realloc() it to grow it, and should free() it to
  185. * delete it.
  186. */
  187. int yy_is_our_buffer;
  188. /* Whether this is an "interactive" input source; if so, and
  189. * if we're using stdio for input, then we want to use getc()
  190. * instead of fread(), to make sure we stop fetching input after
  191. * each newline.
  192. */
  193. int yy_is_interactive;
  194. /* Whether we're considered to be at the beginning of a line.
  195. * If so, '^' rules will be active on the next match, otherwise
  196. * not.
  197. */
  198. int yy_at_bol;
  199. int yy_bs_lineno; /**< The line count. */
  200. int yy_bs_column; /**< The column count. */
  201. /* Whether to try to fill the input buffer when we reach the
  202. * end of it.
  203. */
  204. int yy_fill_buffer;
  205. int yy_buffer_status;
  206. #define YY_BUFFER_NEW 0
  207. #define YY_BUFFER_NORMAL 1
  208. /* When an EOF's been seen but there's still some text to process
  209. * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  210. * shouldn't try reading from the input source any more. We might
  211. * still have a bunch of tokens to match, though, because of
  212. * possible backing-up.
  213. *
  214. * When we actually see the EOF, we change the status to "new"
  215. * (via yyrestart()), so that the user can continue scanning by
  216. * just pointing yyin at a new input file.
  217. */
  218. #define YY_BUFFER_EOF_PENDING 2
  219. };
  220. #endif /* !YY_STRUCT_YY_BUFFER_STATE */
  221. /* Stack of input buffers. */
  222. static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
  223. static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
  224. static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
  225. /* We provide macros for accessing buffer states in case in the
  226. * future we want to put the buffer states in a more general
  227. * "scanner state".
  228. *
  229. * Returns the top of the stack, or NULL.
  230. */
  231. #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  232. ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  233. : NULL)
  234. /* Same as previous macro, but useful when we know that the buffer stack is not
  235. * NULL or when we need an lvalue. For internal use only.
  236. */
  237. #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  238. /* yy_hold_char holds the character lost when yytext is formed. */
  239. static char yy_hold_char;
  240. static int yy_n_chars; /* number of characters read into yy_ch_buf */
  241. int yyleng;
  242. /* Points to current character in buffer. */
  243. static char *yy_c_buf_p = NULL;
  244. static int yy_init = 0; /* whether we need to initialize */
  245. static int yy_start = 0; /* start state number */
  246. /* Flag which is used to allow yywrap()'s to do buffer switches
  247. * instead of setting up a fresh yyin. A bit of a hack ...
  248. */
  249. static int yy_did_buffer_switch_on_eof;
  250. void yyrestart ( FILE *input_file );
  251. void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer );
  252. YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
  253. void yy_delete_buffer ( YY_BUFFER_STATE b );
  254. void yy_flush_buffer ( YY_BUFFER_STATE b );
  255. void yypush_buffer_state ( YY_BUFFER_STATE new_buffer );
  256. void yypop_buffer_state ( void );
  257. static void yyensure_buffer_stack ( void );
  258. static void yy_load_buffer_state ( void );
  259. static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
  260. #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
  261. YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size );
  262. YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
  263. YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
  264. void *yyalloc ( yy_size_t );
  265. void *yyrealloc ( void *, yy_size_t );
  266. void yyfree ( void * );
  267. #define yy_new_buffer yy_create_buffer
  268. #define yy_set_interactive(is_interactive) \
  269. { \
  270. if ( ! YY_CURRENT_BUFFER ){ \
  271. yyensure_buffer_stack (); \
  272. YY_CURRENT_BUFFER_LVALUE = \
  273. yy_create_buffer( yyin, YY_BUF_SIZE ); \
  274. } \
  275. YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
  276. }
  277. #define yy_set_bol(at_bol) \
  278. { \
  279. if ( ! YY_CURRENT_BUFFER ){\
  280. yyensure_buffer_stack (); \
  281. YY_CURRENT_BUFFER_LVALUE = \
  282. yy_create_buffer( yyin, YY_BUF_SIZE ); \
  283. } \
  284. YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
  285. }
  286. #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
  287. /* Begin user sect3 */
  288. #define yywrap() (/*CONSTCOND*/1)
  289. #define YY_SKIP_YYWRAP
  290. typedef flex_uint8_t YY_CHAR;
  291. FILE *yyin = NULL, *yyout = NULL;
  292. typedef int yy_state_type;
  293. extern int yylineno;
  294. int yylineno = 1;
  295. extern char *yytext;
  296. #ifdef yytext_ptr
  297. #undef yytext_ptr
  298. #endif
  299. #define yytext_ptr yytext
  300. static const flex_int16_t yy_nxt[][43] =
  301. {
  302. {
  303. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  304. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  305. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  306. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  307. 0, 0, 0
  308. },
  309. {
  310. 9, 10, 11, 12, 13, 14, 15, 16, 17, 14,
  311. 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
  312. 21, 21, 27, 28, 29, 30, 21, 21, 31, 32,
  313. 21, 33, 21, 34, 35, 36, 37, 38, 21, 39,
  314. 21, 21, 40
  315. },
  316. {
  317. 9, 10, 11, 12, 13, 14, 15, 16, 17, 14,
  318. 18, 19, 20, 21, 21, 22, 23, 24, 25, 26,
  319. 21, 21, 27, 28, 29, 30, 21, 21, 31, 32,
  320. 21, 33, 21, 34, 35, 36, 37, 38, 21, 39,
  321. 21, 21, 40
  322. },
  323. {
  324. 9, 41, 42, 43, 41, 41, 41, 41, 41, 41,
  325. 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  326. 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  327. 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  328. 41, 41, 41
  329. },
  330. {
  331. 9, 41, 42, 43, 41, 41, 41, 41, 41, 41,
  332. 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  333. 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  334. 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
  335. 41, 41, 41
  336. },
  337. {
  338. 9, 44, 45, 46, 44, 44, 44, 44, 44, 44,
  339. 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  340. 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  341. 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  342. 44, 44, 44
  343. },
  344. {
  345. 9, 44, 45, 46, 44, 44, 44, 44, 44, 44,
  346. 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  347. 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  348. 44, 44, 44, 44, 44, 44, 44, 44, 44, 44,
  349. 44, 44, 44
  350. },
  351. {
  352. 9, 47, 47, 48, 47, 49, 47, 50, 47, 49,
  353. 47, 47, 47, 47, 47, 47, 47, 47, 47, 51,
  354. 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
  355. 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
  356. 47, 47, 47
  357. },
  358. {
  359. 9, 47, 47, 48, 47, 49, 47, 50, 47, 49,
  360. 47, 47, 47, 47, 47, 47, 47, 47, 47, 51,
  361. 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
  362. 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
  363. 47, 47, 47
  364. },
  365. {
  366. -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
  367. -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
  368. -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
  369. -9, -9, -9, -9, -9, -9, -9, -9, -9, -9,
  370. -9, -9, -9
  371. },
  372. {
  373. 9, -10, -10, -10, -10, -10, -10, -10, -10, -10,
  374. -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
  375. -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
  376. -10, -10, -10, -10, -10, -10, -10, -10, -10, -10,
  377. -10, -10, -10
  378. },
  379. {
  380. 9, -11, 52, -11, -11, -11, -11, -11, -11, -11,
  381. -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
  382. -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
  383. -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
  384. -11, -11, -11
  385. },
  386. {
  387. 9, -12, -12, -12, -12, -12, -12, -12, -12, -12,
  388. -12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
  389. -12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
  390. -12, -12, -12, -12, -12, -12, -12, -12, -12, -12,
  391. -12, -12, -12
  392. },
  393. {
  394. 9, -13, -13, -13, -13, -13, -13, -13, -13, -13,
  395. -13, -13, -13, -13, -13, -13, -13, 53, -13, -13,
  396. -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
  397. -13, -13, -13, -13, -13, -13, -13, -13, -13, -13,
  398. -13, -13, -13
  399. },
  400. {
  401. 9, -14, -14, -14, -14, -14, -14, -14, -14, -14,
  402. -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
  403. -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
  404. -14, -14, -14, -14, -14, -14, -14, -14, -14, -14,
  405. -14, -14, -14
  406. },
  407. {
  408. 9, 54, 54, -15, 54, 54, 54, 54, 54, 54,
  409. 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
  410. 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
  411. 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
  412. 54, 54, 54
  413. },
  414. {
  415. 9, -16, -16, -16, -16, -16, -16, 55, -16, -16,
  416. -16, -16, -16, 55, 55, -16, -16, -16, -16, -16,
  417. 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
  418. 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
  419. 55, 55, -16
  420. },
  421. {
  422. 9, -17, -17, -17, -17, -17, -17, -17, 56, -17,
  423. -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
  424. -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
  425. -17, -17, -17, -17, -17, -17, -17, -17, -17, -17,
  426. -17, -17, -17
  427. },
  428. {
  429. 9, -18, -18, -18, -18, -18, -18, -18, -18, -18,
  430. -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
  431. -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
  432. -18, -18, -18, -18, -18, -18, -18, -18, -18, -18,
  433. -18, -18, -18
  434. },
  435. {
  436. 9, -19, -19, -19, -19, -19, -19, -19, -19, -19,
  437. -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
  438. -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
  439. -19, -19, -19, -19, -19, -19, -19, -19, -19, -19,
  440. -19, -19, -19
  441. },
  442. {
  443. 9, -20, -20, -20, -20, -20, -20, -20, -20, -20,
  444. -20, -20, -20, -20, -20, -20, -20, 57, -20, -20,
  445. -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
  446. -20, -20, -20, -20, -20, -20, -20, -20, -20, -20,
  447. -20, -20, -20
  448. },
  449. {
  450. 9, -21, -21, -21, -21, -21, -21, 55, -21, -21,
  451. -21, -21, -21, 58, 58, -21, -21, -21, -21, -21,
  452. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  453. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  454. 58, 58, -21
  455. },
  456. {
  457. 9, -22, -22, -22, -22, -22, -22, -22, -22, -22,
  458. -22, -22, -22, -22, -22, -22, -22, 59, -22, -22,
  459. -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
  460. -22, -22, -22, -22, -22, -22, -22, -22, -22, -22,
  461. -22, -22, -22
  462. },
  463. {
  464. 9, -23, -23, -23, -23, -23, -23, -23, -23, -23,
  465. -23, -23, -23, -23, -23, -23, -23, 60, -23, -23,
  466. -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
  467. -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
  468. -23, -23, -23
  469. },
  470. {
  471. 9, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  472. -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  473. -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  474. -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  475. -24, -24, -24
  476. },
  477. {
  478. 9, -25, -25, -25, -25, -25, -25, -25, -25, -25,
  479. -25, -25, -25, -25, -25, -25, -25, 61, -25, -25,
  480. -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
  481. -25, -25, -25, -25, -25, -25, -25, -25, -25, -25,
  482. -25, -25, -25
  483. },
  484. {
  485. 9, -26, -26, 62, -26, -26, -26, -26, -26, -26,
  486. -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
  487. -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
  488. -26, -26, -26, -26, -26, -26, -26, -26, -26, -26,
  489. -26, -26, -26
  490. },
  491. {
  492. 9, -27, -27, -27, -27, -27, -27, 55, -27, -27,
  493. -27, -27, -27, 58, 58, -27, -27, -27, -27, -27,
  494. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  495. 58, 58, 58, 63, 58, 58, 58, 58, 58, 58,
  496. 58, 58, -27
  497. },
  498. {
  499. 9, -28, -28, -28, -28, -28, -28, 55, -28, -28,
  500. -28, -28, -28, 58, 58, -28, -28, -28, -28, -28,
  501. 58, 58, 58, 58, 58, 58, 58, 58, 64, 58,
  502. 58, 58, 58, 65, 58, 58, 58, 58, 58, 58,
  503. 58, 58, -28
  504. },
  505. {
  506. 9, -29, -29, -29, -29, -29, -29, 55, -29, -29,
  507. -29, -29, -29, 58, 58, -29, -29, -29, -29, -29,
  508. 58, 58, 58, 58, 58, 66, 58, 58, 58, 58,
  509. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  510. 58, 58, -29
  511. },
  512. {
  513. 9, -30, -30, -30, -30, -30, -30, 55, -30, -30,
  514. -30, -30, -30, 58, 58, -30, -30, -30, -30, -30,
  515. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  516. 58, 58, 67, 58, 58, 58, 58, 58, 58, 58,
  517. 58, 58, -30
  518. },
  519. {
  520. 9, -31, -31, -31, -31, -31, -31, 55, -31, -31,
  521. -31, -31, -31, 58, 58, -31, -31, -31, -31, -31,
  522. 58, 58, 58, 58, 58, 68, 58, 58, 58, 58,
  523. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  524. 58, 58, -31
  525. },
  526. {
  527. 9, -32, -32, -32, -32, -32, -32, 55, -32, -32,
  528. -32, -32, -32, 58, 58, -32, -32, -32, -32, -32,
  529. 58, 58, 58, 58, 58, 58, 69, 58, 58, 58,
  530. 58, 70, 71, 58, 58, 58, 58, 58, 58, 58,
  531. 58, 58, -32
  532. },
  533. {
  534. 9, -33, -33, -33, -33, -33, -33, 55, -33, -33,
  535. -33, -33, -33, 58, 58, -33, -33, -33, -33, -33,
  536. 58, 72, 58, 58, 58, 73, 58, 58, 58, 58,
  537. 58, 58, 58, 74, 58, 58, 58, 58, 58, 58,
  538. 58, 58, -33
  539. },
  540. {
  541. 9, -34, -34, -34, -34, -34, -34, 55, -34, -34,
  542. -34, -34, -34, 58, 58, -34, -34, -34, -34, -34,
  543. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  544. 58, 58, 75, 58, 76, 58, 58, 58, 58, 58,
  545. 58, 58, -34
  546. },
  547. {
  548. 9, -35, -35, -35, -35, -35, -35, 55, -35, -35,
  549. -35, -35, -35, 58, 58, -35, -35, -35, -35, -35,
  550. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  551. 58, 58, 58, 58, 58, 77, 58, 58, 58, 58,
  552. 58, 58, -35
  553. },
  554. {
  555. 9, -36, -36, -36, -36, -36, -36, 55, -36, -36,
  556. -36, -36, -36, 58, 58, -36, -36, -36, -36, -36,
  557. 58, 78, 58, 58, 58, 79, 58, 58, 58, 58,
  558. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  559. 58, 58, -36
  560. },
  561. {
  562. 9, -37, -37, -37, -37, -37, -37, 55, -37, -37,
  563. -37, -37, -37, 58, 58, -37, -37, -37, -37, -37,
  564. 58, 58, 58, 58, 58, 80, 58, 58, 58, 58,
  565. 58, 58, 58, 81, 58, 58, 58, 82, 58, 58,
  566. 58, 58, -37
  567. },
  568. {
  569. 9, -38, -38, -38, -38, -38, -38, 55, -38, -38,
  570. -38, -38, -38, 58, 58, -38, -38, -38, -38, -38,
  571. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  572. 58, 58, 58, 58, 58, 83, 58, 58, 58, 58,
  573. 58, 58, -38
  574. },
  575. {
  576. 9, -39, -39, -39, -39, -39, -39, 55, -39, -39,
  577. -39, -39, -39, 58, 58, -39, -39, -39, -39, -39,
  578. 58, 58, 58, 58, 58, 58, 58, 58, 58, 84,
  579. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  580. 58, 58, -39
  581. },
  582. {
  583. 9, -40, -40, -40, -40, -40, -40, -40, -40, -40,
  584. -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
  585. -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
  586. -40, -40, -40, -40, -40, -40, -40, -40, -40, -40,
  587. -40, -40, 85
  588. },
  589. {
  590. 9, 86, 87, -41, 86, 86, 86, 86, 86, 86,
  591. 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
  592. 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
  593. 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
  594. 86, 86, 86
  595. },
  596. {
  597. 9, -42, -42, -42, -42, -42, -42, -42, -42, -42,
  598. -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
  599. -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
  600. -42, -42, -42, -42, -42, -42, -42, -42, -42, -42,
  601. -42, -42, -42
  602. },
  603. {
  604. 9, -43, -43, -43, -43, -43, -43, -43, -43, -43,
  605. -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
  606. -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
  607. -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
  608. -43, -43, -43
  609. },
  610. {
  611. 9, 88, 88, -44, 88, 88, 88, 88, 88, 88,
  612. 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
  613. 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
  614. 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
  615. 88, 88, 88
  616. },
  617. {
  618. 9, -45, 89, 90, -45, -45, -45, -45, -45, -45,
  619. -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
  620. -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
  621. -45, -45, -45, -45, -45, -45, -45, -45, -45, -45,
  622. -45, -45, -45
  623. },
  624. {
  625. 9, 91, -46, -46, 91, 91, 91, 91, 91, 91,
  626. 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
  627. 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
  628. 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
  629. 91, 91, 91
  630. },
  631. {
  632. 9, 92, 92, -47, 92, -47, 92, -47, 92, -47,
  633. 92, 92, 92, 92, 92, 92, 92, 92, 92, -47,
  634. 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
  635. 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
  636. 92, 92, 92
  637. },
  638. {
  639. 9, -48, -48, -48, -48, -48, -48, -48, -48, -48,
  640. -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
  641. -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
  642. -48, -48, -48, -48, -48, -48, -48, -48, -48, -48,
  643. -48, -48, -48
  644. },
  645. {
  646. 9, -49, -49, -49, -49, -49, -49, -49, -49, -49,
  647. -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
  648. -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
  649. -49, -49, -49, -49, -49, -49, -49, -49, -49, -49,
  650. -49, -49, -49
  651. },
  652. {
  653. 9, 93, 93, -50, 93, 93, 93, 93, 93, 93,
  654. 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  655. 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  656. 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  657. 93, 93, 93
  658. },
  659. {
  660. 9, 94, 94, -51, 94, 94, 94, 94, 94, 94,
  661. 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
  662. 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
  663. 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
  664. 94, 94, 94
  665. },
  666. {
  667. 9, -52, 52, -52, -52, -52, -52, -52, -52, -52,
  668. -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
  669. -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
  670. -52, -52, -52, -52, -52, -52, -52, -52, -52, -52,
  671. -52, -52, -52
  672. },
  673. {
  674. 9, -53, -53, -53, -53, -53, -53, -53, -53, -53,
  675. -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
  676. -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
  677. -53, -53, -53, -53, -53, -53, -53, -53, -53, -53,
  678. -53, -53, -53
  679. },
  680. {
  681. 9, 54, 54, -54, 54, 54, 54, 54, 54, 54,
  682. 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
  683. 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
  684. 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
  685. 54, 54, 54
  686. },
  687. {
  688. 9, -55, -55, -55, -55, -55, -55, 55, -55, -55,
  689. -55, -55, -55, 55, 55, -55, -55, -55, -55, -55,
  690. 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
  691. 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
  692. 55, 55, -55
  693. },
  694. {
  695. 9, -56, -56, -56, -56, -56, -56, -56, -56, -56,
  696. -56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
  697. -56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
  698. -56, -56, -56, -56, -56, -56, -56, -56, -56, -56,
  699. -56, -56, -56
  700. },
  701. {
  702. 9, -57, -57, -57, -57, -57, -57, -57, -57, -57,
  703. -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
  704. -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
  705. -57, -57, -57, -57, -57, -57, -57, -57, -57, -57,
  706. -57, -57, -57
  707. },
  708. {
  709. 9, -58, -58, -58, -58, -58, -58, 55, -58, -58,
  710. -58, -58, -58, 58, 58, -58, -58, -58, -58, -58,
  711. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  712. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  713. 58, 58, -58
  714. },
  715. {
  716. 9, -59, -59, -59, -59, -59, -59, -59, -59, -59,
  717. -59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
  718. -59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
  719. -59, -59, -59, -59, -59, -59, -59, -59, -59, -59,
  720. -59, -59, -59
  721. },
  722. {
  723. 9, -60, -60, -60, -60, -60, -60, -60, -60, -60,
  724. -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
  725. -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
  726. -60, -60, -60, -60, -60, -60, -60, -60, -60, -60,
  727. -60, -60, -60
  728. },
  729. {
  730. 9, -61, -61, -61, -61, -61, -61, -61, -61, -61,
  731. -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
  732. -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
  733. -61, -61, -61, -61, -61, -61, -61, -61, -61, -61,
  734. -61, -61, -61
  735. },
  736. {
  737. 9, -62, -62, -62, -62, -62, -62, -62, -62, -62,
  738. -62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
  739. -62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
  740. -62, -62, -62, -62, -62, -62, -62, -62, -62, -62,
  741. -62, -62, -62
  742. },
  743. {
  744. 9, -63, -63, -63, -63, -63, -63, 55, -63, -63,
  745. -63, -63, -63, 58, 58, -63, -63, -63, -63, -63,
  746. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  747. 58, 58, 58, 95, 58, 58, 58, 58, 58, 58,
  748. 58, 58, -63
  749. },
  750. {
  751. 9, -64, -64, -64, -64, -64, -64, 55, -64, -64,
  752. -64, -64, -64, 58, 58, -64, -64, -64, -64, -64,
  753. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  754. 58, 58, 58, 96, 58, 58, 58, 58, 58, 58,
  755. 58, 58, -64
  756. },
  757. {
  758. 9, -65, -65, -65, -65, -65, -65, 55, -65, -65,
  759. -65, -65, -65, 58, 58, -65, -65, -65, -65, -65,
  760. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  761. 58, 97, 98, 58, 58, 58, 58, 58, 58, 58,
  762. 58, 58, -65
  763. },
  764. {
  765. 9, -66, -66, -66, -66, -66, -66, 55, -66, -66,
  766. -66, -66, -66, 58, 58, -66, -66, -66, -66, -66,
  767. 58, 58, 58, 58, 58, 58, 99, 58, 58, 58,
  768. 58, 58, 58, 58, 100, 58, 58, 58, 58, 58,
  769. 58, 58, -66
  770. },
  771. {
  772. 9, -67, -67, -67, -67, -67, -67, 55, -67, -67,
  773. -67, -67, -67, 58, 58, -67, -67, -67, -67, -67,
  774. 58, 58, 58, 58, 101, 58, 58, 58, 58, 58,
  775. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  776. 58, 58, -67
  777. },
  778. {
  779. 9, -68, -68, -68, -68, -68, -68, 55, -68, -68,
  780. -68, -68, -68, 58, 58, -68, -68, -68, -68, -68,
  781. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  782. 102, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  783. 103, 58, -68
  784. },
  785. {
  786. 9, -69, -69, -69, -69, -69, -69, 55, -69, -69,
  787. -69, -69, -69, 58, 58, -69, -69, -69, -69, -69,
  788. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  789. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  790. 58, 58, -69
  791. },
  792. {
  793. 9, -70, -70, -70, -70, -70, -70, 55, -70, -70,
  794. -70, -70, -70, 58, 58, -70, -70, -70, -70, -70,
  795. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  796. 58, 58, 58, 58, 104, 58, 58, 58, 58, 58,
  797. 58, 58, -70
  798. },
  799. {
  800. 9, -71, -71, -71, -71, -71, -71, 55, -71, -71,
  801. -71, -71, -71, 58, 58, -71, -71, -71, -71, -71,
  802. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  803. 58, 58, 58, 58, 58, 58, 58, 105, 58, 58,
  804. 58, 58, -71
  805. },
  806. {
  807. 9, -72, -72, -72, -72, -72, -72, 55, -72, -72,
  808. -72, -72, -72, 58, 58, -72, -72, -72, -72, -72,
  809. 58, 58, 58, 58, 58, 58, 58, 58, 58, 106,
  810. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  811. 58, 58, -72
  812. },
  813. {
  814. 9, -73, -73, -73, -73, -73, -73, 55, -73, -73,
  815. -73, -73, -73, 58, 58, -73, -73, -73, -73, -73,
  816. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  817. 58, 58, 107, 58, 58, 58, 58, 58, 58, 58,
  818. 58, 58, -73
  819. },
  820. {
  821. 9, -74, -74, -74, -74, -74, -74, 55, -74, -74,
  822. -74, -74, -74, 58, 58, -74, -74, -74, -74, -74,
  823. 58, 58, 58, 58, 108, 58, 58, 58, 58, 58,
  824. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  825. 58, 58, -74
  826. },
  827. {
  828. 9, -75, -75, -75, -75, -75, -75, 55, -75, -75,
  829. -75, -75, -75, 58, 58, -75, -75, -75, -75, -75,
  830. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  831. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  832. 58, 58, -75
  833. },
  834. {
  835. 9, -76, -76, -76, -76, -76, -76, 55, -76, -76,
  836. -76, -76, -76, 58, 58, -76, -76, -76, -76, -76,
  837. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  838. 58, 58, 58, 58, 58, 58, 58, 109, 58, 58,
  839. 58, 58, -76
  840. },
  841. {
  842. 9, -77, -77, -77, -77, -77, -77, 55, -77, -77,
  843. -77, -77, -77, 58, 58, -77, -77, -77, -77, -77,
  844. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  845. 58, 58, 58, 110, 58, 58, 58, 58, 58, 58,
  846. 58, 58, -77
  847. },
  848. {
  849. 9, -78, -78, -78, -78, -78, -78, 55, -78, -78,
  850. -78, -78, -78, 58, 58, -78, -78, -78, -78, -78,
  851. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  852. 58, 58, 111, 58, 58, 58, 58, 58, 58, 58,
  853. 58, 58, -78
  854. },
  855. {
  856. 9, -79, -79, -79, -79, -79, -79, 55, -79, -79,
  857. -79, -79, -79, 58, 58, -79, -79, -79, -79, -79,
  858. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  859. 58, 58, 58, 58, 58, 58, 112, 58, 58, 58,
  860. 58, 58, -79
  861. },
  862. {
  863. 9, -80, -80, -80, -80, -80, -80, 55, -80, -80,
  864. -80, -80, -80, 58, 58, -80, -80, -80, -80, -80,
  865. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  866. 113, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  867. 58, 58, -80
  868. },
  869. {
  870. 9, -81, -81, -81, -81, -81, -81, 55, -81, -81,
  871. -81, -81, -81, 58, 58, -81, -81, -81, -81, -81,
  872. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  873. 58, 58, 58, 58, 58, 58, 58, 58, 114, 58,
  874. 58, 58, -81
  875. },
  876. {
  877. 9, -82, -82, -82, -82, -82, -82, 55, -82, -82,
  878. -82, -82, -82, 58, 58, -82, -82, -82, -82, -82,
  879. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  880. 58, 58, 58, 58, 58, 115, 58, 58, 58, 58,
  881. 58, 58, -82
  882. },
  883. {
  884. 9, -83, -83, -83, -83, -83, -83, 55, -83, -83,
  885. -83, -83, -83, 58, 58, -83, -83, -83, -83, -83,
  886. 58, 58, 58, 58, 58, 58, 58, 58, 58, 116,
  887. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  888. 58, 58, -83
  889. },
  890. {
  891. 9, -84, -84, -84, -84, -84, -84, 55, -84, -84,
  892. -84, -84, -84, 58, 58, -84, -84, -84, -84, -84,
  893. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  894. 58, 58, 58, 58, 58, 58, 117, 58, 58, 58,
  895. 58, 58, -84
  896. },
  897. {
  898. 9, -85, -85, -85, -85, -85, -85, -85, -85, -85,
  899. -85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
  900. -85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
  901. -85, -85, -85, -85, -85, -85, -85, -85, -85, -85,
  902. -85, -85, -85
  903. },
  904. {
  905. 9, 86, 87, -86, 86, 86, 86, 86, 86, 86,
  906. 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
  907. 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
  908. 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
  909. 86, 86, 86
  910. },
  911. {
  912. 9, 87, 87, -87, 87, 87, 87, 87, 87, 87,
  913. 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
  914. 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
  915. 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
  916. 87, 87, 87
  917. },
  918. {
  919. 9, 88, 88, -88, 88, 88, 88, 88, 88, 88,
  920. 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
  921. 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
  922. 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
  923. 88, 88, 88
  924. },
  925. {
  926. 9, -89, 89, 90, -89, -89, -89, -89, -89, -89,
  927. -89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
  928. -89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
  929. -89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
  930. -89, -89, -89
  931. },
  932. {
  933. 9, 91, -90, -90, 91, 91, 91, 91, 91, 91,
  934. 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
  935. 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
  936. 91, 91, 91, 91, 91, 91, 91, 91, 91, 91,
  937. 91, 91, 91
  938. },
  939. {
  940. 9, -91, -91, -91, -91, -91, -91, -91, -91, -91,
  941. -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
  942. -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
  943. -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
  944. -91, -91, -91
  945. },
  946. {
  947. 9, 92, 92, -92, 92, -92, 92, -92, 92, -92,
  948. 92, 92, 92, 92, 92, 92, 92, 92, 92, -92,
  949. 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
  950. 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
  951. 92, 92, 92
  952. },
  953. {
  954. 9, 93, 93, -93, 93, 93, 93, 93, 93, 93,
  955. 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  956. 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  957. 93, 93, 93, 93, 93, 93, 93, 93, 93, 93,
  958. 93, 93, 93
  959. },
  960. {
  961. 9, -94, -94, -94, -94, -94, -94, -94, -94, -94,
  962. -94, -94, -94, -94, -94, -94, -94, -94, -94, -94,
  963. -94, -94, -94, -94, -94, -94, -94, -94, -94, -94,
  964. -94, -94, -94, -94, -94, -94, -94, -94, -94, -94,
  965. -94, -94, -94
  966. },
  967. {
  968. 9, -95, -95, -95, -95, -95, -95, 55, -95, -95,
  969. -95, -95, -95, 58, 58, -95, -95, -95, -95, -95,
  970. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  971. 118, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  972. 58, 58, -95
  973. },
  974. {
  975. 9, -96, -96, -96, -96, -96, -96, 55, -96, -96,
  976. -96, -96, -96, 58, 58, -96, -96, -96, -96, -96,
  977. 58, 58, 58, 58, 58, 58, 58, 58, 58, 119,
  978. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  979. 58, 58, -96
  980. },
  981. {
  982. 9, -97, -97, -97, -97, -97, -97, 55, -97, -97,
  983. -97, -97, -97, 58, 58, -97, -97, -97, -97, -97,
  984. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  985. 58, 120, 58, 58, 58, 58, 58, 58, 58, 58,
  986. 58, 58, -97
  987. },
  988. {
  989. 9, -98, -98, -98, -98, -98, -98, 55, -98, -98,
  990. -98, -98, -98, 58, 58, -98, -98, -98, -98, -98,
  991. 58, 58, 58, 58, 58, 58, 121, 58, 58, 58,
  992. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  993. 58, 58, -98
  994. },
  995. {
  996. 9, -99, -99, -99, -99, -99, -99, 55, -99, -99,
  997. -99, -99, -99, 58, 58, -99, -99, -99, -99, -99,
  998. 122, 123, 58, 58, 58, 58, 58, 58, 58, 58,
  999. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1000. 58, 58, -99
  1001. },
  1002. {
  1003. 9, -100, -100, -100, -100, -100, -100, 55, -100, -100,
  1004. -100, -100, -100, 58, 58, -100, -100, -100, -100, -100,
  1005. 58, 58, 58, 58, 58, 124, 58, 58, 58, 58,
  1006. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1007. 58, 58, -100
  1008. },
  1009. {
  1010. 9, -101, -101, -101, -101, -101, -101, 55, -101, -101,
  1011. -101, -101, -101, 58, 58, -101, -101, -101, -101, -101,
  1012. 58, 58, 58, 125, 58, 58, 58, 58, 58, 126,
  1013. 58, 127, 58, 58, 58, 58, 58, 58, 58, 58,
  1014. 58, 58, -101
  1015. },
  1016. {
  1017. 9, -102, -102, -102, -102, -102, -102, 55, -102, -102,
  1018. -102, -102, -102, 58, 58, -102, -102, -102, -102, -102,
  1019. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1020. 58, 58, 58, 58, 128, 58, 58, 58, 58, 58,
  1021. 58, 58, -102
  1022. },
  1023. {
  1024. 9, -103, -103, -103, -103, -103, -103, 55, -103, -103,
  1025. -103, -103, -103, 58, 58, -103, -103, -103, -103, -103,
  1026. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1027. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1028. 58, 58, -103
  1029. },
  1030. {
  1031. 9, -104, -104, -104, -104, -104, -104, 55, -104, -104,
  1032. -104, -104, -104, 58, 58, -104, -104, -104, -104, -104,
  1033. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1034. 129, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1035. 58, 58, -104
  1036. },
  1037. {
  1038. 9, -105, -105, -105, -105, -105, -105, 55, -105, -105,
  1039. -105, -105, -105, 58, 58, -105, -105, -105, -105, -105,
  1040. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1041. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1042. 58, 58, -105
  1043. },
  1044. {
  1045. 9, -106, -106, -106, -106, -106, -106, 55, -106, -106,
  1046. -106, -106, -106, 58, 58, -106, -106, -106, -106, -106,
  1047. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1048. 58, 58, 130, 58, 58, 58, 58, 58, 58, 58,
  1049. 58, 58, -106
  1050. },
  1051. {
  1052. 9, -107, -107, -107, -107, -107, -107, 55, -107, -107,
  1053. -107, -107, -107, 58, 58, -107, -107, -107, -107, -107,
  1054. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1055. 58, 58, 58, 58, 58, 58, 58, 58, 131, 58,
  1056. 58, 58, -107
  1057. },
  1058. {
  1059. 9, -108, -108, -108, -108, -108, -108, 55, -108, -108,
  1060. -108, -108, -108, 58, 58, -108, -108, -108, -108, -108,
  1061. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1062. 58, 58, 58, 58, 58, 58, 58, 58, 132, 58,
  1063. 58, 58, -108
  1064. },
  1065. {
  1066. 9, -109, -109, -109, -109, -109, -109, 55, -109, -109,
  1067. -109, -109, -109, 58, 58, -109, -109, -109, -109, -109,
  1068. 58, 58, 58, 58, 58, 58, 58, 58, 58, 133,
  1069. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1070. 58, 58, -109
  1071. },
  1072. {
  1073. 9, -110, -110, -110, -110, -110, -110, 55, -110, -110,
  1074. -110, -110, -110, 58, 58, -110, -110, -110, -110, -110,
  1075. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1076. 58, 134, 58, 58, 58, 58, 58, 58, 58, 58,
  1077. 58, 58, -110
  1078. },
  1079. {
  1080. 9, -111, -111, -111, -111, -111, -111, 55, -111, -111,
  1081. -111, -111, -111, 58, 58, -111, -111, -111, -111, -111,
  1082. 58, 58, 58, 58, 58, 58, 58, 135, 58, 58,
  1083. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1084. 58, 58, -111
  1085. },
  1086. {
  1087. 9, -112, -112, -112, -112, -112, -112, 55, -112, -112,
  1088. -112, -112, -112, 58, 58, -112, -112, -112, -112, -112,
  1089. 58, 58, 58, 58, 58, 136, 58, 58, 58, 58,
  1090. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1091. 58, 58, -112
  1092. },
  1093. {
  1094. 9, -113, -113, -113, -113, -113, -113, 55, -113, -113,
  1095. -113, -113, -113, 58, 58, -113, -113, -113, -113, -113,
  1096. 58, 58, 58, 58, 58, 137, 58, 58, 58, 58,
  1097. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1098. 58, 58, -113
  1099. },
  1100. {
  1101. 9, -114, -114, -114, -114, -114, -114, 55, -114, -114,
  1102. -114, -114, -114, 58, 58, -114, -114, -114, -114, -114,
  1103. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1104. 58, 58, 58, 58, 58, 138, 58, 58, 58, 58,
  1105. 58, 58, -114
  1106. },
  1107. {
  1108. 9, -115, -115, -115, -115, -115, -115, 55, -115, -115,
  1109. -115, -115, -115, 58, 58, -115, -115, -115, -115, -115,
  1110. 58, 58, 58, 58, 58, 58, 58, 58, 58, 139,
  1111. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1112. 58, 58, -115
  1113. },
  1114. {
  1115. 9, -116, -116, -116, -116, -116, -116, 55, -116, -116,
  1116. -116, -116, -116, 58, 58, -116, -116, -116, -116, -116,
  1117. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1118. 58, 58, 58, 58, 58, 58, 140, 58, 58, 58,
  1119. 58, 58, -116
  1120. },
  1121. {
  1122. 9, -117, -117, -117, -117, -117, -117, 55, -117, -117,
  1123. -117, -117, -117, 58, 58, -117, -117, -117, -117, -117,
  1124. 58, 58, 58, 58, 58, 58, 58, 58, 58, 141,
  1125. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1126. 58, 58, -117
  1127. },
  1128. {
  1129. 9, -118, -118, -118, -118, -118, -118, 55, -118, -118,
  1130. -118, -118, -118, 58, 58, -118, -118, -118, -118, -118,
  1131. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1132. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1133. 58, 58, -118
  1134. },
  1135. {
  1136. 9, -119, -119, -119, -119, -119, -119, 55, -119, -119,
  1137. -119, -119, -119, 58, 58, -119, -119, -119, -119, -119,
  1138. 58, 58, 58, 142, 58, 58, 58, 58, 58, 58,
  1139. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1140. 58, 58, -119
  1141. },
  1142. {
  1143. 9, -120, -120, -120, -120, -120, -120, 55, -120, -120,
  1144. -120, -120, -120, 58, 58, -120, -120, -120, -120, -120,
  1145. 58, 58, 58, 58, 58, 143, 58, 58, 58, 58,
  1146. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1147. 58, 58, -120
  1148. },
  1149. {
  1150. 9, -121, -121, -121, -121, -121, -121, 55, -121, -121,
  1151. -121, -121, -121, 58, 58, -121, -121, -121, -121, -121,
  1152. 58, 58, 58, 58, 58, 58, 58, 58, 58, 144,
  1153. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1154. 58, 58, -121
  1155. },
  1156. {
  1157. 9, -122, -122, -122, -122, -122, -122, 55, -122, -122,
  1158. -122, -122, -122, 58, 58, -122, -122, -122, -122, -122,
  1159. 58, 58, 145, 58, 58, 58, 58, 58, 58, 58,
  1160. 58, 58, 58, 58, 58, 58, 58, 146, 58, 58,
  1161. 58, 58, -122
  1162. },
  1163. {
  1164. 9, -123, -123, -123, -123, -123, -123, 55, -123, -123,
  1165. -123, -123, -123, 58, 58, -123, -123, -123, -123, -123,
  1166. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1167. 58, 58, 58, 58, 58, 58, 58, 58, 147, 58,
  1168. 58, 58, -123
  1169. },
  1170. {
  1171. 9, -124, -124, -124, -124, -124, -124, 55, -124, -124,
  1172. -124, -124, -124, 58, 58, -124, -124, -124, -124, -124,
  1173. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1174. 58, 58, 148, 58, 58, 58, 58, 58, 58, 58,
  1175. 58, 58, -124
  1176. },
  1177. {
  1178. 9, -125, -125, -125, -125, -125, -125, 55, -125, -125,
  1179. -125, -125, -125, 58, 58, -125, -125, -125, -125, -125,
  1180. 58, 58, 58, 58, 58, 58, 58, 58, 149, 58,
  1181. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1182. 58, 58, -125
  1183. },
  1184. {
  1185. 9, -126, -126, -126, -126, -126, -126, 55, -126, -126,
  1186. -126, -126, -126, 58, 58, -126, -126, -126, -126, -126,
  1187. 58, 58, 58, 58, 58, 58, 150, 58, 58, 58,
  1188. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1189. 58, 58, -126
  1190. },
  1191. {
  1192. 9, -127, -127, -127, -127, -127, -127, 55, -127, -127,
  1193. -127, -127, -127, 58, 58, -127, -127, -127, -127, -127,
  1194. 58, 58, 58, 58, 58, 151, 58, 58, 58, 58,
  1195. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1196. 58, 58, -127
  1197. },
  1198. {
  1199. 9, -128, -128, -128, -128, -128, -128, 55, -128, -128,
  1200. -128, -128, -128, 58, 58, -128, -128, -128, -128, -128,
  1201. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1202. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1203. 58, 58, -128
  1204. },
  1205. {
  1206. 9, -129, -129, -129, -129, -129, -129, 55, -129, -129,
  1207. -129, -129, -129, 58, 58, -129, -129, -129, -129, -129,
  1208. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1209. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1210. 58, 152, -129
  1211. },
  1212. {
  1213. 9, -130, -130, -130, -130, -130, -130, 55, -130, -130,
  1214. -130, -130, -130, 58, 58, -130, -130, -130, -130, -130,
  1215. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1216. 58, 153, 58, 58, 58, 58, 58, 58, 58, 58,
  1217. 58, 58, -130
  1218. },
  1219. {
  1220. 9, -131, -131, -131, -131, -131, -131, 55, -131, -131,
  1221. -131, -131, -131, 58, 58, -131, -131, -131, -131, -131,
  1222. 58, 58, 58, 154, 58, 58, 58, 58, 58, 58,
  1223. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1224. 58, 58, -131
  1225. },
  1226. {
  1227. 9, -132, -132, -132, -132, -132, -132, 55, -132, -132,
  1228. -132, -132, -132, 58, 58, -132, -132, -132, -132, -132,
  1229. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1230. 155, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1231. 58, 58, -132
  1232. },
  1233. {
  1234. 9, -133, -133, -133, -133, -133, -133, 55, -133, -133,
  1235. -133, -133, -133, 58, 58, -133, -133, -133, -133, -133,
  1236. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1237. 58, 58, 58, 156, 58, 58, 58, 58, 58, 58,
  1238. 58, 58, -133
  1239. },
  1240. {
  1241. 9, -134, -134, -134, -134, -134, -134, 55, -134, -134,
  1242. -134, -134, -134, 58, 58, -134, -134, -134, -134, -134,
  1243. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1244. 58, 58, 58, 58, 157, 58, 58, 58, 58, 58,
  1245. 58, 58, -134
  1246. },
  1247. {
  1248. 9, -135, -135, -135, -135, -135, -135, 55, -135, -135,
  1249. -135, -135, -135, 58, 58, -135, -135, -135, -135, -135,
  1250. 58, 58, 58, 58, 58, 158, 58, 58, 58, 58,
  1251. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1252. 58, 58, -135
  1253. },
  1254. {
  1255. 9, -136, -136, -136, -136, -136, -136, 55, -136, -136,
  1256. -136, -136, -136, 58, 58, -136, -136, -136, -136, -136,
  1257. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1258. 58, 58, 58, 58, 58, 58, 58, 159, 58, 58,
  1259. 58, 58, -136
  1260. },
  1261. {
  1262. 9, -137, -137, -137, -137, -137, -137, 55, -137, -137,
  1263. -137, -137, -137, 58, 58, -137, -137, -137, -137, -137,
  1264. 58, 58, 58, 160, 58, 58, 58, 58, 58, 58,
  1265. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1266. 58, 58, -137
  1267. },
  1268. {
  1269. 9, -138, -138, -138, -138, -138, -138, 55, -138, -138,
  1270. -138, -138, -138, 58, 58, -138, -138, -138, -138, -138,
  1271. 58, 58, 58, 161, 58, 58, 58, 58, 58, 58,
  1272. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1273. 58, 58, -138
  1274. },
  1275. {
  1276. 9, -139, -139, -139, -139, -139, -139, 55, -139, -139,
  1277. -139, -139, -139, 58, 58, -139, -139, -139, -139, -139,
  1278. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1279. 58, 58, 162, 58, 58, 58, 58, 58, 58, 58,
  1280. 58, 58, -139
  1281. },
  1282. {
  1283. 9, -140, -140, -140, -140, -140, -140, 55, -140, -140,
  1284. -140, -140, -140, 58, 58, -140, -140, -140, -140, -140,
  1285. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1286. 58, 58, 58, 58, 58, 58, 58, 163, 58, 58,
  1287. 58, 58, -140
  1288. },
  1289. {
  1290. 9, -141, -141, -141, -141, -141, -141, 55, -141, -141,
  1291. -141, -141, -141, 58, 58, -141, -141, -141, -141, -141,
  1292. 58, 58, 164, 58, 58, 58, 58, 58, 58, 58,
  1293. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1294. 58, 58, -141
  1295. },
  1296. {
  1297. 9, -142, -142, -142, -142, -142, -142, 55, -142, -142,
  1298. -142, -142, -142, 58, 58, -142, -142, -142, -142, -142,
  1299. 58, 58, 58, 58, 58, 165, 58, 58, 58, 58,
  1300. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1301. 58, 58, -142
  1302. },
  1303. {
  1304. 9, -143, -143, -143, -143, -143, -143, 55, -143, -143,
  1305. -143, -143, -143, 58, 58, -143, -143, -143, -143, -143,
  1306. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1307. 58, 58, 166, 58, 58, 58, 58, 58, 58, 58,
  1308. 58, 58, -143
  1309. },
  1310. {
  1311. 9, -144, -144, -144, -144, -144, -144, 55, -144, -144,
  1312. -144, -144, -144, 58, 58, -144, -144, -144, -144, -144,
  1313. 58, 58, 58, 58, 58, 58, 58, 167, 58, 58,
  1314. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1315. 58, 58, -144
  1316. },
  1317. {
  1318. 9, -145, -145, -145, -145, -145, -145, 55, -145, -145,
  1319. -145, -145, -145, 58, 58, -145, -145, -145, -145, -145,
  1320. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1321. 58, 58, 58, 168, 58, 58, 58, 58, 58, 58,
  1322. 58, 58, -145
  1323. },
  1324. {
  1325. 9, -146, -146, -146, -146, -146, -146, 55, -146, -146,
  1326. -146, -146, -146, 58, 58, -146, -146, -146, -146, -146,
  1327. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1328. 58, 58, 58, 58, 58, 169, 58, 58, 58, 58,
  1329. 58, 58, -146
  1330. },
  1331. {
  1332. 9, -147, -147, -147, -147, -147, -147, 55, -147, -147,
  1333. -147, -147, -147, 58, 58, -147, -147, -147, -147, -147,
  1334. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1335. 170, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1336. 58, 58, -147
  1337. },
  1338. {
  1339. 9, -148, -148, -148, -148, -148, -148, 55, -148, -148,
  1340. -148, -148, -148, 58, 58, -148, -148, -148, -148, -148,
  1341. 58, 58, 58, 58, 171, 58, 58, 58, 58, 58,
  1342. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1343. 58, 58, -148
  1344. },
  1345. {
  1346. 9, -149, -149, -149, -149, -149, -149, 55, -149, -149,
  1347. -149, -149, -149, 58, 58, -149, -149, -149, -149, -149,
  1348. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1349. 58, 58, 58, 172, 58, 58, 58, 58, 58, 58,
  1350. 58, 58, -149
  1351. },
  1352. {
  1353. 9, -150, -150, -150, -150, -150, -150, 55, -150, -150,
  1354. -150, -150, -150, 58, 58, -150, -150, -150, -150, -150,
  1355. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1356. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1357. 58, 58, -150
  1358. },
  1359. {
  1360. 9, -151, -151, -151, -151, -151, -151, 55, -151, -151,
  1361. -151, -151, -151, 58, 58, -151, -151, -151, -151, -151,
  1362. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1363. 58, 58, 173, 58, 58, 58, 58, 58, 58, 58,
  1364. 58, 58, -151
  1365. },
  1366. {
  1367. 9, -152, -152, -152, -152, -152, -152, 55, -152, -152,
  1368. -152, -152, -152, 58, 58, -152, -152, -152, -152, -152,
  1369. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1370. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1371. 58, 58, -152
  1372. },
  1373. {
  1374. 9, -153, -153, -153, -153, -153, -153, 55, -153, -153,
  1375. -153, -153, -153, 58, 58, -153, -153, -153, -153, -153,
  1376. 58, 58, 58, 58, 58, 174, 58, 58, 58, 58,
  1377. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1378. 58, 58, -153
  1379. },
  1380. {
  1381. 9, -154, -154, -154, -154, -154, -154, 55, -154, -154,
  1382. -154, -154, -154, 58, 58, -154, -154, -154, -154, -154,
  1383. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1384. 58, 58, 58, 175, 58, 58, 58, 58, 58, 58,
  1385. 58, 58, -154
  1386. },
  1387. {
  1388. 9, -155, -155, -155, -155, -155, -155, 55, -155, -155,
  1389. -155, -155, -155, 58, 58, -155, -155, -155, -155, -155,
  1390. 58, 58, 58, 58, 58, 176, 58, 58, 58, 58,
  1391. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1392. 58, 58, -155
  1393. },
  1394. {
  1395. 9, -156, -156, -156, -156, -156, -156, 55, -156, -156,
  1396. -156, -156, -156, 58, 58, -156, -156, -156, -156, -156,
  1397. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1398. 58, 58, 177, 58, 58, 58, 58, 58, 58, 58,
  1399. 58, 58, -156
  1400. },
  1401. {
  1402. 9, -157, -157, -157, -157, -157, -157, 55, -157, -157,
  1403. -157, -157, -157, 58, 58, -157, -157, -157, -157, -157,
  1404. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1405. 58, 58, 58, 58, 58, 58, 58, 178, 58, 58,
  1406. 58, 58, -157
  1407. },
  1408. {
  1409. 9, -158, -158, -158, -158, -158, -158, 55, -158, -158,
  1410. -158, -158, -158, 58, 58, -158, -158, -158, -158, -158,
  1411. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1412. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1413. 58, 58, -158
  1414. },
  1415. {
  1416. 9, -159, -159, -159, -159, -159, -159, 55, -159, -159,
  1417. -159, -159, -159, 58, 58, -159, -159, -159, -159, -159,
  1418. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1419. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1420. 58, 58, -159
  1421. },
  1422. {
  1423. 9, -160, -160, -160, -160, -160, -160, 55, -160, -160,
  1424. -160, -160, -160, 58, 58, -160, -160, -160, -160, -160,
  1425. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1426. 58, 58, 58, 58, 58, 58, 58, 179, 58, 58,
  1427. 58, 58, -160
  1428. },
  1429. {
  1430. 9, -161, -161, -161, -161, -161, -161, 55, -161, -161,
  1431. -161, -161, -161, 58, 58, -161, -161, -161, -161, -161,
  1432. 58, 58, 58, 58, 58, 180, 58, 58, 58, 58,
  1433. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1434. 58, 58, -161
  1435. },
  1436. {
  1437. 9, -162, -162, -162, -162, -162, -162, 55, -162, -162,
  1438. -162, -162, -162, 58, 58, -162, -162, -162, -162, -162,
  1439. 58, 58, 58, 58, 58, 58, 58, 181, 58, 58,
  1440. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1441. 58, 58, -162
  1442. },
  1443. {
  1444. 9, -163, -163, -163, -163, -163, -163, 55, -163, -163,
  1445. -163, -163, -163, 58, 58, -163, -163, -163, -163, -163,
  1446. 58, 182, 58, 58, 58, 58, 58, 58, 58, 58,
  1447. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1448. 58, 58, -163
  1449. },
  1450. {
  1451. 9, -164, -164, -164, -164, -164, -164, 55, -164, -164,
  1452. -164, -164, -164, 58, 58, -164, -164, -164, -164, -164,
  1453. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1454. 183, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1455. 58, 58, -164
  1456. },
  1457. {
  1458. 9, -165, -165, -165, -165, -165, -165, 55, -165, -165,
  1459. -165, -165, -165, 58, 58, -165, -165, -165, -165, -165,
  1460. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1461. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1462. 58, 58, -165
  1463. },
  1464. {
  1465. 9, -166, -166, -166, -166, -166, -166, 55, -166, -166,
  1466. -166, -166, -166, 58, 58, -166, -166, -166, -166, -166,
  1467. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1468. 58, 58, 58, 58, 58, 58, 58, 184, 58, 58,
  1469. 58, 58, -166
  1470. },
  1471. {
  1472. 9, -167, -167, -167, -167, -167, -167, 55, -167, -167,
  1473. -167, -167, -167, 58, 58, -167, -167, -167, -167, -167,
  1474. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1475. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1476. 58, 58, -167
  1477. },
  1478. {
  1479. 9, -168, -168, -168, -168, -168, -168, 55, -168, -168,
  1480. -168, -168, -168, 58, 58, -168, -168, -168, -168, -168,
  1481. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1482. 58, 58, 58, 185, 58, 58, 58, 58, 58, 58,
  1483. 58, 58, -168
  1484. },
  1485. {
  1486. 9, -169, -169, -169, -169, -169, -169, 55, -169, -169,
  1487. -169, -169, -169, 58, 58, -169, -169, -169, -169, -169,
  1488. 58, 58, 58, 58, 58, 58, 58, 58, 58, 186,
  1489. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1490. 58, 58, -169
  1491. },
  1492. {
  1493. 9, -170, -170, -170, -170, -170, -170, 55, -170, -170,
  1494. -170, -170, -170, 58, 58, -170, -170, -170, -170, -170,
  1495. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1496. 58, 58, 58, 58, 58, 58, 58, 187, 58, 58,
  1497. 58, 58, -170
  1498. },
  1499. {
  1500. 9, -171, -171, -171, -171, -171, -171, 55, -171, -171,
  1501. -171, -171, -171, 58, 58, -171, -171, -171, -171, -171,
  1502. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1503. 58, 58, 58, 58, 58, 58, 188, 58, 58, 58,
  1504. 58, 58, -171
  1505. },
  1506. {
  1507. 9, -172, -172, -172, -172, -172, -172, 55, -172, -172,
  1508. -172, -172, -172, 58, 58, -172, -172, -172, -172, -172,
  1509. 58, 58, 58, 58, 58, 58, 58, 58, 58, 189,
  1510. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1511. 58, 58, -172
  1512. },
  1513. {
  1514. 9, -173, -173, -173, -173, -173, -173, 55, -173, -173,
  1515. -173, -173, -173, 58, 58, -173, -173, -173, -173, -173,
  1516. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1517. 58, 58, 58, 58, 58, 58, 58, 58, 190, 58,
  1518. 58, 58, -173
  1519. },
  1520. {
  1521. 9, -174, -174, -174, -174, -174, -174, 55, -174, -174,
  1522. -174, -174, -174, 58, 58, -174, -174, -174, -174, -174,
  1523. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1524. 58, 58, 191, 58, 58, 58, 58, 58, 58, 58,
  1525. 58, 58, -174
  1526. },
  1527. {
  1528. 9, -175, -175, -175, -175, -175, -175, 55, -175, -175,
  1529. -175, -175, -175, 58, 58, -175, -175, -175, -175, -175,
  1530. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1531. 58, 58, 192, 58, 58, 58, 58, 58, 58, 58,
  1532. 58, 58, -175
  1533. },
  1534. {
  1535. 9, -176, -176, -176, -176, -176, -176, 55, -176, -176,
  1536. -176, -176, -176, 58, 58, -176, -176, -176, -176, -176,
  1537. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1538. 58, 58, 58, 58, 58, 58, 193, 58, 58, 58,
  1539. 58, 58, -176
  1540. },
  1541. {
  1542. 9, -177, -177, -177, -177, -177, -177, 55, -177, -177,
  1543. -177, -177, -177, 58, 58, -177, -177, -177, -177, -177,
  1544. 58, 194, 58, 58, 58, 58, 58, 58, 58, 58,
  1545. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1546. 58, 58, -177
  1547. },
  1548. {
  1549. 9, -178, -178, -178, -178, -178, -178, 55, -178, -178,
  1550. -178, -178, -178, 58, 58, -178, -178, -178, -178, -178,
  1551. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1552. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1553. 58, 58, -178
  1554. },
  1555. {
  1556. 9, -179, -179, -179, -179, -179, -179, 55, -179, -179,
  1557. -179, -179, -179, 58, 58, -179, -179, -179, -179, -179,
  1558. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1559. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1560. 58, 58, -179
  1561. },
  1562. {
  1563. 9, -180, -180, -180, -180, -180, -180, 55, -180, -180,
  1564. -180, -180, -180, 58, 58, -180, -180, -180, -180, -180,
  1565. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1566. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1567. 58, 58, -180
  1568. },
  1569. {
  1570. 9, -181, -181, -181, -181, -181, -181, 55, -181, -181,
  1571. -181, -181, -181, 58, 58, -181, -181, -181, -181, -181,
  1572. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1573. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1574. 58, 58, -181
  1575. },
  1576. {
  1577. 9, -182, -182, -182, -182, -182, -182, 55, -182, -182,
  1578. -182, -182, -182, 58, 58, -182, -182, -182, -182, -182,
  1579. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1580. 58, 58, 58, 58, 58, 58, 58, 195, 58, 58,
  1581. 58, 58, -182
  1582. },
  1583. {
  1584. 9, -183, -183, -183, -183, -183, -183, 55, -183, -183,
  1585. -183, -183, -183, 58, 58, -183, -183, -183, -183, -183,
  1586. 58, 58, 58, 58, 58, 196, 58, 58, 58, 58,
  1587. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1588. 58, 58, -183
  1589. },
  1590. {
  1591. 9, -184, -184, -184, -184, -184, -184, 55, -184, -184,
  1592. -184, -184, -184, 58, 58, -184, -184, -184, -184, -184,
  1593. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1594. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1595. 58, 58, -184
  1596. },
  1597. {
  1598. 9, -185, -185, -185, -185, -185, -185, 55, -185, -185,
  1599. -185, -185, -185, 58, 58, -185, -185, -185, -185, -185,
  1600. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1601. 197, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1602. 58, 58, -185
  1603. },
  1604. {
  1605. 9, -186, -186, -186, -186, -186, -186, 55, -186, -186,
  1606. -186, -186, -186, 58, 58, -186, -186, -186, -186, -186,
  1607. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1608. 58, 58, 58, 58, 58, 58, 198, 58, 58, 58,
  1609. 58, 58, -186
  1610. },
  1611. {
  1612. 9, -187, -187, -187, -187, -187, -187, 55, -187, -187,
  1613. -187, -187, -187, 58, 58, -187, -187, -187, -187, -187,
  1614. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1615. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1616. 58, 58, -187
  1617. },
  1618. {
  1619. 9, -188, -188, -188, -188, -188, -188, 55, -188, -188,
  1620. -188, -188, -188, 58, 58, -188, -188, -188, -188, -188,
  1621. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1622. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1623. 58, 58, -188
  1624. },
  1625. {
  1626. 9, -189, -189, -189, -189, -189, -189, 55, -189, -189,
  1627. -189, -189, -189, 58, 58, -189, -189, -189, -189, -189,
  1628. 58, 58, 58, 199, 58, 58, 58, 58, 58, 58,
  1629. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1630. 58, 58, -189
  1631. },
  1632. {
  1633. 9, -190, -190, -190, -190, -190, -190, 55, -190, -190,
  1634. -190, -190, -190, 58, 58, -190, -190, -190, -190, -190,
  1635. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1636. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1637. 58, 58, -190
  1638. },
  1639. {
  1640. 9, -191, -191, -191, -191, -191, -191, 55, -191, -191,
  1641. -191, -191, -191, 58, 58, -191, -191, -191, -191, -191,
  1642. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1643. 58, 58, 58, 58, 58, 58, 58, 58, 200, 58,
  1644. 58, 58, -191
  1645. },
  1646. {
  1647. 9, -192, -192, -192, -192, -192, -192, 55, -192, -192,
  1648. -192, -192, -192, 58, 58, -192, -192, -192, -192, -192,
  1649. 58, 58, 58, 58, 58, 58, 201, 58, 58, 58,
  1650. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1651. 58, 58, -192
  1652. },
  1653. {
  1654. 9, -193, -193, -193, -193, -193, -193, 55, -193, -193,
  1655. -193, -193, -193, 58, 58, -193, -193, -193, -193, -193,
  1656. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1657. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1658. 58, 58, -193
  1659. },
  1660. {
  1661. 9, -194, -194, -194, -194, -194, -194, 55, -194, -194,
  1662. -194, -194, -194, 58, 58, -194, -194, -194, -194, -194,
  1663. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1664. 202, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1665. 58, 58, -194
  1666. },
  1667. {
  1668. 9, -195, -195, -195, -195, -195, -195, 55, -195, -195,
  1669. -195, -195, -195, 58, 58, -195, -195, -195, -195, -195,
  1670. 58, 58, 58, 58, 58, 203, 58, 58, 58, 58,
  1671. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1672. 58, 58, -195
  1673. },
  1674. {
  1675. 9, -196, -196, -196, -196, -196, -196, 55, -196, -196,
  1676. -196, -196, -196, 58, 58, -196, -196, -196, -196, -196,
  1677. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1678. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1679. 58, 58, -196
  1680. },
  1681. {
  1682. 9, -197, -197, -197, -197, -197, -197, 55, -197, -197,
  1683. -197, -197, -197, 58, 58, -197, -197, -197, -197, -197,
  1684. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1685. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1686. 58, 58, -197
  1687. },
  1688. {
  1689. 9, -198, -198, -198, -198, -198, -198, 55, -198, -198,
  1690. -198, -198, -198, 58, 58, -198, -198, -198, -198, -198,
  1691. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1692. 58, 58, 58, 58, 58, 58, 58, 204, 58, 58,
  1693. 58, 58, -198
  1694. },
  1695. {
  1696. 9, -199, -199, -199, -199, -199, -199, 55, -199, -199,
  1697. -199, -199, -199, 58, 58, -199, -199, -199, -199, -199,
  1698. 58, 58, 58, 58, 58, 205, 58, 58, 58, 58,
  1699. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1700. 58, 58, -199
  1701. },
  1702. {
  1703. 9, -200, -200, -200, -200, -200, -200, 55, -200, -200,
  1704. -200, -200, -200, 58, 58, -200, -200, -200, -200, -200,
  1705. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1706. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1707. 58, 58, -200
  1708. },
  1709. {
  1710. 9, -201, -201, -201, -201, -201, -201, 55, -201, -201,
  1711. -201, -201, -201, 58, 58, -201, -201, -201, -201, -201,
  1712. 58, 58, 58, 58, 58, 58, 58, 58, 58, 206,
  1713. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1714. 58, 58, -201
  1715. },
  1716. {
  1717. 9, -202, -202, -202, -202, -202, -202, 55, -202, -202,
  1718. -202, -202, -202, 58, 58, -202, -202, -202, -202, -202,
  1719. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1720. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1721. 58, 58, -202
  1722. },
  1723. {
  1724. 9, -203, -203, -203, -203, -203, -203, 55, -203, -203,
  1725. -203, -203, -203, 58, 58, -203, -203, -203, -203, -203,
  1726. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1727. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1728. 58, 58, -203
  1729. },
  1730. {
  1731. 9, -204, -204, -204, -204, -204, -204, 55, -204, -204,
  1732. -204, -204, -204, 58, 58, -204, -204, -204, -204, -204,
  1733. 58, 207, 58, 58, 58, 58, 58, 58, 58, 58,
  1734. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1735. 58, 58, -204
  1736. },
  1737. {
  1738. 9, -205, -205, -205, -205, -205, -205, 55, -205, -205,
  1739. -205, -205, -205, 58, 58, -205, -205, -205, -205, -205,
  1740. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1741. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1742. 58, 58, -205
  1743. },
  1744. {
  1745. 9, -206, -206, -206, -206, -206, -206, 55, -206, -206,
  1746. -206, -206, -206, 58, 58, -206, -206, -206, -206, -206,
  1747. 58, 58, 58, 58, 58, 58, 58, 208, 58, 58,
  1748. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1749. 58, 58, -206
  1750. },
  1751. {
  1752. 9, -207, -207, -207, -207, -207, -207, 55, -207, -207,
  1753. -207, -207, -207, 58, 58, -207, -207, -207, -207, -207,
  1754. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1755. 58, 58, 58, 58, 58, 58, 58, 209, 58, 58,
  1756. 58, 58, -207
  1757. },
  1758. {
  1759. 9, -208, -208, -208, -208, -208, -208, 55, -208, -208,
  1760. -208, -208, -208, 58, 58, -208, -208, -208, -208, -208,
  1761. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1762. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1763. 58, 58, -208
  1764. },
  1765. {
  1766. 9, -209, -209, -209, -209, -209, -209, 55, -209, -209,
  1767. -209, -209, -209, 58, 58, -209, -209, -209, -209, -209,
  1768. 58, 58, 58, 58, 58, 210, 58, 58, 58, 58,
  1769. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1770. 58, 58, -209
  1771. },
  1772. {
  1773. 9, -210, -210, -210, -210, -210, -210, 55, -210, -210,
  1774. -210, -210, -210, 58, 58, -210, -210, -210, -210, -210,
  1775. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1776. 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
  1777. 58, 58, -210
  1778. },
  1779. } ;
  1780. static yy_state_type yy_get_previous_state ( void );
  1781. static yy_state_type yy_try_NUL_trans ( yy_state_type current_state );
  1782. static int yy_get_next_buffer ( void );
  1783. static void yynoreturn yy_fatal_error ( const char* msg );
  1784. /* Done after the current pattern has been matched and before the
  1785. * corresponding action - sets up yytext.
  1786. */
  1787. #define YY_DO_BEFORE_ACTION \
  1788. (yytext_ptr) = yy_bp; \
  1789. yyleng = (int) (yy_cp - yy_bp); \
  1790. (yy_hold_char) = *yy_cp; \
  1791. *yy_cp = '\0'; \
  1792. (yy_c_buf_p) = yy_cp;
  1793. #define YY_NUM_RULES 64
  1794. #define YY_END_OF_BUFFER 65
  1795. /* This struct is not used in this scanner,
  1796. but its presence is necessary. */
  1797. struct yy_trans_info
  1798. {
  1799. flex_int32_t yy_verify;
  1800. flex_int32_t yy_nxt;
  1801. };
  1802. static const flex_int16_t yy_accept[211] =
  1803. { 0,
  1804. 2, 2, 0, 0, 0, 0, 0, 0, 65, 51,
  1805. 2, 4, 43, 48, 1, 50, 51, 44, 45, 51,
  1806. 49, 51, 39, 37, 41, 51, 49, 49, 49, 49,
  1807. 49, 49, 49, 49, 49, 49, 49, 49, 49, 51,
  1808. 52, 54, 53, 63, 60, 62, 56, 59, 58, 55,
  1809. 57, 2, 38, 1, 50, 36, 47, 49, 46, 40,
  1810. 42, 3, 49, 49, 49, 49, 49, 49, 18, 49,
  1811. 49, 49, 49, 49, 25, 49, 49, 49, 49, 49,
  1812. 49, 49, 49, 49, 35, 52, 52, 63, 60, 62,
  1813. 61, 56, 55, 57, 49, 49, 49, 49, 49, 49,
  1814. 49, 49, 17, 49, 20, 49, 49, 49, 49, 49,
  1815. 49, 49, 49, 49, 49, 49, 49, 5, 49, 49,
  1816. 49, 49, 49, 49, 49, 49, 49, 16, 49, 49,
  1817. 22, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  1818. 49, 49, 49, 49, 49, 49, 49, 49, 49, 14,
  1819. 49, 19, 49, 49, 49, 49, 49, 28, 29, 49,
  1820. 49, 49, 49, 49, 6, 49, 8, 49, 49, 49,
  1821. 49, 49, 49, 49, 49, 49, 49, 27, 30, 31,
  1822. 32, 49, 49, 7, 49, 49, 11, 12, 49, 15,
  1823. 49, 49, 24, 49, 49, 34, 9, 49, 49, 21,
  1824. 49, 26, 33, 49, 13, 49, 49, 23, 49, 10
  1825. } ;
  1826. static const YY_CHAR yy_ec[256] =
  1827. { 0,
  1828. 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
  1829. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1830. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1831. 1, 2, 4, 5, 6, 7, 1, 8, 9, 10,
  1832. 11, 1, 12, 1, 13, 14, 14, 13, 13, 13,
  1833. 13, 13, 13, 13, 13, 13, 13, 15, 1, 16,
  1834. 17, 18, 1, 1, 13, 13, 13, 13, 13, 13,
  1835. 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  1836. 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  1837. 1, 19, 1, 1, 20, 1, 21, 22, 23, 24,
  1838. 25, 26, 27, 28, 29, 13, 13, 30, 31, 32,
  1839. 33, 34, 13, 35, 36, 37, 38, 39, 13, 40,
  1840. 41, 13, 1, 42, 1, 1, 1, 1, 1, 1,
  1841. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1842. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1843. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1844. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1845. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1846. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1847. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1848. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1849. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1850. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1851. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1852. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1853. 1, 1, 1, 1, 1
  1854. } ;
  1855. /* Table of booleans, true if rule could match eol. */
  1856. static const flex_int32_t yy_rule_can_match_eol[65] =
  1857. { 0,
  1858. 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1859. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1860. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1,
  1861. 0, 1, 1, 0, 0, };
  1862. extern int yy_flex_debug;
  1863. int yy_flex_debug = 0;
  1864. /* The intent behind this definition is that it'll catch
  1865. * any uses of REJECT which flex missed.
  1866. */
  1867. #define REJECT reject_used_but_not_detected
  1868. #define yymore() yymore_used_but_not_detected
  1869. #define YY_MORE_ADJ 0
  1870. #define YY_RESTORE_YY_MORE_OFFSET
  1871. char *yytext;
  1872. /* SPDX-License-Identifier: GPL-2.0-only */
  1873. /*
  1874. * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
  1875. */
  1876. #include <assert.h>
  1877. #include <limits.h>
  1878. #include <stdio.h>
  1879. #include <stdlib.h>
  1880. #include <string.h>
  1881. #include <glob.h>
  1882. #include <libgen.h>
  1883. #include "lkc.h"
  1884. #include "parser.tab.h"
  1885. #define YY_DECL static int yylex1(void)
  1886. #define START_STRSIZE 16
  1887. static struct {
  1888. struct file *file;
  1889. int lineno;
  1890. } current_pos;
  1891. static int prev_prev_token = T_EOL;
  1892. static int prev_token = T_EOL;
  1893. static char *text;
  1894. static int text_size, text_asize;
  1895. struct buffer {
  1896. struct buffer *parent;
  1897. YY_BUFFER_STATE state;
  1898. };
  1899. static struct buffer *current_buf;
  1900. static int last_ts, first_ts;
  1901. static char *expand_token(const char *in, size_t n);
  1902. static void append_expanded_string(const char *in);
  1903. static void zconf_endhelp(void);
  1904. static void zconf_endfile(void);
  1905. static void new_string(void)
  1906. {
  1907. text = xmalloc(START_STRSIZE);
  1908. text_asize = START_STRSIZE;
  1909. text_size = 0;
  1910. *text = 0;
  1911. }
  1912. static void append_string(const char *str, int size)
  1913. {
  1914. int new_size = text_size + size + 1;
  1915. if (new_size > text_asize) {
  1916. new_size += START_STRSIZE - 1;
  1917. new_size &= -START_STRSIZE;
  1918. text = xrealloc(text, new_size);
  1919. text_asize = new_size;
  1920. }
  1921. memcpy(text + text_size, str, size);
  1922. text_size += size;
  1923. text[text_size] = 0;
  1924. }
  1925. static void alloc_string(const char *str, int size)
  1926. {
  1927. text = xmalloc(size + 1);
  1928. memcpy(text, str, size);
  1929. text[size] = 0;
  1930. }
  1931. static void warn_ignored_character(char chr)
  1932. {
  1933. fprintf(stderr,
  1934. "%s:%d:warning: ignoring unsupported character '%c'\n",
  1935. current_file->name, yylineno, chr);
  1936. }
  1937. #define INITIAL 0
  1938. #define ASSIGN_VAL 1
  1939. #define HELP 2
  1940. #define STRING 3
  1941. #ifndef YY_NO_UNISTD_H
  1942. /* Special case for "unistd.h", since it is non-ANSI. We include it way
  1943. * down here because we want the user's section 1 to have been scanned first.
  1944. * The user has a chance to override it with an option.
  1945. */
  1946. #include <unistd.h>
  1947. #endif
  1948. #ifndef YY_EXTRA_TYPE
  1949. #define YY_EXTRA_TYPE void *
  1950. #endif
  1951. static int yy_init_globals ( void );
  1952. /* Accessor methods to globals.
  1953. These are made visible to non-reentrant scanners for convenience. */
  1954. int yylex_destroy ( void );
  1955. int yyget_debug ( void );
  1956. void yyset_debug ( int debug_flag );
  1957. YY_EXTRA_TYPE yyget_extra ( void );
  1958. void yyset_extra ( YY_EXTRA_TYPE user_defined );
  1959. FILE *yyget_in ( void );
  1960. void yyset_in ( FILE * _in_str );
  1961. FILE *yyget_out ( void );
  1962. void yyset_out ( FILE * _out_str );
  1963. int yyget_leng ( void );
  1964. char *yyget_text ( void );
  1965. int yyget_lineno ( void );
  1966. void yyset_lineno ( int _line_number );
  1967. /* Macros after this point can all be overridden by user definitions in
  1968. * section 1.
  1969. */
  1970. #ifndef YY_SKIP_YYWRAP
  1971. #ifdef __cplusplus
  1972. extern "C" int yywrap ( void );
  1973. #else
  1974. extern int yywrap ( void );
  1975. #endif
  1976. #endif
  1977. #ifndef YY_NO_UNPUT
  1978. static void yyunput ( int c, char *buf_ptr );
  1979. #endif
  1980. #ifndef yytext_ptr
  1981. static void yy_flex_strncpy ( char *, const char *, int );
  1982. #endif
  1983. #ifdef YY_NEED_STRLEN
  1984. static int yy_flex_strlen ( const char * );
  1985. #endif
  1986. #ifndef YY_NO_INPUT
  1987. #ifdef __cplusplus
  1988. static int yyinput ( void );
  1989. #else
  1990. static int input ( void );
  1991. #endif
  1992. #endif
  1993. /* Amount of stuff to slurp up with each read. */
  1994. #ifndef YY_READ_BUF_SIZE
  1995. #ifdef __ia64__
  1996. /* On IA-64, the buffer size is 16k, not 8k */
  1997. #define YY_READ_BUF_SIZE 16384
  1998. #else
  1999. #define YY_READ_BUF_SIZE 8192
  2000. #endif /* __ia64__ */
  2001. #endif
  2002. /* Copy whatever the last rule matched to the standard output. */
  2003. #ifndef ECHO
  2004. /* This used to be an fputs(), but since the string might contain NUL's,
  2005. * we now use fwrite().
  2006. */
  2007. #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
  2008. #endif
  2009. /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
  2010. * is returned in "result".
  2011. */
  2012. #ifndef YY_INPUT
  2013. #define YY_INPUT(buf,result,max_size) \
  2014. errno=0; \
  2015. while ( (result = (int) read( fileno(yyin), buf, (yy_size_t) max_size )) < 0 ) \
  2016. { \
  2017. if( errno != EINTR) \
  2018. { \
  2019. YY_FATAL_ERROR( "input in flex scanner failed" ); \
  2020. break; \
  2021. } \
  2022. errno=0; \
  2023. clearerr(yyin); \
  2024. }\
  2025. \
  2026. #endif
  2027. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  2028. * we don't want an extra ';' after the "return" because that will cause
  2029. * some compilers to complain about unreachable statements.
  2030. */
  2031. #ifndef yyterminate
  2032. #define yyterminate() return YY_NULL
  2033. #endif
  2034. /* Number of entries by which start-condition stack grows. */
  2035. #ifndef YY_START_STACK_INCR
  2036. #define YY_START_STACK_INCR 25
  2037. #endif
  2038. /* Report a fatal error. */
  2039. #ifndef YY_FATAL_ERROR
  2040. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  2041. #endif
  2042. /* end tables serialization structures and prototypes */
  2043. /* Default declaration of generated scanner - a define so the user can
  2044. * easily add parameters.
  2045. */
  2046. #ifndef YY_DECL
  2047. #define YY_DECL_IS_OURS 1
  2048. extern int yylex (void);
  2049. #define YY_DECL int yylex (void)
  2050. #endif /* !YY_DECL */
  2051. /* Code executed at the beginning of each rule, after yytext and yyleng
  2052. * have been set up.
  2053. */
  2054. #ifndef YY_USER_ACTION
  2055. #define YY_USER_ACTION
  2056. #endif
  2057. /* Code executed at the end of each rule. */
  2058. #ifndef YY_BREAK
  2059. #define YY_BREAK /*LINTED*/break;
  2060. #endif
  2061. #define YY_RULE_SETUP \
  2062. YY_USER_ACTION
  2063. /** The main scanner function which does all the work.
  2064. */
  2065. YY_DECL
  2066. {
  2067. yy_state_type yy_current_state;
  2068. char *yy_cp, *yy_bp;
  2069. int yy_act;
  2070. if ( !(yy_init) )
  2071. {
  2072. (yy_init) = 1;
  2073. #ifdef YY_USER_INIT
  2074. YY_USER_INIT;
  2075. #endif
  2076. if ( ! (yy_start) )
  2077. (yy_start) = 1; /* first start state */
  2078. if ( ! yyin )
  2079. yyin = stdin;
  2080. if ( ! yyout )
  2081. yyout = stdout;
  2082. if ( ! YY_CURRENT_BUFFER ) {
  2083. yyensure_buffer_stack ();
  2084. YY_CURRENT_BUFFER_LVALUE =
  2085. yy_create_buffer( yyin, YY_BUF_SIZE );
  2086. }
  2087. yy_load_buffer_state( );
  2088. }
  2089. {
  2090. int str = 0;
  2091. int ts, i;
  2092. while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
  2093. {
  2094. yy_cp = (yy_c_buf_p);
  2095. /* Support of yytext. */
  2096. *yy_cp = (yy_hold_char);
  2097. /* yy_bp points to the position in yy_ch_buf of the start of
  2098. * the current run.
  2099. */
  2100. yy_bp = yy_cp;
  2101. yy_current_state = (yy_start);
  2102. yy_match:
  2103. while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
  2104. ++yy_cp;
  2105. yy_current_state = -yy_current_state;
  2106. yy_find_action:
  2107. yy_act = yy_accept[yy_current_state];
  2108. YY_DO_BEFORE_ACTION;
  2109. if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
  2110. {
  2111. int yyl;
  2112. for ( yyl = 0; yyl < yyleng; ++yyl )
  2113. if ( yytext[yyl] == '\n' )
  2114. yylineno++;
  2115. ;
  2116. }
  2117. do_action: /* This label is used only to access EOF actions. */
  2118. switch ( yy_act )
  2119. { /* beginning of action switch */
  2120. case 1:
  2121. YY_RULE_SETUP
  2122. /* ignore comment */
  2123. YY_BREAK
  2124. case 2:
  2125. YY_RULE_SETUP
  2126. /* whitespaces */
  2127. YY_BREAK
  2128. case 3:
  2129. /* rule 3 can match eol */
  2130. YY_RULE_SETUP
  2131. /* escaped new line */
  2132. YY_BREAK
  2133. case 4:
  2134. /* rule 4 can match eol */
  2135. YY_RULE_SETUP
  2136. return T_EOL;
  2137. YY_BREAK
  2138. case 5:
  2139. YY_RULE_SETUP
  2140. return T_BOOL;
  2141. YY_BREAK
  2142. case 6:
  2143. YY_RULE_SETUP
  2144. return T_CHOICE;
  2145. YY_BREAK
  2146. case 7:
  2147. YY_RULE_SETUP
  2148. return T_COMMENT;
  2149. YY_BREAK
  2150. case 8:
  2151. YY_RULE_SETUP
  2152. return T_CONFIG;
  2153. YY_BREAK
  2154. case 9:
  2155. YY_RULE_SETUP
  2156. return T_DEF_BOOL;
  2157. YY_BREAK
  2158. case 10:
  2159. YY_RULE_SETUP
  2160. return T_DEF_TRISTATE;
  2161. YY_BREAK
  2162. case 11:
  2163. YY_RULE_SETUP
  2164. return T_DEFAULT;
  2165. YY_BREAK
  2166. case 12:
  2167. YY_RULE_SETUP
  2168. return T_DEPENDS;
  2169. YY_BREAK
  2170. case 13:
  2171. YY_RULE_SETUP
  2172. return T_ENDCHOICE;
  2173. YY_BREAK
  2174. case 14:
  2175. YY_RULE_SETUP
  2176. return T_ENDIF;
  2177. YY_BREAK
  2178. case 15:
  2179. YY_RULE_SETUP
  2180. return T_ENDMENU;
  2181. YY_BREAK
  2182. case 16:
  2183. YY_RULE_SETUP
  2184. return T_HELP;
  2185. YY_BREAK
  2186. case 17:
  2187. YY_RULE_SETUP
  2188. return T_HEX;
  2189. YY_BREAK
  2190. case 18:
  2191. YY_RULE_SETUP
  2192. return T_IF;
  2193. YY_BREAK
  2194. case 19:
  2195. YY_RULE_SETUP
  2196. return T_IMPLY;
  2197. YY_BREAK
  2198. case 20:
  2199. YY_RULE_SETUP
  2200. return T_INT;
  2201. YY_BREAK
  2202. case 21:
  2203. YY_RULE_SETUP
  2204. return T_MAINMENU;
  2205. YY_BREAK
  2206. case 22:
  2207. YY_RULE_SETUP
  2208. return T_MENU;
  2209. YY_BREAK
  2210. case 23:
  2211. YY_RULE_SETUP
  2212. return T_MENUCONFIG;
  2213. YY_BREAK
  2214. case 24:
  2215. YY_RULE_SETUP
  2216. return T_MODULES;
  2217. YY_BREAK
  2218. case 25:
  2219. YY_RULE_SETUP
  2220. return T_ON;
  2221. YY_BREAK
  2222. case 26:
  2223. YY_RULE_SETUP
  2224. return T_OPTIONAL;
  2225. YY_BREAK
  2226. case 27:
  2227. YY_RULE_SETUP
  2228. return T_PROMPT;
  2229. YY_BREAK
  2230. case 28:
  2231. YY_RULE_SETUP
  2232. return T_RANGE;
  2233. YY_BREAK
  2234. case 29:
  2235. YY_RULE_SETUP
  2236. return T_RESET;
  2237. YY_BREAK
  2238. case 30:
  2239. YY_RULE_SETUP
  2240. return T_SELECT;
  2241. YY_BREAK
  2242. case 31:
  2243. YY_RULE_SETUP
  2244. return T_SOURCE;
  2245. YY_BREAK
  2246. case 32:
  2247. YY_RULE_SETUP
  2248. return T_STRING;
  2249. YY_BREAK
  2250. case 33:
  2251. YY_RULE_SETUP
  2252. return T_TRISTATE;
  2253. YY_BREAK
  2254. case 34:
  2255. YY_RULE_SETUP
  2256. return T_VISIBLE;
  2257. YY_BREAK
  2258. case 35:
  2259. YY_RULE_SETUP
  2260. return T_OR;
  2261. YY_BREAK
  2262. case 36:
  2263. YY_RULE_SETUP
  2264. return T_AND;
  2265. YY_BREAK
  2266. case 37:
  2267. YY_RULE_SETUP
  2268. return T_EQUAL;
  2269. YY_BREAK
  2270. case 38:
  2271. YY_RULE_SETUP
  2272. return T_UNEQUAL;
  2273. YY_BREAK
  2274. case 39:
  2275. YY_RULE_SETUP
  2276. return T_LESS;
  2277. YY_BREAK
  2278. case 40:
  2279. YY_RULE_SETUP
  2280. return T_LESS_EQUAL;
  2281. YY_BREAK
  2282. case 41:
  2283. YY_RULE_SETUP
  2284. return T_GREATER;
  2285. YY_BREAK
  2286. case 42:
  2287. YY_RULE_SETUP
  2288. return T_GREATER_EQUAL;
  2289. YY_BREAK
  2290. case 43:
  2291. YY_RULE_SETUP
  2292. return T_NOT;
  2293. YY_BREAK
  2294. case 44:
  2295. YY_RULE_SETUP
  2296. return T_OPEN_PAREN;
  2297. YY_BREAK
  2298. case 45:
  2299. YY_RULE_SETUP
  2300. return T_CLOSE_PAREN;
  2301. YY_BREAK
  2302. case 46:
  2303. YY_RULE_SETUP
  2304. return T_COLON_EQUAL;
  2305. YY_BREAK
  2306. case 47:
  2307. YY_RULE_SETUP
  2308. return T_PLUS_EQUAL;
  2309. YY_BREAK
  2310. case 48:
  2311. YY_RULE_SETUP
  2312. {
  2313. str = yytext[0];
  2314. new_string();
  2315. BEGIN(STRING);
  2316. }
  2317. YY_BREAK
  2318. case 49:
  2319. YY_RULE_SETUP
  2320. {
  2321. alloc_string(yytext, yyleng);
  2322. yylval.string = text;
  2323. return T_WORD;
  2324. }
  2325. YY_BREAK
  2326. case 50:
  2327. YY_RULE_SETUP
  2328. {
  2329. /* this token includes at least one '$' */
  2330. yylval.string = expand_token(yytext, yyleng);
  2331. if (strlen(yylval.string))
  2332. return T_WORD;
  2333. free(yylval.string);
  2334. }
  2335. YY_BREAK
  2336. case 51:
  2337. YY_RULE_SETUP
  2338. warn_ignored_character(*yytext);
  2339. YY_BREAK
  2340. case 52:
  2341. YY_RULE_SETUP
  2342. {
  2343. alloc_string(yytext, yyleng);
  2344. yylval.string = text;
  2345. return T_ASSIGN_VAL;
  2346. }
  2347. YY_BREAK
  2348. case 53:
  2349. /* rule 53 can match eol */
  2350. YY_RULE_SETUP
  2351. { BEGIN(INITIAL); return T_EOL; }
  2352. YY_BREAK
  2353. case 54:
  2354. YY_RULE_SETUP
  2355. YY_BREAK
  2356. case 55:
  2357. YY_RULE_SETUP
  2358. append_expanded_string(yytext);
  2359. YY_BREAK
  2360. case 56:
  2361. YY_RULE_SETUP
  2362. {
  2363. append_string(yytext, yyleng);
  2364. }
  2365. YY_BREAK
  2366. case 57:
  2367. YY_RULE_SETUP
  2368. {
  2369. append_string(yytext + 1, yyleng - 1);
  2370. }
  2371. YY_BREAK
  2372. case 58:
  2373. YY_RULE_SETUP
  2374. {
  2375. if (str == yytext[0]) {
  2376. BEGIN(INITIAL);
  2377. yylval.string = text;
  2378. return T_WORD_QUOTE;
  2379. } else
  2380. append_string(yytext, 1);
  2381. }
  2382. YY_BREAK
  2383. case 59:
  2384. /* rule 59 can match eol */
  2385. YY_RULE_SETUP
  2386. {
  2387. fprintf(stderr,
  2388. "%s:%d:warning: multi-line strings not supported\n",
  2389. zconf_curname(), zconf_lineno());
  2390. unput('\n');
  2391. BEGIN(INITIAL);
  2392. yylval.string = text;
  2393. return T_WORD_QUOTE;
  2394. }
  2395. YY_BREAK
  2396. case YY_STATE_EOF(STRING):
  2397. {
  2398. BEGIN(INITIAL);
  2399. yylval.string = text;
  2400. return T_WORD_QUOTE;
  2401. }
  2402. YY_BREAK
  2403. case 60:
  2404. YY_RULE_SETUP
  2405. {
  2406. ts = 0;
  2407. for (i = 0; i < yyleng; i++) {
  2408. if (yytext[i] == '\t')
  2409. ts = (ts & ~7) + 8;
  2410. else
  2411. ts++;
  2412. }
  2413. last_ts = ts;
  2414. if (first_ts) {
  2415. if (ts < first_ts) {
  2416. zconf_endhelp();
  2417. return T_HELPTEXT;
  2418. }
  2419. ts -= first_ts;
  2420. while (ts > 8) {
  2421. append_string(" ", 8);
  2422. ts -= 8;
  2423. }
  2424. append_string(" ", ts);
  2425. }
  2426. }
  2427. YY_BREAK
  2428. case 61:
  2429. /* rule 61 can match eol */
  2430. *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
  2431. YY_LINENO_REWIND_TO(yy_cp - 1);
  2432. (yy_c_buf_p) = yy_cp -= 1;
  2433. YY_DO_BEFORE_ACTION; /* set up yytext again */
  2434. YY_RULE_SETUP
  2435. {
  2436. zconf_endhelp();
  2437. return T_HELPTEXT;
  2438. }
  2439. YY_BREAK
  2440. case 62:
  2441. /* rule 62 can match eol */
  2442. YY_RULE_SETUP
  2443. {
  2444. append_string("\n", 1);
  2445. }
  2446. YY_BREAK
  2447. case 63:
  2448. YY_RULE_SETUP
  2449. {
  2450. while (yyleng) {
  2451. if ((yytext[yyleng-1] != ' ') && (yytext[yyleng-1] != '\t'))
  2452. break;
  2453. yyleng--;
  2454. }
  2455. append_string(yytext, yyleng);
  2456. if (!first_ts)
  2457. first_ts = last_ts;
  2458. }
  2459. YY_BREAK
  2460. case YY_STATE_EOF(HELP):
  2461. {
  2462. zconf_endhelp();
  2463. return T_HELPTEXT;
  2464. }
  2465. YY_BREAK
  2466. case YY_STATE_EOF(INITIAL):
  2467. case YY_STATE_EOF(ASSIGN_VAL):
  2468. {
  2469. BEGIN(INITIAL);
  2470. if (prev_token != T_EOL && prev_token != T_HELPTEXT)
  2471. fprintf(stderr, "%s:%d:warning: no new line at end of file\n",
  2472. current_file->name, yylineno);
  2473. if (current_file) {
  2474. zconf_endfile();
  2475. return T_EOL;
  2476. }
  2477. fclose(yyin);
  2478. yyterminate();
  2479. }
  2480. YY_BREAK
  2481. case 64:
  2482. YY_RULE_SETUP
  2483. YY_FATAL_ERROR( "flex scanner jammed" );
  2484. YY_BREAK
  2485. case YY_END_OF_BUFFER:
  2486. {
  2487. /* Amount of text matched not including the EOB char. */
  2488. int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
  2489. /* Undo the effects of YY_DO_BEFORE_ACTION. */
  2490. *yy_cp = (yy_hold_char);
  2491. YY_RESTORE_YY_MORE_OFFSET
  2492. if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  2493. {
  2494. /* We're scanning a new file or input source. It's
  2495. * possible that this happened because the user
  2496. * just pointed yyin at a new source and called
  2497. * yylex(). If so, then we have to assure
  2498. * consistency between YY_CURRENT_BUFFER and our
  2499. * globals. Here is the right place to do so, because
  2500. * this is the first action (other than possibly a
  2501. * back-up) that will match for the new input source.
  2502. */
  2503. (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  2504. YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  2505. YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  2506. }
  2507. /* Note that here we test for yy_c_buf_p "<=" to the position
  2508. * of the first EOB in the buffer, since yy_c_buf_p will
  2509. * already have been incremented past the NUL character
  2510. * (since all states make transitions on EOB to the
  2511. * end-of-buffer state). Contrast this with the test
  2512. * in input().
  2513. */
  2514. if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  2515. { /* This was really a NUL. */
  2516. yy_state_type yy_next_state;
  2517. (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
  2518. yy_current_state = yy_get_previous_state( );
  2519. /* Okay, we're now positioned to make the NUL
  2520. * transition. We couldn't have
  2521. * yy_get_previous_state() go ahead and do it
  2522. * for us because it doesn't know how to deal
  2523. * with the possibility of jamming (and we don't
  2524. * want to build jamming into it because then it
  2525. * will run more slowly).
  2526. */
  2527. yy_next_state = yy_try_NUL_trans( yy_current_state );
  2528. yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  2529. if ( yy_next_state )
  2530. {
  2531. /* Consume the NUL. */
  2532. yy_cp = ++(yy_c_buf_p);
  2533. yy_current_state = yy_next_state;
  2534. goto yy_match;
  2535. }
  2536. else
  2537. {
  2538. yy_cp = (yy_c_buf_p);
  2539. goto yy_find_action;
  2540. }
  2541. }
  2542. else switch ( yy_get_next_buffer( ) )
  2543. {
  2544. case EOB_ACT_END_OF_FILE:
  2545. {
  2546. (yy_did_buffer_switch_on_eof) = 0;
  2547. if ( yywrap( ) )
  2548. {
  2549. /* Note: because we've taken care in
  2550. * yy_get_next_buffer() to have set up
  2551. * yytext, we can now set up
  2552. * yy_c_buf_p so that if some total
  2553. * hoser (like flex itself) wants to
  2554. * call the scanner after we return the
  2555. * YY_NULL, it'll still work - another
  2556. * YY_NULL will get returned.
  2557. */
  2558. (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  2559. yy_act = YY_STATE_EOF(YY_START);
  2560. goto do_action;
  2561. }
  2562. else
  2563. {
  2564. if ( ! (yy_did_buffer_switch_on_eof) )
  2565. YY_NEW_FILE;
  2566. }
  2567. break;
  2568. }
  2569. case EOB_ACT_CONTINUE_SCAN:
  2570. (yy_c_buf_p) =
  2571. (yytext_ptr) + yy_amount_of_matched_text;
  2572. yy_current_state = yy_get_previous_state( );
  2573. yy_cp = (yy_c_buf_p);
  2574. yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  2575. goto yy_match;
  2576. case EOB_ACT_LAST_MATCH:
  2577. (yy_c_buf_p) =
  2578. &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
  2579. yy_current_state = yy_get_previous_state( );
  2580. yy_cp = (yy_c_buf_p);
  2581. yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  2582. goto yy_find_action;
  2583. }
  2584. break;
  2585. }
  2586. default:
  2587. YY_FATAL_ERROR(
  2588. "fatal flex scanner internal error--no action found" );
  2589. } /* end of action switch */
  2590. } /* end of scanning one token */
  2591. } /* end of user's declarations */
  2592. } /* end of yylex */
  2593. /* yy_get_next_buffer - try to read in a new buffer
  2594. *
  2595. * Returns a code representing an action:
  2596. * EOB_ACT_LAST_MATCH -
  2597. * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2598. * EOB_ACT_END_OF_FILE - end of file
  2599. */
  2600. static int yy_get_next_buffer (void)
  2601. {
  2602. char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  2603. char *source = (yytext_ptr);
  2604. int number_to_move, i;
  2605. int ret_val;
  2606. if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
  2607. YY_FATAL_ERROR(
  2608. "fatal flex scanner internal error--end of buffer missed" );
  2609. if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  2610. { /* Don't try to fill the buffer, so this is an EOF. */
  2611. if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  2612. {
  2613. /* We matched a single character, the EOB, so
  2614. * treat this as a final EOF.
  2615. */
  2616. return EOB_ACT_END_OF_FILE;
  2617. }
  2618. else
  2619. {
  2620. /* We matched some text prior to the EOB, first
  2621. * process it.
  2622. */
  2623. return EOB_ACT_LAST_MATCH;
  2624. }
  2625. }
  2626. /* Try to read more data. */
  2627. /* First move last chars to start of buffer. */
  2628. number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
  2629. for ( i = 0; i < number_to_move; ++i )
  2630. *(dest++) = *(source++);
  2631. if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  2632. /* don't do the read, it's not guaranteed to return an EOF,
  2633. * just force an EOF
  2634. */
  2635. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
  2636. else
  2637. {
  2638. int num_to_read =
  2639. YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  2640. while ( num_to_read <= 0 )
  2641. { /* Not enough room in the buffer - grow it. */
  2642. /* just a shorter name for the current buffer */
  2643. YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
  2644. int yy_c_buf_p_offset =
  2645. (int) ((yy_c_buf_p) - b->yy_ch_buf);
  2646. if ( b->yy_is_our_buffer )
  2647. {
  2648. int new_size = b->yy_buf_size * 2;
  2649. if ( new_size <= 0 )
  2650. b->yy_buf_size += b->yy_buf_size / 8;
  2651. else
  2652. b->yy_buf_size *= 2;
  2653. b->yy_ch_buf = (char *)
  2654. /* Include room in for 2 EOB chars. */
  2655. yyrealloc( (void *) b->yy_ch_buf,
  2656. (yy_size_t) (b->yy_buf_size + 2) );
  2657. }
  2658. else
  2659. /* Can't grow it, we don't own it. */
  2660. b->yy_ch_buf = NULL;
  2661. if ( ! b->yy_ch_buf )
  2662. YY_FATAL_ERROR(
  2663. "fatal error - scanner input buffer overflow" );
  2664. (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
  2665. num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  2666. number_to_move - 1;
  2667. }
  2668. if ( num_to_read > YY_READ_BUF_SIZE )
  2669. num_to_read = YY_READ_BUF_SIZE;
  2670. /* Read in more data. */
  2671. YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  2672. (yy_n_chars), num_to_read );
  2673. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  2674. }
  2675. if ( (yy_n_chars) == 0 )
  2676. {
  2677. if ( number_to_move == YY_MORE_ADJ )
  2678. {
  2679. ret_val = EOB_ACT_END_OF_FILE;
  2680. yyrestart( yyin );
  2681. }
  2682. else
  2683. {
  2684. ret_val = EOB_ACT_LAST_MATCH;
  2685. YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  2686. YY_BUFFER_EOF_PENDING;
  2687. }
  2688. }
  2689. else
  2690. ret_val = EOB_ACT_CONTINUE_SCAN;
  2691. if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  2692. /* Extend the array by 50%, plus the number we really need. */
  2693. int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
  2694. YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
  2695. (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
  2696. if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  2697. YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  2698. /* "- 2" to take care of EOB's */
  2699. YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
  2700. }
  2701. (yy_n_chars) += number_to_move;
  2702. YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  2703. YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  2704. (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  2705. return ret_val;
  2706. }
  2707. /* yy_get_previous_state - get the state just before the EOB char was reached */
  2708. static yy_state_type yy_get_previous_state (void)
  2709. {
  2710. yy_state_type yy_current_state;
  2711. char *yy_cp;
  2712. yy_current_state = (yy_start);
  2713. for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  2714. {
  2715. yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
  2716. }
  2717. return yy_current_state;
  2718. }
  2719. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2720. *
  2721. * synopsis
  2722. * next_state = yy_try_NUL_trans( current_state );
  2723. */
  2724. static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
  2725. {
  2726. int yy_is_jam;
  2727. yy_current_state = yy_nxt[yy_current_state][1];
  2728. yy_is_jam = (yy_current_state <= 0);
  2729. return yy_is_jam ? 0 : yy_current_state;
  2730. }
  2731. #ifndef YY_NO_UNPUT
  2732. static void yyunput (int c, char * yy_bp )
  2733. {
  2734. char *yy_cp;
  2735. yy_cp = (yy_c_buf_p);
  2736. /* undo effects of setting up yytext */
  2737. *yy_cp = (yy_hold_char);
  2738. if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  2739. { /* need to shift things up to make room */
  2740. /* +2 for EOB chars. */
  2741. int number_to_move = (yy_n_chars) + 2;
  2742. char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
  2743. YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
  2744. char *source =
  2745. &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
  2746. while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  2747. *--dest = *--source;
  2748. yy_cp += (int) (dest - source);
  2749. yy_bp += (int) (dest - source);
  2750. YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
  2751. (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
  2752. if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  2753. YY_FATAL_ERROR( "flex scanner push-back overflow" );
  2754. }
  2755. *--yy_cp = (char) c;
  2756. if ( c == '\n' ){
  2757. --yylineno;
  2758. }
  2759. (yytext_ptr) = yy_bp;
  2760. (yy_hold_char) = *yy_cp;
  2761. (yy_c_buf_p) = yy_cp;
  2762. }
  2763. #endif
  2764. #ifndef YY_NO_INPUT
  2765. #ifdef __cplusplus
  2766. static int yyinput (void)
  2767. #else
  2768. static int input (void)
  2769. #endif
  2770. {
  2771. int c;
  2772. *(yy_c_buf_p) = (yy_hold_char);
  2773. if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
  2774. {
  2775. /* yy_c_buf_p now points to the character we want to return.
  2776. * If this occurs *before* the EOB characters, then it's a
  2777. * valid NUL; if not, then we've hit the end of the buffer.
  2778. */
  2779. if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  2780. /* This was really a NUL. */
  2781. *(yy_c_buf_p) = '\0';
  2782. else
  2783. { /* need more input */
  2784. int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
  2785. ++(yy_c_buf_p);
  2786. switch ( yy_get_next_buffer( ) )
  2787. {
  2788. case EOB_ACT_LAST_MATCH:
  2789. /* This happens because yy_g_n_b()
  2790. * sees that we've accumulated a
  2791. * token and flags that we need to
  2792. * try matching the token before
  2793. * proceeding. But for input(),
  2794. * there's no matching to consider.
  2795. * So convert the EOB_ACT_LAST_MATCH
  2796. * to EOB_ACT_END_OF_FILE.
  2797. */
  2798. /* Reset buffer status. */
  2799. yyrestart( yyin );
  2800. /*FALLTHROUGH*/
  2801. case EOB_ACT_END_OF_FILE:
  2802. {
  2803. if ( yywrap( ) )
  2804. return 0;
  2805. if ( ! (yy_did_buffer_switch_on_eof) )
  2806. YY_NEW_FILE;
  2807. #ifdef __cplusplus
  2808. return yyinput();
  2809. #else
  2810. return input();
  2811. #endif
  2812. }
  2813. case EOB_ACT_CONTINUE_SCAN:
  2814. (yy_c_buf_p) = (yytext_ptr) + offset;
  2815. break;
  2816. }
  2817. }
  2818. }
  2819. c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
  2820. *(yy_c_buf_p) = '\0'; /* preserve yytext */
  2821. (yy_hold_char) = *++(yy_c_buf_p);
  2822. if ( c == '\n' )
  2823. yylineno++;
  2824. ;
  2825. return c;
  2826. }
  2827. #endif /* ifndef YY_NO_INPUT */
  2828. /** Immediately switch to a different input stream.
  2829. * @param input_file A readable stream.
  2830. *
  2831. * @note This function does not reset the start condition to @c INITIAL .
  2832. */
  2833. void yyrestart (FILE * input_file )
  2834. {
  2835. if ( ! YY_CURRENT_BUFFER ){
  2836. yyensure_buffer_stack ();
  2837. YY_CURRENT_BUFFER_LVALUE =
  2838. yy_create_buffer( yyin, YY_BUF_SIZE );
  2839. }
  2840. yy_init_buffer( YY_CURRENT_BUFFER, input_file );
  2841. yy_load_buffer_state( );
  2842. }
  2843. /** Switch to a different input buffer.
  2844. * @param new_buffer The new input buffer.
  2845. *
  2846. */
  2847. void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
  2848. {
  2849. /* TODO. We should be able to replace this entire function body
  2850. * with
  2851. * yypop_buffer_state();
  2852. * yypush_buffer_state(new_buffer);
  2853. */
  2854. yyensure_buffer_stack ();
  2855. if ( YY_CURRENT_BUFFER == new_buffer )
  2856. return;
  2857. if ( YY_CURRENT_BUFFER )
  2858. {
  2859. /* Flush out information for old buffer. */
  2860. *(yy_c_buf_p) = (yy_hold_char);
  2861. YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  2862. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  2863. }
  2864. YY_CURRENT_BUFFER_LVALUE = new_buffer;
  2865. yy_load_buffer_state( );
  2866. /* We don't actually know whether we did this switch during
  2867. * EOF (yywrap()) processing, but the only time this flag
  2868. * is looked at is after yywrap() is called, so it's safe
  2869. * to go ahead and always set it.
  2870. */
  2871. (yy_did_buffer_switch_on_eof) = 1;
  2872. }
  2873. static void yy_load_buffer_state (void)
  2874. {
  2875. (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  2876. (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  2877. yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  2878. (yy_hold_char) = *(yy_c_buf_p);
  2879. }
  2880. /** Allocate and initialize an input buffer state.
  2881. * @param file A readable stream.
  2882. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
  2883. *
  2884. * @return the allocated buffer state.
  2885. */
  2886. YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
  2887. {
  2888. YY_BUFFER_STATE b;
  2889. b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
  2890. if ( ! b )
  2891. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2892. b->yy_buf_size = size;
  2893. /* yy_ch_buf has to be 2 characters longer than the size given because
  2894. * we need to put in 2 end-of-buffer characters.
  2895. */
  2896. b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
  2897. if ( ! b->yy_ch_buf )
  2898. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2899. b->yy_is_our_buffer = 1;
  2900. yy_init_buffer( b, file );
  2901. return b;
  2902. }
  2903. /** Destroy the buffer.
  2904. * @param b a buffer created with yy_create_buffer()
  2905. *
  2906. */
  2907. void yy_delete_buffer (YY_BUFFER_STATE b )
  2908. {
  2909. if ( ! b )
  2910. return;
  2911. if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  2912. YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  2913. if ( b->yy_is_our_buffer )
  2914. yyfree( (void *) b->yy_ch_buf );
  2915. yyfree( (void *) b );
  2916. }
  2917. /* Initializes or reinitializes a buffer.
  2918. * This function is sometimes called more than once on the same buffer,
  2919. * such as during a yyrestart() or at EOF.
  2920. */
  2921. static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
  2922. {
  2923. int oerrno = errno;
  2924. yy_flush_buffer( b );
  2925. b->yy_input_file = file;
  2926. b->yy_fill_buffer = 1;
  2927. /* If b is the current buffer, then yy_init_buffer was _probably_
  2928. * called from yyrestart() or through yy_get_next_buffer.
  2929. * In that case, we don't want to reset the lineno or column.
  2930. */
  2931. if (b != YY_CURRENT_BUFFER){
  2932. b->yy_bs_lineno = 1;
  2933. b->yy_bs_column = 0;
  2934. }
  2935. b->yy_is_interactive = 0;
  2936. errno = oerrno;
  2937. }
  2938. /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  2939. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
  2940. *
  2941. */
  2942. void yy_flush_buffer (YY_BUFFER_STATE b )
  2943. {
  2944. if ( ! b )
  2945. return;
  2946. b->yy_n_chars = 0;
  2947. /* We always need two end-of-buffer characters. The first causes
  2948. * a transition to the end-of-buffer state. The second causes
  2949. * a jam in that state.
  2950. */
  2951. b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  2952. b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  2953. b->yy_buf_pos = &b->yy_ch_buf[0];
  2954. b->yy_at_bol = 1;
  2955. b->yy_buffer_status = YY_BUFFER_NEW;
  2956. if ( b == YY_CURRENT_BUFFER )
  2957. yy_load_buffer_state( );
  2958. }
  2959. /** Pushes the new state onto the stack. The new state becomes
  2960. * the current state. This function will allocate the stack
  2961. * if necessary.
  2962. * @param new_buffer The new state.
  2963. *
  2964. */
  2965. void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
  2966. {
  2967. if (new_buffer == NULL)
  2968. return;
  2969. yyensure_buffer_stack();
  2970. /* This block is copied from yy_switch_to_buffer. */
  2971. if ( YY_CURRENT_BUFFER )
  2972. {
  2973. /* Flush out information for old buffer. */
  2974. *(yy_c_buf_p) = (yy_hold_char);
  2975. YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  2976. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  2977. }
  2978. /* Only push if top exists. Otherwise, replace top. */
  2979. if (YY_CURRENT_BUFFER)
  2980. (yy_buffer_stack_top)++;
  2981. YY_CURRENT_BUFFER_LVALUE = new_buffer;
  2982. /* copied from yy_switch_to_buffer. */
  2983. yy_load_buffer_state( );
  2984. (yy_did_buffer_switch_on_eof) = 1;
  2985. }
  2986. /** Removes and deletes the top of the stack, if present.
  2987. * The next element becomes the new top.
  2988. *
  2989. */
  2990. void yypop_buffer_state (void)
  2991. {
  2992. if (!YY_CURRENT_BUFFER)
  2993. return;
  2994. yy_delete_buffer(YY_CURRENT_BUFFER );
  2995. YY_CURRENT_BUFFER_LVALUE = NULL;
  2996. if ((yy_buffer_stack_top) > 0)
  2997. --(yy_buffer_stack_top);
  2998. if (YY_CURRENT_BUFFER) {
  2999. yy_load_buffer_state( );
  3000. (yy_did_buffer_switch_on_eof) = 1;
  3001. }
  3002. }
  3003. /* Allocates the stack if it does not exist.
  3004. * Guarantees space for at least one push.
  3005. */
  3006. static void yyensure_buffer_stack (void)
  3007. {
  3008. yy_size_t num_to_alloc;
  3009. if (!(yy_buffer_stack)) {
  3010. /* First allocation is just for 2 elements, since we don't know if this
  3011. * scanner will even need a stack. We use 2 instead of 1 to avoid an
  3012. * immediate realloc on the next call.
  3013. */
  3014. num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
  3015. (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
  3016. (num_to_alloc * sizeof(struct yy_buffer_state*)
  3017. );
  3018. if ( ! (yy_buffer_stack) )
  3019. YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  3020. memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
  3021. (yy_buffer_stack_max) = num_to_alloc;
  3022. (yy_buffer_stack_top) = 0;
  3023. return;
  3024. }
  3025. if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
  3026. /* Increase the buffer to prepare for a possible push. */
  3027. yy_size_t grow_size = 8 /* arbitrary grow size */;
  3028. num_to_alloc = (yy_buffer_stack_max) + grow_size;
  3029. (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
  3030. ((yy_buffer_stack),
  3031. num_to_alloc * sizeof(struct yy_buffer_state*)
  3032. );
  3033. if ( ! (yy_buffer_stack) )
  3034. YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  3035. /* zero only the new slots.*/
  3036. memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
  3037. (yy_buffer_stack_max) = num_to_alloc;
  3038. }
  3039. }
  3040. /** Setup the input buffer state to scan directly from a user-specified character buffer.
  3041. * @param base the character buffer
  3042. * @param size the size in bytes of the character buffer
  3043. *
  3044. * @return the newly allocated buffer state object.
  3045. */
  3046. YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
  3047. {
  3048. YY_BUFFER_STATE b;
  3049. if ( size < 2 ||
  3050. base[size-2] != YY_END_OF_BUFFER_CHAR ||
  3051. base[size-1] != YY_END_OF_BUFFER_CHAR )
  3052. /* They forgot to leave room for the EOB's. */
  3053. return NULL;
  3054. b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
  3055. if ( ! b )
  3056. YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
  3057. b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
  3058. b->yy_buf_pos = b->yy_ch_buf = base;
  3059. b->yy_is_our_buffer = 0;
  3060. b->yy_input_file = NULL;
  3061. b->yy_n_chars = b->yy_buf_size;
  3062. b->yy_is_interactive = 0;
  3063. b->yy_at_bol = 1;
  3064. b->yy_fill_buffer = 0;
  3065. b->yy_buffer_status = YY_BUFFER_NEW;
  3066. yy_switch_to_buffer( b );
  3067. return b;
  3068. }
  3069. /** Setup the input buffer state to scan a string. The next call to yylex() will
  3070. * scan from a @e copy of @a str.
  3071. * @param yystr a NUL-terminated string to scan
  3072. *
  3073. * @return the newly allocated buffer state object.
  3074. * @note If you want to scan bytes that may contain NUL values, then use
  3075. * yy_scan_bytes() instead.
  3076. */
  3077. YY_BUFFER_STATE yy_scan_string (const char * yystr )
  3078. {
  3079. return yy_scan_bytes( yystr, (int) strlen(yystr) );
  3080. }
  3081. /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
  3082. * scan from a @e copy of @a bytes.
  3083. * @param yybytes the byte buffer to scan
  3084. * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  3085. *
  3086. * @return the newly allocated buffer state object.
  3087. */
  3088. YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
  3089. {
  3090. YY_BUFFER_STATE b;
  3091. char *buf;
  3092. yy_size_t n;
  3093. int i;
  3094. /* Get memory for full buffer, including space for trailing EOB's. */
  3095. n = (yy_size_t) (_yybytes_len + 2);
  3096. buf = (char *) yyalloc( n );
  3097. if ( ! buf )
  3098. YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
  3099. for ( i = 0; i < _yybytes_len; ++i )
  3100. buf[i] = yybytes[i];
  3101. buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
  3102. b = yy_scan_buffer( buf, n );
  3103. if ( ! b )
  3104. YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
  3105. /* It's okay to grow etc. this buffer, and we should throw it
  3106. * away when we're done.
  3107. */
  3108. b->yy_is_our_buffer = 1;
  3109. return b;
  3110. }
  3111. #ifndef YY_EXIT_FAILURE
  3112. #define YY_EXIT_FAILURE 2
  3113. #endif
  3114. static void yynoreturn yy_fatal_error (const char* msg )
  3115. {
  3116. fprintf( stderr, "%s\n", msg );
  3117. exit( YY_EXIT_FAILURE );
  3118. }
  3119. /* Redefine yyless() so it works in section 3 code. */
  3120. #undef yyless
  3121. #define yyless(n) \
  3122. do \
  3123. { \
  3124. /* Undo effects of setting up yytext. */ \
  3125. int yyless_macro_arg = (n); \
  3126. YY_LESS_LINENO(yyless_macro_arg);\
  3127. yytext[yyleng] = (yy_hold_char); \
  3128. (yy_c_buf_p) = yytext + yyless_macro_arg; \
  3129. (yy_hold_char) = *(yy_c_buf_p); \
  3130. *(yy_c_buf_p) = '\0'; \
  3131. yyleng = yyless_macro_arg; \
  3132. } \
  3133. while ( 0 )
  3134. /* Accessor methods (get/set functions) to struct members. */
  3135. /** Get the current line number.
  3136. *
  3137. */
  3138. int yyget_lineno (void)
  3139. {
  3140. return yylineno;
  3141. }
  3142. /** Get the input stream.
  3143. *
  3144. */
  3145. FILE *yyget_in (void)
  3146. {
  3147. return yyin;
  3148. }
  3149. /** Get the output stream.
  3150. *
  3151. */
  3152. FILE *yyget_out (void)
  3153. {
  3154. return yyout;
  3155. }
  3156. /** Get the length of the current token.
  3157. *
  3158. */
  3159. int yyget_leng (void)
  3160. {
  3161. return yyleng;
  3162. }
  3163. /** Get the current token.
  3164. *
  3165. */
  3166. char *yyget_text (void)
  3167. {
  3168. return yytext;
  3169. }
  3170. /** Set the current line number.
  3171. * @param _line_number line number
  3172. *
  3173. */
  3174. void yyset_lineno (int _line_number )
  3175. {
  3176. yylineno = _line_number;
  3177. }
  3178. /** Set the input stream. This does not discard the current
  3179. * input buffer.
  3180. * @param _in_str A readable stream.
  3181. *
  3182. * @see yy_switch_to_buffer
  3183. */
  3184. void yyset_in (FILE * _in_str )
  3185. {
  3186. yyin = _in_str ;
  3187. }
  3188. void yyset_out (FILE * _out_str )
  3189. {
  3190. yyout = _out_str ;
  3191. }
  3192. int yyget_debug (void)
  3193. {
  3194. return yy_flex_debug;
  3195. }
  3196. void yyset_debug (int _bdebug )
  3197. {
  3198. yy_flex_debug = _bdebug ;
  3199. }
  3200. static int yy_init_globals (void)
  3201. {
  3202. /* Initialization is the same as for the non-reentrant scanner.
  3203. * This function is called from yylex_destroy(), so don't allocate here.
  3204. */
  3205. /* We do not touch yylineno unless the option is enabled. */
  3206. yylineno = 1;
  3207. (yy_buffer_stack) = NULL;
  3208. (yy_buffer_stack_top) = 0;
  3209. (yy_buffer_stack_max) = 0;
  3210. (yy_c_buf_p) = NULL;
  3211. (yy_init) = 0;
  3212. (yy_start) = 0;
  3213. /* Defined in main.c */
  3214. #ifdef YY_STDINIT
  3215. yyin = stdin;
  3216. yyout = stdout;
  3217. #else
  3218. yyin = NULL;
  3219. yyout = NULL;
  3220. #endif
  3221. /* For future reference: Set errno on error, since we are called by
  3222. * yylex_init()
  3223. */
  3224. return 0;
  3225. }
  3226. /* yylex_destroy is for both reentrant and non-reentrant scanners. */
  3227. int yylex_destroy (void)
  3228. {
  3229. /* Pop the buffer stack, destroying each element. */
  3230. while(YY_CURRENT_BUFFER){
  3231. yy_delete_buffer( YY_CURRENT_BUFFER );
  3232. YY_CURRENT_BUFFER_LVALUE = NULL;
  3233. yypop_buffer_state();
  3234. }
  3235. /* Destroy the stack itself. */
  3236. yyfree((yy_buffer_stack) );
  3237. (yy_buffer_stack) = NULL;
  3238. /* Reset the globals. This is important in a non-reentrant scanner so the next time
  3239. * yylex() is called, initialization will occur. */
  3240. yy_init_globals( );
  3241. return 0;
  3242. }
  3243. /*
  3244. * Internal utility routines.
  3245. */
  3246. #ifndef yytext_ptr
  3247. static void yy_flex_strncpy (char* s1, const char * s2, int n )
  3248. {
  3249. int i;
  3250. for ( i = 0; i < n; ++i )
  3251. s1[i] = s2[i];
  3252. }
  3253. #endif
  3254. #ifdef YY_NEED_STRLEN
  3255. static int yy_flex_strlen (const char * s )
  3256. {
  3257. int n;
  3258. for ( n = 0; s[n]; ++n )
  3259. ;
  3260. return n;
  3261. }
  3262. #endif
  3263. void *yyalloc (yy_size_t size )
  3264. {
  3265. return malloc(size);
  3266. }
  3267. void *yyrealloc (void * ptr, yy_size_t size )
  3268. {
  3269. /* The cast to (char *) in the following accommodates both
  3270. * implementations that use char* generic pointers, and those
  3271. * that use void* generic pointers. It works with the latter
  3272. * because both ANSI C and C++ allow castless assignment from
  3273. * any pointer type to void*, and deal with argument conversions
  3274. * as though doing an assignment.
  3275. */
  3276. return realloc(ptr, size);
  3277. }
  3278. void yyfree (void * ptr )
  3279. {
  3280. free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
  3281. }
  3282. #define YYTABLES_NAME "yytables"
  3283. /* second stage lexer */
  3284. int yylex(void)
  3285. {
  3286. int token;
  3287. repeat:
  3288. token = yylex1();
  3289. if (prev_token == T_EOL || prev_token == T_HELPTEXT) {
  3290. if (token == T_EOL) {
  3291. /* Do not pass unneeded T_EOL to the parser. */
  3292. goto repeat;
  3293. } else {
  3294. /*
  3295. * For the parser, update file/lineno at the first token
  3296. * of each statement. Generally, \n is a statement
  3297. * terminator in Kconfig, but it is not always true
  3298. * because \n could be escaped by a backslash.
  3299. */
  3300. current_pos.file = current_file;
  3301. current_pos.lineno = yylineno;
  3302. }
  3303. }
  3304. if (prev_prev_token == T_EOL && prev_token == T_WORD &&
  3305. (token == T_EQUAL || token == T_COLON_EQUAL || token == T_PLUS_EQUAL))
  3306. BEGIN(ASSIGN_VAL);
  3307. prev_prev_token = prev_token;
  3308. prev_token = token;
  3309. return token;
  3310. }
  3311. static char *expand_token(const char *in, size_t n)
  3312. {
  3313. char *out;
  3314. int c;
  3315. char c2;
  3316. const char *rest, *end;
  3317. new_string();
  3318. append_string(in, n);
  3319. /* get the whole line because we do not know the end of token. */
  3320. while ((c = input()) != EOF) {
  3321. if (c == '\n') {
  3322. unput(c);
  3323. break;
  3324. }
  3325. c2 = c;
  3326. append_string(&c2, 1);
  3327. }
  3328. rest = text;
  3329. out = expand_one_token(&rest);
  3330. /* push back unused characters to the input stream */
  3331. end = rest + strlen(rest);
  3332. while (end > rest)
  3333. unput(*--end);
  3334. free(text);
  3335. return out;
  3336. }
  3337. static void append_expanded_string(const char *str)
  3338. {
  3339. const char *end;
  3340. char *res;
  3341. str++;
  3342. res = expand_dollar(&str);
  3343. /* push back unused characters to the input stream */
  3344. end = str + strlen(str);
  3345. while (end > str)
  3346. unput(*--end);
  3347. append_string(res, strlen(res));
  3348. free(res);
  3349. }
  3350. void zconf_starthelp(void)
  3351. {
  3352. new_string();
  3353. last_ts = first_ts = 0;
  3354. BEGIN(HELP);
  3355. }
  3356. static void zconf_endhelp(void)
  3357. {
  3358. yylval.string = text;
  3359. BEGIN(INITIAL);
  3360. }
  3361. /*
  3362. * Try to open specified file with following names:
  3363. * ./name
  3364. * $(srctree)/name
  3365. * The latter is used when srctree is separate from objtree
  3366. * when compiling the kernel.
  3367. * Return NULL if file is not found.
  3368. */
  3369. FILE *zconf_fopen(const char *name)
  3370. {
  3371. char *env, fullname[PATH_MAX+1];
  3372. FILE *f;
  3373. f = fopen(name, "r");
  3374. if (!f && name != NULL && name[0] != '/') {
  3375. env = getenv(SRCTREE);
  3376. if (env) {
  3377. snprintf(fullname, sizeof(fullname),
  3378. "%s/%s", env, name);
  3379. f = fopen(fullname, "r");
  3380. }
  3381. }
  3382. return f;
  3383. }
  3384. void zconf_initscan(const char *name)
  3385. {
  3386. yyin = zconf_fopen(name);
  3387. if (!yyin) {
  3388. fprintf(stderr, "can't find file %s\n", name);
  3389. exit(1);
  3390. }
  3391. current_buf = xmalloc(sizeof(*current_buf));
  3392. memset(current_buf, 0, sizeof(*current_buf));
  3393. current_file = file_lookup(name);
  3394. yylineno = 1;
  3395. }
  3396. static void __zconf_nextfile(const char *name)
  3397. {
  3398. struct file *iter;
  3399. struct file *file = file_lookup(name);
  3400. struct buffer *buf = xmalloc(sizeof(*buf));
  3401. memset(buf, 0, sizeof(*buf));
  3402. current_buf->state = YY_CURRENT_BUFFER;
  3403. yyin = zconf_fopen(file->name);
  3404. if (!yyin) {
  3405. fprintf(stderr, "%s:%d: can't open file \"%s\"\n",
  3406. zconf_curname(), zconf_lineno(), file->name);
  3407. exit(1);
  3408. }
  3409. yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
  3410. buf->parent = current_buf;
  3411. current_buf = buf;
  3412. current_file->lineno = yylineno;
  3413. file->parent = current_file;
  3414. for (iter = current_file; iter; iter = iter->parent) {
  3415. if (!strcmp(iter->name, file->name)) {
  3416. fprintf(stderr,
  3417. "Recursive inclusion detected.\n"
  3418. "Inclusion path:\n"
  3419. " current file : %s\n", file->name);
  3420. iter = file;
  3421. do {
  3422. iter = iter->parent;
  3423. fprintf(stderr, " included from: %s:%d\n",
  3424. iter->name, iter->lineno - 1);
  3425. } while (strcmp(iter->name, file->name));
  3426. exit(1);
  3427. }
  3428. }
  3429. yylineno = 1;
  3430. current_file = file;
  3431. }
  3432. void zconf_nextfile(const char *name)
  3433. {
  3434. glob_t gl;
  3435. int err;
  3436. int i;
  3437. char path[PATH_MAX], *p;
  3438. err = glob(name, GLOB_ERR | GLOB_MARK, NULL, &gl);
  3439. /* ignore wildcard patterns that return no result */
  3440. if (err == GLOB_NOMATCH && strchr(name, '*')) {
  3441. err = 0;
  3442. gl.gl_pathc = 0;
  3443. }
  3444. if (err == GLOB_NOMATCH) {
  3445. p = strdup(current_file->name);
  3446. if (p) {
  3447. snprintf(path, sizeof(path), "%s/%s", dirname(p), name);
  3448. err = glob(path, GLOB_ERR | GLOB_MARK, NULL, &gl);
  3449. free(p);
  3450. }
  3451. }
  3452. if (err) {
  3453. const char *reason = "unknown error";
  3454. switch (err) {
  3455. case GLOB_NOSPACE:
  3456. reason = "out of memory";
  3457. break;
  3458. case GLOB_ABORTED:
  3459. reason = "read error";
  3460. break;
  3461. case GLOB_NOMATCH:
  3462. reason = "No files found";
  3463. break;
  3464. default:
  3465. break;
  3466. }
  3467. printf("%s:%d: glob failed: %s \"%s\"\n", zconf_curname(), zconf_lineno(),
  3468. reason, name);
  3469. exit(1);
  3470. }
  3471. for (i = 0; i < gl.gl_pathc; i++)
  3472. __zconf_nextfile(gl.gl_pathv[i]);
  3473. }
  3474. static void zconf_endfile(void)
  3475. {
  3476. struct buffer *parent;
  3477. current_file = current_file->parent;
  3478. if (current_file)
  3479. yylineno = current_file->lineno;
  3480. parent = current_buf->parent;
  3481. if (parent) {
  3482. fclose(yyin);
  3483. yy_delete_buffer(YY_CURRENT_BUFFER);
  3484. yy_switch_to_buffer(parent->state);
  3485. }
  3486. free(current_buf);
  3487. current_buf = parent;
  3488. }
  3489. int zconf_lineno(void)
  3490. {
  3491. return current_pos.lineno;
  3492. }
  3493. const char *zconf_curname(void)
  3494. {
  3495. return current_pos.file ? current_pos.file->name : "<none>";
  3496. }