flextables.skl 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152
  1. %# -*-C-*- vi: set ft=c:
  2. %# This file is processed in several stages.
  3. %# Here are the stages, as best as I can describe:
  4. %#
  5. %# 1. flex.skl is processed through GNU m4 during the
  6. %# pre-compilation stage of flex. Only macros starting
  7. %# with `m4_' are processed, and quoting is normal.
  8. %#
  9. %# 2. The preprocessed skeleton is translated into a C array, saved
  10. %# as "skel.c" and compiled into the flex binary. The %# comment
  11. %# lines are removed.
  12. %#
  13. %# 3. At runtime, the skeleton is generated and filtered (again)
  14. %# through m4. Macros beginning with `m4_' will be processed.
  15. %# The quoting is "[[" and "]]" so we don't interfere with
  16. %# user code.
  17. %#
  18. %# All generated macros for the m4 stage contain the text "m4" or "M4"
  19. %# in them. This is to distinguish them from CPP macros.
  20. %# The exception to this rule is YY_G, which is an m4 macro,
  21. %# but it needs to be remain short because it is used everywhere.
  22. %#
  23. /* A lexical scanner generated by flex */
  24. %# Macros for preproc stage.
  25. %# Macros for runtime processing stage.
  26. m4_changecom
  27. m4_changequote
  28. m4_changequote([[, ]])
  29. %#
  30. %# Lines in this skeleton starting with a "%" character are "control lines"
  31. %# and affect the generation of the scanner. The possible control codes are
  32. %# listed and processed in misc.c.
  33. %#
  34. %# %# - A comment. The current line is omitted from the generated scanner.
  35. %# %if-c++-only - The following lines are printed for C++ scanners ONLY.
  36. %# %if-c-only - The following lines are NOT printed for C++ scanners.
  37. %# %if-c-or-c++ - The following lines are printed in BOTH C and C++ scanners.
  38. %# %if-reentrant - Print for reentrant scanners.(push)
  39. %# %if-not-reentrant - Print for non-reentrant scanners. (push)
  40. %# %if-bison-bridge - Print for bison-bridge. (push)
  41. %# %if-not-bison-bridge - Print for non-bison-bridge. (push)
  42. %# %endif - pop from the previous if code.
  43. %# %% - A stop-point, where code is inserted by flex.
  44. %# Each stop-point is numbered here and also in the code generator.
  45. %# (See gen.c, etc. for details.)
  46. %# %not-for-header - Begin code that should NOT appear in a ".h" file.
  47. %# %ok-for-header - %c and %e are used for building a header file.
  48. %# %if-tables-serialization
  49. %#
  50. %# All control-lines EXCEPT comment lines ("%#") will be inserted into
  51. %# the generated scanner as a C-style comment. This is to aid those who
  52. %# edit the skeleton.
  53. %#
  54. %not-for-header
  55. %if-c-only
  56. %if-not-reentrant
  57. m4_ifelse(M4_YY_PREFIX,yy,,
  58. #define yy_create_buffer M4_YY_PREFIX[[_create_buffer]]
  59. #define yy_delete_buffer M4_YY_PREFIX[[_delete_buffer]]
  60. #define yy_scan_buffer M4_YY_PREFIX[[_scan_buffer]]
  61. #define yy_scan_string M4_YY_PREFIX[[_scan_string]]
  62. #define yy_scan_bytes M4_YY_PREFIX[[_scan_bytes]]
  63. #define yy_init_buffer M4_YY_PREFIX[[_init_buffer]]
  64. #define yy_flush_buffer M4_YY_PREFIX[[_flush_buffer]]
  65. #define yy_load_buffer_state M4_YY_PREFIX[[_load_buffer_state]]
  66. #define yy_switch_to_buffer M4_YY_PREFIX[[_switch_to_buffer]]
  67. #define yypush_buffer_state M4_YY_PREFIX[[push_buffer_state]]
  68. #define yypop_buffer_state M4_YY_PREFIX[[pop_buffer_state]]
  69. #define yyensure_buffer_stack M4_YY_PREFIX[[ensure_buffer_stack]]
  70. #define yy_flex_debug M4_YY_PREFIX[[_flex_debug]]
  71. #define yyin M4_YY_PREFIX[[in]]
  72. #define yyleng M4_YY_PREFIX[[leng]]
  73. #define yylex M4_YY_PREFIX[[lex]]
  74. #define yylineno M4_YY_PREFIX[[lineno]]
  75. #define yyout M4_YY_PREFIX[[out]]
  76. #define yyrestart M4_YY_PREFIX[[restart]]
  77. #define yytext M4_YY_PREFIX[[text]]
  78. #define yywrap M4_YY_PREFIX[[wrap]]
  79. #define yyalloc M4_YY_PREFIX[[alloc]]
  80. #define yyrealloc M4_YY_PREFIX[[realloc]]
  81. #define yyfree M4_YY_PREFIX[[free]]
  82. )
  83. %endif
  84. %endif
  85. %ok-for-header
  86. #define FLEX_SCANNER
  87. #define YY_FLEX_MAJOR_VERSION 2
  88. #define YY_FLEX_MINOR_VERSION 6
  89. #define YY_FLEX_SUBMINOR_VERSION 4
  90. #if YY_FLEX_SUBMINOR_VERSION > 0
  91. #define FLEX_BETA
  92. #endif
  93. %# Some negated symbols
  94. m4_ifdef( [[M4_YY_IN_HEADER]], , [[m4_define([[M4_YY_NOT_IN_HEADER]], [[]])]])
  95. m4_ifdef( [[M4_YY_REENTRANT]], , [[m4_define([[M4_YY_NOT_REENTRANT]], [[]])]])
  96. %# This is the m4 way to say "(stack_used || is_reentrant)
  97. m4_ifdef( [[M4_YY_STACK_USED]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])
  98. m4_ifdef( [[M4_YY_REENTRANT]], [[m4_define([[M4_YY_HAS_START_STACK_VARS]])]])
  99. %# Prefixes.
  100. %# The complexity here is necessary so that m4 preserves
  101. %# the argument lists to each C function.
  102. m4_ifdef( [[M4_YY_PREFIX]],, [[m4_define([[M4_YY_PREFIX]], [[yy]])]])
  103. %if-c++-only
  104. /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
  105. * following macro. This is required in order to pass the c++-multiple-scanners
  106. * test in the regression suite. We get reports that it breaks inheritance.
  107. * We will address this in a future release of flex, or omit the C++ scanner
  108. * altogether.
  109. */
  110. #define yyFlexLexer M4_YY_PREFIX[[FlexLexer]]
  111. %endif
  112. %if-c-only
  113. m4_ifelse(M4_YY_PREFIX,yy,,
  114. [[#ifdef yy_create_buffer
  115. #define ]]M4_YY_PREFIX[[_create_buffer_ALREADY_DEFINED
  116. #else
  117. #define yy_create_buffer ]]M4_YY_PREFIX[[_create_buffer
  118. #endif]]
  119. [[#ifdef yy_delete_buffer
  120. #define ]]M4_YY_PREFIX[[_delete_buffer_ALREADY_DEFINED
  121. #else
  122. #define yy_delete_buffer ]]M4_YY_PREFIX[[_delete_buffer
  123. #endif]]
  124. [[#ifdef yy_scan_buffer
  125. #define ]]M4_YY_PREFIX[[_scan_buffer_ALREADY_DEFINED
  126. #else
  127. #define yy_scan_buffer ]]M4_YY_PREFIX[[_scan_buffer
  128. #endif]]
  129. [[#ifdef yy_scan_string
  130. #define ]]M4_YY_PREFIX[[_scan_string_ALREADY_DEFINED
  131. #else
  132. #define yy_scan_string ]]M4_YY_PREFIX[[_scan_string
  133. #endif]]
  134. [[#ifdef yy_scan_bytes
  135. #define ]]M4_YY_PREFIX[[_scan_bytes_ALREADY_DEFINED
  136. #else
  137. #define yy_scan_bytes ]]M4_YY_PREFIX[[_scan_bytes
  138. #endif]]
  139. [[#ifdef yy_init_buffer
  140. #define ]]M4_YY_PREFIX[[_init_buffer_ALREADY_DEFINED
  141. #else
  142. #define yy_init_buffer ]]M4_YY_PREFIX[[_init_buffer
  143. #endif]]
  144. [[#ifdef yy_flush_buffer
  145. #define ]]M4_YY_PREFIX[[_flush_buffer_ALREADY_DEFINED
  146. #else
  147. #define yy_flush_buffer ]]M4_YY_PREFIX[[_flush_buffer
  148. #endif]]
  149. [[#ifdef yy_load_buffer_state
  150. #define ]]M4_YY_PREFIX[[_load_buffer_state_ALREADY_DEFINED
  151. #else
  152. #define yy_load_buffer_state ]]M4_YY_PREFIX[[_load_buffer_state
  153. #endif]]
  154. [[#ifdef yy_switch_to_buffer
  155. #define ]]M4_YY_PREFIX[[_switch_to_buffer_ALREADY_DEFINED
  156. #else
  157. #define yy_switch_to_buffer ]]M4_YY_PREFIX[[_switch_to_buffer
  158. #endif]]
  159. [[#ifdef yypush_buffer_state
  160. #define ]]M4_YY_PREFIX[[push_buffer_state_ALREADY_DEFINED
  161. #else
  162. #define yypush_buffer_state ]]M4_YY_PREFIX[[push_buffer_state
  163. #endif]]
  164. [[#ifdef yypop_buffer_state
  165. #define ]]M4_YY_PREFIX[[pop_buffer_state_ALREADY_DEFINED
  166. #else
  167. #define yypop_buffer_state ]]M4_YY_PREFIX[[pop_buffer_state
  168. #endif]]
  169. [[#ifdef yyensure_buffer_stack
  170. #define ]]M4_YY_PREFIX[[ensure_buffer_stack_ALREADY_DEFINED
  171. #else
  172. #define yyensure_buffer_stack ]]M4_YY_PREFIX[[ensure_buffer_stack
  173. #endif]]
  174. [[#ifdef yylex
  175. #define ]]M4_YY_PREFIX[[lex_ALREADY_DEFINED
  176. #else
  177. #define yylex ]]M4_YY_PREFIX[[lex
  178. #endif]]
  179. [[#ifdef yyrestart
  180. #define ]]M4_YY_PREFIX[[restart_ALREADY_DEFINED
  181. #else
  182. #define yyrestart ]]M4_YY_PREFIX[[restart
  183. #endif]]
  184. [[#ifdef yylex_init
  185. #define ]]M4_YY_PREFIX[[lex_init_ALREADY_DEFINED
  186. #else
  187. #define yylex_init ]]M4_YY_PREFIX[[lex_init
  188. #endif]]
  189. [[#ifdef yylex_init_extra
  190. #define ]]M4_YY_PREFIX[[lex_init_extra_ALREADY_DEFINED
  191. #else
  192. #define yylex_init_extra ]]M4_YY_PREFIX[[lex_init_extra
  193. #endif]]
  194. [[#ifdef yylex_destroy
  195. #define ]]M4_YY_PREFIX[[lex_destroy_ALREADY_DEFINED
  196. #else
  197. #define yylex_destroy ]]M4_YY_PREFIX[[lex_destroy
  198. #endif]]
  199. [[#ifdef yyget_debug
  200. #define ]]M4_YY_PREFIX[[get_debug_ALREADY_DEFINED
  201. #else
  202. #define yyget_debug ]]M4_YY_PREFIX[[get_debug
  203. #endif]]
  204. [[#ifdef yyset_debug
  205. #define ]]M4_YY_PREFIX[[set_debug_ALREADY_DEFINED
  206. #else
  207. #define yyset_debug ]]M4_YY_PREFIX[[set_debug
  208. #endif]]
  209. [[#ifdef yyget_extra
  210. #define ]]M4_YY_PREFIX[[get_extra_ALREADY_DEFINED
  211. #else
  212. #define yyget_extra ]]M4_YY_PREFIX[[get_extra
  213. #endif]]
  214. [[#ifdef yyset_extra
  215. #define ]]M4_YY_PREFIX[[set_extra_ALREADY_DEFINED
  216. #else
  217. #define yyset_extra ]]M4_YY_PREFIX[[set_extra
  218. #endif]]
  219. [[#ifdef yyget_in
  220. #define ]]M4_YY_PREFIX[[get_in_ALREADY_DEFINED
  221. #else
  222. #define yyget_in ]]M4_YY_PREFIX[[get_in
  223. #endif]]
  224. [[#ifdef yyset_in
  225. #define ]]M4_YY_PREFIX[[set_in_ALREADY_DEFINED
  226. #else
  227. #define yyset_in ]]M4_YY_PREFIX[[set_in
  228. #endif]]
  229. [[#ifdef yyget_out
  230. #define ]]M4_YY_PREFIX[[get_out_ALREADY_DEFINED
  231. #else
  232. #define yyget_out ]]M4_YY_PREFIX[[get_out
  233. #endif]]
  234. [[#ifdef yyset_out
  235. #define ]]M4_YY_PREFIX[[set_out_ALREADY_DEFINED
  236. #else
  237. #define yyset_out ]]M4_YY_PREFIX[[set_out
  238. #endif]]
  239. [[#ifdef yyget_leng
  240. #define ]]M4_YY_PREFIX[[get_leng_ALREADY_DEFINED
  241. #else
  242. #define yyget_leng ]]M4_YY_PREFIX[[get_leng
  243. #endif]]
  244. [[#ifdef yyget_text
  245. #define ]]M4_YY_PREFIX[[get_text_ALREADY_DEFINED
  246. #else
  247. #define yyget_text ]]M4_YY_PREFIX[[get_text
  248. #endif]]
  249. [[#ifdef yyget_lineno
  250. #define ]]M4_YY_PREFIX[[get_lineno_ALREADY_DEFINED
  251. #else
  252. #define yyget_lineno ]]M4_YY_PREFIX[[get_lineno
  253. #endif]]
  254. [[#ifdef yyset_lineno
  255. #define ]]M4_YY_PREFIX[[set_lineno_ALREADY_DEFINED
  256. #else
  257. #define yyset_lineno ]]M4_YY_PREFIX[[set_lineno
  258. #endif]]
  259. m4_ifdef( [[M4_YY_REENTRANT]],
  260. [[
  261. [[#ifdef yyget_column
  262. #define ]]M4_YY_PREFIX[[get_column_ALREADY_DEFINED
  263. #else
  264. #define yyget_column ]]M4_YY_PREFIX[[get_column
  265. #endif]]
  266. [[#ifdef yyset_column
  267. #define ]]M4_YY_PREFIX[[set_column_ALREADY_DEFINED
  268. #else
  269. #define yyset_column ]]M4_YY_PREFIX[[set_column
  270. #endif]]
  271. ]])
  272. [[#ifdef yywrap
  273. #define ]]M4_YY_PREFIX[[wrap_ALREADY_DEFINED
  274. #else
  275. #define yywrap ]]M4_YY_PREFIX[[wrap
  276. #endif]]
  277. )
  278. %endif
  279. m4_ifdef( [[M4_YY_BISON_LVAL]],
  280. [[
  281. [[#ifdef yyget_lval
  282. #define ]]M4_YY_PREFIX[[get_lval_ALREADY_DEFINED
  283. #else
  284. #define yyget_lval ]]M4_YY_PREFIX[[get_lval
  285. #endif]]
  286. [[#ifdef yyset_lval
  287. #define ]]M4_YY_PREFIX[[set_lval_ALREADY_DEFINED
  288. #else
  289. #define yyset_lval ]]M4_YY_PREFIX[[set_lval
  290. #endif]]
  291. ]])
  292. m4_ifdef( [[<M4_YY_BISON_LLOC>]],
  293. [[
  294. [[#ifdef yyget_lloc
  295. #define ]]M4_YY_PREFIX[[get_lloc_ALREADY_DEFINED
  296. #else
  297. #define yyget_lloc ]]M4_YY_PREFIX[[get_lloc
  298. #endif]]
  299. [[#ifdef yyset_lloc
  300. #define ]]M4_YY_PREFIX[[set_lloc_ALREADY_DEFINED
  301. #else
  302. #define yyset_lloc ]]M4_YY_PREFIX[[set_lloc
  303. #endif]]
  304. ]])
  305. m4_ifelse(M4_YY_PREFIX,yy,,
  306. [[#ifdef yyalloc
  307. #define ]]M4_YY_PREFIX[[alloc_ALREADY_DEFINED
  308. #else
  309. #define yyalloc ]]M4_YY_PREFIX[[alloc
  310. #endif]]
  311. [[#ifdef yyrealloc
  312. #define ]]M4_YY_PREFIX[[realloc_ALREADY_DEFINED
  313. #else
  314. #define yyrealloc ]]M4_YY_PREFIX[[realloc
  315. #endif]]
  316. [[#ifdef yyfree
  317. #define ]]M4_YY_PREFIX[[free_ALREADY_DEFINED
  318. #else
  319. #define yyfree ]]M4_YY_PREFIX[[free
  320. #endif]]
  321. )
  322. %if-c-only
  323. m4_ifelse(M4_YY_PREFIX,yy,,
  324. m4_ifdef( [[M4_YY_NOT_REENTRANT]],
  325. [[
  326. [[#ifdef yytext
  327. #define ]]M4_YY_PREFIX[[text_ALREADY_DEFINED
  328. #else
  329. #define yytext ]]M4_YY_PREFIX[[text
  330. #endif]]
  331. [[#ifdef yyleng
  332. #define ]]M4_YY_PREFIX[[leng_ALREADY_DEFINED
  333. #else
  334. #define yyleng ]]M4_YY_PREFIX[[leng
  335. #endif]]
  336. [[#ifdef yyin
  337. #define ]]M4_YY_PREFIX[[in_ALREADY_DEFINED
  338. #else
  339. #define yyin ]]M4_YY_PREFIX[[in
  340. #endif]]
  341. [[#ifdef yyout
  342. #define ]]M4_YY_PREFIX[[out_ALREADY_DEFINED
  343. #else
  344. #define yyout ]]M4_YY_PREFIX[[out
  345. #endif]]
  346. [[#ifdef yy_flex_debug
  347. #define ]]M4_YY_PREFIX[[_flex_debug_ALREADY_DEFINED
  348. #else
  349. #define yy_flex_debug ]]M4_YY_PREFIX[[_flex_debug
  350. #endif]]
  351. [[#ifdef yylineno
  352. #define ]]M4_YY_PREFIX[[lineno_ALREADY_DEFINED
  353. #else
  354. #define yylineno ]]M4_YY_PREFIX[[lineno
  355. #endif]]
  356. ]])
  357. )
  358. %endif
  359. m4_ifdef( [[M4_YY_TABLES_EXTERNAL]],
  360. [[
  361. [[#ifdef yytables_fload
  362. #define ]]M4_YY_PREFIX[[tables_fload_ALREADY_DEFINED
  363. #else
  364. #define yytables_fload ]]M4_YY_PREFIX[[tables_fload
  365. #endif]]
  366. [[#ifdef yytables_destroy
  367. #define ]]M4_YY_PREFIX[[tables_destroy_ALREADY_DEFINED
  368. #else
  369. #define yytables_destroy ]]M4_YY_PREFIX[[tables_destroy
  370. #endif]]
  371. [[#ifdef yyTABLES_NAME
  372. #define ]]M4_YY_PREFIX[[TABLES_NAME_ALREADY_DEFINED
  373. #else
  374. #define yyTABLES_NAME ]]M4_YY_PREFIX[[TABLES_NAME
  375. #endif]]
  376. ]])
  377. /* First, we deal with platform-specific or compiler-specific issues. */
  378. /* begin standard C headers. */
  379. %if-c-only
  380. m4_ifdef( [[M4_YY_ALWAYS_INTERACTIVE]], ,
  381. [[m4_ifdef( [[M4_YY_NEVER_INTERACTIVE]], ,
  382. [[/* Feature test macros. Flex uses functions that require a minimum set of
  383. * macros defined. As defining some macros may hide function declarations that
  384. * user code might use, be conservative and respect user's definitions as much
  385. * as possible. In glibc, feature test macros may not be all set up until one
  386. * of the libc header (that includes <features.h>) is included. This creates
  387. * a circular dependency when we check the macros. <assert.h> is the safest
  388. * header we can include and does not declare too many functions we don't need.
  389. */
  390. #if !defined(__GNU_LIBRARY__) && defined(__STDC__)
  391. #include <assert.h>
  392. #endif
  393. #if !(defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
  394. defined(_POSIX_SOURCE))
  395. # define _POSIX_C_SOURCE 1 /* Required for fileno() */
  396. # define _POSIX_SOURCE 1
  397. #endif]])]])
  398. #include <stdio.h>
  399. #include <string.h>
  400. #include <errno.h>
  401. #include <stdlib.h>
  402. %endif
  403. %if-tables-serialization
  404. #include <sys/types.h>
  405. #include <netinet/in.h>
  406. %endif
  407. /* end standard C headers. */
  408. /* begin standard C++ headers. */
  409. %if-c++-only
  410. #include <iostream>
  411. #include <errno.h>
  412. #include <cstdlib>
  413. #include <cstdio>
  414. #include <cstring>
  415. /* end standard C++ headers. */
  416. %endif
  417. %if-c-or-c++
  418. /* flex integer type definitions */
  419. #ifndef YYFLEX_INTTYPES_DEFINED
  420. #define YYFLEX_INTTYPES_DEFINED
  421. /* Prefer C99 integer types if available. */
  422. # if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  423. /* Include <inttypes.h> and not <stdint.h> because Solaris 2.6 has the former
  424. * and not the latter.
  425. */
  426. #include <inttypes.h>
  427. # define YYFLEX_USE_STDINT
  428. # else
  429. # if defined(_MSC_VER) && _MSC_VER >= 1600
  430. /* Visual C++ 2010 does not define __STDC_VERSION__ and has <stdint.h> but not
  431. * <inttypes.h>.
  432. */
  433. #include <stdint.h>
  434. # define YYFLEX_USE_STDINT
  435. # endif
  436. # endif
  437. # ifdef YYFLEX_USE_STDINT
  438. typedef int8_t flex_int8_t;
  439. typedef uint8_t flex_uint8_t;
  440. typedef int16_t flex_int16_t;
  441. typedef uint16_t flex_uint16_t;
  442. typedef int32_t flex_int32_t;
  443. typedef uint32_t flex_uint32_t;
  444. # else
  445. typedef unsigned char flex_uint8_t;
  446. typedef short int flex_int16_t;
  447. typedef unsigned short int flex_uint16_t;
  448. # ifdef __STDC__
  449. typedef signed char flex_int8_t;
  450. /* ISO C only requires at least 16 bits for int. */
  451. #include <limits.h>
  452. # if UINT_MAX >= 4294967295
  453. # define YYFLEX_INT32_DEFINED
  454. typedef int flex_int32_t;
  455. typedef unsigned int flex_uint32_t;
  456. # endif
  457. # else
  458. typedef char flex_int8_t;
  459. # endif
  460. # ifndef YYFLEX_INT32_DEFINED
  461. typedef long int flex_int32_t;
  462. typedef unsigned long int flex_uint32_t;
  463. # endif
  464. # endif
  465. #endif /* YYFLEX_INTTYPES_DEFINED */
  466. %endif
  467. /* TODO: this is always defined, so inline it */
  468. #define yyconst const
  469. #if defined(__GNUC__) && __GNUC__ >= 3
  470. #define yynoreturn __attribute__((__noreturn__))
  471. #else
  472. #define yynoreturn
  473. #endif
  474. %not-for-header
  475. /* Returned upon end-of-file. */
  476. #define YY_NULL 0
  477. %ok-for-header
  478. %not-for-header
  479. /* Promotes a possibly negative, possibly signed char to an
  480. * integer in range [0..255] for use as an array index.
  481. */
  482. #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
  483. %ok-for-header
  484. %if-reentrant
  485. /* An opaque pointer. */
  486. #ifndef YY_TYPEDEF_YY_SCANNER_T
  487. #define YY_TYPEDEF_YY_SCANNER_T
  488. typedef void* yyscan_t;
  489. #endif
  490. %# Declare yyguts variable
  491. m4_define( [[M4_YY_DECL_GUTS_VAR]], [[struct yyguts_t * yyg = (struct yyguts_t*)yyscanner]])
  492. %# Perform a noop access on yyguts to prevent unused variable complains
  493. m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[(void)yyg]])
  494. %# For use wherever a Global is accessed or assigned.
  495. m4_define( [[YY_G]], [[yyg->$1]])
  496. %# For use in function prototypes to append the additional argument.
  497. m4_define( [[M4_YY_PROTO_LAST_ARG]], [[, yyscan_t yyscanner]])
  498. m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[yyscan_t yyscanner]])
  499. m4_define( [[M4_YY_DEF_LAST_ARG]], [[, yyscan_t yyscanner]])
  500. m4_define( [[M4_YY_DEF_ONLY_ARG]], [[yyscan_t yyscanner]])
  501. m4_define( [[M4_YY_DECL_LAST_ARG]], [[yyscan_t yyscanner;]])
  502. %# For use in function calls to pass the additional argument.
  503. m4_define( [[M4_YY_CALL_LAST_ARG]], [[, yyscanner]])
  504. m4_define( [[M4_YY_CALL_ONLY_ARG]], [[yyscanner]])
  505. %# For use in function documentation to adjust for additional argument.
  506. m4_define( [[M4_YY_DOC_PARAM]], [[@param yyscanner The scanner object.]])
  507. /* For convenience, these vars (plus the bison vars far below)
  508. are macros in the reentrant scanner. */
  509. #define yyin YY_G(yyin_r)
  510. #define yyout YY_G(yyout_r)
  511. #define yyextra YY_G(yyextra_r)
  512. #define yyleng YY_G(yyleng_r)
  513. #define yytext YY_G(yytext_r)
  514. #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
  515. #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
  516. #define yy_flex_debug YY_G(yy_flex_debug_r)
  517. m4_define( [[M4_YY_INCR_LINENO]],
  518. [[
  519. do{ yylineno++;
  520. yycolumn=0;
  521. }while(0)
  522. ]])
  523. %endif
  524. %if-not-reentrant
  525. m4_define( [[M4_YY_INCR_LINENO]],
  526. [[
  527. yylineno++;
  528. ]])
  529. %# Define these macros to be no-ops.
  530. m4_define( [[M4_YY_DECL_GUTS_VAR]], [[m4_dnl]])
  531. m4_define( [[M4_YY_NOOP_GUTS_VAR]], [[m4_dnl]])
  532. m4_define( [[YY_G]], [[($1)]])
  533. m4_define( [[M4_YY_PROTO_LAST_ARG]])
  534. m4_define( [[M4_YY_PROTO_ONLY_ARG]], [[void]])
  535. m4_define( [[M4_YY_DEF_LAST_ARG]])
  536. m4_define( [[M4_YY_DEF_ONLY_ARG]], [[void]])
  537. m4_define([[M4_YY_DECL_LAST_ARG]])
  538. m4_define([[M4_YY_CALL_LAST_ARG]])
  539. m4_define([[M4_YY_CALL_ONLY_ARG]])
  540. m4_define( [[M4_YY_DOC_PARAM]], )
  541. %endif
  542. %# Generate C99 function defs.
  543. m4_define( [[YYFARGS1]], [[($1 $2 M4_YY_DEF_LAST_ARG)]])
  544. m4_define( [[YYFARGS2]], [[($1 $2, $3 $4 M4_YY_DEF_LAST_ARG)]])
  545. m4_define( [[YYFARGS3]], [[($1 $2, $3 $4, $5 $6 M4_YY_DEF_LAST_ARG)]])
  546. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  547. [[
  548. /* Enter a start condition. This macro really ought to take a parameter,
  549. * but we do it the disgusting crufty way forced on us by the ()-less
  550. * definition of BEGIN.
  551. */
  552. #define BEGIN YY_G(yy_start) = 1 + 2 *
  553. /* Translate the current start state into a value that can be later handed
  554. * to BEGIN to return to the state. The YYSTATE alias is for lex
  555. * compatibility.
  556. */
  557. #define YY_START ((YY_G(yy_start) - 1) / 2)
  558. #define YYSTATE YY_START
  559. /* Action number for EOF rule of a given start state. */
  560. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  561. /* Special action meaning "start processing a new file". */
  562. #define YY_NEW_FILE yyrestart( yyin M4_YY_CALL_LAST_ARG )
  563. #define YY_END_OF_BUFFER_CHAR 0
  564. ]])
  565. /* Size of default input buffer. */
  566. #ifndef YY_BUF_SIZE
  567. #ifdef __ia64__
  568. /* On IA-64, the buffer size is 16k, not 8k.
  569. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
  570. * Ditto for the __ia64__ case accordingly.
  571. */
  572. #define YY_BUF_SIZE 32768
  573. #else
  574. #define YY_BUF_SIZE 16384
  575. #endif /* __ia64__ */
  576. #endif
  577. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  578. [[
  579. /* The state buf must be large enough to hold one state per character in the main buffer.
  580. */
  581. #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
  582. ]])
  583. #ifndef YY_TYPEDEF_YY_BUFFER_STATE
  584. #define YY_TYPEDEF_YY_BUFFER_STATE
  585. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  586. #endif
  587. #ifndef YY_TYPEDEF_YY_SIZE_T
  588. #define YY_TYPEDEF_YY_SIZE_T
  589. typedef size_t yy_size_t;
  590. #endif
  591. %if-not-reentrant
  592. extern int yyleng;
  593. %endif
  594. %if-c-only
  595. %if-not-reentrant
  596. extern FILE *yyin, *yyout;
  597. %endif
  598. %endif
  599. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  600. [[
  601. #define EOB_ACT_CONTINUE_SCAN 0
  602. #define EOB_ACT_END_OF_FILE 1
  603. #define EOB_ACT_LAST_MATCH 2
  604. m4_ifdef( [[M4_YY_USE_LINENO]],
  605. [[
  606. /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
  607. * access to the local variable yy_act. Since yyless() is a macro, it would break
  608. * existing scanners that call yyless() from OUTSIDE yylex.
  609. * One obvious solution it to make yy_act a global. I tried that, and saw
  610. * a 5% performance hit in a non-yylineno scanner, because yy_act is
  611. * normally declared as a register variable-- so it is not worth it.
  612. */
  613. #define YY_LESS_LINENO(n) \
  614. do { \
  615. int yyl;\
  616. for ( yyl = n; yyl < yyleng; ++yyl )\
  617. if ( yytext[yyl] == '\n' )\
  618. --yylineno;\
  619. }while(0)
  620. #define YY_LINENO_REWIND_TO(dst) \
  621. do {\
  622. const char *p;\
  623. for ( p = yy_cp-1; p >= (dst); --p)\
  624. if ( *p == '\n' )\
  625. --yylineno;\
  626. }while(0)
  627. ]],
  628. [[
  629. #define YY_LESS_LINENO(n)
  630. #define YY_LINENO_REWIND_TO(ptr)
  631. ]])
  632. /* Return all but the first "n" matched characters back to the input stream. */
  633. #define yyless(n) \
  634. do \
  635. { \
  636. /* Undo effects of setting up yytext. */ \
  637. int yyless_macro_arg = (n); \
  638. YY_LESS_LINENO(yyless_macro_arg);\
  639. *yy_cp = YY_G(yy_hold_char); \
  640. YY_RESTORE_YY_MORE_OFFSET \
  641. YY_G(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  642. YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  643. } \
  644. while ( 0 )
  645. #define unput(c) yyunput( c, YY_G(yytext_ptr) M4_YY_CALL_LAST_ARG )
  646. ]])
  647. #ifndef YY_STRUCT_YY_BUFFER_STATE
  648. #define YY_STRUCT_YY_BUFFER_STATE
  649. struct yy_buffer_state
  650. {
  651. %if-c-only
  652. FILE *yy_input_file;
  653. %endif
  654. %if-c++-only
  655. std::streambuf* yy_input_file;
  656. %endif
  657. char *yy_ch_buf; /* input buffer */
  658. char *yy_buf_pos; /* current position in input buffer */
  659. /* Size of input buffer in bytes, not including room for EOB
  660. * characters.
  661. */
  662. int yy_buf_size;
  663. /* Number of characters read into yy_ch_buf, not including EOB
  664. * characters.
  665. */
  666. int yy_n_chars;
  667. /* Whether we "own" the buffer - i.e., we know we created it,
  668. * and can realloc() it to grow it, and should free() it to
  669. * delete it.
  670. */
  671. int yy_is_our_buffer;
  672. /* Whether this is an "interactive" input source; if so, and
  673. * if we're using stdio for input, then we want to use getc()
  674. * instead of fread(), to make sure we stop fetching input after
  675. * each newline.
  676. */
  677. int yy_is_interactive;
  678. /* Whether we're considered to be at the beginning of a line.
  679. * If so, '^' rules will be active on the next match, otherwise
  680. * not.
  681. */
  682. int yy_at_bol;
  683. int yy_bs_lineno; /**< The line count. */
  684. int yy_bs_column; /**< The column count. */
  685. /* Whether to try to fill the input buffer when we reach the
  686. * end of it.
  687. */
  688. int yy_fill_buffer;
  689. int yy_buffer_status;
  690. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  691. [[
  692. #define YY_BUFFER_NEW 0
  693. #define YY_BUFFER_NORMAL 1
  694. /* When an EOF's been seen but there's still some text to process
  695. * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  696. * shouldn't try reading from the input source any more. We might
  697. * still have a bunch of tokens to match, though, because of
  698. * possible backing-up.
  699. *
  700. * When we actually see the EOF, we change the status to "new"
  701. * (via yyrestart()), so that the user can continue scanning by
  702. * just pointing yyin at a new input file.
  703. */
  704. #define YY_BUFFER_EOF_PENDING 2
  705. ]])
  706. };
  707. #endif /* !YY_STRUCT_YY_BUFFER_STATE */
  708. %if-c-only Standard (non-C++) definition
  709. %not-for-header
  710. %if-not-reentrant
  711. /* Stack of input buffers. */
  712. static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
  713. static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
  714. static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
  715. %endif
  716. %ok-for-header
  717. %endif
  718. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  719. [[
  720. /* We provide macros for accessing buffer states in case in the
  721. * future we want to put the buffer states in a more general
  722. * "scanner state".
  723. *
  724. * Returns the top of the stack, or NULL.
  725. */
  726. #define YY_CURRENT_BUFFER ( YY_G(yy_buffer_stack) \
  727. ? YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)] \
  728. : NULL)
  729. /* Same as previous macro, but useful when we know that the buffer stack is not
  730. * NULL or when we need an lvalue. For internal use only.
  731. */
  732. #define YY_CURRENT_BUFFER_LVALUE YY_G(yy_buffer_stack)[YY_G(yy_buffer_stack_top)]
  733. ]])
  734. %if-c-only Standard (non-C++) definition
  735. %if-not-reentrant
  736. %not-for-header
  737. /* yy_hold_char holds the character lost when yytext is formed. */
  738. static char yy_hold_char;
  739. static int yy_n_chars; /* number of characters read into yy_ch_buf */
  740. int yyleng;
  741. /* Points to current character in buffer. */
  742. static char *yy_c_buf_p = NULL;
  743. static int yy_init = 0; /* whether we need to initialize */
  744. static int yy_start = 0; /* start state number */
  745. /* Flag which is used to allow yywrap()'s to do buffer switches
  746. * instead of setting up a fresh yyin. A bit of a hack ...
  747. */
  748. static int yy_did_buffer_switch_on_eof;
  749. %ok-for-header
  750. %endif
  751. void yyrestart ( FILE *input_file M4_YY_PROTO_LAST_ARG );
  752. void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
  753. YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size M4_YY_PROTO_LAST_ARG );
  754. void yy_delete_buffer ( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
  755. void yy_flush_buffer ( YY_BUFFER_STATE b M4_YY_PROTO_LAST_ARG );
  756. void yypush_buffer_state ( YY_BUFFER_STATE new_buffer M4_YY_PROTO_LAST_ARG );
  757. void yypop_buffer_state ( M4_YY_PROTO_ONLY_ARG );
  758. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  759. [[
  760. static void yyensure_buffer_stack ( M4_YY_PROTO_ONLY_ARG );
  761. static void yy_load_buffer_state ( M4_YY_PROTO_ONLY_ARG );
  762. static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file M4_YY_PROTO_LAST_ARG );
  763. #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER M4_YY_CALL_LAST_ARG)
  764. ]])
  765. YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size M4_YY_PROTO_LAST_ARG );
  766. YY_BUFFER_STATE yy_scan_string ( const char *yy_str M4_YY_PROTO_LAST_ARG );
  767. YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len M4_YY_PROTO_LAST_ARG );
  768. %endif
  769. void *yyalloc ( yy_size_t M4_YY_PROTO_LAST_ARG );
  770. void *yyrealloc ( void *, yy_size_t M4_YY_PROTO_LAST_ARG );
  771. void yyfree ( void * M4_YY_PROTO_LAST_ARG );
  772. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  773. [[
  774. #define yy_new_buffer yy_create_buffer
  775. #define yy_set_interactive(is_interactive) \
  776. { \
  777. if ( ! YY_CURRENT_BUFFER ){ \
  778. yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG); \
  779. YY_CURRENT_BUFFER_LVALUE = \
  780. yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG); \
  781. } \
  782. YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
  783. }
  784. #define yy_set_bol(at_bol) \
  785. { \
  786. if ( ! YY_CURRENT_BUFFER ){\
  787. yyensure_buffer_stack (M4_YY_CALL_ONLY_ARG); \
  788. YY_CURRENT_BUFFER_LVALUE = \
  789. yy_create_buffer( yyin, YY_BUF_SIZE M4_YY_CALL_LAST_ARG); \
  790. } \
  791. YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
  792. }
  793. #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
  794. ]])
  795. %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here
  796. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  797. [[
  798. %% [1.5] DFA
  799. ]])
  800. %if-c-only Standard (non-C++) definition
  801. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  802. [[
  803. static yy_state_type yy_get_previous_state ( M4_YY_PROTO_ONLY_ARG );
  804. static yy_state_type yy_try_NUL_trans ( yy_state_type current_state M4_YY_PROTO_LAST_ARG);
  805. static int yy_get_next_buffer ( M4_YY_PROTO_ONLY_ARG );
  806. static void yynoreturn yy_fatal_error ( const char* msg M4_YY_PROTO_LAST_ARG );
  807. ]])
  808. %endif
  809. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  810. [[
  811. /* Done after the current pattern has been matched and before the
  812. * corresponding action - sets up yytext.
  813. */
  814. #define YY_DO_BEFORE_ACTION \
  815. YY_G(yytext_ptr) = yy_bp; \
  816. %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \
  817. YY_G(yy_hold_char) = *yy_cp; \
  818. *yy_cp = '\0'; \
  819. %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \
  820. YY_G(yy_c_buf_p) = yy_cp;
  821. %% [4.0] data tables for the DFA and the user's section 1 definitions go here
  822. ]])
  823. m4_ifdef( [[M4_YY_IN_HEADER]], [[#ifdef YY_HEADER_EXPORT_START_CONDITIONS]])
  824. M4_YY_SC_DEFS
  825. m4_ifdef( [[M4_YY_IN_HEADER]], [[#endif]])
  826. m4_ifdef( [[M4_YY_NO_UNISTD_H]],,
  827. [[
  828. #ifndef YY_NO_UNISTD_H
  829. /* Special case for "unistd.h", since it is non-ANSI. We include it way
  830. * down here because we want the user's section 1 to have been scanned first.
  831. * The user has a chance to override it with an option.
  832. */
  833. %if-c-only
  834. #include <unistd.h>
  835. %endif
  836. %if-c++-only
  837. #include <unistd.h>
  838. %endif
  839. #endif
  840. ]])
  841. m4_ifdef( [[M4_EXTRA_TYPE_DEFS]],
  842. [[
  843. #define YY_EXTRA_TYPE M4_EXTRA_TYPE_DEFS
  844. ]],
  845. [[
  846. #ifndef YY_EXTRA_TYPE
  847. #define YY_EXTRA_TYPE void *
  848. #endif
  849. ]]
  850. )
  851. %if-c-only Reentrant structure and macros (non-C++).
  852. %if-reentrant
  853. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  854. [[
  855. /* Holds the entire state of the reentrant scanner. */
  856. struct yyguts_t
  857. {
  858. /* User-defined. Not touched by flex. */
  859. YY_EXTRA_TYPE yyextra_r;
  860. /* The rest are the same as the globals declared in the non-reentrant scanner. */
  861. FILE *yyin_r, *yyout_r;
  862. size_t yy_buffer_stack_top; /**< index of top of stack. */
  863. size_t yy_buffer_stack_max; /**< capacity of stack. */
  864. YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
  865. char yy_hold_char;
  866. int yy_n_chars;
  867. int yyleng_r;
  868. char *yy_c_buf_p;
  869. int yy_init;
  870. int yy_start;
  871. int yy_did_buffer_switch_on_eof;
  872. int yy_start_stack_ptr;
  873. int yy_start_stack_depth;
  874. int *yy_start_stack;
  875. yy_state_type yy_last_accepting_state;
  876. char* yy_last_accepting_cpos;
  877. int yylineno_r;
  878. int yy_flex_debug_r;
  879. m4_ifdef( [[M4_YY_USES_REJECT]],
  880. [[
  881. yy_state_type *yy_state_buf;
  882. yy_state_type *yy_state_ptr;
  883. char *yy_full_match;
  884. int yy_lp;
  885. /* These are only needed for trailing context rules,
  886. * but there's no conditional variable for that yet. */
  887. int yy_looking_for_trail_begin;
  888. int yy_full_lp;
  889. int *yy_full_state;
  890. ]])
  891. m4_ifdef( [[M4_YY_TEXT_IS_ARRAY]],
  892. [[
  893. char yytext_r[YYLMAX];
  894. char *yytext_ptr;
  895. int yy_more_offset;
  896. int yy_prev_more_offset;
  897. ]],
  898. [[
  899. char *yytext_r;
  900. int yy_more_flag;
  901. int yy_more_len;
  902. ]])
  903. m4_ifdef( [[M4_YY_BISON_LVAL]],
  904. [[
  905. YYSTYPE * yylval_r;
  906. ]])
  907. m4_ifdef( [[<M4_YY_BISON_LLOC>]],
  908. [[
  909. YYLTYPE * yylloc_r;
  910. ]])
  911. }; /* end struct yyguts_t */
  912. ]])
  913. %if-c-only
  914. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  915. [[
  916. static int yy_init_globals ( M4_YY_PROTO_ONLY_ARG );
  917. ]])
  918. %endif
  919. %if-reentrant
  920. m4_ifdef( [[M4_YY_NOT_IN_HEADER]],
  921. [[
  922. m4_ifdef( [[M4_YY_BISON_LVAL]],
  923. [[
  924. /* This must go here because YYSTYPE and YYLTYPE are included
  925. * from bison output in section 1.*/
  926. # define yylval YY_G(yylval_r)
  927. ]])
  928. m4_ifdef( [[<M4_YY_BISON_LLOC>]],
  929. [[
  930. # define yylloc YY_G(yylloc_r)
  931. ]])
  932. ]])
  933. int yylex_init (yyscan_t* scanner);
  934. int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
  935. %endif
  936. %endif End reentrant structures and macros.