47055b4565131cd714002c4d2077ac94a818200b
[c_to_python.git] / lex.yy.c
1
2 #line 2 "lex.yy.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 6
11 #define YY_FLEX_SUBMINOR_VERSION 4
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types. 
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t; 
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56
57 /* Limits of integral types. */
58 #ifndef INT8_MIN
59 #define INT8_MIN               (-128)
60 #endif
61 #ifndef INT16_MIN
62 #define INT16_MIN              (-32767-1)
63 #endif
64 #ifndef INT32_MIN
65 #define INT32_MIN              (-2147483647-1)
66 #endif
67 #ifndef INT8_MAX
68 #define INT8_MAX               (127)
69 #endif
70 #ifndef INT16_MAX
71 #define INT16_MAX              (32767)
72 #endif
73 #ifndef INT32_MAX
74 #define INT32_MAX              (2147483647)
75 #endif
76 #ifndef UINT8_MAX
77 #define UINT8_MAX              (255U)
78 #endif
79 #ifndef UINT16_MAX
80 #define UINT16_MAX             (65535U)
81 #endif
82 #ifndef UINT32_MAX
83 #define UINT32_MAX             (4294967295U)
84 #endif
85
86 #ifndef SIZE_MAX
87 #define SIZE_MAX               (~(size_t)0)
88 #endif
89
90 #endif /* ! C99 */
91
92 #endif /* ! FLEXINT_H */
93
94 /* begin standard C++ headers. */
95
96 /* TODO: this is always defined, so inline it */
97 #define yyconst const
98
99 #if defined(__GNUC__) && __GNUC__ >= 3
100 #define yynoreturn __attribute__((__noreturn__))
101 #else
102 #define yynoreturn
103 #endif
104
105 /* Returned upon end-of-file. */
106 #define YY_NULL 0
107
108 /* Promotes a possibly negative, possibly signed char to an
109  *   integer in range [0..255] for use as an array index.
110  */
111 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
112
113 /* Enter a start condition.  This macro really ought to take a parameter,
114  * but we do it the disgusting crufty way forced on us by the ()-less
115  * definition of BEGIN.
116  */
117 #define BEGIN (yy_start) = 1 + 2 *
118 /* Translate the current start state into a value that can be later handed
119  * to BEGIN to return to the state.  The YYSTATE alias is for lex
120  * compatibility.
121  */
122 #define YY_START (((yy_start) - 1) / 2)
123 #define YYSTATE YY_START
124 /* Action number for EOF rule of a given start state. */
125 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
126 /* Special action meaning "start processing a new file". */
127 #define YY_NEW_FILE yyrestart( yyin  )
128 #define YY_END_OF_BUFFER_CHAR 0
129
130 /* Size of default input buffer. */
131 #ifndef YY_BUF_SIZE
132 #ifdef __ia64__
133 /* On IA-64, the buffer size is 16k, not 8k.
134  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
135  * Ditto for the __ia64__ case accordingly.
136  */
137 #define YY_BUF_SIZE 32768
138 #else
139 #define YY_BUF_SIZE 16384
140 #endif /* __ia64__ */
141 #endif
142
143 /* The state buf must be large enough to hold one state per character in the main buffer.
144  */
145 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
146
147 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
148 #define YY_TYPEDEF_YY_BUFFER_STATE
149 typedef struct yy_buffer_state *YY_BUFFER_STATE;
150 #endif
151
152 #ifndef YY_TYPEDEF_YY_SIZE_T
153 #define YY_TYPEDEF_YY_SIZE_T
154 typedef size_t yy_size_t;
155 #endif
156
157 extern int yyleng;
158
159 extern FILE *yyin, *yyout;
160
161 #define EOB_ACT_CONTINUE_SCAN 0
162 #define EOB_ACT_END_OF_FILE 1
163 #define EOB_ACT_LAST_MATCH 2
164     
165     #define YY_LESS_LINENO(n)
166     #define YY_LINENO_REWIND_TO(ptr)
167     
168 /* Return all but the first "n" matched characters back to the input stream. */
169 #define yyless(n) \
170         do \
171                 { \
172                 /* Undo effects of setting up yytext. */ \
173         int yyless_macro_arg = (n); \
174         YY_LESS_LINENO(yyless_macro_arg);\
175                 *yy_cp = (yy_hold_char); \
176                 YY_RESTORE_YY_MORE_OFFSET \
177                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
178                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
179                 } \
180         while ( 0 )
181 #define unput(c) yyunput( c, (yytext_ptr)  )
182
183 #ifndef YY_STRUCT_YY_BUFFER_STATE
184 #define YY_STRUCT_YY_BUFFER_STATE
185 struct yy_buffer_state
186         {
187         FILE *yy_input_file;
188
189         char *yy_ch_buf;                /* input buffer */
190         char *yy_buf_pos;               /* current position in input buffer */
191
192         /* Size of input buffer in bytes, not including room for EOB
193          * characters.
194          */
195         int yy_buf_size;
196
197         /* Number of characters read into yy_ch_buf, not including EOB
198          * characters.
199          */
200         int yy_n_chars;
201
202         /* Whether we "own" the buffer - i.e., we know we created it,
203          * and can realloc() it to grow it, and should free() it to
204          * delete it.
205          */
206         int yy_is_our_buffer;
207
208         /* Whether this is an "interactive" input source; if so, and
209          * if we're using stdio for input, then we want to use getc()
210          * instead of fread(), to make sure we stop fetching input after
211          * each newline.
212          */
213         int yy_is_interactive;
214
215         /* Whether we're considered to be at the beginning of a line.
216          * If so, '^' rules will be active on the next match, otherwise
217          * not.
218          */
219         int yy_at_bol;
220
221     int yy_bs_lineno; /**< The line count. */
222     int yy_bs_column; /**< The column count. */
223
224         /* Whether to try to fill the input buffer when we reach the
225          * end of it.
226          */
227         int yy_fill_buffer;
228
229         int yy_buffer_status;
230
231 #define YY_BUFFER_NEW 0
232 #define YY_BUFFER_NORMAL 1
233         /* When an EOF's been seen but there's still some text to process
234          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
235          * shouldn't try reading from the input source any more.  We might
236          * still have a bunch of tokens to match, though, because of
237          * possible backing-up.
238          *
239          * When we actually see the EOF, we change the status to "new"
240          * (via yyrestart()), so that the user can continue scanning by
241          * just pointing yyin at a new input file.
242          */
243 #define YY_BUFFER_EOF_PENDING 2
244
245         };
246 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
247
248 /* Stack of input buffers. */
249 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
250 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
251 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
252
253 /* We provide macros for accessing buffer states in case in the
254  * future we want to put the buffer states in a more general
255  * "scanner state".
256  *
257  * Returns the top of the stack, or NULL.
258  */
259 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
260                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
261                           : NULL)
262 /* Same as previous macro, but useful when we know that the buffer stack is not
263  * NULL or when we need an lvalue. For internal use only.
264  */
265 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
266
267 /* yy_hold_char holds the character lost when yytext is formed. */
268 static char yy_hold_char;
269 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
270 int yyleng;
271
272 /* Points to current character in buffer. */
273 static char *yy_c_buf_p = NULL;
274 static int yy_init = 0;         /* whether we need to initialize */
275 static int yy_start = 0;        /* start state number */
276
277 /* Flag which is used to allow yywrap()'s to do buffer switches
278  * instead of setting up a fresh yyin.  A bit of a hack ...
279  */
280 static int yy_did_buffer_switch_on_eof;
281
282 void yyrestart ( FILE *input_file  );
283 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
284 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
285 void yy_delete_buffer ( YY_BUFFER_STATE b  );
286 void yy_flush_buffer ( YY_BUFFER_STATE b  );
287 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
288 void yypop_buffer_state ( void );
289
290 static void yyensure_buffer_stack ( void );
291 static void yy_load_buffer_state ( void );
292 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
293 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
294
295 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
296 YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
297 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
298
299 void *yyalloc ( yy_size_t  );
300 void *yyrealloc ( void *, yy_size_t  );
301 void yyfree ( void *  );
302
303 #define yy_new_buffer yy_create_buffer
304 #define yy_set_interactive(is_interactive) \
305         { \
306         if ( ! YY_CURRENT_BUFFER ){ \
307         yyensure_buffer_stack (); \
308                 YY_CURRENT_BUFFER_LVALUE =    \
309             yy_create_buffer( yyin, YY_BUF_SIZE ); \
310         } \
311         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
312         }
313 #define yy_set_bol(at_bol) \
314         { \
315         if ( ! YY_CURRENT_BUFFER ){\
316         yyensure_buffer_stack (); \
317                 YY_CURRENT_BUFFER_LVALUE =    \
318             yy_create_buffer( yyin, YY_BUF_SIZE ); \
319         } \
320         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
321         }
322 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
323
324 /* Begin user sect3 */
325 typedef flex_uint8_t YY_CHAR;
326
327 FILE *yyin = NULL, *yyout = NULL;
328
329 typedef int yy_state_type;
330
331 extern int yylineno;
332 int yylineno = 1;
333
334 extern char *yytext;
335 #ifdef yytext_ptr
336 #undef yytext_ptr
337 #endif
338 #define yytext_ptr yytext
339
340 static yy_state_type yy_get_previous_state ( void );
341 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
342 static int yy_get_next_buffer ( void );
343 static void yynoreturn yy_fatal_error ( const char* msg  );
344
345 /* Done after the current pattern has been matched and before the
346  * corresponding action - sets up yytext.
347  */
348 #define YY_DO_BEFORE_ACTION \
349         (yytext_ptr) = yy_bp; \
350         yyleng = (int) (yy_cp - yy_bp); \
351         (yy_hold_char) = *yy_cp; \
352         *yy_cp = '\0'; \
353         (yy_c_buf_p) = yy_cp;
354 #define YY_NUM_RULES 253
355 #define YY_END_OF_BUFFER 254
356 /* This struct is not used in this scanner,
357    but its presence is necessary. */
358 struct yy_trans_info
359         {
360         flex_int32_t yy_verify;
361         flex_int32_t yy_nxt;
362         };
363 static const flex_int16_t yy_accept[1114] =
364     {   0,
365         0,    0,    0,    0,    0,    0,  246,  246,   40,   40,
366         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
367         0,    0,    0,    0,    0,    0,    0,    0,   21,   21,
368       239,  239,    0,    0,    0,    0,    0,    0,    0,    0,
369         0,    0,    0,    0,    0,    0,    0,    0,   21,   21,
370       250,  250,  239,  239,  254,  252,    9,   20,  252,   18,
371         1,   19,  252,  252,  252,  252,   17,  163,  148,  149,
372       163,  141,  163,  160,  161,  162,  162,  163,  163,  163,
373       162,  147,  137,  163,  163,  139,  140,  135,  136,  135,
374       134,  133,  134,  246,  247,  247,   40,   42,   40,   41,
375
376        40,   40,   41,   41,   41,   50,   49,   51,  252,  169,
377       169,  164,  169,  165,  166,  168,  170,  218,  219,  218,
378       216,  215,  217,  171,  173,  171,  172,  171,  185,  185,
379       185,  185,  187,  189,  187,  187,  187,  187,  188,  228,
380       233,  228,  232,  231,  234,  229,  229,  229,  234,  234,
381       226,  227,  252,  130,  252,   21,   23,   21,   22,   22,
382        22,  235,  241,  235,  236,  242,  242,  242,  224,  224,
383       225,  224,  224,  224,  224,  224,  224,  224,  129,   53,
384        52,  129,  129,  129,  129,   54,  129,  129,  129,  129,
385       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
386
387       129,  129,  129,  129,  129,  129,  129,   36,   33,   36,
388        34,   48,   45,  252,   48,   48,   44,   43,  175,  174,
389       176,  177,  178,  179,  180,  181,  182,   31,   32,   31,
390        30,   28,   29,   28,   27,   22,  250,  251,  251,  237,
391       237,  238,    9,   20,    0,   18,    1,   19,    0,    0,
392         0,   16,   10,    0,    0,    0,    0,    4,   16,    5,
393         0,    2,   17,  148,  149,    0,    0,    0,  143,    0,
394       159,  157,    0,  153,  153,    0,  243,  243,  243,    0,
395         0,  142,    0,  147,  137,    0,    0,    0,  139,  140,
396       152,  138,    0,  136,  134,  133,  131,  132,  246,  244,
397
398       245,   40,   42,   40,   40,   37,   38,    0,   50,   49,
399        51,    0,  164,    0,  164,  167,  168,  219,  215,  173,
400         0,  183,  184,  189,  186,  228,  233,    0,    0,  221,
401       229,  229,  229,    0,  130,    0,   21,   23,   24,  235,
402       241,  240,  239,  240,    0,    0,  225,  220,    0,    0,
403        53,   52,    0,  128,    0,    0,  129,  129,  129,  129,
404       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
405       129,  129,  129,  129,  129,  129,   55,  129,  129,  129,
406       129,  129,  129,  129,  129,  129,  129,  129,    0,   35,
407        34,   48,   45,   46,   47,   31,   32,   29,   26,   25,
408
409       250,  248,  249,  237,    0,   16,   10,    0,   14,    0,
410         0,    0,    0,    0,    4,   16,    5,    0,    6,    0,
411       144,    0,  145,    0,  158,    0,  153,  153,    0,  153,
412       153,  153,  243,  243,  155,  154,    0,  156,  138,  146,
413         0,  152,    0,  131,  132,   40,   40,    0,   39,    0,
414         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,  230,  229,  229,    0,    0,  220,    0,    0,
416         0,    0,  129,  129,  129,  129,  129,  129,   65,  129,
417       129,  129,   70,  129,  129,  129,  129,  129,  129,  129,
418       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
419
420       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
421       129,  129,  129,  129,  129,  129,  129,  129,    0,    0,
422         0,    0,   14,    0,    0,    0,    0,    0,    0,    4,
423         8,    5,    0,  153,  153,  153,  153,  153,  153,  153,
424       243,  156,    0,    0,   40,   40,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         0,    0,    0,    0,    0,    0,    0,    0,  229,  229,
427         0,    0,   56,   57,  129,  129,  129,  129,  129,  129,
428       129,  129,  129,  129,   71,   72,  129,  129,  129,  129,
429        77,   78,  129,  129,  129,  129,  129,  129,  129,   83,
430
431       129,  129,  129,  129,  129,  129,  129,  129,  129,   92,
432       129,  129,  129,  129,  129,  129,  129,  129,  129,    0,
433         0,    0,    0,   15,    0,    0,    0,    0,    0,    8,
434         8,    8,    0,  153,  153,  153,  153,  153,  153,  153,
435         0,    0,   40,   40,  214,    0,    0,    0,    0,    0,
436         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
437         0,    0,    0,    0,    0,    0,    0,    0,  229,  229,
438         0,    0,   58,  129,   60,  129,   62,  129,  129,  129,
439       129,   68,  129,  129,  129,   73,  129,  129,  129,  129,
440       129,  129,  129,  129,  129,  129,  129,   86,  129,  129,
441
442       129,  129,   90,  129,  129,  129,  129,  129,  129,  129,
443       129,  129,  129,    0,    0,    0,    0,    3,    0,    0,
444         0,    8,    7,    8,    0,  153,  153,  153,    0,    0,
445        40,   40,    0,    0,    0,    0,    0,    0,    0,    0,
446         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
447         0,    0,    0,    0,    0,    0,  222,  223,  222,  223,
448       129,   61,  129,  129,  129,  129,  129,  129,  129,  125,
449       129,  129,  129,  129,  129,  129,  129,  129,  123,  129,
450        85,  129,   88,  129,   89,  129,  129,  129,  104,    0,
451       129,   94,  129,    0,   95,    0,    0,    0,    0,    0,
452
453        12,    0,   13,    0,  151,    0,  150,    0,    0,    0,
454         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
455         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
456         0,  129,  129,  129,  129,  129,   66,  129,   69,  129,
457       129,  129,  129,  129,  129,  122,  129,   82,  129,  129,
458        87,  129,   91,  102,  124,    0,    0,    0,    0,    0,
459         0,  129,  129,    0,    0,    0,    0,    0,    0,    0,
460         0,    0,    0,  150,    0,    0,    0,    0,    0,    0,
461         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
462         0,    0,    0,    0,    0,    0,    0,    0,  129,  129,
463
464       129,  129,  129,   67,  129,  129,  129,  129,   79,  129,
465       129,  129,  129,  129,  129,    0,    0,  113,    0,    0,
466         0,    0,    0,    0,   93,  129,    0,    0,  114,    0,
467         0,    0,    0,    0,    0,    0,    0,    0,   11,    0,
468       190,  191,  192,  193,  194,  195,  196,  197,  198,  199,
469       200,    0,    0,    0,    0,    0,    0,    0,    0,    0,
470         0,    0,    0,    0,  129,  129,  129,  129,  129,  129,
471       129,  129,  129,  129,  129,  129,   84,  129,  129,    0,
472         0,    0,    0,    0,    0,  115,    0,  103,    0,    0,
473         0,    0,    0,  116,    0,    0,    0,    0,    0,  201,
474
475       202,  203,  204,  205,  206,  207,  208,  209,  210,  211,
476       212,    0,  129,  129,  129,  129,  129,  121,  129,  129,
477        75,  129,  129,  129,  129,  129,    0,    0,  109,    0,
478       119,  117,  110,    0,    0,    0,  120,  118,    0,    0,
479         0,    0,    0,    0,  213,  129,  129,  129,  129,  129,
480       125,   74,  129,   81,  129,  126,  129,  105,  107,    0,
481       106,  108,    0,    0,    0,    0,    0,    0,    0,  129,
482        63,  129,  129,  129,  129,   76,  129,  111,  112,   97,
483         0,    0,    0,    0,   98,  129,  129,  129,  129,  129,
484       127,   96,    0,  100,    0,  129,  129,  129,   66,  129,
485
486        99,  101,  129,   64,  129,  129,  129,   67,  129,  129,
487        80,   59,    0
488     } ;
489
490 static const YY_CHAR yy_ec[256] =
491     {   0,
492         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
493         4,    4,    5,    1,    1,    1,    1,    1,    1,    1,
494         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
495         1,    2,    1,    6,    7,    8,    9,    1,   10,   11,
496        12,   13,   14,   15,   16,   17,   18,   19,   19,   19,
497        19,   19,   19,   19,   20,   21,   22,   23,    1,   24,
498        25,   26,   27,    1,   28,   29,   30,   31,   32,   33,
499        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
500        44,   45,   46,   47,   48,   49,   50,   51,   52,   44,
501        53,   54,   55,   56,   57,    1,   58,   59,   60,   61,
502
503        62,   63,   64,   65,   66,   67,   68,   69,   70,   71,
504        72,   73,   44,   74,   75,   76,   77,   78,   79,   80,
505        81,   44,   82,   83,   84,    1,    1,    1,    1,    1,
506         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
507         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
508         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
509         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
510         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
511         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
512         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
513
514         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
515         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
516         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
517         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
519         1,    1,    1,    1,    1
520     } ;
521
522 static const YY_CHAR yy_meta[85] =
523     {   0,
524         1,    1,    2,    1,    3,    4,    1,    1,    5,    6,
525         1,    7,    8,    9,    1,   10,    1,   11,   12,   12,
526        12,   12,   13,    1,    1,    1,    1,   14,   14,   14,
527        14,   14,   14,   15,   15,   15,   15,   15,   15,   15,
528        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
529        15,   15,   16,   17,   18,    1,   19,   14,   14,   14,
530        14,   14,   14,   15,   15,   15,   15,   15,   15,   15,
531        15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
532        15,   20,    1,   21
533     } ;
534
535 static const flex_int16_t yy_base[1221] =
536     {   0,
537         0,   84,  167,  250,  171,  184,  135,  142,  220,  231,
538       196,  200,  334,    0, 3627, 3625,  211,  416,  203,  212,
539       189,  225,  266,  417,  500,    0,  207,  208,  234,  421,
540       424,  436,  583,  588,  669,    0,  294,  304,  584,  751,
541       579,  580,  417,  576,  287,  306,  241,  441,  595,  608,
542       169,  238,  440,  754, 3680, 4511,  325, 4511, 3676,    0,
543       446, 4511, 3673,  430,  827, 3661,    0, 4511,  758, 4511,
544      3650, 4511,  453, 3621, 4511, 4511, 3619, 3584,  129,  746,
545       445,  766, 4511, 3604,  198, 3582, 4511, 4511, 4511, 3600,
546         0, 3599,  214,    0, 3506, 3483,    0, 4511, 3532, 4511,
547
548       420,  119, 3481, 3478, 3446,    0, 3526, 4511, 3520, 4511,
549       482, 3520, 3518, 4511, 3455,    0, 4511, 4511, 4511, 3504,
550      4511,  598, 4511, 4511, 4511, 3499, 4511,  754, 4511, 3477,
551       759,  180, 4511, 4511, 3467,    0, 3442,  762, 4511,    0,
552      4511, 3459, 4511, 3406, 3434,    0,  562,  167, 3393, 3370,
553      4511, 4511,  326, 4511,  420,    0, 4511, 3418, 3402, 3366,
554      3342,    0, 4511, 3368, 4511, 3317,  444, 3314, 4511,  471,
555      4511, 3354, 3271, 3337,  572,  189, 3295, 3285, 4511, 3332,
556      4511, 3307, 3303,  585,  594, 4511,  746,  734,  744,  754,
557       763,  770,    0,  755,  748,  763,  818,  789,  240,  822,
558
559       762,  381,  802,  791,  813,  824,  577, 4511, 4511, 3302,
560       871,    0, 4511, 3302, 3250, 3231, 4511, 4511, 4511, 4511,
561      4511, 4511, 4511, 4511, 4511, 4511, 4511,    0, 4511, 3279,
562      4511, 4511, 4511, 3276, 3260, 3259,    0, 3221, 3214,    0,
563      3264, 4511,  835, 4511, 3262,    0,  903, 4511, 3257,  842,
564       817,    0,    0,  910,  914,  918,  922,    0,  814,    0,
565       457, 4511,    0,  943, 4511, 3241, 3141,  483, 4511, 3217,
566      3212, 4511,  826,  556,  903,  930, 4511,  757,    0, 3134,
567      3131, 4511, 3129,  964, 4511, 3190, 3110, 3174, 3161, 4511,
568         0, 4511,  896, 4511,    0, 3172,    0,    0,    0, 4511,
569
570      4511,    0, 4511,  910,  913, 4511, 4511,  602,    0, 3169,
571      4511,  957, 3164, 3161, 3127, 4511,    0, 4511,  976, 4511,
572      1020, 4511, 4511, 4511, 4511,    0, 4511, 3116,    0, 4511,
573         0,  926,  930,  644, 4511,  662,    0, 4511, 4511,    0,
574      4511, 4511, 3071, 3121,  794, 3037, 4511,    0,  934,  932,
575      3117, 4511, 3091, 4511,  938,  939,    0,  940,  738,  956,
576       802, 3059,  876,  978,  933,  933,  939,  948,  964, 1030,
577       938,  958,  976,  968,    0,  996, 4511,  999, 1057, 1068,
578       981, 1079, 1077, 1080, 1074, 1068, 1070, 1120, 3062, 4511,
579      1014,    0, 4511, 4511, 4511,    0, 4511, 4511, 4511, 4511,
580
581         0, 4511, 4511,    0, 1078,    0,    0, 1153, 4511, 3063,
582      1166, 1077, 1076, 1091,    0, 1089,    0, 1018, 4511, 1022,
583      4511, 1025, 4511, 1035, 4511, 1091, 1067, 1138, 1162, 1242,
584      1177, 1308, 1105,    0, 4511, 4511, 2954, 1198, 4511, 4511,
585      1144,    0, 1137,    0,    0, 1161, 1156, 1123, 4511, 1202,
586      1308, 1309, 1310, 1319, 3013, 1312, 1311, 1327, 1320, 1321,
587      1323, 1382, 4511, 1172, 1166, 2589, 2537,    0, 1178, 1169,
588      1169, 1298, 1315, 1324, 1330, 1321, 1330, 1323,    0, 1341,
589      1332, 1348,    0, 1346, 1350, 1348, 1361, 1350, 1367, 2573,
590      1370, 1366, 1380, 1382, 1382, 1385, 1378, 1387, 1391, 1400,
591
592      1393, 1403, 1406, 1414, 1400, 1401, 1404, 1429, 1419, 1424,
593      1428, 1425, 1436, 1435, 1430, 1441, 1442, 1432, 1432, 1450,
594      1209, 1508, 4511, 1215, 1512, 1219, 1461, 1455, 1451,    0,
595      1143,    0, 1461, 1534, 1600, 1636,  204, 2525, 1606, 1681,
596      4511, 4511, 1453, 1463, 1591, 1442, 2524, 1599, 1604, 1600,
597      1607, 1605, 1611, 1608, 1650, 1620, 1606, 1614, 1613, 1654,
598      1663, 1652, 1661, 1666, 1682, 1664, 1693, 1694, 1655, 1674,
599      1662, 1675, 4511, 4511, 1683, 1676, 1677, 1683, 1697, 1692,
600      1731, 1711, 1702, 1718,    0,    0, 1719, 1706, 1716, 1735,
601         0,    0, 2553, 1722, 1732, 2540, 1725, 1722, 1733,    0,
602
603      1727, 1747, 1740, 1739, 1735, 1752, 1739, 1740, 1746,    0,
604      1750, 1763, 1760, 1750, 1752, 1759, 1777, 1762, 1778, 1769,
605      1783, 1778, 2514, 4511, 1224, 1230, 1772, 1783, 1780,    0,
606      1507, 1234, 2364,  732, 2273, 1809, 1845, 1430, 1076, 1585,
607      1797, 2286, 1785, 1807, 4511, 1811, 1814, 1829, 1835, 1821,
608      1808, 1822, 1845, 1859, 1860, 1862, 1868, 1869, 1870, 1825,
609      1888, 1890, 1876, 1891, 1874, 1902, 1894, 1898, 1795, 1891,
610      1882, 1899,    0, 1887,    0, 1892,    0, 2260, 1900, 1891,
611      1909,    0, 1904, 2253, 1902,    0, 1916, 1907, 1918, 2227,
612      1912, 1909, 1924, 2201, 1908, 1918, 1922,    0, 1934, 1925,
613
614      1931, 1947,    0, 1936, 1942, 1941, 1953, 2103, 1957, 1958,
615      1952, 2085, 1950, 1951, 1950, 1969, 1956, 2133, 1515, 1961,
616      1971, 2002, 4511, 2117, 2038, 1981, 1592, 1842, 2025, 1983,
617         0,    0, 1972, 1990, 1999, 1987, 1994, 2008, 2005, 2007,
618      2015, 2023, 2016, 2021, 2017, 2024, 2022, 2026, 2030, 2029,
619      2037, 2035, 2045, 2051, 2054, 2061,    0,    0, 4511, 4511,
620      1922,    0, 2049, 2039, 2050, 2053, 2051, 2051, 2054, 1831,
621      2073, 2064, 2077, 2073, 2081, 2082, 2072, 2085,    0, 2091,
622         0, 2074,    0, 1824,    0, 2091, 2094, 2082,    0, 2116,
623      2088,    0, 2092, 2133,    0, 1728, 2097, 2095, 1714, 1678,
624
625      4511, 2135, 4511, 2096, 4511, 1726, 4511, 1703, 1612, 1601,
626      1514, 1500, 1477, 1377, 1373, 1333, 1274, 1203, 2133, 2128,
627      2148, 2151, 2144, 2150, 2156, 2158, 2161, 2163, 2184, 2167,
628      2164, 2157, 2151, 2159, 2158, 2173,    0, 2165,    0, 2166,
629      2182, 2173, 2179, 2178, 2186,    0, 2185,    0, 2187, 2193,
630         0, 2202,    0,    0,    0, 2204, 2187, 2201, 2224, 2200,
631      2222, 2213, 2219, 2230, 2199, 2227, 2239, 2222, 2225, 1162,
632      1158, 2228, 2278, 4511, 1112, 1109, 1081, 1063, 1057,  984,
633       976,  969,  923,  913,  910,  931,  895,  891,  887,  881,
634       874,  856,  848,  843,  840,  804,  788, 2259, 2248, 2258,
635
636      2265, 2264, 2241,    0, 2254, 2265, 2268, 2279,    0, 2262,
637      2268, 2271, 2266, 2278, 2283, 2289, 2273, 4511, 2280, 2281,
638      2281, 2300, 2283, 2281,    0, 2303, 2307, 2292, 4511, 2302,
639      2304, 2319, 2303, 2307, 2309, 2328, 2309, 2357, 4511, 2362,
640      4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
641      4511,  746,  725,  597,  577,  441,  426,  420,  267,  253,
642       247,  230,  183,  181, 2317, 2338, 2342, 2330, 2336, 2343,
643      2339, 2331, 2334, 2350, 2341, 2345,    0, 2350, 2346, 2344,
644      2349, 2361, 2364, 2367, 2359, 4511, 2357,    0, 2358, 2362,
645      2379, 2383, 2375, 4511, 2388, 2375, 2382, 2377, 2389, 4511,
646
647      4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511,
648      4511,  122, 2399, 2398, 2382, 2391, 2391,    0, 2407, 2408,
649         0, 2397, 2398, 2420, 2417, 2414, 2418, 2426, 4511, 2414,
650      4511, 4511, 4511, 2422, 2429, 2419, 4511, 4511, 2417, 2437,
651      2435, 2425, 2428, 2428, 4511, 2431, 2445, 2445, 2447, 2452,
652         0,    0, 2461,    0, 2444,    0, 2459, 4511, 4511, 2452,
653      4511, 4511, 2454, 2465, 2452, 2467, 2471, 2470, 2476, 2481,
654         0, 2468, 2465, 2465, 2485,    0, 2465, 4511, 4511, 4511,
655      2489, 2491, 2479, 2488, 4511, 2501, 2491, 2498, 2503, 2490,
656         0, 4511, 2497, 4511, 2510, 2500, 2502, 2500,    0, 2514,
657
658      4511, 4511, 2516,    0, 2523, 2508, 2509,    0, 2528, 2531,
659         0,    0, 4511, 2593, 2614, 2635, 2656, 2677, 2698, 2719,
660      2740, 2761, 2782, 2803, 2824, 2845, 2866, 2887, 2908, 2929,
661      2950, 2971, 2992, 3013, 3025, 3044, 3055, 3074, 3095, 3108,
662      3127, 3148, 3169, 3190, 3202, 3221, 3242, 3263, 3280, 3292,
663      3311, 3332, 3353, 3374, 3395, 3408, 2553, 3423, 3444, 3463,
664      3484, 3505, 3517, 3536, 3557, 2569, 3057, 3578, 3590, 3609,
665      3630, 3651, 2558, 3663, 3684, 3705, 3726, 3747, 3768, 3789,
666      3810, 3831, 3843, 3862, 3879, 3891, 3910, 3931, 3952, 3973,
667      3994, 4007, 4022, 4043, 4062, 4083, 4104, 4125, 4146, 4167,
668
669      4179, 4189, 4208, 4229, 4250, 2561, 4262, 4283, 4304, 4325,
670      4346, 4367, 3028, 4379, 4398, 4419, 4432, 4447, 4468, 4489
671     } ;
672
673 static const flex_int16_t yy_def[1221] =
674     {   0,
675      1113, 1113, 1114, 1114, 1115, 1116, 1117, 1117, 1118, 1118,
676      1119, 1119, 1113,   13, 1120, 1120, 1121, 1121, 1122, 1122,
677      1123, 1123, 1124, 1124, 1113,   25, 1125, 1125, 1126, 1126,
678      1127, 1127, 1128, 1128, 1113,   35, 1129, 1129, 1130, 1130,
679      1120, 1120, 1120, 1120, 1131, 1131, 1132, 1132, 1126, 1126,
680      1133, 1133, 1134, 1134, 1113, 1113, 1113, 1113, 1113, 1135,
681      1113, 1113, 1113, 1113, 1136, 1113, 1137, 1113, 1113, 1113,
682      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1138, 1139,
683      1140, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
684      1141, 1113, 1141, 1142, 1113, 1113, 1143, 1113, 1143, 1113,
685
686      1143, 1143, 1113, 1113, 1113, 1144, 1113, 1113, 1113, 1113,
687      1113, 1113, 1113, 1113, 1113, 1145, 1113, 1113, 1113, 1113,
688      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1139, 1113, 1113,
689      1139, 1146, 1113, 1113, 1113, 1147, 1113, 1139, 1113, 1148,
690      1113, 1148, 1113, 1149, 1113, 1150, 1150, 1150, 1113, 1113,
691      1113, 1113, 1151, 1113, 1151, 1152, 1113, 1152, 1113, 1113,
692      1113, 1153, 1113, 1153, 1113, 1113, 1154, 1113, 1113, 1113,
693      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
694      1113, 1113, 1155, 1113, 1113, 1113, 1156, 1156, 1156, 1156,
695      1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1156, 1156,
696
697      1156, 1156, 1156, 1156, 1156, 1156, 1156, 1113, 1113, 1158,
698      1113, 1159, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
699      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1160, 1113, 1160,
700      1113, 1113, 1113, 1113, 1113, 1113, 1161, 1113, 1113, 1162,
701      1162, 1113, 1113, 1113, 1113, 1163, 1113, 1113, 1113, 1113,
702      1113, 1164, 1165, 1113, 1113, 1113, 1113, 1166, 1164, 1167,
703      1168, 1113, 1169, 1113, 1113, 1113, 1113, 1170, 1113, 1113,
704      1113, 1113, 1113, 1171, 1171, 1172, 1113, 1113, 1173, 1113,
705      1113, 1113, 1174, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
706      1175, 1113, 1113, 1113, 1176, 1113, 1177, 1178, 1179, 1113,
707
708      1113, 1180, 1113, 1180, 1180, 1113, 1113, 1181, 1182, 1113,
709      1113, 1113, 1113, 1113, 1113, 1113, 1183, 1113, 1113, 1113,
710      1113, 1113, 1113, 1113, 1113, 1184, 1113, 1113, 1185, 1113,
711      1186, 1186, 1186, 1187, 1113, 1187, 1188, 1113, 1113, 1189,
712      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1190, 1113, 1113,
713      1113, 1113, 1191, 1113, 1113, 1113, 1192, 1192, 1192, 1192,
714      1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192,
715      1192, 1192, 1192, 1192, 1192, 1192, 1113, 1192, 1192, 1192,
716      1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1113,
717      1113, 1194, 1113, 1113, 1113, 1195, 1113, 1113, 1113, 1113,
718
719      1196, 1113, 1113, 1197, 1113, 1198, 1199, 1200, 1113, 1113,
720      1113, 1113, 1113, 1113, 1201, 1198, 1202, 1203, 1113, 1203,
721      1113, 1204, 1113, 1204, 1113, 1113, 1205, 1205, 1205, 1113,
722      1205, 1205, 1113, 1206, 1113, 1113, 1207, 1113, 1113, 1113,
723      1113, 1208, 1113, 1209, 1210, 1211, 1211, 1212, 1113, 1212,
724      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
725      1213, 1213, 1113, 1214, 1214, 1113, 1215, 1216, 1113, 1113,
726      1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
727      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
728      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
729
730      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
731      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113,
732      1200, 1200, 1113, 1200, 1200, 1113, 1113, 1113, 1113, 1201,
733      1218, 1202, 1113, 1113, 1205,  432,  430,  430, 1205,  432,
734      1113, 1113, 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213,
735      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
736      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
737      1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217,
738      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
739      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
740
741      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
742      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
743      1113, 1113, 1113, 1113, 1200, 1200, 1113, 1113, 1113, 1218,
744      1218, 1218, 1113,  534,  534, 1205,  432, 1205, 1205, 1205,
745      1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213, 1213, 1213,
746      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
747      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214,
748      1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
749      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
750      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
751
752      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
753      1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1219, 1113,
754      1113, 1218, 1113, 1218, 1113, 1205, 1205, 1205, 1113, 1113,
755      1211, 1211, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
756      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
757      1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1113, 1113,
758      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
759      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
760      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
761      1217, 1217, 1217, 1113, 1217, 1113, 1113, 1113, 1113, 1219,
762
763      1113, 1219, 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213,
764      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
765      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213,
766      1213, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
767      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
768      1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
769      1113, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
770      1113, 1113, 1220, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
771      1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213, 1213, 1213,
772      1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1217, 1217,
773
774      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
775      1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113,
776      1113, 1113, 1113, 1113, 1217, 1217, 1113, 1113, 1113, 1113,
777      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1220, 1113, 1220,
778      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
779      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
780      1113, 1113, 1113, 1213, 1217, 1217, 1217, 1217, 1217, 1217,
781      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113,
782      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217, 1113, 1113,
783      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
784
785      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
786      1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
787      1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113,
788      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
789      1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
790      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
791      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217,
792      1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113,
793      1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
794      1217, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217,
795
796      1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217,
797      1217, 1217,    0, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
798      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
799      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
800      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
801      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
802      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
803      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
804      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
805      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
806
807      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
808      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113
809     } ;
810
811 static const flex_int16_t yy_nxt[4596] =
812     {   0,
813        56,   57,   58,   56,   59,   56,   56,   56,   56,   56,
814        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
815        56,   56,   56,   56,   56,   56,   56,   60,   60,   60,
816        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
817        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
818        60,   60,   56,   56,   56,   56,   60,   60,   60,   60,
819        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
820        60,   60,   60,   60,   60,   60,   60,   60,   60,   60,
821        60,   56,   56,   56,   56,   61,   62,   56,   63,   56,
822        64,   56,   65,   56,   56,   56,   56,   56,   56,   56,
823
824        56,   66,   56,   56,   56,   56,   56,   56,   56,   56,
825        56,   67,   67,   67,   67,   67,   67,   67,   67,   67,
826        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
827        67,   67,   67,   67,   67,   67,   56,   56,   56,   56,
828        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
829        67,   67,   67,   67,   67,   67,   67,   67,   67,   67,
830        67,   67,   67,   67,   67,   56,   56,   56,   69,   70,
831       305,   71,   72,   89,   73,   90, 1045,   74,   75,   76,
832        76,  275,  276,   76,   77,   92,   89,   95,   90,   96,
833        78,   56,   93,   76,   95,  323,   96,  107,  108,  305,
834
835       109,  107,  108, 1012,  109,  125,  291,  126,  127,  154,
836       154,  155,  155,  119,  125,  120,  126,  127,  333,   79,
837        80,  238,   98,  239,   99,  121,  638,   56,  100,  122,
838       122,  122,  122,   98,  323,   99,  157, 1011,  158,  105,
839       350,  130,  131,  233,  132,  234,  159,  333,   81,   76,
840        76,   82,   83,  235,   84,   72,  128,   73,   85,  427,
841        74,   75,   76,   76,  101,  128,   76,   77,  134,  350,
842       135,  102,  103,   86,  104,  101,   76,  130,  131,  292,
843       132,  136,  102,  103, 1010,  104,  160,  378,  161,  229,
844       238,  230,  239,  101,  123,  297,  209,  298,  231,  210,
845
846       102, 1009,   79,   80,  101,   87,  209, 1008,  229,  210,
847       230,  102,  211,  211,  211,  211,  378,  231,  137,  138,
848       139, 1007,  211,  211,  211,  211,  243,  244,  335,  245,
849       336,   81,   76,   76,  110,  111,  112,  110,  113,  110,
850       110,  110,  110,  110,  110,  110,  114,  110,  114,  110,
851       110,  110,  110,  110,  110,  110,  110,  110,  110,  115,
852       110,  116,  116,  116,  116,  116,  116,  116,  116,  116,
853       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
854       116,  116,  116,  116,  116,  116,  110,  110,  110,  110,
855       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
856
857       116,  116,  116,  116,  116,  116,  116,  116,  116,  116,
858       116,  116,  116,  116,  116,  110,  110,  110,  119,  134,
859       120,  135,  335,  157,  336,  158,  163,  383,  164,  165,
860       121,  250,  136,  159,  122,  122,  122,  122,  163,  224,
861       164,  165,  163,  233,  241,  234,  343,  247,  248,  242,
862       249,  304,  225,  235,  269,  269,  383,  270,  280,  419,
863       281,  420,  226,  282,  282,  282,  282,  227,  251,  137,
864       138,  139,  345,  160, 1006,  161,  166,  167,  168,  346,
865      1005,  304,  225,  312,  313,  423,  314,  424,  166,  167,
866       168,  226,  166,  167,  168, 1004,  227,  344,  251,  123,
867
868       140,  140,  141,  140,  142,  143,  140,  140,  140,  144,
869       140,  140,  140,  140,  140,  140,  140,  145,  140,  140,
870       140,  140,  140,  140,  140,  140,  140,  146,  146,  146,
871       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
872       146,  146,  146,  146,  147,  146,  146,  146,  146,  146,
873       146,  148,  149,  140,  150,  140,  146,  146,  146,  146,
874       146,  146,  146,  146,  146,  146,  146,  146,  146,  146,
875       146,  146,  146,  147,  146,  146,  146,  146,  146,  146,
876       148,  151,  140,  152,  170,  171,  213,  172,  214,  170,
877       171,  173,  172,  332,  219,  219,  173,  157,  224,  158,
878
879       174,  220,  220,  349,  449,  174,  450,  236,  428,  429,
880       157,  225,  158,  355,  221,  221,  319,  319,  319,  319,
881       236,  226,  356,  332,  222,  222,  227,  175,  388,  223,
882       223, 1003,  175,  349,  176,  177,  215,  178,  216,  176,
883       177,  225,  178,  355,  221,  221,  335,  160,  336,  161,
884       226, 1002,  356,  222,  222,  227,  175,  388,  223,  223,
885       160,  175,  161,  176,  335,  217,  336,  218,  176,  179,
886       180,  181,  179,  182,  183,  179,  179,  179,  179,  179,
887       179,  179,  179,  179,  179,  179,  179,  179,  184,  185,
888       179,  179,  179,  186,  179,  179,  187,  188,  189,  190,
889
890       191,  192,  193,  194,  195,  193,  193,  196,  197,  198,
891       199,  200,  193,  201,  202,  203,  204,  205,  206,  193,
892       207,  179,  179,  179,  179,  179,  187,  188,  189,  190,
893       191,  192,  193,  194,  195,  193,  193,  196,  197,  198,
894       199,  200,  201,  202,  203,  204,  205,  206,  193,  207,
895       179,  179,  179,  213,  726,  214,  163,  362,  241,  264,
896       265,  360,  266,  242,  278,  278,  267,  284,  285,  361,
897       286,  363,  278,  278,  287,  433,  433,  278,  278, 1001,
898       278,  278,  475,  288,  358,  364,  369,  427,  370,  289,
899       359,  360,  365,  382,  371,  345,  279,  367,  372,  361,
900
901      1000,  363,  346,  215,  279,  216,  166,  167,  168,  279,
902       963,  475,  279,  366,  358,  364,  369,  368,  370,  359,
903       376,  290,  365,  382,  371,  279,  962,  367,  372,  384,
904       377,  385,  217,  279,  218,  253,  243,  244,  279,  245,
905       268,  279,  366,  250,  386,  373,  368,  478,  268,  374,
906       376,  387,  405,  379,  254,  416,  255,  426,  255,  384,
907       377,  385,  961,  380,  255,  960,  381,  255,  256,  257,
908       959,  255,  258,  259,  386,  373,  478,  260,  958,  374,
909       251,  387,  405,  379,  254,  416,  255,  426,  255,  391,
910       391,  391,  391,  380,  255,  381,  957,  255,  256,  257,
911
912       255,  258,  259,  956,  247,  248,  260,  249,  261,  955,
913       251,  408,  409,  954,  410,  408,  409,  953,  410,  408,
914       409,  480,  410,  408,  409,  430,  410,  443,  411,  411,
915       411,  411,  411,  411,  411,  411,  411,  411,  411,  411,
916       411,  411,  411,  411,  264,  265,  446,  266,  431,  431,
917       480,  267,  447,  952,  412,  428,  429,  443,  312,  313,
918       413,  314,  464,  414,  951,  284,  285,  950,  286,  465,
919       469,  470,  287,  471,  472,  473,  446,  949,  483,  484,
920       432,  288,  447,  412,  485,  476,  486,  289,  490,  474,
921       413,  487,  464,  414,  319,  319,  319,  319,  491,  465,
922
923       469,  470,  477,  471,  472,  473,  481,  483,  484,  432,
924       482,  492,  499,  485,  493,  476,  486,  490,  474,  290,
925       419,  487,  420,  948,  419,  268,  420,  423,  491,  424,
926       947,  477,  391,  391,  391,  391,  481,  423,  946,  424,
927       482,  492,  499,  493,  494,  495,  268,  451,  452,  453,
928       454,  455,  455,  456,  455,  455,  455,  455,  457,  455,
929       455,  455,  458,  455,  455,  459,  455,  460,  455,  455,
930       461,  455,  488,  494,  495,  462,  489,  451,  452,  453,
931       454,  455,  455,  456,  455,  455,  455,  455,  457,  455,
932       455,  455,  458,  455,  459,  455,  460,  455,  455,  461,
933
934       455,  496,  488,  497,  503,  489,  500,  504,  505,  506,
935       501,  945,  508,  498,  509,  502,  507,  944,  520,  428,
936       429,  527,  528,  277,  277,  449,  529,  450,  428,  429,
937       496,  531,  533,  497,  503,  943,  500,  504,  505,  506,
938       501,  508,  498,  509,  631,  502,  507,  510,  520,  511,
939       527,  528,  512,  513,  522,  523,  529,  524,  514,  515,
940       534,  531,  533,  942,  516,  517,  941,  526,  409,  518,
941       410,  525,  525,  525,  525,  543,  519,  510,  544,  511,
942       535,  535,  512,  513,  411,  411,  411,  411,  514,  515,
943       428,  429,  545,  516,  517,  539,  539,  546,  518,  542,
944
945       542,  542,  542,  569,  449,  543,  450,  570,  544,  571,
946       572,  624,  536,  625,  936,  573,  427,  523,  935,  625,
947       526,  409,  545,  410,  632,  885,  624,  546,  625,  428,
948       429,  626,  523,  569,  524,  722,  723,  570,  724,  571,
949       572,  536,  427,  427,  573,  427,  427,  427,  427,  427,
950       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
951       427,  427,  427,  427,  427,  427,  427,  427,  427,  537,
952       537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
953       537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
954       537,  537,  537,  537,  428,  429,  884,  538,  427,  537,
955
956       537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
957       537,  537,  537,  537,  537,  537,  537,  537,  537,  537,
958       537,  537,  537,  427,  427,  427,  540,  540,  540,  540,
959       547,  547,  547,  547,  547,  540,  540,  540,  540,  540,
960       540,  547,  547,  547,  574,  547,  548,  549,  575,  547,
961       550,  576,  553,  558,  551,  883,  552,  577,  578,  579,
962       428,  429,  556,  557,  580,  540,  540,  540,  540,  540,
963       540,  554,  581,  574,  555,  583,  548,  549,  575,  582,
964       550,  576,  553,  558,  551,  552,  586,  577,  578,  579,
965       584,  587,  556,  557,  580,  882,  585,  588,  589,  881,
966
967       554,  591,  581,  555, 1113,  583,  592,  593,  582,  559,
968       560,  561,  562,  594,  595,  563,  586,  596,  597,  584,
969       564,  587,  598,  599,  565,  585,  588,  566,  589,  567,
970       600,  591,  568,  601,  602,  603,  592,  593,  606,  559,
971       560,  561,  562,  594,  595,  563,  607,  596,  597,  604,
972       564,  608,  598,  599,  565,  605,  566,  609,  567,  610,
973       600,  568,  611,  601,  602,  603,  612,  614,  606,  613,
974       615,  616,  617,  618,  620,  607,  619,  621,  622,  604,
975       608,  623,  428,  429,  274,  605,  644,  609,  627,  610,
976       628,  629,  611,  633,  641,  642,  612,  614,  613,  880,
977
978       615,  616,  617,  618,  620,  619,  621,  622,  631,  522,
979       523,  623,  524,  626,  523,  644,  524,  801,  627,  802,
980       628,  629,  879,  633,  641,  642,  525,  525,  525,  525,
981       525,  525,  525,  525,  427,  427,  878,  427,  427,  427,
982       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
983       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
984       427,  634,  634,  634,  634,  634,  634,  634,  634,  634,
985       634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
986       634,  634,  634,  634,  634,  634,  428,  429,  632,  635,
987       427,  634,  634,  634,  634,  634,  634,  634,  634,  634,
988
989       634,  634,  634,  634,  634,  634,  634,  634,  634,  634,
990       634,  634,  634,  634,  634,  427,  427,  427,  636,  636,
991       643,  547,  547,  877,  639,  639,  547,  547,  547,  547,
992       547,  648,  651,  547,  876,  547,  547,  428,  429,  646,
993       650,  647,  547,  653,  428,  429,  649,  655,  656,  657,
994       643,  658,  428,  429,  637,  637,  637,  637,  428,  429,
995       652,  648,  651,  637,  637,  637,  637,  637,  637,  646,
996       650,  647,  547,  653,  547,  649,  547,  655,  656,  657,
997       801,  658,  802,  547,  669,  547,  547,  661,  547,  652,
998       654,  671,  659,  637,  637,  637,  637,  637,  637,  640,
999
1000       640,  640,  640,  660,  547,  662,  666,  663,  640,  640,
1001       640,  640,  640,  640,  669,  547,  547,  661,  670,  672,
1002       654,  671,  659,  673,  668,  875,  664,  674,  675,  665,
1003       676,  677,  678,  660,  662,  667,  666,  663,  640,  640,
1004       640,  640,  640,  640,  682,  684,  679,  670,  672,  683,
1005       685,  874,  686,  673,  668,  664,  674,  675,  665,  676,
1006       687,  677,  678,  680,  688,  667,  690,  691,  695,  681,
1007       872,  693,  694,  696,  682,  684,  697,  698,  683,  699,
1008       685,  686,  700,  701,  869,  702,  703,  704,  705,  687,
1009       706,  707,  709,  680,  688,  690,  708,  691,  695,  681,
1010
1011       693,  694,  696,  710,  711,  713,  697,  698,  712,  699,
1012       714,  700,  716,  701,  702,  703,  715,  704,  705,  717,
1013       706,  707,  709,  719,  720,  708,  721,  727,  727,  729,
1014       547,  731,  710,  547,  711,  713,  547,  712,  732,  852,
1015       714,  757,  716,  547,  547,  715,  841,  547,  734,  717,
1016       738,  547,  719,  739,  720,  721,  737,  547,  733,  729,
1017       731,  428,  429,  728,  728,  728,  728,  547,  732,  735,
1018       757,  748,  728,  728,  728,  728,  728,  728,  734,  736,
1019       738,  547,  547,  739,  547,  740,  737,  733,  741,  742,
1020       547,  547,  547,  743,  428,  429,  547,  747,  547,  735,
1021
1022       748,  744,  728,  728,  728,  728,  728,  728,  736,  745,
1023       547,  746,  547,  547,  753,  740,  547,  750,  741,  742,
1024       547,  749,  758,  743,  547,  751,  752,  747,  759,  754,
1025       760,  744,  761,  756,  762,  764,  755,  832,  766,  745,
1026       767,  746,  768,  771,  753,  765,  770,  750,  772,  773,
1027       775,  749,  758,  776,  751,  777,  752,  759,  779,  754,
1028       760,  761,  780,  756,  762,  764,  755,  766,  781,  782,
1029       767,  783,  768,  771,  765,  770,  784,  785,  772,  773,
1030       775,  786,  776,  787,  789,  777,  788,  779,  791,  792,
1031       793,  780,  795,  796,  547,  797,  798,  781,  799,  782,
1032
1033       783,  803,  804,  722,  723,  784,  724,  785,  807,  547,
1034       786,  808,  547,  787,  789,  788,  547,  809,  791,  792,
1035       793,  547,  795,  796,  797,  811,  798,  547,  799,  547,
1036       547,  803,  804,  428,  429,  427,  810,  547,  547,  547,
1037       812,  808,  813,  547,  547,  547,  547,  809,  547,  814,
1038       806,  547,  547,  815,  817,  811,  819,  547,  821,  547,
1039       818,  816,  822,  805,  820,  824,  810,  547,  826,  812,
1040       823,  825,  813,  547,  828,  827,  547,  833,  814,  835,
1041       829,  836,  815,  547,  817,  830,  819,  834,  821,  818,
1042       816,  837,  822,  820,  831,  824,  838,  839,  826,  823,
1043
1044       840,  825,  842,  843,  828,  827,  844,  833,  845,  835,
1045       829,  836,  846,  847,  849,  830,  848,  834,  850,  723,
1046       851,  837,  853,  854,  831,  838,  839,  855,  862,  840,
1047       863,  870,  842,  843,  718,  871,  844,  801,  845,  802,
1048       873,  794,  846,  847,  849,  848,  856,  857,  850,  851,
1049       547,  858,  853,  854,  859,  547,  855,  860,  862,  790,
1050       863,  870,  861,  864,  865,  871,  547,  887,  866,  873,
1051       547,  867,  547,  547,  868,  888,  856,  857,  547,  886,
1052       547,  858,  890,  547,  859,  547,  547,  860,  889,  547,
1053       892,  861,  899,  864,  865,  900,  891,  887,  866,  898,
1054
1055       901,  867,  893,  902,  868,  888,  547,  894,  886,  895,
1056       904,  897,  890,  903,  906,  896,  778,  905,  889,  907,
1057       892,  908,  899,  909,  900,  891,  910,  911,  912,  898,
1058       901,  893,  902,  913,  914,  916,  894,  917,  895,  904,
1059       897,  918,  774,  903,  906,  896,  905,  923,  907,  928,
1060       915,  908,  909,  924,  925,  919,  910,  911,  912,  920,
1061       926,  927,  921,  913,  914,  916,  917,  929,  769,  933,
1062       934,  918,  922,  937,  930,  763,  923,  931,  928,  915,
1063       939,  547,  940,  924,  925,  919,  969,  932,  965,  920,
1064       926,  927,  921,  966,  967,  968,  970,  929,  933,  934,
1065
1066       971,  922,  937,  972,  930,  964,  973,  931,  974,  975,
1067       976,  730,  977,  978,  979,  969,  932,  980,  965,  981,
1068       982,  983,  984,  966,  967,  968,  970,  985,  427,  986,
1069       971,  987,  988,  972,  964,  989,  973,  974,  990,  975,
1070       976,  977,  991,  978,  979,  992,  993,  980,  981,  994,
1071       982,  983,  984,  995,  996,  999,  997,  985,  986,  939,
1072       987,  940,  988, 1013,  939,  989,  940,  990, 1014, 1015,
1073      1016, 1017,  991,  998, 1018,  992,  993, 1019,  994, 1020,
1074      1021, 1022,  995,  996,  999, 1023,  997, 1024, 1025,  725,
1075      1026, 1027, 1013, 1028, 1029, 1030, 1031, 1032, 1014, 1015,
1076
1077      1016, 1017,  998, 1033, 1018, 1034, 1035, 1019, 1020, 1021,
1078      1036, 1022, 1037, 1038, 1023, 1039, 1044, 1024, 1025, 1026,
1079      1027, 1040, 1028, 1043, 1029, 1030, 1031, 1032, 1048, 1041,
1080      1046, 1047, 1033, 1042, 1034, 1035, 1049, 1050, 1051, 1052,
1081      1036, 1053, 1037, 1038, 1054, 1039, 1044, 1055, 1056, 1057,
1082      1040, 1058, 1043, 1059, 1060, 1061, 1062, 1048, 1041, 1063,
1083      1046, 1047, 1042, 1064, 1065, 1049, 1050, 1066, 1051, 1052,
1084      1053, 1067, 1068, 1054, 1069, 1070, 1071, 1055, 1056, 1057,
1085      1072, 1058, 1073, 1059, 1060, 1061, 1062, 1074, 1075, 1063,
1086      1076, 1077, 1064, 1078, 1065, 1079, 1080, 1066, 1081, 1082,
1087
1088      1067, 1068, 1083, 1069, 1070, 1084, 1071, 1085, 1086, 1087,
1089      1072, 1088, 1073, 1089, 1090,  718, 1091, 1074, 1075, 1076,
1090      1092, 1077, 1093, 1078, 1094, 1079, 1080, 1081, 1095, 1082,
1091      1096, 1097, 1083, 1098, 1099, 1084, 1100, 1085, 1086, 1087,
1092      1088, 1101, 1089, 1102, 1090, 1091, 1103, 1104, 1105, 1106,
1093      1092, 1107, 1093, 1094, 1108,  692, 1109, 1110, 1095, 1111,
1094      1096, 1097, 1112, 1098, 1099, 1100,  375,  375,  689,  434,
1095      1101,  434,  541, 1102,  541, 1103, 1104, 1105,  645, 1106,
1096       427, 1107,  415,  415, 1108, 1109, 1110,  415,  590, 1111,
1097       344,  343, 1112,   68,   68,   68,   68,   68,   68,   68,
1098
1099        68,   68,   68,   68,   68,   68,   68,   68,   68,   68,
1100        68,   68,   68,   68,   88,   88,   88,   88,   88,   88,
1101        88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
1102        88,   88,   88,   88,   88,   91,   91,   91,   91,   91,
1103        91,   91,   91,   91,   91,   91,   91,   91,   91,   91,
1104        91,   91,   91,   91,   91,   91,   94,   94,   94,   94,
1105        94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
1106        94,   94,   94,   94,   94,   94,   94,   97,   97,   97,
1107        97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
1108        97,   97,   97,   97,   97,   97,   97,   97,  106,  106,
1109
1110       106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
1111       106,  106,  106,  106,  106,  106,  106,  106,  106,   56,
1112        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1113        56,   56,   56,   56,   56,   56,   56,   56,   56,   56,
1114       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
1115       118,  118,  118,  118,  118,  118,  118,  118,  118,  118,
1116       118,  124,  124,  124,  124,  124,  124,  124,  124,  124,
1117       124,  124,  124,  124,  124,  124,  124,  124,  124,  124,
1118       124,  124,  129,  129,  129,  129,  129,  129,  129,  129,
1119       129,  129,  129,  129,  129,  129,  129,  129,  129,  129,
1120
1121       129,  129,  129,  133,  133,  133,  133,  133,  133,  133,
1122       133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
1123       133,  133,  133,  133,  153,  153,  153,  153,  153,  153,
1124       153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
1125       153,  153,  153,  153,  153,  156,  156,  156,  156,  156,
1126       156,  156,  156,  156,  156,  156,  156,  156,  156,  156,
1127       156,  156,  156,  156,  156,  156,  162,  162,  162,  162,
1128       162,  162,  162,  162,  162,  162,  162,  162,  162,  162,
1129       162,  162,  162,  162,  162,  162,  162,  169,  169,  169,
1130       169,  169,  169,  169,  169,  169,  169,  169,  169,  169,
1131
1132       169,  169,  169,  169,  169,  169,  169,  169,  208,  208,
1133       208,  208,  208,  208,  208,  208,  208,  208,  208,  208,
1134       208,  208,  208,  208,  208,  208,  208,  208,  208,  212,
1135       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
1136       212,  212,  212,  212,  212,  212,  212,  212,  212,  212,
1137       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
1138       228,  228,  228,  228,  228,  228,  228,  228,  228,  228,
1139       228,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1140       232,  232,  232,  232,  232,  232,  232,  232,  232,  232,
1141       232,  232,  237,  237,  237,  237,  237,  237,  237,  237,
1142
1143       237,  237,  237,  237,  237,  237,  237,  237,  237,  237,
1144       237,  237,  237,  240,  240,  240,  240,  240,  240,  240,
1145       240,  240,  240,  240,  240,  240,  240,  240,  240,  240,
1146       240,  240,  240,  240,  246,  547,  246,  438,  246,  246,
1147       455,  455,  455,  246,  252,  252,  252,  252,  252,  252,
1148       252,  252,  252,  252,  252,  252,  252,  252,  252,  252,
1149       252,  252,  252,  252,  263,  409,  263,  390,  263,  263,
1150       417,  417,  479,  263,  274,  417,  274,  274,  274,  274,
1151       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
1152       274,  274,  274,  274,  274,  277,  354,  277,  277,  277,
1153
1154       277,  277,  277,  277,  277,  277,  277,  277,  277,  277,
1155       277,  277,  277,  277,  277,  277,  283,  283,  351,  283,
1156       348,  283,  283,  467,  466,  463,  283,  295,  315,  295,
1157       295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
1158       295,  295,  295,  295,  295,  295,  295,  295,  299,  299,
1159       299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
1160       299,  299,  299,  313,  299,  315,  299,  299,  299,  302,
1161       310,  302,  302,  296,  302,  302,  302,  302,  302,  302,
1162       302,  302,  302,  302,  441,  302,  440,  302,  302,  302,
1163       309,  439,  285,  309,  309,  309,  309,  309,  309,  309,
1164
1165       309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
1166       309,  317,  438,  317,  436,  317,  317,  435,  425,  269,
1167       317,  322,  421,  322,  322,  322,  322,  322,  322,  322,
1168       322,  322,  322,  322,  322,  322,  322,  322,  322,  322,
1169       322,  322,  325,  265,  325,  325,  325,  325,  325,  325,
1170       325,  325,  325,  325,  325,  325,  325,  325,  325,  248,
1171       325,  325,  325,  326,  244,  326,  341,  326,  403,  326,
1172       326,  326,  326,  402,  326,  326,  400,  399,  398,  326,
1173       328,  397,  328,  328,  328,  395,  328,  328,  328,  328,
1174       328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
1175
1176       328,  331,  394,  331,  393,  331,  331,  390,  354,  352,
1177       331,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1178       334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1179       334,  334,  337,  351,  337,  337,  337,  337,  337,  307,
1180       337,  337,  337,  337,  337,  337,  337,  306,  337,  330,
1181       337,  337,  337,  340,  348,  340,  347,  340,  340,  340,
1182       340,  340,  340,  340,  340,  340,  340,  340,  307,  306,
1183       341,  340,  340,  340,  342,  342,  342,  342,  342,  342,
1184       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1185       342,  342,  342,  342,  342,  353,  307,  353,  353,  353,
1186
1187       353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
1188       353,  353,  353,  353,  353,  353,  357,  357,  306,  339,
1189       338,  357,  357,  389,  307,  389,  389,  389,  389,  389,
1190       389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
1191       389,  389,  389,  389,  392,  306,  330,  392,  392,  392,
1192       392,  392,  392,  392,  392,  392,  392,  392,  392,  329,
1193       392,  327,  392,  396,  321,  396,  396,  396,  396,  324,
1194       396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
1195       396,  396,  396,  396,  401,  401,  401,  401,  401,  401,
1196       401,  401,  401,  401,  401,  401,  401,  401,  401,  321,
1197
1198       401,  320,  401,  401,  401,  404,  318,  404,  404,  404,
1199       316,  404,  404,  404,  404,  404,  404,  404,  404,  404,
1200       313,  315,  311,  404,  404,  404,  246,  310,  246,  308,
1201       246,  246,  307,  306,  303,  246,  406,  301,  406,  406,
1202       406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
1203       406,  406,  406,  406,  406,  406,  406,  407,  300,  407,
1204       407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
1205       407,  407,  407,  407,  407,  407,  407,  407,  418,  418,
1206       418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
1207       418,  418,  418,  418,  418,  418,  418,  418,  418,  263,
1208
1209       296,  263,  294,  263,  263,  293,  285,  273,  263,  422,
1210       422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1211       422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1212       427,  272,  427,  427,  427,  427,  427,  427,  427,  427,
1213       427,  427,  427,  427,  427,  427,  427,  271,  427,  427,
1214       427,  274,  265,  274,  274,  274,  274,  274,  274,  274,
1215       274,  274,  274,  274,  274,  274,  274,  274,  274,  274,
1216       274,  274,  437,  262,  437,  248,  437,  437,  244, 1113,
1217       117,  437,  117,  437,  442, 1113,  442,  442,  442,  442,
1218       442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
1219
1220       442,  442,  442,  442,  442,  295, 1113,  295,  295,  295,
1221       295,  295,  295,  295,  295,  295,  295,  295,  295,  295,
1222       295,  295,  295,  295,  295,  295,  444, 1113,  444,  444,
1223       444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
1224       444,  444,  444,  444,  444,  444,  444,  445, 1113,  445,
1225       445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1226       445,  445,  445,  445,  445,  445,  445,  445,  299,  299,
1227       299,  299,  299,  299,  299,  299,  299,  299,  299,  299,
1228       299,  299,  299, 1113,  299, 1113,  299,  299,  299,  302,
1229      1113,  302,  302, 1113,  302,  302,  302,  302,  302,  302,
1230
1231       302,  302,  302,  302, 1113,  302, 1113,  302,  302,  302,
1232       448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
1233       448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
1234       448,  309, 1113, 1113,  309,  309,  309,  309,  309,  309,
1235       309,  309,  309,  309,  309,  309,  309,  309,  309,  309,
1236       309,  309,  317, 1113,  317, 1113,  317,  317, 1113, 1113,
1237      1113,  317,  326, 1113,  326, 1113,  326, 1113,  326,  326,
1238       326,  326, 1113,  326,  326, 1113, 1113, 1113,  326,  328,
1239      1113,  328,  328,  328,  328,  328,  328,  328,  328,  328,
1240       328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
1241
1242       331, 1113,  331, 1113,  331,  331, 1113, 1113, 1113,  331,
1243       334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1244       334,  334,  334,  334,  334,  334,  334,  334,  334,  334,
1245       334,  337, 1113,  337,  337,  337,  337,  337, 1113,  337,
1246       337,  337,  337,  337,  337,  337, 1113,  337, 1113,  337,
1247       337,  337,  340, 1113,  340, 1113,  340,  340,  340,  340,
1248       340,  340,  340,  340,  340,  340,  340, 1113, 1113, 1113,
1249       340,  340,  340,  468, 1113,  468,  468,  468,  468,  468,
1250       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1251       468,  468,  468,  468,  353, 1113,  353,  353,  353,  353,
1252
1253       353,  353,  353,  353,  353,  353,  353,  353,  353,  353,
1254       353,  353,  353,  353,  353,  357,  357, 1113, 1113, 1113,
1255       357,  357,  389, 1113,  389,  389,  389,  389,  389,  389,
1256       389,  389,  389,  389,  389,  389,  389,  389,  389,  389,
1257       389,  389,  389,  392, 1113, 1113,  392,  392,  392,  392,
1258       392,  392,  392,  392,  392,  392,  392,  392, 1113,  392,
1259      1113,  392,  396, 1113,  396,  396,  396,  396, 1113,  396,
1260       396,  396,  396,  396,  396,  396,  396,  396,  396,  396,
1261       396,  396,  396,  401,  401,  401,  401,  401,  401,  401,
1262       401,  401,  401,  401,  401,  401,  401,  401, 1113,  401,
1263
1264      1113,  401,  401,  401,  404, 1113,  404,  404,  404, 1113,
1265       404,  404,  404,  404,  404,  404,  404,  404,  404, 1113,
1266      1113, 1113,  404,  404,  404,  406, 1113,  406,  406,  406,
1267       406,  406,  406,  406,  406,  406,  406,  406,  406,  406,
1268       406,  406,  406,  406,  406,  406,  407, 1113,  407,  407,
1269       407,  407,  407,  407,  407,  407,  407,  407,  407,  407,
1270       407,  407,  407,  407,  407,  407,  407,  521,  521,  521,
1271       521,  521,  521,  521,  521,  521,  521,  521,  521,  521,
1272       521,  521,  521,  521,  521,  521,  521,  521,  530, 1113,
1273       530, 1113,  530,  530, 1113, 1113, 1113,  530,  532, 1113,
1274
1275       532, 1113,  532,  532, 1113, 1113, 1113,  532,  418,  418,
1276       418,  418,  418,  418,  418,  418,  418,  418,  418,  418,
1277       418,  418,  418,  418,  418,  418,  418,  418,  418,  422,
1278       422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1279       422,  422,  422,  422,  422,  422,  422,  422,  422,  422,
1280       427, 1113,  427,  427,  427,  427,  427,  427,  427,  427,
1281       427,  427,  427,  427,  427,  427,  427, 1113,  427,  427,
1282       427,  437, 1113,  437, 1113,  437,  437, 1113, 1113, 1113,
1283       437, 1113,  437,  442, 1113,  442,  442,  442,  442,  442,
1284       442,  442,  442,  442,  442,  442,  442,  442,  442,  442,
1285
1286       442,  442,  442,  442,  444, 1113,  444,  444,  444,  444,
1287       444,  444,  444,  444,  444,  444,  444,  444,  444,  444,
1288       444,  444,  444,  444,  444,  445, 1113,  445,  445,  445,
1289       445,  445,  445,  445,  445,  445,  445,  445,  445,  445,
1290       445,  445,  445,  445,  445,  445,  302, 1113,  302,  302,
1291      1113,  302,  302,  302,  302,  302,  302,  302,  302,  302,
1292       302, 1113,  302, 1113,  302,  302,  302,  448,  448,  448,
1293       448,  448,  448,  448,  448,  448,  448,  448,  448,  448,
1294       448,  448,  448,  448,  448,  448,  448,  448,  331, 1113,
1295       331, 1113,  331,  331, 1113, 1113, 1113,  331,  342, 1113,
1296
1297       342,  342,  342,  342,  342,  342,  342,  342,  342,  342,
1298       342,  342,  342,  342,  342,  342,  342,  342,  342,  468,
1299      1113,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1300       468,  468,  468,  468,  468,  468,  468,  468,  468,  468,
1301       357,  357, 1113, 1113, 1113,  357,  357,  630, 1113,  630,
1302       630,  630,  630,  630,  630,  630,  630,  630,  630,  630,
1303       630,  630,  630,  630,  630,  630,  630,  630,  800,  800,
1304       800,  800,  800,  800,  800,  800,  800,  800,  800,  800,
1305       800,  800,  800,  800,  800,  800,  800,  800,  800,  938,
1306       938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
1307
1308       938,  938,  938,  938,  938,  938,  938,  938,  938,  938,
1309        55, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1310      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1311      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1312      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1313      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1314      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1315      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1316      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1317      1113, 1113, 1113, 1113, 1113
1318
1319     } ;
1320
1321 static const flex_int16_t yy_chk[4596] =
1322     {   0,
1323         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1324         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1325         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1326         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1327         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1328         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1329         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1330         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1331         1,    1,    1,    1,    2,    2,    2,    2,    2,    2,
1332         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1333
1334         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1335         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1336         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1337         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1338         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1339         2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
1340         2,    2,    2,    2,    2,    2,    2,    2,    3,    3,
1341       102,    3,    3,    5,    3,    5, 1012,    3,    3,    3,
1342         3,   79,   79,    3,    3,    6,    6,    7,    6,    7,
1343         3,   21,    6,    3,    8,  132,    8,   11,   11,  102,
1344
1345        11,   12,   12,  964,   12,   19,   85,   19,   19,   27,
1346        28,   27,   28,   17,   20,   17,   20,   20,  148,    3,
1347         3,   51,    9,   51,    9,   17,  537,   22,    9,   17,
1348        17,   17,   17,   10,  132,   10,   29,  963,   29,   10,
1349       176,   21,   21,   47,   21,   47,   29,  148,    3,    3,
1350         3,    4,    4,   47,    4,    4,   19,    4,    4,  537,
1351         4,    4,    4,    4,    9,   20,    4,    4,   23,  176,
1352        23,    9,    9,    4,    9,   10,    4,   22,   22,   85,
1353        22,   23,   10,   10,  962,   10,   29,  199,   29,   45,
1354        52,   45,   52,    9,   17,   93,   37,   93,   45,   37,
1355
1356         9,  961,    4,    4,   10,    4,   38,  960,   46,   38,
1357        46,   10,   37,   37,   37,   37,  199,   46,   23,   23,
1358        23,  959,   38,   38,   38,   38,   57,   57,  153,   57,
1359       153,    4,    4,    4,   13,   13,   13,   13,   13,   13,
1360        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1361        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1362        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1363        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1364        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1365        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1366
1367        13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
1368        13,   13,   13,   13,   13,   13,   13,   13,   18,   24,
1369        18,   24,  155,   30,  155,   30,   31,  202,   31,   31,
1370        18,   64,   24,   30,   18,   18,   18,   18,   32,   43,
1371        32,   32,   53,   48,   53,   48,  167,   61,   61,   53,
1372        61,  101,   43,   48,   73,   73,  202,   73,   81,  261,
1373        81,  261,   43,   81,   81,   81,   81,   43,   64,   24,
1374        24,   24,  170,   30,  958,   30,   31,   31,   31,  170,
1375       957,  101,   43,  111,  111,  268,  111,  268,   32,   32,
1376        32,   43,   53,   53,   53,  956,   43,  167,   64,   18,
1377
1378        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1379        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1380        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1381        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1382        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1383        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1384        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1385        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
1386        25,   25,   25,   25,   33,   33,   39,   33,   39,   34,
1387        34,   33,   34,  147,   41,   42,   34,   49,   44,   49,
1388
1389        33,   41,   42,  175,  308,   34,  308,   49,  274,  274,
1390        50,   44,   50,  184,   41,   42,  122,  122,  122,  122,
1391        50,   44,  185,  147,   41,   42,   44,   33,  207,   41,
1392        42,  955,   34,  175,   33,   33,   39,   33,   39,   34,
1393        34,   44,   34,  184,   41,   42,  334,   49,  334,   49,
1394        44,  954,  185,   41,   42,   44,   33,  207,   41,   42,
1395        50,   34,   50,   33,  336,   39,  336,   39,   34,   35,
1396        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1397        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1398        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1399
1400        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1401        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1402        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1403        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1404        35,   35,   35,   35,   35,   35,   35,   35,   35,   35,
1405        35,   35,   35,   40,  634,   40,   54,  189,   54,   69,
1406        69,  188,   69,   54,   80,   80,   69,   82,   82,  188,
1407        82,  189,  128,  128,   82,  278,  278,  131,  131,  953,
1408       138,  138,  359,   82,  187,  190,  194,  634,  195,   82,
1409       187,  188,  191,  201,  196,  345,   80,  192,  196,  188,
1410
1411       952,  189,  345,   40,  128,   40,   54,   54,   54,  131,
1412       897,  359,  138,  191,  187,  190,  194,  192,  195,  187,
1413       198,   82,  191,  201,  196,   80,  896,  192,  196,  203,
1414       198,  204,   40,  128,   40,   65,  243,  243,  131,  243,
1415        69,  138,  191,  250,  205,  197,  192,  361,   82,  197,
1416       198,  206,  251,  200,   65,  259,   65,  273,   65,  203,
1417       198,  204,  895,  200,   65,  894,  200,   65,   65,   65,
1418       893,   65,   65,   65,  205,  197,  361,   65,  892,  197,
1419       250,  206,  251,  200,   65,  259,   65,  273,   65,  211,
1420       211,  211,  211,  200,   65,  200,  891,   65,   65,   65,
1421
1422        65,   65,   65,  890,  247,  247,   65,  247,   65,  889,
1423       250,  254,  254,  888,  254,  255,  255,  887,  255,  256,
1424       256,  363,  256,  257,  257,  275,  257,  293,  254,  254,
1425       254,  254,  255,  255,  255,  255,  256,  256,  256,  256,
1426       257,  257,  257,  257,  264,  264,  304,  264,  276,  276,
1427       363,  264,  305,  886,  254,  275,  275,  293,  312,  312,
1428       256,  312,  332,  257,  885,  284,  284,  884,  284,  333,
1429       349,  350,  284,  355,  356,  358,  304,  883,  365,  366,
1430       276,  284,  305,  254,  367,  360,  368,  284,  371,  358,
1431       256,  369,  332,  257,  319,  319,  319,  319,  372,  333,
1432
1433       349,  350,  360,  355,  356,  358,  364,  365,  366,  276,
1434       364,  373,  381,  367,  374,  360,  368,  371,  358,  284,
1435       418,  369,  418,  882,  420,  264,  420,  422,  372,  422,
1436       881,  360,  391,  391,  391,  391,  364,  424,  880,  424,
1437       364,  373,  381,  374,  376,  378,  284,  321,  321,  321,
1438       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1439       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1440       321,  321,  370,  376,  378,  321,  370,  321,  321,  321,
1441       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1442       321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
1443
1444       321,  379,  370,  380,  383,  370,  382,  383,  384,  385,
1445       382,  879,  386,  380,  387,  382,  385,  878,  405,  427,
1446       427,  412,  413,  433,  433,  448,  414,  448,  639,  639,
1447       379,  416,  426,  380,  383,  877,  382,  383,  384,  385,
1448       382,  386,  380,  387,  531,  382,  385,  388,  405,  388,
1449       412,  413,  388,  388,  408,  408,  414,  408,  388,  388,
1450       428,  416,  426,  876,  388,  388,  875,  411,  411,  388,
1451       411,  408,  408,  408,  408,  441,  388,  388,  443,  388,
1452       429,  429,  388,  388,  411,  411,  411,  411,  388,  388,
1453       428,  428,  446,  388,  388,  431,  431,  447,  388,  438,
1454
1455       438,  438,  438,  464,  450,  441,  450,  465,  443,  469,
1456       470,  521,  429,  521,  871,  471,  429,  524,  870,  524,
1457       526,  526,  446,  526,  531,  818,  625,  447,  625,  431,
1458       431,  626,  626,  464,  626,  632,  632,  465,  632,  469,
1459       470,  429,  430,  430,  471,  430,  430,  430,  430,  430,
1460       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1461       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1462       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1463       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1464       430,  430,  430,  430,  430,  430,  817,  430,  430,  430,
1465
1466       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1467       430,  430,  430,  430,  430,  430,  430,  430,  430,  430,
1468       430,  430,  430,  430,  430,  430,  432,  432,  432,  432,
1469       451,  452,  453,  457,  456,  432,  432,  432,  432,  432,
1470       432,  454,  459,  460,  472,  461,  451,  452,  473,  458,
1471       453,  474,  457,  461,  454,  816,  456,  475,  476,  477,
1472       432,  432,  459,  460,  478,  432,  432,  432,  432,  432,
1473       432,  458,  480,  472,  458,  482,  451,  452,  473,  481,
1474       453,  474,  457,  461,  454,  456,  486,  475,  476,  477,
1475       484,  487,  459,  460,  478,  815,  485,  488,  489,  814,
1476
1477       458,  491,  480,  458,  462,  482,  492,  493,  481,  462,
1478       462,  462,  462,  494,  495,  462,  486,  496,  497,  484,
1479       462,  487,  498,  499,  462,  485,  488,  462,  489,  462,
1480       500,  491,  462,  501,  502,  503,  492,  493,  505,  462,
1481       462,  462,  462,  494,  495,  462,  506,  496,  497,  504,
1482       462,  507,  498,  499,  462,  504,  462,  508,  462,  509,
1483       500,  462,  510,  501,  502,  503,  511,  513,  505,  512,
1484       514,  515,  516,  517,  519,  506,  518,  519,  519,  504,
1485       507,  520,  638,  638,  638,  504,  546,  508,  527,  509,
1486       528,  529,  510,  533,  543,  544,  511,  513,  512,  813,
1487
1488       514,  515,  516,  517,  519,  518,  519,  519,  631,  522,
1489       522,  520,  522,  525,  525,  546,  525,  719,  527,  719,
1490       528,  529,  812,  533,  543,  544,  522,  522,  522,  522,
1491       525,  525,  525,  525,  534,  534,  811,  534,  534,  534,
1492       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1493       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1494       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1495       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1496       534,  534,  534,  534,  534,  534,  534,  534,  631,  534,
1497       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1498
1499       534,  534,  534,  534,  534,  534,  534,  534,  534,  534,
1500       534,  534,  534,  534,  534,  534,  534,  534,  535,  535,
1501       545,  548,  550,  810,  539,  539,  549,  552,  557,  551,
1502       554,  549,  552,  553,  809,  559,  558,  640,  640,  548,
1503       551,  548,  556,  554,  727,  727,  550,  556,  557,  558,
1504       545,  559,  535,  535,  536,  536,  536,  536,  539,  539,
1505       553,  549,  552,  536,  536,  536,  536,  536,  536,  548,
1506       551,  548,  555,  554,  562,  550,  560,  556,  557,  558,
1507       800,  559,  800,  563,  569,  561,  566,  562,  564,  553,
1508       555,  571,  560,  536,  536,  536,  536,  536,  536,  540,
1509
1510       540,  540,  540,  561,  565,  563,  566,  564,  540,  540,
1511       540,  540,  540,  540,  569,  567,  568,  562,  570,  572,
1512       555,  571,  560,  575,  568,  808,  565,  576,  577,  565,
1513       578,  579,  580,  561,  563,  567,  566,  564,  540,  540,
1514       540,  540,  540,  540,  582,  584,  581,  570,  572,  583,
1515       587,  806,  588,  575,  568,  565,  576,  577,  565,  578,
1516       589,  579,  580,  581,  590,  567,  594,  595,  599,  581,
1517       799,  597,  598,  601,  582,  584,  602,  603,  583,  604,
1518       587,  588,  605,  606,  796,  607,  608,  609,  611,  589,
1519       612,  613,  615,  581,  590,  594,  614,  595,  599,  581,
1520
1521       597,  598,  601,  616,  617,  619,  602,  603,  618,  604,
1522       620,  605,  621,  606,  607,  608,  620,  609,  611,  622,
1523       612,  613,  615,  627,  628,  614,  629,  636,  636,  641,
1524       651,  643,  616,  646,  617,  619,  647,  618,  644,  784,
1525       620,  669,  621,  650,  652,  620,  770,  660,  647,  622,
1526       651,  648,  627,  652,  628,  629,  650,  649,  646,  641,
1527       643,  636,  636,  637,  637,  637,  637,  653,  644,  648,
1528       669,  660,  637,  637,  637,  637,  637,  637,  647,  649,
1529       651,  654,  655,  652,  656,  653,  650,  646,  654,  655,
1530       657,  658,  659,  656,  728,  728,  665,  659,  663,  648,
1531
1532       660,  657,  637,  637,  637,  637,  637,  637,  649,  658,
1533       661,  658,  662,  664,  665,  653,  667,  662,  654,  655,
1534       668,  661,  670,  656,  666,  663,  664,  659,  671,  666,
1535       672,  657,  674,  668,  676,  679,  667,  761,  680,  658,
1536       681,  658,  683,  687,  665,  679,  685,  662,  688,  689,
1537       691,  661,  670,  692,  663,  693,  664,  671,  695,  666,
1538       672,  674,  696,  668,  676,  679,  667,  680,  697,  699,
1539       681,  700,  683,  687,  679,  685,  701,  702,  688,  689,
1540       691,  704,  692,  705,  707,  693,  706,  695,  709,  710,
1541       711,  696,  713,  714,  733,  715,  716,  697,  717,  699,
1542
1543       700,  720,  721,  722,  722,  701,  722,  702,  730,  736,
1544       704,  733,  734,  705,  707,  706,  737,  734,  709,  710,
1545       711,  735,  713,  714,  715,  736,  716,  739,  717,  740,
1546       738,  720,  721,  726,  726,  726,  735,  741,  743,  745,
1547       737,  733,  738,  744,  747,  742,  746,  734,  748,  739,
1548       729,  750,  749,  740,  742,  736,  744,  752,  746,  751,
1549       743,  741,  747,  725,  745,  749,  735,  753,  751,  737,
1550       748,  750,  738,  754,  753,  752,  755,  763,  739,  764,
1551       754,  765,  740,  756,  742,  755,  744,  763,  746,  743,
1552       741,  766,  747,  745,  756,  749,  767,  768,  751,  748,
1553
1554       769,  750,  771,  772,  753,  752,  773,  763,  774,  764,
1555       754,  765,  775,  776,  778,  755,  777,  763,  780,  724,
1556       782,  766,  786,  787,  756,  767,  768,  788,  791,  769,
1557       793,  797,  771,  772,  718,  798,  773,  802,  774,  802,
1558       804,  712,  775,  776,  778,  777,  790,  790,  780,  782,
1559       820,  790,  786,  787,  790,  819,  788,  790,  791,  708,
1560       793,  797,  790,  794,  794,  798,  823,  820,  794,  804,
1561       821,  794,  824,  822,  794,  821,  790,  790,  825,  819,
1562       826,  790,  823,  827,  790,  828,  831,  790,  822,  830,
1563       825,  790,  832,  794,  794,  833,  824,  820,  794,  831,
1564
1565       834,  794,  826,  835,  794,  821,  829,  827,  819,  828,
1566       838,  830,  823,  836,  841,  829,  694,  840,  822,  842,
1567       825,  843,  832,  844,  833,  824,  845,  847,  849,  831,
1568       834,  826,  835,  850,  852,  856,  827,  857,  828,  838,
1569       830,  858,  690,  836,  841,  829,  840,  860,  842,  865,
1570       852,  843,  844,  861,  862,  859,  845,  847,  849,  859,
1571       863,  864,  859,  850,  852,  856,  857,  866,  684,  868,
1572       869,  858,  859,  872,  867,  678,  860,  867,  865,  852,
1573       873,  898,  873,  861,  862,  859,  903,  867,  899,  859,
1574       863,  864,  859,  900,  901,  902,  905,  866,  868,  869,
1575
1576       906,  859,  872,  907,  867,  898,  908,  867,  910,  911,
1577       912,  642,  913,  914,  915,  903,  867,  916,  899,  917,
1578       919,  920,  921,  900,  901,  902,  905,  922,  635,  923,
1579       906,  924,  926,  907,  898,  927,  908,  910,  928,  911,
1580       912,  913,  930,  914,  915,  931,  932,  916,  917,  933,
1581       919,  920,  921,  934,  935,  937,  936,  922,  923,  938,
1582       924,  938,  926,  965,  940,  927,  940,  928,  966,  967,
1583       968,  969,  930,  936,  970,  931,  932,  971,  933,  972,
1584       973,  974,  934,  935,  937,  975,  936,  976,  978,  633,
1585       979,  980,  965,  981,  982,  983,  984,  985,  966,  967,
1586
1587       968,  969,  936,  987,  970,  989,  990,  971,  972,  973,
1588       991,  974,  992,  993,  975,  995,  999,  976,  978,  979,
1589       980,  996,  981,  998,  982,  983,  984,  985, 1015,  997,
1590      1013, 1014,  987,  997,  989,  990, 1016, 1017, 1019, 1020,
1591       991, 1022,  992,  993, 1023,  995,  999, 1024, 1025, 1026,
1592       996, 1027,  998, 1028, 1030, 1034, 1035, 1015,  997, 1036,
1593      1013, 1014,  997, 1039, 1040, 1016, 1017, 1041, 1019, 1020,
1594      1022, 1042, 1043, 1023, 1044, 1046, 1047, 1024, 1025, 1026,
1595      1048, 1027, 1049, 1028, 1030, 1034, 1035, 1050, 1053, 1036,
1596      1055, 1057, 1039, 1060, 1040, 1063, 1064, 1041, 1065, 1066,
1597
1598      1042, 1043, 1067, 1044, 1046, 1068, 1047, 1069, 1070, 1072,
1599      1048, 1073, 1049, 1074, 1075,  623, 1077, 1050, 1053, 1055,
1600      1081, 1057, 1082, 1060, 1083, 1063, 1064, 1065, 1084, 1066,
1601      1086, 1087, 1067, 1088, 1089, 1068, 1090, 1069, 1070, 1072,
1602      1073, 1093, 1074, 1095, 1075, 1077, 1096, 1097, 1098, 1100,
1603      1081, 1103, 1082, 1083, 1105,  596, 1106, 1107, 1084, 1109,
1604      1086, 1087, 1110, 1088, 1089, 1090, 1157, 1157,  593, 1173,
1605      1093, 1173, 1206, 1095, 1206, 1096, 1097, 1098,  547, 1100,
1606       538, 1103, 1166, 1166, 1105, 1106, 1107, 1166,  490, 1109,
1607       467,  466, 1110, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
1608
1609      1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114,
1610      1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115,
1611      1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115,
1612      1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116,
1613      1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116,
1614      1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117,
1615      1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117,
1616      1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118,
1617      1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118,
1618      1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119,
1619
1620      1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119,
1621      1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120,
1622      1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1623      1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120,
1624      1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
1625      1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121,
1626      1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
1627      1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122,
1628      1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
1629      1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123,
1630
1631      1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
1632      1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124,
1633      1124, 1124, 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125,
1634      1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125,
1635      1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126,
1636      1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126,
1637      1126, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127,
1638      1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
1639      1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128,
1640      1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128,
1641
1642      1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129,
1643      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129,
1644      1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130,
1645      1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
1646      1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130,
1647      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
1648      1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131,
1649      1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
1650      1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132,
1651      1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
1652
1653      1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133,
1654      1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
1655      1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134,
1656      1134, 1134, 1134, 1134, 1135,  455, 1135,  437, 1135, 1135,
1657      1213, 1213, 1213, 1135, 1136, 1136, 1136, 1136, 1136, 1136,
1658      1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136,
1659      1136, 1136, 1136, 1136, 1137,  410, 1137,  389, 1137, 1137,
1660      1167, 1167,  362, 1137, 1138, 1167, 1138, 1138, 1138, 1138,
1661      1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138,
1662      1138, 1138, 1138, 1138, 1138, 1139,  353, 1139, 1139, 1139,
1663
1664      1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139,
1665      1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140,  351, 1140,
1666       346, 1140, 1140,  344,  343,  328, 1140, 1141,  315, 1141,
1667      1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
1668      1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142,
1669      1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142,
1670      1142, 1142, 1142,  314, 1142,  313, 1142, 1142, 1142, 1143,
1671       310, 1143, 1143,  296, 1143, 1143, 1143, 1143, 1143, 1143,
1672      1143, 1143, 1143, 1143,  289, 1143,  288, 1143, 1143, 1143,
1673      1144,  287,  286, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
1674
1675      1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144,
1676      1144, 1145,  283, 1145,  281, 1145, 1145,  280,  271,  270,
1677      1145, 1146,  267, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
1678      1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146,
1679      1146, 1146, 1147,  266, 1147, 1147, 1147, 1147, 1147, 1147,
1680      1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147,  249,
1681      1147, 1147, 1147, 1148,  245, 1148,  241, 1148,  239, 1148,
1682      1148, 1148, 1148,  238, 1148, 1148,  236,  235,  234, 1148,
1683      1149,  230, 1149, 1149, 1149,  216, 1149, 1149, 1149, 1149,
1684      1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149,
1685
1686      1149, 1150,  215, 1150,  214, 1150, 1150,  210,  183,  182,
1687      1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
1688      1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151,
1689      1151, 1151, 1152,  180, 1152, 1152, 1152, 1152, 1152,  178,
1690      1152, 1152, 1152, 1152, 1152, 1152, 1152,  177, 1152,  174,
1691      1152, 1152, 1152, 1153,  173, 1153,  172, 1153, 1153, 1153,
1692      1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153,  168,  166,
1693       164, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154,
1694      1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154,
1695      1154, 1154, 1154, 1154, 1154, 1155,  161, 1155, 1155, 1155,
1696
1697      1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155,
1698      1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156,  160,  159,
1699       158, 1156, 1156, 1158,  150, 1158, 1158, 1158, 1158, 1158,
1700      1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1701      1158, 1158, 1158, 1158, 1159,  149,  145, 1159, 1159, 1159,
1702      1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,  144,
1703      1159,  142, 1159, 1160,  137, 1160, 1160, 1160, 1160,  135,
1704      1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
1705      1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161,
1706      1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,  130,
1707
1708      1161,  126, 1161, 1161, 1161, 1162,  120, 1162, 1162, 1162,
1709       115, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162,
1710       113,  112,  109, 1162, 1162, 1162, 1163,  107, 1163,  105,
1711      1163, 1163,  104,  103,   99, 1163, 1164,   96, 1164, 1164,
1712      1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164,
1713      1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165,   95, 1165,
1714      1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
1715      1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1168, 1168,
1716      1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168,
1717      1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169,
1718
1719        92, 1169,   90, 1169, 1169,   86,   84,   78, 1169, 1170,
1720      1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
1721      1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170,
1722      1171,   77, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
1723      1171, 1171, 1171, 1171, 1171, 1171, 1171,   74, 1171, 1171,
1724      1171, 1172,   71, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
1725      1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172,
1726      1172, 1172, 1174,   66, 1174,   63, 1174, 1174,   59,   55,
1727        16, 1174,   15, 1174, 1175,    0, 1175, 1175, 1175, 1175,
1728      1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175,
1729
1730      1175, 1175, 1175, 1175, 1175, 1176,    0, 1176, 1176, 1176,
1731      1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176,
1732      1176, 1176, 1176, 1176, 1176, 1176, 1177,    0, 1177, 1177,
1733      1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177,
1734      1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178,    0, 1178,
1735      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178,
1736      1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179,
1737      1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179,
1738      1179, 1179, 1179,    0, 1179,    0, 1179, 1179, 1179, 1180,
1739         0, 1180, 1180,    0, 1180, 1180, 1180, 1180, 1180, 1180,
1740
1741      1180, 1180, 1180, 1180,    0, 1180,    0, 1180, 1180, 1180,
1742      1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1743      1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1744      1181, 1182,    0,    0, 1182, 1182, 1182, 1182, 1182, 1182,
1745      1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182,
1746      1182, 1182, 1183,    0, 1183,    0, 1183, 1183,    0,    0,
1747         0, 1183, 1184,    0, 1184,    0, 1184,    0, 1184, 1184,
1748      1184, 1184,    0, 1184, 1184,    0,    0,    0, 1184, 1185,
1749         0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
1750      1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185,
1751
1752      1186,    0, 1186,    0, 1186, 1186,    0,    0,    0, 1186,
1753      1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
1754      1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187,
1755      1187, 1188,    0, 1188, 1188, 1188, 1188, 1188,    0, 1188,
1756      1188, 1188, 1188, 1188, 1188, 1188,    0, 1188,    0, 1188,
1757      1188, 1188, 1189,    0, 1189,    0, 1189, 1189, 1189, 1189,
1758      1189, 1189, 1189, 1189, 1189, 1189, 1189,    0,    0,    0,
1759      1189, 1189, 1189, 1190,    0, 1190, 1190, 1190, 1190, 1190,
1760      1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
1761      1190, 1190, 1190, 1190, 1191,    0, 1191, 1191, 1191, 1191,
1762
1763      1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191,
1764      1191, 1191, 1191, 1191, 1191, 1192, 1192,    0,    0,    0,
1765      1192, 1192, 1193,    0, 1193, 1193, 1193, 1193, 1193, 1193,
1766      1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193,
1767      1193, 1193, 1193, 1194,    0,    0, 1194, 1194, 1194, 1194,
1768      1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194,    0, 1194,
1769         0, 1194, 1195,    0, 1195, 1195, 1195, 1195,    0, 1195,
1770      1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
1771      1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196,
1772      1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196,    0, 1196,
1773
1774         0, 1196, 1196, 1196, 1197,    0, 1197, 1197, 1197,    0,
1775      1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197,    0,
1776         0,    0, 1197, 1197, 1197, 1198,    0, 1198, 1198, 1198,
1777      1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198,
1778      1198, 1198, 1198, 1198, 1198, 1198, 1199,    0, 1199, 1199,
1779      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199,
1780      1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200,
1781      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200,
1782      1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201,    0,
1783      1201,    0, 1201, 1201,    0,    0,    0, 1201, 1202,    0,
1784
1785      1202,    0, 1202, 1202,    0,    0,    0, 1202, 1203, 1203,
1786      1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203,
1787      1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1204,
1788      1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
1789      1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204,
1790      1205,    0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205,
1791      1205, 1205, 1205, 1205, 1205, 1205, 1205,    0, 1205, 1205,
1792      1205, 1207,    0, 1207,    0, 1207, 1207,    0,    0,    0,
1793      1207,    0, 1207, 1208,    0, 1208, 1208, 1208, 1208, 1208,
1794      1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
1795
1796      1208, 1208, 1208, 1208, 1209,    0, 1209, 1209, 1209, 1209,
1797      1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209,
1798      1209, 1209, 1209, 1209, 1209, 1210,    0, 1210, 1210, 1210,
1799      1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210,
1800      1210, 1210, 1210, 1210, 1210, 1210, 1211,    0, 1211, 1211,
1801         0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211,
1802      1211,    0, 1211,    0, 1211, 1211, 1211, 1212, 1212, 1212,
1803      1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212,
1804      1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1214,    0,
1805      1214,    0, 1214, 1214,    0,    0,    0, 1214, 1215,    0,
1806
1807      1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215,
1808      1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216,
1809         0, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
1810      1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216,
1811      1217, 1217,    0,    0,    0, 1217, 1217, 1218,    0, 1218,
1812      1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218,
1813      1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1219,
1814      1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219,
1815      1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1220,
1816      1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
1817
1818      1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
1819      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1820      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1821      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1822      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1823      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1824      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1825      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1826      1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113,
1827      1113, 1113, 1113, 1113, 1113
1828
1829     } ;
1830
1831 static yy_state_type yy_last_accepting_state;
1832 static char *yy_last_accepting_cpos;
1833
1834 extern int yy_flex_debug;
1835 int yy_flex_debug = 0;
1836
1837 /* The intent behind this definition is that it'll catch
1838  * any uses of REJECT which flex missed.
1839  */
1840 #define REJECT reject_used_but_not_detected
1841 #define yymore() yymore_used_but_not_detected
1842 #define YY_MORE_ADJ 0
1843 #define YY_RESTORE_YY_MORE_OFFSET
1844 char *yytext;
1845 #line 1 "tests/scan.l"
1846 /* scan.l - scanner for flex input -*-C-*- */
1847 #line 4 "tests/scan.l"
1848 /*  Copyright (c) 1990 The Regents of the University of California. */
1849 /*  All rights reserved. */
1850
1851 /*  This code is derived from software contributed to Berkeley by */
1852 /*  Vern Paxson. */
1853
1854 /*  The United States Government has rights in this work pursuant */
1855 /*  to contract no. DE-AC03-76SF00098 between the United States */
1856 /*  Department of Energy and the University of California. */
1857
1858 /*  This file is part of flex. */
1859
1860 /*  Redistribution and use in source and binary forms, with or without */
1861 /*  modification, are permitted provided that the following conditions */
1862 /*  are met: */
1863
1864 /*  1. Redistributions of source code must retain the above copyright */
1865 /*     notice, this list of conditions and the following disclaimer. */
1866 /*  2. Redistributions in binary form must reproduce the above copyright */
1867 /*     notice, this list of conditions and the following disclaimer in the */
1868 /*     documentation and/or other materials provided with the distribution. */
1869
1870 /*  Neither the name of the University nor the names of its contributors */
1871 /*  may be used to endorse or promote products derived from this software */
1872 /*  without specific prior written permission. */
1873
1874 /*  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */
1875 /*  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */
1876 /*  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */
1877 /*  PURPOSE. */
1878
1879 #include "flexdef.h"
1880 #include "parse.h"
1881 extern bool tablesverify, tablesext;
1882 extern int trlcontxt; /* Set in  parse.y for each rule. */
1883 extern const char *escaped_qstart, *escaped_qend;
1884
1885 #define M4QSTART "[""["
1886 #define M4QEND "]""]"
1887
1888 #define ESCAPED_QSTART "[" M4QEND M4QSTART "[" M4QEND M4QSTART
1889 #define ESCAPED_QEND M4QEND "]" M4QSTART M4QEND "]" M4QSTART
1890
1891 #define ACTION_ECHO add_action( yytext )
1892 #define ACTION_IFDEF(def, should_define) \
1893         { \
1894         if ( should_define ) \
1895                 action_define( def, 1 ); \
1896         }
1897
1898 #define ACTION_ECHO_QSTART add_action (ESCAPED_QSTART)
1899 #define ACTION_ECHO_QEND   add_action (ESCAPED_QEND)
1900
1901 #define ACTION_M4_IFDEF(def, should_define) \
1902     do{ \
1903         if ( should_define ) \
1904             buf_m4_define( &m4defs_buf, def, NULL);\
1905         else \
1906             buf_m4_undefine( &m4defs_buf, def);\
1907     } while(0)
1908
1909 #define MARK_END_OF_PROLOG mark_prolog();
1910
1911 #if 1
1912 #define YY_DECL \
1913         static int real_flexscan(void)
1914 #else
1915 #define YY_DECL \
1916         int flexscan(void)
1917 #endif
1918
1919 #define RETURNCHAR \
1920         yylval = (unsigned char) yytext[0]; \
1921         return CHAR;
1922
1923 #define RETURNNAME \
1924         if(yyleng < MAXLINE) \
1925          { \
1926         strncpy( nmstr, yytext, sizeof(nmstr) ); \
1927  piece_pack(); \
1928  piece_append("<PLex_Name>"); \
1929  piece_escape(yytext, strlen(yytext)); \
1930  piece_append("</PLex_Name>"); \
1931  piece_pack(); \
1932  return ~NAME; \
1933  /*     return NAME;*/ \
1934          } \
1935         else \
1936          do { \
1937            synerr(_("Input line too long\n")); \
1938            FLEX_EXIT(EXIT_FAILURE);  \
1939          } while (0)
1940
1941 #define PUT_BACK_STRING(str, start) \
1942         { size_t i = strlen( str );     \
1943           while ( i > start )           \
1944             unput((str)[--i]);          \
1945         }
1946
1947 #define CHECK_REJECT(str) \
1948         if ( all_upper( str ) ) \
1949                 reject = true;
1950
1951 #define CHECK_YYMORE(str) \
1952         if ( all_lower( str ) ) \
1953                 yymore_used = true;
1954
1955 #define YY_USER_INIT \
1956         if ( getenv("POSIXLY_CORRECT") ) \
1957                 posix_compat = true;
1958
1959 #define START_CODEBLOCK(x) do { \
1960     /* Emit the needed line directive... */\
1961     if (indented_code == false) { \
1962         linenum++; \
1963         line_directive_out(NULL, 1); \
1964     } \
1965     add_action(M4QSTART); \
1966     yy_push_state(CODEBLOCK); \
1967     if ((indented_code = x)) ACTION_ECHO; \
1968  piece_append("<PLex_Section1Or2_CodeBlock>"); \
1969 } while(0)
1970
1971 #define END_CODEBLOCK do { \
1972     yy_pop_state();\
1973     add_action(M4QEND); \
1974     if (!indented_code) line_directive_out(NULL, 0);\
1975  piece_append("</PLex_Section1Or2_CodeBlock>"); \
1976 } while (0)
1977
1978 /* Nick */
1979 char piece_temp[100], *piece[10000];
1980 int piece0, piece1;
1981
1982 void piece_append(const char *str);
1983 void piece_insert(int n, const char *str);
1984 void piece_escape(const char *p, size_t n);
1985 void piece_flush(size_t n);
1986 void piece_pack();
1987
1988 static void markup_action(const char *text);
1989 static void markup_option(const char *name, int sense);
1990
1991 #line 1991 "lex.yy.c"
1992
1993 #line 1993 "lex.yy.c"
1994
1995 #define INITIAL 0
1996 #define SECT2 1
1997 #define SECT2PROLOG 2
1998 #define SECT3 3
1999 #define CODEBLOCK 4
2000 #define PICKUPDEF 5
2001 #define SC 6
2002 #define CARETISBOL 7
2003 #define NUM 8
2004 #define QUOTE 9
2005 #define FIRSTCCL 10
2006 #define CCL 11
2007 #define ACTION 12
2008 #define RECOVER 13
2009 #define COMMENT 14
2010 #define ACTION_STRING 15
2011 #define PERCENT_BRACE_ACTION 16
2012 #define OPTION 17
2013 #define LINEDIR 18
2014 #define CODEBLOCK_MATCH_BRACE 19
2015 #define GROUP_WITH_PARAMS 20
2016 #define GROUP_MINUS_PARAMS 21
2017 #define EXTENDED_COMMENT 22
2018 #define COMMENT_DISCARD 23
2019 #define CODE_COMMENT 24
2020 #define SECT3_NOESCAPE 25
2021 #define CHARACTER_CONSTANT 26
2022
2023 #ifndef YY_NO_UNISTD_H
2024 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2025  * down here because we want the user's section 1 to have been scanned first.
2026  * The user has a chance to override it with an option.
2027  */
2028 #include <unistd.h>
2029 #endif
2030
2031 #ifndef YY_EXTRA_TYPE
2032 #define YY_EXTRA_TYPE void *
2033 #endif
2034
2035 static int yy_init_globals ( void );
2036
2037 /* Accessor methods to globals.
2038    These are made visible to non-reentrant scanners for convenience. */
2039
2040 int yylex_destroy ( void );
2041
2042 int yyget_debug ( void );
2043
2044 void yyset_debug ( int debug_flag  );
2045
2046 YY_EXTRA_TYPE yyget_extra ( void );
2047
2048 void yyset_extra ( YY_EXTRA_TYPE user_defined  );
2049
2050 FILE *yyget_in ( void );
2051
2052 void yyset_in  ( FILE * _in_str  );
2053
2054 FILE *yyget_out ( void );
2055
2056 void yyset_out  ( FILE * _out_str  );
2057
2058                         int yyget_leng ( void );
2059
2060 char *yyget_text ( void );
2061
2062 int yyget_lineno ( void );
2063
2064 void yyset_lineno ( int _line_number  );
2065
2066 /* Macros after this point can all be overridden by user definitions in
2067  * section 1.
2068  */
2069
2070 #ifndef YY_SKIP_YYWRAP
2071 #ifdef __cplusplus
2072 extern "C" int yywrap ( void );
2073 #else
2074 extern int yywrap ( void );
2075 #endif
2076 #endif
2077
2078 #ifndef YY_NO_UNPUT
2079     
2080     static void yyunput ( int c, char *buf_ptr  );
2081     
2082 #endif
2083
2084 #ifndef yytext_ptr
2085 static void yy_flex_strncpy ( char *, const char *, int );
2086 #endif
2087
2088 #ifdef YY_NEED_STRLEN
2089 static int yy_flex_strlen ( const char * );
2090 #endif
2091
2092 #ifndef YY_NO_INPUT
2093 #ifdef __cplusplus
2094 static int yyinput ( void );
2095 #else
2096 static int input ( void );
2097 #endif
2098
2099 #endif
2100
2101         static int yy_start_stack_ptr = 0;
2102         static int yy_start_stack_depth = 0;
2103         static int *yy_start_stack = NULL;
2104     
2105     static void yy_push_state ( int _new_state );
2106     
2107     static void yy_pop_state ( void );
2108     
2109 /* Amount of stuff to slurp up with each read. */
2110 #ifndef YY_READ_BUF_SIZE
2111 #ifdef __ia64__
2112 /* On IA-64, the buffer size is 16k, not 8k */
2113 #define YY_READ_BUF_SIZE 16384
2114 #else
2115 #define YY_READ_BUF_SIZE 8192
2116 #endif /* __ia64__ */
2117 #endif
2118
2119 /* Copy whatever the last rule matched to the standard output. */
2120 #ifndef ECHO
2121 /* This used to be an fputs(), but since the string might contain NUL's,
2122  * we now use fwrite().
2123  */
2124 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
2125 #endif
2126
2127 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
2128  * is returned in "result".
2129  */
2130 #ifndef YY_INPUT
2131 #define YY_INPUT(buf,result,max_size) \
2132         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2133                 { \
2134                 int c = '*'; \
2135                 int n; \
2136                 for ( n = 0; n < max_size && \
2137                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
2138                         buf[n] = (char) c; \
2139                 if ( c == '\n' ) \
2140                         buf[n++] = (char) c; \
2141                 if ( c == EOF && ferror( yyin ) ) \
2142                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
2143                 result = n; \
2144                 } \
2145         else \
2146                 { \
2147                 errno=0; \
2148                 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
2149                         { \
2150                         if( errno != EINTR) \
2151                                 { \
2152                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2153                                 break; \
2154                                 } \
2155                         errno=0; \
2156                         clearerr(yyin); \
2157                         } \
2158                 }\
2159 \
2160
2161 #endif
2162
2163 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2164  * we don't want an extra ';' after the "return" because that will cause
2165  * some compilers to complain about unreachable statements.
2166  */
2167 #ifndef yyterminate
2168 #define yyterminate() return YY_NULL
2169 #endif
2170
2171 /* Number of entries by which start-condition stack grows. */
2172 #ifndef YY_START_STACK_INCR
2173 #define YY_START_STACK_INCR 25
2174 #endif
2175
2176 /* Report a fatal error. */
2177 #ifndef YY_FATAL_ERROR
2178 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2179 #endif
2180
2181 /* end tables serialization structures and prototypes */
2182
2183 /* Default declaration of generated scanner - a define so the user can
2184  * easily add parameters.
2185  */
2186 #ifndef YY_DECL
2187 #define YY_DECL_IS_OURS 1
2188
2189 extern int yylex (void);
2190
2191 #define YY_DECL int yylex (void)
2192 #endif /* !YY_DECL */
2193
2194 /* Code executed at the beginning of each rule, after yytext and yyleng
2195  * have been set up.
2196  */
2197 #ifndef YY_USER_ACTION
2198 #define YY_USER_ACTION
2199 #endif
2200
2201 /* Code executed at the end of each rule. */
2202 #ifndef YY_BREAK
2203 #define YY_BREAK /*LINTED*/break;
2204 #endif
2205
2206 #define YY_RULE_SETUP \
2207         if ( yyleng > 0 ) \
2208                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
2209                                 (yytext[yyleng - 1] == '\n'); \
2210         YY_USER_ACTION
2211
2212 /** The main scanner function which does all the work.
2213  */
2214 YY_DECL
2215 {
2216         yy_state_type yy_current_state;
2217         char *yy_cp, *yy_bp;
2218         int yy_act;
2219     
2220         if ( !(yy_init) )
2221                 {
2222                 (yy_init) = 1;
2223
2224 #ifdef YY_USER_INIT
2225                 YY_USER_INIT;
2226 #endif
2227
2228                 if ( ! (yy_start) )
2229                         (yy_start) = 1; /* first start state */
2230
2231                 if ( ! yyin )
2232                         yyin = stdin;
2233
2234                 if ( ! yyout )
2235                         yyout = stdout;
2236
2237                 if ( ! YY_CURRENT_BUFFER ) {
2238                         yyensure_buffer_stack ();
2239                         YY_CURRENT_BUFFER_LVALUE =
2240                                 yy_create_buffer( yyin, YY_BUF_SIZE );
2241                 }
2242
2243                 yy_load_buffer_state(  );
2244                 }
2245
2246         {
2247 #line 184 "tests/scan.l"
2248
2249 #line 186 "tests/scan.l"
2250         static int bracelevel, didadef, indented_code;
2251         static int doing_rule_action = false;
2252         static int option_sense;
2253
2254         int doing_codeblock = false;
2255         int brace_depth=0, brace_start_line=0;
2256         char nmdef[MAXLINE];
2257
2258
2259 #line 2259 "lex.yy.c"
2260
2261         while ( /*CONSTCOND*/1 )                /* loops until end-of-file is reached */
2262                 {
2263                 yy_cp = (yy_c_buf_p);
2264
2265                 /* Support of yytext. */
2266                 *yy_cp = (yy_hold_char);
2267
2268                 /* yy_bp points to the position in yy_ch_buf of the start of
2269                  * the current run.
2270                  */
2271                 yy_bp = yy_cp;
2272
2273                 yy_current_state = (yy_start);
2274                 yy_current_state += YY_AT_BOL();
2275 yy_match:
2276                 do
2277                         {
2278                         int yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
2279                         if ( yy_accept[yy_current_state] )
2280                                 {
2281                                 (yy_last_accepting_state) = yy_current_state;
2282                                 (yy_last_accepting_cpos) = yy_cp;
2283                                 }
2284                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2285                                 {
2286                                 yy_current_state = (int) yy_def[yy_current_state];
2287                                 if ( yy_current_state >= 1114 )
2288                                         yy_c = yy_meta[yy_c];
2289                                 }
2290                         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2291                         ++yy_cp;
2292                         }
2293                 while ( yy_base[yy_current_state] != 4511 );
2294
2295 yy_find_action:
2296                 yy_act = yy_accept[yy_current_state];
2297                 if ( yy_act == 0 )
2298                         { /* have to back up */
2299                         yy_cp = (yy_last_accepting_cpos);
2300                         yy_current_state = (yy_last_accepting_state);
2301                         yy_act = yy_accept[yy_current_state];
2302                         }
2303
2304                 YY_DO_BEFORE_ACTION;
2305
2306 do_action:      /* This label is used only to access EOF actions. */
2307
2308                 switch ( yy_act )
2309         { /* beginning of action switch */
2310                         case 0: /* must back up */
2311                         /* undo the effects of YY_DO_BEFORE_ACTION */
2312                         *yy_cp = (yy_hold_char);
2313                         yy_cp = (yy_last_accepting_cpos);
2314                         yy_current_state = (yy_last_accepting_state);
2315                         goto yy_find_action;
2316
2317 case 1:
2318 YY_RULE_SETUP
2319 #line 196 "tests/scan.l"
2320 START_CODEBLOCK(true); piece_append("<PLex_Text>");
2321         YY_BREAK
2322 case 2:
2323 YY_RULE_SETUP
2324 #line 197 "tests/scan.l"
2325 add_action("/*[""["); yy_push_state( COMMENT );
2326         YY_BREAK
2327 case 3:
2328 YY_RULE_SETUP
2329 #line 198 "tests/scan.l"
2330 yy_push_state( LINEDIR );
2331         YY_BREAK
2332 case 4:
2333 YY_RULE_SETUP
2334 #line 199 "tests/scan.l"
2335 return SCDECL;
2336         YY_BREAK
2337 case 5:
2338 YY_RULE_SETUP
2339 #line 200 "tests/scan.l"
2340 return XSCDECL;
2341         YY_BREAK
2342 case 6:
2343 /* rule 6 can match eol */
2344 YY_RULE_SETUP
2345 #line 201 "tests/scan.l"
2346 START_CODEBLOCK(false); piece_flush(strlen(yytext)); piece_append("<PLex_Text>");
2347         YY_BREAK
2348 case 7:
2349 /* rule 7 can match eol */
2350 YY_RULE_SETUP
2351 #line 202 "tests/scan.l"
2352 {
2353                 brace_start_line = linenum;
2354                 ++linenum;
2355                 buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum);
2356                 brace_depth = 1;
2357                 yy_push_state(CODEBLOCK_MATCH_BRACE);
2358             }
2359         YY_BREAK
2360 case 8:
2361 YY_RULE_SETUP
2362 #line 210 "tests/scan.l"
2363 synerr( _("malformed '%top' directive") );
2364         YY_BREAK
2365 case 9:
2366 YY_RULE_SETUP
2367 #line 212 "tests/scan.l"
2368 /* discard */
2369         YY_BREAK
2370 case 10:
2371 YY_RULE_SETUP
2372 #line 214 "tests/scan.l"
2373 {
2374                         sectnum = 2;
2375                         bracelevel = 0;
2376                         mark_defs1();
2377                         line_directive_out(NULL, 1);
2378                         BEGIN(SECT2PROLOG);
2379 #if 1
2380  piece_append("</PLex_Section1>");
2381  piece_pack();
2382  piece_escape(yytext, strlen(yytext));
2383  piece_append("<PLex_Section2>");
2384  piece_pack();
2385  return ~SECTEND;
2386 #else
2387                         return SECTEND;
2388 #endif
2389                         }
2390         YY_BREAK
2391 case 11:
2392 /* rule 11 can match eol */
2393 YY_RULE_SETUP
2394 #line 232 "tests/scan.l"
2395 yytext_is_array = false; ++linenum; piece_append("<PLex_Section1_Options><PLex_Section1_Options_Array>"); piece_flush(strlen(yytext) - 1); piece_append("</PLex_Section1_Options_Array></PLex_Section1_Options>"); 
2396         YY_BREAK
2397 case 12:
2398 /* rule 12 can match eol */
2399 YY_RULE_SETUP
2400 #line 233 "tests/scan.l"
2401 yytext_is_array = true; ++linenum; piece_append("<PLex_Section1_Options><PLex_Section1_Options_Array value=\"true\">"); piece_flush(strlen(yytext) - 1); piece_append("</PLex_Section1_Options_Array></PLex_Section1_Options>");
2402         YY_BREAK
2403 case 13:
2404 YY_RULE_SETUP
2405 #line 235 "tests/scan.l"
2406 BEGIN(OPTION); return TOK_OPTION;
2407         YY_BREAK
2408 case 14:
2409 /* rule 14 can match eol */
2410 YY_RULE_SETUP
2411 #line 237 "tests/scan.l"
2412 ++linenum; /* ignore */
2413         YY_BREAK
2414 case 15:
2415 /* rule 15 can match eol */
2416 YY_RULE_SETUP
2417 #line 238 "tests/scan.l"
2418 ++linenum;      /* ignore */
2419         YY_BREAK
2420 /* xgettext: no-c-format */
2421 case 16:
2422 /* rule 16 can match eol */
2423 YY_RULE_SETUP
2424 #line 241 "tests/scan.l"
2425 synerr( _( "unrecognized '%' directive" ) );
2426         YY_BREAK
2427 case 17:
2428 YY_RULE_SETUP
2429 #line 243 "tests/scan.l"
2430 {
2431                         if(yyleng < MAXLINE)
2432                          {
2433                         strncpy( nmstr, yytext, sizeof(nmstr) );
2434                          }
2435                         else
2436                          {
2437                            synerr( _("Definition name too long\n"));
2438                            FLEX_EXIT(EXIT_FAILURE);
2439                          }
2440
2441                         didadef = false;
2442                         BEGIN(PICKUPDEF);
2443                         }
2444         YY_BREAK
2445 case 18:
2446 YY_RULE_SETUP
2447 #line 258 "tests/scan.l"
2448 RETURNNAME;
2449         YY_BREAK
2450 case 19:
2451 /* rule 19 can match eol */
2452 YY_RULE_SETUP
2453 #line 259 "tests/scan.l"
2454 ++linenum; /* allows blank lines in section 1 */
2455         YY_BREAK
2456 case 20:
2457 /* rule 20 can match eol */
2458 YY_RULE_SETUP
2459 #line 260 "tests/scan.l"
2460 ACTION_ECHO; ++linenum; /* maybe end of comment line */
2461         YY_BREAK
2462
2463 /* */
2464 case 21:
2465 YY_RULE_SETUP
2466 #line 265 "tests/scan.l"
2467 ACTION_ECHO;
2468         YY_BREAK
2469 case 22:
2470 YY_RULE_SETUP
2471 #line 266 "tests/scan.l"
2472 ACTION_ECHO;
2473         YY_BREAK
2474 case 23:
2475 /* rule 23 can match eol */
2476 YY_RULE_SETUP
2477 #line 268 "tests/scan.l"
2478 ++linenum; ACTION_ECHO;
2479         YY_BREAK
2480
2481
2482 case 24:
2483 YY_RULE_SETUP
2484 #line 271 "tests/scan.l"
2485 add_action("*/]""]"); yy_pop_state();
2486         YY_BREAK
2487
2488
2489 case 25:
2490 YY_RULE_SETUP
2491 #line 274 "tests/scan.l"
2492 ACTION_ECHO; yy_pop_state();
2493         YY_BREAK
2494
2495
2496 /* This is the same as COMMENT, but is discarded rather than output. */
2497 case 26:
2498 YY_RULE_SETUP
2499 #line 279 "tests/scan.l"
2500 yy_pop_state();
2501         YY_BREAK
2502 case 27:
2503 YY_RULE_SETUP
2504 #line 280 "tests/scan.l"
2505 ;
2506         YY_BREAK
2507 case 28:
2508 YY_RULE_SETUP
2509 #line 281 "tests/scan.l"
2510 ;
2511         YY_BREAK
2512 case 29:
2513 /* rule 29 can match eol */
2514 YY_RULE_SETUP
2515 #line 282 "tests/scan.l"
2516 ++linenum;
2517         YY_BREAK
2518
2519
2520 case 30:
2521 YY_RULE_SETUP
2522 #line 286 "tests/scan.l"
2523 yy_pop_state();
2524         YY_BREAK
2525 case 31:
2526 YY_RULE_SETUP
2527 #line 287 "tests/scan.l"
2528 ;
2529         YY_BREAK
2530 case 32:
2531 /* rule 32 can match eol */
2532 YY_RULE_SETUP
2533 #line 288 "tests/scan.l"
2534 ++linenum;
2535         YY_BREAK
2536
2537
2538 case 33:
2539 /* rule 33 can match eol */
2540 YY_RULE_SETUP
2541 #line 292 "tests/scan.l"
2542 yy_pop_state();
2543         YY_BREAK
2544 case 34:
2545 YY_RULE_SETUP
2546 #line 293 "tests/scan.l"
2547 linenum = myctoi( yytext );
2548         YY_BREAK
2549 case 35:
2550 YY_RULE_SETUP
2551 #line 295 "tests/scan.l"
2552 {
2553                         free(infilename);
2554                         infilename = xstrdup(yytext + 1);
2555                         infilename[strlen( infilename ) - 1] = '\0';
2556                         }
2557         YY_BREAK
2558 case 36:
2559 YY_RULE_SETUP
2560 #line 300 "tests/scan.l"
2561 /* ignore spurious characters */
2562         YY_BREAK
2563
2564
2565 case 37:
2566 YY_RULE_SETUP
2567 #line 303 "tests/scan.l"
2568 ACTION_ECHO_QSTART;
2569         YY_BREAK
2570 case 38:
2571 YY_RULE_SETUP
2572 #line 304 "tests/scan.l"
2573 ACTION_ECHO_QEND;
2574         YY_BREAK
2575
2576
2577 case 39:
2578 /* rule 39 can match eol */
2579 YY_RULE_SETUP
2580 #line 308 "tests/scan.l"
2581 ++linenum; piece_append("</PLex_Text>"); piece_flush(strlen(yytext)); END_CODEBLOCK;
2582         YY_BREAK
2583 case 40:
2584 YY_RULE_SETUP
2585 #line 309 "tests/scan.l"
2586 ACTION_ECHO;
2587         YY_BREAK
2588 case 41:
2589 YY_RULE_SETUP
2590 #line 310 "tests/scan.l"
2591 ACTION_ECHO;
2592         YY_BREAK
2593 case 42:
2594 /* rule 42 can match eol */
2595 YY_RULE_SETUP
2596 #line 311 "tests/scan.l"
2597 {
2598                         ++linenum;
2599                         ACTION_ECHO;
2600                         if ( indented_code ) { piece_flush(strlen(yytext)); piece_append("</PLex_Text>"); END_CODEBLOCK; }
2601                         }
2602         YY_BREAK
2603
2604
2605 case 43:
2606 YY_RULE_SETUP
2607 #line 319 "tests/scan.l"
2608 {
2609                 if( --brace_depth == 0){
2610                     /* TODO: Matched. */
2611                     yy_pop_state();
2612                 }else
2613                     buf_strnappend(&top_buf, yytext, yyleng);
2614             }
2615         YY_BREAK
2616 case 44:
2617 YY_RULE_SETUP
2618 #line 327 "tests/scan.l"
2619 {
2620                 brace_depth++;
2621                 buf_strnappend(&top_buf, yytext, yyleng);
2622             }
2623         YY_BREAK
2624 case 45:
2625 /* rule 45 can match eol */
2626 YY_RULE_SETUP
2627 #line 332 "tests/scan.l"
2628 {
2629                 ++linenum;
2630                 buf_strnappend(&top_buf, yytext, yyleng);
2631             }
2632         YY_BREAK
2633 case 46:
2634 YY_RULE_SETUP
2635 #line 337 "tests/scan.l"
2636 buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart));
2637         YY_BREAK
2638 case 47:
2639 YY_RULE_SETUP
2640 #line 338 "tests/scan.l"
2641 buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend));
2642         YY_BREAK
2643 case 48:
2644 YY_RULE_SETUP
2645 #line 339 "tests/scan.l"
2646 {
2647        buf_strnappend(&top_buf, yytext, yyleng);
2648     }
2649         YY_BREAK
2650 case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE):
2651 #line 343 "tests/scan.l"
2652 {
2653                 linenum = brace_start_line;
2654                 synerr(_("Unmatched '{'"));
2655                 yyterminate();
2656                 }
2657         YY_BREAK
2658
2659
2660 case 49:
2661 YY_RULE_SETUP
2662 #line 352 "tests/scan.l"
2663 /* separates name and definition */
2664         YY_BREAK
2665 case 50:
2666 YY_RULE_SETUP
2667 #line 354 "tests/scan.l"
2668 {
2669                         if(yyleng < MAXLINE)
2670                          {
2671                         strncpy( nmdef, yytext, sizeof(nmdef) );
2672                          }
2673                         else
2674                          {
2675                            format_synerr( _("Definition value for {%s} too long\n"), nmstr);
2676                            FLEX_EXIT(EXIT_FAILURE);
2677                          }
2678                         /* Skip trailing whitespace. */
2679                         {
2680                             size_t i = strlen( nmdef );
2681                             while (i > 0 && (nmdef[i-1] == ' ' || nmdef[i-1] == '\t'))
2682                                --i;
2683                             nmdef[i] = '\0';
2684                         }
2685
2686                         ndinstal( nmstr, nmdef );
2687                         didadef = true;
2688                         }
2689         YY_BREAK
2690 case 51:
2691 /* rule 51 can match eol */
2692 YY_RULE_SETUP
2693 #line 376 "tests/scan.l"
2694 {
2695                         if ( ! didadef )
2696                                 synerr( _( "incomplete name definition" ) );
2697                         BEGIN(INITIAL);
2698                         ++linenum;
2699                         }
2700         YY_BREAK
2701
2702
2703 case 52:
2704 /* rule 52 can match eol */
2705 YY_RULE_SETUP
2706 #line 386 "tests/scan.l"
2707 ++linenum; BEGIN(INITIAL);
2708         YY_BREAK
2709 case 53:
2710 YY_RULE_SETUP
2711 #line 387 "tests/scan.l"
2712 option_sense = true;
2713         YY_BREAK
2714 case 54:
2715 YY_RULE_SETUP
2716 #line 389 "tests/scan.l"
2717 return '=';
2718         YY_BREAK
2719 case 55:
2720 YY_RULE_SETUP
2721 #line 391 "tests/scan.l"
2722 option_sense = ! option_sense;
2723         YY_BREAK
2724 case 56:
2725 YY_RULE_SETUP
2726 #line 393 "tests/scan.l"
2727 csize = option_sense ? 128 : 256; markup_option("SevenBit", option_sense);
2728         YY_BREAK
2729 case 57:
2730 YY_RULE_SETUP
2731 #line 394 "tests/scan.l"
2732 csize = option_sense ? 256 : 128; markup_option("SevenBit", !option_sense);
2733         YY_BREAK
2734 case 58:
2735 YY_RULE_SETUP
2736 #line 396 "tests/scan.l"
2737 long_align = option_sense; markup_option("Align", option_sense);
2738         YY_BREAK
2739 case 59:
2740 YY_RULE_SETUP
2741 #line 397 "tests/scan.l"
2742 {
2743                         ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense );
2744             interactive = option_sense;
2745  markup_option("AlwaysInteractive", option_sense);
2746                         }
2747         YY_BREAK
2748 case 60:
2749 YY_RULE_SETUP
2750 #line 402 "tests/scan.l"
2751 yytext_is_array = option_sense; markup_option("Array", option_sense);
2752         YY_BREAK
2753 case 61:
2754 YY_RULE_SETUP
2755 #line 403 "tests/scan.l"
2756 backing_up_report = option_sense; markup_option("Backup", option_sense);
2757         YY_BREAK
2758 case 62:
2759 YY_RULE_SETUP
2760 #line 404 "tests/scan.l"
2761 interactive = ! option_sense; markup_option("Interactive", !option_sense);
2762         YY_BREAK
2763 case 63:
2764 YY_RULE_SETUP
2765 #line 405 "tests/scan.l"
2766 bison_bridge_lval = option_sense; markup_option("BisonBridge", option_sense);
2767         YY_BREAK
2768 case 64:
2769 YY_RULE_SETUP
2770 #line 406 "tests/scan.l"
2771 { if((bison_bridge_lloc = option_sense))
2772                             bison_bridge_lval = true;
2773  markup_option("BisonLocations", option_sense);
2774                      }
2775         YY_BREAK
2776 case 65:
2777 YY_RULE_SETUP
2778 #line 410 "tests/scan.l"
2779 C_plus_plus = option_sense; markup_option("CPlusPlus", option_sense);
2780         YY_BREAK
2781 case 66:
2782 YY_RULE_SETUP
2783 #line 411 "tests/scan.l"
2784 sf_set_case_ins(!option_sense); markup_option("Caseless", !option_sense);
2785         YY_BREAK
2786 case 67:
2787 YY_RULE_SETUP
2788 #line 412 "tests/scan.l"
2789 sf_set_case_ins(option_sense); markup_option("Caseless", option_sense);
2790         YY_BREAK
2791 case 68:
2792 YY_RULE_SETUP
2793 #line 413 "tests/scan.l"
2794 ddebug = option_sense; markup_option("Debug", option_sense);
2795         YY_BREAK
2796 case 69:
2797 YY_RULE_SETUP
2798 #line 414 "tests/scan.l"
2799 spprdflt = ! option_sense; markup_option("Default", option_sense);
2800         YY_BREAK
2801 case 70:
2802 YY_RULE_SETUP
2803 #line 415 "tests/scan.l"
2804 useecs = option_sense; markup_option("ECS", option_sense);
2805         YY_BREAK
2806 case 71:
2807 YY_RULE_SETUP
2808 #line 416 "tests/scan.l"
2809 {
2810                         useecs = usemecs = false;
2811                         use_read = fullspd = true;
2812  markup_option("Fast", option_sense);
2813                         }
2814         YY_BREAK
2815 case 72:
2816 YY_RULE_SETUP
2817 #line 421 "tests/scan.l"
2818 {
2819                         useecs = usemecs = false;
2820                         use_read = fulltbl = true;
2821  markup_option("Full", option_sense);
2822                         }
2823         YY_BREAK
2824 case 73:
2825 YY_RULE_SETUP
2826 #line 426 "tests/scan.l"
2827 ACTION_IFDEF("YY_NO_INPUT", ! option_sense); markup_option("Input", option_sense);
2828         YY_BREAK
2829 case 74:
2830 YY_RULE_SETUP
2831 #line 427 "tests/scan.l"
2832 interactive = option_sense; markup_option("Interactive", option_sense);
2833         YY_BREAK
2834 case 75:
2835 YY_RULE_SETUP
2836 #line 428 "tests/scan.l"
2837 lex_compat = option_sense; markup_option("LexCompat", option_sense);
2838         YY_BREAK
2839 case 76:
2840 YY_RULE_SETUP
2841 #line 429 "tests/scan.l"
2842 posix_compat = option_sense; markup_option("PosixCompat", option_sense);
2843         YY_BREAK
2844 case 77:
2845 YY_RULE_SETUP
2846 #line 430 "tests/scan.l"
2847 gen_line_dirs = option_sense; markup_option("Line", option_sense);
2848         YY_BREAK
2849 case 78:
2850 YY_RULE_SETUP
2851 #line 431 "tests/scan.l"
2852 {
2853                         ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense);
2854             /* Override yywrap */
2855             if( option_sense == true )
2856                 do_yywrap = false;
2857  markup_option("Main", option_sense);
2858                         }
2859         YY_BREAK
2860 case 79:
2861 YY_RULE_SETUP
2862 #line 438 "tests/scan.l"
2863 usemecs = option_sense; markup_option("MetaECS", option_sense);
2864         YY_BREAK
2865 case 80:
2866 YY_RULE_SETUP
2867 #line 439 "tests/scan.l"
2868 {
2869                         ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense );
2870             interactive = !option_sense;
2871  markup_option("NeverInteractive", option_sense);
2872                         }
2873         YY_BREAK
2874 case 81:
2875 YY_RULE_SETUP
2876 #line 444 "tests/scan.l"
2877 performance_report += option_sense ? 1 : -1; markup_option("PerfReport", option_sense);
2878         YY_BREAK
2879 case 82:
2880 YY_RULE_SETUP
2881 #line 445 "tests/scan.l"
2882 yytext_is_array = ! option_sense; markup_option("Array", !option_sense);
2883         YY_BREAK
2884 case 83:
2885 YY_RULE_SETUP
2886 #line 446 "tests/scan.l"
2887 use_read = option_sense; markup_option("Read", option_sense);
2888         YY_BREAK
2889 case 84:
2890 YY_RULE_SETUP
2891 #line 447 "tests/scan.l"
2892 reentrant = option_sense; markup_option("Reentrant", option_sense);
2893         YY_BREAK
2894 case 85:
2895 YY_RULE_SETUP
2896 #line 448 "tests/scan.l"
2897 reject_really_used = option_sense; markup_option("Reject", option_sense);
2898         YY_BREAK
2899 case 86:
2900 YY_RULE_SETUP
2901 #line 449 "tests/scan.l"
2902 ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); markup_option("Stack", option_sense);
2903         YY_BREAK
2904 case 87:
2905 YY_RULE_SETUP
2906 #line 450 "tests/scan.l"
2907 do_stdinit = option_sense; markup_option("StdInit", option_sense);
2908         YY_BREAK
2909 case 88:
2910 YY_RULE_SETUP
2911 #line 451 "tests/scan.l"
2912 use_stdout = option_sense; markup_option("StdOut", option_sense);
2913         YY_BREAK
2914 case 89:
2915 YY_RULE_SETUP
2916 #line 452 "tests/scan.l"
2917 ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); markup_option("UniStd", option_sense);
2918         YY_BREAK
2919 case 90:
2920 YY_RULE_SETUP
2921 #line 453 "tests/scan.l"
2922 ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); markup_option("Unput", option_sense);
2923         YY_BREAK
2924 case 91:
2925 YY_RULE_SETUP
2926 #line 454 "tests/scan.l"
2927 printstats = option_sense; markup_option("Verbose", option_sense);
2928         YY_BREAK
2929 case 92:
2930 YY_RULE_SETUP
2931 #line 455 "tests/scan.l"
2932 nowarn = ! option_sense; markup_option("Warn", option_sense);
2933         YY_BREAK
2934 case 93:
2935 YY_RULE_SETUP
2936 #line 456 "tests/scan.l"
2937 do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); markup_option("YYLineNo", option_sense);
2938         YY_BREAK
2939 case 94:
2940 YY_RULE_SETUP
2941 #line 457 "tests/scan.l"
2942 yymore_really_used = option_sense; markup_option("YYMore", option_sense);
2943         YY_BREAK
2944 case 95:
2945 YY_RULE_SETUP
2946 #line 458 "tests/scan.l"
2947 do_yywrap = option_sense; markup_option("YYWrap", option_sense);
2948         YY_BREAK
2949 case 96:
2950 YY_RULE_SETUP
2951 #line 460 "tests/scan.l"
2952 ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); markup_option("YYPushState", option_sense);
2953         YY_BREAK
2954 case 97:
2955 YY_RULE_SETUP
2956 #line 461 "tests/scan.l"
2957 ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); markup_option("YYPopState", option_sense);
2958         YY_BREAK
2959 case 98:
2960 YY_RULE_SETUP
2961 #line 462 "tests/scan.l"
2962 ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); markup_option("YYTopState", option_sense);
2963         YY_BREAK
2964 case 99:
2965 YY_RULE_SETUP
2966 #line 464 "tests/scan.l"
2967 ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); markup_option("YYScanBuffer", option_sense);
2968         YY_BREAK
2969 case 100:
2970 YY_RULE_SETUP
2971 #line 465 "tests/scan.l"
2972 ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); markup_option("YYScanBytes", option_sense);
2973         YY_BREAK
2974 case 101:
2975 YY_RULE_SETUP
2976 #line 466 "tests/scan.l"
2977 ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); markup_option("YYScanString", option_sense);
2978         YY_BREAK
2979 case 102:
2980 YY_RULE_SETUP
2981 #line 468 "tests/scan.l"
2982 ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); markup_option("YYAlloc", option_sense);
2983         YY_BREAK
2984 case 103:
2985 YY_RULE_SETUP
2986 #line 469 "tests/scan.l"
2987 ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); markup_option("YYRealloc", option_sense);
2988         YY_BREAK
2989 case 104:
2990 YY_RULE_SETUP
2991 #line 470 "tests/scan.l"
2992 ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); markup_option("YYFree", option_sense);
2993         YY_BREAK
2994 case 105:
2995 YY_RULE_SETUP
2996 #line 472 "tests/scan.l"
2997 ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); markup_option("YYGetDebug", option_sense);
2998         YY_BREAK
2999 case 106:
3000 YY_RULE_SETUP
3001 #line 473 "tests/scan.l"
3002 ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); markup_option("YYSetDebug", option_sense);
3003         YY_BREAK
3004 case 107:
3005 YY_RULE_SETUP
3006 #line 474 "tests/scan.l"
3007 ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); markup_option("YYGetExtra", option_sense);
3008         YY_BREAK
3009 case 108:
3010 YY_RULE_SETUP
3011 #line 475 "tests/scan.l"
3012 ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); markup_option("YYSetExtra", option_sense);
3013         YY_BREAK
3014 case 109:
3015 YY_RULE_SETUP
3016 #line 476 "tests/scan.l"
3017 ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); markup_option("YYGetLeng", option_sense);
3018         YY_BREAK
3019 case 110:
3020 YY_RULE_SETUP
3021 #line 477 "tests/scan.l"
3022 ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); markup_option("YYGetText", option_sense);
3023         YY_BREAK
3024 case 111:
3025 YY_RULE_SETUP
3026 #line 478 "tests/scan.l"
3027 ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); markup_option("YYGetLineNo", option_sense);
3028         YY_BREAK
3029 case 112:
3030 YY_RULE_SETUP
3031 #line 479 "tests/scan.l"
3032 ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); markup_option("YYSetLineNo", option_sense);
3033         YY_BREAK
3034 case 113:
3035 YY_RULE_SETUP
3036 #line 480 "tests/scan.l"
3037 ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); markup_option("YYGetIn", option_sense);
3038         YY_BREAK
3039 case 114:
3040 YY_RULE_SETUP
3041 #line 481 "tests/scan.l"
3042 ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); markup_option("YYSetIn", option_sense);
3043         YY_BREAK
3044 case 115:
3045 YY_RULE_SETUP
3046 #line 482 "tests/scan.l"
3047 ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); markup_option("YYGetOut", option_sense);
3048         YY_BREAK
3049 case 116:
3050 YY_RULE_SETUP
3051 #line 483 "tests/scan.l"
3052 ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); markup_option("YYSetOut", option_sense);
3053         YY_BREAK
3054 case 117:
3055 YY_RULE_SETUP
3056 #line 484 "tests/scan.l"
3057 ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); markup_option("YYGetLVal", option_sense);
3058         YY_BREAK
3059 case 118:
3060 YY_RULE_SETUP
3061 #line 485 "tests/scan.l"
3062 ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); markup_option("YYSetLVal", option_sense);
3063         YY_BREAK
3064 case 119:
3065 YY_RULE_SETUP
3066 #line 486 "tests/scan.l"
3067 ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); markup_option("YYGetLLoc", option_sense);
3068         YY_BREAK
3069 case 120:
3070 YY_RULE_SETUP
3071 #line 487 "tests/scan.l"
3072 ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); markup_option("YYSetLLoc", option_sense);
3073         YY_BREAK
3074 case 121:
3075 YY_RULE_SETUP
3076 #line 489 "tests/scan.l"
3077 return TOK_EXTRA_TYPE;
3078         YY_BREAK
3079 case 122:
3080 YY_RULE_SETUP
3081 #line 490 "tests/scan.l"
3082 return TOK_OUTFILE;
3083         YY_BREAK
3084 case 123:
3085 YY_RULE_SETUP
3086 #line 491 "tests/scan.l"
3087 return TOK_PREFIX;
3088         YY_BREAK
3089 case 124:
3090 YY_RULE_SETUP
3091 #line 492 "tests/scan.l"
3092 return TOK_YYCLASS;
3093         YY_BREAK
3094 case 125:
3095 YY_RULE_SETUP
3096 #line 493 "tests/scan.l"
3097 return TOK_HEADER_FILE;
3098         YY_BREAK
3099 case 126:
3100 YY_RULE_SETUP
3101 #line 494 "tests/scan.l"
3102 return TOK_TABLES_FILE;
3103         YY_BREAK
3104 case 127:
3105 YY_RULE_SETUP
3106 #line 495 "tests/scan.l"
3107 {
3108                     tablesverify = option_sense;
3109                     if(!tablesext && option_sense)
3110                         tablesext = true;
3111  markup_option("TablesVerify", option_sense);
3112                     }
3113         YY_BREAK
3114 case 128:
3115 YY_RULE_SETUP
3116 #line 503 "tests/scan.l"
3117 {
3118                         if(yyleng-1 < MAXLINE)
3119                          {
3120                         strncpy( nmstr, yytext + 1, sizeof(nmstr) );
3121                          }
3122                         else
3123                          {
3124                            synerr( _("Option line too long\n"));
3125                            FLEX_EXIT(EXIT_FAILURE);
3126                          }
3127                         nmstr[strlen( nmstr ) - 1] = '\0';
3128 #if 1
3129  piece_pack();
3130  piece_append("<PLex_String>\"<PLex_Text>");
3131  piece_escape(yytext + 1, strlen(yytext + 1) - 1);
3132  piece_append("</PLex_Text>\"</PLex_String>");
3133  piece_pack();
3134  return ~NAME; /* actually a misnomer */
3135 #else
3136                         return NAME;
3137 #endif
3138                         }
3139         YY_BREAK
3140 case 129:
3141 YY_RULE_SETUP
3142 #line 526 "tests/scan.l"
3143 {
3144                         format_synerr( _( "unrecognized %%option: %s" ),
3145                                 yytext );
3146                         BEGIN(RECOVER);
3147                         }
3148         YY_BREAK
3149
3150 case 130:
3151 /* rule 130 can match eol */
3152 YY_RULE_SETUP
3153 #line 533 "tests/scan.l"
3154 ++linenum; BEGIN(INITIAL);
3155         YY_BREAK
3156
3157 case 131:
3158 YY_RULE_SETUP
3159 #line 537 "tests/scan.l"
3160 ++bracelevel; yyless( 2 );      /* eat only %{ */
3161         YY_BREAK
3162 case 132:
3163 YY_RULE_SETUP
3164 #line 538 "tests/scan.l"
3165 --bracelevel; yyless( 2 );      /* eat only %} */
3166         YY_BREAK
3167 case 133:
3168 YY_RULE_SETUP
3169 #line 540 "tests/scan.l"
3170 START_CODEBLOCK(true); piece_append("<PLex_Text>"); /* indented code in prolog */
3171         YY_BREAK
3172 case 134:
3173 YY_RULE_SETUP
3174 #line 542 "tests/scan.l"
3175 {
3176         /* non-indented code */
3177                 if ( bracelevel <= 0 ) {
3178             /* not in %{ ... %} */
3179             yyless( 0 );        /* put it all back */
3180             yy_set_bol( 1 );
3181             mark_prolog();
3182             BEGIN(SECT2);
3183         } else {
3184             START_CODEBLOCK(true);
3185  piece_append("<PLex_Text>");
3186         }
3187     }
3188         YY_BREAK
3189 case 135:
3190 YY_RULE_SETUP
3191 #line 556 "tests/scan.l"
3192 ACTION_ECHO;
3193         YY_BREAK
3194 case 136:
3195 /* rule 136 can match eol */
3196 YY_RULE_SETUP
3197 #line 557 "tests/scan.l"
3198 ++linenum; ACTION_ECHO;
3199         YY_BREAK
3200 case YY_STATE_EOF(SECT2PROLOG):
3201 #line 559 "tests/scan.l"
3202 {
3203                         mark_prolog();
3204                         sectnum = 0;
3205 #if 1
3206  piece_pack();
3207  piece_append("</PLex_Section2>");
3208  piece_pack();
3209  return ~YY_NULL;
3210 #else
3211                         yyterminate(); /* to stop the parser */
3212 #endif
3213                         }
3214         YY_BREAK
3215
3216
3217 case 137:
3218 /* rule 137 can match eol */
3219 YY_RULE_SETUP
3220 #line 574 "tests/scan.l"
3221 ++linenum; /* allow blank lines in section 2 */
3222         YY_BREAK
3223 case 138:
3224 YY_RULE_SETUP
3225 #line 576 "tests/scan.l"
3226 {
3227                         indented_code = false;
3228                         doing_codeblock = true;
3229                         bracelevel = 1;
3230                         BEGIN(PERCENT_BRACE_ACTION);
3231  piece_flush(strlen(yytext) - 2);
3232  piece_append("<PLex_Section1Or2_CodeBlock>");
3233  piece_flush(2);
3234  piece_append("<PLex_Text>");
3235                         }
3236         YY_BREAK
3237 case 139:
3238 YY_RULE_SETUP
3239 #line 587 "tests/scan.l"
3240 {
3241                         /* Allow "<" to appear in (?x) patterns. */
3242                         if (!sf_skip_ws())
3243                             BEGIN(SC);
3244                         return '<';
3245                     }
3246         YY_BREAK
3247 case 140:
3248 YY_RULE_SETUP
3249 #line 593 "tests/scan.l"
3250 return '^';
3251         YY_BREAK
3252 case 141:
3253 YY_RULE_SETUP
3254 #line 594 "tests/scan.l"
3255 BEGIN(QUOTE); return '"';
3256         YY_BREAK
3257 case 142:
3258 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3259 (yy_c_buf_p) = yy_cp = yy_bp + 1;
3260 YY_DO_BEFORE_ACTION; /* set up yytext again */
3261 YY_RULE_SETUP
3262 #line 595 "tests/scan.l"
3263 {
3264                         BEGIN(NUM);
3265                         if ( lex_compat || posix_compat )
3266                                 return BEGIN_REPEAT_POSIX;
3267                         else
3268                                 return BEGIN_REPEAT_FLEX;
3269                         }
3270         YY_BREAK
3271 case 143:
3272 /* rule 143 can match eol */
3273 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3274 YY_LINENO_REWIND_TO(yy_bp + 1);
3275 (yy_c_buf_p) = yy_cp = yy_bp + 1;
3276 YY_DO_BEFORE_ACTION; /* set up yytext again */
3277 YY_RULE_SETUP
3278 #line 602 "tests/scan.l"
3279 return '$';
3280         YY_BREAK
3281 case 144:
3282 YY_RULE_SETUP
3283 #line 604 "tests/scan.l"
3284 {
3285                         bracelevel = 1;
3286                         BEGIN(PERCENT_BRACE_ACTION);
3287  piece_flush(strlen(yytext) - 2);
3288  piece_append("<PLex_Section2_Rule_Action>");
3289
3290                         if ( in_rule )
3291                                 {
3292                                 doing_rule_action = true;
3293                                 in_rule = false;
3294 #if 1
3295  piece_pack();
3296  piece_escape(yytext, 2);
3297  piece_pack();
3298  piece_append("<PLex_Text>");
3299  return ~'\n';
3300 #else
3301                                 return '\n';
3302 #endif
3303                                 }
3304 #if 1 /* don't think this can really happen */
3305  abort();
3306 #else
3307  piece_flush(strlen(yytext));
3308  piece_append("<PLex_Text>");
3309 #endif
3310                         }
3311         YY_BREAK
3312 case 145:
3313 /* rule 145 can match eol */
3314 YY_RULE_SETUP
3315 #line 631 "tests/scan.l"
3316 {
3317                         if (sf_skip_ws()){
3318                             /* We're in the middle of a (?x: ) pattern. */
3319                             /* Push back everything starting at the "|" */
3320                             int amt = (int) (strchr (yytext, '|') - yytext);
3321                             yyless(amt);
3322                         }
3323                         else {
3324                             add_action("]""]");
3325                             continued_action = true;
3326                             ++linenum;
3327 #if 1
3328  int i;
3329  for (i = 0; yytext[i] == '\t' || yytext[i] == ' '; ++i)
3330   ;
3331  piece_flush(i);
3332  piece_pack();
3333  piece_append("<PLex_Section2_Rule_Action continued=\"true\">");
3334  piece_escape(yytext, strlen(yytext));
3335  piece_append("</PLex_Section2_Rule_Action>");
3336  piece_pack();
3337  return ~'\n';
3338 #else
3339                             return '\n';
3340 #endif
3341                         }
3342                     }
3343         YY_BREAK
3344 case 146:
3345 YY_RULE_SETUP
3346 #line 659 "tests/scan.l"
3347 {
3348
3349                 if (sf_skip_ws()){
3350                     /* We're in the middle of a (?x: ) pattern. */
3351                     yy_push_state(COMMENT_DISCARD);
3352                 }
3353                 else{
3354                     yyless( yyleng - 2 );       /* put back '/', '*' */
3355                     bracelevel = 0;
3356                     continued_action = false;
3357                     BEGIN(ACTION);
3358                 }
3359                         }
3360         YY_BREAK
3361 case 147:
3362 YY_RULE_SETUP
3363 #line 673 "tests/scan.l"
3364 /* allow indented rules */ ;
3365         YY_BREAK
3366 case 148:
3367 YY_RULE_SETUP
3368 #line 675 "tests/scan.l"
3369 {
3370             if (sf_skip_ws()){
3371                 /* We're in the middle of a (?x: ) pattern. */
3372             }
3373             else{
3374                 /* This rule is separate from the one below because
3375                  * otherwise we get variable trailing context, so
3376                  * we can't build the scanner using -{f,F}.
3377                  */
3378                 bracelevel = 0;
3379                 continued_action = false;
3380                 BEGIN(ACTION);
3381
3382                 if ( in_rule )
3383                     {
3384                     doing_rule_action = true;
3385                     in_rule = false;
3386 #if 1
3387  piece_pack();
3388  piece_escape(yytext, strlen(yytext));
3389  piece_pack();
3390  piece_append("<PLex_Section2_Rule_Action><PLex_Text>");
3391  return ~'\n';
3392 #else
3393                     return '\n';
3394 #endif
3395                     }
3396             }
3397                         }
3398         YY_BREAK
3399 case 149:
3400 /* rule 149 can match eol */
3401 YY_RULE_SETUP
3402 #line 705 "tests/scan.l"
3403 {
3404             if (sf_skip_ws()){
3405                 /* We're in the middle of a (?x: ) pattern. */
3406                 ++linenum;
3407             }
3408             else{
3409                 bracelevel = 0;
3410                 continued_action = false;
3411                 BEGIN(ACTION);
3412 #if 1
3413  yyless(yyleng - 1);
3414 #else
3415                 unput( '\n' );  /* so <ACTION> sees it */
3416 #endif
3417
3418                 if ( in_rule )
3419                     {
3420                     doing_rule_action = true;
3421                     in_rule = false;
3422 #if 1
3423  piece_pack();
3424  piece_escape(yytext, strlen(yytext));
3425  piece_pack();
3426  piece_append("<PLex_Section2_Rule_Action><PLex_Text>");
3427  return ~'\n';
3428 #else
3429                     return '\n';
3430 #endif
3431                     }
3432             }
3433                         }
3434         YY_BREAK
3435 case 150:
3436 #line 738 "tests/scan.l"
3437 case 151:
3438 YY_RULE_SETUP
3439 #line 738 "tests/scan.l"
3440 return EOF_OP;
3441         YY_BREAK
3442 case 152:
3443 YY_RULE_SETUP
3444 #line 740 "tests/scan.l"
3445 {
3446                         sectnum = 3;
3447                         BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3);
3448                         outn("/* Begin user sect3 */");
3449 #if 1
3450  piece_pack();
3451  piece_append("</PLex_Section2>");
3452  piece_escape(yytext, strlen(yytext));
3453  piece_pack();
3454  piece_append("<PLex_Section3>");
3455  return ~YY_NULL;
3456 #else
3457                         yyterminate(); /* to stop the parser */
3458 #endif
3459
3460                         }
3461         YY_BREAK
3462 case 153:
3463 YY_RULE_SETUP
3464 #line 757 "tests/scan.l"
3465 {
3466                         int cclval;
3467
3468                         if(yyleng < MAXLINE)
3469                          {
3470                         strncpy( nmstr, yytext, sizeof(nmstr) );
3471                          }
3472                         else
3473                          {
3474                            synerr( _("Input line too long\n"));
3475                            FLEX_EXIT(EXIT_FAILURE);
3476                          }
3477
3478                         /* Check to see if we've already encountered this
3479                          * ccl.
3480                          */
3481                         if (0 /* <--- This "0" effectively disables the reuse of a
3482                    * character class (purely based on its source text).
3483                    * The reason it was disabled is so yacc/bison can parse
3484                    * ccl operations, such as ccl difference and union.
3485                    */
3486                 &&  (cclval = ccllookup( nmstr )) != 0 )
3487                                 {
3488                                 if ( input() != ']' )
3489                                         synerr( _( "bad character class" ) );
3490
3491                                 yylval = cclval;
3492                                 ++cclreuse;
3493                                 return PREVCCL;
3494                                 }
3495                         else
3496                                 {
3497                                 /* We fudge a bit.  We know that this ccl will
3498                                  * soon be numbered as lastccl + 1 by cclinit.
3499                                  */
3500                                 cclinstal( nmstr, lastccl + 1 );
3501
3502                                 /* Push back everything but the leading bracket
3503                                  * so the ccl can be rescanned.
3504                                  */
3505                                 yyless( 1 );
3506
3507                                 BEGIN(FIRSTCCL);
3508                                 return '[';
3509                                 }
3510                         }
3511         YY_BREAK
3512 case 154:
3513 YY_RULE_SETUP
3514 #line 803 "tests/scan.l"
3515 return CCL_OP_DIFF;
3516         YY_BREAK
3517 case 155:
3518 YY_RULE_SETUP
3519 #line 804 "tests/scan.l"
3520 return CCL_OP_UNION;
3521         YY_BREAK
3522 /* Check for :space: at the end of the rule so we don't
3523      * wrap the expanded regex in '(' ')' -- breaking trailing
3524      * context.
3525      */
3526 case 156:
3527 /* rule 156 can match eol */
3528 YY_RULE_SETUP
3529 #line 811 "tests/scan.l"
3530 {
3531                         char *nmdefptr;
3532             int end_is_ws, end_ch;
3533
3534             end_ch = yytext[yyleng-1];
3535             end_is_ws = end_ch != '}' ? 1 : 0;
3536
3537                         if(yyleng-1 < MAXLINE)
3538                          {
3539                         strncpy( nmstr, yytext + 1, sizeof(nmstr) );
3540                          }
3541                         else
3542                          {
3543                            synerr( _("Input line too long\n"));
3544                            FLEX_EXIT(EXIT_FAILURE);
3545                          }
3546 nmstr[yyleng - 2 - end_is_ws] = '\0';  /* chop trailing brace */
3547
3548                         if ( (nmdefptr = ndlookup( nmstr )) == 0 )
3549                                 format_synerr(
3550                                         _( "undefined definition {%s}" ),
3551                                                 nmstr );
3552
3553                         else
3554                                 { /* push back name surrounded by ()'s */
3555                                 size_t len = strlen( nmdefptr );
3556                 if (end_is_ws)
3557 #if 1
3558  yyless(yyleng - 1);
3559 #else
3560                     unput(end_ch);
3561 #endif
3562
3563                                 if ( lex_compat || nmdefptr[0] == '^' ||
3564                                      (len > 0 && nmdefptr[len - 1] == '$')
3565                      || (end_is_ws && trlcontxt && !sf_skip_ws()))
3566                                         { /* don't use ()'s after all */
3567                                         PUT_BACK_STRING(nmdefptr, 0);
3568
3569                                         if ( nmdefptr[0] == '^' )
3570                                                 BEGIN(CARETISBOL);
3571                                         }
3572
3573                                 else
3574                                         {
3575                                         unput(')');
3576                                         PUT_BACK_STRING(nmdefptr, 0);
3577                                         unput('(');
3578                                         }
3579                                 }
3580                         }
3581         YY_BREAK
3582 case 157:
3583 YY_RULE_SETUP
3584 #line 863 "tests/scan.l"
3585 {
3586                     if (sf_skip_ws())
3587                         yy_push_state(COMMENT_DISCARD);
3588                     else{
3589                         /* Push back the "*" and return "/" as usual. */
3590                         yyless(1);
3591                         return '/';
3592                     }
3593                 }
3594         YY_BREAK
3595 case 158:
3596 YY_RULE_SETUP
3597 #line 873 "tests/scan.l"
3598 {
3599                     if (lex_compat || posix_compat){
3600                         /* Push back the "?#" and treat it like a normal parens. */
3601                         yyless(1);
3602                         sf_push(); 
3603                         return '(';
3604                     }
3605                     else
3606                         yy_push_state(EXTENDED_COMMENT);
3607                 }
3608         YY_BREAK
3609 case 159:
3610 YY_RULE_SETUP
3611 #line 883 "tests/scan.l"
3612 {
3613                     sf_push();
3614                     if (lex_compat || posix_compat)
3615                         /* Push back the "?" and treat it like a normal parens. */
3616                         yyless(1);
3617                     else
3618                         BEGIN(GROUP_WITH_PARAMS);
3619                     return '(';
3620                 }
3621         YY_BREAK
3622 case 160:
3623 YY_RULE_SETUP
3624 #line 892 "tests/scan.l"
3625 sf_push(); return '(';
3626         YY_BREAK
3627 case 161:
3628 YY_RULE_SETUP
3629 #line 893 "tests/scan.l"
3630 {
3631                     if (_sf_top_ix > 0) {
3632                         sf_pop();
3633                         return ')';
3634                     } else
3635                         synerr(_("unbalanced parenthesis"));
3636                 }
3637         YY_BREAK
3638 case 162:
3639 YY_RULE_SETUP
3640 #line 901 "tests/scan.l"
3641 return (unsigned char) yytext[0];
3642         YY_BREAK
3643 case 163:
3644 YY_RULE_SETUP
3645 #line 902 "tests/scan.l"
3646 RETURNCHAR;
3647         YY_BREAK
3648 /* Nick added this rule for consistency with rest of scanner */
3649 case YY_STATE_EOF(SECT2):
3650 #line 905 "tests/scan.l"
3651 {
3652                         sectnum = 0;
3653 #if 1
3654  piece_pack();
3655  piece_append("</PLex_Section2>");
3656  piece_pack();
3657  return ~YY_NULL;
3658 #else
3659                         yyterminate(); /* to stop the parser */
3660 #endif
3661                         }
3662         YY_BREAK
3663
3664
3665 case 164:
3666 /* rule 164 can match eol */
3667 YY_RULE_SETUP
3668 #line 920 "tests/scan.l"
3669 ++linenum;      /* Allow blank lines & continuations */
3670         YY_BREAK
3671 case 165:
3672 YY_RULE_SETUP
3673 #line 921 "tests/scan.l"
3674 return (unsigned char) yytext[0];
3675         YY_BREAK
3676 case 166:
3677 YY_RULE_SETUP
3678 #line 922 "tests/scan.l"
3679 BEGIN(SECT2); return '>';
3680         YY_BREAK
3681 case 167:
3682 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3683 (yy_c_buf_p) = yy_cp = yy_bp + 1;
3684 YY_DO_BEFORE_ACTION; /* set up yytext again */
3685 YY_RULE_SETUP
3686 #line 923 "tests/scan.l"
3687 BEGIN(CARETISBOL); return '>';
3688         YY_BREAK
3689 case 168:
3690 YY_RULE_SETUP
3691 #line 924 "tests/scan.l"
3692 RETURNNAME;
3693         YY_BREAK
3694 case 169:
3695 YY_RULE_SETUP
3696 #line 925 "tests/scan.l"
3697 {
3698                         format_synerr( _( "bad <start condition>: %s" ),
3699                                 yytext );
3700                         }
3701         YY_BREAK
3702
3703 case 170:
3704 YY_RULE_SETUP
3705 #line 931 "tests/scan.l"
3706 BEGIN(SECT2); return '^';
3707         YY_BREAK
3708
3709 case 171:
3710 YY_RULE_SETUP
3711 #line 935 "tests/scan.l"
3712 RETURNCHAR;
3713         YY_BREAK
3714 case 172:
3715 YY_RULE_SETUP
3716 #line 936 "tests/scan.l"
3717 BEGIN(SECT2); return '"';
3718         YY_BREAK
3719 case 173:
3720 /* rule 173 can match eol */
3721 YY_RULE_SETUP
3722 #line 938 "tests/scan.l"
3723 {
3724                         synerr( _( "missing quote" ) );
3725                         BEGIN(SECT2);
3726                         ++linenum;
3727                         return '"';
3728                         }
3729         YY_BREAK
3730
3731
3732 case 174:
3733 YY_RULE_SETUP
3734 #line 947 "tests/scan.l"
3735 BEGIN(SECT2);
3736         YY_BREAK
3737 case 175:
3738 YY_RULE_SETUP
3739 #line 948 "tests/scan.l"
3740 BEGIN(GROUP_MINUS_PARAMS);
3741         YY_BREAK
3742 case 176:
3743 YY_RULE_SETUP
3744 #line 949 "tests/scan.l"
3745 sf_set_case_ins(1);
3746         YY_BREAK
3747 case 177:
3748 YY_RULE_SETUP
3749 #line 950 "tests/scan.l"
3750 sf_set_dot_all(1);
3751         YY_BREAK
3752 case 178:
3753 YY_RULE_SETUP
3754 #line 951 "tests/scan.l"
3755 sf_set_skip_ws(1);
3756         YY_BREAK
3757
3758
3759 case 179:
3760 YY_RULE_SETUP
3761 #line 954 "tests/scan.l"
3762 BEGIN(SECT2);
3763         YY_BREAK
3764 case 180:
3765 YY_RULE_SETUP
3766 #line 955 "tests/scan.l"
3767 sf_set_case_ins(0);
3768         YY_BREAK
3769 case 181:
3770 YY_RULE_SETUP
3771 #line 956 "tests/scan.l"
3772 sf_set_dot_all(0);
3773         YY_BREAK
3774 case 182:
3775 YY_RULE_SETUP
3776 #line 957 "tests/scan.l"
3777 sf_set_skip_ws(0);
3778         YY_BREAK
3779
3780
3781 case 183:
3782 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3783 (yy_c_buf_p) = yy_cp = yy_bp + 1;
3784 YY_DO_BEFORE_ACTION; /* set up yytext again */
3785 YY_RULE_SETUP
3786 #line 961 "tests/scan.l"
3787 BEGIN(CCL); return '^';
3788         YY_BREAK
3789 case 184:
3790 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3791 (yy_c_buf_p) = yy_cp = yy_bp + 1;
3792 YY_DO_BEFORE_ACTION; /* set up yytext again */
3793 YY_RULE_SETUP
3794 #line 962 "tests/scan.l"
3795 return '^';
3796         YY_BREAK
3797 case 185:
3798 YY_RULE_SETUP
3799 #line 963 "tests/scan.l"
3800 BEGIN(CCL); RETURNCHAR;
3801         YY_BREAK
3802
3803
3804 case 186:
3805 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
3806 (yy_c_buf_p) = yy_cp = yy_bp + 1;
3807 YY_DO_BEFORE_ACTION; /* set up yytext again */
3808 YY_RULE_SETUP
3809 #line 967 "tests/scan.l"
3810 return '-';
3811         YY_BREAK
3812 case 187:
3813 YY_RULE_SETUP
3814 #line 968 "tests/scan.l"
3815 RETURNCHAR;
3816         YY_BREAK
3817 case 188:
3818 YY_RULE_SETUP
3819 #line 969 "tests/scan.l"
3820 BEGIN(SECT2); return ']';
3821         YY_BREAK
3822 case 189:
3823 /* rule 189 can match eol */
3824 YY_RULE_SETUP
3825 #line 970 "tests/scan.l"
3826 {
3827                         synerr( _( "bad character class" ) );
3828                         BEGIN(SECT2);
3829                         return ']';
3830                         }
3831         YY_BREAK
3832
3833
3834 case 190:
3835 YY_RULE_SETUP
3836 #line 978 "tests/scan.l"
3837 BEGIN(CCL); return CCE_ALNUM;
3838         YY_BREAK
3839 case 191:
3840 YY_RULE_SETUP
3841 #line 979 "tests/scan.l"
3842 BEGIN(CCL); return CCE_ALPHA;
3843         YY_BREAK
3844 case 192:
3845 YY_RULE_SETUP
3846 #line 980 "tests/scan.l"
3847 BEGIN(CCL); return CCE_BLANK;
3848         YY_BREAK
3849 case 193:
3850 YY_RULE_SETUP
3851 #line 981 "tests/scan.l"
3852 BEGIN(CCL); return CCE_CNTRL;
3853         YY_BREAK
3854 case 194:
3855 YY_RULE_SETUP
3856 #line 982 "tests/scan.l"
3857 BEGIN(CCL); return CCE_DIGIT;
3858         YY_BREAK
3859 case 195:
3860 YY_RULE_SETUP
3861 #line 983 "tests/scan.l"
3862 BEGIN(CCL); return CCE_GRAPH;
3863         YY_BREAK
3864 case 196:
3865 YY_RULE_SETUP
3866 #line 984 "tests/scan.l"
3867 BEGIN(CCL); return CCE_LOWER;
3868         YY_BREAK
3869 case 197:
3870 YY_RULE_SETUP
3871 #line 985 "tests/scan.l"
3872 BEGIN(CCL); return CCE_PRINT;
3873         YY_BREAK
3874 case 198:
3875 YY_RULE_SETUP
3876 #line 986 "tests/scan.l"
3877 BEGIN(CCL); return CCE_PUNCT;
3878         YY_BREAK
3879 case 199:
3880 YY_RULE_SETUP
3881 #line 987 "tests/scan.l"
3882 BEGIN(CCL); return CCE_SPACE;
3883         YY_BREAK
3884 case 200:
3885 YY_RULE_SETUP
3886 #line 988 "tests/scan.l"
3887 BEGIN(CCL); return CCE_UPPER;
3888         YY_BREAK
3889 case 201:
3890 YY_RULE_SETUP
3891 #line 989 "tests/scan.l"
3892 BEGIN(CCL); return CCE_XDIGIT;
3893         YY_BREAK
3894 case 202:
3895 YY_RULE_SETUP
3896 #line 991 "tests/scan.l"
3897 BEGIN(CCL); return CCE_NEG_ALNUM;
3898         YY_BREAK
3899 case 203:
3900 YY_RULE_SETUP
3901 #line 992 "tests/scan.l"
3902 BEGIN(CCL); return CCE_NEG_ALPHA;
3903         YY_BREAK
3904 case 204:
3905 YY_RULE_SETUP
3906 #line 993 "tests/scan.l"
3907 BEGIN(CCL); return CCE_NEG_BLANK;
3908         YY_BREAK
3909 case 205:
3910 YY_RULE_SETUP
3911 #line 994 "tests/scan.l"
3912 BEGIN(CCL); return CCE_NEG_CNTRL;
3913         YY_BREAK
3914 case 206:
3915 YY_RULE_SETUP
3916 #line 995 "tests/scan.l"
3917 BEGIN(CCL); return CCE_NEG_DIGIT;
3918         YY_BREAK
3919 case 207:
3920 YY_RULE_SETUP
3921 #line 996 "tests/scan.l"
3922 BEGIN(CCL); return CCE_NEG_GRAPH;
3923         YY_BREAK
3924 case 208:
3925 YY_RULE_SETUP
3926 #line 997 "tests/scan.l"
3927 BEGIN(CCL); return CCE_NEG_LOWER;
3928         YY_BREAK
3929 case 209:
3930 YY_RULE_SETUP
3931 #line 998 "tests/scan.l"
3932 BEGIN(CCL); return CCE_NEG_PRINT;
3933         YY_BREAK
3934 case 210:
3935 YY_RULE_SETUP
3936 #line 999 "tests/scan.l"
3937 BEGIN(CCL); return CCE_NEG_PUNCT;
3938         YY_BREAK
3939 case 211:
3940 YY_RULE_SETUP
3941 #line 1000 "tests/scan.l"
3942 BEGIN(CCL); return CCE_NEG_SPACE;
3943         YY_BREAK
3944 case 212:
3945 YY_RULE_SETUP
3946 #line 1001 "tests/scan.l"
3947 BEGIN(CCL); return CCE_NEG_UPPER;
3948         YY_BREAK
3949 case 213:
3950 YY_RULE_SETUP
3951 #line 1002 "tests/scan.l"
3952 BEGIN(CCL); return CCE_NEG_XDIGIT;
3953         YY_BREAK
3954 case 214:
3955 YY_RULE_SETUP
3956 #line 1003 "tests/scan.l"
3957 {
3958                         format_synerr(
3959                                 _( "bad character class expression: %s" ),
3960                                         yytext );
3961                         BEGIN(CCL); return CCE_ALNUM;
3962                         }
3963         YY_BREAK
3964
3965
3966 case 215:
3967 YY_RULE_SETUP
3968 #line 1012 "tests/scan.l"
3969 {
3970                         yylval = myctoi( yytext );
3971                         return NUMBER;
3972                         }
3973         YY_BREAK
3974 case 216:
3975 YY_RULE_SETUP
3976 #line 1017 "tests/scan.l"
3977 return ',';
3978         YY_BREAK
3979 case 217:
3980 YY_RULE_SETUP
3981 #line 1018 "tests/scan.l"
3982 {
3983                         BEGIN(SECT2);
3984                         if ( lex_compat || posix_compat )
3985                                 return END_REPEAT_POSIX;
3986                         else
3987                                 return END_REPEAT_FLEX;
3988                         }
3989         YY_BREAK
3990 case 218:
3991 YY_RULE_SETUP
3992 #line 1026 "tests/scan.l"
3993 {
3994                         synerr( _( "bad character inside {}'s" ) );
3995                         BEGIN(SECT2);
3996                         return '}';
3997                         }
3998         YY_BREAK
3999 case 219:
4000 /* rule 219 can match eol */
4001 YY_RULE_SETUP
4002 #line 1032 "tests/scan.l"
4003 {
4004                         synerr( _( "missing }" ) );
4005                         BEGIN(SECT2);
4006                         ++linenum;
4007                         return '}';
4008                         }
4009         YY_BREAK
4010
4011
4012 case 220:
4013 YY_RULE_SETUP
4014 #line 1042 "tests/scan.l"
4015 bracelevel = 0; piece_append("</PLex_Text>");
4016         YY_BREAK
4017 case 221:
4018 YY_RULE_SETUP
4019 #line 1044 "tests/scan.l"
4020 ACTION_ECHO; yy_push_state( CODE_COMMENT );
4021         YY_BREAK
4022
4023 case 222:
4024 YY_RULE_SETUP
4025 #line 1047 "tests/scan.l"
4026 {
4027             ACTION_ECHO;
4028             CHECK_REJECT(yytext);
4029         }
4030         YY_BREAK
4031 case 223:
4032 YY_RULE_SETUP
4033 #line 1051 "tests/scan.l"
4034 {
4035             ACTION_ECHO;
4036             CHECK_YYMORE(yytext);
4037         }
4038         YY_BREAK
4039
4040 case 224:
4041 YY_RULE_SETUP
4042 #line 1057 "tests/scan.l"
4043 ACTION_ECHO;
4044         YY_BREAK
4045 case 225:
4046 /* rule 225 can match eol */
4047 YY_RULE_SETUP
4048 #line 1058 "tests/scan.l"
4049 {
4050                 ++linenum;
4051                 ACTION_ECHO;
4052                 if (bracelevel <= 0 || (doing_codeblock && indented_code)) {
4053             if ( doing_rule_action )
4054                 add_action( "\tYY_BREAK]""]\n" );
4055
4056  piece_flush(strlen(yytext));
4057  if (doing_codeblock)
4058   piece_append("</PLex_Section1Or2_CodeBlock>");
4059  else
4060   markup_action("</PLex_Section2_Rule_Action>");
4061             doing_rule_action = doing_codeblock = false;
4062             BEGIN(SECT2);
4063         }
4064     }
4065         YY_BREAK
4066
4067 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */
4068
4069 case 226:
4070 YY_RULE_SETUP
4071 #line 1079 "tests/scan.l"
4072 ACTION_ECHO; ++bracelevel;
4073         YY_BREAK
4074 case 227:
4075 YY_RULE_SETUP
4076 #line 1080 "tests/scan.l"
4077 ACTION_ECHO; --bracelevel;
4078         YY_BREAK
4079 case 228:
4080 YY_RULE_SETUP
4081 #line 1081 "tests/scan.l"
4082 ACTION_ECHO;
4083         YY_BREAK
4084 case 229:
4085 YY_RULE_SETUP
4086 #line 1082 "tests/scan.l"
4087 ACTION_ECHO;
4088         YY_BREAK
4089 case 230:
4090 YY_RULE_SETUP
4091 #line 1083 "tests/scan.l"
4092 ACTION_ECHO; /* character constant */
4093         YY_BREAK
4094 case 231:
4095 YY_RULE_SETUP
4096 #line 1084 "tests/scan.l"
4097 ACTION_ECHO; BEGIN(CHARACTER_CONSTANT);
4098         YY_BREAK
4099 case 232:
4100 YY_RULE_SETUP
4101 #line 1085 "tests/scan.l"
4102 ACTION_ECHO; BEGIN(ACTION_STRING);
4103         YY_BREAK
4104 case 233:
4105 /* rule 233 can match eol */
4106 YY_RULE_SETUP
4107 #line 1086 "tests/scan.l"
4108 {
4109                 ++linenum;
4110                 ACTION_ECHO;
4111                 if (bracelevel <= 0) {
4112                    if ( doing_rule_action )
4113  {
4114                       add_action( "\tYY_BREAK]""]\n" );
4115   piece_flush(strlen(yytext));
4116   markup_action("</PLex_Text></PLex_Section2_Rule_Action>");
4117  }
4118
4119                    doing_rule_action = false;
4120                    BEGIN(SECT2);
4121                 }
4122              }
4123         YY_BREAK
4124 case 234:
4125 YY_RULE_SETUP
4126 #line 1101 "tests/scan.l"
4127 ACTION_ECHO;
4128         YY_BREAK
4129
4130
4131 case 235:
4132 YY_RULE_SETUP
4133 #line 1105 "tests/scan.l"
4134 ACTION_ECHO;
4135         YY_BREAK
4136 case 236:
4137 YY_RULE_SETUP
4138 #line 1106 "tests/scan.l"
4139 ACTION_ECHO; BEGIN(ACTION);
4140         YY_BREAK
4141
4142
4143 case 237:
4144 YY_RULE_SETUP
4145 #line 1109 "tests/scan.l"
4146 ACTION_ECHO;
4147         YY_BREAK
4148 case 238:
4149 YY_RULE_SETUP
4150 #line 1110 "tests/scan.l"
4151 ACTION_ECHO; BEGIN(ACTION);
4152         YY_BREAK
4153
4154
4155 case 239:
4156 /* rule 239 can match eol */
4157 YY_RULE_SETUP
4158 #line 1113 "tests/scan.l"
4159 ACTION_ECHO;
4160         YY_BREAK
4161 case 240:
4162 /* rule 240 can match eol */
4163 YY_RULE_SETUP
4164 #line 1114 "tests/scan.l"
4165 ACTION_ECHO;
4166         YY_BREAK
4167 case 241:
4168 /* rule 241 can match eol */
4169 YY_RULE_SETUP
4170 #line 1115 "tests/scan.l"
4171 ++linenum; ACTION_ECHO; if (bracelevel <= 0) { BEGIN(SECT2); piece_flush(strlen(yytext)); if (doing_rule_action) markup_action("</PLex_Text></PLex_Section2_Rule_Action>"); } else { BEGIN(ACTION); }
4172         YY_BREAK
4173 case 242:
4174 YY_RULE_SETUP
4175 #line 1116 "tests/scan.l"
4176 ACTION_ECHO;
4177         YY_BREAK
4178
4179 case YY_STATE_EOF(COMMENT):
4180 case YY_STATE_EOF(CODE_COMMENT):
4181 case YY_STATE_EOF(COMMENT_DISCARD):
4182 case YY_STATE_EOF(ACTION):
4183 case YY_STATE_EOF(ACTION_STRING):
4184 case YY_STATE_EOF(CHARACTER_CONSTANT):
4185 #line 1119 "tests/scan.l"
4186 {
4187                         synerr( _( "EOF encountered inside an action" ) );
4188                         yyterminate();
4189                         }
4190         YY_BREAK
4191 case YY_STATE_EOF(EXTENDED_COMMENT):
4192 case YY_STATE_EOF(GROUP_WITH_PARAMS):
4193 case YY_STATE_EOF(GROUP_MINUS_PARAMS):
4194 #line 1124 "tests/scan.l"
4195 {
4196                         synerr( _( "EOF encountered inside pattern" ) );
4197                         yyterminate();
4198                         }
4199         YY_BREAK
4200 case 243:
4201 YY_RULE_SETUP
4202 #line 1129 "tests/scan.l"
4203 {
4204                         yylval = myesc( (unsigned char *) yytext );
4205
4206                         if ( YY_START == FIRSTCCL )
4207                                 BEGIN(CCL);
4208
4209                         return CHAR;
4210                         }
4211         YY_BREAK
4212
4213 case 244:
4214 YY_RULE_SETUP
4215 #line 1139 "tests/scan.l"
4216 fputs(escaped_qstart, yyout);
4217         YY_BREAK
4218 case 245:
4219 YY_RULE_SETUP
4220 #line 1140 "tests/scan.l"
4221 fputs(escaped_qend, yyout);
4222         YY_BREAK
4223 case 246:
4224 /* rule 246 can match eol */
4225 YY_RULE_SETUP
4226 #line 1141 "tests/scan.l"
4227 ECHO;
4228         YY_BREAK
4229 case 247:
4230 YY_RULE_SETUP
4231 #line 1142 "tests/scan.l"
4232 ECHO;
4233         YY_BREAK
4234 case YY_STATE_EOF(SECT3):
4235 #line 1143 "tests/scan.l"
4236 {
4237         sectnum = 0;
4238 #if 1
4239  piece_pack();
4240  piece_append("</PLex_Section3>");
4241  piece_pack();
4242  return ~YY_NULL;
4243 #else
4244         yyterminate();
4245 #endif
4246     }
4247         YY_BREAK
4248
4249
4250 case 248:
4251 YY_RULE_SETUP
4252 #line 1156 "tests/scan.l"
4253 fprintf(yyout, "[""[%s]""]", escaped_qstart);
4254         YY_BREAK
4255 case 249:
4256 YY_RULE_SETUP
4257 #line 1157 "tests/scan.l"
4258 fprintf(yyout, "[""[%s]""]", escaped_qend);
4259         YY_BREAK
4260 case 250:
4261 /* rule 250 can match eol */
4262 YY_RULE_SETUP
4263 #line 1158 "tests/scan.l"
4264 ECHO;
4265         YY_BREAK
4266 case 251:
4267 YY_RULE_SETUP
4268 #line 1159 "tests/scan.l"
4269 ECHO;
4270         YY_BREAK
4271 case YY_STATE_EOF(SECT3_NOESCAPE):
4272 #line 1160 "tests/scan.l"
4273 {
4274        sectnum = 0;
4275 #if 1
4276  piece_pack();
4277  piece_append("</PLex_Section3>");
4278  piece_pack();
4279  return ~YY_NULL;
4280 #else
4281        yyterminate();
4282 #endif
4283     }
4284         YY_BREAK
4285
4286 case 252:
4287 /* rule 252 can match eol */
4288 YY_RULE_SETUP
4289 #line 1172 "tests/scan.l"
4290 format_synerr( _( "bad character: %s" ), yytext );
4291         YY_BREAK
4292 case 253:
4293 YY_RULE_SETUP
4294 #line 1174 "tests/scan.l"
4295 YY_FATAL_ERROR( "flex scanner jammed" );
4296         YY_BREAK
4297 #line 4297 "lex.yy.c"
4298 case YY_STATE_EOF(INITIAL):
4299 case YY_STATE_EOF(CODEBLOCK):
4300 case YY_STATE_EOF(PICKUPDEF):
4301 case YY_STATE_EOF(SC):
4302 case YY_STATE_EOF(CARETISBOL):
4303 case YY_STATE_EOF(NUM):
4304 case YY_STATE_EOF(QUOTE):
4305 case YY_STATE_EOF(FIRSTCCL):
4306 case YY_STATE_EOF(CCL):
4307 case YY_STATE_EOF(RECOVER):
4308 case YY_STATE_EOF(PERCENT_BRACE_ACTION):
4309 case YY_STATE_EOF(OPTION):
4310 case YY_STATE_EOF(LINEDIR):
4311         yyterminate();
4312
4313         case YY_END_OF_BUFFER:
4314                 {
4315                 /* Amount of text matched not including the EOB char. */
4316                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
4317
4318                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
4319                 *yy_cp = (yy_hold_char);
4320                 YY_RESTORE_YY_MORE_OFFSET
4321
4322                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
4323                         {
4324                         /* We're scanning a new file or input source.  It's
4325                          * possible that this happened because the user
4326                          * just pointed yyin at a new source and called
4327                          * yylex().  If so, then we have to assure
4328                          * consistency between YY_CURRENT_BUFFER and our
4329                          * globals.  Here is the right place to do so, because
4330                          * this is the first action (other than possibly a
4331                          * back-up) that will match for the new input source.
4332                          */
4333                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4334                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
4335                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
4336                         }
4337
4338                 /* Note that here we test for yy_c_buf_p "<=" to the position
4339                  * of the first EOB in the buffer, since yy_c_buf_p will
4340                  * already have been incremented past the NUL character
4341                  * (since all states make transitions on EOB to the
4342                  * end-of-buffer state).  Contrast this with the test
4343                  * in input().
4344                  */
4345                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4346                         { /* This was really a NUL. */
4347                         yy_state_type yy_next_state;
4348
4349                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
4350
4351                         yy_current_state = yy_get_previous_state(  );
4352
4353                         /* Okay, we're now positioned to make the NUL
4354                          * transition.  We couldn't have
4355                          * yy_get_previous_state() go ahead and do it
4356                          * for us because it doesn't know how to deal
4357                          * with the possibility of jamming (and we don't
4358                          * want to build jamming into it because then it
4359                          * will run more slowly).
4360                          */
4361
4362                         yy_next_state = yy_try_NUL_trans( yy_current_state );
4363
4364                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4365
4366                         if ( yy_next_state )
4367                                 {
4368                                 /* Consume the NUL. */
4369                                 yy_cp = ++(yy_c_buf_p);
4370                                 yy_current_state = yy_next_state;
4371                                 goto yy_match;
4372                                 }
4373
4374                         else
4375                                 {
4376                                 yy_cp = (yy_c_buf_p);
4377                                 goto yy_find_action;
4378                                 }
4379                         }
4380
4381                 else switch ( yy_get_next_buffer(  ) )
4382                         {
4383                         case EOB_ACT_END_OF_FILE:
4384                                 {
4385                                 (yy_did_buffer_switch_on_eof) = 0;
4386
4387                                 if ( yywrap(  ) )
4388                                         {
4389                                         /* Note: because we've taken care in
4390                                          * yy_get_next_buffer() to have set up
4391                                          * yytext, we can now set up
4392                                          * yy_c_buf_p so that if some total
4393                                          * hoser (like flex itself) wants to
4394                                          * call the scanner after we return the
4395                                          * YY_NULL, it'll still work - another
4396                                          * YY_NULL will get returned.
4397                                          */
4398                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4399
4400                                         yy_act = YY_STATE_EOF(YY_START);
4401                                         goto do_action;
4402                                         }
4403
4404                                 else
4405                                         {
4406                                         if ( ! (yy_did_buffer_switch_on_eof) )
4407                                                 YY_NEW_FILE;
4408                                         }
4409                                 break;
4410                                 }
4411
4412                         case EOB_ACT_CONTINUE_SCAN:
4413                                 (yy_c_buf_p) =
4414                                         (yytext_ptr) + yy_amount_of_matched_text;
4415
4416                                 yy_current_state = yy_get_previous_state(  );
4417
4418                                 yy_cp = (yy_c_buf_p);
4419                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4420                                 goto yy_match;
4421
4422                         case EOB_ACT_LAST_MATCH:
4423                                 (yy_c_buf_p) =
4424                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4425
4426                                 yy_current_state = yy_get_previous_state(  );
4427
4428                                 yy_cp = (yy_c_buf_p);
4429                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4430                                 goto yy_find_action;
4431                         }
4432                 break;
4433                 }
4434
4435         default:
4436                 YY_FATAL_ERROR(
4437                         "fatal flex scanner internal error--no action found" );
4438         } /* end of action switch */
4439                 } /* end of scanning one token */
4440         } /* end of user's declarations */
4441 } /* end of yylex */
4442
4443 /* yy_get_next_buffer - try to read in a new buffer
4444  *
4445  * Returns a code representing an action:
4446  *      EOB_ACT_LAST_MATCH -
4447  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4448  *      EOB_ACT_END_OF_FILE - end of file
4449  */
4450 static int yy_get_next_buffer (void)
4451 {
4452         char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4453         char *source = (yytext_ptr);
4454         int number_to_move, i;
4455         int ret_val;
4456
4457         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4458                 YY_FATAL_ERROR(
4459                 "fatal flex scanner internal error--end of buffer missed" );
4460
4461         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4462                 { /* Don't try to fill the buffer, so this is an EOF. */
4463                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4464                         {
4465                         /* We matched a single character, the EOB, so
4466                          * treat this as a final EOF.
4467                          */
4468                         return EOB_ACT_END_OF_FILE;
4469                         }
4470
4471                 else
4472                         {
4473                         /* We matched some text prior to the EOB, first
4474                          * process it.
4475                          */
4476                         return EOB_ACT_LAST_MATCH;
4477                         }
4478                 }
4479
4480         /* Try to read more data. */
4481
4482         /* First move last chars to start of buffer. */
4483         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
4484
4485         for ( i = 0; i < number_to_move; ++i )
4486                 *(dest++) = *(source++);
4487
4488         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4489                 /* don't do the read, it's not guaranteed to return an EOF,
4490                  * just force an EOF
4491                  */
4492                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4493
4494         else
4495                 {
4496                         int num_to_read =
4497                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4498
4499                 while ( num_to_read <= 0 )
4500                         { /* Not enough room in the buffer - grow it. */
4501
4502                         /* just a shorter name for the current buffer */
4503                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
4504
4505                         int yy_c_buf_p_offset =
4506                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
4507
4508                         if ( b->yy_is_our_buffer )
4509                                 {
4510                                 int new_size = b->yy_buf_size * 2;
4511
4512                                 if ( new_size <= 0 )
4513                                         b->yy_buf_size += b->yy_buf_size / 8;
4514                                 else
4515                                         b->yy_buf_size *= 2;
4516
4517                                 b->yy_ch_buf = (char *)
4518                                         /* Include room in for 2 EOB chars. */
4519                                         yyrealloc( (void *) b->yy_ch_buf,
4520                                                          (yy_size_t) (b->yy_buf_size + 2)  );
4521                                 }
4522                         else
4523                                 /* Can't grow it, we don't own it. */
4524                                 b->yy_ch_buf = NULL;
4525
4526                         if ( ! b->yy_ch_buf )
4527                                 YY_FATAL_ERROR(
4528                                 "fatal error - scanner input buffer overflow" );
4529
4530                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4531
4532                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4533                                                 number_to_move - 1;
4534
4535                         }
4536
4537                 if ( num_to_read > YY_READ_BUF_SIZE )
4538                         num_to_read = YY_READ_BUF_SIZE;
4539
4540                 /* Read in more data. */
4541                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4542                         (yy_n_chars), num_to_read );
4543
4544                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4545                 }
4546
4547         if ( (yy_n_chars) == 0 )
4548                 {
4549                 if ( number_to_move == YY_MORE_ADJ )
4550                         {
4551                         ret_val = EOB_ACT_END_OF_FILE;
4552                         yyrestart( yyin  );
4553                         }
4554
4555                 else
4556                         {
4557                         ret_val = EOB_ACT_LAST_MATCH;
4558                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4559                                 YY_BUFFER_EOF_PENDING;
4560                         }
4561                 }
4562
4563         else
4564                 ret_val = EOB_ACT_CONTINUE_SCAN;
4565
4566         if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
4567                 /* Extend the array by 50%, plus the number we really need. */
4568                 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
4569                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
4570                         (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
4571                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4572                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
4573                 /* "- 2" to take care of EOB's */
4574                 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
4575         }
4576
4577         (yy_n_chars) += number_to_move;
4578         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4579         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4580
4581         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4582
4583         return ret_val;
4584 }
4585
4586 /* yy_get_previous_state - get the state just before the EOB char was reached */
4587
4588     static yy_state_type yy_get_previous_state (void)
4589 {
4590         yy_state_type yy_current_state;
4591         char *yy_cp;
4592     
4593         yy_current_state = (yy_start);
4594         yy_current_state += YY_AT_BOL();
4595
4596         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4597                 {
4598                 int yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4599                 if ( yy_accept[yy_current_state] )
4600                         {
4601                         (yy_last_accepting_state) = yy_current_state;
4602                         (yy_last_accepting_cpos) = yy_cp;
4603                         }
4604                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4605                         {
4606                         yy_current_state = (int) yy_def[yy_current_state];
4607                         if ( yy_current_state >= 1114 )
4608                                 yy_c = yy_meta[yy_c];
4609                         }
4610                 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4611                 }
4612
4613         return yy_current_state;
4614 }
4615
4616 /* yy_try_NUL_trans - try to make a transition on the NUL character
4617  *
4618  * synopsis
4619  *      next_state = yy_try_NUL_trans( current_state );
4620  */
4621     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
4622 {
4623         int yy_is_jam;
4624         char *yy_cp = (yy_c_buf_p);
4625
4626         int yy_c = 1;
4627         if ( yy_accept[yy_current_state] )
4628                 {
4629                 (yy_last_accepting_state) = yy_current_state;
4630                 (yy_last_accepting_cpos) = yy_cp;
4631                 }
4632         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4633                 {
4634                 yy_current_state = (int) yy_def[yy_current_state];
4635                 if ( yy_current_state >= 1114 )
4636                         yy_c = yy_meta[yy_c];
4637                 }
4638         yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
4639         yy_is_jam = (yy_current_state == 1113);
4640
4641                 return yy_is_jam ? 0 : yy_current_state;
4642 }
4643
4644 #ifndef YY_NO_UNPUT
4645
4646     static void yyunput (int c, char * yy_bp )
4647 {
4648         char *yy_cp;
4649     
4650     yy_cp = (yy_c_buf_p);
4651
4652         /* undo effects of setting up yytext */
4653         *yy_cp = (yy_hold_char);
4654
4655         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4656                 { /* need to shift things up to make room */
4657                 /* +2 for EOB chars. */
4658                 int number_to_move = (yy_n_chars) + 2;
4659                 char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
4660                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
4661                 char *source =
4662                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
4663
4664                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
4665                         *--dest = *--source;
4666
4667                 yy_cp += (int) (dest - source);
4668                 yy_bp += (int) (dest - source);
4669                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
4670                         (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
4671
4672                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
4673                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
4674                 }
4675
4676         *--yy_cp = (char) c;
4677
4678         (yytext_ptr) = yy_bp;
4679         (yy_hold_char) = *yy_cp;
4680         (yy_c_buf_p) = yy_cp;
4681 }
4682
4683 #endif
4684
4685 #ifndef YY_NO_INPUT
4686 #ifdef __cplusplus
4687     static int yyinput (void)
4688 #else
4689     static int input  (void)
4690 #endif
4691
4692 {
4693         int c;
4694     
4695         *(yy_c_buf_p) = (yy_hold_char);
4696
4697         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4698                 {
4699                 /* yy_c_buf_p now points to the character we want to return.
4700                  * If this occurs *before* the EOB characters, then it's a
4701                  * valid NUL; if not, then we've hit the end of the buffer.
4702                  */
4703                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4704                         /* This was really a NUL. */
4705                         *(yy_c_buf_p) = '\0';
4706
4707                 else
4708                         { /* need more input */
4709                         int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
4710                         ++(yy_c_buf_p);
4711
4712                         switch ( yy_get_next_buffer(  ) )
4713                                 {
4714                                 case EOB_ACT_LAST_MATCH:
4715                                         /* This happens because yy_g_n_b()
4716                                          * sees that we've accumulated a
4717                                          * token and flags that we need to
4718                                          * try matching the token before
4719                                          * proceeding.  But for input(),
4720                                          * there's no matching to consider.
4721                                          * So convert the EOB_ACT_LAST_MATCH
4722                                          * to EOB_ACT_END_OF_FILE.
4723                                          */
4724
4725                                         /* Reset buffer status. */
4726                                         yyrestart( yyin );
4727
4728                                         /*FALLTHROUGH*/
4729
4730                                 case EOB_ACT_END_OF_FILE:
4731                                         {
4732                                         if ( yywrap(  ) )
4733                                                 return 0;
4734
4735                                         if ( ! (yy_did_buffer_switch_on_eof) )
4736                                                 YY_NEW_FILE;
4737 #ifdef __cplusplus
4738                                         return yyinput();
4739 #else
4740                                         return input();
4741 #endif
4742                                         }
4743
4744                                 case EOB_ACT_CONTINUE_SCAN:
4745                                         (yy_c_buf_p) = (yytext_ptr) + offset;
4746                                         break;
4747                                 }
4748                         }
4749                 }
4750
4751         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
4752         *(yy_c_buf_p) = '\0';   /* preserve yytext */
4753         (yy_hold_char) = *++(yy_c_buf_p);
4754
4755         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
4756
4757         return c;
4758 }
4759 #endif  /* ifndef YY_NO_INPUT */
4760
4761 /** Immediately switch to a different input stream.
4762  * @param input_file A readable stream.
4763  * 
4764  * @note This function does not reset the start condition to @c INITIAL .
4765  */
4766     void yyrestart  (FILE * input_file )
4767 {
4768     
4769         if ( ! YY_CURRENT_BUFFER ){
4770         yyensure_buffer_stack ();
4771                 YY_CURRENT_BUFFER_LVALUE =
4772             yy_create_buffer( yyin, YY_BUF_SIZE );
4773         }
4774
4775         yy_init_buffer( YY_CURRENT_BUFFER, input_file );
4776         yy_load_buffer_state(  );
4777 }
4778
4779 /** Switch to a different input buffer.
4780  * @param new_buffer The new input buffer.
4781  * 
4782  */
4783     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
4784 {
4785     
4786         /* TODO. We should be able to replace this entire function body
4787          * with
4788          *              yypop_buffer_state();
4789          *              yypush_buffer_state(new_buffer);
4790      */
4791         yyensure_buffer_stack ();
4792         if ( YY_CURRENT_BUFFER == new_buffer )
4793                 return;
4794
4795         if ( YY_CURRENT_BUFFER )
4796                 {
4797                 /* Flush out information for old buffer. */
4798                 *(yy_c_buf_p) = (yy_hold_char);
4799                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4800                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4801                 }
4802
4803         YY_CURRENT_BUFFER_LVALUE = new_buffer;
4804         yy_load_buffer_state(  );
4805
4806         /* We don't actually know whether we did this switch during
4807          * EOF (yywrap()) processing, but the only time this flag
4808          * is looked at is after yywrap() is called, so it's safe
4809          * to go ahead and always set it.
4810          */
4811         (yy_did_buffer_switch_on_eof) = 1;
4812 }
4813
4814 static void yy_load_buffer_state  (void)
4815 {
4816         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4817         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4818         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4819         (yy_hold_char) = *(yy_c_buf_p);
4820 }
4821
4822 /** Allocate and initialize an input buffer state.
4823  * @param file A readable stream.
4824  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4825  * 
4826  * @return the allocated buffer state.
4827  */
4828     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
4829 {
4830         YY_BUFFER_STATE b;
4831     
4832         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
4833         if ( ! b )
4834                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4835
4836         b->yy_buf_size = size;
4837
4838         /* yy_ch_buf has to be 2 characters longer than the size given because
4839          * we need to put in 2 end-of-buffer characters.
4840          */
4841         b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
4842         if ( ! b->yy_ch_buf )
4843                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
4844
4845         b->yy_is_our_buffer = 1;
4846
4847         yy_init_buffer( b, file );
4848
4849         return b;
4850 }
4851
4852 /** Destroy the buffer.
4853  * @param b a buffer created with yy_create_buffer()
4854  * 
4855  */
4856     void yy_delete_buffer (YY_BUFFER_STATE  b )
4857 {
4858     
4859         if ( ! b )
4860                 return;
4861
4862         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4863                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4864
4865         if ( b->yy_is_our_buffer )
4866                 yyfree( (void *) b->yy_ch_buf  );
4867
4868         yyfree( (void *) b  );
4869 }
4870
4871 /* Initializes or reinitializes a buffer.
4872  * This function is sometimes called more than once on the same buffer,
4873  * such as during a yyrestart() or at EOF.
4874  */
4875     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
4876
4877 {
4878         int oerrno = errno;
4879     
4880         yy_flush_buffer( b );
4881
4882         b->yy_input_file = file;
4883         b->yy_fill_buffer = 1;
4884
4885     /* If b is the current buffer, then yy_init_buffer was _probably_
4886      * called from yyrestart() or through yy_get_next_buffer.
4887      * In that case, we don't want to reset the lineno or column.
4888      */
4889     if (b != YY_CURRENT_BUFFER){
4890         b->yy_bs_lineno = 1;
4891         b->yy_bs_column = 0;
4892     }
4893
4894         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4895     
4896         errno = oerrno;
4897 }
4898
4899 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4900  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4901  * 
4902  */
4903     void yy_flush_buffer (YY_BUFFER_STATE  b )
4904 {
4905         if ( ! b )
4906                 return;
4907
4908         b->yy_n_chars = 0;
4909
4910         /* We always need two end-of-buffer characters.  The first causes
4911          * a transition to the end-of-buffer state.  The second causes
4912          * a jam in that state.
4913          */
4914         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4915         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4916
4917         b->yy_buf_pos = &b->yy_ch_buf[0];
4918
4919         b->yy_at_bol = 1;
4920         b->yy_buffer_status = YY_BUFFER_NEW;
4921
4922         if ( b == YY_CURRENT_BUFFER )
4923                 yy_load_buffer_state(  );
4924 }
4925
4926 /** Pushes the new state onto the stack. The new state becomes
4927  *  the current state. This function will allocate the stack
4928  *  if necessary.
4929  *  @param new_buffer The new state.
4930  *  
4931  */
4932 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
4933 {
4934         if (new_buffer == NULL)
4935                 return;
4936
4937         yyensure_buffer_stack();
4938
4939         /* This block is copied from yy_switch_to_buffer. */
4940         if ( YY_CURRENT_BUFFER )
4941                 {
4942                 /* Flush out information for old buffer. */
4943                 *(yy_c_buf_p) = (yy_hold_char);
4944                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4945                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4946                 }
4947
4948         /* Only push if top exists. Otherwise, replace top. */
4949         if (YY_CURRENT_BUFFER)
4950                 (yy_buffer_stack_top)++;
4951         YY_CURRENT_BUFFER_LVALUE = new_buffer;
4952
4953         /* copied from yy_switch_to_buffer. */
4954         yy_load_buffer_state(  );
4955         (yy_did_buffer_switch_on_eof) = 1;
4956 }
4957
4958 /** Removes and deletes the top of the stack, if present.
4959  *  The next element becomes the new top.
4960  *  
4961  */
4962 void yypop_buffer_state (void)
4963 {
4964         if (!YY_CURRENT_BUFFER)
4965                 return;
4966
4967         yy_delete_buffer(YY_CURRENT_BUFFER );
4968         YY_CURRENT_BUFFER_LVALUE = NULL;
4969         if ((yy_buffer_stack_top) > 0)
4970                 --(yy_buffer_stack_top);
4971
4972         if (YY_CURRENT_BUFFER) {
4973                 yy_load_buffer_state(  );
4974                 (yy_did_buffer_switch_on_eof) = 1;
4975         }
4976 }
4977
4978 /* Allocates the stack if it does not exist.
4979  *  Guarantees space for at least one push.
4980  */
4981 static void yyensure_buffer_stack (void)
4982 {
4983         yy_size_t num_to_alloc;
4984     
4985         if (!(yy_buffer_stack)) {
4986
4987                 /* First allocation is just for 2 elements, since we don't know if this
4988                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
4989                  * immediate realloc on the next call.
4990          */
4991       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
4992                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
4993                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
4994                                                                 );
4995                 if ( ! (yy_buffer_stack) )
4996                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
4997
4998                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4999
5000                 (yy_buffer_stack_max) = num_to_alloc;
5001                 (yy_buffer_stack_top) = 0;
5002                 return;
5003         }
5004
5005         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
5006
5007                 /* Increase the buffer to prepare for a possible push. */
5008                 yy_size_t grow_size = 8 /* arbitrary grow size */;
5009
5010                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
5011                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
5012                                                                 ((yy_buffer_stack),
5013                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
5014                                                                 );
5015                 if ( ! (yy_buffer_stack) )
5016                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
5017
5018                 /* zero only the new slots.*/
5019                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
5020                 (yy_buffer_stack_max) = num_to_alloc;
5021         }
5022 }
5023
5024 /** Setup the input buffer state to scan directly from a user-specified character buffer.
5025  * @param base the character buffer
5026  * @param size the size in bytes of the character buffer
5027  * 
5028  * @return the newly allocated buffer state object.
5029  */
5030 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
5031 {
5032         YY_BUFFER_STATE b;
5033     
5034         if ( size < 2 ||
5035              base[size-2] != YY_END_OF_BUFFER_CHAR ||
5036              base[size-1] != YY_END_OF_BUFFER_CHAR )
5037                 /* They forgot to leave room for the EOB's. */
5038                 return NULL;
5039
5040         b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
5041         if ( ! b )
5042                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
5043
5044         b->yy_buf_size = (int) (size - 2);      /* "- 2" to take care of EOB's */
5045         b->yy_buf_pos = b->yy_ch_buf = base;
5046         b->yy_is_our_buffer = 0;
5047         b->yy_input_file = NULL;
5048         b->yy_n_chars = b->yy_buf_size;
5049         b->yy_is_interactive = 0;
5050         b->yy_at_bol = 1;
5051         b->yy_fill_buffer = 0;
5052         b->yy_buffer_status = YY_BUFFER_NEW;
5053
5054         yy_switch_to_buffer( b  );
5055
5056         return b;
5057 }
5058
5059 /** Setup the input buffer state to scan a string. The next call to yylex() will
5060  * scan from a @e copy of @a str.
5061  * @param yystr a NUL-terminated string to scan
5062  * 
5063  * @return the newly allocated buffer state object.
5064  * @note If you want to scan bytes that may contain NUL values, then use
5065  *       yy_scan_bytes() instead.
5066  */
5067 YY_BUFFER_STATE yy_scan_string (const char * yystr )
5068 {
5069     
5070         return yy_scan_bytes( yystr, (int) strlen(yystr) );
5071 }
5072
5073 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
5074  * scan from a @e copy of @a bytes.
5075  * @param yybytes the byte buffer to scan
5076  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
5077  * 
5078  * @return the newly allocated buffer state object.
5079  */
5080 YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
5081 {
5082         YY_BUFFER_STATE b;
5083         char *buf;
5084         yy_size_t n;
5085         int i;
5086     
5087         /* Get memory for full buffer, including space for trailing EOB's. */
5088         n = (yy_size_t) (_yybytes_len + 2);
5089         buf = (char *) yyalloc( n  );
5090         if ( ! buf )
5091                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
5092
5093         for ( i = 0; i < _yybytes_len; ++i )
5094                 buf[i] = yybytes[i];
5095
5096         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
5097
5098         b = yy_scan_buffer( buf, n );
5099         if ( ! b )
5100                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
5101
5102         /* It's okay to grow etc. this buffer, and we should throw it
5103          * away when we're done.
5104          */
5105         b->yy_is_our_buffer = 1;
5106
5107         return b;
5108 }
5109
5110     static void yy_push_state (int  _new_state )
5111 {
5112         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
5113                 {
5114                 yy_size_t new_size;
5115
5116                 (yy_start_stack_depth) += YY_START_STACK_INCR;
5117                 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
5118
5119                 if ( ! (yy_start_stack) )
5120                         (yy_start_stack) = (int *) yyalloc( new_size  );
5121
5122                 else
5123                         (yy_start_stack) = (int *) yyrealloc(
5124                                         (void *) (yy_start_stack), new_size  );
5125
5126                 if ( ! (yy_start_stack) )
5127                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
5128                 }
5129
5130         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
5131
5132         BEGIN(_new_state);
5133 }
5134
5135     static void yy_pop_state  (void)
5136 {
5137         if ( --(yy_start_stack_ptr) < 0 )
5138                 YY_FATAL_ERROR( "start-condition stack underflow" );
5139
5140         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
5141 }
5142
5143 #ifndef YY_EXIT_FAILURE
5144 #define YY_EXIT_FAILURE 2
5145 #endif
5146
5147 static void yynoreturn yy_fatal_error (const char* msg )
5148 {
5149                         fprintf( stderr, "%s\n", msg );
5150         exit( YY_EXIT_FAILURE );
5151 }
5152
5153 /* Redefine yyless() so it works in section 3 code. */
5154
5155 #undef yyless
5156 #define yyless(n) \
5157         do \
5158                 { \
5159                 /* Undo effects of setting up yytext. */ \
5160         int yyless_macro_arg = (n); \
5161         YY_LESS_LINENO(yyless_macro_arg);\
5162                 yytext[yyleng] = (yy_hold_char); \
5163                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
5164                 (yy_hold_char) = *(yy_c_buf_p); \
5165                 *(yy_c_buf_p) = '\0'; \
5166                 yyleng = yyless_macro_arg; \
5167                 } \
5168         while ( 0 )
5169
5170 /* Accessor  methods (get/set functions) to struct members. */
5171
5172 /** Get the current line number.
5173  * 
5174  */
5175 int yyget_lineno  (void)
5176 {
5177     
5178     return yylineno;
5179 }
5180
5181 /** Get the input stream.
5182  * 
5183  */
5184 FILE *yyget_in  (void)
5185 {
5186         return yyin;
5187 }
5188
5189 /** Get the output stream.
5190  * 
5191  */
5192 FILE *yyget_out  (void)
5193 {
5194         return yyout;
5195 }
5196
5197 /** Get the length of the current token.
5198  * 
5199  */
5200 int yyget_leng  (void)
5201 {
5202         return yyleng;
5203 }
5204
5205 /** Get the current token.
5206  * 
5207  */
5208
5209 char *yyget_text  (void)
5210 {
5211         return yytext;
5212 }
5213
5214 /** Set the current line number.
5215  * @param _line_number line number
5216  * 
5217  */
5218 void yyset_lineno (int  _line_number )
5219 {
5220     
5221     yylineno = _line_number;
5222 }
5223
5224 /** Set the input stream. This does not discard the current
5225  * input buffer.
5226  * @param _in_str A readable stream.
5227  * 
5228  * @see yy_switch_to_buffer
5229  */
5230 void yyset_in (FILE *  _in_str )
5231 {
5232         yyin = _in_str ;
5233 }
5234
5235 void yyset_out (FILE *  _out_str )
5236 {
5237         yyout = _out_str ;
5238 }
5239
5240 int yyget_debug  (void)
5241 {
5242         return yy_flex_debug;
5243 }
5244
5245 void yyset_debug (int  _bdebug )
5246 {
5247         yy_flex_debug = _bdebug ;
5248 }
5249
5250 static int yy_init_globals (void)
5251 {
5252         /* Initialization is the same as for the non-reentrant scanner.
5253      * This function is called from yylex_destroy(), so don't allocate here.
5254      */
5255
5256     (yy_buffer_stack) = NULL;
5257     (yy_buffer_stack_top) = 0;
5258     (yy_buffer_stack_max) = 0;
5259     (yy_c_buf_p) = NULL;
5260     (yy_init) = 0;
5261     (yy_start) = 0;
5262
5263     (yy_start_stack_ptr) = 0;
5264     (yy_start_stack_depth) = 0;
5265     (yy_start_stack) =  NULL;
5266
5267 /* Defined in main.c */
5268 #ifdef YY_STDINIT
5269     yyin = stdin;
5270     yyout = stdout;
5271 #else
5272     yyin = NULL;
5273     yyout = NULL;
5274 #endif
5275
5276     /* For future reference: Set errno on error, since we are called by
5277      * yylex_init()
5278      */
5279     return 0;
5280 }
5281
5282 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
5283 int yylex_destroy  (void)
5284 {
5285     
5286     /* Pop the buffer stack, destroying each element. */
5287         while(YY_CURRENT_BUFFER){
5288                 yy_delete_buffer( YY_CURRENT_BUFFER  );
5289                 YY_CURRENT_BUFFER_LVALUE = NULL;
5290                 yypop_buffer_state();
5291         }
5292
5293         /* Destroy the stack itself. */
5294         yyfree((yy_buffer_stack) );
5295         (yy_buffer_stack) = NULL;
5296
5297     /* Destroy the start condition stack. */
5298         yyfree( (yy_start_stack)  );
5299         (yy_start_stack) = NULL;
5300
5301     /* Reset the globals. This is important in a non-reentrant scanner so the next time
5302      * yylex() is called, initialization will occur. */
5303     yy_init_globals( );
5304
5305     return 0;
5306 }
5307
5308 /*
5309  * Internal utility routines.
5310  */
5311
5312 #ifndef yytext_ptr
5313 static void yy_flex_strncpy (char* s1, const char * s2, int n )
5314 {
5315                 
5316         int i;
5317         for ( i = 0; i < n; ++i )
5318                 s1[i] = s2[i];
5319 }
5320 #endif
5321
5322 #ifdef YY_NEED_STRLEN
5323 static int yy_flex_strlen (const char * s )
5324 {
5325         int n;
5326         for ( n = 0; s[n]; ++n )
5327                 ;
5328
5329         return n;
5330 }
5331 #endif
5332
5333 void *yyalloc (yy_size_t  size )
5334 {
5335                         return malloc(size);
5336 }
5337
5338 void *yyrealloc  (void * ptr, yy_size_t  size )
5339 {
5340                 
5341         /* The cast to (char *) in the following accommodates both
5342          * implementations that use char* generic pointers, and those
5343          * that use void* generic pointers.  It works with the latter
5344          * because both ANSI C and C++ allow castless assignment from
5345          * any pointer type to void*, and deal with argument conversions
5346          * as though doing an assignment.
5347          */
5348         return realloc(ptr, size);
5349 }
5350
5351 void yyfree (void * ptr )
5352 {
5353                         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
5354 }
5355
5356 #define YYTABLES_NAME "yytables"
5357
5358 #line 1174 "tests/scan.l"
5359
5360
5361
5362 int yywrap(void)
5363         {
5364         if ( --num_input_files > 0 )
5365                 {
5366                 set_input_file( *++input_files );
5367                 return 0;
5368                 }
5369
5370         else
5371                 return 1;
5372         }
5373
5374
5375 /* set_input_file - open the given file (if NULL, stdin) for scanning */
5376
5377 void set_input_file( char *file )
5378         {
5379         if ( file && strcmp( file, "-" ) )
5380                 {
5381                 infilename = xstrdup(file);
5382                 yyin = fopen( infilename, "r" );
5383
5384                 if ( yyin == NULL )
5385                         lerr( _( "can't open %s" ), file );
5386                 }
5387
5388         else
5389                 {
5390                 yyin = stdin;
5391                 infilename = xstrdup("<stdin>");
5392                 }
5393
5394         linenum = 1;
5395         }
5396
5397 /* Nick */
5398 void piece_append(const char *str) {
5399  piece[piece1++] = strdup(str);
5400 }
5401
5402 void piece_insert(int n, const char *str) {
5403  memmove(piece + n + 1, piece + n, (piece1 - n) * sizeof(char *));
5404  piece[n] = strdup(str);
5405  ++piece1;
5406 }
5407
5408 void piece_escape(const char *p, size_t n) {
5409  size_t i, j = 0;
5410  for (i = 0; i < n; ++i)
5411   switch (p[i]) {
5412   case '<':
5413   case '>':
5414    j += 4;
5415    break;
5416   case '&':
5417    j += 5;
5418    break;
5419   default:
5420    ++j;
5421    break;
5422   }
5423  char *q = malloc(j + 1);
5424  j = 0;
5425  for (i = 0; i < n; ++i)
5426   switch (p[i]) {
5427   case '<':
5428    memcpy(q + j, "&lt;", 4);
5429    j += 4;
5430    break;
5431   case '>':
5432    memcpy(q + j, "&gt;", 4);
5433    j += 4;
5434    break;
5435   case '&':
5436    memcpy(q + j, "&amp;", 5);
5437    j += 5;
5438    break;
5439   default:
5440    q[j++] = p[i];
5441    break;
5442   }
5443  q[j] = 0;
5444  piece[piece1++] = q;
5445 }
5446
5447 void piece_flush(size_t n) {
5448  piece_escape(yytext, n);
5449  yytext += n;
5450 }
5451
5452 void piece_pack() {
5453  int i;
5454  size_t j = 0;
5455  for (i = piece0; i < piece1; ++i)
5456   j += strlen(piece[i]);
5457  char *q = malloc(j + 1);
5458  j = 0;
5459  for (i = piece0; i < piece1; ++i) {
5460   int k = strlen(piece[i]);
5461   memcpy(q + j, piece[i], k);
5462   free(piece[i]);
5463   j += k;
5464  }
5465  q[j] = 0;
5466  piece[piece0++] = q;
5467  piece1 = piece0;
5468 }
5469
5470 int flexscan(void) {
5471  int result = real_flexscan();
5472  if (result < 0)
5473   return ~result;
5474  piece_pack();
5475  piece_escape(yytext, strlen(yytext));
5476  piece_pack();
5477  return result;
5478 }
5479
5480 static void markup_action(const char *text) {
5481  /* append to last token text so it appears inside <PLex_Section2_Rule>..</PLex_Section2_Rule> */
5482  /* a problem here is that Rule has already been reduced (marked up), */
5483  /* because we returned a '\n' token when we detected start of action, */
5484  /* hence we need to move the closing </PLex_Section2_Rule> tag over to our right */
5485  int i = strlen(piece[--piece0]);
5486  if (i < 21 || strcmp(piece[piece0] + i - 21, "</PLex_Section2_Rule>") != 0)
5487   abort();
5488  piece[piece0][i - 21] = 0;
5489  piece_append(text);
5490  piece_append("</PLex_Section2_Rule>");
5491  piece_pack();
5492 }
5493
5494 static void markup_option(const char *name, int sense) {
5495  /* a problem here is that we couldn't apply markup when scanning the "no" */
5496  /* prefix because we didn't know what option it was, back up to include it */
5497  int i = piece1;
5498  while (--i >= piece0 && strcmp(piece[i], "no") == 0)
5499   ;
5500  sprintf(piece_temp, "<PLex_Section1_Options_%s%s>", name, sense ? " value=\"true\"" : "");
5501  piece_insert(i + 1, piece_temp);
5502  piece_flush(strlen(yytext));
5503  sprintf(piece_temp, "</PLex_Section1_Options_%s>", name);
5504  piece_append(piece_temp);
5505  /* append to last token text so it appears inside <PLex_Section1_Options>..</PLex_Section1_Options> */
5506  --piece0;
5507  piece_pack();
5508 }
5509