Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

5086 rader
153 KiB

  1. #line 2 "generated/lolfx-scanner.cpp"
  2. #line 4 "generated/lolfx-scanner.cpp"
  3. #define YY_INT_ALIGNED short int
  4. /* A lexical scanner generated by flex */
  5. #define FLEX_SCANNER
  6. #define YY_FLEX_MAJOR_VERSION 2
  7. #define YY_FLEX_MINOR_VERSION 5
  8. #define YY_FLEX_SUBMINOR_VERSION 35
  9. #if YY_FLEX_SUBMINOR_VERSION > 0
  10. #define FLEX_BETA
  11. #endif
  12. /* The c++ scanner is a mess. The FlexLexer.h header file relies on the
  13. * following macro. This is required in order to pass the c++-multiple-scanners
  14. * test in the regression suite. We get reports that it breaks inheritance.
  15. * We will address this in a future release of flex, or omit the C++ scanner
  16. * altogether.
  17. */
  18. #define yyFlexLexer LolFxFlexLexer
  19. /* First, we deal with platform-specific or compiler-specific issues. */
  20. /* begin standard C headers. */
  21. /* end standard C headers. */
  22. /* flex integer type definitions */
  23. #ifndef FLEXINT_H
  24. #define FLEXINT_H
  25. /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
  26. #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  27. /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  28. * if you want the limit (max/min) macros for int types.
  29. */
  30. #ifndef __STDC_LIMIT_MACROS
  31. #define __STDC_LIMIT_MACROS 1
  32. #endif
  33. #include <inttypes.h>
  34. typedef int8_t flex_int8_t;
  35. typedef uint8_t flex_uint8_t;
  36. typedef int16_t flex_int16_t;
  37. typedef uint16_t flex_uint16_t;
  38. typedef int32_t flex_int32_t;
  39. typedef uint32_t flex_uint32_t;
  40. #else
  41. typedef signed char flex_int8_t;
  42. typedef short int flex_int16_t;
  43. typedef int flex_int32_t;
  44. typedef unsigned char flex_uint8_t;
  45. typedef unsigned short int flex_uint16_t;
  46. typedef unsigned int flex_uint32_t;
  47. /* Limits of integral types. */
  48. #ifndef INT8_MIN
  49. #define INT8_MIN (-128)
  50. #endif
  51. #ifndef INT16_MIN
  52. #define INT16_MIN (-32767-1)
  53. #endif
  54. #ifndef INT32_MIN
  55. #define INT32_MIN (-2147483647-1)
  56. #endif
  57. #ifndef INT8_MAX
  58. #define INT8_MAX (127)
  59. #endif
  60. #ifndef INT16_MAX
  61. #define INT16_MAX (32767)
  62. #endif
  63. #ifndef INT32_MAX
  64. #define INT32_MAX (2147483647)
  65. #endif
  66. #ifndef UINT8_MAX
  67. #define UINT8_MAX (255U)
  68. #endif
  69. #ifndef UINT16_MAX
  70. #define UINT16_MAX (65535U)
  71. #endif
  72. #ifndef UINT32_MAX
  73. #define UINT32_MAX (4294967295U)
  74. #endif
  75. #endif /* ! C99 */
  76. #endif /* ! FLEXINT_H */
  77. /* begin standard C++ headers. */
  78. #include <iostream>
  79. #include <errno.h>
  80. #include <cstdlib>
  81. #include <cstdio>
  82. #include <cstring>
  83. /* end standard C++ headers. */
  84. #ifdef __cplusplus
  85. /* The "const" storage-class-modifier is valid. */
  86. #define YY_USE_CONST
  87. #else /* ! __cplusplus */
  88. /* C99 requires __STDC__ to be defined as 1. */
  89. #if defined (__STDC__)
  90. #define YY_USE_CONST
  91. #endif /* defined (__STDC__) */
  92. #endif /* ! __cplusplus */
  93. #ifdef YY_USE_CONST
  94. #define yyconst const
  95. #else
  96. #define yyconst
  97. #endif
  98. /* Returned upon end-of-file. */
  99. #define YY_NULL 0
  100. /* Promotes a possibly negative, possibly signed char to an unsigned
  101. * integer for use as an array index. If the signed char is negative,
  102. * we want to instead treat it as an 8-bit unsigned char, hence the
  103. * double cast.
  104. */
  105. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  106. /* Enter a start condition. This macro really ought to take a parameter,
  107. * but we do it the disgusting crufty way forced on us by the ()-less
  108. * definition of BEGIN.
  109. */
  110. #define BEGIN (yy_start) = 1 + 2 *
  111. /* Translate the current start state into a value that can be later handed
  112. * to BEGIN to return to the state. The YYSTATE alias is for lex
  113. * compatibility.
  114. */
  115. #define YY_START (((yy_start) - 1) / 2)
  116. #define YYSTATE YY_START
  117. /* Action number for EOF rule of a given start state. */
  118. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  119. /* Special action meaning "start processing a new file". */
  120. #define YY_NEW_FILE yyrestart( yyin )
  121. #define YY_END_OF_BUFFER_CHAR 0
  122. /* Size of default input buffer. */
  123. #ifndef YY_BUF_SIZE
  124. #ifdef __ia64__
  125. /* On IA-64, the buffer size is 16k, not 8k.
  126. * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
  127. * Ditto for the __ia64__ case accordingly.
  128. */
  129. #define YY_BUF_SIZE 32768
  130. #else
  131. #define YY_BUF_SIZE 16384
  132. #endif /* __ia64__ */
  133. #endif
  134. /* The state buf must be large enough to hold one state per character in the main buffer.
  135. */
  136. #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
  137. #ifndef YY_TYPEDEF_YY_BUFFER_STATE
  138. #define YY_TYPEDEF_YY_BUFFER_STATE
  139. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  140. #endif
  141. extern int yyleng;
  142. #define EOB_ACT_CONTINUE_SCAN 0
  143. #define EOB_ACT_END_OF_FILE 1
  144. #define EOB_ACT_LAST_MATCH 2
  145. #define YY_LESS_LINENO(n)
  146. /* Return all but the first "n" matched characters back to the input stream. */
  147. #define yyless(n) \
  148. do \
  149. { \
  150. /* Undo effects of setting up yytext. */ \
  151. int yyless_macro_arg = (n); \
  152. YY_LESS_LINENO(yyless_macro_arg);\
  153. *yy_cp = (yy_hold_char); \
  154. YY_RESTORE_YY_MORE_OFFSET \
  155. (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  156. YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  157. } \
  158. while ( 0 )
  159. #define unput(c) yyunput( c, (yytext_ptr) )
  160. #ifndef YY_TYPEDEF_YY_SIZE_T
  161. #define YY_TYPEDEF_YY_SIZE_T
  162. typedef size_t yy_size_t;
  163. #endif
  164. #ifndef YY_STRUCT_YY_BUFFER_STATE
  165. #define YY_STRUCT_YY_BUFFER_STATE
  166. struct yy_buffer_state
  167. {
  168. std::istream* yy_input_file;
  169. char *yy_ch_buf; /* input buffer */
  170. char *yy_buf_pos; /* current position in input buffer */
  171. /* Size of input buffer in bytes, not including room for EOB
  172. * characters.
  173. */
  174. yy_size_t yy_buf_size;
  175. /* Number of characters read into yy_ch_buf, not including EOB
  176. * characters.
  177. */
  178. int yy_n_chars;
  179. /* Whether we "own" the buffer - i.e., we know we created it,
  180. * and can realloc() it to grow it, and should free() it to
  181. * delete it.
  182. */
  183. int yy_is_our_buffer;
  184. /* Whether this is an "interactive" input source; if so, and
  185. * if we're using stdio for input, then we want to use getc()
  186. * instead of fread(), to make sure we stop fetching input after
  187. * each newline.
  188. */
  189. int yy_is_interactive;
  190. /* Whether we're considered to be at the beginning of a line.
  191. * If so, '^' rules will be active on the next match, otherwise
  192. * not.
  193. */
  194. int yy_at_bol;
  195. int yy_bs_lineno; /**< The line count. */
  196. int yy_bs_column; /**< The column count. */
  197. /* Whether to try to fill the input buffer when we reach the
  198. * end of it.
  199. */
  200. int yy_fill_buffer;
  201. int yy_buffer_status;
  202. #define YY_BUFFER_NEW 0
  203. #define YY_BUFFER_NORMAL 1
  204. /* When an EOF's been seen but there's still some text to process
  205. * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  206. * shouldn't try reading from the input source any more. We might
  207. * still have a bunch of tokens to match, though, because of
  208. * possible backing-up.
  209. *
  210. * When we actually see the EOF, we change the status to "new"
  211. * (via yyrestart()), so that the user can continue scanning by
  212. * just pointing yyin at a new input file.
  213. */
  214. #define YY_BUFFER_EOF_PENDING 2
  215. };
  216. #endif /* !YY_STRUCT_YY_BUFFER_STATE */
  217. /* We provide macros for accessing buffer states in case in the
  218. * future we want to put the buffer states in a more general
  219. * "scanner state".
  220. *
  221. * Returns the top of the stack, or NULL.
  222. */
  223. #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  224. ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  225. : NULL)
  226. /* Same as previous macro, but useful when we know that the buffer stack is not
  227. * NULL or when we need an lvalue. For internal use only.
  228. */
  229. #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  230. void *LolFxalloc (yy_size_t );
  231. void *LolFxrealloc (void *,yy_size_t );
  232. void LolFxfree (void * );
  233. #define yy_new_buffer yy_create_buffer
  234. #define yy_set_interactive(is_interactive) \
  235. { \
  236. if ( ! YY_CURRENT_BUFFER ){ \
  237. yyensure_buffer_stack (); \
  238. YY_CURRENT_BUFFER_LVALUE = \
  239. yy_create_buffer( yyin, YY_BUF_SIZE ); \
  240. } \
  241. YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
  242. }
  243. #define yy_set_bol(at_bol) \
  244. { \
  245. if ( ! YY_CURRENT_BUFFER ){\
  246. yyensure_buffer_stack (); \
  247. YY_CURRENT_BUFFER_LVALUE = \
  248. yy_create_buffer( yyin, YY_BUF_SIZE ); \
  249. } \
  250. YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
  251. }
  252. #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
  253. /* Begin user sect3 */
  254. typedef unsigned char YY_CHAR;
  255. #define yytext_ptr yytext
  256. #include <FlexLexer.h>
  257. /* Done after the current pattern has been matched and before the
  258. * corresponding action - sets up yytext.
  259. */
  260. #define YY_DO_BEFORE_ACTION \
  261. (yytext_ptr) = yy_bp; \
  262. yyleng = (size_t) (yy_cp - yy_bp); \
  263. (yy_hold_char) = *yy_cp; \
  264. *yy_cp = '\0'; \
  265. (yy_c_buf_p) = yy_cp;
  266. #define YY_NUM_RULES 445
  267. #define YY_END_OF_BUFFER 446
  268. /* This struct is not used in this scanner,
  269. but its presence is necessary. */
  270. struct yy_trans_info
  271. {
  272. flex_int32_t yy_verify;
  273. flex_int32_t yy_nxt;
  274. };
  275. static yyconst flex_int16_t yy_accept[1633] =
  276. { 0,
  277. 0, 0, 439, 439, 444, 444, 446, 436, 434, 435,
  278. 436, 436, 436, 436, 436, 436, 436, 436, 432, 432,
  279. 436, 436, 436, 433, 433, 433, 433, 433, 433, 433,
  280. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  281. 433, 433, 433, 433, 436, 91, 91, 433, 433, 433,
  282. 433, 91, 433, 433, 433, 433, 433, 433, 92, 92,
  283. 91, 92, 92, 433, 433, 90, 90, 436, 439, 440,
  284. 441, 444, 443, 434, 414, 0, 0, 0, 0, 0,
  285. 0, 0, 0, 0, 422, 417, 427, 420, 409, 423,
  286. 410, 424, 437, 442, 421, 0, 431, 432, 415, 411,
  287. 413, 412, 416, 433, 433, 433, 433, 433, 433, 433,
  288. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  289. 131, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  290. 433, 433, 433, 433, 433, 433, 136, 137, 433, 433,
  291. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  292. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  293. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  294. 433, 433, 433, 433, 433, 428, 419, 91, 433, 433,
  295. 91, 433, 433, 433, 433, 433, 433, 433, 101, 433,
  296. 433, 433, 433, 433, 91, 433, 106, 107, 433, 433,
  297. 433, 433, 433, 433, 433, 433, 433, 92, 433, 91,
  298. 433, 433, 433, 92, 433, 433, 433, 433, 433, 433,
  299. 433, 433, 433, 433, 433, 90, 429, 418, 439, 438,
  300. 444, 0, 0, 0, 0, 0, 368, 0, 0, 0,
  301. 0, 0, 430, 425, 426, 433, 154, 433, 433, 433,
  302. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  303. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  304. 433, 433, 433, 433, 433, 433, 135, 433, 433, 433,
  305. 433, 433, 433, 433, 433, 433, 433, 139, 433, 433,
  306. 433, 433, 433, 390, 433, 433, 433, 433, 141, 433,
  307. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  308. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  309. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  310. 433, 433, 433, 403, 433, 433, 433, 433, 433, 433,
  311. 433, 433, 433, 433, 433, 433, 91, 433, 433, 433,
  312. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  313. 433, 433, 433, 105, 433, 433, 109, 433, 433, 433,
  314. 433, 433, 433, 433, 433, 111, 433, 92, 433, 433,
  315. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  316. 433, 433, 433, 433, 90, 0, 0, 0, 0, 0,
  317. 0, 0, 0, 0, 0, 0, 0, 0, 433, 433,
  318. 377, 433, 123, 433, 433, 433, 125, 433, 433, 433,
  319. 379, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  320. 433, 433, 433, 433, 133, 384, 433, 433, 433, 433,
  321. 433, 433, 433, 387, 433, 175, 433, 433, 433, 433,
  322. 323, 328, 333, 338, 433, 180, 388, 433, 433, 433,
  323. 433, 433, 187, 433, 433, 433, 190, 433, 433, 433,
  324. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  325. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  326. 433, 433, 433, 433, 433, 433, 433, 401, 433, 433,
  327. 233, 433, 149, 433, 433, 433, 433, 433, 433, 433,
  328. 433, 151, 433, 433, 91, 433, 93, 433, 433, 95,
  329. 433, 433, 433, 433, 433, 433, 433, 433, 103, 433,
  330. 4, 433, 433, 433, 433, 433, 433, 433, 45, 61,
  331. 65, 69, 433, 433, 433, 92, 433, 433, 433, 433,
  332. 433, 433, 433, 433, 88, 119, 433, 433, 433, 58,
  333. 59, 60, 121, 433, 90, 0, 0, 364, 365, 0,
  334. 0, 0, 0, 0, 372, 0, 0, 0, 433, 433,
  335. 433, 243, 248, 253, 258, 124, 433, 433, 378, 433,
  336. 433, 380, 433, 433, 433, 127, 433, 433, 433, 433,
  337. 433, 433, 433, 433, 169, 433, 433, 433, 171, 134,
  338. 433, 433, 433, 433, 433, 433, 138, 433, 433, 433,
  339. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  340. 433, 433, 433, 433, 193, 433, 433, 433, 433, 433,
  341. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  342. 433, 396, 433, 433, 213, 433, 433, 433, 433, 433,
  343. 433, 433, 433, 433, 402, 433, 433, 433, 343, 348,
  344. 353, 358, 433, 405, 238, 433, 407, 433, 433, 433,
  345. 433, 152, 433, 94, 49, 50, 51, 433, 97, 433,
  346. 433, 433, 76, 80, 84, 433, 73, 74, 75, 89,
  347. 104, 43, 108, 433, 433, 52, 53, 54, 433, 433,
  348. 433, 433, 433, 433, 2, 433, 433, 433, 433, 433,
  349. 433, 433, 433, 433, 433, 55, 56, 57, 122, 0,
  350. 0, 366, 367, 369, 0, 0, 0, 374, 0, 433,
  351. 433, 433, 433, 433, 433, 433, 157, 433, 433, 433,
  352. 433, 433, 433, 433, 433, 433, 433, 382, 433, 433,
  353. 433, 132, 303, 308, 313, 318, 433, 433, 170, 263,
  354. 268, 273, 278, 386, 433, 433, 433, 433, 177, 433,
  355. 324, 329, 334, 339, 325, 330, 335, 340, 326, 331,
  356. 336, 341, 327, 332, 337, 342, 433, 433, 182, 433,
  357. 184, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  358. 433, 433, 433, 433, 394, 433, 433, 433, 433, 142,
  359. 433, 433, 433, 433, 433, 433, 212, 397, 398, 433,
  360. 216, 217, 147, 148, 433, 433, 433, 433, 433, 433,
  361. 433, 433, 433, 433, 433, 433, 433, 239, 433, 433,
  362. 433, 433, 433, 433, 433, 433, 433, 433, 433, 102,
  363. 433, 433, 6, 62, 63, 64, 66, 67, 68, 70,
  364. 71, 72, 433, 433, 433, 112, 3, 5, 117, 433,
  365. 118, 433, 433, 433, 0, 363, 370, 0, 373, 0,
  366. 433, 433, 433, 244, 249, 254, 259, 245, 250, 255,
  367. 260, 246, 251, 256, 261, 247, 252, 257, 262, 433,
  368. 159, 433, 433, 161, 433, 433, 433, 433, 129, 433,
  369. 130, 433, 283, 288, 293, 298, 433, 433, 433, 433,
  370. 433, 433, 433, 433, 433, 433, 172, 433, 433, 433,
  371. 433, 433, 181, 433, 389, 433, 433, 433, 433, 433,
  372. 433, 433, 433, 433, 195, 392, 433, 433, 433, 433,
  373. 433, 433, 433, 433, 433, 433, 208, 433, 433, 433,
  374. 219, 433, 433, 433, 433, 234, 433, 344, 349, 354,
  375. 359, 345, 350, 355, 360, 346, 351, 356, 361, 347,
  376. 352, 357, 362, 150, 433, 433, 433, 408, 433, 433,
  377. 433, 433, 99, 100, 77, 78, 79, 81, 82, 83,
  378. 85, 86, 87, 433, 433, 44, 433, 433, 208, 433,
  379. 223, 120, 433, 0, 0, 371, 375, 433, 433, 433,
  380. 433, 126, 433, 433, 433, 433, 433, 433, 128, 433,
  381. 433, 433, 433, 433, 433, 304, 309, 314, 319, 305,
  382. 310, 315, 320, 306, 311, 316, 321, 307, 312, 317,
  383. 322, 433, 385, 264, 269, 274, 279, 265, 270, 275,
  384. 280, 266, 271, 276, 281, 267, 272, 277, 282, 433,
  385. 433, 433, 433, 433, 433, 433, 433, 433, 391, 433,
  386. 433, 433, 433, 433, 433, 433, 198, 433, 433, 433,
  387. 200, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  388. 433, 433, 433, 433, 400, 433, 433, 433, 433, 235,
  389. 404, 406, 433, 433, 242, 433, 96, 98, 433, 433,
  390. 433, 433, 433, 433, 433, 433, 433, 433, 433, 0,
  391. 375, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  392. 433, 433, 433, 284, 289, 294, 299, 285, 290, 295,
  393. 300, 286, 291, 296, 301, 287, 292, 297, 302, 433,
  394. 433, 433, 433, 433, 179, 433, 185, 433, 433, 433,
  395. 433, 433, 433, 433, 393, 433, 433, 433, 199, 433,
  396. 433, 433, 143, 144, 145, 433, 433, 433, 433, 433,
  397. 433, 433, 220, 224, 226, 230, 433, 433, 433, 433,
  398. 433, 48, 47, 433, 433, 433, 433, 433, 433, 46,
  399. 113, 114, 115, 433, 433, 433, 433, 433, 433, 433,
  400. 433, 0, 433, 433, 156, 433, 433, 433, 433, 433,
  401. 381, 433, 433, 433, 433, 433, 433, 176, 178, 183,
  402. 433, 433, 433, 189, 433, 433, 433, 433, 433, 433,
  403. 433, 433, 433, 433, 433, 433, 433, 433, 433, 214,
  404. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  405. 433, 14, 15, 16, 433, 433, 433, 433, 433, 433,
  406. 433, 433, 433, 433, 433, 1, 20, 21, 22, 433,
  407. 433, 0, 433, 433, 433, 433, 433, 433, 433, 433,
  408. 433, 433, 433, 433, 174, 433, 433, 188, 433, 192,
  409. 194, 433, 433, 433, 433, 433, 203, 205, 207, 433,
  410. 146, 433, 433, 433, 399, 433, 221, 433, 433, 433,
  411. 228, 231, 236, 433, 433, 433, 433, 433, 433, 433,
  412. 433, 433, 433, 433, 433, 433, 37, 433, 433, 433,
  413. 116, 433, 433, 433, 433, 433, 433, 376, 433, 155,
  414. 433, 160, 433, 433, 433, 433, 433, 168, 383, 433,
  415. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  416. 433, 210, 433, 433, 433, 433, 433, 433, 433, 433,
  417. 433, 433, 241, 433, 433, 38, 433, 433, 17, 433,
  418. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  419. 433, 39, 433, 433, 23, 433, 433, 163, 433, 164,
  420. 433, 433, 433, 433, 433, 140, 191, 433, 433, 433,
  421. 433, 433, 433, 433, 433, 209, 433, 433, 222, 433,
  422. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  423. 433, 110, 433, 433, 433, 433, 26, 433, 30, 433,
  424. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  425. 433, 433, 433, 173, 433, 433, 433, 433, 433, 433,
  426. 433, 433, 433, 433, 433, 225, 227, 433, 433, 237,
  427. 240, 433, 433, 433, 28, 31, 433, 10, 433, 11,
  428. 433, 433, 433, 433, 433, 433, 433, 433, 29, 32,
  429. 433, 433, 433, 433, 433, 433, 433, 186, 196, 433,
  430. 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
  431. 18, 19, 433, 433, 433, 7, 433, 433, 433, 8,
  432. 433, 433, 24, 25, 433, 433, 433, 433, 162, 433,
  433. 433, 167, 395, 197, 433, 433, 204, 206, 433, 215,
  434. 218, 229, 232, 433, 433, 433, 433, 40, 433, 33,
  435. 433, 433, 433, 433, 158, 433, 166, 433, 433, 433,
  436. 41, 35, 433, 433, 433, 433, 9, 42, 36, 433,
  437. 433, 433, 202, 433, 433, 433, 433, 433, 433, 433,
  438. 201, 433, 433, 433, 27, 433, 433, 433, 433, 12,
  439. 13, 433, 433, 433, 433, 433, 153, 433, 211, 34,
  440. 165, 0
  441. } ;
  442. static yyconst flex_int32_t yy_ec[256] =
  443. { 0,
  444. 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
  445. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  446. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  447. 1, 2, 4, 1, 5, 1, 6, 7, 1, 1,
  448. 1, 8, 9, 1, 10, 11, 12, 13, 14, 15,
  449. 16, 17, 18, 18, 18, 18, 18, 1, 1, 19,
  450. 20, 21, 1, 1, 22, 23, 24, 25, 26, 27,
  451. 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  452. 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
  453. 1, 1, 1, 48, 49, 1, 50, 51, 52, 53,
  454. 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
  455. 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
  456. 74, 75, 1, 76, 1, 1, 1, 1, 1, 1,
  457. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  458. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  459. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  460. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  461. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  462. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  463. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  464. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  465. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  466. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  467. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  468. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  469. 1, 1, 1, 1, 1
  470. } ;
  471. static yyconst flex_int32_t yy_meta[77] =
  472. { 0,
  473. 1, 1, 2, 1, 1, 1, 1, 3, 1, 1,
  474. 1, 1, 4, 4, 4, 4, 4, 4, 1, 1,
  475. 1, 4, 4, 4, 4, 4, 4, 4, 4, 4,
  476. 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
  477. 4, 4, 4, 4, 4, 4, 4, 1, 4, 4,
  478. 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
  479. 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
  480. 4, 4, 4, 4, 4, 1
  481. } ;
  482. static yyconst flex_int16_t yy_base[1639] =
  483. { 0,
  484. 0, 0, 74, 75, 2957, 2956, 2958, 2961, 2955, 2961,
  485. 2936, 77, 2935, 73, 2934, 72, 74, 77, 75, 85,
  486. 68, 2933, 70, 69, 79, 134, 128, 117, 171, 69,
  487. 119, 124, 0, 141, 159, 186, 169, 215, 205, 264,
  488. 249, 184, 238, 75, 96, 275, 313, 212, 362, 185,
  489. 268, 311, 239, 331, 318, 331, 367, 353, 416, 345,
  490. 403, 426, 476, 488, 414, 436, 388, 90, 0, 2961,
  491. 2940, 0, 2961, 2949, 2961, 499, 129, 2896, 59, 110,
  492. 2891, 136, 2885, 2893, 2961, 2961, 2961, 2961, 2961, 2961,
  493. 2961, 2961, 2961, 2961, 2961, 558, 2961, 566, 2926, 2961,
  494. 2961, 2961, 2925, 0, 160, 181, 222, 244, 247, 284,
  495. 301, 310, 463, 330, 356, 382, 385, 486, 558, 375,
  496. 407, 392, 410, 411, 447, 497, 464, 471, 473, 496,
  497. 509, 503, 517, 525, 535, 545, 0, 557, 552, 553,
  498. 551, 556, 565, 556, 572, 568, 577, 563, 593, 562,
  499. 580, 613, 589, 574, 616, 580, 618, 600, 628, 619,
  500. 612, 631, 624, 613, 639, 650, 658, 628, 633, 667,
  501. 660, 671, 660, 672, 676, 2961, 2961, 670, 2875, 675,
  502. 693, 2889, 673, 687, 718, 721, 689, 2892, 721, 2887,
  503. 696, 707, 709, 707, 734, 2884, 0, 756, 2889, 2884,
  504. 2863, 731, 726, 2883, 741, 731, 764, 742, 783, 772,
  505. 801, 743, 2871, 812, 2883, 757, 811, 825, 761, 808,
  506. 796, 2879, 836, 828, 772, 818, 2961, 2961, 0, 2961,
  507. 0, 846, 2877, 61, 2878, 2863, 160, 2877, 2865, 847,
  508. 2874, 2859, 891, 2961, 2961, 848, 2876, 846, 850, 854,
  509. 872, 871, 874, 875, 887, 885, 873, 877, 877, 876,
  510. 882, 880, 901, 898, 884, 903, 908, 908, 893, 911,
  511. 908, 901, 903, 911, 898, 919, 0, 917, 911, 920,
  512. 920, 915, 940, 935, 940, 930, 931, 960, 953, 952,
  513. 942, 961, 961, 0, 953, 963, 957, 952, 955, 961,
  514. 954, 971, 964, 978, 960, 963, 972, 965, 980, 977,
  515. 988, 981, 2875, 982, 985, 1003, 998, 997, 998, 1004,
  516. 1016, 1004, 1003, 1016, 1004, 1020, 1019, 1012, 1009, 1013,
  517. 1019, 1037, 1034, 0, 1035, 1021, 1055, 1027, 1038, 1034,
  518. 1038, 1039, 1043, 1060, 1070, 1060, 1048, 2856, 1062, 1078,
  519. 2870, 1075, 1061, 1065, 1081, 1085, 2852, 1088, 2868, 1088,
  520. 1076, 2850, 1095, 0, 2861, 1076, 1110, 2867, 2854, 2863,
  521. 2850, 2848, 1132, 2854, 1096, 1095, 2859, 784, 1111, 1096,
  522. 1103, 2846, 1111, 2842, 1110, 1111, 1128, 1114, 1129, 2846,
  523. 2855, 1157, 1132, 1125, 1103, 1131, 2848, 2850, 2850, 2845,
  524. 2838, 2847, 2847, 2838, 2844, 1133, 2843, 2828, 1127, 1140,
  525. 0, 1163, 1186, 1159, 1166, 1172, 0, 1167, 1170, 1165,
  526. 0, 1165, 1172, 1179, 1166, 1180, 1169, 1171, 1184, 1192,
  527. 1185, 1184, 1193, 1189, 0, 0, 1197, 1189, 1203, 1189,
  528. 1196, 1208, 1221, 0, 1211, 0, 1210, 1217, 1212, 1213,
  529. 1215, 1216, 1217, 1218, 1225, 1243, 0, 1236, 1244, 1228,
  530. 1228, 1231, 0, 1249, 1231, 1238, 0, 1244, 1238, 1254,
  531. 1263, 1260, 1257, 1274, 1263, 1263, 1280, 1269, 1275, 1283,
  532. 1275, 1278, 1273, 1286, 1294, 1280, 1296, 1287, 1290, 1299,
  533. 1291, 1303, 1306, 1306, 1300, 1306, 1298, 0, 1297, 1307,
  534. 0, 1331, 1357, 1323, 1325, 1328, 1336, 1337, 1339, 1350,
  535. 1335, 0, 1337, 1353, 0, 2837, 1366, 1353, 1380, 0,
  536. 1347, 1357, 1359, 1349, 1378, 1393, 1368, 1405, 0, 1376,
  537. 0, 1370, 2829, 1371, 2826, 2827, 1408, 2821, 0, 2817,
  538. 2816, 2815, 2817, 1376, 2829, 0, 1386, 1379, 1398, 2816,
  539. 1408, 2820, 1409, 1392, 0, 1421, 1405, 2818, 1432, 0,
  540. 0, 0, 0, 1416, 0, 1411, 2819, 2961, 2961, 2826,
  541. 2813, 2824, 2824, 2807, 2961, 1416, 2821, 2817, 1426, 1413,
  542. 1413, 1409, 1410, 1411, 1412, 0, 1419, 1438, 0, 1438,
  543. 1429, 0, 1431, 1434, 1427, 2825, 1437, 1437, 1441, 1449,
  544. 1436, 1438, 1452, 1462, 1492, 1459, 1466, 1462, 0, 1496,
  545. 1473, 1459, 1473, 1479, 1491, 1495, 0, 1485, 1516, 1520,
  546. 1524, 1529, 1496, 1527, 1486, 1483, 1520, 1517, 1531, 1518,
  547. 1518, 1519, 1534, 1535, 1523, 1524, 1524, 1543, 1544, 1530,
  548. 1529, 1545, 1533, 1538, 1552, 1549, 1551, 1536, 1538, 1557,
  549. 1559, 0, 1583, 1582, 0, 1587, 1589, 1586, 1574, 1587,
  550. 1591, 1588, 1597, 1581, 0, 1593, 1596, 1601, 1579, 1580,
  551. 1581, 1582, 1589, 0, 0, 1594, 0, 1591, 1586, 1610,
  552. 1603, 0, 2822, 0, 0, 0, 0, 1598, 2823, 1600,
  553. 1606, 1601, 2798, 2797, 2796, 1638, 0, 0, 0, 0,
  554. 1655, 0, 0, 2810, 2806, 0, 0, 0, 2797, 1658,
  555. 1661, 1664, 2803, 1625, 0, 1626, 1647, 1657, 2807, 1643,
  556. 2793, 1656, 1647, 1648, 2801, 0, 0, 0, 0, 1666,
  557. 2807, 2961, 2961, 2961, 2805, 2806, 1667, 2961, 2794, 1650,
  558. 1669, 1654, 1682, 1686, 1690, 1710, 0, 1683, 1670, 1690,
  559. 2808, 1695, 1696, 1704, 1703, 1688, 1690, 0, 1691, 1708,
  560. 1694, 1724, 1690, 1697, 1698, 1699, 1721, 1716, 0, 1702,
  561. 1706, 1707, 1708, 0, 1717, 1716, 1735, 1743, 0, 1744,
  562. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  563. 0, 0, 0, 0, 0, 0, 1745, 1737, 0, 1730,
  564. 0, 1750, 1755, 1739, 1747, 1749, 1749, 1760, 1749, 1760,
  565. 1749, 1765, 1772, 1758, 0, 1770, 1775, 1763, 1762, 0,
  566. 1776, 1782, 1787, 1786, 1769, 1781, 0, 0, 0, 1788,
  567. 2807, 0, 1780, 0, 1784, 1786, 1784, 1806, 1800, 1807,
  568. 1806, 1827, 1840, 1849, 1855, 1811, 1820, 0, 1840, 1814,
  569. 1825, 2785, 1829, 1834, 1836, 1853, 1866, 1873, 1876, 1882,
  570. 2804, 2799, 0, 0, 0, 0, 0, 0, 0, 0,
  571. 0, 0, 2787, 1842, 1858, 0, 1846, 0, 1852, 2782,
  572. 0, 1874, 1867, 2796, 1900, 2961, 2961, 2795, 1901, 2785,
  573. 1868, 1882, 1889, 0, 0, 0, 0, 0, 0, 0,
  574. 0, 0, 0, 0, 0, 0, 0, 0, 0, 1875,
  575. 0, 1890, 1883, 1878, 1879, 1898, 1881, 1897, 0, 1898,
  576. 0, 1896, 1881, 1885, 1886, 1887, 1949, 1953, 1957, 1961,
  577. 2798, 1914, 1965, 1970, 1974, 1978, 0, 1950, 1975, 1973,
  578. 1958, 1976, 0, 1975, 0, 1978, 1966, 1978, 1966, 1984,
  579. 1967, 1986, 1987, 1971, 0, 0, 1985, 1965, 1974, 1977,
  580. 1993, 1980, 1978, 1993, 1978, 1981, 2035, 2016, 2029, 2015,
  581. 0, 2013, 2031, 2046, 2032, 0, 2037, 0, 0, 0,
  582. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  583. 0, 0, 0, 0, 2039, 2026, 2037, 0, 2041, 2777,
  584. 2043, 2043, 0, 0, 0, 0, 0, 0, 0, 0,
  585. 0, 0, 0, 2782, 2777, 0, 2045, 2779, 2086, 2784,
  586. 2090, 0, 2774, 2075, 2043, 2961, 0, 2049, 2055, 2049,
  587. 2085, 0, 2090, 2084, 2088, 2090, 2080, 2080, 0, 2087,
  588. 2101, 2113, 2117, 2141, 2145, 0, 0, 0, 0, 0,
  589. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  590. 0, 2100, 0, 0, 0, 0, 0, 0, 0, 0,
  591. 0, 0, 0, 0, 0, 0, 0, 0, 0, 2085,
  592. 2105, 2119, 2122, 2137, 2142, 2139, 2130, 2143, 0, 2127,
  593. 2143, 2142, 2146, 2149, 2151, 2151, 0, 2139, 2140, 2141,
  594. 0, 2156, 2140, 2157, 2159, 2160, 2161, 2179, 2147, 2149,
  595. 2166, 2178, 2175, 2176, 0, 2194, 2195, 2197, 2181, 2202,
  596. 0, 0, 2203, 2204, 0, 2786, 0, 0, 2770, 2217,
  597. 2203, 2775, 2209, 2210, 2211, 2767, 2202, 2773, 2225, 2204,
  598. 0, 2203, 2220, 2230, 2217, 2227, 2237, 2221, 2239, 2226,
  599. 2232, 2251, 2253, 0, 0, 0, 0, 0, 0, 0,
  600. 0, 0, 0, 0, 0, 0, 0, 0, 0, 2257,
  601. 2251, 2255, 2243, 2254, 0, 2256, 0, 2258, 2251, 2269,
  602. 2253, 2262, 2271, 2276, 0, 2261, 2275, 2274, 0, 2265,
  603. 2266, 2007, 0, 0, 0, 2278, 2290, 2292, 2274, 2284,
  604. 2277, 2298, 2821, 2305, 2312, 0, 2308, 2310, 2295, 2309,
  605. 2313, 0, 0, 2781, 2780, 2779, 2761, 2760, 2298, 0,
  606. 126, 2308, 0, 2774, 2326, 2774, 2774, 2773, 2772, 2754,
  607. 2753, 2323, 2328, 2318, 0, 2314, 2320, 2332, 2338, 2336,
  608. 0, 2326, 2339, 2345, 2332, 2351, 2354, 0, 0, 0,
  609. 2361, 2356, 2358, 0, 2364, 2352, 2358, 2353, 2353, 2369,
  610. 2372, 2376, 2378, 2379, 2380, 2369, 2382, 2368, 2388, 2773,
  611. 2371, 2390, 306, 2377, 2378, 2384, 2399, 2396, 2389, 2395,
  612. 2409, 2771, 2392, 0, 2765, 2768, 2409, 2751, 2760, 2749,
  613. 2747, 2760, 2756, 2757, 2417, 0, 2761, 2398, 0, 2755,
  614. 2758, 2401, 2406, 2408, 2427, 2412, 2432, 2433, 2436, 2440,
  615. 2433, 2429, 2428, 2445, 0, 2431, 2430, 0, 2441, 0,
  616. 0, 2439, 2759, 2440, 2442, 2458, 2462, 2463, 0, 2465,
  617. 0, 2462, 2450, 2453, 0, 2453, 0, 2454, 2463, 2464,
  618. 2483, 2484, 0, 2481, 2488, 2478, 2740, 2739, 2737, 2750,
  619. 2748, 2748, 2475, 2734, 2750, 2732, 2746, 2740, 2739, 2734,
  620. 203, 2708, 2706, 2703, 2714, 2712, 2711, 2961, 2478, 0,
  621. 2480, 0, 2485, 2491, 2487, 2487, 2489, 0, 0, 2510,
  622. 2507, 2512, 2498, 2518, 2517, 2500, 2504, 2524, 2510, 2512,
  623. 2516, 0, 2532, 2518, 2534, 2515, 2541, 2548, 2534, 2535,
  624. 2554, 2543, 0, 2697, 2696, 2712, 2709, 2706, 2706, 2554,
  625. 2703, 2699, 2298, 2280, 2118, 2056, 2011, 2009, 2017, 2006,
  626. 2005, 2006, 1905, 1902, 1900, 2542, 2555, 0, 2558, 0,
  627. 2543, 2547, 2562, 2554, 2558, 0, 0, 2554, 2574, 2567,
  628. 2576, 2558, 2564, 2566, 2577, 0, 2589, 2587, 0, 2569,
  629. 2571, 2579, 2580, 2592, 2588, 1894, 1891, 1873, 1867, 1868,
  630. 1457, 0, 1269, 1106, 1069, 798, 775, 754, 0, 747,
  631. 725, 719, 715, 695, 692, 689, 657, 2604, 2605, 2599,
  632. 2597, 2615, 2612, 0, 2605, 2615, 2604, 2622, 2607, 2623,
  633. 2629, 2630, 2613, 2614, 2630, 0, 0, 2637, 2639, 0,
  634. 0, 641, 635, 593, 0, 0, 589, 543, 533, 495,
  635. 505, 472, 452, 466, 461, 439, 432, 433, 0, 0,
  636. 423, 2638, 2641, 2629, 2645, 2632, 2630, 0, 0, 2634,
  637. 2638, 2658, 2659, 2642, 2644, 2656, 2667, 2655, 2650, 2651,
  638. 0, 0, 437, 421, 407, 0, 391, 368, 380, 0,
  639. 353, 358, 0, 0, 362, 355, 2677, 2665, 0, 2680,
  640. 2680, 0, 0, 0, 2680, 2682, 0, 0, 2674, 0,
  641. 0, 0, 0, 323, 322, 321, 320, 0, 307, 289,
  642. 267, 260, 256, 2669, 0, 2689, 0, 2689, 2678, 2679,
  643. 0, 0, 271, 234, 220, 223, 0, 0, 0, 2696,
  644. 2684, 2688, 0, 2688, 203, 196, 161, 176, 2703, 2704,
  645. 0, 2716, 145, 111, 0, 75, 2715, 2715, 2703, 0,
  646. 0, 60, 2707, 2722, 2723, 41, 0, 2711, 0, 0,
  647. 0, 2961, 2778, 2782, 103, 2786, 2790, 2794
  648. } ;
  649. static yyconst flex_int16_t yy_def[1639] =
  650. { 0,
  651. 1632, 1, 1633, 1633, 1634, 1634, 1632, 1632, 1632, 1632,
  652. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  653. 1632, 1632, 1632, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  654. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  655. 1635, 1635, 1635, 1635, 1632, 1635, 1635, 26, 1635, 1635,
  656. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  657. 1635, 40, 1635, 1635, 1635, 1635, 1635, 1632, 1636, 1632,
  658. 1632, 1637, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  659. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  660. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  661. 1632, 1632, 1632, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  662. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  663. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  664. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  665. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  666. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  667. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  668. 1635, 1635, 1635, 1635, 1635, 1632, 1632, 1635, 1635, 1635,
  669. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  670. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  671. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  672. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  673. 1635, 1635, 1635, 1635, 1635, 1635, 1632, 1632, 1636, 1632,
  674. 1637, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  675. 1632, 1632, 1632, 1632, 1632, 1635, 1635, 1635, 1635, 1635,
  676. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  677. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  678. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  679. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  680. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  681. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  682. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  683. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  684. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  685. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  686. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  687. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  688. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  689. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  690. 1635, 1635, 1635, 1635, 1635, 1632, 1632, 1632, 1632, 1632,
  691. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1635, 1635,
  692. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  693. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  694. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  695. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  696. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  697. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  698. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  699. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  700. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  701. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  702. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  703. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  704. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  705. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  706. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  707. 1635, 1635, 1635, 1635, 1635, 1632, 1632, 1632, 1632, 1632,
  708. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1635, 1635,
  709. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  710. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  711. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  712. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  713. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  714. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  715. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  716. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  717. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  718. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  719. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  720. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  721. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  722. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  723. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1632,
  724. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1635,
  725. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  726. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  727. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  728. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  729. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  730. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  731. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  732. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  733. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  734. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  735. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  736. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  737. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  738. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  739. 1635, 1635, 1635, 1635, 1632, 1632, 1632, 1632, 1632, 1632,
  740. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  741. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  742. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  743. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  744. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  745. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  746. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  747. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  748. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  749. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  750. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  751. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  752. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  753. 1635, 1635, 1635, 1632, 1632, 1632, 1638, 1635, 1635, 1635,
  754. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  755. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  756. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  757. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  758. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  759. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  760. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  761. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  762. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  763. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  764. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1632,
  765. 1638, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  766. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  767. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  768. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  769. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  770. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  771. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  772. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  773. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  774. 1635, 1632, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  775. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  776. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  777. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  778. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  779. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  780. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  781. 1635, 1632, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  782. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  783. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  784. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  785. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  786. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  787. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1632, 1635, 1635,
  788. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  789. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  790. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  791. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  792. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  793. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  794. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  795. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  796. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  797. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  798. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  799. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  800. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  801. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  802. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  803. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  804. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  805. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  806. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  807. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  808. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  809. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  810. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  811. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  812. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  813. 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635, 1635,
  814. 1635, 0, 1632, 1632, 1632, 1632, 1632, 1632
  815. } ;
  816. static yyconst flex_int16_t yy_nxt[3038] =
  817. { 0,
  818. 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
  819. 8, 18, 19, 20, 20, 20, 20, 20, 21, 22,
  820. 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
  821. 33, 33, 34, 35, 36, 37, 38, 33, 39, 40,
  822. 41, 42, 43, 44, 33, 33, 33, 45, 8, 46,
  823. 47, 48, 49, 50, 51, 52, 53, 54, 33, 33,
  824. 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
  825. 65, 66, 67, 67, 67, 68, 70, 70, 76, 86,
  826. 89, 71, 71, 91, 93, 96, 99, 100, 94, 102,
  827. 103, 90, 87, 92, 132, 96, 95, 98, 98, 98,
  828. 98, 98, 98, 175, 133, 105, 104, 134, 106, 227,
  829. 107, 108, 1630, 77, 109, 176, 97, 110, 398, 234,
  830. 111, 235, 132, 1626, 112, 236, 97, 1622, 399, 78,
  831. 79, 175, 133, 105, 80, 134, 106, 81, 107, 108,
  832. 135, 82, 109, 177, 97, 110, 83, 84, 111, 124,
  833. 137, 125, 112, 119, 97, 113, 114, 120, 138, 115,
  834. 136, 126, 116, 121, 237, 228, 117, 232, 135, 118,
  835. 139, 122, 238, 123, 232, 1288, 140, 124, 137, 125,
  836. 141, 119, 1621, 113, 114, 120, 138, 115, 136, 126,
  837. 116, 121, 127, 1289, 117, 232, 246, 118, 139, 122,
  838. 142, 123, 240, 128, 140, 147, 129, 143, 141, 130,
  839. 148, 144, 402, 169, 247, 131, 1620, 124, 170, 125,
  840. 127, 145, 403, 171, 246, 1616, 154, 146, 142, 126,
  841. 155, 128, 1615, 147, 129, 143, 149, 130, 148, 144,
  842. 156, 169, 247, 131, 150, 191, 170, 125, 157, 145,
  843. 151, 171, 1418, 152, 154, 146, 153, 126, 155, 1614,
  844. 135, 183, 248, 172, 149, 184, 1613, 173, 156, 249,
  845. 1419, 164, 150, 174, 165, 185, 157, 166, 151, 1608,
  846. 136, 152, 250, 1607, 153, 158, 1606, 167, 135, 127,
  847. 248, 172, 159, 160, 168, 173, 196, 249, 161, 164,
  848. 128, 174, 165, 129, 162, 166, 130, 163, 136, 251,
  849. 250, 105, 131, 158, 106, 167, 107, 192, 1337, 1338,
  850. 159, 160, 168, 1605, 178, 178, 161, 252, 193, 1599,
  851. 178, 194, 162, 1598, 130, 163, 132, 251, 1597, 105,
  852. 131, 178, 106, 179, 107, 108, 133, 139, 109, 134,
  853. 253, 110, 141, 140, 111, 252, 1596, 137, 112, 1595,
  854. 178, 178, 178, 178, 132, 138, 178, 201, 178, 1594,
  855. 1593, 256, 142, 108, 133, 139, 180, 195, 253, 181,
  856. 203, 202, 111, 182, 204, 197, 112, 119, 143, 147,
  857. 257, 120, 144, 198, 148, 1592, 1591, 121, 199, 256,
  858. 142, 200, 145, 258, 1583, 122, 259, 123, 146, 208,
  859. 208, 1582, 208, 208, 266, 186, 143, 147, 257, 187,
  860. 144, 1581, 206, 188, 154, 189, 1580, 269, 155, 1579,
  861. 205, 258, 190, 122, 259, 123, 146, 149, 156, 172,
  862. 267, 1578, 266, 173, 270, 150, 157, 1577, 268, 174,
  863. 271, 151, 210, 178, 152, 269, 211, 153, 178, 226,
  864. 226, 226, 226, 1576, 175, 207, 156, 223, 267, 178,
  865. 1575, 173, 270, 150, 157, 212, 268, 224, 271, 151,
  866. 208, 208, 209, 208, 208, 153, 1574, 213, 272, 1556,
  867. 208, 208, 225, 208, 214, 215, 275, 216, 164, 1555,
  868. 76, 165, 254, 255, 166, 1554, 276, 226, 226, 226,
  869. 226, 277, 1553, 1552, 167, 1551, 272, 169, 260, 261,
  870. 262, 168, 170, 1550, 275, 278, 164, 171, 1549, 217,
  871. 254, 255, 166, 273, 276, 77, 279, 274, 280, 277,
  872. 208, 208, 218, 208, 208, 219, 260, 261, 262, 168,
  873. 220, 78, 79, 278, 1548, 221, 80, 281, 222, 81,
  874. 282, 273, 1547, 82, 279, 274, 280, 283, 83, 84,
  875. 243, 243, 243, 243, 243, 243, 96, 284, 98, 98,
  876. 98, 98, 98, 98, 263, 281, 289, 290, 282, 285,
  877. 264, 291, 286, 287, 265, 283, 292, 288, 293, 294,
  878. 297, 295, 298, 299, 1546, 284, 302, 97, 296, 303,
  879. 1545, 307, 263, 308, 289, 290, 300, 285, 264, 291,
  880. 286, 287, 265, 313, 292, 288, 293, 294, 297, 295,
  881. 298, 299, 301, 317, 302, 97, 296, 303, 304, 307,
  882. 314, 308, 305, 309, 300, 310, 320, 322, 306, 318,
  883. 311, 313, 323, 325, 326, 1544, 312, 315, 316, 1543,
  884. 301, 317, 327, 319, 335, 321, 304, 336, 314, 324,
  885. 305, 309, 328, 310, 320, 322, 306, 318, 311, 330,
  886. 323, 325, 326, 329, 312, 315, 316, 332, 331, 340,
  887. 327, 319, 335, 321, 341, 336, 337, 324, 343, 333,
  888. 328, 344, 338, 334, 345, 346, 339, 330, 1542, 342,
  889. 250, 329, 254, 255, 1541, 332, 331, 340, 251, 347,
  890. 347, 257, 341, 1521, 337, 347, 343, 333, 266, 344,
  891. 338, 334, 345, 346, 339, 271, 347, 342, 349, 275,
  892. 352, 255, 347, 347, 276, 277, 350, 263, 347, 353,
  893. 260, 261, 262, 264, 267, 1520, 356, 265, 362, 347,
  894. 1519, 1518, 268, 360, 1517, 290, 291, 361, 1516, 282,
  895. 295, 299, 363, 364, 1515, 355, 317, 296, 260, 261,
  896. 354, 264, 267, 347, 347, 265, 325, 300, 285, 347,
  897. 358, 286, 287, 290, 373, 336, 288, 282, 295, 376,
  898. 347, 346, 372, 301, 381, 375, 378, 378, 304, 378,
  899. 378, 308, 305, 1514, 385, 300, 285, 1513, 306, 366,
  900. 287, 347, 347, 388, 367, 340, 368, 347, 309, 394,
  901. 310, 301, 377, 323, 327, 311, 379, 337, 347, 308,
  902. 305, 312, 1512, 338, 328, 390, 306, 339, 546, 546,
  903. 324, 546, 546, 340, 332, 329, 309, 344, 310, 341,
  904. 345, 323, 327, 311, 1511, 389, 333, 396, 396, 380,
  905. 334, 338, 328, 409, 342, 339, 378, 378, 383, 378,
  906. 378, 411, 332, 386, 412, 393, 413, 392, 345, 395,
  907. 395, 395, 395, 414, 387, 396, 406, 415, 334, 416,
  908. 417, 409, 342, 243, 243, 243, 243, 243, 243, 411,
  909. 418, 419, 412, 420, 413, 421, 422, 423, 424, 425,
  910. 426, 414, 427, 428, 429, 415, 430, 416, 417, 431,
  911. 432, 433, 434, 435, 436, 437, 438, 439, 418, 419,
  912. 440, 420, 441, 421, 422, 423, 424, 425, 426, 442,
  913. 427, 428, 429, 443, 430, 444, 445, 431, 432, 433,
  914. 434, 435, 436, 437, 438, 439, 446, 447, 440, 448,
  915. 441, 449, 450, 451, 452, 453, 454, 442, 456, 457,
  916. 458, 443, 459, 444, 445, 455, 460, 461, 462, 463,
  917. 464, 465, 466, 467, 446, 447, 468, 448, 469, 449,
  918. 450, 470, 471, 472, 473, 474, 456, 457, 458, 475,
  919. 459, 476, 477, 455, 460, 461, 462, 463, 464, 465,
  920. 466, 467, 478, 480, 468, 482, 469, 481, 483, 470,
  921. 471, 472, 473, 474, 484, 485, 486, 475, 487, 476,
  922. 477, 488, 489, 490, 493, 491, 494, 495, 496, 497,
  923. 478, 480, 498, 482, 499, 481, 483, 492, 500, 501,
  924. 502, 503, 484, 485, 486, 506, 487, 507, 508, 488,
  925. 489, 490, 493, 491, 494, 495, 496, 497, 509, 510,
  926. 498, 504, 499, 511, 512, 492, 500, 501, 502, 503,
  927. 505, 513, 514, 506, 413, 507, 508, 515, 515, 414,
  928. 417, 420, 427, 515, 425, 426, 509, 510, 430, 504,
  929. 432, 511, 512, 435, 515, 439, 440, 449, 505, 513,
  930. 514, 462, 517, 451, 452, 453, 454, 518, 520, 521,
  931. 524, 465, 522, 523, 470, 455, 525, 478, 527, 484,
  932. 491, 529, 1510, 530, 532, 534, 540, 541, 542, 544,
  933. 493, 497, 492, 501, 503, 504, 512, 514, 566, 465,
  934. 566, 579, 547, 455, 505, 548, 580, 549, 491, 1509,
  935. 458, 560, 561, 562, 565, 565, 565, 565, 553, 554,
  936. 551, 555, 556, 557, 563, 564, 566, 581, 576, 579,
  937. 586, 587, 505, 588, 580, 589, 590, 509, 458, 582,
  938. 583, 584, 585, 591, 592, 593, 596, 597, 594, 598,
  939. 599, 600, 601, 602, 603, 581, 604, 605, 586, 587,
  940. 595, 588, 606, 589, 590, 509, 607, 608, 609, 610,
  941. 611, 591, 592, 593, 596, 597, 594, 598, 599, 600,
  942. 601, 602, 603, 612, 604, 605, 613, 614, 595, 615,
  943. 606, 616, 617, 618, 607, 608, 609, 610, 611, 619,
  944. 620, 621, 622, 623, 624, 626, 627, 628, 629, 630,
  945. 631, 612, 632, 633, 613, 614, 634, 615, 635, 616,
  946. 617, 618, 625, 636, 637, 638, 639, 619, 620, 621,
  947. 622, 623, 624, 626, 627, 628, 629, 630, 631, 640,
  948. 632, 633, 641, 642, 634, 643, 635, 644, 645, 646,
  949. 625, 636, 637, 638, 639, 647, 648, 649, 650, 651,
  950. 652, 653, 654, 655, 656, 658, 659, 640, 657, 660,
  951. 641, 642, 661, 643, 662, 644, 645, 646, 663, 664,
  952. 665, 666, 1508, 647, 648, 649, 650, 651, 652, 653,
  953. 654, 655, 656, 658, 659, 667, 657, 660, 673, 674,
  954. 661, 675, 662, 676, 677, 668, 663, 664, 665, 666,
  955. 669, 670, 671, 672, 678, 679, 680, 681, 682, 582,
  956. 583, 584, 585, 667, 586, 591, 673, 674, 598, 675,
  957. 599, 676, 677, 668, 685, 686, 687, 596, 597, 602,
  958. 604, 609, 678, 679, 680, 681, 682, 693, 694, 695,
  959. 610, 617, 684, 688, 630, 636, 690, 644, 691, 697,
  960. 698, 699, 706, 707, 708, 689, 597, 692, 696, 700,
  961. 650, 659, 660, 664, 669, 670, 671, 672, 701, 703,
  962. 673, 682, 714, 716, 730, 717, 726, 727, 728, 730,
  963. 740, 741, 742, 743, 744, 745, 746, 747, 718, 720,
  964. 722, 723, 748, 749, 750, 751, 752, 753, 724, 729,
  965. 755, 756, 730, 757, 758, 759, 760, 737, 740, 741,
  966. 742, 743, 744, 745, 746, 747, 761, 762, 767, 768,
  967. 748, 749, 750, 751, 752, 753, 769, 774, 755, 756,
  968. 775, 757, 758, 759, 760, 763, 764, 765, 766, 770,
  969. 771, 772, 773, 776, 761, 762, 767, 768, 777, 778,
  970. 779, 780, 797, 1507, 769, 774, 800, 801, 775, 781,
  971. 782, 783, 784, 785, 786, 787, 788, 789, 790, 791,
  972. 792, 776, 793, 794, 795, 796, 777, 778, 779, 780,
  973. 797, 798, 802, 803, 800, 801, 804, 805, 806, 807,
  974. 808, 809, 811, 812, 813, 799, 814, 815, 816, 817,
  975. 818, 819, 820, 821, 810, 822, 823, 824, 825, 798,
  976. 802, 803, 826, 827, 804, 805, 806, 807, 808, 809,
  977. 811, 812, 813, 799, 814, 815, 816, 817, 818, 819,
  978. 820, 821, 810, 822, 823, 824, 825, 828, 829, 830,
  979. 826, 827, 831, 832, 833, 834, 835, 836, 837, 838,
  980. 839, 840, 841, 842, 843, 844, 845, 846, 847, 848,
  981. 849, 850, 851, 750, 756, 828, 829, 830, 757, 760,
  982. 831, 832, 833, 834, 835, 836, 837, 838, 839, 840,
  983. 841, 842, 843, 844, 845, 846, 847, 848, 849, 850,
  984. 851, 853, 854, 762, 805, 812, 855, 856, 770, 771,
  985. 772, 773, 864, 865, 866, 867, 868, 869, 870, 871,
  986. 872, 820, 826, 833, 834, 838, 846, 885, 885, 891,
  987. 892, 860, 874, 875, 893, 894, 895, 896, 897, 898,
  988. 899, 900, 901, 902, 903, 904, 905, 910, 911, 876,
  989. 877, 879, 881, 882, 883, 885, 889, 891, 892, 912,
  990. 914, 915, 893, 906, 907, 908, 909, 916, 917, 918,
  991. 919, 920, 921, 922, 927, 910, 911, 923, 924, 925,
  992. 926, 928, 929, 930, 931, 932, 933, 912, 914, 915,
  993. 934, 935, 936, 937, 938, 916, 917, 918, 919, 920,
  994. 921, 922, 927, 939, 940, 941, 942, 943, 944, 928,
  995. 929, 930, 931, 932, 933, 945, 946, 947, 934, 935,
  996. 936, 937, 938, 948, 949, 950, 951, 952, 953, 954,
  997. 955, 939, 940, 941, 942, 943, 944, 956, 957, 958,
  998. 959, 960, 961, 945, 946, 947, 962, 963, 964, 965,
  999. 966, 948, 949, 950, 951, 952, 953, 954, 955, 967,
  1000. 968, 970, 971, 972, 973, 956, 957, 958, 959, 960,
  1001. 961, 974, 975, 976, 962, 963, 964, 965, 966, 977,
  1002. 978, 979, 980, 981, 994, 995, 998, 967, 968, 970,
  1003. 971, 972, 973, 982, 983, 984, 985, 999, 912, 974,
  1004. 975, 976, 986, 987, 988, 989, 996, 977, 990, 991,
  1005. 992, 993, 994, 995, 998, 918, 919, 921, 948, 997,
  1006. 1005, 1006, 1007, 955, 967, 999, 1001, 1008, 1009, 1010,
  1007. 1011, 1012, 1013, 970, 996, 923, 924, 925, 926, 974,
  1008. 994, 1024, 1024, 1002, 1003, 1004, 1017, 997, 1028, 1029,
  1009. 1030, 955, 1019, 1031, 1032, 1018, 1033, 1034, 1036, 1037,
  1010. 1038, 970, 1039, 1040, 1041, 1042, 1035, 1021, 1022, 1043,
  1011. 1044, 1045, 1025, 1025, 1506, 1505, 1028, 1029, 1030, 1504,
  1012. 1503, 1031, 1032, 1502, 1033, 1034, 1036, 1037, 1038, 1477,
  1013. 1039, 1040, 1041, 1042, 1063, 1476, 1475, 1043, 1044, 1045,
  1014. 1025, 1025, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053,
  1015. 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1064, 1065,
  1016. 1066, 1067, 1063, 1068, 1069, 1070, 1071, 1072, 1073, 1074,
  1017. 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084,
  1018. 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094,
  1019. 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104,
  1020. 1263, 1264, 1265, 1080, 1081, 1082, 1083, 1084, 1085, 1086,
  1021. 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096,
  1022. 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106,
  1023. 1107, 1111, 1112, 1113, 1114, 1474, 1115, 1120, 1108, 1116,
  1024. 1117, 1118, 1121, 1122, 1123, 1124, 1125, 1032, 1039, 1119,
  1025. 1088, 1473, 1472, 1471, 1109, 1470, 1024, 1469, 1140, 1111,
  1026. 1112, 1113, 1114, 1110, 1115, 1120, 1108, 1142, 1143, 1144,
  1027. 1121, 1122, 1123, 1124, 1125, 1127, 1128, 1119, 1131, 1133,
  1028. 1134, 1135, 1109, 1116, 1117, 1118, 1140, 1025, 1468, 1108,
  1029. 1145, 1146, 1147, 1119, 1148, 1142, 1143, 1144, 1149, 1150,
  1030. 1151, 1152, 1153, 1170, 1171, 1109, 1154, 1155, 1156, 1157,
  1031. 1158, 1159, 1160, 1161, 1110, 1025, 1136, 1137, 1145, 1146,
  1032. 1147, 1119, 1148, 1172, 1173, 1174, 1149, 1150, 1151, 1152,
  1033. 1153, 1170, 1171, 1109, 1162, 1163, 1164, 1165, 1166, 1167,
  1034. 1168, 1169, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182,
  1035. 1183, 1172, 1173, 1174, 1184, 1185, 1186, 1187, 1188, 1189,
  1036. 1190, 1191, 1192, 1193, 1194, 1195, 1467, 1198, 1199, 1200,
  1037. 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1201,
  1038. 1202, 1203, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191,
  1039. 1192, 1193, 1194, 1195, 1196, 1198, 1199, 1200, 1204, 1205,
  1040. 1197, 1206, 1207, 1208, 1210, 1211, 1179, 1201, 1202, 1203,
  1041. 1214, 1215, 1216, 1193, 1194, 1195, 1232, 1196, 1227, 1228,
  1042. 1229, 1209, 1196, 1197, 1233, 1234, 1204, 1205, 1197, 1206,
  1043. 1207, 1208, 1210, 1211, 1219, 1235, 1236, 1237, 1238, 1239,
  1044. 1240, 1221, 1222, 1223, 1232, 1196, 1241, 1217, 1218, 1209,
  1045. 1242, 1225, 1233, 1234, 1243, 1230, 1231, 1244, 1245, 1246,
  1046. 1247, 1248, 1249, 1235, 1236, 1237, 1238, 1239, 1240, 1250,
  1047. 1251, 1252, 1253, 1254, 1241, 1255, 1256, 1257, 1242, 1258,
  1048. 1259, 1260, 1243, 1261, 1262, 1244, 1245, 1246, 1247, 1248,
  1049. 1249, 1266, 1267, 1268, 1269, 1270, 1271, 1250, 1251, 1252,
  1050. 1253, 1254, 1272, 1255, 1256, 1257, 1274, 1258, 1259, 1260,
  1051. 1277, 1261, 1262, 1275, 1278, 1279, 1280, 1281, 1252, 1266,
  1052. 1267, 1268, 1269, 1270, 1271, 1276, 1466, 1465, 1267, 1302,
  1053. 1272, 1303, 1304, 1305, 1274, 1306, 1307, 1290, 1277, 1308,
  1054. 1309, 1275, 1278, 1279, 1280, 1281, 1287, 1310, 1311, 1291,
  1055. 1312, 1313, 1314, 1276, 1292, 1293, 1295, 1302, 1315, 1303,
  1056. 1304, 1305, 1316, 1306, 1307, 1317, 1318, 1308, 1309, 1319,
  1057. 1320, 1321, 1322, 1323, 1324, 1310, 1311, 1325, 1312, 1313,
  1058. 1314, 1326, 1327, 1328, 1329, 1330, 1315, 1331, 1332, 1333,
  1059. 1316, 1335, 1336, 1317, 1318, 1339, 1340, 1319, 1320, 1321,
  1060. 1322, 1323, 1324, 1341, 1342, 1325, 1343, 1344, 1345, 1326,
  1061. 1327, 1328, 1329, 1330, 1346, 1331, 1332, 1333, 1317, 1335,
  1062. 1336, 1348, 1331, 1339, 1340, 1368, 1369, 1363, 1370, 1371,
  1063. 1372, 1341, 1342, 1349, 1343, 1344, 1345, 1373, 1350, 1364,
  1064. 1374, 1375, 1346, 1376, 1365, 1377, 1353, 1378, 1379, 1380,
  1065. 1361, 1381, 1382, 1368, 1369, 1383, 1370, 1371, 1372, 1384,
  1066. 1386, 1387, 1388, 1389, 1390, 1373, 1391, 1392, 1374, 1375,
  1067. 1393, 1376, 1394, 1377, 1395, 1378, 1379, 1380, 1396, 1381,
  1068. 1382, 1397, 1398, 1383, 1399, 1400, 1401, 1384, 1386, 1387,
  1069. 1388, 1389, 1390, 1402, 1391, 1392, 1403, 1382, 1393, 1426,
  1070. 1394, 1427, 1395, 1428, 1429, 1430, 1396, 1431, 1432, 1397,
  1071. 1398, 1433, 1399, 1400, 1401, 1434, 1435, 1436, 1437, 1438,
  1072. 1439, 1402, 1440, 1441, 1403, 1410, 1442, 1426, 1443, 1427,
  1073. 1444, 1428, 1429, 1430, 1445, 1431, 1432, 1446, 1447, 1433,
  1074. 1448, 1449, 1450, 1434, 1435, 1436, 1437, 1438, 1439, 1451,
  1075. 1440, 1441, 1452, 1453, 1442, 1454, 1443, 1455, 1444, 1436,
  1076. 1478, 1479, 1445, 1480, 1481, 1446, 1447, 1482, 1448, 1449,
  1077. 1450, 1483, 1484, 1485, 1486, 1487, 1488, 1451, 1489, 1490,
  1078. 1452, 1453, 1491, 1454, 1492, 1455, 1493, 1462, 1478, 1479,
  1079. 1494, 1480, 1481, 1495, 1496, 1482, 1497, 1498, 1499, 1483,
  1080. 1484, 1485, 1486, 1487, 1488, 1500, 1489, 1490, 1501, 1522,
  1081. 1491, 1523, 1492, 1524, 1493, 1525, 1526, 1527, 1494, 1528,
  1082. 1529, 1495, 1496, 1530, 1497, 1498, 1499, 1531, 1532, 1533,
  1083. 1534, 1535, 1536, 1500, 1537, 1538, 1501, 1522, 1539, 1523,
  1084. 1540, 1524, 1557, 1525, 1526, 1527, 1558, 1528, 1529, 1559,
  1085. 1560, 1530, 1561, 1562, 1563, 1531, 1532, 1533, 1534, 1535,
  1086. 1536, 1564, 1537, 1538, 1565, 1566, 1539, 1567, 1540, 1568,
  1087. 1557, 1569, 1570, 1571, 1558, 1572, 1573, 1559, 1560, 1584,
  1088. 1561, 1562, 1563, 1585, 1586, 1587, 1588, 1589, 1590, 1564,
  1089. 1600, 1601, 1565, 1566, 1602, 1567, 1603, 1568, 1604, 1569,
  1090. 1570, 1571, 1609, 1572, 1573, 1610, 1611, 1584, 1612, 1617,
  1091. 1618, 1585, 1586, 1587, 1588, 1589, 1590, 1619, 1600, 1601,
  1092. 1623, 1624, 1602, 1625, 1603, 1627, 1604, 1628, 1629, 1631,
  1093. 1609, 1464, 1463, 1610, 1611, 1461, 1612, 1617, 1618, 1460,
  1094. 1459, 1458, 1457, 1456, 1425, 1619, 1424, 1423, 1623, 1624,
  1095. 1422, 1625, 1421, 1627, 1420, 1628, 1629, 1631, 69, 69,
  1096. 69, 69, 72, 72, 72, 72, 229, 1417, 1416, 229,
  1097. 231, 1415, 231, 231, 1141, 1414, 1141, 1141, 1413, 1412,
  1098. 1411, 1409, 1408, 1407, 1406, 1405, 1404, 1385, 1367, 1366,
  1099. 1362, 1360, 1359, 1358, 1357, 1356, 1355, 1354, 1352, 1351,
  1100. 1347, 1334, 1301, 1300, 1299, 1298, 1297, 1296, 1294, 1286,
  1101. 1285, 1284, 1283, 1282, 1273, 1226, 1224, 1220, 1213, 1212,
  1102. 1139, 1138, 1132, 1130, 1129, 1126, 1062, 1027, 1026, 1023,
  1103. 1020, 1016, 1015, 1014, 1000, 969, 913, 890, 888, 887,
  1104. 886, 884, 880, 878, 873, 863, 862, 861, 859, 858,
  1105. 857, 754, 852, 754, 739, 738, 736, 735, 734, 733,
  1106. 732, 731, 725, 721, 719, 715, 713, 712, 711, 710,
  1107. 709, 705, 704, 702, 683, 578, 577, 575, 574, 573,
  1108. 572, 571, 570, 569, 568, 567, 559, 558, 552, 550,
  1109. 545, 543, 539, 538, 537, 536, 535, 533, 531, 528,
  1110. 526, 519, 516, 479, 410, 408, 407, 405, 404, 401,
  1111. 400, 397, 391, 384, 382, 374, 371, 370, 369, 365,
  1112. 359, 357, 351, 348, 245, 244, 242, 241, 239, 233,
  1113. 74, 230, 101, 88, 85, 75, 74, 1632, 73, 73,
  1114. 7, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1115. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1116. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1117. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1118. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1119. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1120. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1121. 1632, 1632, 1632, 1632, 1632, 1632, 1632
  1122. } ;
  1123. static yyconst flex_int16_t yy_chk[3038] =
  1124. { 0,
  1125. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1126. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1127. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1128. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1129. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1130. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1131. 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  1132. 1, 1, 1, 1, 1, 1, 3, 4, 12, 14,
  1133. 16, 3, 4, 17, 18, 19, 21, 21, 18, 23,
  1134. 23, 16, 14, 17, 30, 20, 18, 20, 20, 20,
  1135. 20, 20, 20, 44, 30, 24, 1635, 30, 24, 68,
  1136. 24, 25, 1626, 12, 25, 45, 19, 25, 234, 79,
  1137. 25, 79, 30, 1622, 25, 79, 20, 1616, 234, 12,
  1138. 12, 44, 30, 24, 12, 30, 24, 12, 24, 25,
  1139. 31, 12, 25, 45, 19, 25, 12, 12, 25, 28,
  1140. 32, 28, 25, 27, 20, 26, 26, 27, 32, 26,
  1141. 31, 28, 26, 27, 80, 68, 26, 77, 31, 26,
  1142. 34, 27, 80, 27, 82, 1221, 34, 28, 32, 28,
  1143. 35, 27, 1614, 26, 26, 27, 32, 26, 31, 28,
  1144. 26, 27, 29, 1221, 26, 77, 105, 26, 34, 27,
  1145. 35, 27, 82, 29, 34, 37, 29, 36, 35, 29,
  1146. 37, 36, 237, 42, 106, 29, 1613, 50, 42, 50,
  1147. 29, 36, 237, 42, 105, 1608, 39, 36, 35, 50,
  1148. 39, 29, 1607, 37, 29, 36, 38, 29, 37, 36,
  1149. 39, 42, 106, 29, 38, 50, 42, 50, 39, 36,
  1150. 38, 42, 1361, 38, 39, 36, 38, 50, 39, 1606,
  1151. 53, 48, 107, 43, 38, 48, 1605, 43, 39, 108,
  1152. 1361, 41, 38, 43, 41, 48, 39, 41, 38, 1596,
  1153. 53, 38, 109, 1595, 38, 40, 1594, 41, 53, 51,
  1154. 107, 43, 40, 40, 41, 43, 53, 108, 40, 41,
  1155. 51, 43, 41, 51, 40, 41, 51, 40, 53, 110,
  1156. 109, 46, 51, 40, 46, 41, 46, 51, 1273, 1273,
  1157. 40, 40, 41, 1593, 46, 46, 40, 111, 51, 1583,
  1158. 46, 51, 40, 1582, 51, 40, 52, 110, 1581, 46,
  1159. 51, 46, 46, 46, 46, 47, 52, 55, 47, 52,
  1160. 112, 47, 56, 55, 47, 111, 1580, 54, 47, 1579,
  1161. 52, 52, 47, 47, 52, 54, 52, 55, 47, 1577,
  1162. 1576, 114, 56, 47, 52, 55, 47, 52, 112, 47,
  1163. 56, 55, 47, 47, 56, 54, 47, 49, 57, 58,
  1164. 115, 49, 57, 54, 58, 1575, 1574, 49, 54, 114,
  1165. 56, 54, 57, 116, 1556, 49, 117, 49, 57, 60,
  1166. 60, 1555, 60, 60, 120, 49, 57, 58, 115, 49,
  1167. 57, 1552, 58, 49, 61, 49, 1551, 122, 61, 1549,
  1168. 57, 116, 49, 49, 117, 49, 57, 59, 61, 65,
  1169. 121, 1548, 120, 65, 123, 59, 61, 1547, 121, 65,
  1170. 124, 59, 61, 61, 59, 122, 61, 59, 61, 67,
  1171. 67, 67, 67, 1545, 66, 59, 61, 65, 121, 61,
  1172. 1544, 65, 123, 59, 61, 62, 121, 65, 124, 59,
  1173. 59, 59, 59, 59, 59, 59, 1543, 62, 125, 1521,
  1174. 62, 62, 66, 62, 62, 62, 127, 62, 63, 1518,
  1175. 76, 63, 113, 113, 63, 1517, 128, 66, 66, 66,
  1176. 66, 129, 1516, 1515, 63, 1514, 125, 64, 118, 118,
  1177. 118, 63, 64, 1513, 127, 130, 63, 64, 1512, 63,
  1178. 113, 113, 63, 126, 128, 76, 131, 126, 132, 129,
  1179. 63, 63, 63, 63, 63, 64, 118, 118, 118, 63,
  1180. 64, 76, 76, 130, 1511, 64, 76, 133, 64, 76,
  1181. 134, 126, 1510, 76, 131, 126, 132, 135, 76, 76,
  1182. 96, 96, 96, 96, 96, 96, 98, 136, 98, 98,
  1183. 98, 98, 98, 98, 119, 133, 139, 140, 134, 138,
  1184. 119, 141, 138, 138, 119, 135, 142, 138, 143, 144,
  1185. 146, 145, 147, 148, 1509, 136, 150, 98, 145, 151,
  1186. 1508, 153, 119, 154, 139, 140, 149, 138, 119, 141,
  1187. 138, 138, 119, 156, 142, 138, 143, 144, 146, 145,
  1188. 147, 148, 149, 158, 150, 98, 145, 151, 152, 153,
  1189. 157, 154, 152, 155, 149, 155, 160, 161, 152, 159,
  1190. 155, 156, 162, 163, 164, 1507, 155, 157, 157, 1504,
  1191. 149, 158, 165, 159, 168, 160, 152, 169, 157, 162,
  1192. 152, 155, 165, 155, 160, 161, 152, 159, 155, 166,
  1193. 162, 163, 164, 165, 155, 157, 157, 167, 166, 171,
  1194. 165, 159, 168, 160, 172, 169, 170, 162, 173, 167,
  1195. 165, 174, 170, 167, 174, 175, 170, 166, 1503, 172,
  1196. 180, 165, 183, 183, 1502, 167, 166, 171, 181, 178,
  1197. 178, 184, 172, 1477, 170, 178, 173, 167, 187, 174,
  1198. 170, 167, 174, 175, 170, 191, 178, 172, 180, 192,
  1199. 183, 183, 181, 181, 193, 194, 181, 186, 181, 184,
  1200. 185, 185, 185, 186, 189, 1476, 187, 186, 193, 181,
  1201. 1475, 1474, 189, 191, 1473, 202, 203, 192, 1472, 195,
  1202. 205, 206, 193, 194, 1471, 186, 212, 205, 185, 185,
  1203. 185, 186, 189, 195, 195, 186, 216, 207, 198, 195,
  1204. 189, 198, 198, 202, 203, 219, 198, 195, 205, 206,
  1205. 195, 225, 202, 207, 212, 205, 208, 208, 209, 208,
  1206. 208, 210, 209, 1470, 216, 207, 198, 1468, 209, 198,
  1207. 198, 210, 210, 219, 198, 221, 198, 210, 211, 225,
  1208. 211, 207, 207, 214, 217, 211, 209, 220, 210, 210,
  1209. 209, 211, 1467, 220, 217, 221, 209, 220, 378, 378,
  1210. 214, 378, 378, 221, 218, 217, 211, 224, 211, 223,
  1211. 224, 214, 217, 211, 1466, 220, 218, 232, 240, 211,
  1212. 218, 220, 217, 246, 223, 220, 214, 214, 214, 214,
  1213. 214, 248, 218, 217, 249, 224, 250, 223, 224, 226,
  1214. 226, 226, 226, 251, 218, 232, 240, 252, 218, 253,
  1215. 254, 246, 223, 243, 243, 243, 243, 243, 243, 248,
  1216. 255, 256, 249, 257, 250, 258, 259, 260, 261, 262,
  1217. 262, 251, 263, 264, 265, 252, 266, 253, 254, 267,
  1218. 268, 269, 270, 271, 272, 273, 274, 275, 255, 256,
  1219. 276, 257, 278, 258, 259, 260, 261, 262, 262, 279,
  1220. 263, 264, 265, 280, 266, 281, 282, 267, 268, 269,
  1221. 270, 271, 272, 273, 274, 275, 283, 284, 276, 285,
  1222. 278, 286, 287, 288, 288, 288, 288, 279, 289, 290,
  1223. 291, 280, 292, 281, 282, 288, 293, 295, 296, 297,
  1224. 298, 299, 300, 301, 283, 284, 302, 285, 303, 286,
  1225. 287, 304, 305, 306, 307, 308, 289, 290, 291, 309,
  1226. 292, 310, 311, 288, 293, 295, 296, 297, 298, 299,
  1227. 300, 301, 312, 314, 302, 315, 303, 314, 316, 304,
  1228. 305, 306, 307, 308, 317, 318, 319, 309, 320, 310,
  1229. 311, 321, 322, 323, 325, 324, 326, 327, 328, 329,
  1230. 312, 314, 330, 315, 331, 314, 316, 324, 332, 333,
  1231. 335, 336, 317, 318, 319, 338, 320, 339, 340, 321,
  1232. 322, 323, 325, 324, 326, 327, 328, 329, 341, 342,
  1233. 330, 337, 331, 343, 344, 324, 332, 333, 335, 336,
  1234. 337, 345, 346, 338, 349, 339, 340, 347, 347, 350,
  1235. 352, 353, 355, 347, 354, 354, 341, 342, 356, 337,
  1236. 358, 343, 344, 360, 347, 361, 363, 366, 337, 345,
  1237. 346, 375, 349, 367, 367, 367, 367, 350, 352, 353,
  1238. 355, 376, 354, 354, 379, 367, 356, 380, 358, 381,
  1239. 383, 360, 1465, 361, 363, 366, 373, 373, 373, 375,
  1240. 385, 386, 383, 387, 388, 389, 393, 394, 396, 376,
  1241. 406, 409, 379, 367, 389, 380, 410, 381, 383, 1464,
  1242. 373, 392, 392, 392, 395, 395, 395, 395, 385, 386,
  1243. 383, 387, 388, 389, 393, 394, 396, 412, 406, 409,
  1244. 414, 415, 389, 416, 410, 418, 419, 392, 373, 413,
  1245. 413, 413, 413, 420, 422, 423, 425, 425, 424, 426,
  1246. 427, 428, 429, 430, 431, 412, 432, 433, 414, 415,
  1247. 424, 416, 434, 418, 419, 392, 437, 438, 439, 440,
  1248. 441, 420, 422, 423, 425, 425, 424, 426, 427, 428,
  1249. 429, 430, 431, 442, 432, 433, 443, 445, 424, 447,
  1250. 434, 448, 449, 450, 437, 438, 439, 440, 441, 451,
  1251. 452, 453, 454, 455, 456, 458, 459, 460, 461, 462,
  1252. 464, 442, 465, 466, 443, 445, 468, 447, 469, 448,
  1253. 449, 450, 456, 470, 471, 472, 473, 451, 452, 453,
  1254. 454, 455, 456, 458, 459, 460, 461, 462, 464, 474,
  1255. 465, 466, 475, 476, 468, 477, 469, 478, 479, 480,
  1256. 456, 470, 471, 472, 473, 481, 482, 483, 484, 485,
  1257. 486, 487, 488, 489, 490, 491, 492, 474, 490, 493,
  1258. 475, 476, 494, 477, 495, 478, 479, 480, 496, 497,
  1259. 499, 500, 1463, 481, 482, 483, 484, 485, 486, 487,
  1260. 488, 489, 490, 491, 492, 502, 490, 493, 504, 505,
  1261. 494, 506, 495, 507, 508, 502, 496, 497, 499, 500,
  1262. 503, 503, 503, 503, 509, 510, 511, 513, 514, 517,
  1263. 517, 517, 517, 502, 518, 521, 504, 505, 523, 506,
  1264. 524, 507, 508, 502, 519, 519, 519, 522, 522, 525,
  1265. 527, 530, 509, 510, 511, 513, 514, 526, 526, 526,
  1266. 532, 534, 518, 521, 544, 547, 523, 548, 524, 528,
  1267. 528, 528, 537, 537, 537, 522, 522, 525, 527, 530,
  1268. 549, 551, 553, 554, 556, 556, 556, 556, 532, 534,
  1269. 557, 564, 544, 547, 566, 548, 559, 559, 559, 576,
  1270. 579, 580, 581, 582, 583, 584, 585, 587, 549, 551,
  1271. 553, 554, 588, 590, 591, 593, 594, 595, 557, 564,
  1272. 597, 598, 566, 599, 600, 601, 602, 576, 579, 580,
  1273. 581, 582, 583, 584, 585, 587, 603, 604, 606, 607,
  1274. 588, 590, 591, 593, 594, 595, 608, 611, 597, 598,
  1275. 612, 599, 600, 601, 602, 605, 605, 605, 605, 610,
  1276. 610, 610, 610, 613, 603, 604, 606, 607, 614, 615,
  1277. 616, 618, 623, 1461, 608, 611, 625, 626, 612, 619,
  1278. 619, 619, 619, 620, 620, 620, 620, 621, 621, 621,
  1279. 621, 613, 622, 622, 622, 622, 614, 615, 616, 618,
  1280. 623, 624, 627, 628, 625, 626, 629, 630, 631, 632,
  1281. 633, 634, 635, 636, 637, 624, 638, 639, 640, 641,
  1282. 642, 643, 644, 645, 634, 646, 647, 648, 649, 624,
  1283. 627, 628, 650, 651, 629, 630, 631, 632, 633, 634,
  1284. 635, 636, 637, 624, 638, 639, 640, 641, 642, 643,
  1285. 644, 645, 634, 646, 647, 648, 649, 653, 654, 656,
  1286. 650, 651, 657, 658, 659, 660, 661, 662, 663, 664,
  1287. 666, 667, 668, 669, 670, 671, 672, 673, 676, 678,
  1288. 679, 680, 681, 688, 690, 653, 654, 656, 691, 692,
  1289. 657, 658, 659, 660, 661, 662, 663, 664, 666, 667,
  1290. 668, 669, 670, 671, 672, 673, 676, 678, 679, 680,
  1291. 681, 688, 690, 696, 714, 716, 691, 692, 701, 701,
  1292. 701, 701, 710, 710, 710, 711, 711, 711, 712, 712,
  1293. 712, 717, 718, 720, 722, 723, 724, 730, 737, 740,
  1294. 741, 696, 714, 716, 742, 743, 743, 743, 743, 744,
  1295. 744, 744, 744, 745, 745, 745, 745, 748, 749, 717,
  1296. 718, 720, 722, 723, 724, 730, 737, 740, 741, 750,
  1297. 752, 753, 742, 746, 746, 746, 746, 754, 755, 756,
  1298. 757, 759, 760, 761, 763, 748, 749, 762, 762, 762,
  1299. 762, 764, 765, 766, 767, 768, 770, 750, 752, 753,
  1300. 771, 772, 773, 775, 776, 754, 755, 756, 757, 759,
  1301. 760, 761, 763, 777, 778, 780, 797, 798, 800, 764,
  1302. 765, 766, 767, 768, 770, 802, 803, 804, 771, 772,
  1303. 773, 775, 776, 805, 806, 807, 808, 809, 810, 811,
  1304. 812, 777, 778, 780, 797, 798, 800, 813, 814, 816,
  1305. 817, 818, 819, 802, 803, 804, 821, 822, 823, 824,
  1306. 825, 805, 806, 807, 808, 809, 810, 811, 812, 826,
  1307. 830, 833, 835, 836, 837, 813, 814, 816, 817, 818,
  1308. 819, 838, 839, 840, 821, 822, 823, 824, 825, 841,
  1309. 842, 842, 842, 842, 846, 847, 850, 826, 830, 833,
  1310. 835, 836, 837, 843, 843, 843, 843, 851, 853, 838,
  1311. 839, 840, 844, 844, 844, 844, 849, 841, 845, 845,
  1312. 845, 845, 846, 847, 850, 854, 855, 856, 874, 849,
  1313. 857, 857, 857, 875, 877, 851, 853, 858, 858, 858,
  1314. 859, 859, 859, 879, 849, 860, 860, 860, 860, 882,
  1315. 883, 885, 889, 854, 855, 856, 874, 849, 891, 892,
  1316. 893, 875, 877, 910, 912, 875, 913, 914, 915, 916,
  1317. 917, 879, 918, 920, 922, 923, 914, 882, 883, 924,
  1318. 925, 926, 885, 889, 1460, 1459, 891, 892, 893, 1458,
  1319. 1457, 910, 912, 1456, 913, 914, 915, 916, 917, 1425,
  1320. 918, 920, 922, 923, 932, 1424, 1423, 924, 925, 926,
  1321. 885, 889, 927, 927, 927, 927, 928, 928, 928, 928,
  1322. 929, 929, 929, 929, 930, 930, 930, 930, 933, 933,
  1323. 933, 933, 932, 934, 934, 934, 934, 935, 935, 935,
  1324. 935, 936, 936, 936, 936, 938, 939, 940, 941, 942,
  1325. 944, 946, 947, 948, 949, 950, 951, 952, 953, 954,
  1326. 957, 958, 959, 960, 961, 962, 963, 964, 965, 966,
  1327. 1192, 1192, 1192, 938, 939, 940, 941, 942, 944, 946,
  1328. 947, 948, 949, 950, 951, 952, 953, 954, 957, 958,
  1329. 959, 960, 961, 962, 963, 964, 965, 966, 967, 967,
  1330. 967, 968, 969, 970, 972, 1422, 973, 975, 967, 974,
  1331. 974, 974, 977, 995, 996, 997, 999, 1001, 1002, 974,
  1332. 1017, 1421, 1420, 1419, 967, 1418, 1024, 1417, 1025, 968,
  1333. 969, 970, 972, 967, 973, 975, 967, 1028, 1029, 1030,
  1334. 977, 995, 996, 997, 999, 1001, 1002, 974, 1017, 1019,
  1335. 1019, 1019, 967, 1021, 1021, 1021, 1025, 1024, 1416, 1019,
  1336. 1031, 1033, 1034, 1021, 1035, 1028, 1029, 1030, 1036, 1037,
  1337. 1038, 1040, 1041, 1062, 1080, 1019, 1042, 1042, 1042, 1042,
  1338. 1043, 1043, 1043, 1043, 1019, 1024, 1019, 1019, 1031, 1033,
  1339. 1034, 1021, 1035, 1081, 1082, 1083, 1036, 1037, 1038, 1040,
  1340. 1041, 1062, 1080, 1019, 1044, 1044, 1044, 1044, 1045, 1045,
  1341. 1045, 1045, 1084, 1085, 1086, 1087, 1088, 1090, 1091, 1092,
  1342. 1093, 1081, 1082, 1083, 1094, 1095, 1096, 1098, 1099, 1100,
  1343. 1102, 1103, 1104, 1105, 1106, 1107, 1415, 1109, 1110, 1111,
  1344. 1084, 1085, 1086, 1087, 1088, 1090, 1091, 1092, 1093, 1112,
  1345. 1113, 1114, 1094, 1095, 1096, 1098, 1099, 1100, 1102, 1103,
  1346. 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1116, 1117,
  1347. 1108, 1118, 1119, 1120, 1123, 1124, 1131, 1112, 1113, 1114,
  1348. 1130, 1130, 1130, 1133, 1134, 1135, 1140, 1137, 1139, 1139,
  1349. 1139, 1120, 1108, 1137, 1142, 1143, 1116, 1117, 1108, 1118,
  1350. 1119, 1120, 1123, 1124, 1131, 1144, 1145, 1146, 1147, 1148,
  1351. 1149, 1133, 1134, 1135, 1140, 1137, 1150, 1130, 1130, 1120,
  1352. 1151, 1137, 1142, 1143, 1152, 1139, 1139, 1153, 1170, 1171,
  1353. 1172, 1173, 1174, 1144, 1145, 1146, 1147, 1148, 1149, 1176,
  1354. 1178, 1179, 1180, 1181, 1150, 1182, 1183, 1184, 1151, 1186,
  1355. 1187, 1188, 1152, 1190, 1191, 1153, 1170, 1171, 1172, 1173,
  1356. 1174, 1196, 1197, 1198, 1199, 1200, 1201, 1176, 1178, 1179,
  1357. 1180, 1181, 1202, 1182, 1183, 1184, 1204, 1186, 1187, 1188,
  1358. 1207, 1190, 1191, 1205, 1208, 1209, 1210, 1211, 1219, 1196,
  1359. 1197, 1198, 1199, 1200, 1201, 1205, 1414, 1413, 1225, 1232,
  1360. 1202, 1233, 1234, 1236, 1204, 1237, 1238, 1222, 1207, 1239,
  1361. 1240, 1205, 1208, 1209, 1210, 1211, 1219, 1242, 1243, 1222,
  1362. 1244, 1245, 1246, 1205, 1222, 1222, 1225, 1232, 1247, 1233,
  1363. 1234, 1236, 1251, 1237, 1238, 1252, 1253, 1239, 1240, 1255,
  1364. 1256, 1257, 1258, 1259, 1260, 1242, 1243, 1261, 1244, 1245,
  1365. 1246, 1262, 1263, 1264, 1265, 1266, 1247, 1267, 1268, 1269,
  1366. 1251, 1271, 1272, 1252, 1253, 1274, 1275, 1255, 1256, 1257,
  1367. 1258, 1259, 1260, 1276, 1277, 1261, 1278, 1279, 1280, 1262,
  1368. 1263, 1264, 1265, 1266, 1281, 1267, 1268, 1269, 1287, 1271,
  1369. 1272, 1283, 1295, 1274, 1275, 1302, 1303, 1298, 1304, 1305,
  1370. 1306, 1276, 1277, 1283, 1278, 1279, 1280, 1307, 1283, 1298,
  1371. 1308, 1309, 1281, 1310, 1298, 1311, 1287, 1312, 1313, 1314,
  1372. 1295, 1316, 1317, 1302, 1303, 1319, 1304, 1305, 1306, 1322,
  1373. 1324, 1325, 1326, 1327, 1328, 1307, 1330, 1332, 1308, 1309,
  1374. 1333, 1310, 1334, 1311, 1336, 1312, 1313, 1314, 1338, 1316,
  1375. 1317, 1339, 1340, 1319, 1341, 1342, 1344, 1322, 1324, 1325,
  1376. 1326, 1327, 1328, 1345, 1330, 1332, 1346, 1353, 1333, 1369,
  1377. 1334, 1371, 1336, 1373, 1374, 1375, 1338, 1376, 1377, 1339,
  1378. 1340, 1377, 1341, 1342, 1344, 1380, 1381, 1382, 1383, 1384,
  1379. 1385, 1345, 1386, 1387, 1346, 1353, 1388, 1369, 1389, 1371,
  1380. 1390, 1373, 1374, 1375, 1391, 1376, 1377, 1393, 1394, 1377,
  1381. 1395, 1396, 1397, 1380, 1381, 1382, 1383, 1384, 1385, 1398,
  1382. 1386, 1387, 1399, 1400, 1388, 1401, 1389, 1402, 1390, 1410,
  1383. 1426, 1427, 1391, 1429, 1431, 1393, 1394, 1432, 1395, 1396,
  1384. 1397, 1433, 1434, 1435, 1438, 1439, 1440, 1398, 1441, 1442,
  1385. 1399, 1400, 1443, 1401, 1444, 1402, 1445, 1410, 1426, 1427,
  1386. 1447, 1429, 1431, 1448, 1450, 1432, 1451, 1452, 1453, 1433,
  1387. 1434, 1435, 1438, 1439, 1440, 1454, 1441, 1442, 1455, 1478,
  1388. 1443, 1479, 1444, 1480, 1445, 1481, 1482, 1483, 1447, 1485,
  1389. 1486, 1448, 1450, 1487, 1451, 1452, 1453, 1488, 1489, 1490,
  1390. 1491, 1492, 1493, 1454, 1494, 1495, 1455, 1478, 1498, 1479,
  1391. 1499, 1480, 1522, 1481, 1482, 1483, 1523, 1485, 1486, 1524,
  1392. 1525, 1487, 1526, 1527, 1530, 1488, 1489, 1490, 1491, 1492,
  1393. 1493, 1531, 1494, 1495, 1532, 1533, 1498, 1534, 1499, 1535,
  1394. 1522, 1536, 1537, 1538, 1523, 1539, 1540, 1524, 1525, 1557,
  1395. 1526, 1527, 1530, 1558, 1560, 1561, 1565, 1566, 1569, 1531,
  1396. 1584, 1586, 1532, 1533, 1588, 1534, 1589, 1535, 1590, 1536,
  1397. 1537, 1538, 1600, 1539, 1540, 1601, 1602, 1557, 1604, 1609,
  1398. 1610, 1558, 1560, 1561, 1565, 1566, 1569, 1612, 1584, 1586,
  1399. 1617, 1618, 1588, 1619, 1589, 1623, 1590, 1624, 1625, 1628,
  1400. 1600, 1412, 1411, 1601, 1602, 1409, 1604, 1609, 1610, 1408,
  1401. 1407, 1406, 1405, 1404, 1367, 1612, 1366, 1365, 1617, 1618,
  1402. 1364, 1619, 1363, 1623, 1362, 1624, 1625, 1628, 1633, 1633,
  1403. 1633, 1633, 1634, 1634, 1634, 1634, 1636, 1360, 1359, 1636,
  1404. 1637, 1358, 1637, 1637, 1638, 1357, 1638, 1638, 1356, 1355,
  1405. 1354, 1352, 1351, 1350, 1349, 1348, 1347, 1323, 1301, 1300,
  1406. 1297, 1294, 1293, 1292, 1291, 1290, 1289, 1288, 1286, 1285,
  1407. 1282, 1270, 1231, 1230, 1229, 1228, 1227, 1226, 1224, 1218,
  1408. 1217, 1216, 1215, 1214, 1203, 1138, 1136, 1132, 1129, 1126,
  1409. 1023, 1020, 1018, 1015, 1014, 1000, 931, 890, 888, 884,
  1410. 880, 873, 862, 861, 852, 831, 751, 739, 736, 735,
  1411. 731, 725, 721, 719, 713, 709, 705, 704, 695, 694,
  1412. 693, 689, 683, 596, 578, 577, 574, 573, 572, 571,
  1413. 570, 567, 558, 552, 550, 545, 543, 542, 541, 540,
  1414. 538, 536, 535, 533, 516, 408, 407, 405, 404, 403,
  1415. 402, 401, 400, 399, 398, 397, 391, 390, 384, 382,
  1416. 377, 374, 372, 371, 370, 369, 368, 365, 362, 359,
  1417. 357, 351, 348, 313, 247, 242, 241, 239, 238, 236,
  1418. 235, 233, 222, 215, 213, 204, 201, 200, 199, 196,
  1419. 190, 188, 182, 179, 103, 99, 84, 83, 81, 78,
  1420. 74, 71, 22, 15, 13, 11, 9, 7, 6, 5,
  1421. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1422. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1423. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1424. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1425. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1426. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1427. 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632, 1632,
  1428. 1632, 1632, 1632, 1632, 1632, 1632, 1632
  1429. } ;
  1430. /* The intent behind this definition is that it'll catch
  1431. * any uses of REJECT which flex missed.
  1432. */
  1433. #define REJECT reject_used_but_not_detected
  1434. #define yymore() yymore_used_but_not_detected
  1435. #define YY_MORE_ADJ 0
  1436. #define YY_RESTORE_YY_MORE_OFFSET
  1437. #line 1 "gpu/lolfx-scanner.l"
  1438. #line 2 "gpu/lolfx-scanner.l"
  1439. //
  1440. // Lol Engine
  1441. //
  1442. // Copyright: (c) 2010-2012 Sam Hocevar <sam@hocevar.net>
  1443. // This program is free software; you can redistribute it and/or
  1444. // modify it under the terms of the Do What The Fuck You Want To
  1445. // Public License, Version 2, as published by Sam Hocevar. See
  1446. // http://sam.zoy.org/projects/COPYING.WTFPL for more details.
  1447. //
  1448. #if defined HAVE_CONFIG_H
  1449. # include "config.h"
  1450. #endif
  1451. #include <cstdlib>
  1452. using std::exit;
  1453. using std::malloc;
  1454. using std::realloc;
  1455. using std::free;
  1456. #include <iostream>
  1457. #include "core.h"
  1458. #include "gpu/lolfx-compiler.h"
  1459. typedef lol::LolFxParser::token token;
  1460. typedef lol::LolFxParser::token_type token_type;
  1461. #ifndef YY_DECL
  1462. # define YY_DECL lol::LolFxParser::token_type \
  1463. lol::LolFxScanner::lex(lol::LolFxParser::semantic_type* yylval, \
  1464. lol::LolFxParser::location_type* yylloc)
  1465. #endif
  1466. #define yyterminate() return token::T_END
  1467. #define YY_NO_UNISTD_H
  1468. #define YY_USER_ACTION yylloc->columns(yyleng);
  1469. #line 1662 "generated/lolfx-scanner.cpp"
  1470. #define INITIAL 0
  1471. #define C_COMMENT 1
  1472. #define CPP_COMMENT 2
  1473. #ifndef YY_NO_UNISTD_H
  1474. /* Special case for "unistd.h", since it is non-ANSI. We include it way
  1475. * down here because we want the user's section 1 to have been scanned first.
  1476. * The user has a chance to override it with an option.
  1477. */
  1478. #include <unistd.h>
  1479. #endif
  1480. #ifndef YY_EXTRA_TYPE
  1481. #define YY_EXTRA_TYPE void *
  1482. #endif
  1483. #ifndef yytext_ptr
  1484. static void yy_flex_strncpy (char *,yyconst char *,int );
  1485. #endif
  1486. #ifdef YY_NEED_STRLEN
  1487. static int yy_flex_strlen (yyconst char * );
  1488. #endif
  1489. #ifndef YY_NO_INPUT
  1490. #endif
  1491. /* Amount of stuff to slurp up with each read. */
  1492. #ifndef YY_READ_BUF_SIZE
  1493. #ifdef __ia64__
  1494. /* On IA-64, the buffer size is 16k, not 8k */
  1495. #define YY_READ_BUF_SIZE 16384
  1496. #else
  1497. #define YY_READ_BUF_SIZE 8192
  1498. #endif /* __ia64__ */
  1499. #endif
  1500. /* Copy whatever the last rule matched to the standard output. */
  1501. #ifndef ECHO
  1502. #define ECHO LexerOutput( yytext, yyleng )
  1503. #endif
  1504. /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
  1505. * is returned in "result".
  1506. */
  1507. #ifndef YY_INPUT
  1508. #define YY_INPUT(buf,result,max_size) \
  1509. \
  1510. if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
  1511. YY_FATAL_ERROR( "input in flex scanner failed" );
  1512. #endif
  1513. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  1514. * we don't want an extra ';' after the "return" because that will cause
  1515. * some compilers to complain about unreachable statements.
  1516. */
  1517. #ifndef yyterminate
  1518. #define yyterminate() return YY_NULL
  1519. #endif
  1520. /* Number of entries by which start-condition stack grows. */
  1521. #ifndef YY_START_STACK_INCR
  1522. #define YY_START_STACK_INCR 25
  1523. #endif
  1524. /* Report a fatal error. */
  1525. #ifndef YY_FATAL_ERROR
  1526. #define YY_FATAL_ERROR(msg) LexerError( msg )
  1527. #endif
  1528. /* end tables serialization structures and prototypes */
  1529. /* Default declaration of generated scanner - a define so the user can
  1530. * easily add parameters.
  1531. */
  1532. #ifndef YY_DECL
  1533. #define YY_DECL_IS_OURS 1
  1534. #define YY_DECL int yyFlexLexer::yylex()
  1535. #endif /* !YY_DECL */
  1536. /* Code executed at the beginning of each rule, after yytext and yyleng
  1537. * have been set up.
  1538. */
  1539. #ifndef YY_USER_ACTION
  1540. #define YY_USER_ACTION
  1541. #endif
  1542. /* Code executed at the end of each rule. */
  1543. #ifndef YY_BREAK
  1544. #define YY_BREAK break;
  1545. #endif
  1546. #define YY_RULE_SETUP \
  1547. YY_USER_ACTION
  1548. /** The main scanner function which does all the work.
  1549. */
  1550. YY_DECL
  1551. {
  1552. register yy_state_type yy_current_state;
  1553. register char *yy_cp, *yy_bp;
  1554. register int yy_act;
  1555. #line 46 "gpu/lolfx-scanner.l"
  1556. /* reset location at the beginning of yylex() */
  1557. yylloc->step();
  1558. int language_guess = INITIAL;
  1559. /*
  1560. * GLSL keywords
  1561. */
  1562. #line 1783 "generated/lolfx-scanner.cpp"
  1563. if ( !(yy_init) )
  1564. {
  1565. (yy_init) = 1;
  1566. #ifdef YY_USER_INIT
  1567. YY_USER_INIT;
  1568. #endif
  1569. if ( ! (yy_start) )
  1570. (yy_start) = 1; /* first start state */
  1571. if ( ! yyin )
  1572. yyin = & std::cin;
  1573. if ( ! yyout )
  1574. yyout = & std::cout;
  1575. if ( ! YY_CURRENT_BUFFER ) {
  1576. yyensure_buffer_stack ();
  1577. YY_CURRENT_BUFFER_LVALUE =
  1578. yy_create_buffer( yyin, YY_BUF_SIZE );
  1579. }
  1580. yy_load_buffer_state( );
  1581. }
  1582. while ( 1 ) /* loops until end-of-file is reached */
  1583. {
  1584. yy_cp = (yy_c_buf_p);
  1585. /* Support of yytext. */
  1586. *yy_cp = (yy_hold_char);
  1587. /* yy_bp points to the position in yy_ch_buf of the start of
  1588. * the current run.
  1589. */
  1590. yy_bp = yy_cp;
  1591. yy_current_state = (yy_start);
  1592. yy_match:
  1593. do
  1594. {
  1595. register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  1596. if ( yy_accept[yy_current_state] )
  1597. {
  1598. (yy_last_accepting_state) = yy_current_state;
  1599. (yy_last_accepting_cpos) = yy_cp;
  1600. }
  1601. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1602. {
  1603. yy_current_state = (int) yy_def[yy_current_state];
  1604. if ( yy_current_state >= 1633 )
  1605. yy_c = yy_meta[(unsigned int) yy_c];
  1606. }
  1607. yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1608. ++yy_cp;
  1609. }
  1610. while ( yy_current_state != 1632 );
  1611. yy_cp = (yy_last_accepting_cpos);
  1612. yy_current_state = (yy_last_accepting_state);
  1613. yy_find_action:
  1614. yy_act = yy_accept[yy_current_state];
  1615. YY_DO_BEFORE_ACTION;
  1616. do_action: /* This label is used only to access EOF actions. */
  1617. switch ( yy_act )
  1618. { /* beginning of action switch */
  1619. case 0: /* must back up */
  1620. /* undo the effects of YY_DO_BEFORE_ACTION */
  1621. *yy_cp = (yy_hold_char);
  1622. yy_cp = (yy_last_accepting_cpos);
  1623. yy_current_state = (yy_last_accepting_state);
  1624. goto yy_find_action;
  1625. case 1:
  1626. YY_RULE_SETUP
  1627. #line 59 "gpu/lolfx-scanner.l"
  1628. { return token::GT_SUBROUTINE; }
  1629. YY_BREAK
  1630. case 2:
  1631. YY_RULE_SETUP
  1632. #line 60 "gpu/lolfx-scanner.l"
  1633. { return token::GT_PATCH; }
  1634. YY_BREAK
  1635. case 3:
  1636. YY_RULE_SETUP
  1637. #line 61 "gpu/lolfx-scanner.l"
  1638. { return token::GT_SAMPLE; }
  1639. YY_BREAK
  1640. case 4:
  1641. YY_RULE_SETUP
  1642. #line 62 "gpu/lolfx-scanner.l"
  1643. { return token::GT_FLAT; }
  1644. YY_BREAK
  1645. case 5:
  1646. YY_RULE_SETUP
  1647. #line 63 "gpu/lolfx-scanner.l"
  1648. { return token::GT_SMOOTH; }
  1649. YY_BREAK
  1650. case 6:
  1651. YY_RULE_SETUP
  1652. #line 64 "gpu/lolfx-scanner.l"
  1653. { return token::GT_LAYOUT; }
  1654. YY_BREAK
  1655. case 7:
  1656. YY_RULE_SETUP
  1657. #line 65 "gpu/lolfx-scanner.l"
  1658. { return token::GT_SAMPLER1DSHADOW; }
  1659. YY_BREAK
  1660. case 8:
  1661. YY_RULE_SETUP
  1662. #line 66 "gpu/lolfx-scanner.l"
  1663. { return token::GT_SAMPLER2DSHADOW; }
  1664. YY_BREAK
  1665. case 9:
  1666. YY_RULE_SETUP
  1667. #line 67 "gpu/lolfx-scanner.l"
  1668. { return token::GT_SAMPLERCUBESHADOW; }
  1669. YY_BREAK
  1670. case 10:
  1671. YY_RULE_SETUP
  1672. #line 68 "gpu/lolfx-scanner.l"
  1673. { return token::GT_SAMPLER1DARRAY; }
  1674. YY_BREAK
  1675. case 11:
  1676. YY_RULE_SETUP
  1677. #line 69 "gpu/lolfx-scanner.l"
  1678. { return token::GT_SAMPLER2DARRAY; }
  1679. YY_BREAK
  1680. case 12:
  1681. YY_RULE_SETUP
  1682. #line 70 "gpu/lolfx-scanner.l"
  1683. { return token::GT_SAMPLER1DARRAYSHADOW; }
  1684. YY_BREAK
  1685. case 13:
  1686. YY_RULE_SETUP
  1687. #line 71 "gpu/lolfx-scanner.l"
  1688. { return token::GT_SAMPLER2DARRAYSHADOW; }
  1689. YY_BREAK
  1690. case 14:
  1691. YY_RULE_SETUP
  1692. #line 72 "gpu/lolfx-scanner.l"
  1693. { return token::GT_ISAMPLER1D; }
  1694. YY_BREAK
  1695. case 15:
  1696. YY_RULE_SETUP
  1697. #line 73 "gpu/lolfx-scanner.l"
  1698. { return token::GT_ISAMPLER2D; }
  1699. YY_BREAK
  1700. case 16:
  1701. YY_RULE_SETUP
  1702. #line 74 "gpu/lolfx-scanner.l"
  1703. { return token::GT_ISAMPLER3D; }
  1704. YY_BREAK
  1705. case 17:
  1706. YY_RULE_SETUP
  1707. #line 75 "gpu/lolfx-scanner.l"
  1708. { return token::GT_ISAMPLERCUBE; }
  1709. YY_BREAK
  1710. case 18:
  1711. YY_RULE_SETUP
  1712. #line 76 "gpu/lolfx-scanner.l"
  1713. { return token::GT_ISAMPLER1DARRAY; }
  1714. YY_BREAK
  1715. case 19:
  1716. YY_RULE_SETUP
  1717. #line 77 "gpu/lolfx-scanner.l"
  1718. { return token::GT_ISAMPLER2DARRAY; }
  1719. YY_BREAK
  1720. case 20:
  1721. YY_RULE_SETUP
  1722. #line 78 "gpu/lolfx-scanner.l"
  1723. { return token::GT_USAMPLER1D; }
  1724. YY_BREAK
  1725. case 21:
  1726. YY_RULE_SETUP
  1727. #line 79 "gpu/lolfx-scanner.l"
  1728. { return token::GT_USAMPLER2D; }
  1729. YY_BREAK
  1730. case 22:
  1731. YY_RULE_SETUP
  1732. #line 80 "gpu/lolfx-scanner.l"
  1733. { return token::GT_USAMPLER3D; }
  1734. YY_BREAK
  1735. case 23:
  1736. YY_RULE_SETUP
  1737. #line 81 "gpu/lolfx-scanner.l"
  1738. { return token::GT_USAMPLERCUBE; }
  1739. YY_BREAK
  1740. case 24:
  1741. YY_RULE_SETUP
  1742. #line 82 "gpu/lolfx-scanner.l"
  1743. { return token::GT_USAMPLER1DARRAY; }
  1744. YY_BREAK
  1745. case 25:
  1746. YY_RULE_SETUP
  1747. #line 83 "gpu/lolfx-scanner.l"
  1748. { return token::GT_USAMPLER2DARRAY; }
  1749. YY_BREAK
  1750. case 26:
  1751. YY_RULE_SETUP
  1752. #line 84 "gpu/lolfx-scanner.l"
  1753. { return token::GT_SAMPLER2DRECT; }
  1754. YY_BREAK
  1755. case 27:
  1756. YY_RULE_SETUP
  1757. #line 85 "gpu/lolfx-scanner.l"
  1758. { return token::GT_SAMPLER2DRECTSHADOW; }
  1759. YY_BREAK
  1760. case 28:
  1761. YY_RULE_SETUP
  1762. #line 86 "gpu/lolfx-scanner.l"
  1763. { return token::GT_ISAMPLER2DRECT; }
  1764. YY_BREAK
  1765. case 29:
  1766. YY_RULE_SETUP
  1767. #line 87 "gpu/lolfx-scanner.l"
  1768. { return token::GT_USAMPLER2DRECT; }
  1769. YY_BREAK
  1770. case 30:
  1771. YY_RULE_SETUP
  1772. #line 88 "gpu/lolfx-scanner.l"
  1773. { return token::GT_SAMPLERBUFFER; }
  1774. YY_BREAK
  1775. case 31:
  1776. YY_RULE_SETUP
  1777. #line 89 "gpu/lolfx-scanner.l"
  1778. { return token::GT_ISAMPLERBUFFER; }
  1779. YY_BREAK
  1780. case 32:
  1781. YY_RULE_SETUP
  1782. #line 90 "gpu/lolfx-scanner.l"
  1783. { return token::GT_USAMPLERBUFFER; }
  1784. YY_BREAK
  1785. case 33:
  1786. YY_RULE_SETUP
  1787. #line 91 "gpu/lolfx-scanner.l"
  1788. { return token::GT_SAMPLERCUBEARRAY; }
  1789. YY_BREAK
  1790. case 34:
  1791. YY_RULE_SETUP
  1792. #line 92 "gpu/lolfx-scanner.l"
  1793. { return token::GT_SAMPLERCUBEARRAYSHADOW; }
  1794. YY_BREAK
  1795. case 35:
  1796. YY_RULE_SETUP
  1797. #line 93 "gpu/lolfx-scanner.l"
  1798. { return token::GT_ISAMPLERCUBEARRAY; }
  1799. YY_BREAK
  1800. case 36:
  1801. YY_RULE_SETUP
  1802. #line 94 "gpu/lolfx-scanner.l"
  1803. { return token::GT_USAMPLERCUBEARRAY; }
  1804. YY_BREAK
  1805. case 37:
  1806. YY_RULE_SETUP
  1807. #line 95 "gpu/lolfx-scanner.l"
  1808. { return token::GT_SAMPLER2DMS; }
  1809. YY_BREAK
  1810. case 38:
  1811. YY_RULE_SETUP
  1812. #line 96 "gpu/lolfx-scanner.l"
  1813. { return token::GT_ISAMPLER2DMS; }
  1814. YY_BREAK
  1815. case 39:
  1816. YY_RULE_SETUP
  1817. #line 97 "gpu/lolfx-scanner.l"
  1818. { return token::GT_USAMPLER2DMS; }
  1819. YY_BREAK
  1820. case 40:
  1821. YY_RULE_SETUP
  1822. #line 98 "gpu/lolfx-scanner.l"
  1823. { return token::GT_SAMPLER2DMSARRAY; }
  1824. YY_BREAK
  1825. case 41:
  1826. YY_RULE_SETUP
  1827. #line 99 "gpu/lolfx-scanner.l"
  1828. { return token::GT_ISAMPLER2DMSARRAY; }
  1829. YY_BREAK
  1830. case 42:
  1831. YY_RULE_SETUP
  1832. #line 100 "gpu/lolfx-scanner.l"
  1833. { return token::GT_USAMPLER2DMSARRAY; }
  1834. YY_BREAK
  1835. case 43:
  1836. YY_RULE_SETUP
  1837. #line 102 "gpu/lolfx-scanner.l"
  1838. { return token::GT_HIGHP; }
  1839. YY_BREAK
  1840. case 44:
  1841. YY_RULE_SETUP
  1842. #line 103 "gpu/lolfx-scanner.l"
  1843. { return token::GT_MEDIUMP; }
  1844. YY_BREAK
  1845. case 45:
  1846. YY_RULE_SETUP
  1847. #line 104 "gpu/lolfx-scanner.l"
  1848. { return token::GT_LOWP; }
  1849. YY_BREAK
  1850. case 46:
  1851. YY_RULE_SETUP
  1852. #line 105 "gpu/lolfx-scanner.l"
  1853. { return token::GT_PRECISION; }
  1854. YY_BREAK
  1855. case 47:
  1856. YY_RULE_SETUP
  1857. #line 106 "gpu/lolfx-scanner.l"
  1858. { return token::GT_INVARIANT; }
  1859. YY_BREAK
  1860. /*
  1861. * Deprecated GLSL keywords
  1862. */
  1863. case 48:
  1864. YY_RULE_SETUP
  1865. #line 112 "gpu/lolfx-scanner.l"
  1866. { return token::GT_ATTRIBUTE; }
  1867. YY_BREAK
  1868. /*
  1869. * GLSL vector types
  1870. */
  1871. case 49:
  1872. YY_RULE_SETUP
  1873. #line 118 "gpu/lolfx-scanner.l"
  1874. { return token::GT_BVEC2; }
  1875. YY_BREAK
  1876. case 50:
  1877. YY_RULE_SETUP
  1878. #line 119 "gpu/lolfx-scanner.l"
  1879. { return token::GT_BVEC3; }
  1880. YY_BREAK
  1881. case 51:
  1882. YY_RULE_SETUP
  1883. #line 120 "gpu/lolfx-scanner.l"
  1884. { return token::GT_BVEC4; }
  1885. YY_BREAK
  1886. case 52:
  1887. YY_RULE_SETUP
  1888. #line 122 "gpu/lolfx-scanner.l"
  1889. { return token::GT_IVEC2; }
  1890. YY_BREAK
  1891. case 53:
  1892. YY_RULE_SETUP
  1893. #line 123 "gpu/lolfx-scanner.l"
  1894. { return token::GT_IVEC3; }
  1895. YY_BREAK
  1896. case 54:
  1897. YY_RULE_SETUP
  1898. #line 124 "gpu/lolfx-scanner.l"
  1899. { return token::GT_IVEC4; }
  1900. YY_BREAK
  1901. case 55:
  1902. YY_RULE_SETUP
  1903. #line 126 "gpu/lolfx-scanner.l"
  1904. { return token::GT_UVEC2; }
  1905. YY_BREAK
  1906. case 56:
  1907. YY_RULE_SETUP
  1908. #line 127 "gpu/lolfx-scanner.l"
  1909. { return token::GT_UVEC3; }
  1910. YY_BREAK
  1911. case 57:
  1912. YY_RULE_SETUP
  1913. #line 128 "gpu/lolfx-scanner.l"
  1914. { return token::GT_UVEC4; }
  1915. YY_BREAK
  1916. case 58:
  1917. YY_RULE_SETUP
  1918. #line 130 "gpu/lolfx-scanner.l"
  1919. { return token::GT_VEC2; }
  1920. YY_BREAK
  1921. case 59:
  1922. YY_RULE_SETUP
  1923. #line 131 "gpu/lolfx-scanner.l"
  1924. { return token::GT_VEC3; }
  1925. YY_BREAK
  1926. case 60:
  1927. YY_RULE_SETUP
  1928. #line 132 "gpu/lolfx-scanner.l"
  1929. { return token::GT_VEC4; }
  1930. YY_BREAK
  1931. case 61:
  1932. YY_RULE_SETUP
  1933. #line 133 "gpu/lolfx-scanner.l"
  1934. { return token::GT_MAT2; }
  1935. YY_BREAK
  1936. case 62:
  1937. YY_RULE_SETUP
  1938. #line 134 "gpu/lolfx-scanner.l"
  1939. { return token::GT_MAT2X2; }
  1940. YY_BREAK
  1941. case 63:
  1942. YY_RULE_SETUP
  1943. #line 135 "gpu/lolfx-scanner.l"
  1944. { return token::GT_MAT2X3; }
  1945. YY_BREAK
  1946. case 64:
  1947. YY_RULE_SETUP
  1948. #line 136 "gpu/lolfx-scanner.l"
  1949. { return token::GT_MAT2X4; }
  1950. YY_BREAK
  1951. case 65:
  1952. YY_RULE_SETUP
  1953. #line 137 "gpu/lolfx-scanner.l"
  1954. { return token::GT_MAT3; }
  1955. YY_BREAK
  1956. case 66:
  1957. YY_RULE_SETUP
  1958. #line 138 "gpu/lolfx-scanner.l"
  1959. { return token::GT_MAT3X2; }
  1960. YY_BREAK
  1961. case 67:
  1962. YY_RULE_SETUP
  1963. #line 139 "gpu/lolfx-scanner.l"
  1964. { return token::GT_MAT3X3; }
  1965. YY_BREAK
  1966. case 68:
  1967. YY_RULE_SETUP
  1968. #line 140 "gpu/lolfx-scanner.l"
  1969. { return token::GT_MAT3X4; }
  1970. YY_BREAK
  1971. case 69:
  1972. YY_RULE_SETUP
  1973. #line 141 "gpu/lolfx-scanner.l"
  1974. { return token::GT_MAT4; }
  1975. YY_BREAK
  1976. case 70:
  1977. YY_RULE_SETUP
  1978. #line 142 "gpu/lolfx-scanner.l"
  1979. { return token::GT_MAT4X2; }
  1980. YY_BREAK
  1981. case 71:
  1982. YY_RULE_SETUP
  1983. #line 143 "gpu/lolfx-scanner.l"
  1984. { return token::GT_MAT4X3; }
  1985. YY_BREAK
  1986. case 72:
  1987. YY_RULE_SETUP
  1988. #line 144 "gpu/lolfx-scanner.l"
  1989. { return token::GT_MAT4X4; }
  1990. YY_BREAK
  1991. case 73:
  1992. YY_RULE_SETUP
  1993. #line 146 "gpu/lolfx-scanner.l"
  1994. { return token::GT_DVEC2; }
  1995. YY_BREAK
  1996. case 74:
  1997. YY_RULE_SETUP
  1998. #line 147 "gpu/lolfx-scanner.l"
  1999. { return token::GT_DVEC3; }
  2000. YY_BREAK
  2001. case 75:
  2002. YY_RULE_SETUP
  2003. #line 148 "gpu/lolfx-scanner.l"
  2004. { return token::GT_DVEC4; }
  2005. YY_BREAK
  2006. case 76:
  2007. YY_RULE_SETUP
  2008. #line 149 "gpu/lolfx-scanner.l"
  2009. { return token::GT_DMAT2; }
  2010. YY_BREAK
  2011. case 77:
  2012. YY_RULE_SETUP
  2013. #line 150 "gpu/lolfx-scanner.l"
  2014. { return token::GT_DMAT2X2; }
  2015. YY_BREAK
  2016. case 78:
  2017. YY_RULE_SETUP
  2018. #line 151 "gpu/lolfx-scanner.l"
  2019. { return token::GT_DMAT2X3; }
  2020. YY_BREAK
  2021. case 79:
  2022. YY_RULE_SETUP
  2023. #line 152 "gpu/lolfx-scanner.l"
  2024. { return token::GT_DMAT2X4; }
  2025. YY_BREAK
  2026. case 80:
  2027. YY_RULE_SETUP
  2028. #line 153 "gpu/lolfx-scanner.l"
  2029. { return token::GT_DMAT3; }
  2030. YY_BREAK
  2031. case 81:
  2032. YY_RULE_SETUP
  2033. #line 154 "gpu/lolfx-scanner.l"
  2034. { return token::GT_DMAT3X2; }
  2035. YY_BREAK
  2036. case 82:
  2037. YY_RULE_SETUP
  2038. #line 155 "gpu/lolfx-scanner.l"
  2039. { return token::GT_DMAT3X3; }
  2040. YY_BREAK
  2041. case 83:
  2042. YY_RULE_SETUP
  2043. #line 156 "gpu/lolfx-scanner.l"
  2044. { return token::GT_DMAT3X4; }
  2045. YY_BREAK
  2046. case 84:
  2047. YY_RULE_SETUP
  2048. #line 157 "gpu/lolfx-scanner.l"
  2049. { return token::GT_DMAT4; }
  2050. YY_BREAK
  2051. case 85:
  2052. YY_RULE_SETUP
  2053. #line 158 "gpu/lolfx-scanner.l"
  2054. { return token::GT_DMAT4X2; }
  2055. YY_BREAK
  2056. case 86:
  2057. YY_RULE_SETUP
  2058. #line 159 "gpu/lolfx-scanner.l"
  2059. { return token::GT_DMAT4X3; }
  2060. YY_BREAK
  2061. case 87:
  2062. YY_RULE_SETUP
  2063. #line 160 "gpu/lolfx-scanner.l"
  2064. { return token::GT_DMAT4X4; }
  2065. YY_BREAK
  2066. /*
  2067. * GLSL constant values
  2068. */
  2069. case 88:
  2070. YY_RULE_SETUP
  2071. #line 166 "gpu/lolfx-scanner.l"
  2072. { yylval->ival = 1; return token::BOOLCONSTANT; }
  2073. YY_BREAK
  2074. case 89:
  2075. YY_RULE_SETUP
  2076. #line 167 "gpu/lolfx-scanner.l"
  2077. { yylval->ival = 0; return token::BOOLCONSTANT; }
  2078. YY_BREAK
  2079. case 90:
  2080. YY_RULE_SETUP
  2081. #line 169 "gpu/lolfx-scanner.l"
  2082. { return token::FIELDSELECTION; }
  2083. YY_BREAK
  2084. case 91:
  2085. YY_RULE_SETUP
  2086. #line 170 "gpu/lolfx-scanner.l"
  2087. { return token::FIELDSELECTION; }
  2088. YY_BREAK
  2089. case 92:
  2090. YY_RULE_SETUP
  2091. #line 171 "gpu/lolfx-scanner.l"
  2092. { return token::FIELDSELECTION; }
  2093. YY_BREAK
  2094. /*
  2095. * GLSL keywords that are also valid or reserved in HLSL
  2096. * and HLSL keywords that are also valid or reserved in GLSL.
  2097. */
  2098. case 93:
  2099. YY_RULE_SETUP
  2100. #line 178 "gpu/lolfx-scanner.l"
  2101. { return token::GHT_BOOL; }
  2102. YY_BREAK
  2103. case 94:
  2104. YY_RULE_SETUP
  2105. #line 179 "gpu/lolfx-scanner.l"
  2106. { return token::GHT_BREAK; }
  2107. YY_BREAK
  2108. case 95:
  2109. YY_RULE_SETUP
  2110. #line 180 "gpu/lolfx-scanner.l"
  2111. { return token::GHT_CASE; }
  2112. YY_BREAK
  2113. case 96:
  2114. YY_RULE_SETUP
  2115. #line 181 "gpu/lolfx-scanner.l"
  2116. { return token::GHT_CENTROID; }
  2117. YY_BREAK
  2118. case 97:
  2119. YY_RULE_SETUP
  2120. #line 182 "gpu/lolfx-scanner.l"
  2121. { return token::GHT_CONST; }
  2122. YY_BREAK
  2123. case 98:
  2124. YY_RULE_SETUP
  2125. #line 183 "gpu/lolfx-scanner.l"
  2126. { return token::GHT_CONTINUE; }
  2127. YY_BREAK
  2128. case 99:
  2129. YY_RULE_SETUP
  2130. #line 184 "gpu/lolfx-scanner.l"
  2131. { return token::GHT_DEFAULT; }
  2132. YY_BREAK
  2133. case 100:
  2134. YY_RULE_SETUP
  2135. #line 185 "gpu/lolfx-scanner.l"
  2136. { return token::GHT_DISCARD; }
  2137. YY_BREAK
  2138. case 101:
  2139. YY_RULE_SETUP
  2140. #line 186 "gpu/lolfx-scanner.l"
  2141. { return token::GHT_DO; }
  2142. YY_BREAK
  2143. case 102:
  2144. YY_RULE_SETUP
  2145. #line 187 "gpu/lolfx-scanner.l"
  2146. { return token::GHT_DOUBLE; }
  2147. YY_BREAK
  2148. case 103:
  2149. YY_RULE_SETUP
  2150. #line 188 "gpu/lolfx-scanner.l"
  2151. { return token::GHT_ELSE; }
  2152. YY_BREAK
  2153. case 104:
  2154. YY_RULE_SETUP
  2155. #line 189 "gpu/lolfx-scanner.l"
  2156. { return token::GHT_FLOAT; }
  2157. YY_BREAK
  2158. case 105:
  2159. YY_RULE_SETUP
  2160. #line 190 "gpu/lolfx-scanner.l"
  2161. { return token::GHT_FOR; }
  2162. YY_BREAK
  2163. case 106:
  2164. YY_RULE_SETUP
  2165. #line 191 "gpu/lolfx-scanner.l"
  2166. { return token::GHT_IF; }
  2167. YY_BREAK
  2168. case 107:
  2169. YY_RULE_SETUP
  2170. #line 192 "gpu/lolfx-scanner.l"
  2171. { return token::GHT_IN; }
  2172. YY_BREAK
  2173. case 108:
  2174. YY_RULE_SETUP
  2175. #line 193 "gpu/lolfx-scanner.l"
  2176. { return token::GHT_INOUT; }
  2177. YY_BREAK
  2178. case 109:
  2179. YY_RULE_SETUP
  2180. #line 194 "gpu/lolfx-scanner.l"
  2181. { return token::GHT_INT; }
  2182. YY_BREAK
  2183. case 110:
  2184. YY_RULE_SETUP
  2185. #line 195 "gpu/lolfx-scanner.l"
  2186. { return token::GHT_NOPERSPECTIVE; }
  2187. YY_BREAK
  2188. case 111:
  2189. YY_RULE_SETUP
  2190. #line 196 "gpu/lolfx-scanner.l"
  2191. { return token::GHT_OUT; }
  2192. YY_BREAK
  2193. case 112:
  2194. YY_RULE_SETUP
  2195. #line 197 "gpu/lolfx-scanner.l"
  2196. { return token::GHT_RETURN; }
  2197. YY_BREAK
  2198. case 113:
  2199. YY_RULE_SETUP
  2200. #line 198 "gpu/lolfx-scanner.l"
  2201. { return token::GHT_SAMPLER1D; }
  2202. YY_BREAK
  2203. case 114:
  2204. YY_RULE_SETUP
  2205. #line 199 "gpu/lolfx-scanner.l"
  2206. { return token::GHT_SAMPLER2D; }
  2207. YY_BREAK
  2208. case 115:
  2209. YY_RULE_SETUP
  2210. #line 200 "gpu/lolfx-scanner.l"
  2211. { return token::GHT_SAMPLER3D; }
  2212. YY_BREAK
  2213. case 116:
  2214. YY_RULE_SETUP
  2215. #line 201 "gpu/lolfx-scanner.l"
  2216. { return token::GHT_SAMPLERCUBE; }
  2217. YY_BREAK
  2218. case 117:
  2219. YY_RULE_SETUP
  2220. #line 202 "gpu/lolfx-scanner.l"
  2221. { return token::GHT_STRUCT; }
  2222. YY_BREAK
  2223. case 118:
  2224. YY_RULE_SETUP
  2225. #line 203 "gpu/lolfx-scanner.l"
  2226. { return token::GHT_SWITCH; }
  2227. YY_BREAK
  2228. case 119:
  2229. YY_RULE_SETUP
  2230. #line 204 "gpu/lolfx-scanner.l"
  2231. { return token::GHT_UINT; }
  2232. YY_BREAK
  2233. case 120:
  2234. YY_RULE_SETUP
  2235. #line 205 "gpu/lolfx-scanner.l"
  2236. { return token::GHT_UNIFORM; }
  2237. YY_BREAK
  2238. case 121:
  2239. YY_RULE_SETUP
  2240. #line 206 "gpu/lolfx-scanner.l"
  2241. { return token::GHT_VOID; }
  2242. YY_BREAK
  2243. case 122:
  2244. YY_RULE_SETUP
  2245. #line 207 "gpu/lolfx-scanner.l"
  2246. { return token::GHT_WHILE; }
  2247. YY_BREAK
  2248. case 123:
  2249. YY_RULE_SETUP
  2250. #line 209 "gpu/lolfx-scanner.l"
  2251. { return token::HGT_BOOL; }
  2252. YY_BREAK
  2253. case 124:
  2254. YY_RULE_SETUP
  2255. #line 210 "gpu/lolfx-scanner.l"
  2256. { return token::HGT_BREAK; }
  2257. YY_BREAK
  2258. case 125:
  2259. YY_RULE_SETUP
  2260. #line 211 "gpu/lolfx-scanner.l"
  2261. { return token::HGT_CASE; }
  2262. YY_BREAK
  2263. case 126:
  2264. YY_RULE_SETUP
  2265. #line 212 "gpu/lolfx-scanner.l"
  2266. { return token::HGT_CENTROID; }
  2267. YY_BREAK
  2268. case 127:
  2269. YY_RULE_SETUP
  2270. #line 213 "gpu/lolfx-scanner.l"
  2271. { return token::HGT_CONST; }
  2272. YY_BREAK
  2273. case 128:
  2274. YY_RULE_SETUP
  2275. #line 214 "gpu/lolfx-scanner.l"
  2276. { return token::HGT_CONTINUE; }
  2277. YY_BREAK
  2278. case 129:
  2279. YY_RULE_SETUP
  2280. #line 215 "gpu/lolfx-scanner.l"
  2281. { return token::HGT_DEFAULT; }
  2282. YY_BREAK
  2283. case 130:
  2284. YY_RULE_SETUP
  2285. #line 216 "gpu/lolfx-scanner.l"
  2286. { return token::HGT_DISCARD; }
  2287. YY_BREAK
  2288. case 131:
  2289. YY_RULE_SETUP
  2290. #line 217 "gpu/lolfx-scanner.l"
  2291. { return token::HGT_DO; }
  2292. YY_BREAK
  2293. case 132:
  2294. YY_RULE_SETUP
  2295. #line 218 "gpu/lolfx-scanner.l"
  2296. { return token::HGT_DOUBLE; }
  2297. YY_BREAK
  2298. case 133:
  2299. YY_RULE_SETUP
  2300. #line 219 "gpu/lolfx-scanner.l"
  2301. { return token::HGT_ELSE; }
  2302. YY_BREAK
  2303. case 134:
  2304. YY_RULE_SETUP
  2305. #line 220 "gpu/lolfx-scanner.l"
  2306. { return token::HGT_FLOAT; }
  2307. YY_BREAK
  2308. case 135:
  2309. YY_RULE_SETUP
  2310. #line 221 "gpu/lolfx-scanner.l"
  2311. { return token::HGT_FOR; }
  2312. YY_BREAK
  2313. case 136:
  2314. YY_RULE_SETUP
  2315. #line 222 "gpu/lolfx-scanner.l"
  2316. { return token::HGT_IF; }
  2317. YY_BREAK
  2318. case 137:
  2319. YY_RULE_SETUP
  2320. #line 223 "gpu/lolfx-scanner.l"
  2321. { return token::HGT_IN; }
  2322. YY_BREAK
  2323. case 138:
  2324. YY_RULE_SETUP
  2325. #line 224 "gpu/lolfx-scanner.l"
  2326. { return token::HGT_INOUT; }
  2327. YY_BREAK
  2328. case 139:
  2329. YY_RULE_SETUP
  2330. #line 225 "gpu/lolfx-scanner.l"
  2331. { return token::HGT_INT; }
  2332. YY_BREAK
  2333. case 140:
  2334. YY_RULE_SETUP
  2335. #line 226 "gpu/lolfx-scanner.l"
  2336. { return token::HGT_NOPERSPECTIVE; }
  2337. YY_BREAK
  2338. case 141:
  2339. YY_RULE_SETUP
  2340. #line 227 "gpu/lolfx-scanner.l"
  2341. { return token::HGT_OUT; }
  2342. YY_BREAK
  2343. case 142:
  2344. YY_RULE_SETUP
  2345. #line 228 "gpu/lolfx-scanner.l"
  2346. { return token::HGT_RETURN; }
  2347. YY_BREAK
  2348. case 143:
  2349. YY_RULE_SETUP
  2350. #line 229 "gpu/lolfx-scanner.l"
  2351. { return token::HGT_SAMPLER1D; }
  2352. YY_BREAK
  2353. case 144:
  2354. YY_RULE_SETUP
  2355. #line 230 "gpu/lolfx-scanner.l"
  2356. { return token::HGT_SAMPLER2D; }
  2357. YY_BREAK
  2358. case 145:
  2359. YY_RULE_SETUP
  2360. #line 231 "gpu/lolfx-scanner.l"
  2361. { return token::HGT_SAMPLER3D; }
  2362. YY_BREAK
  2363. case 146:
  2364. YY_RULE_SETUP
  2365. #line 232 "gpu/lolfx-scanner.l"
  2366. { return token::HGT_SAMPLERCUBE; }
  2367. YY_BREAK
  2368. case 147:
  2369. YY_RULE_SETUP
  2370. #line 233 "gpu/lolfx-scanner.l"
  2371. { return token::HGT_STRUCT; }
  2372. YY_BREAK
  2373. case 148:
  2374. YY_RULE_SETUP
  2375. #line 234 "gpu/lolfx-scanner.l"
  2376. { return token::HGT_SWITCH; }
  2377. YY_BREAK
  2378. case 149:
  2379. YY_RULE_SETUP
  2380. #line 235 "gpu/lolfx-scanner.l"
  2381. { return token::HGT_UINT; }
  2382. YY_BREAK
  2383. case 150:
  2384. YY_RULE_SETUP
  2385. #line 236 "gpu/lolfx-scanner.l"
  2386. { return token::HGT_UNIFORM; }
  2387. YY_BREAK
  2388. case 151:
  2389. YY_RULE_SETUP
  2390. #line 237 "gpu/lolfx-scanner.l"
  2391. { return token::HGT_VOID; }
  2392. YY_BREAK
  2393. case 152:
  2394. YY_RULE_SETUP
  2395. #line 238 "gpu/lolfx-scanner.l"
  2396. { return token::HGT_WHILE; }
  2397. YY_BREAK
  2398. /*
  2399. * HLSL keywords
  2400. * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509568%28v=vs.85%29.aspx
  2401. */
  2402. case 153:
  2403. YY_RULE_SETUP
  2404. #line 245 "gpu/lolfx-scanner.l"
  2405. { return token::HT_APPENDSTRUCTUREDBUFFER; }
  2406. YY_BREAK
  2407. case 154:
  2408. YY_RULE_SETUP
  2409. #line 246 "gpu/lolfx-scanner.l"
  2410. { return token::HT_ASM; }
  2411. YY_BREAK
  2412. case 155:
  2413. YY_RULE_SETUP
  2414. #line 247 "gpu/lolfx-scanner.l"
  2415. { return token::HT_ASM_FRAGMENT; }
  2416. YY_BREAK
  2417. case 156:
  2418. YY_RULE_SETUP
  2419. #line 248 "gpu/lolfx-scanner.l"
  2420. { return token::HT_BLENDSTATE; }
  2421. YY_BREAK
  2422. case 157:
  2423. YY_RULE_SETUP
  2424. #line 249 "gpu/lolfx-scanner.l"
  2425. { return token::HT_BUFFER; }
  2426. YY_BREAK
  2427. case 158:
  2428. YY_RULE_SETUP
  2429. #line 250 "gpu/lolfx-scanner.l"
  2430. { return token::HT_BYTEADDRESSBUFFER; }
  2431. YY_BREAK
  2432. case 159:
  2433. YY_RULE_SETUP
  2434. #line 251 "gpu/lolfx-scanner.l"
  2435. { return token::HT_CBUFFER; }
  2436. YY_BREAK
  2437. case 160:
  2438. YY_RULE_SETUP
  2439. #line 252 "gpu/lolfx-scanner.l"
  2440. { return token::HT_COLUMN_MAJOR; }
  2441. YY_BREAK
  2442. case 161:
  2443. YY_RULE_SETUP
  2444. #line 253 "gpu/lolfx-scanner.l"
  2445. { return token::HT_COMPILE; }
  2446. YY_BREAK
  2447. case 162:
  2448. YY_RULE_SETUP
  2449. #line 254 "gpu/lolfx-scanner.l"
  2450. { return token::HT_COMPILE_FRAGMENT; }
  2451. YY_BREAK
  2452. case 163:
  2453. YY_RULE_SETUP
  2454. #line 255 "gpu/lolfx-scanner.l"
  2455. { return token::HT_COMPILESHADER; }
  2456. YY_BREAK
  2457. case 164:
  2458. YY_RULE_SETUP
  2459. #line 256 "gpu/lolfx-scanner.l"
  2460. { return token::HT_COMPUTESHADER; }
  2461. YY_BREAK
  2462. case 165:
  2463. YY_RULE_SETUP
  2464. #line 257 "gpu/lolfx-scanner.l"
  2465. { return token::HT_CONSUMESTRUCTUREDBUFFER; }
  2466. YY_BREAK
  2467. case 166:
  2468. YY_RULE_SETUP
  2469. #line 258 "gpu/lolfx-scanner.l"
  2470. { return token::HT_DEPTHSTENCILSTATE; }
  2471. YY_BREAK
  2472. case 167:
  2473. YY_RULE_SETUP
  2474. #line 259 "gpu/lolfx-scanner.l"
  2475. { return token::HT_DEPTHSTENCILVIEW; }
  2476. YY_BREAK
  2477. case 168:
  2478. YY_RULE_SETUP
  2479. #line 260 "gpu/lolfx-scanner.l"
  2480. { return token::HT_DOMAINSHADER; }
  2481. YY_BREAK
  2482. case 169:
  2483. YY_RULE_SETUP
  2484. #line 261 "gpu/lolfx-scanner.l"
  2485. { return token::HT_DWORD; }
  2486. YY_BREAK
  2487. case 170:
  2488. YY_RULE_SETUP
  2489. #line 262 "gpu/lolfx-scanner.l"
  2490. { return token::HT_EXTERN; }
  2491. YY_BREAK
  2492. case 171:
  2493. YY_RULE_SETUP
  2494. #line 263 "gpu/lolfx-scanner.l"
  2495. { return token::HT_FALSE; }
  2496. YY_BREAK
  2497. case 172:
  2498. YY_RULE_SETUP
  2499. #line 264 "gpu/lolfx-scanner.l"
  2500. { return token::HT_FXGROUP; }
  2501. YY_BREAK
  2502. case 173:
  2503. YY_RULE_SETUP
  2504. #line 265 "gpu/lolfx-scanner.l"
  2505. { return token::HT_GEOMETRYSHADER; }
  2506. YY_BREAK
  2507. case 174:
  2508. YY_RULE_SETUP
  2509. #line 266 "gpu/lolfx-scanner.l"
  2510. { return token::HT_GROUPSHARED; }
  2511. YY_BREAK
  2512. case 175:
  2513. YY_RULE_SETUP
  2514. #line 267 "gpu/lolfx-scanner.l"
  2515. { return token::HT_HALF; }
  2516. YY_BREAK
  2517. case 176:
  2518. YY_RULE_SETUP
  2519. #line 268 "gpu/lolfx-scanner.l"
  2520. { return token::HT_HULLSHADER; }
  2521. YY_BREAK
  2522. case 177:
  2523. YY_RULE_SETUP
  2524. #line 269 "gpu/lolfx-scanner.l"
  2525. { return token::HT_INLINE; }
  2526. YY_BREAK
  2527. case 178:
  2528. YY_RULE_SETUP
  2529. #line 270 "gpu/lolfx-scanner.l"
  2530. { return token::HT_INPUTPATCH; }
  2531. YY_BREAK
  2532. case 179:
  2533. YY_RULE_SETUP
  2534. #line 271 "gpu/lolfx-scanner.l"
  2535. { return token::HT_INTERFACE; }
  2536. YY_BREAK
  2537. case 180:
  2538. YY_RULE_SETUP
  2539. #line 272 "gpu/lolfx-scanner.l"
  2540. { return token::HT_LINE; }
  2541. YY_BREAK
  2542. case 181:
  2543. YY_RULE_SETUP
  2544. #line 273 "gpu/lolfx-scanner.l"
  2545. { return token::HT_LINEADJ; }
  2546. YY_BREAK
  2547. case 182:
  2548. YY_RULE_SETUP
  2549. #line 274 "gpu/lolfx-scanner.l"
  2550. { return token::HT_LINEAR; }
  2551. YY_BREAK
  2552. case 183:
  2553. YY_RULE_SETUP
  2554. #line 275 "gpu/lolfx-scanner.l"
  2555. { return token::HT_LINESTREAM; }
  2556. YY_BREAK
  2557. case 184:
  2558. YY_RULE_SETUP
  2559. #line 276 "gpu/lolfx-scanner.l"
  2560. { return token::HT_MATRIX; }
  2561. YY_BREAK
  2562. case 185:
  2563. YY_RULE_SETUP
  2564. #line 277 "gpu/lolfx-scanner.l"
  2565. { return token::HT_NAMESPACE; }
  2566. YY_BREAK
  2567. case 186:
  2568. YY_RULE_SETUP
  2569. #line 278 "gpu/lolfx-scanner.l"
  2570. { return token::HT_NOINTERPOLATION; }
  2571. YY_BREAK
  2572. case 187:
  2573. YY_RULE_SETUP
  2574. #line 279 "gpu/lolfx-scanner.l"
  2575. { return token::HT_NULL; }
  2576. YY_BREAK
  2577. case 188:
  2578. YY_RULE_SETUP
  2579. #line 280 "gpu/lolfx-scanner.l"
  2580. { return token::HT_OUTPUTPATCH; }
  2581. YY_BREAK
  2582. case 189:
  2583. YY_RULE_SETUP
  2584. #line 281 "gpu/lolfx-scanner.l"
  2585. { return token::HT_PACKOFFSET; }
  2586. YY_BREAK
  2587. case 190:
  2588. YY_RULE_SETUP
  2589. #line 282 "gpu/lolfx-scanner.l"
  2590. { return token::HT_PASS; }
  2591. YY_BREAK
  2592. case 191:
  2593. YY_RULE_SETUP
  2594. #line 283 "gpu/lolfx-scanner.l"
  2595. { return token::HT_PIXELFRAGMENT; }
  2596. YY_BREAK
  2597. case 192:
  2598. YY_RULE_SETUP
  2599. #line 284 "gpu/lolfx-scanner.l"
  2600. { return token::HT_PIXELSHADER; }
  2601. YY_BREAK
  2602. case 193:
  2603. YY_RULE_SETUP
  2604. #line 285 "gpu/lolfx-scanner.l"
  2605. { return token::HT_POINT; }
  2606. YY_BREAK
  2607. case 194:
  2608. YY_RULE_SETUP
  2609. #line 286 "gpu/lolfx-scanner.l"
  2610. { return token::HT_POINTSTREAM; }
  2611. YY_BREAK
  2612. case 195:
  2613. YY_RULE_SETUP
  2614. #line 287 "gpu/lolfx-scanner.l"
  2615. { return token::HT_PRECISE; }
  2616. YY_BREAK
  2617. case 196:
  2618. YY_RULE_SETUP
  2619. #line 288 "gpu/lolfx-scanner.l"
  2620. { return token::HT_RASTERIZERSTATE; }
  2621. YY_BREAK
  2622. case 197:
  2623. YY_RULE_SETUP
  2624. #line 289 "gpu/lolfx-scanner.l"
  2625. { return token::HT_RENDERTARGETVIEW; }
  2626. YY_BREAK
  2627. case 198:
  2628. YY_RULE_SETUP
  2629. #line 290 "gpu/lolfx-scanner.l"
  2630. { return token::HT_REGISTER; }
  2631. YY_BREAK
  2632. case 199:
  2633. YY_RULE_SETUP
  2634. #line 291 "gpu/lolfx-scanner.l"
  2635. { return token::HT_ROW_MAJOR; }
  2636. YY_BREAK
  2637. case 200:
  2638. YY_RULE_SETUP
  2639. #line 292 "gpu/lolfx-scanner.l"
  2640. { return token::HT_RWBUFFER; }
  2641. YY_BREAK
  2642. case 201:
  2643. YY_RULE_SETUP
  2644. #line 293 "gpu/lolfx-scanner.l"
  2645. { return token::HT_RWBYTEADDRESSBUFFER; }
  2646. YY_BREAK
  2647. case 202:
  2648. YY_RULE_SETUP
  2649. #line 294 "gpu/lolfx-scanner.l"
  2650. { return token::HT_RWSTRUCTUREDBUFFER; }
  2651. YY_BREAK
  2652. case 203:
  2653. YY_RULE_SETUP
  2654. #line 295 "gpu/lolfx-scanner.l"
  2655. { return token::HT_RWTEXTURE1D; }
  2656. YY_BREAK
  2657. case 204:
  2658. YY_RULE_SETUP
  2659. #line 296 "gpu/lolfx-scanner.l"
  2660. { return token::HT_RWTEXTURE1DARRAY; }
  2661. YY_BREAK
  2662. case 205:
  2663. YY_RULE_SETUP
  2664. #line 297 "gpu/lolfx-scanner.l"
  2665. { return token::HT_RWTEXTURE2D; }
  2666. YY_BREAK
  2667. case 206:
  2668. YY_RULE_SETUP
  2669. #line 298 "gpu/lolfx-scanner.l"
  2670. { return token::HT_RWTEXTURE2DARRAY; }
  2671. YY_BREAK
  2672. case 207:
  2673. YY_RULE_SETUP
  2674. #line 299 "gpu/lolfx-scanner.l"
  2675. { return token::HT_RWTEXTURE3D; }
  2676. YY_BREAK
  2677. case 208:
  2678. YY_RULE_SETUP
  2679. #line 300 "gpu/lolfx-scanner.l"
  2680. { return token::HT_SAMPLER; }
  2681. YY_BREAK
  2682. case 209:
  2683. YY_RULE_SETUP
  2684. #line 301 "gpu/lolfx-scanner.l"
  2685. { return token::HT_SAMPLER_STATE; }
  2686. YY_BREAK
  2687. case 210:
  2688. YY_RULE_SETUP
  2689. #line 302 "gpu/lolfx-scanner.l"
  2690. { return token::HT_SAMPLERSTATE; }
  2691. YY_BREAK
  2692. case 211:
  2693. YY_RULE_SETUP
  2694. #line 303 "gpu/lolfx-scanner.l"
  2695. { return token::HT_SAMPLERCOMPARISONSTATE; }
  2696. YY_BREAK
  2697. case 212:
  2698. YY_RULE_SETUP
  2699. #line 304 "gpu/lolfx-scanner.l"
  2700. { return token::HT_SHARED; }
  2701. YY_BREAK
  2702. case 213:
  2703. YY_RULE_SETUP
  2704. #line 305 "gpu/lolfx-scanner.l"
  2705. { return token::HT_SNORM; }
  2706. YY_BREAK
  2707. case 214:
  2708. YY_RULE_SETUP
  2709. #line 306 "gpu/lolfx-scanner.l"
  2710. { return token::HT_STATEBLOCK; }
  2711. YY_BREAK
  2712. case 215:
  2713. YY_RULE_SETUP
  2714. #line 307 "gpu/lolfx-scanner.l"
  2715. { return token::HT_STATEBLOCK_STATE; }
  2716. YY_BREAK
  2717. case 216:
  2718. YY_RULE_SETUP
  2719. #line 308 "gpu/lolfx-scanner.l"
  2720. { return token::HT_STATIC; }
  2721. YY_BREAK
  2722. case 217:
  2723. YY_RULE_SETUP
  2724. #line 309 "gpu/lolfx-scanner.l"
  2725. { return token::HT_STRING; }
  2726. YY_BREAK
  2727. case 218:
  2728. YY_RULE_SETUP
  2729. #line 310 "gpu/lolfx-scanner.l"
  2730. { return token::HT_STRUCTUREDBUFFER; }
  2731. YY_BREAK
  2732. case 219:
  2733. YY_RULE_SETUP
  2734. #line 311 "gpu/lolfx-scanner.l"
  2735. { return token::HT_TBUFFER; }
  2736. YY_BREAK
  2737. case 220:
  2738. YY_RULE_SETUP
  2739. #line 312 "gpu/lolfx-scanner.l"
  2740. { return token::HT_TECHNIQUE; }
  2741. YY_BREAK
  2742. case 221:
  2743. YY_RULE_SETUP
  2744. #line 313 "gpu/lolfx-scanner.l"
  2745. { return token::HT_TECHNIQUE10; }
  2746. YY_BREAK
  2747. case 222:
  2748. YY_RULE_SETUP
  2749. #line 314 "gpu/lolfx-scanner.l"
  2750. { return token::HT_TECHNIQUE11XZ; }
  2751. YY_BREAK
  2752. case 223:
  2753. YY_RULE_SETUP
  2754. #line 315 "gpu/lolfx-scanner.l"
  2755. { return token::HT_TEXTURE; }
  2756. YY_BREAK
  2757. case 224:
  2758. YY_RULE_SETUP
  2759. #line 316 "gpu/lolfx-scanner.l"
  2760. { return token::HT_TEXTURE1D; }
  2761. YY_BREAK
  2762. case 225:
  2763. YY_RULE_SETUP
  2764. #line 317 "gpu/lolfx-scanner.l"
  2765. { return token::HT_TEXTURE1DARRAY; }
  2766. YY_BREAK
  2767. case 226:
  2768. YY_RULE_SETUP
  2769. #line 318 "gpu/lolfx-scanner.l"
  2770. { return token::HT_TEXTURE2D; }
  2771. YY_BREAK
  2772. case 227:
  2773. YY_RULE_SETUP
  2774. #line 319 "gpu/lolfx-scanner.l"
  2775. { return token::HT_TEXTURE2DARRAY; }
  2776. YY_BREAK
  2777. case 228:
  2778. YY_RULE_SETUP
  2779. #line 320 "gpu/lolfx-scanner.l"
  2780. { return token::HT_TEXTURE2DMS; }
  2781. YY_BREAK
  2782. case 229:
  2783. YY_RULE_SETUP
  2784. #line 321 "gpu/lolfx-scanner.l"
  2785. { return token::HT_TEXTURE2DMSARRAY; }
  2786. YY_BREAK
  2787. case 230:
  2788. YY_RULE_SETUP
  2789. #line 322 "gpu/lolfx-scanner.l"
  2790. { return token::HT_TEXTURE3D; }
  2791. YY_BREAK
  2792. case 231:
  2793. YY_RULE_SETUP
  2794. #line 323 "gpu/lolfx-scanner.l"
  2795. { return token::HT_TEXTURECUBE; }
  2796. YY_BREAK
  2797. case 232:
  2798. YY_RULE_SETUP
  2799. #line 324 "gpu/lolfx-scanner.l"
  2800. { return token::HT_TEXTURECUBEARRAY; }
  2801. YY_BREAK
  2802. case 233:
  2803. YY_RULE_SETUP
  2804. #line 325 "gpu/lolfx-scanner.l"
  2805. { return token::HT_TRUE; }
  2806. YY_BREAK
  2807. case 234:
  2808. YY_RULE_SETUP
  2809. #line 326 "gpu/lolfx-scanner.l"
  2810. { return token::HT_TYPEDEF; }
  2811. YY_BREAK
  2812. case 235:
  2813. YY_RULE_SETUP
  2814. #line 327 "gpu/lolfx-scanner.l"
  2815. { return token::HT_TRIANGLE; }
  2816. YY_BREAK
  2817. case 236:
  2818. YY_RULE_SETUP
  2819. #line 328 "gpu/lolfx-scanner.l"
  2820. { return token::HT_TRIANGLEADJ; }
  2821. YY_BREAK
  2822. case 237:
  2823. YY_RULE_SETUP
  2824. #line 329 "gpu/lolfx-scanner.l"
  2825. { return token::HT_TRIANGLESTREAM; }
  2826. YY_BREAK
  2827. case 238:
  2828. YY_RULE_SETUP
  2829. #line 330 "gpu/lolfx-scanner.l"
  2830. { return token::HT_UNORM; }
  2831. YY_BREAK
  2832. case 239:
  2833. YY_RULE_SETUP
  2834. #line 331 "gpu/lolfx-scanner.l"
  2835. { return token::HT_VECTOR; }
  2836. YY_BREAK
  2837. case 240:
  2838. YY_RULE_SETUP
  2839. #line 332 "gpu/lolfx-scanner.l"
  2840. { return token::HT_VERTEXFRAGMENT; }
  2841. YY_BREAK
  2842. case 241:
  2843. YY_RULE_SETUP
  2844. #line 333 "gpu/lolfx-scanner.l"
  2845. { return token::HT_VERTEXSHADER; }
  2846. YY_BREAK
  2847. case 242:
  2848. YY_RULE_SETUP
  2849. #line 334 "gpu/lolfx-scanner.l"
  2850. { return token::HT_VOLATILE; }
  2851. YY_BREAK
  2852. /*
  2853. * HLSL vector types
  2854. * TODO: this can probably be factored somehow
  2855. */
  2856. case 243:
  2857. YY_RULE_SETUP
  2858. #line 341 "gpu/lolfx-scanner.l"
  2859. { return token::HT_BOOL1; }
  2860. YY_BREAK
  2861. case 244:
  2862. YY_RULE_SETUP
  2863. #line 342 "gpu/lolfx-scanner.l"
  2864. { return token::HT_BOOL1x1; }
  2865. YY_BREAK
  2866. case 245:
  2867. YY_RULE_SETUP
  2868. #line 343 "gpu/lolfx-scanner.l"
  2869. { return token::HT_BOOL2x1; }
  2870. YY_BREAK
  2871. case 246:
  2872. YY_RULE_SETUP
  2873. #line 344 "gpu/lolfx-scanner.l"
  2874. { return token::HT_BOOL3x1; }
  2875. YY_BREAK
  2876. case 247:
  2877. YY_RULE_SETUP
  2878. #line 345 "gpu/lolfx-scanner.l"
  2879. { return token::HT_BOOL4x1; }
  2880. YY_BREAK
  2881. case 248:
  2882. YY_RULE_SETUP
  2883. #line 346 "gpu/lolfx-scanner.l"
  2884. { return token::HT_BOOL2; }
  2885. YY_BREAK
  2886. case 249:
  2887. YY_RULE_SETUP
  2888. #line 347 "gpu/lolfx-scanner.l"
  2889. { return token::HT_BOOL1x2; }
  2890. YY_BREAK
  2891. case 250:
  2892. YY_RULE_SETUP
  2893. #line 348 "gpu/lolfx-scanner.l"
  2894. { return token::HT_BOOL2x2; }
  2895. YY_BREAK
  2896. case 251:
  2897. YY_RULE_SETUP
  2898. #line 349 "gpu/lolfx-scanner.l"
  2899. { return token::HT_BOOL3x2; }
  2900. YY_BREAK
  2901. case 252:
  2902. YY_RULE_SETUP
  2903. #line 350 "gpu/lolfx-scanner.l"
  2904. { return token::HT_BOOL4x2; }
  2905. YY_BREAK
  2906. case 253:
  2907. YY_RULE_SETUP
  2908. #line 351 "gpu/lolfx-scanner.l"
  2909. { return token::HT_BOOL3; }
  2910. YY_BREAK
  2911. case 254:
  2912. YY_RULE_SETUP
  2913. #line 352 "gpu/lolfx-scanner.l"
  2914. { return token::HT_BOOL1x3; }
  2915. YY_BREAK
  2916. case 255:
  2917. YY_RULE_SETUP
  2918. #line 353 "gpu/lolfx-scanner.l"
  2919. { return token::HT_BOOL2x3; }
  2920. YY_BREAK
  2921. case 256:
  2922. YY_RULE_SETUP
  2923. #line 354 "gpu/lolfx-scanner.l"
  2924. { return token::HT_BOOL3x3; }
  2925. YY_BREAK
  2926. case 257:
  2927. YY_RULE_SETUP
  2928. #line 355 "gpu/lolfx-scanner.l"
  2929. { return token::HT_BOOL4x3; }
  2930. YY_BREAK
  2931. case 258:
  2932. YY_RULE_SETUP
  2933. #line 356 "gpu/lolfx-scanner.l"
  2934. { return token::HT_BOOL4; }
  2935. YY_BREAK
  2936. case 259:
  2937. YY_RULE_SETUP
  2938. #line 357 "gpu/lolfx-scanner.l"
  2939. { return token::HT_BOOL1x4; }
  2940. YY_BREAK
  2941. case 260:
  2942. YY_RULE_SETUP
  2943. #line 358 "gpu/lolfx-scanner.l"
  2944. { return token::HT_BOOL2x4; }
  2945. YY_BREAK
  2946. case 261:
  2947. YY_RULE_SETUP
  2948. #line 359 "gpu/lolfx-scanner.l"
  2949. { return token::HT_BOOL3x4; }
  2950. YY_BREAK
  2951. case 262:
  2952. YY_RULE_SETUP
  2953. #line 360 "gpu/lolfx-scanner.l"
  2954. { return token::HT_BOOL4x4; }
  2955. YY_BREAK
  2956. case 263:
  2957. YY_RULE_SETUP
  2958. #line 362 "gpu/lolfx-scanner.l"
  2959. { return token::HT_FLOAT1; }
  2960. YY_BREAK
  2961. case 264:
  2962. YY_RULE_SETUP
  2963. #line 363 "gpu/lolfx-scanner.l"
  2964. { return token::HT_FLOAT1x1; }
  2965. YY_BREAK
  2966. case 265:
  2967. YY_RULE_SETUP
  2968. #line 364 "gpu/lolfx-scanner.l"
  2969. { return token::HT_FLOAT2x1; }
  2970. YY_BREAK
  2971. case 266:
  2972. YY_RULE_SETUP
  2973. #line 365 "gpu/lolfx-scanner.l"
  2974. { return token::HT_FLOAT3x1; }
  2975. YY_BREAK
  2976. case 267:
  2977. YY_RULE_SETUP
  2978. #line 366 "gpu/lolfx-scanner.l"
  2979. { return token::HT_FLOAT4x1; }
  2980. YY_BREAK
  2981. case 268:
  2982. YY_RULE_SETUP
  2983. #line 367 "gpu/lolfx-scanner.l"
  2984. { return token::HT_FLOAT2; }
  2985. YY_BREAK
  2986. case 269:
  2987. YY_RULE_SETUP
  2988. #line 368 "gpu/lolfx-scanner.l"
  2989. { return token::HT_FLOAT1x2; }
  2990. YY_BREAK
  2991. case 270:
  2992. YY_RULE_SETUP
  2993. #line 369 "gpu/lolfx-scanner.l"
  2994. { return token::HT_FLOAT2x2; }
  2995. YY_BREAK
  2996. case 271:
  2997. YY_RULE_SETUP
  2998. #line 370 "gpu/lolfx-scanner.l"
  2999. { return token::HT_FLOAT3x2; }
  3000. YY_BREAK
  3001. case 272:
  3002. YY_RULE_SETUP
  3003. #line 371 "gpu/lolfx-scanner.l"
  3004. { return token::HT_FLOAT4x2; }
  3005. YY_BREAK
  3006. case 273:
  3007. YY_RULE_SETUP
  3008. #line 372 "gpu/lolfx-scanner.l"
  3009. { return token::HT_FLOAT3; }
  3010. YY_BREAK
  3011. case 274:
  3012. YY_RULE_SETUP
  3013. #line 373 "gpu/lolfx-scanner.l"
  3014. { return token::HT_FLOAT1x3; }
  3015. YY_BREAK
  3016. case 275:
  3017. YY_RULE_SETUP
  3018. #line 374 "gpu/lolfx-scanner.l"
  3019. { return token::HT_FLOAT2x3; }
  3020. YY_BREAK
  3021. case 276:
  3022. YY_RULE_SETUP
  3023. #line 375 "gpu/lolfx-scanner.l"
  3024. { return token::HT_FLOAT3x3; }
  3025. YY_BREAK
  3026. case 277:
  3027. YY_RULE_SETUP
  3028. #line 376 "gpu/lolfx-scanner.l"
  3029. { return token::HT_FLOAT4x3; }
  3030. YY_BREAK
  3031. case 278:
  3032. YY_RULE_SETUP
  3033. #line 377 "gpu/lolfx-scanner.l"
  3034. { return token::HT_FLOAT4; }
  3035. YY_BREAK
  3036. case 279:
  3037. YY_RULE_SETUP
  3038. #line 378 "gpu/lolfx-scanner.l"
  3039. { return token::HT_FLOAT1x4; }
  3040. YY_BREAK
  3041. case 280:
  3042. YY_RULE_SETUP
  3043. #line 379 "gpu/lolfx-scanner.l"
  3044. { return token::HT_FLOAT2x4; }
  3045. YY_BREAK
  3046. case 281:
  3047. YY_RULE_SETUP
  3048. #line 380 "gpu/lolfx-scanner.l"
  3049. { return token::HT_FLOAT3x4; }
  3050. YY_BREAK
  3051. case 282:
  3052. YY_RULE_SETUP
  3053. #line 381 "gpu/lolfx-scanner.l"
  3054. { return token::HT_FLOAT4x4; }
  3055. YY_BREAK
  3056. case 283:
  3057. YY_RULE_SETUP
  3058. #line 383 "gpu/lolfx-scanner.l"
  3059. { return token::HT_DOUBLE1; }
  3060. YY_BREAK
  3061. case 284:
  3062. YY_RULE_SETUP
  3063. #line 384 "gpu/lolfx-scanner.l"
  3064. { return token::HT_DOUBLE1x1; }
  3065. YY_BREAK
  3066. case 285:
  3067. YY_RULE_SETUP
  3068. #line 385 "gpu/lolfx-scanner.l"
  3069. { return token::HT_DOUBLE2x1; }
  3070. YY_BREAK
  3071. case 286:
  3072. YY_RULE_SETUP
  3073. #line 386 "gpu/lolfx-scanner.l"
  3074. { return token::HT_DOUBLE3x1; }
  3075. YY_BREAK
  3076. case 287:
  3077. YY_RULE_SETUP
  3078. #line 387 "gpu/lolfx-scanner.l"
  3079. { return token::HT_DOUBLE4x1; }
  3080. YY_BREAK
  3081. case 288:
  3082. YY_RULE_SETUP
  3083. #line 388 "gpu/lolfx-scanner.l"
  3084. { return token::HT_DOUBLE2; }
  3085. YY_BREAK
  3086. case 289:
  3087. YY_RULE_SETUP
  3088. #line 389 "gpu/lolfx-scanner.l"
  3089. { return token::HT_DOUBLE1x2; }
  3090. YY_BREAK
  3091. case 290:
  3092. YY_RULE_SETUP
  3093. #line 390 "gpu/lolfx-scanner.l"
  3094. { return token::HT_DOUBLE2x2; }
  3095. YY_BREAK
  3096. case 291:
  3097. YY_RULE_SETUP
  3098. #line 391 "gpu/lolfx-scanner.l"
  3099. { return token::HT_DOUBLE3x2; }
  3100. YY_BREAK
  3101. case 292:
  3102. YY_RULE_SETUP
  3103. #line 392 "gpu/lolfx-scanner.l"
  3104. { return token::HT_DOUBLE4x2; }
  3105. YY_BREAK
  3106. case 293:
  3107. YY_RULE_SETUP
  3108. #line 393 "gpu/lolfx-scanner.l"
  3109. { return token::HT_DOUBLE3; }
  3110. YY_BREAK
  3111. case 294:
  3112. YY_RULE_SETUP
  3113. #line 394 "gpu/lolfx-scanner.l"
  3114. { return token::HT_DOUBLE1x3; }
  3115. YY_BREAK
  3116. case 295:
  3117. YY_RULE_SETUP
  3118. #line 395 "gpu/lolfx-scanner.l"
  3119. { return token::HT_DOUBLE2x3; }
  3120. YY_BREAK
  3121. case 296:
  3122. YY_RULE_SETUP
  3123. #line 396 "gpu/lolfx-scanner.l"
  3124. { return token::HT_DOUBLE3x3; }
  3125. YY_BREAK
  3126. case 297:
  3127. YY_RULE_SETUP
  3128. #line 397 "gpu/lolfx-scanner.l"
  3129. { return token::HT_DOUBLE4x3; }
  3130. YY_BREAK
  3131. case 298:
  3132. YY_RULE_SETUP
  3133. #line 398 "gpu/lolfx-scanner.l"
  3134. { return token::HT_DOUBLE4; }
  3135. YY_BREAK
  3136. case 299:
  3137. YY_RULE_SETUP
  3138. #line 399 "gpu/lolfx-scanner.l"
  3139. { return token::HT_DOUBLE1x4; }
  3140. YY_BREAK
  3141. case 300:
  3142. YY_RULE_SETUP
  3143. #line 400 "gpu/lolfx-scanner.l"
  3144. { return token::HT_DOUBLE2x4; }
  3145. YY_BREAK
  3146. case 301:
  3147. YY_RULE_SETUP
  3148. #line 401 "gpu/lolfx-scanner.l"
  3149. { return token::HT_DOUBLE3x4; }
  3150. YY_BREAK
  3151. case 302:
  3152. YY_RULE_SETUP
  3153. #line 402 "gpu/lolfx-scanner.l"
  3154. { return token::HT_DOUBLE4x4; }
  3155. YY_BREAK
  3156. case 303:
  3157. YY_RULE_SETUP
  3158. #line 404 "gpu/lolfx-scanner.l"
  3159. { return token::HT_DWORD1; }
  3160. YY_BREAK
  3161. case 304:
  3162. YY_RULE_SETUP
  3163. #line 405 "gpu/lolfx-scanner.l"
  3164. { return token::HT_DWORD1x1; }
  3165. YY_BREAK
  3166. case 305:
  3167. YY_RULE_SETUP
  3168. #line 406 "gpu/lolfx-scanner.l"
  3169. { return token::HT_DWORD2x1; }
  3170. YY_BREAK
  3171. case 306:
  3172. YY_RULE_SETUP
  3173. #line 407 "gpu/lolfx-scanner.l"
  3174. { return token::HT_DWORD3x1; }
  3175. YY_BREAK
  3176. case 307:
  3177. YY_RULE_SETUP
  3178. #line 408 "gpu/lolfx-scanner.l"
  3179. { return token::HT_DWORD4x1; }
  3180. YY_BREAK
  3181. case 308:
  3182. YY_RULE_SETUP
  3183. #line 409 "gpu/lolfx-scanner.l"
  3184. { return token::HT_DWORD2; }
  3185. YY_BREAK
  3186. case 309:
  3187. YY_RULE_SETUP
  3188. #line 410 "gpu/lolfx-scanner.l"
  3189. { return token::HT_DWORD1x2; }
  3190. YY_BREAK
  3191. case 310:
  3192. YY_RULE_SETUP
  3193. #line 411 "gpu/lolfx-scanner.l"
  3194. { return token::HT_DWORD2x2; }
  3195. YY_BREAK
  3196. case 311:
  3197. YY_RULE_SETUP
  3198. #line 412 "gpu/lolfx-scanner.l"
  3199. { return token::HT_DWORD3x2; }
  3200. YY_BREAK
  3201. case 312:
  3202. YY_RULE_SETUP
  3203. #line 413 "gpu/lolfx-scanner.l"
  3204. { return token::HT_DWORD4x2; }
  3205. YY_BREAK
  3206. case 313:
  3207. YY_RULE_SETUP
  3208. #line 414 "gpu/lolfx-scanner.l"
  3209. { return token::HT_DWORD3; }
  3210. YY_BREAK
  3211. case 314:
  3212. YY_RULE_SETUP
  3213. #line 415 "gpu/lolfx-scanner.l"
  3214. { return token::HT_DWORD1x3; }
  3215. YY_BREAK
  3216. case 315:
  3217. YY_RULE_SETUP
  3218. #line 416 "gpu/lolfx-scanner.l"
  3219. { return token::HT_DWORD2x3; }
  3220. YY_BREAK
  3221. case 316:
  3222. YY_RULE_SETUP
  3223. #line 417 "gpu/lolfx-scanner.l"
  3224. { return token::HT_DWORD3x3; }
  3225. YY_BREAK
  3226. case 317:
  3227. YY_RULE_SETUP
  3228. #line 418 "gpu/lolfx-scanner.l"
  3229. { return token::HT_DWORD4x3; }
  3230. YY_BREAK
  3231. case 318:
  3232. YY_RULE_SETUP
  3233. #line 419 "gpu/lolfx-scanner.l"
  3234. { return token::HT_DWORD4; }
  3235. YY_BREAK
  3236. case 319:
  3237. YY_RULE_SETUP
  3238. #line 420 "gpu/lolfx-scanner.l"
  3239. { return token::HT_DWORD1x4; }
  3240. YY_BREAK
  3241. case 320:
  3242. YY_RULE_SETUP
  3243. #line 421 "gpu/lolfx-scanner.l"
  3244. { return token::HT_DWORD2x4; }
  3245. YY_BREAK
  3246. case 321:
  3247. YY_RULE_SETUP
  3248. #line 422 "gpu/lolfx-scanner.l"
  3249. { return token::HT_DWORD3x4; }
  3250. YY_BREAK
  3251. case 322:
  3252. YY_RULE_SETUP
  3253. #line 423 "gpu/lolfx-scanner.l"
  3254. { return token::HT_DWORD4x4; }
  3255. YY_BREAK
  3256. case 323:
  3257. YY_RULE_SETUP
  3258. #line 425 "gpu/lolfx-scanner.l"
  3259. { return token::HT_INT1; }
  3260. YY_BREAK
  3261. case 324:
  3262. YY_RULE_SETUP
  3263. #line 426 "gpu/lolfx-scanner.l"
  3264. { return token::HT_INT1x1; }
  3265. YY_BREAK
  3266. case 325:
  3267. YY_RULE_SETUP
  3268. #line 427 "gpu/lolfx-scanner.l"
  3269. { return token::HT_INT2x1; }
  3270. YY_BREAK
  3271. case 326:
  3272. YY_RULE_SETUP
  3273. #line 428 "gpu/lolfx-scanner.l"
  3274. { return token::HT_INT3x1; }
  3275. YY_BREAK
  3276. case 327:
  3277. YY_RULE_SETUP
  3278. #line 429 "gpu/lolfx-scanner.l"
  3279. { return token::HT_INT4x1; }
  3280. YY_BREAK
  3281. case 328:
  3282. YY_RULE_SETUP
  3283. #line 430 "gpu/lolfx-scanner.l"
  3284. { return token::HT_INT2; }
  3285. YY_BREAK
  3286. case 329:
  3287. YY_RULE_SETUP
  3288. #line 431 "gpu/lolfx-scanner.l"
  3289. { return token::HT_INT1x2; }
  3290. YY_BREAK
  3291. case 330:
  3292. YY_RULE_SETUP
  3293. #line 432 "gpu/lolfx-scanner.l"
  3294. { return token::HT_INT2x2; }
  3295. YY_BREAK
  3296. case 331:
  3297. YY_RULE_SETUP
  3298. #line 433 "gpu/lolfx-scanner.l"
  3299. { return token::HT_INT3x2; }
  3300. YY_BREAK
  3301. case 332:
  3302. YY_RULE_SETUP
  3303. #line 434 "gpu/lolfx-scanner.l"
  3304. { return token::HT_INT4x2; }
  3305. YY_BREAK
  3306. case 333:
  3307. YY_RULE_SETUP
  3308. #line 435 "gpu/lolfx-scanner.l"
  3309. { return token::HT_INT3; }
  3310. YY_BREAK
  3311. case 334:
  3312. YY_RULE_SETUP
  3313. #line 436 "gpu/lolfx-scanner.l"
  3314. { return token::HT_INT1x3; }
  3315. YY_BREAK
  3316. case 335:
  3317. YY_RULE_SETUP
  3318. #line 437 "gpu/lolfx-scanner.l"
  3319. { return token::HT_INT2x3; }
  3320. YY_BREAK
  3321. case 336:
  3322. YY_RULE_SETUP
  3323. #line 438 "gpu/lolfx-scanner.l"
  3324. { return token::HT_INT3x3; }
  3325. YY_BREAK
  3326. case 337:
  3327. YY_RULE_SETUP
  3328. #line 439 "gpu/lolfx-scanner.l"
  3329. { return token::HT_INT4x3; }
  3330. YY_BREAK
  3331. case 338:
  3332. YY_RULE_SETUP
  3333. #line 440 "gpu/lolfx-scanner.l"
  3334. { return token::HT_INT4; }
  3335. YY_BREAK
  3336. case 339:
  3337. YY_RULE_SETUP
  3338. #line 441 "gpu/lolfx-scanner.l"
  3339. { return token::HT_INT1x4; }
  3340. YY_BREAK
  3341. case 340:
  3342. YY_RULE_SETUP
  3343. #line 442 "gpu/lolfx-scanner.l"
  3344. { return token::HT_INT2x4; }
  3345. YY_BREAK
  3346. case 341:
  3347. YY_RULE_SETUP
  3348. #line 443 "gpu/lolfx-scanner.l"
  3349. { return token::HT_INT3x4; }
  3350. YY_BREAK
  3351. case 342:
  3352. YY_RULE_SETUP
  3353. #line 444 "gpu/lolfx-scanner.l"
  3354. { return token::HT_INT4x4; }
  3355. YY_BREAK
  3356. case 343:
  3357. YY_RULE_SETUP
  3358. #line 446 "gpu/lolfx-scanner.l"
  3359. { return token::HT_UINT1; }
  3360. YY_BREAK
  3361. case 344:
  3362. YY_RULE_SETUP
  3363. #line 447 "gpu/lolfx-scanner.l"
  3364. { return token::HT_UINT1x1; }
  3365. YY_BREAK
  3366. case 345:
  3367. YY_RULE_SETUP
  3368. #line 448 "gpu/lolfx-scanner.l"
  3369. { return token::HT_UINT2x1; }
  3370. YY_BREAK
  3371. case 346:
  3372. YY_RULE_SETUP
  3373. #line 449 "gpu/lolfx-scanner.l"
  3374. { return token::HT_UINT3x1; }
  3375. YY_BREAK
  3376. case 347:
  3377. YY_RULE_SETUP
  3378. #line 450 "gpu/lolfx-scanner.l"
  3379. { return token::HT_UINT4x1; }
  3380. YY_BREAK
  3381. case 348:
  3382. YY_RULE_SETUP
  3383. #line 451 "gpu/lolfx-scanner.l"
  3384. { return token::HT_UINT2; }
  3385. YY_BREAK
  3386. case 349:
  3387. YY_RULE_SETUP
  3388. #line 452 "gpu/lolfx-scanner.l"
  3389. { return token::HT_UINT1x2; }
  3390. YY_BREAK
  3391. case 350:
  3392. YY_RULE_SETUP
  3393. #line 453 "gpu/lolfx-scanner.l"
  3394. { return token::HT_UINT2x2; }
  3395. YY_BREAK
  3396. case 351:
  3397. YY_RULE_SETUP
  3398. #line 454 "gpu/lolfx-scanner.l"
  3399. { return token::HT_UINT3x2; }
  3400. YY_BREAK
  3401. case 352:
  3402. YY_RULE_SETUP
  3403. #line 455 "gpu/lolfx-scanner.l"
  3404. { return token::HT_UINT4x2; }
  3405. YY_BREAK
  3406. case 353:
  3407. YY_RULE_SETUP
  3408. #line 456 "gpu/lolfx-scanner.l"
  3409. { return token::HT_UINT3; }
  3410. YY_BREAK
  3411. case 354:
  3412. YY_RULE_SETUP
  3413. #line 457 "gpu/lolfx-scanner.l"
  3414. { return token::HT_UINT1x3; }
  3415. YY_BREAK
  3416. case 355:
  3417. YY_RULE_SETUP
  3418. #line 458 "gpu/lolfx-scanner.l"
  3419. { return token::HT_UINT2x3; }
  3420. YY_BREAK
  3421. case 356:
  3422. YY_RULE_SETUP
  3423. #line 459 "gpu/lolfx-scanner.l"
  3424. { return token::HT_UINT3x3; }
  3425. YY_BREAK
  3426. case 357:
  3427. YY_RULE_SETUP
  3428. #line 460 "gpu/lolfx-scanner.l"
  3429. { return token::HT_UINT4x3; }
  3430. YY_BREAK
  3431. case 358:
  3432. YY_RULE_SETUP
  3433. #line 461 "gpu/lolfx-scanner.l"
  3434. { return token::HT_UINT4; }
  3435. YY_BREAK
  3436. case 359:
  3437. YY_RULE_SETUP
  3438. #line 462 "gpu/lolfx-scanner.l"
  3439. { return token::HT_UINT1x4; }
  3440. YY_BREAK
  3441. case 360:
  3442. YY_RULE_SETUP
  3443. #line 463 "gpu/lolfx-scanner.l"
  3444. { return token::HT_UINT2x4; }
  3445. YY_BREAK
  3446. case 361:
  3447. YY_RULE_SETUP
  3448. #line 464 "gpu/lolfx-scanner.l"
  3449. { return token::HT_UINT3x4; }
  3450. YY_BREAK
  3451. case 362:
  3452. YY_RULE_SETUP
  3453. #line 465 "gpu/lolfx-scanner.l"
  3454. { return token::HT_UINT4x4; }
  3455. YY_BREAK
  3456. /*
  3457. * HLSL preprocessor directives
  3458. * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb943993%28v=vs.85%29.aspx
  3459. */
  3460. case 363:
  3461. YY_RULE_SETUP
  3462. #line 472 "gpu/lolfx-scanner.l"
  3463. { return token::PREPROCESSOR_DEFINE; }
  3464. YY_BREAK
  3465. case 364:
  3466. YY_RULE_SETUP
  3467. #line 473 "gpu/lolfx-scanner.l"
  3468. { return token::PREPROCESSOR_ELIF; }
  3469. YY_BREAK
  3470. case 365:
  3471. YY_RULE_SETUP
  3472. #line 474 "gpu/lolfx-scanner.l"
  3473. { return token::PREPROCESSOR_ELSE; }
  3474. YY_BREAK
  3475. case 366:
  3476. YY_RULE_SETUP
  3477. #line 475 "gpu/lolfx-scanner.l"
  3478. { return token::PREPROCESSOR_ENDIF; }
  3479. YY_BREAK
  3480. case 367:
  3481. YY_RULE_SETUP
  3482. #line 476 "gpu/lolfx-scanner.l"
  3483. { return token::PREPROCESSOR_ERROR; }
  3484. YY_BREAK
  3485. case 368:
  3486. YY_RULE_SETUP
  3487. #line 477 "gpu/lolfx-scanner.l"
  3488. { return token::PREPROCESSOR_IF; }
  3489. YY_BREAK
  3490. case 369:
  3491. YY_RULE_SETUP
  3492. #line 478 "gpu/lolfx-scanner.l"
  3493. { return token::PREPROCESSOR_IFDEF; }
  3494. YY_BREAK
  3495. case 370:
  3496. YY_RULE_SETUP
  3497. #line 479 "gpu/lolfx-scanner.l"
  3498. { return token::PREPROCESSOR_IFNDEF; }
  3499. YY_BREAK
  3500. case 371:
  3501. YY_RULE_SETUP
  3502. #line 480 "gpu/lolfx-scanner.l"
  3503. { return token::PREPROCESSOR_INCLUDE; }
  3504. YY_BREAK
  3505. case 372:
  3506. YY_RULE_SETUP
  3507. #line 481 "gpu/lolfx-scanner.l"
  3508. { return token::PREPROCESSOR_LINE; }
  3509. YY_BREAK
  3510. case 373:
  3511. YY_RULE_SETUP
  3512. #line 482 "gpu/lolfx-scanner.l"
  3513. { return token::PREPROCESSOR_PRAGMA; }
  3514. YY_BREAK
  3515. case 374:
  3516. YY_RULE_SETUP
  3517. #line 483 "gpu/lolfx-scanner.l"
  3518. { return token::PREPROCESSOR_UNDEF; }
  3519. YY_BREAK
  3520. /*
  3521. * GLSL preprocessor directives
  3522. */
  3523. case 375:
  3524. YY_RULE_SETUP
  3525. #line 489 "gpu/lolfx-scanner.l"
  3526. { /* ignore for now */ }
  3527. YY_BREAK
  3528. /*
  3529. * LolFx preprocessor directives
  3530. */
  3531. case 376:
  3532. YY_RULE_SETUP
  3533. #line 495 "gpu/lolfx-scanner.l"
  3534. { return token::PRAGMA_LOLFX; }
  3535. YY_BREAK
  3536. /*
  3537. * HLSL reserved keywords
  3538. * Gathered from http://msdn.microsoft.com/en-us/library/windows/desktop/bb509569%28v=vs.85%29.aspx
  3539. */
  3540. case 377:
  3541. YY_RULE_SETUP
  3542. #line 502 "gpu/lolfx-scanner.l"
  3543. { return token::HT_AUTO; }
  3544. YY_BREAK
  3545. case 378:
  3546. YY_RULE_SETUP
  3547. #line 503 "gpu/lolfx-scanner.l"
  3548. { return token::HT_CATCH; }
  3549. YY_BREAK
  3550. case 379:
  3551. YY_RULE_SETUP
  3552. #line 504 "gpu/lolfx-scanner.l"
  3553. { return token::HT_CHAR; }
  3554. YY_BREAK
  3555. case 380:
  3556. YY_RULE_SETUP
  3557. #line 505 "gpu/lolfx-scanner.l"
  3558. { return token::HT_CLASS; }
  3559. YY_BREAK
  3560. case 381:
  3561. YY_RULE_SETUP
  3562. #line 506 "gpu/lolfx-scanner.l"
  3563. { return token::HT_CONST_CAST; }
  3564. YY_BREAK
  3565. case 382:
  3566. YY_RULE_SETUP
  3567. #line 507 "gpu/lolfx-scanner.l"
  3568. { return token::HT_DELETE; }
  3569. YY_BREAK
  3570. case 383:
  3571. YY_RULE_SETUP
  3572. #line 508 "gpu/lolfx-scanner.l"
  3573. { return token::HT_DYNAMIC_CAST; }
  3574. YY_BREAK
  3575. case 384:
  3576. YY_RULE_SETUP
  3577. #line 509 "gpu/lolfx-scanner.l"
  3578. { return token::HT_ENUM; }
  3579. YY_BREAK
  3580. case 385:
  3581. YY_RULE_SETUP
  3582. #line 510 "gpu/lolfx-scanner.l"
  3583. { return token::HT_EXPLICIT; }
  3584. YY_BREAK
  3585. case 386:
  3586. YY_RULE_SETUP
  3587. #line 511 "gpu/lolfx-scanner.l"
  3588. { return token::HT_FRIEND; }
  3589. YY_BREAK
  3590. case 387:
  3591. YY_RULE_SETUP
  3592. #line 512 "gpu/lolfx-scanner.l"
  3593. { return token::HT_GOTO; }
  3594. YY_BREAK
  3595. case 388:
  3596. YY_RULE_SETUP
  3597. #line 513 "gpu/lolfx-scanner.l"
  3598. { return token::HT_LONG; }
  3599. YY_BREAK
  3600. case 389:
  3601. YY_RULE_SETUP
  3602. #line 514 "gpu/lolfx-scanner.l"
  3603. { return token::HT_MUTABLE; }
  3604. YY_BREAK
  3605. case 390:
  3606. YY_RULE_SETUP
  3607. #line 515 "gpu/lolfx-scanner.l"
  3608. { return token::HT_NEW; }
  3609. YY_BREAK
  3610. case 391:
  3611. YY_RULE_SETUP
  3612. #line 516 "gpu/lolfx-scanner.l"
  3613. { return token::HT_OPERATOR; }
  3614. YY_BREAK
  3615. case 392:
  3616. YY_RULE_SETUP
  3617. #line 517 "gpu/lolfx-scanner.l"
  3618. { return token::HT_PRIVATE; }
  3619. YY_BREAK
  3620. case 393:
  3621. YY_RULE_SETUP
  3622. #line 518 "gpu/lolfx-scanner.l"
  3623. { return token::HT_PROTECTED; }
  3624. YY_BREAK
  3625. case 394:
  3626. YY_RULE_SETUP
  3627. #line 519 "gpu/lolfx-scanner.l"
  3628. { return token::HT_PUBLIC; }
  3629. YY_BREAK
  3630. case 395:
  3631. YY_RULE_SETUP
  3632. #line 520 "gpu/lolfx-scanner.l"
  3633. { return token::HT_REINTERPRET_CAST; }
  3634. YY_BREAK
  3635. case 396:
  3636. YY_RULE_SETUP
  3637. #line 521 "gpu/lolfx-scanner.l"
  3638. { return token::HT_SHORT; }
  3639. YY_BREAK
  3640. case 397:
  3641. YY_RULE_SETUP
  3642. #line 522 "gpu/lolfx-scanner.l"
  3643. { return token::HT_SIGNED; }
  3644. YY_BREAK
  3645. case 398:
  3646. YY_RULE_SETUP
  3647. #line 523 "gpu/lolfx-scanner.l"
  3648. { return token::HT_SIZEOF; }
  3649. YY_BREAK
  3650. case 399:
  3651. YY_RULE_SETUP
  3652. #line 524 "gpu/lolfx-scanner.l"
  3653. { return token::HT_STATIC_CAST; }
  3654. YY_BREAK
  3655. case 400:
  3656. YY_RULE_SETUP
  3657. #line 525 "gpu/lolfx-scanner.l"
  3658. { return token::HT_TEMPLATE; }
  3659. YY_BREAK
  3660. case 401:
  3661. YY_RULE_SETUP
  3662. #line 526 "gpu/lolfx-scanner.l"
  3663. { return token::HT_THIS; }
  3664. YY_BREAK
  3665. case 402:
  3666. YY_RULE_SETUP
  3667. #line 527 "gpu/lolfx-scanner.l"
  3668. { return token::HT_THROW; }
  3669. YY_BREAK
  3670. case 403:
  3671. YY_RULE_SETUP
  3672. #line 528 "gpu/lolfx-scanner.l"
  3673. { return token::HT_TRY; }
  3674. YY_BREAK
  3675. case 404:
  3676. YY_RULE_SETUP
  3677. #line 529 "gpu/lolfx-scanner.l"
  3678. { return token::HT_TYPENAME; }
  3679. YY_BREAK
  3680. case 405:
  3681. YY_RULE_SETUP
  3682. #line 530 "gpu/lolfx-scanner.l"
  3683. { return token::HT_UNION; }
  3684. YY_BREAK
  3685. case 406:
  3686. YY_RULE_SETUP
  3687. #line 531 "gpu/lolfx-scanner.l"
  3688. { return token::HT_UNSIGNED; }
  3689. YY_BREAK
  3690. case 407:
  3691. YY_RULE_SETUP
  3692. #line 532 "gpu/lolfx-scanner.l"
  3693. { return token::HT_USING; }
  3694. YY_BREAK
  3695. case 408:
  3696. YY_RULE_SETUP
  3697. #line 533 "gpu/lolfx-scanner.l"
  3698. { return token::HT_VIRTUAL; }
  3699. YY_BREAK
  3700. /*
  3701. * Various tokens
  3702. */
  3703. case 409:
  3704. YY_RULE_SETUP
  3705. #line 539 "gpu/lolfx-scanner.l"
  3706. { return token::T_INC; }
  3707. YY_BREAK
  3708. case 410:
  3709. YY_RULE_SETUP
  3710. #line 540 "gpu/lolfx-scanner.l"
  3711. { return token::T_DEC; }
  3712. YY_BREAK
  3713. case 411:
  3714. YY_RULE_SETUP
  3715. #line 541 "gpu/lolfx-scanner.l"
  3716. { return token::T_LE; }
  3717. YY_BREAK
  3718. case 412:
  3719. YY_RULE_SETUP
  3720. #line 542 "gpu/lolfx-scanner.l"
  3721. { return token::T_GE; }
  3722. YY_BREAK
  3723. case 413:
  3724. YY_RULE_SETUP
  3725. #line 543 "gpu/lolfx-scanner.l"
  3726. { return token::T_EQ; }
  3727. YY_BREAK
  3728. case 414:
  3729. YY_RULE_SETUP
  3730. #line 544 "gpu/lolfx-scanner.l"
  3731. { return token::T_NE; }
  3732. YY_BREAK
  3733. case 415:
  3734. YY_RULE_SETUP
  3735. #line 545 "gpu/lolfx-scanner.l"
  3736. { return token::T_LEFT; }
  3737. YY_BREAK
  3738. case 416:
  3739. YY_RULE_SETUP
  3740. #line 546 "gpu/lolfx-scanner.l"
  3741. { return token::T_RIGHT; }
  3742. YY_BREAK
  3743. case 417:
  3744. YY_RULE_SETUP
  3745. #line 547 "gpu/lolfx-scanner.l"
  3746. { return token::T_AND; }
  3747. YY_BREAK
  3748. case 418:
  3749. YY_RULE_SETUP
  3750. #line 548 "gpu/lolfx-scanner.l"
  3751. { return token::T_OR; }
  3752. YY_BREAK
  3753. case 419:
  3754. YY_RULE_SETUP
  3755. #line 549 "gpu/lolfx-scanner.l"
  3756. { return token::T_XOR; }
  3757. YY_BREAK
  3758. case 420:
  3759. YY_RULE_SETUP
  3760. #line 551 "gpu/lolfx-scanner.l"
  3761. { return token::T_MULEQ; }
  3762. YY_BREAK
  3763. case 421:
  3764. YY_RULE_SETUP
  3765. #line 552 "gpu/lolfx-scanner.l"
  3766. { return token::T_DIVEQ; }
  3767. YY_BREAK
  3768. case 422:
  3769. YY_RULE_SETUP
  3770. #line 553 "gpu/lolfx-scanner.l"
  3771. { return token::T_MODEQ; }
  3772. YY_BREAK
  3773. case 423:
  3774. YY_RULE_SETUP
  3775. #line 554 "gpu/lolfx-scanner.l"
  3776. { return token::T_ADDEQ; }
  3777. YY_BREAK
  3778. case 424:
  3779. YY_RULE_SETUP
  3780. #line 555 "gpu/lolfx-scanner.l"
  3781. { return token::T_SUBEQ; }
  3782. YY_BREAK
  3783. case 425:
  3784. YY_RULE_SETUP
  3785. #line 556 "gpu/lolfx-scanner.l"
  3786. { return token::T_LEFTEQ; }
  3787. YY_BREAK
  3788. case 426:
  3789. YY_RULE_SETUP
  3790. #line 557 "gpu/lolfx-scanner.l"
  3791. { return token::T_RIGHTEQ; }
  3792. YY_BREAK
  3793. case 427:
  3794. YY_RULE_SETUP
  3795. #line 558 "gpu/lolfx-scanner.l"
  3796. { return token::T_ANDEQ; }
  3797. YY_BREAK
  3798. case 428:
  3799. YY_RULE_SETUP
  3800. #line 559 "gpu/lolfx-scanner.l"
  3801. { return token::T_XOREQ; }
  3802. YY_BREAK
  3803. case 429:
  3804. YY_RULE_SETUP
  3805. #line 560 "gpu/lolfx-scanner.l"
  3806. { return token::T_OREQ; }
  3807. YY_BREAK
  3808. case 430:
  3809. YY_RULE_SETUP
  3810. #line 562 "gpu/lolfx-scanner.l"
  3811. {
  3812. yylval->fval = std::atof(yytext);
  3813. return token::FLOATCONSTANT;
  3814. }
  3815. YY_BREAK
  3816. case 431:
  3817. YY_RULE_SETUP
  3818. #line 566 "gpu/lolfx-scanner.l"
  3819. {
  3820. yylval->uval = std::atoi(yytext);
  3821. return token::UINTCONSTANT;
  3822. }
  3823. YY_BREAK
  3824. case 432:
  3825. YY_RULE_SETUP
  3826. #line 570 "gpu/lolfx-scanner.l"
  3827. {
  3828. yylval->ival = std::atoi(yytext);
  3829. return token::INTCONSTANT;
  3830. }
  3831. YY_BREAK
  3832. case 433:
  3833. YY_RULE_SETUP
  3834. #line 575 "gpu/lolfx-scanner.l"
  3835. {
  3836. /* Copy token for now */
  3837. yylval->sval = strdup(yytext);
  3838. return token::IDENTIFIER;
  3839. }
  3840. YY_BREAK
  3841. case 434:
  3842. YY_RULE_SETUP
  3843. #line 581 "gpu/lolfx-scanner.l"
  3844. { /* ignore whitespace */ }
  3845. YY_BREAK
  3846. case 435:
  3847. /* rule 435 can match eol */
  3848. YY_RULE_SETUP
  3849. #line 582 "gpu/lolfx-scanner.l"
  3850. { ++yylineno; }
  3851. YY_BREAK
  3852. case 436:
  3853. YY_RULE_SETUP
  3854. #line 583 "gpu/lolfx-scanner.l"
  3855. { return token::T_ERROR; }
  3856. YY_BREAK
  3857. /*
  3858. * Ignore C comments
  3859. */
  3860. case 437:
  3861. YY_RULE_SETUP
  3862. #line 589 "gpu/lolfx-scanner.l"
  3863. { BEGIN(C_COMMENT); }
  3864. YY_BREAK
  3865. case 438:
  3866. YY_RULE_SETUP
  3867. #line 590 "gpu/lolfx-scanner.l"
  3868. { BEGIN(INITIAL); }
  3869. YY_BREAK
  3870. case 439:
  3871. YY_RULE_SETUP
  3872. #line 591 "gpu/lolfx-scanner.l"
  3873. { }
  3874. YY_BREAK
  3875. case 440:
  3876. /* rule 440 can match eol */
  3877. YY_RULE_SETUP
  3878. #line 592 "gpu/lolfx-scanner.l"
  3879. { ++yylineno; }
  3880. YY_BREAK
  3881. case 441:
  3882. YY_RULE_SETUP
  3883. #line 593 "gpu/lolfx-scanner.l"
  3884. { }
  3885. YY_BREAK
  3886. /*
  3887. * Ignore C++ comments
  3888. */
  3889. case 442:
  3890. YY_RULE_SETUP
  3891. #line 599 "gpu/lolfx-scanner.l"
  3892. { BEGIN(CPP_COMMENT); }
  3893. YY_BREAK
  3894. case 443:
  3895. /* rule 443 can match eol */
  3896. YY_RULE_SETUP
  3897. #line 600 "gpu/lolfx-scanner.l"
  3898. { ++yylineno; BEGIN(INITIAL); }
  3899. YY_BREAK
  3900. case 444:
  3901. YY_RULE_SETUP
  3902. #line 601 "gpu/lolfx-scanner.l"
  3903. { }
  3904. YY_BREAK
  3905. case 445:
  3906. YY_RULE_SETUP
  3907. #line 603 "gpu/lolfx-scanner.l"
  3908. ECHO;
  3909. YY_BREAK
  3910. #line 4147 "generated/lolfx-scanner.cpp"
  3911. case YY_STATE_EOF(INITIAL):
  3912. case YY_STATE_EOF(C_COMMENT):
  3913. case YY_STATE_EOF(CPP_COMMENT):
  3914. yyterminate();
  3915. case YY_END_OF_BUFFER:
  3916. {
  3917. /* Amount of text matched not including the EOB char. */
  3918. int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
  3919. /* Undo the effects of YY_DO_BEFORE_ACTION. */
  3920. *yy_cp = (yy_hold_char);
  3921. YY_RESTORE_YY_MORE_OFFSET
  3922. if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  3923. {
  3924. /* We're scanning a new file or input source. It's
  3925. * possible that this happened because the user
  3926. * just pointed yyin at a new source and called
  3927. * yylex(). If so, then we have to assure
  3928. * consistency between YY_CURRENT_BUFFER and our
  3929. * globals. Here is the right place to do so, because
  3930. * this is the first action (other than possibly a
  3931. * back-up) that will match for the new input source.
  3932. */
  3933. (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  3934. YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  3935. YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  3936. }
  3937. /* Note that here we test for yy_c_buf_p "<=" to the position
  3938. * of the first EOB in the buffer, since yy_c_buf_p will
  3939. * already have been incremented past the NUL character
  3940. * (since all states make transitions on EOB to the
  3941. * end-of-buffer state). Contrast this with the test
  3942. * in input().
  3943. */
  3944. if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  3945. { /* This was really a NUL. */
  3946. yy_state_type yy_next_state;
  3947. (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
  3948. yy_current_state = yy_get_previous_state( );
  3949. /* Okay, we're now positioned to make the NUL
  3950. * transition. We couldn't have
  3951. * yy_get_previous_state() go ahead and do it
  3952. * for us because it doesn't know how to deal
  3953. * with the possibility of jamming (and we don't
  3954. * want to build jamming into it because then it
  3955. * will run more slowly).
  3956. */
  3957. yy_next_state = yy_try_NUL_trans( yy_current_state );
  3958. yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  3959. if ( yy_next_state )
  3960. {
  3961. /* Consume the NUL. */
  3962. yy_cp = ++(yy_c_buf_p);
  3963. yy_current_state = yy_next_state;
  3964. goto yy_match;
  3965. }
  3966. else
  3967. {
  3968. yy_cp = (yy_last_accepting_cpos);
  3969. yy_current_state = (yy_last_accepting_state);
  3970. goto yy_find_action;
  3971. }
  3972. }
  3973. else switch ( yy_get_next_buffer( ) )
  3974. {
  3975. case EOB_ACT_END_OF_FILE:
  3976. {
  3977. (yy_did_buffer_switch_on_eof) = 0;
  3978. if ( yywrap( ) )
  3979. {
  3980. /* Note: because we've taken care in
  3981. * yy_get_next_buffer() to have set up
  3982. * yytext, we can now set up
  3983. * yy_c_buf_p so that if some total
  3984. * hoser (like flex itself) wants to
  3985. * call the scanner after we return the
  3986. * YY_NULL, it'll still work - another
  3987. * YY_NULL will get returned.
  3988. */
  3989. (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  3990. yy_act = YY_STATE_EOF(YY_START);
  3991. goto do_action;
  3992. }
  3993. else
  3994. {
  3995. if ( ! (yy_did_buffer_switch_on_eof) )
  3996. YY_NEW_FILE;
  3997. }
  3998. break;
  3999. }
  4000. case EOB_ACT_CONTINUE_SCAN:
  4001. (yy_c_buf_p) =
  4002. (yytext_ptr) + yy_amount_of_matched_text;
  4003. yy_current_state = yy_get_previous_state( );
  4004. yy_cp = (yy_c_buf_p);
  4005. yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  4006. goto yy_match;
  4007. case EOB_ACT_LAST_MATCH:
  4008. (yy_c_buf_p) =
  4009. &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
  4010. yy_current_state = yy_get_previous_state( );
  4011. yy_cp = (yy_c_buf_p);
  4012. yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  4013. goto yy_find_action;
  4014. }
  4015. break;
  4016. }
  4017. default:
  4018. YY_FATAL_ERROR(
  4019. "fatal flex scanner internal error--no action found" );
  4020. } /* end of action switch */
  4021. } /* end of scanning one token */
  4022. } /* end of yylex */
  4023. /* The contents of this function are C++ specific, so the () macro is not used.
  4024. */
  4025. yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
  4026. {
  4027. yyin = arg_yyin;
  4028. yyout = arg_yyout;
  4029. yy_c_buf_p = 0;
  4030. yy_init = 0;
  4031. yy_start = 0;
  4032. yy_flex_debug = 0;
  4033. yylineno = 1; // this will only get updated if %option yylineno
  4034. yy_did_buffer_switch_on_eof = 0;
  4035. yy_looking_for_trail_begin = 0;
  4036. yy_more_flag = 0;
  4037. yy_more_len = 0;
  4038. yy_more_offset = yy_prev_more_offset = 0;
  4039. yy_start_stack_ptr = yy_start_stack_depth = 0;
  4040. yy_start_stack = NULL;
  4041. yy_buffer_stack = 0;
  4042. yy_buffer_stack_top = 0;
  4043. yy_buffer_stack_max = 0;
  4044. yy_state_buf = 0;
  4045. }
  4046. /* The contents of this function are C++ specific, so the () macro is not used.
  4047. */
  4048. yyFlexLexer::~yyFlexLexer()
  4049. {
  4050. delete [] yy_state_buf;
  4051. LolFxfree(yy_start_stack );
  4052. yy_delete_buffer( YY_CURRENT_BUFFER );
  4053. LolFxfree(yy_buffer_stack );
  4054. }
  4055. /* The contents of this function are C++ specific, so the () macro is not used.
  4056. */
  4057. void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
  4058. {
  4059. if ( new_in )
  4060. {
  4061. yy_delete_buffer( YY_CURRENT_BUFFER );
  4062. yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
  4063. }
  4064. if ( new_out )
  4065. yyout = new_out;
  4066. }
  4067. #ifdef YY_INTERACTIVE
  4068. int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )
  4069. #else
  4070. int yyFlexLexer::LexerInput( char* buf, int max_size )
  4071. #endif
  4072. {
  4073. if ( yyin->eof() || yyin->fail() )
  4074. return 0;
  4075. #ifdef YY_INTERACTIVE
  4076. yyin->get( buf[0] );
  4077. if ( yyin->eof() )
  4078. return 0;
  4079. if ( yyin->bad() )
  4080. return -1;
  4081. return 1;
  4082. #else
  4083. (void) yyin->read( buf, max_size );
  4084. if ( yyin->bad() )
  4085. return -1;
  4086. else
  4087. return yyin->gcount();
  4088. #endif
  4089. }
  4090. void yyFlexLexer::LexerOutput( const char* buf, int size )
  4091. {
  4092. (void) yyout->write( buf, size );
  4093. }
  4094. /* yy_get_next_buffer - try to read in a new buffer
  4095. *
  4096. * Returns a code representing an action:
  4097. * EOB_ACT_LAST_MATCH -
  4098. * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  4099. * EOB_ACT_END_OF_FILE - end of file
  4100. */
  4101. int yyFlexLexer::yy_get_next_buffer()
  4102. {
  4103. register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  4104. register char *source = (yytext_ptr);
  4105. register int number_to_move, i;
  4106. int ret_val;
  4107. if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
  4108. YY_FATAL_ERROR(
  4109. "fatal flex scanner internal error--end of buffer missed" );
  4110. if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  4111. { /* Don't try to fill the buffer, so this is an EOF. */
  4112. if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  4113. {
  4114. /* We matched a single character, the EOB, so
  4115. * treat this as a final EOF.
  4116. */
  4117. return EOB_ACT_END_OF_FILE;
  4118. }
  4119. else
  4120. {
  4121. /* We matched some text prior to the EOB, first
  4122. * process it.
  4123. */
  4124. return EOB_ACT_LAST_MATCH;
  4125. }
  4126. }
  4127. /* Try to read more data. */
  4128. /* First move last chars to start of buffer. */
  4129. number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
  4130. for ( i = 0; i < number_to_move; ++i )
  4131. *(dest++) = *(source++);
  4132. if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  4133. /* don't do the read, it's not guaranteed to return an EOF,
  4134. * just force an EOF
  4135. */
  4136. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
  4137. else
  4138. {
  4139. int num_to_read =
  4140. YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  4141. while ( num_to_read <= 0 )
  4142. { /* Not enough room in the buffer - grow it. */
  4143. /* just a shorter name for the current buffer */
  4144. YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
  4145. int yy_c_buf_p_offset =
  4146. (int) ((yy_c_buf_p) - b->yy_ch_buf);
  4147. if ( b->yy_is_our_buffer )
  4148. {
  4149. int new_size = b->yy_buf_size * 2;
  4150. if ( new_size <= 0 )
  4151. b->yy_buf_size += b->yy_buf_size / 8;
  4152. else
  4153. b->yy_buf_size *= 2;
  4154. b->yy_ch_buf = (char *)
  4155. /* Include room in for 2 EOB chars. */
  4156. LolFxrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
  4157. }
  4158. else
  4159. /* Can't grow it, we don't own it. */
  4160. b->yy_ch_buf = 0;
  4161. if ( ! b->yy_ch_buf )
  4162. YY_FATAL_ERROR(
  4163. "fatal error - scanner input buffer overflow" );
  4164. (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
  4165. num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  4166. number_to_move - 1;
  4167. }
  4168. if ( num_to_read > YY_READ_BUF_SIZE )
  4169. num_to_read = YY_READ_BUF_SIZE;
  4170. /* Read in more data. */
  4171. YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  4172. (yy_n_chars), (size_t) num_to_read );
  4173. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  4174. }
  4175. if ( (yy_n_chars) == 0 )
  4176. {
  4177. if ( number_to_move == YY_MORE_ADJ )
  4178. {
  4179. ret_val = EOB_ACT_END_OF_FILE;
  4180. yyrestart( yyin );
  4181. }
  4182. else
  4183. {
  4184. ret_val = EOB_ACT_LAST_MATCH;
  4185. YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  4186. YY_BUFFER_EOF_PENDING;
  4187. }
  4188. }
  4189. else
  4190. ret_val = EOB_ACT_CONTINUE_SCAN;
  4191. if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  4192. /* Extend the array by 50%, plus the number we really need. */
  4193. yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
  4194. YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) LolFxrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
  4195. if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  4196. YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  4197. }
  4198. (yy_n_chars) += number_to_move;
  4199. YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  4200. YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  4201. (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  4202. return ret_val;
  4203. }
  4204. /* yy_get_previous_state - get the state just before the EOB char was reached */
  4205. yy_state_type yyFlexLexer::yy_get_previous_state()
  4206. {
  4207. register yy_state_type yy_current_state;
  4208. register char *yy_cp;
  4209. yy_current_state = (yy_start);
  4210. for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  4211. {
  4212. register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  4213. if ( yy_accept[yy_current_state] )
  4214. {
  4215. (yy_last_accepting_state) = yy_current_state;
  4216. (yy_last_accepting_cpos) = yy_cp;
  4217. }
  4218. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  4219. {
  4220. yy_current_state = (int) yy_def[yy_current_state];
  4221. if ( yy_current_state >= 1633 )
  4222. yy_c = yy_meta[(unsigned int) yy_c];
  4223. }
  4224. yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  4225. }
  4226. return yy_current_state;
  4227. }
  4228. /* yy_try_NUL_trans - try to make a transition on the NUL character
  4229. *
  4230. * synopsis
  4231. * next_state = yy_try_NUL_trans( current_state );
  4232. */
  4233. yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
  4234. {
  4235. register int yy_is_jam;
  4236. register char *yy_cp = (yy_c_buf_p);
  4237. register YY_CHAR yy_c = 1;
  4238. if ( yy_accept[yy_current_state] )
  4239. {
  4240. (yy_last_accepting_state) = yy_current_state;
  4241. (yy_last_accepting_cpos) = yy_cp;
  4242. }
  4243. while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  4244. {
  4245. yy_current_state = (int) yy_def[yy_current_state];
  4246. if ( yy_current_state >= 1633 )
  4247. yy_c = yy_meta[(unsigned int) yy_c];
  4248. }
  4249. yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  4250. yy_is_jam = (yy_current_state == 1632);
  4251. return yy_is_jam ? 0 : yy_current_state;
  4252. }
  4253. void yyFlexLexer::yyunput( int c, register char* yy_bp)
  4254. {
  4255. register char *yy_cp;
  4256. yy_cp = (yy_c_buf_p);
  4257. /* undo effects of setting up yytext */
  4258. *yy_cp = (yy_hold_char);
  4259. if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  4260. { /* need to shift things up to make room */
  4261. /* +2 for EOB chars. */
  4262. register int number_to_move = (yy_n_chars) + 2;
  4263. register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
  4264. YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
  4265. register char *source =
  4266. &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
  4267. while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  4268. *--dest = *--source;
  4269. yy_cp += (int) (dest - source);
  4270. yy_bp += (int) (dest - source);
  4271. YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
  4272. (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
  4273. if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  4274. YY_FATAL_ERROR( "flex scanner push-back overflow" );
  4275. }
  4276. *--yy_cp = (char) c;
  4277. (yytext_ptr) = yy_bp;
  4278. (yy_hold_char) = *yy_cp;
  4279. (yy_c_buf_p) = yy_cp;
  4280. }
  4281. int yyFlexLexer::yyinput()
  4282. {
  4283. int c;
  4284. *(yy_c_buf_p) = (yy_hold_char);
  4285. if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
  4286. {
  4287. /* yy_c_buf_p now points to the character we want to return.
  4288. * If this occurs *before* the EOB characters, then it's a
  4289. * valid NUL; if not, then we've hit the end of the buffer.
  4290. */
  4291. if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  4292. /* This was really a NUL. */
  4293. *(yy_c_buf_p) = '\0';
  4294. else
  4295. { /* need more input */
  4296. int offset = (yy_c_buf_p) - (yytext_ptr);
  4297. ++(yy_c_buf_p);
  4298. switch ( yy_get_next_buffer( ) )
  4299. {
  4300. case EOB_ACT_LAST_MATCH:
  4301. /* This happens because yy_g_n_b()
  4302. * sees that we've accumulated a
  4303. * token and flags that we need to
  4304. * try matching the token before
  4305. * proceeding. But for input(),
  4306. * there's no matching to consider.
  4307. * So convert the EOB_ACT_LAST_MATCH
  4308. * to EOB_ACT_END_OF_FILE.
  4309. */
  4310. /* Reset buffer status. */
  4311. yyrestart( yyin );
  4312. /*FALLTHROUGH*/
  4313. case EOB_ACT_END_OF_FILE:
  4314. {
  4315. if ( yywrap( ) )
  4316. return EOF;
  4317. if ( ! (yy_did_buffer_switch_on_eof) )
  4318. YY_NEW_FILE;
  4319. #ifdef __cplusplus
  4320. return yyinput();
  4321. #else
  4322. return input();
  4323. #endif
  4324. }
  4325. case EOB_ACT_CONTINUE_SCAN:
  4326. (yy_c_buf_p) = (yytext_ptr) + offset;
  4327. break;
  4328. }
  4329. }
  4330. }
  4331. c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
  4332. *(yy_c_buf_p) = '\0'; /* preserve yytext */
  4333. (yy_hold_char) = *++(yy_c_buf_p);
  4334. return c;
  4335. }
  4336. /** Immediately switch to a different input stream.
  4337. * @param input_file A readable stream.
  4338. *
  4339. * @note This function does not reset the start condition to @c INITIAL .
  4340. */
  4341. void yyFlexLexer::yyrestart( std::istream* input_file )
  4342. {
  4343. if ( ! YY_CURRENT_BUFFER ){
  4344. yyensure_buffer_stack ();
  4345. YY_CURRENT_BUFFER_LVALUE =
  4346. yy_create_buffer( yyin, YY_BUF_SIZE );
  4347. }
  4348. yy_init_buffer( YY_CURRENT_BUFFER, input_file );
  4349. yy_load_buffer_state( );
  4350. }
  4351. /** Switch to a different input buffer.
  4352. * @param new_buffer The new input buffer.
  4353. *
  4354. */
  4355. void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  4356. {
  4357. /* TODO. We should be able to replace this entire function body
  4358. * with
  4359. * yypop_buffer_state();
  4360. * yypush_buffer_state(new_buffer);
  4361. */
  4362. yyensure_buffer_stack ();
  4363. if ( YY_CURRENT_BUFFER == new_buffer )
  4364. return;
  4365. if ( YY_CURRENT_BUFFER )
  4366. {
  4367. /* Flush out information for old buffer. */
  4368. *(yy_c_buf_p) = (yy_hold_char);
  4369. YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  4370. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  4371. }
  4372. YY_CURRENT_BUFFER_LVALUE = new_buffer;
  4373. yy_load_buffer_state( );
  4374. /* We don't actually know whether we did this switch during
  4375. * EOF (yywrap()) processing, but the only time this flag
  4376. * is looked at is after yywrap() is called, so it's safe
  4377. * to go ahead and always set it.
  4378. */
  4379. (yy_did_buffer_switch_on_eof) = 1;
  4380. }
  4381. void yyFlexLexer::yy_load_buffer_state()
  4382. {
  4383. (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  4384. (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  4385. yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  4386. (yy_hold_char) = *(yy_c_buf_p);
  4387. }
  4388. /** Allocate and initialize an input buffer state.
  4389. * @param file A readable stream.
  4390. * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
  4391. *
  4392. * @return the allocated buffer state.
  4393. */
  4394. YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
  4395. {
  4396. YY_BUFFER_STATE b;
  4397. b = (YY_BUFFER_STATE) LolFxalloc(sizeof( struct yy_buffer_state ) );
  4398. if ( ! b )
  4399. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  4400. b->yy_buf_size = size;
  4401. /* yy_ch_buf has to be 2 characters longer than the size given because
  4402. * we need to put in 2 end-of-buffer characters.
  4403. */
  4404. b->yy_ch_buf = (char *) LolFxalloc(b->yy_buf_size + 2 );
  4405. if ( ! b->yy_ch_buf )
  4406. YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  4407. b->yy_is_our_buffer = 1;
  4408. yy_init_buffer( b, file );
  4409. return b;
  4410. }
  4411. /** Destroy the buffer.
  4412. * @param b a buffer created with yy_create_buffer()
  4413. *
  4414. */
  4415. void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
  4416. {
  4417. if ( ! b )
  4418. return;
  4419. if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  4420. YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  4421. if ( b->yy_is_our_buffer )
  4422. LolFxfree((void *) b->yy_ch_buf );
  4423. LolFxfree((void *) b );
  4424. }
  4425. extern "C" int isatty (int );
  4426. /* Initializes or reinitializes a buffer.
  4427. * This function is sometimes called more than once on the same buffer,
  4428. * such as during a yyrestart() or at EOF.
  4429. */
  4430. void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
  4431. {
  4432. int oerrno = errno;
  4433. yy_flush_buffer( b );
  4434. b->yy_input_file = file;
  4435. b->yy_fill_buffer = 1;
  4436. /* If b is the current buffer, then yy_init_buffer was _probably_
  4437. * called from yyrestart() or through yy_get_next_buffer.
  4438. * In that case, we don't want to reset the lineno or column.
  4439. */
  4440. if (b != YY_CURRENT_BUFFER){
  4441. b->yy_bs_lineno = 1;
  4442. b->yy_bs_column = 0;
  4443. }
  4444. b->yy_is_interactive = 0;
  4445. errno = oerrno;
  4446. }
  4447. /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  4448. * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
  4449. *
  4450. */
  4451. void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
  4452. {
  4453. if ( ! b )
  4454. return;
  4455. b->yy_n_chars = 0;
  4456. /* We always need two end-of-buffer characters. The first causes
  4457. * a transition to the end-of-buffer state. The second causes
  4458. * a jam in that state.
  4459. */
  4460. b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  4461. b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  4462. b->yy_buf_pos = &b->yy_ch_buf[0];
  4463. b->yy_at_bol = 1;
  4464. b->yy_buffer_status = YY_BUFFER_NEW;
  4465. if ( b == YY_CURRENT_BUFFER )
  4466. yy_load_buffer_state( );
  4467. }
  4468. /** Pushes the new state onto the stack. The new state becomes
  4469. * the current state. This function will allocate the stack
  4470. * if necessary.
  4471. * @param new_buffer The new state.
  4472. *
  4473. */
  4474. void yyFlexLexer::yypush_buffer_state (YY_BUFFER_STATE new_buffer)
  4475. {
  4476. if (new_buffer == NULL)
  4477. return;
  4478. yyensure_buffer_stack();
  4479. /* This block is copied from yy_switch_to_buffer. */
  4480. if ( YY_CURRENT_BUFFER )
  4481. {
  4482. /* Flush out information for old buffer. */
  4483. *(yy_c_buf_p) = (yy_hold_char);
  4484. YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  4485. YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  4486. }
  4487. /* Only push if top exists. Otherwise, replace top. */
  4488. if (YY_CURRENT_BUFFER)
  4489. (yy_buffer_stack_top)++;
  4490. YY_CURRENT_BUFFER_LVALUE = new_buffer;
  4491. /* copied from yy_switch_to_buffer. */
  4492. yy_load_buffer_state( );
  4493. (yy_did_buffer_switch_on_eof) = 1;
  4494. }
  4495. /** Removes and deletes the top of the stack, if present.
  4496. * The next element becomes the new top.
  4497. *
  4498. */
  4499. void yyFlexLexer::yypop_buffer_state (void)
  4500. {
  4501. if (!YY_CURRENT_BUFFER)
  4502. return;
  4503. yy_delete_buffer(YY_CURRENT_BUFFER );
  4504. YY_CURRENT_BUFFER_LVALUE = NULL;
  4505. if ((yy_buffer_stack_top) > 0)
  4506. --(yy_buffer_stack_top);
  4507. if (YY_CURRENT_BUFFER) {
  4508. yy_load_buffer_state( );
  4509. (yy_did_buffer_switch_on_eof) = 1;
  4510. }
  4511. }
  4512. /* Allocates the stack if it does not exist.
  4513. * Guarantees space for at least one push.
  4514. */
  4515. void yyFlexLexer::yyensure_buffer_stack(void)
  4516. {
  4517. int num_to_alloc;
  4518. if (!(yy_buffer_stack)) {
  4519. /* First allocation is just for 2 elements, since we don't know if this
  4520. * scanner will even need a stack. We use 2 instead of 1 to avoid an
  4521. * immediate realloc on the next call.
  4522. */
  4523. num_to_alloc = 1;
  4524. (yy_buffer_stack) = (struct yy_buffer_state**)LolFxalloc
  4525. (num_to_alloc * sizeof(struct yy_buffer_state*)
  4526. );
  4527. if ( ! (yy_buffer_stack) )
  4528. YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  4529. memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
  4530. (yy_buffer_stack_max) = num_to_alloc;
  4531. (yy_buffer_stack_top) = 0;
  4532. return;
  4533. }
  4534. if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
  4535. /* Increase the buffer to prepare for a possible push. */
  4536. int grow_size = 8 /* arbitrary grow size */;
  4537. num_to_alloc = (yy_buffer_stack_max) + grow_size;
  4538. (yy_buffer_stack) = (struct yy_buffer_state**)LolFxrealloc
  4539. ((yy_buffer_stack),
  4540. num_to_alloc * sizeof(struct yy_buffer_state*)
  4541. );
  4542. if ( ! (yy_buffer_stack) )
  4543. YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  4544. /* zero only the new slots.*/
  4545. memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
  4546. (yy_buffer_stack_max) = num_to_alloc;
  4547. }
  4548. }
  4549. void yyFlexLexer::yy_push_state( int new_state )
  4550. {
  4551. if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
  4552. {
  4553. yy_size_t new_size;
  4554. (yy_start_stack_depth) += YY_START_STACK_INCR;
  4555. new_size = (yy_start_stack_depth) * sizeof( int );
  4556. if ( ! (yy_start_stack) )
  4557. (yy_start_stack) = (int *) LolFxalloc(new_size );
  4558. else
  4559. (yy_start_stack) = (int *) LolFxrealloc((void *) (yy_start_stack),new_size );
  4560. if ( ! (yy_start_stack) )
  4561. YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
  4562. }
  4563. (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
  4564. BEGIN(new_state);
  4565. }
  4566. void yyFlexLexer::yy_pop_state()
  4567. {
  4568. if ( --(yy_start_stack_ptr) < 0 )
  4569. YY_FATAL_ERROR( "start-condition stack underflow" );
  4570. BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
  4571. }
  4572. int yyFlexLexer::yy_top_state()
  4573. {
  4574. return (yy_start_stack)[(yy_start_stack_ptr) - 1];
  4575. }
  4576. #ifndef YY_EXIT_FAILURE
  4577. #define YY_EXIT_FAILURE 2
  4578. #endif
  4579. void yyFlexLexer::LexerError( yyconst char msg[] )
  4580. {
  4581. std::cerr << msg << std::endl;
  4582. exit( YY_EXIT_FAILURE );
  4583. }
  4584. /* Redefine yyless() so it works in section 3 code. */
  4585. #undef yyless
  4586. #define yyless(n) \
  4587. do \
  4588. { \
  4589. /* Undo effects of setting up yytext. */ \
  4590. int yyless_macro_arg = (n); \
  4591. YY_LESS_LINENO(yyless_macro_arg);\
  4592. yytext[yyleng] = (yy_hold_char); \
  4593. (yy_c_buf_p) = yytext + yyless_macro_arg; \
  4594. (yy_hold_char) = *(yy_c_buf_p); \
  4595. *(yy_c_buf_p) = '\0'; \
  4596. yyleng = yyless_macro_arg; \
  4597. } \
  4598. while ( 0 )
  4599. /* Accessor methods (get/set functions) to struct members. */
  4600. /*
  4601. * Internal utility routines.
  4602. */
  4603. #ifndef yytext_ptr
  4604. static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
  4605. {
  4606. register int i;
  4607. for ( i = 0; i < n; ++i )
  4608. s1[i] = s2[i];
  4609. }
  4610. #endif
  4611. #ifdef YY_NEED_STRLEN
  4612. static int yy_flex_strlen (yyconst char * s )
  4613. {
  4614. register int n;
  4615. for ( n = 0; s[n]; ++n )
  4616. ;
  4617. return n;
  4618. }
  4619. #endif
  4620. void *LolFxalloc (yy_size_t size )
  4621. {
  4622. return (void *) malloc( size );
  4623. }
  4624. void *LolFxrealloc (void * ptr, yy_size_t size )
  4625. {
  4626. /* The cast to (char *) in the following accommodates both
  4627. * implementations that use char* generic pointers, and those
  4628. * that use void* generic pointers. It works with the latter
  4629. * because both ANSI C and C++ allow castless assignment from
  4630. * any pointer type to void*, and deal with argument conversions
  4631. * as though doing an assignment.
  4632. */
  4633. return (void *) realloc( (char *) ptr, size );
  4634. }
  4635. void LolFxfree (void * ptr )
  4636. {
  4637. free( (char *) ptr ); /* see LolFxrealloc() for (char *) cast */
  4638. }
  4639. #define YYTABLES_NAME "yytables"
  4640. #line 603 "gpu/lolfx-scanner.l"
  4641. lol::LolFxScanner::LolFxScanner(char const *command)
  4642. : LolFxFlexLexer(0, 0),
  4643. m_input(command)
  4644. {
  4645. }
  4646. lol::LolFxScanner::~LolFxScanner()
  4647. {
  4648. }
  4649. int lol::LolFxScanner::LexerInput(char* buf, int max_size)
  4650. {
  4651. buf[0] = m_input[0];
  4652. if (buf[0])
  4653. ++m_input;
  4654. return buf[0] ? 1 : 0;
  4655. }
  4656. #ifdef yylex
  4657. #undef yylex
  4658. #endif
  4659. int LolFxFlexLexer::yylex()
  4660. {
  4661. std::cerr << "in LolFxFlexLexer::yylex() !" << std::endl;
  4662. return 0;
  4663. }
  4664. int LolFxFlexLexer::yywrap()
  4665. {
  4666. return 1;
  4667. }