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