Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
New dax loader infrastructure (empty box so far)
[simgrid.git] / src / simdag / dax_dtd.c
1
2 #line 3 "simdag/dax_dtd.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define yy_create_buffer dax__create_buffer
9 #define yy_delete_buffer dax__delete_buffer
10 #define yy_flex_debug dax__flex_debug
11 #define yy_init_buffer dax__init_buffer
12 #define yy_flush_buffer dax__flush_buffer
13 #define yy_load_buffer_state dax__load_buffer_state
14 #define yy_switch_to_buffer dax__switch_to_buffer
15 #define yyin dax_in
16 #define yyleng dax_leng
17 #define yylex dax_lex
18 #define yylineno dax_lineno
19 #define yyout dax_out
20 #define yyrestart dax_restart
21 #define yytext dax_text
22 #define yywrap dax_wrap
23 #define yyalloc dax_alloc
24 #define yyrealloc dax_realloc
25 #define yyfree dax_free
26
27 #define FLEX_SCANNER
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
32 #define FLEX_BETA
33 #endif
34
35 /* First, we deal with  platform-specific or compiler-specific issues. */
36
37 /* begin standard C headers. */
38 #include <stdio.h>
39 #include <string.h>
40 #include <errno.h>
41 #include <stdlib.h>
42
43 /* end standard C headers. */
44
45 /* flex integer type definitions */
46
47 #ifndef FLEXINT_H
48 #define FLEXINT_H
49
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
51
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55  * if you want the limit (max/min) macros for int types. 
56  */
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
59 #endif
60
61 #include <inttypes.h>
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
68 #else
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t; 
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
75
76 /* Limits of integral types. */
77 #ifndef INT8_MIN
78 #define INT8_MIN               (-128)
79 #endif
80 #ifndef INT16_MIN
81 #define INT16_MIN              (-32767-1)
82 #endif
83 #ifndef INT32_MIN
84 #define INT32_MIN              (-2147483647-1)
85 #endif
86 #ifndef INT8_MAX
87 #define INT8_MAX               (127)
88 #endif
89 #ifndef INT16_MAX
90 #define INT16_MAX              (32767)
91 #endif
92 #ifndef INT32_MAX
93 #define INT32_MAX              (2147483647)
94 #endif
95 #ifndef UINT8_MAX
96 #define UINT8_MAX              (255U)
97 #endif
98 #ifndef UINT16_MAX
99 #define UINT16_MAX             (65535U)
100 #endif
101 #ifndef UINT32_MAX
102 #define UINT32_MAX             (4294967295U)
103 #endif
104
105 #endif /* ! C99 */
106
107 #endif /* ! FLEXINT_H */
108
109 #ifdef __cplusplus
110
111 /* The "const" storage-class-modifier is valid. */
112 #define YY_USE_CONST
113
114 #else   /* ! __cplusplus */
115
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
118
119 #define YY_USE_CONST
120
121 #endif  /* defined (__STDC__) */
122 #endif  /* ! __cplusplus */
123
124 #ifdef YY_USE_CONST
125 #define yyconst const
126 #else
127 #define yyconst
128 #endif
129
130 /* Returned upon end-of-file. */
131 #define YY_NULL 0
132
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134  * integer for use as an array index.  If the signed char is negative,
135  * we want to instead treat it as an 8-bit unsigned char, hence the
136  * double cast.
137  */
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
139
140 /* Enter a start condition.  This macro really ought to take a parameter,
141  * but we do it the disgusting crufty way forced on us by the ()-less
142  * definition of BEGIN.
143  */
144 #define BEGIN (yy_start) = 1 + 2 *
145
146 /* Translate the current start state into a value that can be later handed
147  * to BEGIN to return to the state.  The YYSTATE alias is for lex
148  * compatibility.
149  */
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
152
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE dax_restart(dax_in  )
158
159 #define YY_END_OF_BUFFER_CHAR 0
160
161 /* Size of default input buffer. */
162 #ifndef YY_BUF_SIZE
163 #ifdef __ia64__
164 /* On IA-64, the buffer size is 16k, not 8k.
165  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166  * Ditto for the __ia64__ case accordingly.
167  */
168 #define YY_BUF_SIZE 32768
169 #else
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
172 #endif
173
174 /* The state buf must be large enough to hold one state per character in the main buffer.
175  */
176 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
177
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
181 #endif
182
183 extern int dax_leng;
184
185 extern FILE *dax_in, *dax_out;
186
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
190
191     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192      *       access to the local variable yy_act. Since yyless() is a macro, it would break
193      *       existing scanners that call yyless() from OUTSIDE dax_lex. 
194      *       One obvious solution it to make yy_act a global. I tried that, and saw
195      *       a 5% performance hit in a non-dax_lineno scanner, because yy_act is
196      *       normally declared as a register variable-- so it is not worth it.
197      */
198     #define  YY_LESS_LINENO(n) \
199             do { \
200                 int yyl;\
201                 for ( yyl = n; yyl < dax_leng; ++yyl )\
202                     if ( dax_text[yyl] == '\n' )\
203                         --dax_lineno;\
204             }while(0)
205     
206 /* Return all but the first "n" matched characters back to the input stream. */
207 #define yyless(n) \
208         do \
209                 { \
210                 /* Undo effects of setting up dax_text. */ \
211         int yyless_macro_arg = (n); \
212         YY_LESS_LINENO(yyless_macro_arg);\
213                 *yy_cp = (yy_hold_char); \
214                 YY_RESTORE_YY_MORE_OFFSET \
215                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216                 YY_DO_BEFORE_ACTION; /* set up dax_text again */ \
217                 } \
218         while ( 0 )
219
220 #define unput(c) yyunput( c, (yytext_ptr)  )
221
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
225 #endif
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         int yy_n_chars;
245
246         /* Whether we "own" the buffer - i.e., we know we created it,
247          * and can realloc() it to grow it, and should free() it to
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
252         /* Whether this is an "interactive" input source; if so, and
253          * if we're using stdio for input, then we want to use getc()
254          * instead of fread(), to make sure we stop fetching input after
255          * each newline.
256          */
257         int yy_is_interactive;
258
259         /* Whether we're considered to be at the beginning of a line.
260          * If so, '^' rules will be active on the next match, otherwise
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277         /* When an EOF's been seen but there's still some text to process
278          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279          * shouldn't try reading from the input source any more.  We might
280          * still have a bunch of tokens to match, though, because of
281          * possible backing-up.
282          *
283          * When we actually see the EOF, we change the status to "new"
284          * (via dax_restart()), so that the user can continue scanning by
285          * just pointing dax_in at a new input file.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
296
297 /* We provide macros for accessing buffer states in case in the
298  * future we want to put the buffer states in a more general
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308  * NULL or when we need an lvalue. For internal use only.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
312 /* yy_hold_char holds the character lost when dax_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
315 int dax_leng;
316
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0;         /* whether we need to initialize */
320 static int yy_start = 0;        /* start state number */
321
322 /* Flag which is used to allow dax_wrap()'s to do buffer switches
323  * instead of setting up a fresh dax_in.  A bit of a hack ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
327 void dax_restart (FILE *input_file  );
328 void dax__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
329 YY_BUFFER_STATE dax__create_buffer (FILE *file,int size  );
330 void dax__delete_buffer (YY_BUFFER_STATE b  );
331 void dax__flush_buffer (YY_BUFFER_STATE b  );
332 void dax_push_buffer_state (YY_BUFFER_STATE new_buffer  );
333 void dax_pop_buffer_state (void );
334
335 static void dax_ensure_buffer_stack (void );
336 static void dax__load_buffer_state (void );
337 static void dax__init_buffer (YY_BUFFER_STATE b,FILE *file  );
338
339 #define YY_FLUSH_BUFFER dax__flush_buffer(YY_CURRENT_BUFFER )
340
341 YY_BUFFER_STATE dax__scan_buffer (char *base,yy_size_t size  );
342 YY_BUFFER_STATE dax__scan_string (yyconst char *yy_str  );
343 YY_BUFFER_STATE dax__scan_bytes (yyconst char *bytes,int len  );
344
345 void *dax_alloc (yy_size_t  );
346 void *dax_realloc (void *,yy_size_t  );
347 void dax_free (void *  );
348
349 #define yy_new_buffer dax__create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         dax_ensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             dax__create_buffer(dax_in,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         dax_ensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             dax__create_buffer(dax_in,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define dax_wrap(n) 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *dax_in = (FILE *) 0, *dax_out = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int dax_lineno;
385
386 int dax_lineno = 1;
387
388 extern char *dax_text;
389 #define yytext_ptr dax_text
390
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up dax_text.
398  */
399 #define YY_DO_BEFORE_ACTION \
400         (yytext_ptr) = yy_bp; \
401         dax_leng = (size_t) (yy_cp - yy_bp); \
402         (yy_hold_char) = *yy_cp; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
406 #define YY_NUM_RULES 142
407 #define YY_END_OF_BUFFER 143
408 /* This struct is not used in this scanner,
409    but its presence is necessary. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[900] =
416     {   0,
417         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,  143,  141,   19,   10,   10,   19,
425        19,  121,   10,  121,    5,    6,    5,    8,    9,    8,
426       137,  129,  130,  138,  135,  138,  136,  140,  129,  130,
427
428       140,  141,   44,   10,   44,   44,   44,   42,   44,   44,
429        44,   44,   44,   44,   44,   48,   10,   48,   48,  141,
430       141,   48,  141,   63,   10,   63,   63,   63,   61,   63,
431        63,   63,   63,   67,   10,   67,  141,   67,  141,   94,
432        10,   94,   94,   94,   92,   94,   94,   94,   94,   94,
433        94,   98,   10,   98,  141,  105,   10,  105,  105,  105,
434       103,  105,  109,   10,  109,  141,  109,  141,  116,   10,
435       116,  116,  116,  114,  116,  120,   10,  120,  138,  137,
436        10,    0,    2,    2,    0,    4,    7,  132,  131,    0,
437         0,    0,    0,    0,    0,    0,   43,   45,   45,   45,
438
439        45,   45,   45,   45,   45,   45,    0,    0,    0,    0,
440         0,    0,    0,    0,   62,   64,   64,   64,   64,   64,
441         0,    0,   93,   95,   95,   95,   95,   95,   95,   95,
442        95,    0,  104,  106,  106,    0,    0,  115,  117,  117,
443         0,    0,    0,    0,    0,    0,    0,    3,    0,    0,
444         0,    0,    0,    0,    0,  139,    0,   45,   45,   45,
445        45,   45,   45,   45,   45,    0,    0,    0,    0,    0,
446         0,    0,    0,    0,    0,    0,   64,   64,   64,    0,
447         0,    0,   95,   95,   95,   95,   95,   95,   95,    0,
448         0,  106,    0,    0,    0,  117,    0,    0,    0,  134,
449
450         0,   18,    1,    0,    0,  127,    0,    0,    0,  124,
451       123,    0,    0,   45,   45,   45,   45,   45,   45,   45,
452        45,    0,    0,   47,    0,    0,    0,   50,    0,    0,
453        49,    0,    0,   52,   51,   64,   64,   64,    0,    0,
454        66,    0,    0,   95,   95,   95,   95,   95,   95,   95,
455         0,    0,   97,    0,    0,    0,    0,    0,  108,    0,
456         0,    0,    0,    0,    0,  119,    0,    0,    0,    0,
457       128,  122,    0,    0,   21,   45,   45,   45,   45,   45,
458         0,    0,   45,   45,    0,   20,    0,   50,    0,   68,
459        49,    0,    0,    0,   64,   64,   64,    0,   69,    0,
460
461         0,    0,    0,   95,   95,    0,    0,   95,    0,    0,
462         0,    0,  102,  101,    0,    0,    0,  113,  112,    0,
463         0,    0,    0,    0,   12,    0,  125,  126,   21,   45,
464         0,    0,   45,    0,    0,   45,    0,   35,   34,   45,
465         0,   45,    0,    0,   20,  100,    0,   68,   99,    0,
466        56,   55,   64,   64,   64,    0,   65,   69,    0,   71,
467        70,    0,    0,    0,   95,   95,    0,   91,   90,   95,
468         0,   89,   88,    0,    0,    0,    0,    0,    0,    0,
469         0,   11,   45,    0,   31,   30,   45,    0,   33,   32,
470        45,   45,   45,   45,    0,   23,   22,    0,   46,  100,
471
472       110,   99,   64,   64,   64,    0,    0,    0,    0,   95,
473        95,   95,    0,   96,    0,  111,    0,    0,    0,    0,
474         0,   45,   45,   45,    0,    0,   45,   45,  110,   64,
475         0,    0,    0,    0,    0,    0,    0,    0,   95,   95,
476        95,    0,  107,  111,    0,    0,    0,    0,    0,   45,
477        45,    0,    0,    0,   29,   28,   45,   45,   64,    0,
478        60,   59,    0,   58,   57,    0,    0,    0,    0,    0,
479         0,    0,    0,    0,    0,    0,  118,  133,    0,    0,
480         0,   45,    0,    0,    0,   37,   36,   45,    0,    0,
481         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
482
483         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
484         0,    0,    0,    0,    0,   39,   38,   45,    0,   25,
485        24,    0,   54,   53,    0,    0,    0,    0,    0,    0,
486         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
487         0,    0,    0,    0,    0,    0,    0,    0,   41,   40,
488        45,   73,    0,   72,    0,    0,    0,    0,    0,    0,
489         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
490         0,    0,    0,    0,   45,   75,   74,    0,    0,    0,
491         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
492         0,    0,    0,    0,    0,    0,    0,   45,    0,    0,
493
494         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
495         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
496        45,    0,   87,    0,   86,    0,   79,    0,   78,    0,
497        83,    0,   82,    0,    0,    0,    0,    0,    0,    0,
498         0,    0,    0,   45,   85,   84,   77,   76,   81,   80,
499         0,    0,    0,    0,    0,    0,    0,   12,    0,   12,
500         0,   45,    0,    0,    0,    0,    0,    0,    0,    0,
501         0,   45,    0,    0,    0,    0,    0,    0,   45,    0,
502         0,    0,    0,    0,   11,   45,    0,    0,    0,    0,
503         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
504
505        27,   26,    0,    0,    0,    0,    0,    0,    0,    0,
506         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
507         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
508         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
509         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
510         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
511         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
512         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
513         0,    0,   17,    0,    0,    0,    0,   16,    0,    0,
514         0,    0,   14,    0,   15,    0,    0,   13,    0
515
516     } ;
517
518 static yyconst flex_int32_t yy_ec[256] =
519     {   0,
520         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
521         1,    2,    4,    1,    1,    1,    1,    1,    1,    1,
522         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
523         1,    2,    5,    6,    7,    1,    1,    8,    9,    1,
524         1,    1,    1,    1,   10,   11,   12,   13,   13,   13,
525        13,   13,   13,   13,   13,   13,   13,   14,   15,   16,
526        17,   18,   19,    1,   20,   21,   22,   23,   24,   21,
527        25,   25,   25,   25,   25,   26,   27,   25,   28,   29,
528        25,   25,   30,   31,   25,   25,   25,   25,   32,   25,
529        33,    1,   34,    1,   25,    1,   35,   36,   37,   38,
530
531        39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
532        49,   50,   51,   52,   53,   54,   55,   56,   25,   57,
533        58,   59,    1,    1,    1,    1,    1,    1,    1,    1,
534         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
535         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
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
542         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
543         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
544         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
545         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
546         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
547         1,    1,    1,    1,    1
548     } ;
549
550 static yyconst flex_int32_t yy_meta[60] =
551     {   0,
552         1,    2,    2,    2,    1,    1,    1,    1,    1,    3,
553         3,    1,    4,    5,    1,    1,    1,    6,    1,    7,
554         7,    7,    7,    7,    5,    5,    5,    5,    5,    5,
555         5,    5,    1,    1,    7,    7,    7,    7,    7,    7,
556         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
557         5,    5,    5,    5,    5,    5,    5,    5,    5
558     } ;
559
560 static yyconst flex_int16_t yy_base[939] =
561     {   0,
562         0,    0,    0,    3,    6,    9,   24,   27,   11,   14,
563        15,   17,   29,   38,   45,   52,   59,   61,   67,   70,
564        95,    0,   73,   76,  153,  156,  159,  162,  177,  180,
565       183,  186,  201,  204,  207,  210,  225,  228,  244,    0,
566       302,  305,  308,  311,  326,  329,  332,  335,  350,  353,
567       369,    0,  427,  430,  433,  436,  452,  504,  471,  474,
568       477,  480,  523,  526,  529,  532,  547,  550,  566,  618,
569       585,  588,  637,  639, 2460, 2461, 2461,  231,  234,   47,
570        62, 2461,  356,  172, 2461, 2461, 2449, 2461, 2461, 2440,
571      2461, 2453, 2453,  603, 2461, 2461, 2461, 2461, 2451, 2451,
572
573      2419,  483, 2461,  359, 2434,    0,  196, 2461,    8, 2408,
574      2402, 2400, 2413, 2408, 2399, 2461,  495,  645,  653,  641,
575       674,  682,  321, 2461,  555, 2427,    0,  220, 2461, 2406,
576      2408, 2387, 2402, 2461,  558,  701,  709,  728,  593, 2461,
577       591, 2422,    0,  345, 2461, 2396, 2395, 2387, 2397, 2392,
578        30, 2461,  603,  597,  662, 2461,  611, 2416,    0,  484,
579      2461, 2394, 2461,  659,  736,  755,  763,  536, 2461,  719,
580      2414,    0,  592, 2461, 2392, 2461,  785,  693, 2425, 2395,
581       791,  646, 2371, 2461, 2417, 2408, 2461, 2461, 2461,    2,
582        37, 2371, 2370, 2368, 2404, 2383, 2461,    0, 2377, 2364,
583
584      2372, 2379, 2380, 2368, 2362, 2367, 2377, 2373, 2368, 2360,
585      2373, 2354, 2357, 2363, 2461,    0,  799, 2357, 2355, 2350,
586      2357, 2347, 2461,    0, 2353, 2350, 2343, 2355, 2336, 2359,
587      2343, 2337, 2461,    0, 2351, 2353, 2354, 2461,    0, 2348,
588      2337, 2353, 2367, 2366, 2373,  423, 2335, 2461,  155,    0,
589      2331, 2331, 2364, 2363, 2328, 2461, 2341, 2329, 2326, 2334,
590      2333, 2349, 2331, 2316, 2320,  817,  820, 2332, 2323, 2329,
591      2312, 2324, 2326, 2318,  823,  827, 2321, 2305, 2305,  839,
592       842, 2318, 2317, 2310, 2311, 2310, 2313, 2303, 2311,  845,
593       848,  851,  867,  870, 2297,  873,  876,  879, 2326, 2461,
594
595      2329, 2461, 2461,   17, 2300, 2461, 2330, 2329, 2290, 2461,
596      2461, 2288, 2300, 2302, 2285, 2316, 2280, 2207,  896, 2212,
597      2192,  900,  903, 2461,  906, 2201, 2193,  913, 2197, 2180,
598       923, 2184,  926, 2461, 2461,  934, 2180, 2175,  940,  943,
599      2461,  946, 2160,  950,  953, 2159, 2150,  969, 2047,  972,
600       975,  981, 2461,  988,  992,  998, 1008, 1011, 2461, 1014,
601      2060, 1017, 1033, 1020, 1041, 2461, 1044, 2075,  684, 1047,
602      2461, 2461, 2082, 2081, 1050, 2073, 1065, 2045, 1068, 2037,
603      1071, 1074, 2042, 1087, 1090, 1095, 2051, 1103, 2040, 1107,
604      1110, 2045, 1113, 1116, 2032, 2033, 2023, 1124, 1130, 1133,
605
606      1137, 1145, 1149, 2023, 2009, 1157, 1161, 2022, 1169, 1173,
607      1181, 1185, 2461, 2461, 1193, 2012, 1198, 2461, 2461, 1206,
608      2035,  585, 2036, 1210, 2461, 2034, 2461, 2461, 1213, 2002,
609      1216, 1223, 1988, 1219, 1238, 1986, 1248, 2461, 2461, 1985,
610      1256,   37, 1259, 1267, 1272, 1275, 1977, 1278, 1284, 1287,
611      2461, 2461, 1991, 1986, 1969, 1295, 2461, 1298, 1301, 2461,
612      2461, 1312,   42,  124, 1975, 1965, 1320, 2461, 2461, 1952,
613      1328, 2461, 2461, 1336, 1339, 1935, 1342, 1952,  648,  174,
614         5, 2461, 1927, 1346, 2461, 2461, 1926, 1359, 2461, 2461,
615      1912, 1367, 1927, 1906, 1370, 2461, 2461, 1378, 2461, 1383,
616
617      1389, 1395, 1921, 1398, 1401, 1895, 1887, 1878, 1832, 1838,
618      1799, 1798, 1404, 2461, 1407, 1410, 1417, 1826,  176,  158,
619       448, 1797, 1761, 1424, 1427, 1430, 1770, 1729, 1443, 1729,
620      1446, 1449, 1457, 1463, 1707, 1699, 1701, 1696, 1473, 1476,
621      1479, 1482, 2461, 1485, 1495, 1678, 1499,  298,  621, 1643,
622      1502, 1505, 1512, 1521, 2461, 2461, 1655, 1529, 1532, 1535,
623      2461, 2461, 1548, 2461, 2461, 1612, 1615, 1605, 1609, 1556,
624      1559, 1567, 1572, 1583, 1586, 1508, 2461, 2461, 1599,  180,
625       301, 1594, 1602, 1606, 1618, 2461, 2461, 1588, 1627, 1636,
626      1644, 1649, 1574, 1539, 1537, 1528, 1660,  676,  685, 1668,
627
628       695,  703, 1676,  712,  722,  305,  179,  547,  529,  657,
629       429,  709, 1684, 1687, 1696, 2461, 2461, 1545, 1704, 2461,
630      2461, 1712, 2461, 2461, 1571, 1518, 1557, 1510, 1518, 1493,
631      1507, 1477, 1460, 1442, 1457, 1439, 1435, 1416, 1429, 1391,
632       732,  641,  206,  528,  201,  476,  686, 1720, 2461, 2461,
633      1414, 2461, 1432, 2461, 1407, 1348, 1334, 1318, 1304, 1263,
634      1228, 1210, 1188, 1192, 1175, 1160, 1150,  713,  724, 1728,
635       302,  743,  763, 1731, 1154, 2461, 2461, 1139, 1106, 1076,
636      1085, 1070, 1040, 1008, 1021, 1005, 1017,  980,  992, 1734,
637       759, 1737,  761, 1740, 1757, 1760, 1767,  993,  964,  959,
638
639       924,  883,  850,  858,  823,  828,  795,  779,  745,  698,
640      1777, 1780,  796,  614, 1784, 1787, 1790, 1807, 1825, 1859,
641       651,  602, 2461,  535, 2461,  537, 2461,  531, 2461,  489,
642      2461,  482, 2461,  901, 1817,  866, 1820,  902, 1877,  905,
643       483, 1895, 1929,  391, 2461, 2461, 2461, 2461, 2461, 2461,
644       950, 1023, 1069, 1852,  951, 1022,  349,  343,  674,  337,
645      1887,  282, 1126, 1136,  424, 1063, 1138,  316,  298,  234,
646      1921,  167,  426, 1150,  788, 1160,  793,  156,  123,  838,
647       843, 1947, 1162,  868, 2461, 1950, 1953,  904, 1966,  869,
648      1974, 1977, 1913, 1984, 1993,  794,  821,  970, 1997, 2010,
649
650      2461, 2461,  921,  922, 2018,  990, 1068, 2005, 1046, 1217,
651      1103, 1213, 1246, 1254,  751,  948, 2026, 1276, 1277, 1045,
652      1180, 1290, 1301, 1235, 1309, 1315, 1329, 1249, 1299, 1317,
653      1340, 1360, 1405, 1357, 1419, 1348, 1438, 1529, 1537, 1561,
654      1575, 1596, 1605,  944, 1370, 1510, 1525, 1619, 1638, 1502,
655      1614, 1657, 1665, 1666, 1674, 1607, 1615, 1655, 1663, 1707,
656      1709, 1702, 1747, 1436, 1632, 1779, 1831, 1834, 1835, 1748,
657      1710, 1870, 1902, 2035, 1782, 1785, 1800, 1839, 2038, 1903,
658      1876, 2043, 2461, 1967, 1980, 2046, 2055, 2461, 2063, 1955,
659      1909, 2066, 2461, 2072, 2461, 2075, 2083, 2461, 2461, 2101,
660
661      2108, 2115, 2122, 2129, 2136, 2143, 2150, 2157, 2164, 2171,
662      2178, 2185, 2192, 2197, 2202, 2207, 2212, 2217, 2224, 2227,
663      2230, 2233, 2236, 2239, 2246, 2250, 2256, 2262, 2268, 2274,
664      2280, 2287, 2294, 2301, 2308, 2315, 2322, 2329
665     } ;
666
667 static yyconst flex_int16_t yy_def[939] =
668     {   0,
669       900,  900,  901,  901,  901,  901,  902,  902,  903,  903,
670       904,  904,  905,  905,  905,  905,  906,  906,  900,  900,
671       899,   21,  907,  907,  907,  907,  900,  900,  907,  907,
672       900,  900,  907,  907,  907,  907,  900,  900,  899,   39,
673       908,  908,  900,  900,  908,  908,  908,  908,  900,  900,
674       899,   51,  909,  909,  900,  900,  910,  910,  911,  911,
675       900,  900,  911,  911,  911,  911,  900,  900,  912,  912,
676       913,  913,  905,  905,  899,  899,  899,  899,  899,  899,
677       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
678       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
679
680       899,  899,  899,  899,  899,  914,  899,  899,  914,  914,
681       914,  914,  914,  914,  914,  899,  899,  899,  899,  899,
682       899,  899,  899,  899,  899,  899,  915,  899,  899,  915,
683       915,  915,  915,  899,  899,  899,  899,  899,  899,  899,
684       899,  899,  916,  899,  899,  916,  916,  916,  916,  916,
685       916,  899,  899,  899,  899,  899,  899,  899,  917,  899,
686       899,  917,  899,  899,  899,  899,  899,  899,  899,  899,
687       899,  918,  899,  899,  918,  899,  899,  899,  899,  899,
688       899,  919,  899,  899,  899,  899,  899,  899,  899,  899,
689       899,  899,  899,  899,  899,  899,  899,  914,  914,  914,
690
691       914,  914,  914,  914,  914,  914,  920,  899,  899,  899,
692       899,  899,  899,  899,  899,  915,  915,  915,  915,  915,
693       921,  899,  899,  916,  916,  916,  916,  916,  916,  916,
694       916,  922,  899,  917,  917,  923,  899,  899,  918,  918,
695       924,  899,  899,  925,  899,  925,  899,  899,  899,  926,
696       899,  899,  899,  899,  899,  899,  899,  914,  914,  914,
697       914,  914,  914,  914,  914,  927,  927,  899,  899,  899,
698       899,  899,  899,  899,  899,  899,  915,  915,  915,  928,
699       928,  899,  916,  916,  916,  916,  916,  916,  916,  929,
700       929,  917,  930,  930,  899,  918,  931,  931,  899,  899,
701
702       925,  899,  899,  925,  899,  899,  926,  899,  899,  899,
703       899,  899,  899,  914,  914,  914,  914,  914,  914,  914,
704       914,  899,  927,  899,  927,  899,  899,  899,  899,  899,
705       899,  899,  899,  899,  899,  915,  915,  915,  899,  928,
706       899,  928,  899,  916,  916,  916,  916,  916,  916,  916,
707       899,  929,  899,  929,  899,  899,  899,  930,  899,  930,
708       899,  899,  899,  899,  931,  899,  931,  899,  925,  932,
709       899,  899,  899,  899,  899,  914,  914,  914,  914,  914,
710       899,  899,  914,  914,  927,  899,  899,  899,  899,  899,
711       899,  899,  899,  899,  915,  915,  915,  928,  899,  899,
712
713       899,  899,  899,  916,  916,  899,  899,  916,  899,  899,
714       929,  899,  899,  899,  930,  899,  899,  899,  899,  931,
715       899,  925,  932,  932,  899,  932,  899,  899,  899,  914,
716       899,  899,  914,  899,  899,  914,  899,  899,  899,  914,
717       899,  914,  899,  927,  899,  899,  899,  899,  899,  899,
718       899,  899,  915,  915,  915,  899,  899,  899,  899,  899,
719       899,  899,  899,  899,  916,  916,  899,  899,  899,  916,
720       899,  899,  899,  929,  930,  899,  931,  899,  925,  932,
721       932,  899,  914,  899,  899,  899,  914,  899,  899,  899,
722       914,  914,  914,  914,  899,  899,  899,  899,  899,  899,
723
724       899,  899,  915,  915,  915,  899,  899,  899,  899,  916,
725       916,  916,  899,  899,  930,  899,  931,  899,  925,  932,
726       932,  914,  914,  914,  899,  899,  914,  914,  899,  915,
727       899,  899,  899,  899,  899,  899,  899,  899,  916,  916,
728       916,  899,  899,  899,  931,  899,  925,  932,  932,  914,
729       914,  899,  899,  899,  899,  899,  914,  914,  915,  899,
730       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
731       899,  899,  899,  899,  899,  899,  899,  899,  925,  932,
732       932,  914,  899,  899,  899,  899,  899,  914,  899,  899,
733       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
734
735       899,  899,  899,  899,  899,  925,  925,  925,  925,  925,
736       932,  932,  899,  899,  899,  899,  899,  914,  899,  899,
737       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
738       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
739       925,  925,  925,  925,  925,  932,  932,  899,  899,  899,
740       914,  899,  899,  899,  899,  899,  899,  899,  899,  899,
741       899,  899,  899,  899,  899,  899,  899,  925,  925,  925,
742       925,  925,  932,  932,  914,  899,  899,  899,  899,  899,
743       899,  899,  899,  899,  899,  899,  899,  899,  899,  925,
744       925,  925,  925,  925,  932,  932,  932,  914,  899,  899,
745
746       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
747       925,  925,  925,  925,  925,  932,  932,  932,  933,  934,
748       914,  899,  899,  899,  899,  899,  899,  899,  899,  899,
749       899,  899,  899,  925,  925,  925,  925,  925,  932,  935,
750       936,  933,  934,  914,  899,  899,  899,  899,  899,  899,
751       925,  925,  925,  925,  925,  935,  932,  937,  936,  938,
752       932,  914,  925,  925,  925,  925,  925,  937,  899,  938,
753       932,  914,  925,  925,  925,  925,  925,  899,  914,  925,
754       925,  925,  925,  925,  899,  914,  925,  925,  925,  925,
755       925,  899,  899,  925,  925,  925,  925,  925,  925,  899,
756
757       899,  899,  925,  925,  925,  925,  925,  925,  925,  925,
758       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
759       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
760       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
761       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
762       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
763       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
764       925,  925,  925,  925,  925,  925,  925,  925,  925,  925,
765       925,  925,  899,  925,  925,  925,  925,  899,  925,  925,
766       925,  925,  899,  925,  899,  925,  925,  899,    0,  899,
767
768       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
769       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
770       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
771       899,  899,  899,  899,  899,  899,  899,  899
772     } ;
773
774 static yyconst flex_int16_t yy_nxt[2521] =
775     {   0,
776       899,   78,   79,   78,   78,   79,   78,   78,   79,   78,
777        78,   79,   78,   86,  249,   80,   86,   89,   80,   89,
778        87,   81,  425,   87,   81,   83,   79,   83,   83,   79,
779        83,   92,   93,   90,  302,   90,   94,   95,  369,   84,
780        92,   93,   84,  521,   96,   94,   95,   92,   93,  199,
781        97,  182,   94,   96,   92,   93,  200,   97,  250,   94,
782        96,   99,  100,   99,  100,  183,  182,   96,   79,   79,
783        79,   79,   79,   79,  117,   79,  117,  117,   79,  117,
784       184,  230,  102,  251,  506,  102,  252,  231,  118,  493,
785       507,  118,  101,  494,  101,  103,  104,   79,  104,  103,
786
787       103,  103,  103,  103,  103,  103,  105,  103,  106,  103,
788       107,  103,  108,  103,  106,  106,  106,  106,  106,  106,
789       106,  106,  106,  106,  106,  106,  106,  103,  103,  106,
790       106,  109,  106,  106,  110,  106,  106,  111,  112,  106,
791       106,  106,  113,  106,  106,  106,  106,  106,  106,  106,
792       114,  115,  106,  106,  117,   79,  117,  117,   79,  117,
793        79,   79,   79,   79,   79,   79,  508,  249,  119,  306,
794       786,  119,  509,  785,  120,  425,  185,  120,  117,   79,
795       117,  117,   79,  117,   79,   79,   79,   79,   79,   79,
796       184,  425,  118,  302,  548,  118,  302,  425,  121,  547,
797
798       185,  121,  117,   79,  117,  117,   79,  117,  117,   79,
799       117,  117,   79,  117,  184,  779,  119,  611,  302,  119,
800       642,  520,  122,  302,  185,  122,   79,   79,   79,   79,
801        79,   79,  181,  181,  181,  181,  181,  181,  184,  672,
802       123,  670,  769,  123,  124,  125,   79,  125,  124,  124,
803       124,  124,  124,  124,  124,  126,  124,  127,  124,  128,
804       124,  129,  124,  127,  127,  127,  127,  127,  127,  127,
805       127,  127,  127,  127,  127,  127,  124,  124,  127,  127,
806       127,  127,  127,  127,  127,  127,  130,  127,  127,  127,
807       127,  131,  127,  127,  127,  132,  127,  127,  127,  133,
808
809       127,  127,  127,  135,   79,  135,  135,   79,  135,   79,
810        79,   79,   79,   79,   79,  425,  778,  136,  425,  302,
811       136,  769,  302,  137,  772,  185,  137,  135,   79,  135,
812       135,   79,  135,  135,   79,  135,  135,   79,  135,  184,
813       693,  136,  641,  612,  136,  769,  580,  138,  769,  185,
814       138,   79,   79,   79,   79,   79,   79,  181,  181,  181,
815       181,  181,  181,  184,  210,  139,  425,  426,  139,  140,
816       141,   79,  141,  140,  140,  140,  140,  140,  140,  140,
817       142,  140,  143,  140,  144,  140,  145,  140,  143,  143,
818       143,  143,  143,  143,  143,  143,  143,  143,  143,  143,
819
820       143,  140,  140,  143,  143,  143,  143,  143,  146,  143,
821       143,  143,  143,  143,  147,  143,  143,  148,  143,  143,
822       149,  150,  151,  143,  143,  143,  143,  143,  153,   79,
823       153,  153,   79,  153,   79,   79,   79,   79,   79,   79,
824       302,  302,  154,  302,  762,  154,  425,  775,  155,  780,
825       304,  155,  156,  157,   79,  157,  156,  156,  156,  156,
826       156,  156,  156,  158,  156,  425,  156,  160,  156,  161,
827       156,  646,  164,   79,  164,  164,   79,  164,   79,   79,
828        79,   79,   79,   79,  156,  156,  165,  185,  185,  165,
829       750,  757,  166,  425,  749,  166,  181,  181,  181,  549,
830
831       760,  184,  184,  162,  156,  157,   79,  157,  156,  156,
832       156,  156,  156,  156,  156,  158,  156,  196,  156,  160,
833       156,  161,  156,  673,  164,   79,  164,  164,   79,  164,
834       164,   79,  164,  164,   79,  164,  156,  156,  165,  748,
835       185,  165,  747,  746,  167,  302,  302,  167,   79,   79,
836        79,   79,   79,   79,  184,  162,  181,  181,  181,  181,
837       181,  181,  168,  644,  302,  168,  169,  170,   79,  170,
838       169,  169,  169,  169,  169,  169,  169,  171,  169,  671,
839       169,  173,  169,  174,  169,  237,  177,   79,  177,  177,
840        79,  177,  181,  181,  181,  643,  185,  185,  169,  169,
841
842       178,  185,  302,  178,  181,  181,  181,  745,  232,  190,
843       184,  184,  181,  181,  181,  184,  479,  175,  169,  170,
844        79,  170,  169,  169,  169,  169,  169,  169,  169,  171,
845       169,  302,  169,  173,  169,  174,  169,  191,  425,   92,
846        93,   92,   93,  192,   94,  185,   94,  222,  193,  185,
847       169,  169,  179,  194,  179,  245,  207,  185,  302,  184,
848       181,  181,  181,  184,  207,  302,  185,  737,  246,  175,
849       180,  184,  180,  581,  302,  208,  519,  214,  185,  208,
850       184,  209,  757,  669,  210,  744,  185,  208,  210,  209,
851       211,  760,  184,  207,  211,  212,  213,  185,  209,  212,
852
853       184,  302,  211,  425,  241,  185,  733,  212,  208,  645,
854       209,  184,  221,  185,  422,  629,  208,  213,  214,  184,
855       181,  181,  181,  211,  631,  213,  425,  184,  212,  630,
856       302,  211,  185,  674,  633,  208,  212,  214,  632,  221,
857       185,  302,  635,  208,  213,  214,  184,  236,  634,  302,
858       211,  637,  213,  690,  184,  222,  636,  647,  211,  185,
859       302,  639,  208,  222,  214,  638,  668,  185,  302,  691,
860       208,  213,  214,  184,  236,  640,  302,  211,  302,  213,
861       425,  184,  212,  732,  731,  237,  181,  181,  181,  208,
862       212,  214,  181,  181,  181,  694,  712,  208,  213,  214,
863
864       275,  275,  275,  695,  237,  302,  213,  824,  714,  212,
865       302,  302,  211,  302,  782,  276,  784,  212,  322,  322,
866       322,  322,  322,  322,  275,  275,  275,  736,  333,  333,
867       333,  806,  334,  730,  324,  335,  729,  324,  302,  276,
868       339,  339,  339,  339,  339,  339,  351,  351,  351,  351,
869       351,  351,  355,  355,  355,  302,  341,  325,  807,  341,
870       302,  728,  353,  727,  787,  353,  788,  356,  357,  357,
871       357,  357,  357,  357,  362,  362,  362,  364,  364,  364,
872       364,  364,  364,  302,  359,  302,  302,  359,  726,  363,
873       342,  725,  798,  366,  791,  753,  366,  381,  381,  381,
874
875       354,  322,  322,  322,  322,  322,  322,  322,  322,  322,
876       757,  360,  382,  367,  388,  388,  388,  324,  302,  302,
877       324,  302,  758,  324,  391,  391,  391,  333,  333,  333,
878       795,  334,  751,  755,  335,  393,  393,  393,  302,  302,
879       385,  339,  339,  339,  339,  339,  339,  339,  339,  339,
880       394,  400,  400,  400,  402,  402,  402,  341,  811,  812,
881       341,  302,  724,  341,  723,  302,  401,  302,  302,  403,
882       406,  406,  406,  409,  409,  409,  351,  351,  351,  763,
883       767,  398,  351,  351,  351,  407,  395,  302,  410,  351,
884       351,  351,  353,  355,  355,  355,  808,  854,  353,  412,
885
886       412,  412,  722,  413,  825,  353,  414,  302,  356,  357,
887       357,  357,  357,  357,  357,  357,  357,  357,  362,  362,
888       362,  364,  364,  364,  815,  359,  411,  757,  359,  721,
889       710,  359,  709,  363,  417,  417,  417,  366,  418,  758,
890       302,  419,  364,  364,  364,  364,  364,  364,  424,  424,
891       424,  429,  429,  429,  764,  708,  415,  707,  366,  706,
892       705,  366,  302,  302,  425,  426,  431,  431,  431,  434,
893       434,  434,  381,  381,  381,  437,  437,  437,  704,  438,
894       302,  432,  439,  818,  435,  302,  302,  382,  441,  441,
895       441,  322,  322,  322,  776,  420,  445,  445,  445,  765,
896
897       442,  830,  816,  443,  388,  388,  388,  324,  448,  448,
898       448,  391,  391,  391,  393,  393,  393,  450,  450,  450,
899       302,  451,  703,  702,  452,  456,  456,  456,  701,  394,
900       444,  458,  458,  458,  400,  400,  400,  820,  459,  459,
901       459,  457,  460,  302,  700,  461,  402,  402,  402,  401,
902       462,  462,  462,  302,  463,  302,  773,  464,  406,  406,
903       406,  403,  467,  467,  467,  774,  468,  302,  777,  469,
904       409,  409,  409,  407,  471,  471,  471,  302,  472,  302,
905       781,  473,  351,  351,  351,  410,  412,  412,  412,  783,
906       413,  699,  790,  414,  357,  357,  357,  302,  353,  417,
907
908       417,  417,  698,  418,  689,  688,  419,  364,  364,  364,
909       359,  424,  424,  424,  429,  429,  429,  431,  431,  431,
910       434,  434,  434,  366,  484,  484,  484,  425,  485,  687,
911       302,  486,  432,  474,  302,  435,  831,  686,  475,  488,
912       488,  488,  685,  489,  477,  834,  490,  821,  480,  437,
913       437,  437,  302,  438,  819,  684,  439,  441,  441,  441,
914       495,  495,  495,  302,  496,  481,  302,  497,  498,  498,
915       498,  302,  443,  445,  445,  445,  500,  500,  500,  448,
916       448,  448,  683,  822,  499,  502,  502,  502,  450,  450,
917       450,  823,  451,  302,  302,  452,  456,  456,  456,  458,
918
919       458,  458,  459,  459,  459,  838,  460,  302,  682,  461,
920       828,  829,  457,  462,  462,  462,  302,  463,  302,  835,
921       464,  467,  467,  467,  832,  468,  302,  840,  469,  471,
922       471,  471,  302,  472,  302,  833,  473,  513,  513,  513,
923       357,  357,  357,  364,  364,  364,  302,  484,  484,  484,
924       841,  485,  836,  514,  486,  839,  359,  302,  681,  366,
925       488,  488,  488,  680,  489,  302,  837,  490,  525,  525,
926       525,  495,  495,  495,  302,  496,  515,  302,  497,  498,
927       498,  498,  846,  526,  500,  500,  500,  302,  679,  517,
928       529,  529,  529,  678,  844,  499,  502,  502,  502,  531,
929
930       531,  531,  533,  533,  533,  513,  513,  513,  542,  542,
931       542,  544,  544,  544,  532,  677,  842,  534,  364,  364,
932       364,  514,  302,  855,  543,  552,  552,  552,  525,  525,
933       525,  554,  554,  554,  366,  555,  302,  676,  556,  675,
934       553,  874,  667,  526,  529,  529,  529,  531,  531,  531,
935       560,  560,  560,  302,  561,  302,  845,  562,  533,  533,
936       533,  843,  532,  666,  563,  563,  563,  665,  564,  664,
937       545,  565,  847,  534,  570,  570,  570,  572,  572,  572,
938       574,  574,  574,  542,  542,  542,  544,  544,  544,  571,
939       663,  662,  573,  661,  660,  575,  576,  576,  576,  543,
940
941       579,  579,  579,  583,  583,  583,  552,  552,  552,  576,
942       576,  576,  577,  585,  585,  585,  302,  586,  584,  302,
943       587,  553,  554,  554,  554,  577,  555,  302,  659,  556,
944       589,  589,  589,  591,  591,  591,  560,  560,  560,  848,
945       561,  658,  302,  562,  657,  590,  302,  849,  592,  563,
946       563,  563,  656,  564,  302,  860,  565,  570,  570,  570,
947       597,  597,  597,  655,  598,  654,  856,  599,  572,  572,
948       572,  653,  571,  600,  600,  600,  652,  601,  302,  651,
949       602,  857,  628,  573,  574,  574,  574,  603,  603,  603,
950       627,  604,  302,  626,  605,  613,  613,  613,  850,  575,
951
952       579,  579,  579,  583,  583,  583,  852,  615,  615,  615,
953       614,  616,  851,  302,  617,  853,  302,  866,  584,  585,
954       585,  585,  302,  586,  302,  867,  587,  625,  589,  589,
955       589,  302,  302,  606,  618,  607,  302,  619,  619,  619,
956       874,  620,  608,  590,  621,  591,  591,  591,  609,  302,
957       622,  622,  622,  610,  623,  302,  858,  624,  596,  595,
958       592,  597,  597,  597,  594,  598,  593,  861,  599,  600,
959       600,  600,  302,  601,  302,  859,  602,  603,  603,  603,
960       302,  604,  302,  302,  605,  613,  613,  613,  648,  648,
961       648,  302,  649,  588,  862,  650,  582,  615,  615,  615,
962
963       614,  616,  863,  864,  617,  619,  619,  619,  868,  620,
964       578,  865,  621,  622,  622,  622,  869,  623,  879,  302,
965       624,  648,  648,  648,  302,  649,  302,  302,  650,  692,
966       692,  692,  696,  696,  696,  711,  711,  711,  692,  692,
967       692,  715,  715,  715,  870,  302,  871,  697,  425,  569,
968       568,  302,  567,  879,  302,  872,  566,  302,  716,  716,
969       716,  696,  696,  696,  302,  302,  713,  559,  718,  718,
970       718,  558,  719,  717,  425,  720,  697,  425,  711,  711,
971       711,  735,  735,  735,  425,  715,  715,  715,  716,  716,
972       716,  739,  739,  739,  302,  740,  302,  302,  741,  302,
973
974       873,  302,  302,  717,  425,  886,  734,  425,  718,  718,
975       718,  557,  719,  738,  551,  720,  875,  302,  735,  735,
976       735,  754,  754,  754,  425,  423,  423,  423,  423,  423,
977       423,  423,  423,  423,  302,  884,  423,  302,  885,  423,
978       423,  423,  425,  423,  550,  546,  752,  886,  302,  541,
979       540,  302,  302,  754,  754,  754,  302,  423,  423,  423,
980       423,  423,  423,  423,  423,  423,  423,  423,  876,  302,
981       423,  877,  878,  423,  423,  423,  425,  423,  739,  739,
982       739,  766,  740,  539,  889,  741,  538,  302,  771,  771,
983       771,  423,  423,  302,  425,  423,  423,  423,  423,  423,
984
985       761,  423,  423,  423,  425,  426,  423,  880,  889,  423,
986       423,  423,  425,  423,  800,  800,  800,  896,  801,  302,
987       302,  802,  771,  771,  771,  537,  302,  423,  423,  423,
988       423,  423,  423,  423,  423,  423,  423,  761,  425,  881,
989       423,  536,  535,  423,  423,  423,  425,  423,  789,  789,
990       789,  792,  792,  792,  794,  794,  794,  530,  528,  480,
991       896,  423,  423,  527,  302,  524,  793,  789,  789,  789,
992       302,  796,  302,  523,  797,  799,  799,  799,  792,  792,
993       792,  522,  518,  302,  302,  794,  794,  794,  516,  803,
994       512,  302,  804,  793,  805,  805,  805,  302,  799,  799,
995
996       799,  302,  809,  511,  890,  810,  817,  817,  817,  510,
997       302,  800,  800,  800,  302,  801,  505,  891,  802,  805,
998       805,  805,  302,  813,  504,  503,  814,  817,  817,  817,
999       501,  826,  492,  491,  827,  302,  882,  882,  882,  887,
1000       887,  887,  487,  302,  882,  882,  882,  892,  892,  892,
1001       483,  482,  883,  425,  478,  888,  887,  887,  887,  476,
1002       883,  470,  466,  893,  894,  894,  894,  892,  892,  892,
1003       465,  455,  888,  894,  894,  894,  897,  897,  897,  454,
1004       895,  453,  449,  893,  897,  897,  897,  447,  446,  895,
1005       440,  436,  898,  433,  430,  428,  427,  421,  416,  408,
1006
1007       898,   76,   76,   76,   76,   76,   76,   76,   77,   77,
1008        77,   77,   77,   77,   77,   82,   82,   82,   82,   82,
1009        82,   82,   85,   85,   85,   85,   85,   85,   85,   88,
1010        88,   88,   88,   88,   88,   88,   91,   91,   91,   91,
1011        91,   91,   91,   98,   98,   98,   98,   98,   98,   98,
1012       116,  116,  116,  116,  116,  116,  116,  134,  134,  134,
1013       134,  134,  134,  134,  152,  152,  152,  152,  152,  152,
1014       152,  159,  159,  159,  159,  159,  159,  159,  163,  163,
1015       163,  163,  163,  163,  163,  172,  172,  172,  172,  172,
1016       172,  172,  176,  176,  176,  176,  176,  176,  176,  198,
1017
1018       198,  198,  405,  198,  216,  216,  216,  404,  216,  224,
1019       224,  224,  399,  224,  234,  234,  234,  397,  234,  239,
1020       239,  239,  396,  239,  244,  244,  244,  244,  244,  392,
1021       244,  266,  390,  266,  280,  389,  280,  290,  387,  290,
1022       293,  386,  293,  297,  384,  297,  301,  301,  301,  301,
1023       301,  301,  301,  307,  383,  380,  307,  323,  323,  323,
1024       323,  323,  323,  340,  340,  340,  340,  340,  340,  352,
1025       352,  352,  352,  352,  352,  358,  358,  358,  358,  358,
1026       358,  365,  365,  365,  365,  365,  365,  423,  423,  423,
1027       423,  423,  423,  423,  742,  742,  742,  742,  742,  742,
1028
1029       742,  743,  743,  743,  743,  743,  743,  743,  756,  756,
1030       756,  756,  756,  756,  756,  759,  759,  759,  759,  759,
1031       759,  759,  768,  768,  768,  768,  768,  768,  768,  770,
1032       770,  770,  770,  770,  770,  770,  379,  378,  377,  376,
1033       375,  374,  373,  372,  371,  370,  302,  368,  361,  350,
1034       349,  348,  347,  346,  345,  344,  343,  338,  337,  336,
1035       332,  331,  330,  329,  328,  327,  326,  321,  320,  319,
1036       318,  317,  316,  315,  314,  313,  312,  311,  310,  309,
1037       308,  305,  303,  302,  300,  299,  298,  296,  295,  294,
1038       292,  291,  289,  288,  287,  286,  285,  284,  283,  282,
1039
1040       281,  279,  278,  277,  274,  273,  272,  271,  270,  269,
1041       268,  267,  265,  264,  263,  262,  261,  260,  259,  258,
1042       257,  256,  255,  254,  253,  248,  245,  247,  243,  242,
1043       240,  238,  235,  233,  229,  228,  227,  226,  225,  223,
1044       220,  219,  218,  217,  215,  206,  205,  204,  203,  202,
1045       201,  197,  195,  189,  188,  189,  188,  187,  186,  899,
1046        75,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1047       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1048       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1049       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1050
1051       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1052       899,  899,  899,  899,  899,  899,  899,  899,  899,  899
1053     } ;
1054
1055 static yyconst flex_int16_t yy_chk[2521] =
1056     {   0,
1057         0,    3,    3,    3,    4,    4,    4,    5,    5,    5,
1058         6,    6,    6,    9,  190,    3,   10,   11,    4,   12,
1059         9,    5,  481,   10,    6,    7,    7,    7,    8,    8,
1060         8,   13,   13,   11,  304,   12,   13,   13,  304,    7,
1061        14,   14,    8,  481,   13,   14,   14,   15,   15,  109,
1062        15,   80,   15,   14,   16,   16,  109,   16,  190,   16,
1063        15,   17,   17,   18,   18,   80,   81,   16,   19,   19,
1064        19,   20,   20,   20,   23,   23,   23,   24,   24,   24,
1065        81,  151,   19,  191,  463,   20,  191,  151,   23,  442,
1066       463,   24,   17,  442,   18,   21,   21,   21,   21,   21,
1067
1068        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1069        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1070        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1071        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1072        21,   21,   21,   21,   21,   21,   21,   21,   21,   21,
1073        21,   21,   21,   21,   25,   25,   25,   26,   26,   26,
1074        27,   27,   27,   28,   28,   28,  464,  249,   25,  249,
1075       779,   26,  464,  778,   27,  520,   84,   28,   29,   29,
1076        29,   30,   30,   30,   31,   31,   31,   32,   32,   32,
1077        84,  480,   29,  519,  520,   30,  607,  580,   31,  519,
1078
1079       107,   32,   33,   33,   33,   34,   34,   34,   35,   35,
1080        35,   36,   36,   36,  107,  772,   33,  580,  645,   34,
1081       607,  480,   35,  643,  128,   36,   37,   37,   37,   38,
1082        38,   38,   78,   78,   78,   79,   79,   79,  128,  645,
1083        37,  643,  770,   38,   39,   39,   39,   39,   39,   39,
1084        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
1085        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
1086        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
1087        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
1088        39,   39,   39,   39,   39,   39,   39,   39,   39,   39,
1089
1090        39,   39,   39,   41,   41,   41,   42,   42,   42,   43,
1091        43,   43,   44,   44,   44,  548,  769,   41,  581,  671,
1092        42,  768,  606,   43,  762,  123,   44,   45,   45,   45,
1093        46,   46,   46,   47,   47,   47,   48,   48,   48,  123,
1094       671,   45,  606,  581,   46,  760,  548,   47,  758,  144,
1095        48,   49,   49,   49,   50,   50,   50,   83,   83,   83,
1096       104,  104,  104,  144,  123,   49,  757,  757,   50,   51,
1097        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1098        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1099        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1100
1101        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1102        51,   51,   51,   51,   51,   51,   51,   51,   51,   51,
1103        51,   51,   51,   51,   51,   51,   51,   51,   53,   53,
1104        53,   54,   54,   54,   55,   55,   55,   56,   56,   56,
1105       246,  765,   53,  773,  744,   54,  611,  765,   55,  773,
1106       246,   56,   57,   57,   57,   57,   57,   57,   57,   57,
1107        57,   57,   57,   57,   57,  521,   57,   57,   57,   57,
1108        57,  611,   59,   59,   59,   60,   60,   60,   61,   61,
1109        61,   62,   62,   62,   57,   57,   59,  102,  160,   60,
1110       732,  741,   61,  646,  730,   62,  117,  117,  117,  521,
1111
1112       741,  102,  160,   57,   58,   58,   58,   58,   58,   58,
1113        58,   58,   58,   58,   58,   58,   58,  102,   58,   58,
1114        58,   58,   58,  646,   63,   63,   63,   64,   64,   64,
1115        65,   65,   65,   66,   66,   66,   58,   58,   63,  728,
1116       168,   64,  726,  724,   65,  644,  609,   66,   67,   67,
1117        67,   68,   68,   68,  168,   58,  125,  125,  125,  135,
1118       135,  135,   67,  609,  608,   68,   69,   69,   69,   69,
1119        69,   69,   69,   69,   69,   69,   69,   69,   69,  644,
1120        69,   69,   69,   69,   69,  168,   71,   71,   71,   72,
1121        72,   72,  141,  141,  141,  608,  173,  139,   69,   69,
1122
1123        71,  154,  422,   72,  153,  153,  153,  722,  154,   94,
1124       173,  139,  157,  157,  157,  154,  422,   69,   70,   70,
1125        70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
1126        70,  714,   70,   70,   70,   70,   70,   94,  549,   73,
1127        73,   74,   74,   94,   73,  120,   74,  139,   94,  118,
1128        70,   70,   73,   94,   74,  182,  118,  119,  642,  120,
1129       164,  164,  164,  118,  119,  479,  155,  714,  182,   70,
1130        73,  119,   74,  549,  610,  120,  479,  120,  121,  118,
1131       155,  118,  759,  642,  120,  721,  122,  119,  118,  119,
1132       120,  759,  121,  122,  118,  120,  119,  178,  155,  118,
1133
1134       122,  369,  119,  647,  178,  136,  710,  119,  121,  610,
1135       121,  178,  136,  137,  369,  598,  122,  121,  122,  136,
1136       170,  170,  170,  121,  599,  122,  612,  137,  121,  598,
1137       668,  122,  138,  647,  601,  136,  122,  136,  599,  138,
1138       165,  669,  602,  137,  136,  137,  138,  165,  601,  641,
1139       136,  604,  137,  668,  165,  136,  602,  612,  137,  166,
1140       672,  605,  138,  137,  138,  604,  641,  167,  815,  669,
1141       165,  138,  165,  166,  167,  605,  691,  138,  693,  165,
1142       673,  167,  138,  709,  708,  165,  177,  177,  177,  166,
1143       165,  166,  181,  181,  181,  672,  691,  167,  166,  167,
1144
1145       217,  217,  217,  673,  166,  775,  167,  815,  693,  166,
1146       777,  796,  167,  713,  775,  217,  777,  167,  266,  266,
1147       266,  267,  267,  267,  275,  275,  275,  713,  276,  276,
1148       276,  796,  276,  707,  266,  276,  706,  267,  797,  275,
1149       280,  280,  280,  281,  281,  281,  290,  290,  290,  291,
1150       291,  291,  292,  292,  292,  780,  280,  267,  797,  281,
1151       781,  705,  290,  704,  780,  291,  781,  292,  293,  293,
1152       293,  294,  294,  294,  296,  296,  296,  297,  297,  297,
1153       298,  298,  298,  736,  293,  784,  790,  294,  703,  296,
1154       281,  702,  790,  297,  784,  736,  298,  319,  319,  319,
1155
1156       291,  322,  322,  322,  323,  323,  323,  325,  325,  325,
1157       740,  294,  319,  298,  328,  328,  328,  322,  734,  738,
1158       323,  788,  740,  325,  331,  331,  331,  333,  333,  333,
1159       788,  333,  734,  738,  333,  336,  336,  336,  803,  804,
1160       325,  339,  339,  339,  340,  340,  340,  342,  342,  342,
1161       336,  344,  344,  344,  345,  345,  345,  339,  803,  804,
1162       340,  844,  701,  342,  700,  816,  344,  751,  755,  345,
1163       348,  348,  348,  350,  350,  350,  351,  351,  351,  751,
1164       755,  342,  352,  352,  352,  348,  336,  798,  350,  354,
1165       354,  354,  351,  355,  355,  355,  798,  844,  352,  356,
1166
1167       356,  356,  699,  356,  816,  354,  356,  806,  355,  357,
1168       357,  357,  358,  358,  358,  360,  360,  360,  362,  362,
1169       362,  364,  364,  364,  806,  357,  354,  756,  358,  698,
1170       689,  360,  688,  362,  363,  363,  363,  364,  363,  756,
1171       752,  363,  365,  365,  365,  367,  367,  367,  370,  370,
1172       370,  375,  375,  375,  752,  687,  360,  686,  365,  685,
1173       684,  367,  820,  809,  370,  370,  377,  377,  377,  379,
1174       379,  379,  381,  381,  381,  382,  382,  382,  683,  382,
1175       766,  377,  382,  809,  379,  807,  753,  381,  384,  384,
1176       384,  385,  385,  385,  766,  367,  386,  386,  386,  753,
1177
1178       384,  820,  807,  384,  388,  388,  388,  385,  390,  390,
1179       390,  391,  391,  391,  393,  393,  393,  394,  394,  394,
1180       811,  394,  682,  681,  394,  398,  398,  398,  680,  393,
1181       385,  399,  399,  399,  400,  400,  400,  811,  401,  401,
1182       401,  398,  401,  763,  679,  401,  402,  402,  402,  400,
1183       403,  403,  403,  764,  403,  767,  763,  403,  406,  406,
1184       406,  402,  407,  407,  407,  764,  407,  774,  767,  407,
1185       409,  409,  409,  406,  410,  410,  410,  776,  410,  783,
1186       774,  410,  411,  411,  411,  409,  412,  412,  412,  776,
1187       412,  678,  783,  412,  415,  415,  415,  821,  411,  417,
1188
1189       417,  417,  675,  417,  667,  666,  417,  420,  420,  420,
1190       415,  424,  424,  424,  429,  429,  429,  431,  431,  431,
1191       434,  434,  434,  420,  432,  432,  432,  424,  432,  665,
1192       812,  432,  431,  411,  810,  434,  821,  664,  415,  435,
1193       435,  435,  663,  435,  420,  824,  435,  812,  424,  437,
1194       437,  437,  824,  437,  810,  662,  437,  441,  441,  441,
1195       443,  443,  443,  813,  443,  424,  828,  443,  444,  444,
1196       444,  814,  441,  445,  445,  445,  446,  446,  446,  448,
1197       448,  448,  661,  813,  444,  449,  449,  449,  450,  450,
1198       450,  814,  450,  818,  819,  450,  456,  456,  456,  458,
1199
1200       458,  458,  459,  459,  459,  828,  459,  822,  660,  459,
1201       818,  819,  456,  462,  462,  462,  829,  462,  823,  825,
1202       462,  467,  467,  467,  822,  467,  825,  830,  467,  471,
1203       471,  471,  826,  471,  830,  823,  471,  474,  474,  474,
1204       475,  475,  475,  477,  477,  477,  827,  484,  484,  484,
1205       831,  484,  826,  474,  484,  829,  475,  831,  659,  477,
1206       488,  488,  488,  658,  488,  836,  827,  488,  492,  492,
1207       492,  495,  495,  495,  834,  495,  475,  832,  495,  498,
1208       498,  498,  836,  492,  500,  500,  500,  845,  657,  477,
1209       501,  501,  501,  656,  834,  498,  502,  502,  502,  504,
1210
1211       504,  504,  505,  505,  505,  513,  513,  513,  515,  515,
1212       515,  516,  516,  516,  504,  655,  832,  505,  517,  517,
1213       517,  513,  833,  845,  515,  524,  524,  524,  525,  525,
1214       525,  526,  526,  526,  517,  526,  835,  653,  526,  651,
1215       524,  864,  640,  525,  529,  529,  529,  531,  531,  531,
1216       532,  532,  532,  864,  532,  837,  835,  532,  533,  533,
1217       533,  833,  531,  639,  534,  534,  534,  638,  534,  637,
1218       517,  534,  837,  533,  539,  539,  539,  540,  540,  540,
1219       541,  541,  541,  542,  542,  542,  544,  544,  544,  539,
1220       636,  635,  540,  634,  633,  541,  545,  545,  545,  542,
1221
1222       547,  547,  547,  551,  551,  551,  552,  552,  552,  576,
1223       576,  576,  545,  553,  553,  553,  547,  553,  551,  850,
1224       553,  552,  554,  554,  554,  576,  554,  846,  632,  554,
1225       558,  558,  558,  559,  559,  559,  560,  560,  560,  838,
1226       560,  631,  847,  560,  630,  558,  838,  839,  559,  563,
1227       563,  563,  629,  563,  839,  850,  563,  570,  570,  570,
1228       571,  571,  571,  628,  571,  627,  846,  571,  572,  572,
1229       572,  626,  570,  573,  573,  573,  625,  573,  840,  618,
1230       573,  847,  596,  572,  574,  574,  574,  575,  575,  575,
1231       595,  575,  841,  594,  575,  582,  582,  582,  840,  574,
1232
1233       579,  579,  579,  583,  583,  583,  842,  584,  584,  584,
1234       582,  584,  841,  842,  584,  843,  579,  856,  583,  585,
1235       585,  585,  843,  585,  856,  857,  585,  593,  589,  589,
1236       589,  851,  857,  579,  588,  579,  848,  590,  590,  590,
1237       865,  590,  579,  589,  590,  591,  591,  591,  579,  865,
1238       592,  592,  592,  579,  592,  849,  848,  592,  569,  568,
1239       591,  597,  597,  597,  567,  597,  566,  851,  597,  600,
1240       600,  600,  858,  600,  852,  849,  600,  603,  603,  603,
1241       859,  603,  853,  854,  603,  613,  613,  613,  614,  614,
1242       614,  855,  614,  557,  852,  614,  550,  615,  615,  615,
1243
1244       613,  615,  853,  854,  615,  619,  619,  619,  858,  619,
1245       546,  855,  619,  622,  622,  622,  859,  622,  871,  862,
1246       622,  648,  648,  648,  860,  648,  861,  871,  648,  670,
1247       670,  670,  674,  674,  674,  690,  690,  690,  692,  692,
1248       692,  694,  694,  694,  860,  670,  861,  674,  674,  538,
1249       537,  690,  536,  870,  692,  862,  535,  694,  695,  695,
1250       695,  696,  696,  696,  863,  870,  692,  530,  697,  697,
1251       697,  528,  697,  695,  695,  697,  696,  696,  711,  711,
1252       711,  712,  712,  712,  697,  715,  715,  715,  716,  716,
1253       716,  717,  717,  717,  711,  717,  866,  712,  717,  875,
1254
1255       863,  715,  876,  716,  716,  877,  711,  717,  718,  718,
1256       718,  527,  718,  715,  523,  718,  866,  877,  735,  735,
1257       735,  737,  737,  737,  718,  719,  719,  719,  719,  719,
1258       719,  719,  719,  719,  735,  875,  719,  737,  876,  719,
1259       719,  719,  719,  719,  522,  518,  735,  878,  867,  512,
1260       511,  868,  869,  754,  754,  754,  878,  719,  719,  720,
1261       720,  720,  720,  720,  720,  720,  720,  720,  867,  754,
1262       720,  868,  869,  720,  720,  720,  720,  720,  739,  739,
1263       739,  754,  739,  510,  881,  739,  509,  872,  761,  761,
1264       761,  720,  720,  881,  739,  742,  742,  742,  742,  742,
1265
1266       742,  742,  742,  742,  761,  761,  742,  872,  880,  742,
1267       742,  742,  742,  742,  793,  793,  793,  891,  793,  873,
1268       880,  793,  771,  771,  771,  508,  891,  742,  742,  743,
1269       743,  743,  743,  743,  743,  743,  743,  743,  771,  873,
1270       743,  507,  506,  743,  743,  743,  743,  743,  782,  782,
1271       782,  786,  786,  786,  787,  787,  787,  503,  494,  771,
1272       890,  743,  743,  493,  782,  491,  786,  789,  789,  789,
1273       787,  789,  890,  487,  789,  791,  791,  791,  792,  792,
1274       792,  483,  478,  789,  884,  794,  794,  794,  476,  794,
1275       470,  791,  794,  792,  795,  795,  795,  885,  799,  799,
1276
1277       799,  794,  799,  466,  884,  799,  808,  808,  808,  465,
1278       795,  800,  800,  800,  799,  800,  455,  885,  800,  805,
1279       805,  805,  808,  805,  454,  453,  805,  817,  817,  817,
1280       447,  817,  440,  436,  817,  805,  874,  874,  874,  879,
1281       879,  879,  433,  817,  882,  882,  882,  886,  886,  886,
1282       430,  426,  874,  423,  421,  879,  887,  887,  887,  416,
1283       882,  408,  405,  886,  889,  889,  889,  892,  892,  892,
1284       404,  397,  887,  894,  894,  894,  896,  896,  896,  396,
1285       889,  395,  392,  892,  897,  897,  897,  389,  387,  894,
1286       383,  380,  896,  378,  376,  374,  373,  368,  361,  349,
1287
1288       897,  900,  900,  900,  900,  900,  900,  900,  901,  901,
1289       901,  901,  901,  901,  901,  902,  902,  902,  902,  902,
1290       902,  902,  903,  903,  903,  903,  903,  903,  903,  904,
1291       904,  904,  904,  904,  904,  904,  905,  905,  905,  905,
1292       905,  905,  905,  906,  906,  906,  906,  906,  906,  906,
1293       907,  907,  907,  907,  907,  907,  907,  908,  908,  908,
1294       908,  908,  908,  908,  909,  909,  909,  909,  909,  909,
1295       909,  910,  910,  910,  910,  910,  910,  910,  911,  911,
1296       911,  911,  911,  911,  911,  912,  912,  912,  912,  912,
1297       912,  912,  913,  913,  913,  913,  913,  913,  913,  914,
1298
1299       914,  914,  347,  914,  915,  915,  915,  346,  915,  916,
1300       916,  916,  343,  916,  917,  917,  917,  338,  917,  918,
1301       918,  918,  337,  918,  919,  919,  919,  919,  919,  332,
1302       919,  920,  330,  920,  921,  329,  921,  922,  327,  922,
1303       923,  326,  923,  924,  321,  924,  925,  925,  925,  925,
1304       925,  925,  925,  926,  320,  318,  926,  927,  927,  927,
1305       927,  927,  927,  928,  928,  928,  928,  928,  928,  929,
1306       929,  929,  929,  929,  929,  930,  930,  930,  930,  930,
1307       930,  931,  931,  931,  931,  931,  931,  932,  932,  932,
1308       932,  932,  932,  932,  933,  933,  933,  933,  933,  933,
1309
1310       933,  934,  934,  934,  934,  934,  934,  934,  935,  935,
1311       935,  935,  935,  935,  935,  936,  936,  936,  936,  936,
1312       936,  936,  937,  937,  937,  937,  937,  937,  937,  938,
1313       938,  938,  938,  938,  938,  938,  317,  316,  315,  314,
1314       313,  312,  309,  308,  307,  305,  301,  299,  295,  289,
1315       288,  287,  286,  285,  284,  283,  282,  279,  278,  277,
1316       274,  273,  272,  271,  270,  269,  268,  265,  264,  263,
1317       262,  261,  260,  259,  258,  257,  255,  254,  253,  252,
1318       251,  247,  245,  244,  243,  242,  241,  240,  237,  236,
1319       235,  232,  231,  230,  229,  228,  227,  226,  225,  222,
1320
1321       221,  220,  219,  218,  214,  213,  212,  211,  210,  209,
1322       208,  207,  206,  205,  204,  203,  202,  201,  200,  199,
1323       196,  195,  194,  193,  192,  186,  185,  183,  180,  179,
1324       175,  171,  162,  158,  150,  149,  148,  147,  146,  142,
1325       133,  132,  131,  130,  126,  115,  114,  113,  112,  111,
1326       110,  105,  101,  100,   99,   93,   92,   90,   87,   75,
1327       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1328       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1329       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1330       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1331
1332       899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1333       899,  899,  899,  899,  899,  899,  899,  899,  899,  899
1334     } ;
1335
1336 /* Table of booleans, true if rule could match eol. */
1337 static yyconst flex_int32_t yy_rule_can_match_eol[143] =
1338     {   0,
1339 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 
1340     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1341     1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1342     1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
1343     1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 
1344     1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 
1345     0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 
1346     0, 1, 0,     };
1347
1348 static yy_state_type yy_last_accepting_state;
1349 static char *yy_last_accepting_cpos;
1350
1351 extern int dax__flex_debug;
1352 int dax__flex_debug = 0;
1353
1354 /* The intent behind this definition is that it'll catch
1355  * any uses of REJECT which flex missed.
1356  */
1357 #define REJECT reject_used_but_not_detected
1358 #define yymore() yymore_used_but_not_detected
1359 #define YY_MORE_ADJ 0
1360 #define YY_RESTORE_YY_MORE_OFFSET
1361 char *dax_text;
1362 /* Validating XML processor for simdag/dax.dtd.
1363  * Generated 2009/10/05 17:12:40.
1364  *
1365  * This program was generated with the FleXML XML processor generator.
1366  * FleXML is Copyright (C) 1999-2005 Kristoffer Rose.  All rights reserved.
1367  * FleXML is Copyright (C) 2003-2006 Martin Quinson.  All rights reserved.
1368  * (Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp).
1369  * 
1370  * There are two, intertwined parts to this program, part A and part B.
1371  *
1372  * Part A
1373  * ------
1374  * 
1375  * Some parts, here collectively called "Part A", are found in the 
1376  * FleXML package.  They are Copyright (C) 1999-2005 Kristoffer Rose
1377  * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1378  *
1379  * You can redistribute, use, perform, display and/or modify "Part A"
1380  * provided the following two conditions hold:
1381  *
1382  * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1383  *    FleXML; without even the implied warranty of MERCHANTABILITY or
1384  *    FITNESS FOR A PARTICULAR PURPOSE.
1385  *
1386  * 2. The program distribution conditions do not in any way affect the
1387  *    distribution conditions of the FleXML system used to generate this
1388  *    file or any version of FleXML derived from that system.
1389  *
1390  * Notice that these are explicit rights granted to you for files
1391  * generated by the FleXML system.  For your rights in connection with
1392  * the FleXML system itself please consult the GNU General Public License.
1393  * 
1394  * Part B
1395  * ------
1396  * 
1397  * The other parts, here collectively called "Part B", and which came 
1398  * from the DTD used by FleXML to generate this program, can be 
1399  * distributed (or not, as the case may be) under the terms of whoever
1400  * wrote them, provided these terms respect and obey the two conditions 
1401  * above under the heading "Part A".
1402  *
1403  * The author of and contributors to FleXML specifically disclaim
1404  * any copyright interest in "Part B", unless "Part B" was written 
1405  * by the author of or contributors to FleXML.
1406  * 
1407  */
1408
1409 /* Version strings. */
1410 const char rcs_dax__flexml_skeleton[] =
1411  "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
1412 const char rcs_dax__flexml[] =
1413  "$" "Id: flexml.pl,v 1.62 2007/10/11 10:00:14 mquinson Exp $";
1414
1415 /* ANSI headers. */
1416 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
1417 #include <stdio.h>
1418 #include <string.h>
1419 #include <assert.h>
1420 #include <stdarg.h>
1421 #include <ctype.h>
1422      
1423 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1424 # ifndef __STRICT_ANSI__
1425 #  include <io.h>
1426 #  include <process.h>
1427 # endif
1428 #else
1429 # include <unistd.h>
1430 #endif
1431      
1432 #ifndef FLEXML_INDEXSTACKSIZE
1433 #define FLEXML_INDEXSTACKSIZE 1000
1434 #endif
1435
1436 /* Generated definitions. */
1437 #define FLEXML_yylineno
1438 #ifndef FLEXML_BUFFERSTACKSIZE
1439 #define FLEXML_BUFFERSTACKSIZE 1000000
1440 #endif
1441 #define FLEXML_NEED_BUFFERLIT
1442
1443 /* XML processor api. */
1444 /* FleXML-provided data. */
1445 int dax__pcdata_ix;
1446 extern char *dax__bufferstack;
1447 #define dax__pcdata (dax__bufferstack + dax__pcdata_ix)
1448 AT_dax__adag_version AX_dax__adag_version;
1449 #define A_dax__adag_version (dax__bufferstack + AX_dax__adag_version)
1450 AT_dax__uses_type AX_dax__uses_type;
1451 #define A_dax__uses_type (dax__bufferstack + AX_dax__uses_type)
1452 AT_dax__uses_optional AX_dax__uses_optional;
1453 #define A_dax__uses_optional AX_dax__uses_optional
1454 AT_dax__adag_name AX_dax__adag_name;
1455 #define A_dax__adag_name (dax__bufferstack + AX_dax__adag_name)
1456 AT_dax__child_ref AX_dax__child_ref;
1457 #define A_dax__child_ref (dax__bufferstack + AX_dax__child_ref)
1458 AT_dax__adag_xmlns AX_dax__adag_xmlns;
1459 #define A_dax__adag_xmlns (dax__bufferstack + AX_dax__adag_xmlns)
1460 AT_dax__uses_transfer AX_dax__uses_transfer;
1461 #define A_dax__uses_transfer AX_dax__uses_transfer
1462 AT_dax__job_id AX_dax__job_id;
1463 #define A_dax__job_id (dax__bufferstack + AX_dax__job_id)
1464 AT_dax__uses_file AX_dax__uses_file;
1465 #define A_dax__uses_file (dax__bufferstack + AX_dax__uses_file)
1466 AT_dax__parent_ref AX_dax__parent_ref;
1467 #define A_dax__parent_ref (dax__bufferstack + AX_dax__parent_ref)
1468 AT_dax__adag_count AX_dax__adag_count;
1469 #define A_dax__adag_count (dax__bufferstack + AX_dax__adag_count)
1470 AT_dax__adag_xmlns_c_xsi AX_dax__adag_xmlns_c_xsi;
1471 #define A_dax__adag_xmlns_c_xsi (dax__bufferstack + AX_dax__adag_xmlns_c_xsi)
1472 AT_dax__adag_index AX_dax__adag_index;
1473 #define A_dax__adag_index (dax__bufferstack + AX_dax__adag_index)
1474 AT_dax__uses_size AX_dax__uses_size;
1475 #define A_dax__uses_size (dax__bufferstack + AX_dax__uses_size)
1476 AT_dax__adag_childCount AX_dax__adag_childCount;
1477 #define A_dax__adag_childCount (dax__bufferstack + AX_dax__adag_childCount)
1478 AT_dax__uses_link AX_dax__uses_link;
1479 #define A_dax__uses_link AX_dax__uses_link
1480 AT_dax__job_runtime AX_dax__job_runtime;
1481 #define A_dax__job_runtime (dax__bufferstack + AX_dax__job_runtime)
1482 AT_dax__job_namespace AX_dax__job_namespace;
1483 #define A_dax__job_namespace (dax__bufferstack + AX_dax__job_namespace)
1484 AT_dax__job_name AX_dax__job_name;
1485 #define A_dax__job_name (dax__bufferstack + AX_dax__job_name)
1486 AT_dax__adag_jobCount AX_dax__adag_jobCount;
1487 #define A_dax__adag_jobCount (dax__bufferstack + AX_dax__adag_jobCount)
1488 AT_dax__adag_xmlns_c_schemaLocation AX_dax__adag_xmlns_c_schemaLocation;
1489 #define A_dax__adag_xmlns_c_schemaLocation (dax__bufferstack + AX_dax__adag_xmlns_c_schemaLocation)
1490 AT_dax__job_version AX_dax__job_version;
1491 #define A_dax__job_version (dax__bufferstack + AX_dax__job_version)
1492 AT_dax__uses_register AX_dax__uses_register;
1493 #define A_dax__uses_register AX_dax__uses_register
1494 AT_dax__adag_fileCount AX_dax__adag_fileCount;
1495 #define A_dax__adag_fileCount (dax__bufferstack + AX_dax__adag_fileCount)
1496
1497 /* XML state. */
1498 #ifdef FLEX_DEBUG
1499 # define ENTER(state)   debug_enter(state,#state)
1500 # define LEAVE          debug_leave()
1501 # define SET(state)     debug_set(state,#state)
1502   static void debug_enter(int, const char*);
1503   static void debug_leave(void);
1504   static void debug_set(int, const char*);
1505 #else
1506 # define ENTER(state)   (yy_push_state(state))
1507 # define LEAVE          (yy_pop_state())
1508 # define SET(state)     BEGIN(state)
1509 #endif
1510
1511 /* Generic actions. */
1512 #define SKIP    /*skip*/
1513 #define SUCCEED        CLEANUP; return 0
1514
1515 #define FAIL    return fail
1516 static int fail(const char*, ...);
1517
1518 enum {flexml_max_err_msg_size = 512};
1519 static char flexml_err_msg[flexml_max_err_msg_size];
1520 const char * dax__parse_err_msg()
1521 {
1522     return flexml_err_msg;
1523 }
1524 static void reset_dax__parse_err_msg()
1525 {
1526     flexml_err_msg[0] = '\0';
1527 }
1528
1529 /* Cleanup */
1530 static void cleanup(void);
1531 #define CLEANUP  cleanup()
1532
1533 /* Text buffer stack handling. */
1534 char *dax__bufferstack = NULL;
1535 static int blimit = FLEXML_BUFFERSTACKSIZE;
1536 static int bnext = 1;
1537
1538 static int *indexstack = NULL;
1539 static int ilimit = FLEXML_INDEXSTACKSIZE;
1540 static int inext = 1;
1541
1542 #define BUFFERSET(P)  (P = bnext)
1543 #define BUFFERPUTC(C) (ck_blimit(), dax__bufferstack[bnext++] = (C))
1544 #define BUFFERDONE    (BUFFERPUTC('\0'))
1545
1546 #define BUFFERLITERAL(C, P) dax__bufferliteral(C, &(P), dax_text)
1547
1548 /* after this is called, there are at least 2 slots left in the stack */
1549 static int ck_blimit()
1550 {
1551      if (bnext >= blimit) {
1552          blimit += FLEXML_BUFFERSTACKSIZE + 2;
1553          {
1554              char *temp = (char *) realloc(dax__bufferstack, blimit);
1555              assert(temp);
1556              dax__bufferstack = temp;
1557          }
1558      }
1559      return 0;
1560 }
1561
1562 /* after this is called, there are at least 2 slots left in the stack */
1563 static int ck_ilimit()
1564 {
1565      if (inext >= ilimit) {
1566          ilimit += FLEXML_INDEXSTACKSIZE + 2;
1567          {
1568              int *temp = (int *) realloc(indexstack, ilimit);
1569              assert(temp);
1570              indexstack = temp;
1571          }
1572      }
1573      return 0;
1574 }
1575
1576 #ifdef FLEXML_NEED_BUFFERLIT
1577 static void dax__bufferliteral(char c, int* pp, const char* text)
1578 {
1579   const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
1580   assert(s <= e); BUFFERSET(*pp);
1581   while (++s<e) {
1582     if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1583     else BUFFERPUTC(*s);
1584   }
1585   BUFFERDONE;
1586 }
1587 #endif
1588
1589 static void pushbuffer(int p)
1590 {
1591     ck_ilimit();
1592     indexstack[inext++] = p;
1593     indexstack[inext++] = bnext;    
1594 }
1595
1596 static int popbuffer(void)
1597 {
1598     assert(inext >= 2);
1599     bnext = indexstack[--inext];
1600     return indexstack[--inext];
1601 }
1602
1603 /* General internal entities are `unput' back onto the input stream... */
1604 #define ENTITYTEXT(T) \
1605   { char *s = (T), *e = s+strlen(s);\
1606     while (--e >= s) { unput(*e); }}
1607
1608 /* Flex standard options. */
1609 #define YY_NO_INPUT 1
1610 /* Flex user-requested options. */
1611 /* XML character classes (currently restricted to ASCII). */
1612 /* "Common syntactic structures." */
1613 /* "Names and Tokens." */
1614 /* Miscellaneous. */
1615 /* Parser states (flex `exclusive start conditions'):
1616  *
1617  * PROLOG       the XML prolog of the document before <?xml...>
1618  * DOCTYPE      the XML prolog of the document after <?xml...>
1619  * EPILOG       after the root element
1620  * INCOMMENT    inside an XML comment <!--....-->
1621  * INPI         inside an XML PI <?...?>
1622  * VALUE1       inside a '...'-delimited literal
1623  * VALUE2       inside a "..."-delimited literal
1624  * CDATA        inside a <![CDATA[...] ]> section.
1625  * ROOT_<tag>   expect root element <tag>
1626  * AL_<tag>     inside the attribute list for <tag>
1627  * IN_<tag>     inside a <tag> with element contents (ready for end tag)
1628  * IMPOSSIBLE   dummy to permit disabling rules; must be last
1629  */
1630
1631 /* State names. */
1632 const char* *dax__statenames=NULL;
1633
1634 #define INITIAL 0
1635 #define PROLOG 1
1636 #define DOCTYPE 2
1637 #define EPILOG 3
1638 #define INCOMMENT 4
1639 #define INPI 5
1640 #define VALUE1 6
1641 #define VALUE2 7
1642 #define CDATA 8
1643 #define ROOT_dax__adag 9
1644 #define AL_dax__adag 10
1645 #define S_dax__adag 11
1646 #define S_dax__adag_1 12
1647 #define S_dax__adag_2 13
1648 #define S_dax__adag_3 14
1649 #define S_dax__adag_4 15
1650 #define S_dax__adag_5 16
1651 #define E_dax__adag 17
1652 #define ROOT_dax__job 18
1653 #define AL_dax__job 19
1654 #define S_dax__job 20
1655 #define S_dax__job_1 21
1656 #define S_dax__job_2 22
1657 #define E_dax__job 23
1658 #define ROOT_dax__uses 24
1659 #define AL_dax__uses 25
1660 #define E_dax__uses 26
1661 #define ROOT_dax__child 27
1662 #define AL_dax__child 28
1663 #define S_dax__child 29
1664 #define S_dax__child_1 30
1665 #define S_dax__child_2 31
1666 #define E_dax__child 32
1667 #define ROOT_dax__parent 33
1668 #define AL_dax__parent 34
1669 #define E_dax__parent 35
1670 #define IMPOSSIBLE 36
1671
1672 #ifndef YY_NO_UNISTD_H
1673 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1674  * down here because we want the user's section 1 to have been scanned first.
1675  * The user has a chance to override it with an option.
1676  */
1677 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1678 #  ifndef __STRICT_ANSI__
1679 #    include <io.h>
1680 #    include <process.h>
1681 #  endif
1682 #else
1683 #  include <unistd.h>
1684 #endif
1685 #endif
1686
1687 #ifndef YY_EXTRA_TYPE
1688 #define YY_EXTRA_TYPE void *
1689 #endif
1690
1691 static int yy_init_globals (void );
1692
1693 /* Accessor methods to globals.
1694    These are made visible to non-reentrant scanners for convenience. */
1695
1696 int dax_lex_destroy (void );
1697
1698 int dax_get_debug (void );
1699
1700 void dax_set_debug (int debug_flag  );
1701
1702 YY_EXTRA_TYPE dax_get_extra (void );
1703
1704 void dax_set_extra (YY_EXTRA_TYPE user_defined  );
1705
1706 FILE *dax_get_in (void );
1707
1708 void dax_set_in  (FILE * in_str  );
1709
1710 FILE *dax_get_out (void );
1711
1712 void dax_set_out  (FILE * out_str  );
1713
1714 int dax_get_leng (void );
1715
1716 char *dax_get_text (void );
1717
1718 int dax_get_lineno (void );
1719
1720 void dax_set_lineno (int line_number  );
1721
1722 /* Macros after this point can all be overridden by user definitions in
1723  * section 1.
1724  */
1725
1726 #ifndef YY_SKIP_YYWRAP
1727 #ifdef __cplusplus
1728 extern "C" int dax_wrap (void );
1729 #else
1730 extern int dax_wrap (void );
1731 #endif
1732 #endif
1733
1734 #ifndef yytext_ptr
1735 static void yy_flex_strncpy (char *,yyconst char *,int );
1736 #endif
1737
1738 #ifdef YY_NEED_STRLEN
1739 static int yy_flex_strlen (yyconst char * );
1740 #endif
1741
1742 #ifndef YY_NO_INPUT
1743
1744 #ifdef __cplusplus
1745 static int yyinput (void );
1746 #else
1747 static int input (void );
1748 #endif
1749
1750 #endif
1751
1752         static int yy_start_stack_ptr = 0;
1753         static int yy_start_stack_depth = 0;
1754         static int *yy_start_stack = NULL;
1755     
1756     static void yy_push_state (int new_state );
1757     
1758     static void yy_pop_state (void );
1759     
1760 /* Amount of stuff to slurp up with each read. */
1761 #ifndef YY_READ_BUF_SIZE
1762 #ifdef __ia64__
1763 /* On IA-64, the buffer size is 16k, not 8k */
1764 #define YY_READ_BUF_SIZE 16384
1765 #else
1766 #define YY_READ_BUF_SIZE 8192
1767 #endif /* __ia64__ */
1768 #endif
1769
1770 /* Copy whatever the last rule matched to the standard output. */
1771 #ifndef ECHO
1772 /* This used to be an fputs(), but since the string might contain NUL's,
1773  * we now use fwrite().
1774  */
1775 #define ECHO do { if (fwrite( dax_text, dax_leng, 1, dax_out )) {} } while (0)
1776 #endif
1777
1778 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1779  * is returned in "result".
1780  */
1781 #ifndef YY_INPUT
1782 #define YY_INPUT(buf,result,max_size) \
1783         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1784                 { \
1785                 int c = '*'; \
1786                 size_t n; \
1787                 for ( n = 0; n < max_size && \
1788                              (c = getc( dax_in )) != EOF && c != '\n'; ++n ) \
1789                         buf[n] = (char) c; \
1790                 if ( c == '\n' ) \
1791                         buf[n++] = (char) c; \
1792                 if ( c == EOF && ferror( dax_in ) ) \
1793                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1794                 result = n; \
1795                 } \
1796         else \
1797                 { \
1798                 errno=0; \
1799                 while ( (result = fread(buf, 1, max_size, dax_in))==0 && ferror(dax_in)) \
1800                         { \
1801                         if( errno != EINTR) \
1802                                 { \
1803                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1804                                 break; \
1805                                 } \
1806                         errno=0; \
1807                         clearerr(dax_in); \
1808                         } \
1809                 }\
1810 \
1811
1812 #endif
1813
1814 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1815  * we don't want an extra ';' after the "return" because that will cause
1816  * some compilers to complain about unreachable statements.
1817  */
1818 #ifndef yyterminate
1819 #define yyterminate() return YY_NULL
1820 #endif
1821
1822 /* Number of entries by which start-condition stack grows. */
1823 #ifndef YY_START_STACK_INCR
1824 #define YY_START_STACK_INCR 25
1825 #endif
1826
1827 /* Report a fatal error. */
1828 #ifndef YY_FATAL_ERROR
1829 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1830 #endif
1831
1832 /* end tables serialization structures and prototypes */
1833
1834 /* Default declaration of generated scanner - a define so the user can
1835  * easily add parameters.
1836  */
1837 #ifndef YY_DECL
1838 #define YY_DECL_IS_OURS 1
1839
1840 extern int dax_lex (void);
1841
1842 #define YY_DECL int dax_lex (void)
1843 #endif /* !YY_DECL */
1844
1845 /* Code executed at the beginning of each rule, after dax_text and dax_leng
1846  * have been set up.
1847  */
1848 #ifndef YY_USER_ACTION
1849 #define YY_USER_ACTION
1850 #endif
1851
1852 /* Code executed at the end of each rule. */
1853 #ifndef YY_BREAK
1854 #define YY_BREAK break;
1855 #endif
1856
1857 #define YY_RULE_SETUP \
1858         YY_USER_ACTION
1859
1860 /** The main scanner function which does all the work.
1861  */
1862 YY_DECL
1863 {
1864         register yy_state_type yy_current_state;
1865         register char *yy_cp, *yy_bp;
1866         register int yy_act;
1867     
1868  /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
1869  SET(PROLOG);
1870  reset_dax__parse_err_msg();
1871  dax__bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
1872  assert(dax__bufferstack);
1873  #ifdef FLEX_DEBUG
1874  {
1875      int i;
1876      for (i = 0; i < blimit; i++) {
1877          dax__bufferstack[i] = '\377';
1878      }
1879  }
1880  #endif
1881  dax__bufferstack[0] = '\0';
1882  indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
1883  assert(indexstack);
1884  indexstack[0] = 0;
1885
1886   /* FleXML_init */
1887   bnext = inext = 1;
1888   dax__bufferliteral('\0', &bnext, "http://pegasus.isi.edu/schema/DAX");
1889   dax__bufferliteral('\0', &bnext, "http://www.w3.org/2001/XMLSchema-instance");
1890   dax__bufferliteral('\0', &bnext, "http://pegasus.isi.edu/schema/DAX http://pegasus.isi.edu/schema/dax-2.1.xsd");
1891   dax__bufferliteral('\0', &bnext, "0.0");
1892   dax__bufferliteral('\0', &bnext, "0.0");
1893   dax__bufferliteral('\0', &bnext, "data");
1894   if(!dax__statenames) {dax__statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
1895   dax__statenames[PROLOG] = NULL;
1896   dax__statenames[DOCTYPE] = NULL;
1897   dax__statenames[EPILOG] = NULL;
1898   dax__statenames[INCOMMENT] = NULL;
1899   dax__statenames[INPI] = NULL;
1900   dax__statenames[VALUE1] = NULL;
1901   dax__statenames[VALUE2] = NULL;
1902   dax__statenames[CDATA] = NULL;
1903   dax__statenames[ROOT_dax__adag] = NULL;
1904   dax__statenames[AL_dax__adag] = NULL;
1905   dax__statenames[S_dax__adag] = "adag";
1906   dax__statenames[S_dax__adag_1] = "adag";
1907   dax__statenames[S_dax__adag_2] = "adag";
1908   dax__statenames[S_dax__adag_3] = "adag";
1909   dax__statenames[S_dax__adag_4] = "adag";
1910   dax__statenames[S_dax__adag_5] = "adag";
1911   dax__statenames[E_dax__adag] = "adag";
1912   dax__statenames[ROOT_dax__job] = NULL;
1913   dax__statenames[AL_dax__job] = NULL;
1914   dax__statenames[S_dax__job] = "job";
1915   dax__statenames[S_dax__job_1] = "job";
1916   dax__statenames[S_dax__job_2] = "job";
1917   dax__statenames[E_dax__job] = "job";
1918   dax__statenames[ROOT_dax__uses] = NULL;
1919   dax__statenames[AL_dax__uses] = NULL;
1920   dax__statenames[E_dax__uses] = "uses";
1921   dax__statenames[ROOT_dax__child] = NULL;
1922   dax__statenames[AL_dax__child] = NULL;
1923   dax__statenames[S_dax__child] = "child";
1924   dax__statenames[S_dax__child_1] = "child";
1925   dax__statenames[S_dax__child_2] = "child";
1926   dax__statenames[E_dax__child] = "child";
1927   dax__statenames[ROOT_dax__parent] = NULL;
1928   dax__statenames[AL_dax__parent] = NULL;
1929   dax__statenames[E_dax__parent] = "parent";
1930   }
1931
1932  /* COMMENTS and PIs: handled uniformly for efficiency. */
1933
1934         if ( !(yy_init) )
1935                 {
1936                 (yy_init) = 1;
1937
1938 #ifdef YY_USER_INIT
1939                 YY_USER_INIT;
1940 #endif
1941
1942                 if ( ! (yy_start) )
1943                         (yy_start) = 1; /* first start state */
1944
1945                 if ( ! dax_in )
1946                         dax_in = stdin;
1947
1948                 if ( ! dax_out )
1949                         dax_out = stdout;
1950
1951                 if ( ! YY_CURRENT_BUFFER ) {
1952                         dax_ensure_buffer_stack ();
1953                         YY_CURRENT_BUFFER_LVALUE =
1954                                 dax__create_buffer(dax_in,YY_BUF_SIZE );
1955                 }
1956
1957                 dax__load_buffer_state( );
1958                 }
1959
1960         while ( 1 )             /* loops until end-of-file is reached */
1961                 {
1962                 yy_cp = (yy_c_buf_p);
1963
1964                 /* Support of dax_text. */
1965                 *yy_cp = (yy_hold_char);
1966
1967                 /* yy_bp points to the position in yy_ch_buf of the start of
1968                  * the current run.
1969                  */
1970                 yy_bp = yy_cp;
1971
1972                 yy_current_state = (yy_start);
1973 yy_match:
1974                 do
1975                         {
1976                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1977                         if ( yy_accept[yy_current_state] )
1978                                 {
1979                                 (yy_last_accepting_state) = yy_current_state;
1980                                 (yy_last_accepting_cpos) = yy_cp;
1981                                 }
1982                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1983                                 {
1984                                 yy_current_state = (int) yy_def[yy_current_state];
1985                                 if ( yy_current_state >= 900 )
1986                                         yy_c = yy_meta[(unsigned int) yy_c];
1987                                 }
1988                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1989                         ++yy_cp;
1990                         }
1991                 while ( yy_base[yy_current_state] != 2461 );
1992
1993 yy_find_action:
1994                 yy_act = yy_accept[yy_current_state];
1995                 if ( yy_act == 0 )
1996                         { /* have to back up */
1997                         yy_cp = (yy_last_accepting_cpos);
1998                         yy_current_state = (yy_last_accepting_state);
1999                         yy_act = yy_accept[yy_current_state];
2000                         }
2001
2002                 YY_DO_BEFORE_ACTION;
2003
2004                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2005                         {
2006                         int yyl;
2007                         for ( yyl = 0; yyl < dax_leng; ++yyl )
2008                                 if ( dax_text[yyl] == '\n' )
2009                                            
2010     dax_lineno++;
2011 ;
2012                         }
2013
2014 do_action:      /* This label is used only to access EOF actions. */
2015
2016                 switch ( yy_act )
2017         { /* beginning of action switch */
2018                         case 0: /* must back up */
2019                         /* undo the effects of YY_DO_BEFORE_ACTION */
2020                         *yy_cp = (yy_hold_char);
2021                         yy_cp = (yy_last_accepting_cpos);
2022                         yy_current_state = (yy_last_accepting_state);
2023                         goto yy_find_action;
2024
2025 case 1:
2026 YY_RULE_SETUP
2027 ENTER(INCOMMENT);
2028         YY_BREAK
2029 case 2:
2030 YY_RULE_SETUP
2031 ENTER(INPI);
2032         YY_BREAK
2033
2034 case 3:
2035 YY_RULE_SETUP
2036 LEAVE;
2037         YY_BREAK
2038 case 4:
2039 case 5:
2040 case 6:
2041 /* rule 6 can match eol */
2042 YY_RULE_SETUP
2043 SKIP;
2044         YY_BREAK
2045 case YY_STATE_EOF(INCOMMENT):
2046 FAIL("EOF in comment.");
2047         YY_BREAK
2048
2049 case 7:
2050 YY_RULE_SETUP
2051 LEAVE;
2052         YY_BREAK
2053 case 8:
2054 case 9:
2055 /* rule 9 can match eol */
2056 YY_RULE_SETUP
2057 SKIP;
2058         YY_BREAK
2059 case YY_STATE_EOF(INPI):
2060 FAIL("EOF in PI (processing instruction).");
2061         YY_BREAK
2062
2063 /* SPACES: skipped uniformly */
2064 case 10:
2065 /* rule 10 can match eol */
2066 YY_RULE_SETUP
2067 SKIP;
2068         YY_BREAK
2069 /* PROLOG: determine root element and process it. */
2070
2071 case 11:
2072 /* rule 11 can match eol */
2073 YY_RULE_SETUP
2074 SET(DOCTYPE); 
2075         YY_BREAK
2076 case 12:
2077 /* rule 12 can match eol */
2078 YY_RULE_SETUP
2079 FAIL("Bad declaration %s.",dax_text);
2080         YY_BREAK
2081
2082 case 13:
2083 /* rule 13 can match eol */
2084 YY_RULE_SETUP
2085 SET(ROOT_dax__parent);
2086         YY_BREAK
2087 case 14:
2088 /* rule 14 can match eol */
2089 YY_RULE_SETUP
2090 SET(ROOT_dax__uses);
2091         YY_BREAK
2092 case 15:
2093 /* rule 15 can match eol */
2094 YY_RULE_SETUP
2095 SET(ROOT_dax__child);
2096         YY_BREAK
2097 case 16:
2098 /* rule 16 can match eol */
2099 YY_RULE_SETUP
2100 SET(ROOT_dax__adag);
2101         YY_BREAK
2102 case 17:
2103 /* rule 17 can match eol */
2104 YY_RULE_SETUP
2105 SET(ROOT_dax__job);
2106         YY_BREAK
2107 case 18:
2108 /* rule 18 can match eol */
2109 YY_RULE_SETUP
2110 FAIL("Bad declaration %s.",dax_text);
2111         YY_BREAK
2112 case 19:
2113 YY_RULE_SETUP
2114 FAIL("Unexpected character `%c' in prolog.", dax_text[0]);
2115         YY_BREAK
2116 case YY_STATE_EOF(PROLOG):
2117 case YY_STATE_EOF(DOCTYPE):
2118 FAIL("EOF in prolog.");
2119         YY_BREAK
2120
2121 /* RULES DERIVED FROM DTD. */
2122 /* <!-- Small DTD for DAX files. -->  */
2123 case 20:
2124 /* rule 20 can match eol */
2125 YY_RULE_SETUP
2126 FAIL("Starting tag <adag> is not allowed here.");
2127         YY_BREAK
2128 case 21:
2129 /* rule 21 can match eol */
2130 YY_RULE_SETUP
2131 {
2132   AX_dax__adag_xmlns = 1;
2133   AX_dax__adag_xmlns_c_xsi = 35;
2134   AX_dax__adag_xmlns_c_schemaLocation = 77;
2135   AX_dax__adag_version = 153;
2136   AX_dax__adag_count = 0;
2137   AX_dax__adag_index = 0;
2138   AX_dax__adag_name = 0;
2139   AX_dax__adag_jobCount = 0;
2140   AX_dax__adag_fileCount = 0;
2141   AX_dax__adag_childCount = 0;
2142   ENTER(AL_dax__adag); pushbuffer(0);
2143   }
2144         YY_BREAK
2145
2146 case 22:
2147 /* rule 22 can match eol */
2148 YY_RULE_SETUP
2149 ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns);
2150         YY_BREAK
2151 case 23:
2152 /* rule 23 can match eol */
2153 YY_RULE_SETUP
2154 ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns);
2155         YY_BREAK
2156 case 24:
2157 /* rule 24 can match eol */
2158 YY_RULE_SETUP
2159 ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns_c_xsi);
2160         YY_BREAK
2161 case 25:
2162 /* rule 25 can match eol */
2163 YY_RULE_SETUP
2164 ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns_c_xsi);
2165         YY_BREAK
2166 case 26:
2167 /* rule 26 can match eol */
2168 YY_RULE_SETUP
2169 ENTER(VALUE1); BUFFERSET(AX_dax__adag_xmlns_c_schemaLocation);
2170         YY_BREAK
2171 case 27:
2172 /* rule 27 can match eol */
2173 YY_RULE_SETUP
2174 ENTER(VALUE2); BUFFERSET(AX_dax__adag_xmlns_c_schemaLocation);
2175         YY_BREAK
2176 case 28:
2177 /* rule 28 can match eol */
2178 YY_RULE_SETUP
2179 ENTER(VALUE1); BUFFERSET(AX_dax__adag_version);
2180         YY_BREAK
2181 case 29:
2182 /* rule 29 can match eol */
2183 YY_RULE_SETUP
2184 ENTER(VALUE2); BUFFERSET(AX_dax__adag_version);
2185         YY_BREAK
2186 case 30:
2187 /* rule 30 can match eol */
2188 YY_RULE_SETUP
2189 ENTER(VALUE1); BUFFERSET(AX_dax__adag_count);
2190         YY_BREAK
2191 case 31:
2192 /* rule 31 can match eol */
2193 YY_RULE_SETUP
2194 ENTER(VALUE2); BUFFERSET(AX_dax__adag_count);
2195         YY_BREAK
2196 case 32:
2197 /* rule 32 can match eol */
2198 YY_RULE_SETUP
2199 ENTER(VALUE1); BUFFERSET(AX_dax__adag_index);
2200         YY_BREAK
2201 case 33:
2202 /* rule 33 can match eol */
2203 YY_RULE_SETUP
2204 ENTER(VALUE2); BUFFERSET(AX_dax__adag_index);
2205         YY_BREAK
2206 case 34:
2207 /* rule 34 can match eol */
2208 YY_RULE_SETUP
2209 ENTER(VALUE1); BUFFERSET(AX_dax__adag_name);
2210         YY_BREAK
2211 case 35:
2212 /* rule 35 can match eol */
2213 YY_RULE_SETUP
2214 ENTER(VALUE2); BUFFERSET(AX_dax__adag_name);
2215         YY_BREAK
2216 case 36:
2217 /* rule 36 can match eol */
2218 YY_RULE_SETUP
2219 ENTER(VALUE1); BUFFERSET(AX_dax__adag_jobCount);
2220         YY_BREAK
2221 case 37:
2222 /* rule 37 can match eol */
2223 YY_RULE_SETUP
2224 ENTER(VALUE2); BUFFERSET(AX_dax__adag_jobCount);
2225         YY_BREAK
2226 case 38:
2227 /* rule 38 can match eol */
2228 YY_RULE_SETUP
2229 ENTER(VALUE1); BUFFERSET(AX_dax__adag_fileCount);
2230         YY_BREAK
2231 case 39:
2232 /* rule 39 can match eol */
2233 YY_RULE_SETUP
2234 ENTER(VALUE2); BUFFERSET(AX_dax__adag_fileCount);
2235         YY_BREAK
2236 case 40:
2237 /* rule 40 can match eol */
2238 YY_RULE_SETUP
2239 ENTER(VALUE1); BUFFERSET(AX_dax__adag_childCount);
2240         YY_BREAK
2241 case 41:
2242 /* rule 41 can match eol */
2243 YY_RULE_SETUP
2244 ENTER(VALUE2); BUFFERSET(AX_dax__adag_childCount);
2245         YY_BREAK
2246 case 42:
2247 YY_RULE_SETUP
2248 {
2249   LEAVE; STag_dax__adag();dax__pcdata_ix = 0; ENTER(S_dax__adag);
2250  }
2251         YY_BREAK
2252 case 43:
2253 YY_RULE_SETUP
2254 {
2255   LEAVE; STag_dax__adag(); dax__pcdata_ix = 0; ETag_dax__adag(); popbuffer(); /* attribute */
2256   switch (YY_START) {
2257    case ROOT_dax__adag: SET(EPILOG); break;
2258   }
2259  }
2260         YY_BREAK
2261 case 44:
2262 YY_RULE_SETUP
2263 FAIL("Unexpected character `%c' in attribute list of adag element.", dax_text[0]);
2264         YY_BREAK
2265 case 45:
2266 YY_RULE_SETUP
2267 FAIL("Bad attribute `%s' in `adag' element start tag.",dax_text);
2268         YY_BREAK
2269 case YY_STATE_EOF(AL_dax__adag):
2270 FAIL("EOF in attribute list of `adag' element.");
2271         YY_BREAK
2272
2273 case 46:
2274 /* rule 46 can match eol */
2275 YY_RULE_SETUP
2276 {
2277   LEAVE;
2278   ETag_dax__adag();
2279   popbuffer(); /* attribute */
2280   switch (YY_START) {
2281    case ROOT_dax__adag: SET(EPILOG); break;
2282   }
2283  }
2284         YY_BREAK
2285 case 47:
2286 /* rule 47 can match eol */
2287 YY_RULE_SETUP
2288 FAIL("Unexpected end-tag `%s': `</adag>' expected.",dax_text);
2289         YY_BREAK
2290 case 48:
2291 YY_RULE_SETUP
2292 FAIL("Unexpected character `%c': `</adag>' expected.",dax_text[0]);
2293         YY_BREAK
2294 case YY_STATE_EOF(S_dax__adag_1):
2295 case YY_STATE_EOF(S_dax__adag_5):
2296 case YY_STATE_EOF(E_dax__adag):
2297 case YY_STATE_EOF(S_dax__adag_3):
2298 case YY_STATE_EOF(S_dax__adag):
2299 FAIL("Premature EOF: `</adag>' expected.");
2300         YY_BREAK
2301
2302 case 49:
2303 /* rule 49 can match eol */
2304 YY_RULE_SETUP
2305 FAIL("Starting tag <job> is not allowed here.");
2306         YY_BREAK
2307 case 50:
2308 /* rule 50 can match eol */
2309 YY_RULE_SETUP
2310 {
2311   AX_dax__job_id = 0;
2312   AX_dax__job_namespace = 0;
2313   AX_dax__job_name = 0;
2314   AX_dax__job_version = 157;
2315   AX_dax__job_runtime = 0;
2316   ENTER(AL_dax__job); pushbuffer(0);
2317   }
2318         YY_BREAK
2319
2320 case 51:
2321 /* rule 51 can match eol */
2322 YY_RULE_SETUP
2323 ENTER(VALUE1); BUFFERSET(AX_dax__job_id);
2324         YY_BREAK
2325 case 52:
2326 /* rule 52 can match eol */
2327 YY_RULE_SETUP
2328 ENTER(VALUE2); BUFFERSET(AX_dax__job_id);
2329         YY_BREAK
2330 case 53:
2331 /* rule 53 can match eol */
2332 YY_RULE_SETUP
2333 ENTER(VALUE1); BUFFERSET(AX_dax__job_namespace);
2334         YY_BREAK
2335 case 54:
2336 /* rule 54 can match eol */
2337 YY_RULE_SETUP
2338 ENTER(VALUE2); BUFFERSET(AX_dax__job_namespace);
2339         YY_BREAK
2340 case 55:
2341 /* rule 55 can match eol */
2342 YY_RULE_SETUP
2343 ENTER(VALUE1); BUFFERSET(AX_dax__job_name);
2344         YY_BREAK
2345 case 56:
2346 /* rule 56 can match eol */
2347 YY_RULE_SETUP
2348 ENTER(VALUE2); BUFFERSET(AX_dax__job_name);
2349         YY_BREAK
2350 case 57:
2351 /* rule 57 can match eol */
2352 YY_RULE_SETUP
2353 ENTER(VALUE1); BUFFERSET(AX_dax__job_version);
2354         YY_BREAK
2355 case 58:
2356 /* rule 58 can match eol */
2357 YY_RULE_SETUP
2358 ENTER(VALUE2); BUFFERSET(AX_dax__job_version);
2359         YY_BREAK
2360 case 59:
2361 /* rule 59 can match eol */
2362 YY_RULE_SETUP
2363 ENTER(VALUE1); BUFFERSET(AX_dax__job_runtime);
2364         YY_BREAK
2365 case 60:
2366 /* rule 60 can match eol */
2367 YY_RULE_SETUP
2368 ENTER(VALUE2); BUFFERSET(AX_dax__job_runtime);
2369         YY_BREAK
2370 case 61:
2371 YY_RULE_SETUP
2372 {
2373   if (!AX_dax__job_id) FAIL("Required attribute `id' not set for `job' element.");
2374   if (!AX_dax__job_name) FAIL("Required attribute `name' not set for `job' element.");
2375   if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
2376   LEAVE; STag_dax__job();dax__pcdata_ix = 0; ENTER(S_dax__job);
2377  }
2378         YY_BREAK
2379 case 62:
2380 YY_RULE_SETUP
2381 {
2382   if (!AX_dax__job_id) FAIL("Required attribute `id' not set for `job' element.");
2383   if (!AX_dax__job_name) FAIL("Required attribute `name' not set for `job' element.");
2384   if (!AX_dax__job_runtime) FAIL("Required attribute `runtime' not set for `job' element.");
2385   LEAVE; STag_dax__job(); dax__pcdata_ix = 0; ETag_dax__job(); popbuffer(); /* attribute */
2386   switch (YY_START) {
2387    case S_dax__adag_2: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_3); break;
2388    case ROOT_dax__job: SET(EPILOG); break;
2389   }
2390  }
2391         YY_BREAK
2392 case 63:
2393 YY_RULE_SETUP
2394 FAIL("Unexpected character `%c' in attribute list of job element.", dax_text[0]);
2395         YY_BREAK
2396 case 64:
2397 YY_RULE_SETUP
2398 FAIL("Bad attribute `%s' in `job' element start tag.",dax_text);
2399         YY_BREAK
2400 case YY_STATE_EOF(AL_dax__job):
2401 FAIL("EOF in attribute list of `job' element.");
2402         YY_BREAK
2403
2404 case 65:
2405 /* rule 65 can match eol */
2406 YY_RULE_SETUP
2407 {
2408   LEAVE;
2409   ETag_dax__job();
2410   popbuffer(); /* attribute */
2411   switch (YY_START) {
2412    case S_dax__adag_2: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_3); break;
2413    case ROOT_dax__job: SET(EPILOG); break;
2414   }
2415  }
2416         YY_BREAK
2417 case 66:
2418 /* rule 66 can match eol */
2419 YY_RULE_SETUP
2420 FAIL("Unexpected end-tag `%s': `</job>' expected.",dax_text);
2421         YY_BREAK
2422 case 67:
2423 YY_RULE_SETUP
2424 FAIL("Unexpected character `%c': `</job>' expected.",dax_text[0]);
2425         YY_BREAK
2426 case YY_STATE_EOF(S_dax__job):
2427 case YY_STATE_EOF(E_dax__job):
2428 case YY_STATE_EOF(S_dax__job_2):
2429 FAIL("Premature EOF: `</job>' expected.");
2430         YY_BREAK
2431
2432 case 68:
2433 /* rule 68 can match eol */
2434 YY_RULE_SETUP
2435 FAIL("Starting tag <uses> is not allowed here.");
2436         YY_BREAK
2437 case 69:
2438 /* rule 69 can match eol */
2439 YY_RULE_SETUP
2440 {
2441   AX_dax__uses_file = 0;
2442   AX_dax__uses_link = AU_dax__uses_link;
2443   AX_dax__uses_register = A_dax__uses_register_true;
2444   AX_dax__uses_transfer = A_dax__uses_transfer_true;
2445   AX_dax__uses_optional = A_dax__uses_optional_false;
2446   AX_dax__uses_type = 161;
2447   AX_dax__uses_size = 0;
2448   ENTER(AL_dax__uses); pushbuffer(0);
2449   }
2450         YY_BREAK
2451
2452 case 70:
2453 /* rule 70 can match eol */
2454 YY_RULE_SETUP
2455 ENTER(VALUE1); BUFFERSET(AX_dax__uses_file);
2456         YY_BREAK
2457 case 71:
2458 /* rule 71 can match eol */
2459 YY_RULE_SETUP
2460 ENTER(VALUE2); BUFFERSET(AX_dax__uses_file);
2461         YY_BREAK
2462 case 72:
2463 /* rule 72 can match eol */
2464 case 73:
2465 /* rule 73 can match eol */
2466 YY_RULE_SETUP
2467 A_dax__uses_link = A_dax__uses_link_input;
2468         YY_BREAK
2469 case 74:
2470 /* rule 74 can match eol */
2471 case 75:
2472 /* rule 75 can match eol */
2473 YY_RULE_SETUP
2474 A_dax__uses_link = A_dax__uses_link_output;
2475         YY_BREAK
2476 case 76:
2477 /* rule 76 can match eol */
2478 case 77:
2479 /* rule 77 can match eol */
2480 YY_RULE_SETUP
2481 A_dax__uses_register = A_dax__uses_register_false;
2482         YY_BREAK
2483 case 78:
2484 /* rule 78 can match eol */
2485 case 79:
2486 /* rule 79 can match eol */
2487 YY_RULE_SETUP
2488 A_dax__uses_register = A_dax__uses_register_true;
2489         YY_BREAK
2490 case 80:
2491 /* rule 80 can match eol */
2492 case 81:
2493 /* rule 81 can match eol */
2494 YY_RULE_SETUP
2495 A_dax__uses_transfer = A_dax__uses_transfer_false;
2496         YY_BREAK
2497 case 82:
2498 /* rule 82 can match eol */
2499 case 83:
2500 /* rule 83 can match eol */
2501 YY_RULE_SETUP
2502 A_dax__uses_transfer = A_dax__uses_transfer_true;
2503         YY_BREAK
2504 case 84:
2505 /* rule 84 can match eol */
2506 case 85:
2507 /* rule 85 can match eol */
2508 YY_RULE_SETUP
2509 A_dax__uses_optional = A_dax__uses_optional_false;
2510         YY_BREAK
2511 case 86:
2512 /* rule 86 can match eol */
2513 case 87:
2514 /* rule 87 can match eol */
2515 YY_RULE_SETUP
2516 A_dax__uses_optional = A_dax__uses_optional_true;
2517         YY_BREAK
2518 case 88:
2519 /* rule 88 can match eol */
2520 YY_RULE_SETUP
2521 ENTER(VALUE1); BUFFERSET(AX_dax__uses_type);
2522         YY_BREAK
2523 case 89:
2524 /* rule 89 can match eol */
2525 YY_RULE_SETUP
2526 ENTER(VALUE2); BUFFERSET(AX_dax__uses_type);
2527         YY_BREAK
2528 case 90:
2529 /* rule 90 can match eol */
2530 YY_RULE_SETUP
2531 ENTER(VALUE1); BUFFERSET(AX_dax__uses_size);
2532         YY_BREAK
2533 case 91:
2534 /* rule 91 can match eol */
2535 YY_RULE_SETUP
2536 ENTER(VALUE2); BUFFERSET(AX_dax__uses_size);
2537         YY_BREAK
2538 case 92:
2539 YY_RULE_SETUP
2540 {
2541   if (!AX_dax__uses_file) FAIL("Required attribute `file' not set for `uses' element.");
2542   if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
2543   LEAVE; STag_dax__uses();dax__pcdata_ix = 0; ENTER(E_dax__uses);
2544  }
2545         YY_BREAK
2546 case 93:
2547 YY_RULE_SETUP
2548 {
2549   if (!AX_dax__uses_file) FAIL("Required attribute `file' not set for `uses' element.");
2550   if (!AX_dax__uses_size) FAIL("Required attribute `size' not set for `uses' element.");
2551   LEAVE; STag_dax__uses(); dax__pcdata_ix = 0; ETag_dax__uses(); popbuffer(); /* attribute */
2552   switch (YY_START) {
2553    case S_dax__job: case S_dax__job_2: case S_dax__job_1: SET(S_dax__job_2); break;
2554    case ROOT_dax__uses: SET(EPILOG); break;
2555   }
2556  }
2557         YY_BREAK
2558 case 94:
2559 YY_RULE_SETUP
2560 FAIL("Unexpected character `%c' in attribute list of uses element.", dax_text[0]);
2561         YY_BREAK
2562 case 95:
2563 YY_RULE_SETUP
2564 FAIL("Bad attribute `%s' in `uses' element start tag.",dax_text);
2565         YY_BREAK
2566 case YY_STATE_EOF(AL_dax__uses):
2567 FAIL("EOF in attribute list of `uses' element.");
2568         YY_BREAK
2569
2570 case 96:
2571 /* rule 96 can match eol */
2572 YY_RULE_SETUP
2573 {
2574   LEAVE;
2575   ETag_dax__uses();
2576   popbuffer(); /* attribute */
2577   switch (YY_START) {
2578    case S_dax__job: case S_dax__job_2: case S_dax__job_1: SET(S_dax__job_2); break;
2579    case ROOT_dax__uses: SET(EPILOG); break;
2580   }
2581  }
2582         YY_BREAK
2583 case 97:
2584 /* rule 97 can match eol */
2585 YY_RULE_SETUP
2586 FAIL("Unexpected end-tag `%s': `</uses>' expected.",dax_text);
2587         YY_BREAK
2588 case 98:
2589 YY_RULE_SETUP
2590 FAIL("Unexpected character `%c': `</uses>' expected.",dax_text[0]);
2591         YY_BREAK
2592 case YY_STATE_EOF(E_dax__uses):
2593 FAIL("Premature EOF: `</uses>' expected.");
2594         YY_BREAK
2595
2596 case 99:
2597 /* rule 99 can match eol */
2598 YY_RULE_SETUP
2599 FAIL("Starting tag <child> is not allowed here.");
2600         YY_BREAK
2601 case 100:
2602 /* rule 100 can match eol */
2603 YY_RULE_SETUP
2604 {
2605   AX_dax__child_ref = 0;
2606   ENTER(AL_dax__child); pushbuffer(0);
2607   }
2608         YY_BREAK
2609
2610 case 101:
2611 /* rule 101 can match eol */
2612 YY_RULE_SETUP
2613 ENTER(VALUE1); BUFFERSET(AX_dax__child_ref);
2614         YY_BREAK
2615 case 102:
2616 /* rule 102 can match eol */
2617 YY_RULE_SETUP
2618 ENTER(VALUE2); BUFFERSET(AX_dax__child_ref);
2619         YY_BREAK
2620 case 103:
2621 YY_RULE_SETUP
2622 {
2623   if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
2624   LEAVE; STag_dax__child();dax__pcdata_ix = 0; ENTER(S_dax__child);
2625  }
2626         YY_BREAK
2627 case 104:
2628 YY_RULE_SETUP
2629 {
2630   if (!AX_dax__child_ref) FAIL("Required attribute `ref' not set for `child' element.");
2631   LEAVE; STag_dax__child(); dax__pcdata_ix = 0; ETag_dax__child(); popbuffer(); /* attribute */
2632   switch (YY_START) {
2633    case S_dax__adag_1: case S_dax__adag_4: case S_dax__adag_5: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_5); break;
2634    case ROOT_dax__child: SET(EPILOG); break;
2635   }
2636  }
2637         YY_BREAK
2638 case 105:
2639 YY_RULE_SETUP
2640 FAIL("Unexpected character `%c' in attribute list of child element.", dax_text[0]);
2641         YY_BREAK
2642 case 106:
2643 YY_RULE_SETUP
2644 FAIL("Bad attribute `%s' in `child' element start tag.",dax_text);
2645         YY_BREAK
2646 case YY_STATE_EOF(AL_dax__child):
2647 FAIL("EOF in attribute list of `child' element.");
2648         YY_BREAK
2649
2650 case 107:
2651 /* rule 107 can match eol */
2652 YY_RULE_SETUP
2653 {
2654   LEAVE;
2655   ETag_dax__child();
2656   popbuffer(); /* attribute */
2657   switch (YY_START) {
2658    case S_dax__adag_1: case S_dax__adag_4: case S_dax__adag_5: case S_dax__adag_3: case S_dax__adag: SET(S_dax__adag_5); break;
2659    case ROOT_dax__child: SET(EPILOG); break;
2660   }
2661  }
2662         YY_BREAK
2663 case 108:
2664 /* rule 108 can match eol */
2665 YY_RULE_SETUP
2666 FAIL("Unexpected end-tag `%s': `</child>' expected.",dax_text);
2667         YY_BREAK
2668 case 109:
2669 YY_RULE_SETUP
2670 FAIL("Unexpected character `%c': `</child>' expected.",dax_text[0]);
2671         YY_BREAK
2672 case YY_STATE_EOF(S_dax__child_2):
2673 case YY_STATE_EOF(E_dax__child):
2674 case YY_STATE_EOF(S_dax__child):
2675 FAIL("Premature EOF: `</child>' expected.");
2676         YY_BREAK
2677
2678 case 110:
2679 /* rule 110 can match eol */
2680 YY_RULE_SETUP
2681 FAIL("Starting tag <parent> is not allowed here.");
2682         YY_BREAK
2683 case 111:
2684 /* rule 111 can match eol */
2685 YY_RULE_SETUP
2686 {
2687   AX_dax__parent_ref = 0;
2688   ENTER(AL_dax__parent); pushbuffer(0);
2689   }
2690         YY_BREAK
2691
2692 case 112:
2693 /* rule 112 can match eol */
2694 YY_RULE_SETUP
2695 ENTER(VALUE1); BUFFERSET(AX_dax__parent_ref);
2696         YY_BREAK
2697 case 113:
2698 /* rule 113 can match eol */
2699 YY_RULE_SETUP
2700 ENTER(VALUE2); BUFFERSET(AX_dax__parent_ref);
2701         YY_BREAK
2702 case 114:
2703 YY_RULE_SETUP
2704 {
2705   if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
2706   LEAVE; STag_dax__parent();dax__pcdata_ix = 0; ENTER(E_dax__parent);
2707  }
2708         YY_BREAK
2709 case 115:
2710 YY_RULE_SETUP
2711 {
2712   if (!AX_dax__parent_ref) FAIL("Required attribute `ref' not set for `parent' element.");
2713   LEAVE; STag_dax__parent(); dax__pcdata_ix = 0; ETag_dax__parent(); popbuffer(); /* attribute */
2714   switch (YY_START) {
2715    case ROOT_dax__parent: SET(EPILOG); break;
2716    case S_dax__child_2: case S_dax__child: case S_dax__child_1: SET(S_dax__child_2); break;
2717   }
2718  }
2719         YY_BREAK
2720 case 116:
2721 YY_RULE_SETUP
2722 FAIL("Unexpected character `%c' in attribute list of parent element.", dax_text[0]);
2723         YY_BREAK
2724 case 117:
2725 YY_RULE_SETUP
2726 FAIL("Bad attribute `%s' in `parent' element start tag.",dax_text);
2727         YY_BREAK
2728 case YY_STATE_EOF(AL_dax__parent):
2729 FAIL("EOF in attribute list of `parent' element.");
2730         YY_BREAK
2731
2732 case 118:
2733 /* rule 118 can match eol */
2734 YY_RULE_SETUP
2735 {
2736   LEAVE;
2737   ETag_dax__parent();
2738   popbuffer(); /* attribute */
2739   switch (YY_START) {
2740    case ROOT_dax__parent: SET(EPILOG); break;
2741    case S_dax__child_2: case S_dax__child: case S_dax__child_1: SET(S_dax__child_2); break;
2742   }
2743  }
2744         YY_BREAK
2745 case 119:
2746 /* rule 119 can match eol */
2747 YY_RULE_SETUP
2748 FAIL("Unexpected end-tag `%s': `</parent>' expected.",dax_text);
2749         YY_BREAK
2750 case 120:
2751 YY_RULE_SETUP
2752 FAIL("Unexpected character `%c': `</parent>' expected.",dax_text[0]);
2753         YY_BREAK
2754 case YY_STATE_EOF(E_dax__parent):
2755 FAIL("Premature EOF: `</parent>' expected.");
2756         YY_BREAK
2757
2758 /* EPILOG: after the root element. */
2759
2760 case 121:
2761 YY_RULE_SETUP
2762 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
2763         YY_BREAK
2764 case YY_STATE_EOF(EPILOG):
2765 SUCCEED;
2766         YY_BREAK
2767
2768 /* CHARACTER DATA. */
2769
2770 /* Non-defined standard entities... */
2771 case 122:
2772 YY_RULE_SETUP
2773 BUFFERPUTC('&');
2774         YY_BREAK
2775 case 123:
2776 YY_RULE_SETUP
2777 BUFFERPUTC('<');
2778         YY_BREAK
2779 case 124:
2780 YY_RULE_SETUP
2781 BUFFERPUTC('>');
2782         YY_BREAK
2783 case 125:
2784 YY_RULE_SETUP
2785 BUFFERPUTC('\'');
2786         YY_BREAK
2787 case 126:
2788 YY_RULE_SETUP
2789 BUFFERPUTC('"');
2790         YY_BREAK
2791 /* Character entities. */
2792 case 127:
2793 YY_RULE_SETUP
2794 BUFFERPUTC((unsigned char)atoi(dax_text+2));
2795         YY_BREAK
2796 case 128:
2797 YY_RULE_SETUP
2798 BUFFERPUTC((unsigned char)strtol(dax_text+3,NULL,16));
2799         YY_BREAK
2800
2801 case 129:
2802 /* rule 129 can match eol */
2803 case 130:
2804 /* rule 130 can match eol */
2805 case 131:
2806 /* rule 131 can match eol */
2807 case 132:
2808 /* rule 132 can match eol */
2809 YY_RULE_SETUP
2810 BUFFERPUTC('\n');
2811         YY_BREAK
2812
2813 case 133:
2814 YY_RULE_SETUP
2815 ENTER(CDATA);
2816         YY_BREAK
2817 case 134:
2818 YY_RULE_SETUP
2819 FAIL("Unexpected `]""]>' in character data.");
2820         YY_BREAK
2821
2822 case 135:
2823 YY_RULE_SETUP
2824 BUFFERDONE; LEAVE;
2825         YY_BREAK
2826 case YY_STATE_EOF(VALUE1):
2827 FAIL("EOF in literal (\"'\" expected).");
2828         YY_BREAK
2829
2830 case 136:
2831 YY_RULE_SETUP
2832 BUFFERDONE; LEAVE;
2833         YY_BREAK
2834 case YY_STATE_EOF(VALUE2):
2835 FAIL("EOF in literal (`\"' expected).");
2836         YY_BREAK
2837
2838 case 137:
2839 /* rule 137 can match eol */
2840 YY_RULE_SETUP
2841 BUFFERPUTC(dax_text[0]);
2842         YY_BREAK
2843 case 138:
2844 YY_RULE_SETUP
2845 FAIL("Spurious `%c' in character data.",dax_text[0]);
2846         YY_BREAK
2847
2848 case 139:
2849 YY_RULE_SETUP
2850 LEAVE;
2851         YY_BREAK
2852 /* "]""]"               BUFFERPUTC(dax_text[0]); BUFFERPUTC(dax_text[1]); */
2853 case 140:
2854 YY_RULE_SETUP
2855 BUFFERPUTC(dax_text[0]);
2856         YY_BREAK
2857 case YY_STATE_EOF(CDATA):
2858 FAIL("EOF in CDATA section.");
2859         YY_BREAK
2860
2861 /* Impossible rules to avoid warnings from flex(1). */
2862 /* Ideally, this should be replaced by code in flexml.pl that
2863     generates just the states not covered by other rules. */
2864
2865 case 141:
2866 /* rule 141 can match eol */
2867 YY_RULE_SETUP
2868 FAIL("Syntax error on character `%c'.", dax_text[0]);
2869         YY_BREAK
2870
2871 case 142:
2872 YY_RULE_SETUP
2873 ECHO;
2874         YY_BREAK
2875 case YY_STATE_EOF(INITIAL):
2876 case YY_STATE_EOF(ROOT_dax__adag):
2877 case YY_STATE_EOF(S_dax__adag_2):
2878 case YY_STATE_EOF(S_dax__adag_4):
2879 case YY_STATE_EOF(ROOT_dax__job):
2880 case YY_STATE_EOF(S_dax__job_1):
2881 case YY_STATE_EOF(ROOT_dax__uses):
2882 case YY_STATE_EOF(ROOT_dax__child):
2883 case YY_STATE_EOF(S_dax__child_1):
2884 case YY_STATE_EOF(ROOT_dax__parent):
2885 case YY_STATE_EOF(IMPOSSIBLE):
2886         yyterminate();
2887
2888         case YY_END_OF_BUFFER:
2889                 {
2890                 /* Amount of text matched not including the EOB char. */
2891                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2892
2893                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2894                 *yy_cp = (yy_hold_char);
2895                 YY_RESTORE_YY_MORE_OFFSET
2896
2897                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2898                         {
2899                         /* We're scanning a new file or input source.  It's
2900                          * possible that this happened because the user
2901                          * just pointed dax_in at a new source and called
2902                          * dax_lex().  If so, then we have to assure
2903                          * consistency between YY_CURRENT_BUFFER and our
2904                          * globals.  Here is the right place to do so, because
2905                          * this is the first action (other than possibly a
2906                          * back-up) that will match for the new input source.
2907                          */
2908                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2909                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = dax_in;
2910                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2911                         }
2912
2913                 /* Note that here we test for yy_c_buf_p "<=" to the position
2914                  * of the first EOB in the buffer, since yy_c_buf_p will
2915                  * already have been incremented past the NUL character
2916                  * (since all states make transitions on EOB to the
2917                  * end-of-buffer state).  Contrast this with the test
2918                  * in input().
2919                  */
2920                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2921                         { /* This was really a NUL. */
2922                         yy_state_type yy_next_state;
2923
2924                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2925
2926                         yy_current_state = yy_get_previous_state(  );
2927
2928                         /* Okay, we're now positioned to make the NUL
2929                          * transition.  We couldn't have
2930                          * yy_get_previous_state() go ahead and do it
2931                          * for us because it doesn't know how to deal
2932                          * with the possibility of jamming (and we don't
2933                          * want to build jamming into it because then it
2934                          * will run more slowly).
2935                          */
2936
2937                         yy_next_state = yy_try_NUL_trans( yy_current_state );
2938
2939                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2940
2941                         if ( yy_next_state )
2942                                 {
2943                                 /* Consume the NUL. */
2944                                 yy_cp = ++(yy_c_buf_p);
2945                                 yy_current_state = yy_next_state;
2946                                 goto yy_match;
2947                                 }
2948
2949                         else
2950                                 {
2951                                 yy_cp = (yy_c_buf_p);
2952                                 goto yy_find_action;
2953                                 }
2954                         }
2955
2956                 else switch ( yy_get_next_buffer(  ) )
2957                         {
2958                         case EOB_ACT_END_OF_FILE:
2959                                 {
2960                                 (yy_did_buffer_switch_on_eof) = 0;
2961
2962                                 if ( dax_wrap( ) )
2963                                         {
2964                                         /* Note: because we've taken care in
2965                                          * yy_get_next_buffer() to have set up
2966                                          * dax_text, we can now set up
2967                                          * yy_c_buf_p so that if some total
2968                                          * hoser (like flex itself) wants to
2969                                          * call the scanner after we return the
2970                                          * YY_NULL, it'll still work - another
2971                                          * YY_NULL will get returned.
2972                                          */
2973                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2974
2975                                         yy_act = YY_STATE_EOF(YY_START);
2976                                         goto do_action;
2977                                         }
2978
2979                                 else
2980                                         {
2981                                         if ( ! (yy_did_buffer_switch_on_eof) )
2982                                                 YY_NEW_FILE;
2983                                         }
2984                                 break;
2985                                 }
2986
2987                         case EOB_ACT_CONTINUE_SCAN:
2988                                 (yy_c_buf_p) =
2989                                         (yytext_ptr) + yy_amount_of_matched_text;
2990
2991                                 yy_current_state = yy_get_previous_state(  );
2992
2993                                 yy_cp = (yy_c_buf_p);
2994                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2995                                 goto yy_match;
2996
2997                         case EOB_ACT_LAST_MATCH:
2998                                 (yy_c_buf_p) =
2999                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3000
3001                                 yy_current_state = yy_get_previous_state(  );
3002
3003                                 yy_cp = (yy_c_buf_p);
3004                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3005                                 goto yy_find_action;
3006                         }
3007                 break;
3008                 }
3009
3010         default:
3011                 YY_FATAL_ERROR(
3012                         "fatal flex scanner internal error--no action found" );
3013         } /* end of action switch */
3014                 } /* end of scanning one token */
3015 } /* end of dax_lex */
3016
3017 /* yy_get_next_buffer - try to read in a new buffer
3018  *
3019  * Returns a code representing an action:
3020  *      EOB_ACT_LAST_MATCH -
3021  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3022  *      EOB_ACT_END_OF_FILE - end of file
3023  */
3024 static int yy_get_next_buffer (void)
3025 {
3026         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3027         register char *source = (yytext_ptr);
3028         register int number_to_move, i;
3029         int ret_val;
3030
3031         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3032                 YY_FATAL_ERROR(
3033                 "fatal flex scanner internal error--end of buffer missed" );
3034
3035         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3036                 { /* Don't try to fill the buffer, so this is an EOF. */
3037                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3038                         {
3039                         /* We matched a single character, the EOB, so
3040                          * treat this as a final EOF.
3041                          */
3042                         return EOB_ACT_END_OF_FILE;
3043                         }
3044
3045                 else
3046                         {
3047                         /* We matched some text prior to the EOB, first
3048                          * process it.
3049                          */
3050                         return EOB_ACT_LAST_MATCH;
3051                         }
3052                 }
3053
3054         /* Try to read more data. */
3055
3056         /* First move last chars to start of buffer. */
3057         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3058
3059         for ( i = 0; i < number_to_move; ++i )
3060                 *(dest++) = *(source++);
3061
3062         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3063                 /* don't do the read, it's not guaranteed to return an EOF,
3064                  * just force an EOF
3065                  */
3066                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3067
3068         else
3069                 {
3070                         int num_to_read =
3071                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3072
3073                 while ( num_to_read <= 0 )
3074                         { /* Not enough room in the buffer - grow it. */
3075
3076                         /* just a shorter name for the current buffer */
3077                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3078
3079                         int yy_c_buf_p_offset =
3080                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3081
3082                         if ( b->yy_is_our_buffer )
3083                                 {
3084                                 int new_size = b->yy_buf_size * 2;
3085
3086                                 if ( new_size <= 0 )
3087                                         b->yy_buf_size += b->yy_buf_size / 8;
3088                                 else
3089                                         b->yy_buf_size *= 2;
3090
3091                                 b->yy_ch_buf = (char *)
3092                                         /* Include room in for 2 EOB chars. */
3093                                         dax_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
3094                                 }
3095                         else
3096                                 /* Can't grow it, we don't own it. */
3097                                 b->yy_ch_buf = 0;
3098
3099                         if ( ! b->yy_ch_buf )
3100                                 YY_FATAL_ERROR(
3101                                 "fatal error - scanner input buffer overflow" );
3102
3103                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3104
3105                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3106                                                 number_to_move - 1;
3107
3108                         }
3109
3110                 if ( num_to_read > YY_READ_BUF_SIZE )
3111                         num_to_read = YY_READ_BUF_SIZE;
3112
3113                 /* Read in more data. */
3114                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3115                         (yy_n_chars), (size_t) num_to_read );
3116
3117                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3118                 }
3119
3120         if ( (yy_n_chars) == 0 )
3121                 {
3122                 if ( number_to_move == YY_MORE_ADJ )
3123                         {
3124                         ret_val = EOB_ACT_END_OF_FILE;
3125                         dax_restart(dax_in  );
3126                         }
3127
3128                 else
3129                         {
3130                         ret_val = EOB_ACT_LAST_MATCH;
3131                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3132                                 YY_BUFFER_EOF_PENDING;
3133                         }
3134                 }
3135
3136         else
3137                 ret_val = EOB_ACT_CONTINUE_SCAN;
3138
3139         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
3140                 /* Extend the array by 50%, plus the number we really need. */
3141                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
3142                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) dax_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
3143                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
3144                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
3145         }
3146
3147         (yy_n_chars) += number_to_move;
3148         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3149         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3150
3151         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3152
3153         return ret_val;
3154 }
3155
3156 /* yy_get_previous_state - get the state just before the EOB char was reached */
3157
3158     static yy_state_type yy_get_previous_state (void)
3159 {
3160         register yy_state_type yy_current_state;
3161         register char *yy_cp;
3162     
3163         yy_current_state = (yy_start);
3164
3165         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3166                 {
3167                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3168                 if ( yy_accept[yy_current_state] )
3169                         {
3170                         (yy_last_accepting_state) = yy_current_state;
3171                         (yy_last_accepting_cpos) = yy_cp;
3172                         }
3173                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3174                         {
3175                         yy_current_state = (int) yy_def[yy_current_state];
3176                         if ( yy_current_state >= 900 )
3177                                 yy_c = yy_meta[(unsigned int) yy_c];
3178                         }
3179                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3180                 }
3181
3182         return yy_current_state;
3183 }
3184
3185 /* yy_try_NUL_trans - try to make a transition on the NUL character
3186  *
3187  * synopsis
3188  *      next_state = yy_try_NUL_trans( current_state );
3189  */
3190     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
3191 {
3192         register int yy_is_jam;
3193         register char *yy_cp = (yy_c_buf_p);
3194
3195         register YY_CHAR yy_c = 1;
3196         if ( yy_accept[yy_current_state] )
3197                 {
3198                 (yy_last_accepting_state) = yy_current_state;
3199                 (yy_last_accepting_cpos) = yy_cp;
3200                 }
3201         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3202                 {
3203                 yy_current_state = (int) yy_def[yy_current_state];
3204                 if ( yy_current_state >= 900 )
3205                         yy_c = yy_meta[(unsigned int) yy_c];
3206                 }
3207         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3208         yy_is_jam = (yy_current_state == 899);
3209
3210         return yy_is_jam ? 0 : yy_current_state;
3211 }
3212
3213 #ifndef YY_NO_INPUT
3214 #ifdef __cplusplus
3215     static int yyinput (void)
3216 #else
3217     static int input  (void)
3218 #endif
3219
3220 {
3221         int c;
3222     
3223         *(yy_c_buf_p) = (yy_hold_char);
3224
3225         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3226                 {
3227                 /* yy_c_buf_p now points to the character we want to return.
3228                  * If this occurs *before* the EOB characters, then it's a
3229                  * valid NUL; if not, then we've hit the end of the buffer.
3230                  */
3231                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3232                         /* This was really a NUL. */
3233                         *(yy_c_buf_p) = '\0';
3234
3235                 else
3236                         { /* need more input */
3237                         int offset = (yy_c_buf_p) - (yytext_ptr);
3238                         ++(yy_c_buf_p);
3239
3240                         switch ( yy_get_next_buffer(  ) )
3241                                 {
3242                                 case EOB_ACT_LAST_MATCH:
3243                                         /* This happens because yy_g_n_b()
3244                                          * sees that we've accumulated a
3245                                          * token and flags that we need to
3246                                          * try matching the token before
3247                                          * proceeding.  But for input(),
3248                                          * there's no matching to consider.
3249                                          * So convert the EOB_ACT_LAST_MATCH
3250                                          * to EOB_ACT_END_OF_FILE.
3251                                          */
3252
3253                                         /* Reset buffer status. */
3254                                         dax_restart(dax_in );
3255
3256                                         /*FALLTHROUGH*/
3257
3258                                 case EOB_ACT_END_OF_FILE:
3259                                         {
3260                                         if ( dax_wrap( ) )
3261                                                 return EOF;
3262
3263                                         if ( ! (yy_did_buffer_switch_on_eof) )
3264                                                 YY_NEW_FILE;
3265 #ifdef __cplusplus
3266                                         return yyinput();
3267 #else
3268                                         return input();
3269 #endif
3270                                         }
3271
3272                                 case EOB_ACT_CONTINUE_SCAN:
3273                                         (yy_c_buf_p) = (yytext_ptr) + offset;
3274                                         break;
3275                                 }
3276                         }
3277                 }
3278
3279         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
3280         *(yy_c_buf_p) = '\0';   /* preserve dax_text */
3281         (yy_hold_char) = *++(yy_c_buf_p);
3282
3283         if ( c == '\n' )
3284                    
3285     dax_lineno++;
3286 ;
3287
3288         return c;
3289 }
3290 #endif  /* ifndef YY_NO_INPUT */
3291
3292 /** Immediately switch to a different input stream.
3293  * @param input_file A readable stream.
3294  * 
3295  * @note This function does not reset the start condition to @c INITIAL .
3296  */
3297     void dax_restart  (FILE * input_file )
3298 {
3299     
3300         if ( ! YY_CURRENT_BUFFER ){
3301         dax_ensure_buffer_stack ();
3302                 YY_CURRENT_BUFFER_LVALUE =
3303             dax__create_buffer(dax_in,YY_BUF_SIZE );
3304         }
3305
3306         dax__init_buffer(YY_CURRENT_BUFFER,input_file );
3307         dax__load_buffer_state( );
3308 }
3309
3310 /** Switch to a different input buffer.
3311  * @param new_buffer The new input buffer.
3312  * 
3313  */
3314     void dax__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
3315 {
3316     
3317         /* TODO. We should be able to replace this entire function body
3318          * with
3319          *              dax_pop_buffer_state();
3320          *              dax_push_buffer_state(new_buffer);
3321      */
3322         dax_ensure_buffer_stack ();
3323         if ( YY_CURRENT_BUFFER == new_buffer )
3324                 return;
3325
3326         if ( YY_CURRENT_BUFFER )
3327                 {
3328                 /* Flush out information for old buffer. */
3329                 *(yy_c_buf_p) = (yy_hold_char);
3330                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3331                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3332                 }
3333
3334         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3335         dax__load_buffer_state( );
3336
3337         /* We don't actually know whether we did this switch during
3338          * EOF (dax_wrap()) processing, but the only time this flag
3339          * is looked at is after dax_wrap() is called, so it's safe
3340          * to go ahead and always set it.
3341          */
3342         (yy_did_buffer_switch_on_eof) = 1;
3343 }
3344
3345 static void dax__load_buffer_state  (void)
3346 {
3347         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3348         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3349         dax_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3350         (yy_hold_char) = *(yy_c_buf_p);
3351 }
3352
3353 /** Allocate and initialize an input buffer state.
3354  * @param file A readable stream.
3355  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3356  * 
3357  * @return the allocated buffer state.
3358  */
3359     YY_BUFFER_STATE dax__create_buffer  (FILE * file, int  size )
3360 {
3361         YY_BUFFER_STATE b;
3362     
3363         b = (YY_BUFFER_STATE) dax_alloc(sizeof( struct yy_buffer_state )  );
3364         if ( ! b )
3365                 YY_FATAL_ERROR( "out of dynamic memory in dax__create_buffer()" );
3366
3367         b->yy_buf_size = size;
3368
3369         /* yy_ch_buf has to be 2 characters longer than the size given because
3370          * we need to put in 2 end-of-buffer characters.
3371          */
3372         b->yy_ch_buf = (char *) dax_alloc(b->yy_buf_size + 2  );
3373         if ( ! b->yy_ch_buf )
3374                 YY_FATAL_ERROR( "out of dynamic memory in dax__create_buffer()" );
3375
3376         b->yy_is_our_buffer = 1;
3377
3378         dax__init_buffer(b,file );
3379
3380         return b;
3381 }
3382
3383 /** Destroy the buffer.
3384  * @param b a buffer created with dax__create_buffer()
3385  * 
3386  */
3387     void dax__delete_buffer (YY_BUFFER_STATE  b )
3388 {
3389     
3390         if ( ! b )
3391                 return;
3392
3393         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3394                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3395
3396         if ( b->yy_is_our_buffer )
3397                 dax_free((void *) b->yy_ch_buf  );
3398
3399         dax_free((void *) b  );
3400 }
3401
3402 #ifndef __cplusplus
3403 extern int isatty (int );
3404 #endif /* __cplusplus */
3405     
3406 /* Initializes or reinitializes a buffer.
3407  * This function is sometimes called more than once on the same buffer,
3408  * such as during a dax_restart() or at EOF.
3409  */
3410     static void dax__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
3411
3412 {
3413         int oerrno = errno;
3414     
3415         dax__flush_buffer(b );
3416
3417         b->yy_input_file = file;
3418         b->yy_fill_buffer = 1;
3419
3420     /* If b is the current buffer, then dax__init_buffer was _probably_
3421      * called from dax_restart() or through yy_get_next_buffer.
3422      * In that case, we don't want to reset the lineno or column.
3423      */
3424     if (b != YY_CURRENT_BUFFER){
3425         b->yy_bs_lineno = 1;
3426         b->yy_bs_column = 0;
3427     }
3428
3429         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3430     
3431         errno = oerrno;
3432 }
3433
3434 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3435  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3436  * 
3437  */
3438     void dax__flush_buffer (YY_BUFFER_STATE  b )
3439 {
3440         if ( ! b )
3441                 return;
3442
3443         b->yy_n_chars = 0;
3444
3445         /* We always need two end-of-buffer characters.  The first causes
3446          * a transition to the end-of-buffer state.  The second causes
3447          * a jam in that state.
3448          */
3449         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3450         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3451
3452         b->yy_buf_pos = &b->yy_ch_buf[0];
3453
3454         b->yy_at_bol = 1;
3455         b->yy_buffer_status = YY_BUFFER_NEW;
3456
3457         if ( b == YY_CURRENT_BUFFER )
3458                 dax__load_buffer_state( );
3459 }
3460
3461 /** Pushes the new state onto the stack. The new state becomes
3462  *  the current state. This function will allocate the stack
3463  *  if necessary.
3464  *  @param new_buffer The new state.
3465  *  
3466  */
3467 void dax_push_buffer_state (YY_BUFFER_STATE new_buffer )
3468 {
3469         if (new_buffer == NULL)
3470                 return;
3471
3472         dax_ensure_buffer_stack();
3473
3474         /* This block is copied from dax__switch_to_buffer. */
3475         if ( YY_CURRENT_BUFFER )
3476                 {
3477                 /* Flush out information for old buffer. */
3478                 *(yy_c_buf_p) = (yy_hold_char);
3479                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3480                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3481                 }
3482
3483         /* Only push if top exists. Otherwise, replace top. */
3484         if (YY_CURRENT_BUFFER)
3485                 (yy_buffer_stack_top)++;
3486         YY_CURRENT_BUFFER_LVALUE = new_buffer;
3487
3488         /* copied from dax__switch_to_buffer. */
3489         dax__load_buffer_state( );
3490         (yy_did_buffer_switch_on_eof) = 1;
3491 }
3492
3493 /** Removes and deletes the top of the stack, if present.
3494  *  The next element becomes the new top.
3495  *  
3496  */
3497 void dax_pop_buffer_state (void)
3498 {
3499         if (!YY_CURRENT_BUFFER)
3500                 return;
3501
3502         dax__delete_buffer(YY_CURRENT_BUFFER );
3503         YY_CURRENT_BUFFER_LVALUE = NULL;
3504         if ((yy_buffer_stack_top) > 0)
3505                 --(yy_buffer_stack_top);
3506
3507         if (YY_CURRENT_BUFFER) {
3508                 dax__load_buffer_state( );
3509                 (yy_did_buffer_switch_on_eof) = 1;
3510         }
3511 }
3512
3513 /* Allocates the stack if it does not exist.
3514  *  Guarantees space for at least one push.
3515  */
3516 static void dax_ensure_buffer_stack (void)
3517 {
3518         int num_to_alloc;
3519     
3520         if (!(yy_buffer_stack)) {
3521
3522                 /* First allocation is just for 2 elements, since we don't know if this
3523                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
3524                  * immediate realloc on the next call.
3525          */
3526                 num_to_alloc = 1;
3527                 (yy_buffer_stack) = (struct yy_buffer_state**)dax_alloc
3528                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
3529                                                                 );
3530                 if ( ! (yy_buffer_stack) )
3531                         YY_FATAL_ERROR( "out of dynamic memory in dax_ensure_buffer_stack()" );
3532                                                                   
3533                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3534                                 
3535                 (yy_buffer_stack_max) = num_to_alloc;
3536                 (yy_buffer_stack_top) = 0;
3537                 return;
3538         }
3539
3540         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3541
3542                 /* Increase the buffer to prepare for a possible push. */
3543                 int grow_size = 8 /* arbitrary grow size */;
3544
3545                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
3546                 (yy_buffer_stack) = (struct yy_buffer_state**)dax_realloc
3547                                                                 ((yy_buffer_stack),
3548                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
3549                                                                 );
3550                 if ( ! (yy_buffer_stack) )
3551                         YY_FATAL_ERROR( "out of dynamic memory in dax_ensure_buffer_stack()" );
3552
3553                 /* zero only the new slots.*/
3554                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3555                 (yy_buffer_stack_max) = num_to_alloc;
3556         }
3557 }
3558
3559 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3560  * @param base the character buffer
3561  * @param size the size in bytes of the character buffer
3562  * 
3563  * @return the newly allocated buffer state object. 
3564  */
3565 YY_BUFFER_STATE dax__scan_buffer  (char * base, yy_size_t  size )
3566 {
3567         YY_BUFFER_STATE b;
3568     
3569         if ( size < 2 ||
3570              base[size-2] != YY_END_OF_BUFFER_CHAR ||
3571              base[size-1] != YY_END_OF_BUFFER_CHAR )
3572                 /* They forgot to leave room for the EOB's. */
3573                 return 0;
3574
3575         b = (YY_BUFFER_STATE) dax_alloc(sizeof( struct yy_buffer_state )  );
3576         if ( ! b )
3577                 YY_FATAL_ERROR( "out of dynamic memory in dax__scan_buffer()" );
3578
3579         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
3580         b->yy_buf_pos = b->yy_ch_buf = base;
3581         b->yy_is_our_buffer = 0;
3582         b->yy_input_file = 0;
3583         b->yy_n_chars = b->yy_buf_size;
3584         b->yy_is_interactive = 0;
3585         b->yy_at_bol = 1;
3586         b->yy_fill_buffer = 0;
3587         b->yy_buffer_status = YY_BUFFER_NEW;
3588
3589         dax__switch_to_buffer(b  );
3590
3591         return b;
3592 }
3593
3594 /** Setup the input buffer state to scan a string. The next call to dax_lex() will
3595  * scan from a @e copy of @a str.
3596  * @param yystr a NUL-terminated string to scan
3597  * 
3598  * @return the newly allocated buffer state object.
3599  * @note If you want to scan bytes that may contain NUL values, then use
3600  *       dax__scan_bytes() instead.
3601  */
3602 YY_BUFFER_STATE dax__scan_string (yyconst char * yystr )
3603 {
3604     
3605         return dax__scan_bytes(yystr,strlen(yystr) );
3606 }
3607
3608 /** Setup the input buffer state to scan the given bytes. The next call to dax_lex() will
3609  * scan from a @e copy of @a bytes.
3610  * @param yybytes the byte buffer to scan
3611  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3612  * 
3613  * @return the newly allocated buffer state object.
3614  */
3615 YY_BUFFER_STATE dax__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
3616 {
3617         YY_BUFFER_STATE b;
3618         char *buf;
3619         yy_size_t n;
3620         int i;
3621     
3622         /* Get memory for full buffer, including space for trailing EOB's. */
3623         n = _yybytes_len + 2;
3624         buf = (char *) dax_alloc(n  );
3625         if ( ! buf )
3626                 YY_FATAL_ERROR( "out of dynamic memory in dax__scan_bytes()" );
3627
3628         for ( i = 0; i < _yybytes_len; ++i )
3629                 buf[i] = yybytes[i];
3630
3631         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3632
3633         b = dax__scan_buffer(buf,n );
3634         if ( ! b )
3635                 YY_FATAL_ERROR( "bad buffer in dax__scan_bytes()" );
3636
3637         /* It's okay to grow etc. this buffer, and we should throw it
3638          * away when we're done.
3639          */
3640         b->yy_is_our_buffer = 1;
3641
3642         return b;
3643 }
3644
3645     static void yy_push_state (int  new_state )
3646 {
3647         if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
3648                 {
3649                 yy_size_t new_size;
3650
3651                 (yy_start_stack_depth) += YY_START_STACK_INCR;
3652                 new_size = (yy_start_stack_depth) * sizeof( int );
3653
3654                 if ( ! (yy_start_stack) )
3655                         (yy_start_stack) = (int *) dax_alloc(new_size  );
3656
3657                 else
3658                         (yy_start_stack) = (int *) dax_realloc((void *) (yy_start_stack),new_size  );
3659
3660                 if ( ! (yy_start_stack) )
3661                         YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3662                 }
3663
3664         (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
3665
3666         BEGIN(new_state);
3667 }
3668
3669     static void yy_pop_state  (void)
3670 {
3671         if ( --(yy_start_stack_ptr) < 0 )
3672                 YY_FATAL_ERROR( "start-condition stack underflow" );
3673
3674         BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3675 }
3676
3677 #ifndef YY_EXIT_FAILURE
3678 #define YY_EXIT_FAILURE 2
3679 #endif
3680
3681 static void yy_fatal_error (yyconst char* msg )
3682 {
3683         (void) fprintf( stderr, "%s\n", msg );
3684         exit( YY_EXIT_FAILURE );
3685 }
3686
3687 /* Redefine yyless() so it works in section 3 code. */
3688
3689 #undef yyless
3690 #define yyless(n) \
3691         do \
3692                 { \
3693                 /* Undo effects of setting up dax_text. */ \
3694         int yyless_macro_arg = (n); \
3695         YY_LESS_LINENO(yyless_macro_arg);\
3696                 dax_text[dax_leng] = (yy_hold_char); \
3697                 (yy_c_buf_p) = dax_text + yyless_macro_arg; \
3698                 (yy_hold_char) = *(yy_c_buf_p); \
3699                 *(yy_c_buf_p) = '\0'; \
3700                 dax_leng = yyless_macro_arg; \
3701                 } \
3702         while ( 0 )
3703
3704 /* Accessor  methods (get/set functions) to struct members. */
3705
3706 /** Get the current line number.
3707  * 
3708  */
3709 int dax_get_lineno  (void)
3710 {
3711         
3712     return dax_lineno;
3713 }
3714
3715 /** Get the input stream.
3716  * 
3717  */
3718 FILE *dax_get_in  (void)
3719 {
3720         return dax_in;
3721 }
3722
3723 /** Get the output stream.
3724  * 
3725  */
3726 FILE *dax_get_out  (void)
3727 {
3728         return dax_out;
3729 }
3730
3731 /** Get the length of the current token.
3732  * 
3733  */
3734 int dax_get_leng  (void)
3735 {
3736         return dax_leng;
3737 }
3738
3739 /** Get the current token.
3740  * 
3741  */
3742
3743 char *dax_get_text  (void)
3744 {
3745         return dax_text;
3746 }
3747
3748 /** Set the current line number.
3749  * @param line_number
3750  * 
3751  */
3752 void dax_set_lineno (int  line_number )
3753 {
3754     
3755     dax_lineno = line_number;
3756 }
3757
3758 /** Set the input stream. This does not discard the current
3759  * input buffer.
3760  * @param in_str A readable stream.
3761  * 
3762  * @see dax__switch_to_buffer
3763  */
3764 void dax_set_in (FILE *  in_str )
3765 {
3766         dax_in = in_str ;
3767 }
3768
3769 void dax_set_out (FILE *  out_str )
3770 {
3771         dax_out = out_str ;
3772 }
3773
3774 int dax_get_debug  (void)
3775 {
3776         return dax__flex_debug;
3777 }
3778
3779 void dax_set_debug (int  bdebug )
3780 {
3781         dax__flex_debug = bdebug ;
3782 }
3783
3784 static int yy_init_globals (void)
3785 {
3786         /* Initialization is the same as for the non-reentrant scanner.
3787      * This function is called from dax_lex_destroy(), so don't allocate here.
3788      */
3789
3790     /* We do not touch dax_lineno unless the option is enabled. */
3791     dax_lineno =  1;
3792     
3793     (yy_buffer_stack) = 0;
3794     (yy_buffer_stack_top) = 0;
3795     (yy_buffer_stack_max) = 0;
3796     (yy_c_buf_p) = (char *) 0;
3797     (yy_init) = 0;
3798     (yy_start) = 0;
3799
3800     (yy_start_stack_ptr) = 0;
3801     (yy_start_stack_depth) = 0;
3802     (yy_start_stack) =  NULL;
3803
3804 /* Defined in main.c */
3805 #ifdef YY_STDINIT
3806     dax_in = stdin;
3807     dax_out = stdout;
3808 #else
3809     dax_in = (FILE *) 0;
3810     dax_out = (FILE *) 0;
3811 #endif
3812
3813     /* For future reference: Set errno on error, since we are called by
3814      * dax_lex_init()
3815      */
3816     return 0;
3817 }
3818
3819 /* dax_lex_destroy is for both reentrant and non-reentrant scanners. */
3820 int dax_lex_destroy  (void)
3821 {
3822     
3823     /* Pop the buffer stack, destroying each element. */
3824         while(YY_CURRENT_BUFFER){
3825                 dax__delete_buffer(YY_CURRENT_BUFFER  );
3826                 YY_CURRENT_BUFFER_LVALUE = NULL;
3827                 dax_pop_buffer_state();
3828         }
3829
3830         /* Destroy the stack itself. */
3831         dax_free((yy_buffer_stack) );
3832         (yy_buffer_stack) = NULL;
3833
3834     /* Destroy the start condition stack. */
3835         dax_free((yy_start_stack)  );
3836         (yy_start_stack) = NULL;
3837
3838     /* Reset the globals. This is important in a non-reentrant scanner so the next time
3839      * dax_lex() is called, initialization will occur. */
3840     yy_init_globals( );
3841
3842     return 0;
3843 }
3844
3845 /*
3846  * Internal utility routines.
3847  */
3848
3849 #ifndef yytext_ptr
3850 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3851 {
3852         register int i;
3853         for ( i = 0; i < n; ++i )
3854                 s1[i] = s2[i];
3855 }
3856 #endif
3857
3858 #ifdef YY_NEED_STRLEN
3859 static int yy_flex_strlen (yyconst char * s )
3860 {
3861         register int n;
3862         for ( n = 0; s[n]; ++n )
3863                 ;
3864
3865         return n;
3866 }
3867 #endif
3868
3869 void *dax_alloc (yy_size_t  size )
3870 {
3871         return (void *) malloc( size );
3872 }
3873
3874 void *dax_realloc  (void * ptr, yy_size_t  size )
3875 {
3876         /* The cast to (char *) in the following accommodates both
3877          * implementations that use char* generic pointers, and those
3878          * that use void* generic pointers.  It works with the latter
3879          * because both ANSI C and C++ allow castless assignment from
3880          * any pointer type to void*, and deal with argument conversions
3881          * as though doing an assignment.
3882          */
3883         return (void *) realloc( (char *) ptr, size );
3884 }
3885
3886 void dax_free (void * ptr )
3887 {
3888         free( (char *) ptr );   /* see dax_realloc() for (char *) cast */
3889 }
3890
3891 #define YYTABLES_NAME "yytables"
3892
3893 /* Element context stack lookup. */
3894 int dax__element_context(int i)
3895 {
3896   return (0<i && i<yy_start_stack_depth
3897           ? yy_start_stack[yy_start_stack_ptr - i]
3898           : 0);
3899 }
3900
3901 #ifdef FLEX_DEBUG
3902 void print_yy_stack(char* fmt, ...)
3903 {
3904   int i = 0; va_list ap; va_start(ap, fmt);
3905   vfprintf(stderr, fmt, ap);
3906   if (dax__statenames) {
3907       for (i=1; i<yy_start_stack_ptr; i++) {
3908           fprintf(stderr, "%s/", dax__statenames[yy_start_stack[i] ]);
3909       }
3910       fprintf(stderr,"%s\n", dax__statenames[YY_START]);
3911   }
3912   va_end(ap);
3913 }
3914
3915 void print_dax__bufferstack()
3916 {
3917     int i;
3918     fputs("Buffer: ", stderr);
3919     for (i = 0; i < blimit; i++) {
3920        if ( dax__bufferstack[i] == '\377' ) break;
3921          putc(dax__bufferstack[i], stderr);
3922     }
3923     putc('\n', stderr);
3924 }
3925
3926 static void debug_enter(int state, const char* statename) {
3927   yy_push_state(state);
3928   if (dax__flex_debug) {
3929        print_yy_stack("--ENTER(%s) : ",statename);
3930        print_dax__bufferstack();
3931   }
3932 }
3933
3934 static void debug_leave(void) {
3935     if (dax__flex_debug) {
3936         print_yy_stack("--LEAVE : ");
3937         print_dax__bufferstack();
3938     }
3939   yy_pop_state();
3940 }
3941
3942 static void debug_set(int state, const char* statename) {
3943   BEGIN(state);
3944   if (dax__flex_debug) print_yy_stack("--SET(%s) : ",statename);
3945 }
3946 #endif
3947
3948 static void cleanup(void)
3949 {
3950     if (dax__statenames) {
3951         free(dax__statenames);
3952         dax__statenames = NULL;
3953     }
3954     free(dax__bufferstack);
3955     dax__bufferstack = NULL;
3956
3957     free(indexstack);
3958     indexstack = NULL;
3959 }
3960
3961 static int fail(const char* fmt, ...)
3962 {
3963     int chars_left, used;
3964     va_list ap; va_start(ap, fmt);
3965 #ifdef FLEXML_yylineno
3966     used = sprintf(flexml_err_msg,
3967                    "Invalid XML (XML input line %d, state %d): ",
3968                    dax_lineno, YY_START);
3969 #else
3970     used = sprintf(flexml_err_msg,
3971                    "Invalid XML (state %d): ",
3972                    YY_START);
3973 #endif
3974     chars_left = flexml_max_err_msg_size - used - 1;
3975     vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
3976     va_end(ap);
3977
3978 #ifndef FLEXML_quiet_parser
3979     /* print directly to sdterr */
3980     fprintf(stderr, "%s\n", flexml_err_msg);
3981     flexml_err_msg[0] = '\0';
3982 #endif
3983
3984     cleanup();
3985
3986     return 1;
3987 }
3988