You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

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