Import Linux-PAM.
[profile/ivi/pam.git] / doc / specs / parse_l.c
1
2 #line 3 "parse_l.c"
3
4 #define  YY_INT_ALIGNED short int
5
6 /* A lexical scanner generated by flex */
7
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 35
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23
24 /* end standard C headers. */
25
26 /* flex integer type definitions */
27
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types. 
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t; 
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56 #endif /* ! C99 */
57
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN               (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN              (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN              (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX               (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX              (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX              (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX              (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX             (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX             (4294967295U)
85 #endif
86
87 #endif /* ! FLEXINT_H */
88
89 #ifdef __cplusplus
90
91 /* The "const" storage-class-modifier is valid. */
92 #define YY_USE_CONST
93
94 #else   /* ! __cplusplus */
95
96 /* C99 requires __STDC__ to be defined as 1. */
97 #if defined (__STDC__)
98
99 #define YY_USE_CONST
100
101 #endif  /* defined (__STDC__) */
102 #endif  /* ! __cplusplus */
103
104 #ifdef YY_USE_CONST
105 #define yyconst const
106 #else
107 #define yyconst
108 #endif
109
110 /* Returned upon end-of-file. */
111 #define YY_NULL 0
112
113 /* Promotes a possibly negative, possibly signed char to an unsigned
114  * integer for use as an array index.  If the signed char is negative,
115  * we want to instead treat it as an 8-bit unsigned char, hence the
116  * double cast.
117  */
118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119
120 /* Enter a start condition.  This macro really ought to take a parameter,
121  * but we do it the disgusting crufty way forced on us by the ()-less
122  * definition of BEGIN.
123  */
124 #define BEGIN (yy_start) = 1 + 2 *
125
126 /* Translate the current start state into a value that can be later handed
127  * to BEGIN to return to the state.  The YYSTATE alias is for lex
128  * compatibility.
129  */
130 #define YY_START (((yy_start) - 1) / 2)
131 #define YYSTATE YY_START
132
133 /* Action number for EOF rule of a given start state. */
134 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135
136 /* Special action meaning "start processing a new file". */
137 #define YY_NEW_FILE yyrestart(yyin  )
138
139 #define YY_END_OF_BUFFER_CHAR 0
140
141 /* Size of default input buffer. */
142 #ifndef YY_BUF_SIZE
143 #define YY_BUF_SIZE 16384
144 #endif
145
146 /* The state buf must be large enough to hold one state per character in the main buffer.
147  */
148 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149
150 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
151 #define YY_TYPEDEF_YY_BUFFER_STATE
152 typedef struct yy_buffer_state *YY_BUFFER_STATE;
153 #endif
154
155 extern int yyleng;
156
157 extern FILE *yyin, *yyout;
158
159 #define EOB_ACT_CONTINUE_SCAN 0
160 #define EOB_ACT_END_OF_FILE 1
161 #define EOB_ACT_LAST_MATCH 2
162
163     #define YY_LESS_LINENO(n)
164     
165 /* Return all but the first "n" matched characters back to the input stream. */
166 #define yyless(n) \
167         do \
168                 { \
169                 /* Undo effects of setting up yytext. */ \
170         int yyless_macro_arg = (n); \
171         YY_LESS_LINENO(yyless_macro_arg);\
172                 *yy_cp = (yy_hold_char); \
173                 YY_RESTORE_YY_MORE_OFFSET \
174                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
175                 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
176                 } \
177         while ( 0 )
178
179 #define unput(c) yyunput( c, (yytext_ptr)  )
180
181 #ifndef YY_TYPEDEF_YY_SIZE_T
182 #define YY_TYPEDEF_YY_SIZE_T
183 typedef size_t yy_size_t;
184 #endif
185
186 #ifndef YY_STRUCT_YY_BUFFER_STATE
187 #define YY_STRUCT_YY_BUFFER_STATE
188 struct yy_buffer_state
189         {
190         FILE *yy_input_file;
191
192         char *yy_ch_buf;                /* input buffer */
193         char *yy_buf_pos;               /* current position in input buffer */
194
195         /* Size of input buffer in bytes, not including room for EOB
196          * characters.
197          */
198         yy_size_t yy_buf_size;
199
200         /* Number of characters read into yy_ch_buf, not including EOB
201          * characters.
202          */
203         int yy_n_chars;
204
205         /* Whether we "own" the buffer - i.e., we know we created it,
206          * and can realloc() it to grow it, and should free() it to
207          * delete it.
208          */
209         int yy_is_our_buffer;
210
211         /* Whether this is an "interactive" input source; if so, and
212          * if we're using stdio for input, then we want to use getc()
213          * instead of fread(), to make sure we stop fetching input after
214          * each newline.
215          */
216         int yy_is_interactive;
217
218         /* Whether we're considered to be at the beginning of a line.
219          * If so, '^' rules will be active on the next match, otherwise
220          * not.
221          */
222         int yy_at_bol;
223
224     int yy_bs_lineno; /**< The line count. */
225     int yy_bs_column; /**< The column count. */
226     
227         /* Whether to try to fill the input buffer when we reach the
228          * end of it.
229          */
230         int yy_fill_buffer;
231
232         int yy_buffer_status;
233
234 #define YY_BUFFER_NEW 0
235 #define YY_BUFFER_NORMAL 1
236         /* When an EOF's been seen but there's still some text to process
237          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
238          * shouldn't try reading from the input source any more.  We might
239          * still have a bunch of tokens to match, though, because of
240          * possible backing-up.
241          *
242          * When we actually see the EOF, we change the status to "new"
243          * (via yyrestart()), so that the user can continue scanning by
244          * just pointing yyin at a new input file.
245          */
246 #define YY_BUFFER_EOF_PENDING 2
247
248         };
249 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
250
251 /* Stack of input buffers. */
252 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
253 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
254 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
255
256 /* We provide macros for accessing buffer states in case in the
257  * future we want to put the buffer states in a more general
258  * "scanner state".
259  *
260  * Returns the top of the stack, or NULL.
261  */
262 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
263                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
264                           : NULL)
265
266 /* Same as previous macro, but useful when we know that the buffer stack is not
267  * NULL or when we need an lvalue. For internal use only.
268  */
269 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
270
271 /* yy_hold_char holds the character lost when yytext is formed. */
272 static char yy_hold_char;
273 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
274 int yyleng;
275
276 /* Points to current character in buffer. */
277 static char *yy_c_buf_p = (char *) 0;
278 static int yy_init = 0;         /* whether we need to initialize */
279 static int yy_start = 0;        /* start state number */
280
281 /* Flag which is used to allow yywrap()'s to do buffer switches
282  * instead of setting up a fresh yyin.  A bit of a hack ...
283  */
284 static int yy_did_buffer_switch_on_eof;
285
286 void yyrestart (FILE *input_file  );
287 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
288 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
289 void yy_delete_buffer (YY_BUFFER_STATE b  );
290 void yy_flush_buffer (YY_BUFFER_STATE b  );
291 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
292 void yypop_buffer_state (void );
293
294 static void yyensure_buffer_stack (void );
295 static void yy_load_buffer_state (void );
296 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
297
298 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
299
300 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
301 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
302 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
303
304 void *yyalloc (yy_size_t  );
305 void *yyrealloc (void *,yy_size_t  );
306 void yyfree (void *  );
307
308 #define yy_new_buffer yy_create_buffer
309
310 #define yy_set_interactive(is_interactive) \
311         { \
312         if ( ! YY_CURRENT_BUFFER ){ \
313         yyensure_buffer_stack (); \
314                 YY_CURRENT_BUFFER_LVALUE =    \
315             yy_create_buffer(yyin,YY_BUF_SIZE ); \
316         } \
317         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318         }
319
320 #define yy_set_bol(at_bol) \
321         { \
322         if ( ! YY_CURRENT_BUFFER ){\
323         yyensure_buffer_stack (); \
324                 YY_CURRENT_BUFFER_LVALUE =    \
325             yy_create_buffer(yyin,YY_BUF_SIZE ); \
326         } \
327         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
328         }
329
330 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
331
332 /* Begin user sect3 */
333
334 typedef unsigned char YY_CHAR;
335
336 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
337
338 typedef int yy_state_type;
339
340 extern int yylineno;
341
342 int yylineno = 1;
343
344 extern char *yytext;
345 #define yytext_ptr yytext
346
347 static yy_state_type yy_get_previous_state (void );
348 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
349 static int yy_get_next_buffer (void );
350 static void yy_fatal_error (yyconst char msg[]  );
351
352 /* Done after the current pattern has been matched and before the
353  * corresponding action - sets up yytext.
354  */
355 #define YY_DO_BEFORE_ACTION \
356         (yytext_ptr) = yy_bp; \
357         yyleng = (size_t) (yy_cp - yy_bp); \
358         (yy_hold_char) = *yy_cp; \
359         *yy_cp = '\0'; \
360         (yy_c_buf_p) = yy_cp;
361
362 #define YY_NUM_RULES 8
363 #define YY_END_OF_BUFFER 9
364 /* This struct is not used in this scanner,
365    but its presence is necessary. */
366 struct yy_trans_info
367         {
368         flex_int32_t yy_verify;
369         flex_int32_t yy_nxt;
370         };
371 static yyconst flex_int16_t yy_accept[19] =
372     {   0,
373         0,    0,    9,    6,    7,    3,    6,    4,    1,    0,
374         5,    0,    1,    0,    1,    0,    2,    0
375     } ;
376
377 static yyconst flex_int32_t yy_ec[256] =
378     {   0,
379         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
380         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
381         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
382         1,    1,    1,    1,    3,    4,    1,    1,    1,    1,
383         1,    1,    1,    1,    1,    1,    1,    5,    5,    5,
384         5,    5,    5,    5,    5,    5,    5,    1,    1,    1,
385         6,    1,    1,    1,    7,    7,    7,    7,    7,    7,
386         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
387         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
388         1,    8,    1,    1,    9,    1,    7,    7,    7,    7,
389
390         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
391         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
392         7,    7,   10,    1,   11,    1,    1,    1,    1,    1,
393         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
394         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
395         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
396         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
397         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
398         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
399         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
400
401         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
402         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
403         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
404         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
405         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
406         1,    1,    1,    1,    1
407     } ;
408
409 static yyconst flex_int32_t yy_meta[12] =
410     {   0,
411         1,    1,    1,    1,    2,    1,    2,    1,    2,    1,
412         2
413     } ;
414
415 static yyconst flex_int16_t yy_base[21] =
416     {   0,
417         0,    7,   21,   30,   30,   13,   17,   30,   20,   12,
418        30,   13,   10,    2,    7,    0,   30,   30,   27,    2
419     } ;
420
421 static yyconst flex_int16_t yy_def[21] =
422     {   0,
423        19,   19,   18,   18,   18,   18,   18,   18,   18,   18,
424        18,   18,    9,   20,   18,   20,   18,    0,   18,   18
425     } ;
426
427 static yyconst flex_int16_t yy_nxt[42] =
428     {   0,
429        18,    5,    6,   16,   18,   18,   18,    7,    5,    6,
430        17,   15,   17,   18,    7,    8,    9,   15,   14,   11,
431        18,   18,   10,    9,   18,   12,   13,    4,    4,    3,
432        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
433        18
434     } ;
435
436 static yyconst flex_int16_t yy_chk[42] =
437     {   0,
438         0,    1,    1,   20,    0,    0,    0,    1,    2,    2,
439        16,   15,   14,   13,    2,    6,    6,   12,   10,    7,
440         3,    0,    6,    9,    0,    9,    9,   19,   19,   18,
441        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
442        18
443     } ;
444
445 static yy_state_type yy_last_accepting_state;
446 static char *yy_last_accepting_cpos;
447
448 extern int yy_flex_debug;
449 int yy_flex_debug = 0;
450
451 /* The intent behind this definition is that it'll catch
452  * any uses of REJECT which flex missed.
453  */
454 #define REJECT reject_used_but_not_detected
455 #define yymore() yymore_used_but_not_detected
456 #define YY_MORE_ADJ 0
457 #define YY_RESTORE_YY_MORE_OFFSET
458 char *yytext;
459 #line 1 "parse_l.l"
460 #line 2 "parse_l.l"
461 #ifdef HAVE_CONFIG_H
462 #  include <config.h>
463 #endif
464
465 #include <stdio.h>
466
467 #include "parse_y.h"
468 #line 469 "parse_l.c"
469
470 #define INITIAL 0
471
472 #ifndef YY_NO_UNISTD_H
473 /* Special case for "unistd.h", since it is non-ANSI. We include it way
474  * down here because we want the user's section 1 to have been scanned first.
475  * The user has a chance to override it with an option.
476  */
477 #include <unistd.h>
478 #endif
479
480 #ifndef YY_EXTRA_TYPE
481 #define YY_EXTRA_TYPE void *
482 #endif
483
484 static int yy_init_globals (void );
485
486 /* Accessor methods to globals.
487    These are made visible to non-reentrant scanners for convenience. */
488
489 int yylex_destroy (void );
490
491 int yyget_debug (void );
492
493 void yyset_debug (int debug_flag  );
494
495 YY_EXTRA_TYPE yyget_extra (void );
496
497 void yyset_extra (YY_EXTRA_TYPE user_defined  );
498
499 FILE *yyget_in (void );
500
501 void yyset_in  (FILE * in_str  );
502
503 FILE *yyget_out (void );
504
505 void yyset_out  (FILE * out_str  );
506
507 int yyget_leng (void );
508
509 char *yyget_text (void );
510
511 int yyget_lineno (void );
512
513 void yyset_lineno (int line_number  );
514
515 /* Macros after this point can all be overridden by user definitions in
516  * section 1.
517  */
518
519 #ifndef YY_SKIP_YYWRAP
520 #ifdef __cplusplus
521 extern "C" int yywrap (void );
522 #else
523 extern int yywrap (void );
524 #endif
525 #endif
526
527     static void yyunput (int c,char *buf_ptr  );
528     
529 #ifndef yytext_ptr
530 static void yy_flex_strncpy (char *,yyconst char *,int );
531 #endif
532
533 #ifdef YY_NEED_STRLEN
534 static int yy_flex_strlen (yyconst char * );
535 #endif
536
537 #ifndef YY_NO_INPUT
538
539 #ifdef __cplusplus
540 static int yyinput (void );
541 #else
542 static int input (void );
543 #endif
544
545 #endif
546
547 /* Amount of stuff to slurp up with each read. */
548 #ifndef YY_READ_BUF_SIZE
549 #define YY_READ_BUF_SIZE 8192
550 #endif
551
552 /* Copy whatever the last rule matched to the standard output. */
553 #ifndef ECHO
554 /* This used to be an fputs(), but since the string might contain NUL's,
555  * we now use fwrite().
556  */
557 #define ECHO fwrite( yytext, yyleng, 1, yyout )
558 #endif
559
560 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
561  * is returned in "result".
562  */
563 #ifndef YY_INPUT
564 #define YY_INPUT(buf,result,max_size) \
565         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
566                 { \
567                 int c = '*'; \
568                 int n; \
569                 for ( n = 0; n < max_size && \
570                              (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
571                         buf[n] = (char) c; \
572                 if ( c == '\n' ) \
573                         buf[n++] = (char) c; \
574                 if ( c == EOF && ferror( yyin ) ) \
575                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
576                 result = n; \
577                 } \
578         else \
579                 { \
580                 errno=0; \
581                 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
582                         { \
583                         if( errno != EINTR) \
584                                 { \
585                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
586                                 break; \
587                                 } \
588                         errno=0; \
589                         clearerr(yyin); \
590                         } \
591                 }\
592 \
593
594 #endif
595
596 /* No semi-colon after return; correct usage is to write "yyterminate();" -
597  * we don't want an extra ';' after the "return" because that will cause
598  * some compilers to complain about unreachable statements.
599  */
600 #ifndef yyterminate
601 #define yyterminate() return YY_NULL
602 #endif
603
604 /* Number of entries by which start-condition stack grows. */
605 #ifndef YY_START_STACK_INCR
606 #define YY_START_STACK_INCR 25
607 #endif
608
609 /* Report a fatal error. */
610 #ifndef YY_FATAL_ERROR
611 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
612 #endif
613
614 /* end tables serialization structures and prototypes */
615
616 /* Default declaration of generated scanner - a define so the user can
617  * easily add parameters.
618  */
619 #ifndef YY_DECL
620 #define YY_DECL_IS_OURS 1
621
622 extern int yylex (void);
623
624 #define YY_DECL int yylex (void)
625 #endif /* !YY_DECL */
626
627 /* Code executed at the beginning of each rule, after yytext and yyleng
628  * have been set up.
629  */
630 #ifndef YY_USER_ACTION
631 #define YY_USER_ACTION
632 #endif
633
634 /* Code executed at the end of each rule. */
635 #ifndef YY_BREAK
636 #define YY_BREAK break;
637 #endif
638
639 #define YY_RULE_SETUP \
640         YY_USER_ACTION
641
642 /** The main scanner function which does all the work.
643  */
644 YY_DECL
645 {
646         register yy_state_type yy_current_state;
647         register char *yy_cp, *yy_bp;
648         register int yy_act;
649     
650 #line 11 "parse_l.l"
651
652
653 #line 654 "parse_l.c"
654
655         if ( !(yy_init) )
656                 {
657                 (yy_init) = 1;
658
659 #ifdef YY_USER_INIT
660                 YY_USER_INIT;
661 #endif
662
663                 if ( ! (yy_start) )
664                         (yy_start) = 1; /* first start state */
665
666                 if ( ! yyin )
667                         yyin = stdin;
668
669                 if ( ! yyout )
670                         yyout = stdout;
671
672                 if ( ! YY_CURRENT_BUFFER ) {
673                         yyensure_buffer_stack ();
674                         YY_CURRENT_BUFFER_LVALUE =
675                                 yy_create_buffer(yyin,YY_BUF_SIZE );
676                 }
677
678                 yy_load_buffer_state( );
679                 }
680
681         while ( 1 )             /* loops until end-of-file is reached */
682                 {
683                 yy_cp = (yy_c_buf_p);
684
685                 /* Support of yytext. */
686                 *yy_cp = (yy_hold_char);
687
688                 /* yy_bp points to the position in yy_ch_buf of the start of
689                  * the current run.
690                  */
691                 yy_bp = yy_cp;
692
693                 yy_current_state = (yy_start);
694 yy_match:
695                 do
696                         {
697                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
698                         if ( yy_accept[yy_current_state] )
699                                 {
700                                 (yy_last_accepting_state) = yy_current_state;
701                                 (yy_last_accepting_cpos) = yy_cp;
702                                 }
703                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
704                                 {
705                                 yy_current_state = (int) yy_def[yy_current_state];
706                                 if ( yy_current_state >= 19 )
707                                         yy_c = yy_meta[(unsigned int) yy_c];
708                                 }
709                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
710                         ++yy_cp;
711                         }
712                 while ( yy_base[yy_current_state] != 30 );
713
714 yy_find_action:
715                 yy_act = yy_accept[yy_current_state];
716                 if ( yy_act == 0 )
717                         { /* have to back up */
718                         yy_cp = (yy_last_accepting_cpos);
719                         yy_current_state = (yy_last_accepting_state);
720                         yy_act = yy_accept[yy_current_state];
721                         }
722
723                 YY_DO_BEFORE_ACTION;
724
725 do_action:      /* This label is used only to access EOF actions. */
726
727                 switch ( yy_act )
728         { /* beginning of action switch */
729                         case 0: /* must back up */
730                         /* undo the effects of YY_DO_BEFORE_ACTION */
731                         *yy_cp = (yy_hold_char);
732                         yy_cp = (yy_last_accepting_cpos);
733                         yy_current_state = (yy_last_accepting_state);
734                         goto yy_find_action;
735
736 case 1:
737 YY_RULE_SETUP
738 #line 13 "parse_l.l"
739 return NEW_COUNTER;
740         YY_BREAK
741 case 2:
742 YY_RULE_SETUP
743 #line 14 "parse_l.l"
744 return LABEL;
745         YY_BREAK
746 case 3:
747 YY_RULE_SETUP
748 #line 15 "parse_l.l"
749 return NO_INDENT;
750         YY_BREAK
751 case 4:
752 YY_RULE_SETUP
753 #line 16 "parse_l.l"
754 return RIGHT;
755         YY_BREAK
756 case 5:
757 YY_RULE_SETUP
758 #line 17 "parse_l.l"
759 return HASH;
760         YY_BREAK
761 case 6:
762 YY_RULE_SETUP
763 #line 18 "parse_l.l"
764 return CHAR;
765         YY_BREAK
766 case 7:
767 /* rule 7 can match eol */
768 YY_RULE_SETUP
769 #line 19 "parse_l.l"
770 return NEWLINE;
771         YY_BREAK
772 case 8:
773 YY_RULE_SETUP
774 #line 21 "parse_l.l"
775 ECHO;
776         YY_BREAK
777 #line 778 "parse_l.c"
778 case YY_STATE_EOF(INITIAL):
779         yyterminate();
780
781         case YY_END_OF_BUFFER:
782                 {
783                 /* Amount of text matched not including the EOB char. */
784                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
785
786                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
787                 *yy_cp = (yy_hold_char);
788                 YY_RESTORE_YY_MORE_OFFSET
789
790                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
791                         {
792                         /* We're scanning a new file or input source.  It's
793                          * possible that this happened because the user
794                          * just pointed yyin at a new source and called
795                          * yylex().  If so, then we have to assure
796                          * consistency between YY_CURRENT_BUFFER and our
797                          * globals.  Here is the right place to do so, because
798                          * this is the first action (other than possibly a
799                          * back-up) that will match for the new input source.
800                          */
801                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
802                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
803                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
804                         }
805
806                 /* Note that here we test for yy_c_buf_p "<=" to the position
807                  * of the first EOB in the buffer, since yy_c_buf_p will
808                  * already have been incremented past the NUL character
809                  * (since all states make transitions on EOB to the
810                  * end-of-buffer state).  Contrast this with the test
811                  * in input().
812                  */
813                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
814                         { /* This was really a NUL. */
815                         yy_state_type yy_next_state;
816
817                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
818
819                         yy_current_state = yy_get_previous_state(  );
820
821                         /* Okay, we're now positioned to make the NUL
822                          * transition.  We couldn't have
823                          * yy_get_previous_state() go ahead and do it
824                          * for us because it doesn't know how to deal
825                          * with the possibility of jamming (and we don't
826                          * want to build jamming into it because then it
827                          * will run more slowly).
828                          */
829
830                         yy_next_state = yy_try_NUL_trans( yy_current_state );
831
832                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
833
834                         if ( yy_next_state )
835                                 {
836                                 /* Consume the NUL. */
837                                 yy_cp = ++(yy_c_buf_p);
838                                 yy_current_state = yy_next_state;
839                                 goto yy_match;
840                                 }
841
842                         else
843                                 {
844                                 yy_cp = (yy_c_buf_p);
845                                 goto yy_find_action;
846                                 }
847                         }
848
849                 else switch ( yy_get_next_buffer(  ) )
850                         {
851                         case EOB_ACT_END_OF_FILE:
852                                 {
853                                 (yy_did_buffer_switch_on_eof) = 0;
854
855                                 if ( yywrap( ) )
856                                         {
857                                         /* Note: because we've taken care in
858                                          * yy_get_next_buffer() to have set up
859                                          * yytext, we can now set up
860                                          * yy_c_buf_p so that if some total
861                                          * hoser (like flex itself) wants to
862                                          * call the scanner after we return the
863                                          * YY_NULL, it'll still work - another
864                                          * YY_NULL will get returned.
865                                          */
866                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
867
868                                         yy_act = YY_STATE_EOF(YY_START);
869                                         goto do_action;
870                                         }
871
872                                 else
873                                         {
874                                         if ( ! (yy_did_buffer_switch_on_eof) )
875                                                 YY_NEW_FILE;
876                                         }
877                                 break;
878                                 }
879
880                         case EOB_ACT_CONTINUE_SCAN:
881                                 (yy_c_buf_p) =
882                                         (yytext_ptr) + yy_amount_of_matched_text;
883
884                                 yy_current_state = yy_get_previous_state(  );
885
886                                 yy_cp = (yy_c_buf_p);
887                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
888                                 goto yy_match;
889
890                         case EOB_ACT_LAST_MATCH:
891                                 (yy_c_buf_p) =
892                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
893
894                                 yy_current_state = yy_get_previous_state(  );
895
896                                 yy_cp = (yy_c_buf_p);
897                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
898                                 goto yy_find_action;
899                         }
900                 break;
901                 }
902
903         default:
904                 YY_FATAL_ERROR(
905                         "fatal flex scanner internal error--no action found" );
906         } /* end of action switch */
907                 } /* end of scanning one token */
908 } /* end of yylex */
909
910 /* yy_get_next_buffer - try to read in a new buffer
911  *
912  * Returns a code representing an action:
913  *      EOB_ACT_LAST_MATCH -
914  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
915  *      EOB_ACT_END_OF_FILE - end of file
916  */
917 static int yy_get_next_buffer (void)
918 {
919         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
920         register char *source = (yytext_ptr);
921         register int number_to_move, i;
922         int ret_val;
923
924         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
925                 YY_FATAL_ERROR(
926                 "fatal flex scanner internal error--end of buffer missed" );
927
928         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
929                 { /* Don't try to fill the buffer, so this is an EOF. */
930                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
931                         {
932                         /* We matched a single character, the EOB, so
933                          * treat this as a final EOF.
934                          */
935                         return EOB_ACT_END_OF_FILE;
936                         }
937
938                 else
939                         {
940                         /* We matched some text prior to the EOB, first
941                          * process it.
942                          */
943                         return EOB_ACT_LAST_MATCH;
944                         }
945                 }
946
947         /* Try to read more data. */
948
949         /* First move last chars to start of buffer. */
950         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
951
952         for ( i = 0; i < number_to_move; ++i )
953                 *(dest++) = *(source++);
954
955         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
956                 /* don't do the read, it's not guaranteed to return an EOF,
957                  * just force an EOF
958                  */
959                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
960
961         else
962                 {
963                         int num_to_read =
964                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
965
966                 while ( num_to_read <= 0 )
967                         { /* Not enough room in the buffer - grow it. */
968
969                         /* just a shorter name for the current buffer */
970                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
971
972                         int yy_c_buf_p_offset =
973                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
974
975                         if ( b->yy_is_our_buffer )
976                                 {
977                                 int new_size = b->yy_buf_size * 2;
978
979                                 if ( new_size <= 0 )
980                                         b->yy_buf_size += b->yy_buf_size / 8;
981                                 else
982                                         b->yy_buf_size *= 2;
983
984                                 b->yy_ch_buf = (char *)
985                                         /* Include room in for 2 EOB chars. */
986                                         yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
987                                 }
988                         else
989                                 /* Can't grow it, we don't own it. */
990                                 b->yy_ch_buf = 0;
991
992                         if ( ! b->yy_ch_buf )
993                                 YY_FATAL_ERROR(
994                                 "fatal error - scanner input buffer overflow" );
995
996                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
997
998                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
999                                                 number_to_move - 1;
1000
1001                         }
1002
1003                 if ( num_to_read > YY_READ_BUF_SIZE )
1004                         num_to_read = YY_READ_BUF_SIZE;
1005
1006                 /* Read in more data. */
1007                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1008                         (yy_n_chars), (size_t) num_to_read );
1009
1010                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1011                 }
1012
1013         if ( (yy_n_chars) == 0 )
1014                 {
1015                 if ( number_to_move == YY_MORE_ADJ )
1016                         {
1017                         ret_val = EOB_ACT_END_OF_FILE;
1018                         yyrestart(yyin  );
1019                         }
1020
1021                 else
1022                         {
1023                         ret_val = EOB_ACT_LAST_MATCH;
1024                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1025                                 YY_BUFFER_EOF_PENDING;
1026                         }
1027                 }
1028
1029         else
1030                 ret_val = EOB_ACT_CONTINUE_SCAN;
1031
1032         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1033                 /* Extend the array by 50%, plus the number we really need. */
1034                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1035                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1036                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1037                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1038         }
1039
1040         (yy_n_chars) += number_to_move;
1041         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1042         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1043
1044         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1045
1046         return ret_val;
1047 }
1048
1049 /* yy_get_previous_state - get the state just before the EOB char was reached */
1050
1051     static yy_state_type yy_get_previous_state (void)
1052 {
1053         register yy_state_type yy_current_state;
1054         register char *yy_cp;
1055     
1056         yy_current_state = (yy_start);
1057
1058         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1059                 {
1060                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1061                 if ( yy_accept[yy_current_state] )
1062                         {
1063                         (yy_last_accepting_state) = yy_current_state;
1064                         (yy_last_accepting_cpos) = yy_cp;
1065                         }
1066                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1067                         {
1068                         yy_current_state = (int) yy_def[yy_current_state];
1069                         if ( yy_current_state >= 19 )
1070                                 yy_c = yy_meta[(unsigned int) yy_c];
1071                         }
1072                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1073                 }
1074
1075         return yy_current_state;
1076 }
1077
1078 /* yy_try_NUL_trans - try to make a transition on the NUL character
1079  *
1080  * synopsis
1081  *      next_state = yy_try_NUL_trans( current_state );
1082  */
1083     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1084 {
1085         register int yy_is_jam;
1086         register char *yy_cp = (yy_c_buf_p);
1087
1088         register YY_CHAR yy_c = 1;
1089         if ( yy_accept[yy_current_state] )
1090                 {
1091                 (yy_last_accepting_state) = yy_current_state;
1092                 (yy_last_accepting_cpos) = yy_cp;
1093                 }
1094         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1095                 {
1096                 yy_current_state = (int) yy_def[yy_current_state];
1097                 if ( yy_current_state >= 19 )
1098                         yy_c = yy_meta[(unsigned int) yy_c];
1099                 }
1100         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1101         yy_is_jam = (yy_current_state == 18);
1102
1103         return yy_is_jam ? 0 : yy_current_state;
1104 }
1105
1106     static void yyunput (int c, register char * yy_bp )
1107 {
1108         register char *yy_cp;
1109     
1110     yy_cp = (yy_c_buf_p);
1111
1112         /* undo effects of setting up yytext */
1113         *yy_cp = (yy_hold_char);
1114
1115         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1116                 { /* need to shift things up to make room */
1117                 /* +2 for EOB chars. */
1118                 register int number_to_move = (yy_n_chars) + 2;
1119                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1120                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1121                 register char *source =
1122                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1123
1124                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1125                         *--dest = *--source;
1126
1127                 yy_cp += (int) (dest - source);
1128                 yy_bp += (int) (dest - source);
1129                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1130                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1131
1132                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1133                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
1134                 }
1135
1136         *--yy_cp = (char) c;
1137
1138         (yytext_ptr) = yy_bp;
1139         (yy_hold_char) = *yy_cp;
1140         (yy_c_buf_p) = yy_cp;
1141 }
1142
1143 #ifndef YY_NO_INPUT
1144 #ifdef __cplusplus
1145     static int yyinput (void)
1146 #else
1147     static int input  (void)
1148 #endif
1149
1150 {
1151         int c;
1152     
1153         *(yy_c_buf_p) = (yy_hold_char);
1154
1155         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1156                 {
1157                 /* yy_c_buf_p now points to the character we want to return.
1158                  * If this occurs *before* the EOB characters, then it's a
1159                  * valid NUL; if not, then we've hit the end of the buffer.
1160                  */
1161                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1162                         /* This was really a NUL. */
1163                         *(yy_c_buf_p) = '\0';
1164
1165                 else
1166                         { /* need more input */
1167                         int offset = (yy_c_buf_p) - (yytext_ptr);
1168                         ++(yy_c_buf_p);
1169
1170                         switch ( yy_get_next_buffer(  ) )
1171                                 {
1172                                 case EOB_ACT_LAST_MATCH:
1173                                         /* This happens because yy_g_n_b()
1174                                          * sees that we've accumulated a
1175                                          * token and flags that we need to
1176                                          * try matching the token before
1177                                          * proceeding.  But for input(),
1178                                          * there's no matching to consider.
1179                                          * So convert the EOB_ACT_LAST_MATCH
1180                                          * to EOB_ACT_END_OF_FILE.
1181                                          */
1182
1183                                         /* Reset buffer status. */
1184                                         yyrestart(yyin );
1185
1186                                         /*FALLTHROUGH*/
1187
1188                                 case EOB_ACT_END_OF_FILE:
1189                                         {
1190                                         if ( yywrap( ) )
1191                                                 return EOF;
1192
1193                                         if ( ! (yy_did_buffer_switch_on_eof) )
1194                                                 YY_NEW_FILE;
1195 #ifdef __cplusplus
1196                                         return yyinput();
1197 #else
1198                                         return input();
1199 #endif
1200                                         }
1201
1202                                 case EOB_ACT_CONTINUE_SCAN:
1203                                         (yy_c_buf_p) = (yytext_ptr) + offset;
1204                                         break;
1205                                 }
1206                         }
1207                 }
1208
1209         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
1210         *(yy_c_buf_p) = '\0';   /* preserve yytext */
1211         (yy_hold_char) = *++(yy_c_buf_p);
1212
1213         return c;
1214 }
1215 #endif  /* ifndef YY_NO_INPUT */
1216
1217 /** Immediately switch to a different input stream.
1218  * @param input_file A readable stream.
1219  * 
1220  * @note This function does not reset the start condition to @c INITIAL .
1221  */
1222     void yyrestart  (FILE * input_file )
1223 {
1224     
1225         if ( ! YY_CURRENT_BUFFER ){
1226         yyensure_buffer_stack ();
1227                 YY_CURRENT_BUFFER_LVALUE =
1228             yy_create_buffer(yyin,YY_BUF_SIZE );
1229         }
1230
1231         yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1232         yy_load_buffer_state( );
1233 }
1234
1235 /** Switch to a different input buffer.
1236  * @param new_buffer The new input buffer.
1237  * 
1238  */
1239     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1240 {
1241     
1242         /* TODO. We should be able to replace this entire function body
1243          * with
1244          *              yypop_buffer_state();
1245          *              yypush_buffer_state(new_buffer);
1246      */
1247         yyensure_buffer_stack ();
1248         if ( YY_CURRENT_BUFFER == new_buffer )
1249                 return;
1250
1251         if ( YY_CURRENT_BUFFER )
1252                 {
1253                 /* Flush out information for old buffer. */
1254                 *(yy_c_buf_p) = (yy_hold_char);
1255                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1256                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1257                 }
1258
1259         YY_CURRENT_BUFFER_LVALUE = new_buffer;
1260         yy_load_buffer_state( );
1261
1262         /* We don't actually know whether we did this switch during
1263          * EOF (yywrap()) processing, but the only time this flag
1264          * is looked at is after yywrap() is called, so it's safe
1265          * to go ahead and always set it.
1266          */
1267         (yy_did_buffer_switch_on_eof) = 1;
1268 }
1269
1270 static void yy_load_buffer_state  (void)
1271 {
1272         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1273         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1274         yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1275         (yy_hold_char) = *(yy_c_buf_p);
1276 }
1277
1278 /** Allocate and initialize an input buffer state.
1279  * @param file A readable stream.
1280  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1281  * 
1282  * @return the allocated buffer state.
1283  */
1284     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1285 {
1286         YY_BUFFER_STATE b;
1287     
1288         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1289         if ( ! b )
1290                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1291
1292         b->yy_buf_size = size;
1293
1294         /* yy_ch_buf has to be 2 characters longer than the size given because
1295          * we need to put in 2 end-of-buffer characters.
1296          */
1297         b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1298         if ( ! b->yy_ch_buf )
1299                 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1300
1301         b->yy_is_our_buffer = 1;
1302
1303         yy_init_buffer(b,file );
1304
1305         return b;
1306 }
1307
1308 /** Destroy the buffer.
1309  * @param b a buffer created with yy_create_buffer()
1310  * 
1311  */
1312     void yy_delete_buffer (YY_BUFFER_STATE  b )
1313 {
1314     
1315         if ( ! b )
1316                 return;
1317
1318         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1319                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1320
1321         if ( b->yy_is_our_buffer )
1322                 yyfree((void *) b->yy_ch_buf  );
1323
1324         yyfree((void *) b  );
1325 }
1326
1327 #ifndef __cplusplus
1328 extern int isatty (int );
1329 #endif /* __cplusplus */
1330     
1331 /* Initializes or reinitializes a buffer.
1332  * This function is sometimes called more than once on the same buffer,
1333  * such as during a yyrestart() or at EOF.
1334  */
1335     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1336
1337 {
1338         int oerrno = errno;
1339     
1340         yy_flush_buffer(b );
1341
1342         b->yy_input_file = file;
1343         b->yy_fill_buffer = 1;
1344
1345     /* If b is the current buffer, then yy_init_buffer was _probably_
1346      * called from yyrestart() or through yy_get_next_buffer.
1347      * In that case, we don't want to reset the lineno or column.
1348      */
1349     if (b != YY_CURRENT_BUFFER){
1350         b->yy_bs_lineno = 1;
1351         b->yy_bs_column = 0;
1352     }
1353
1354         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1355     
1356         errno = oerrno;
1357 }
1358
1359 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1360  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1361  * 
1362  */
1363     void yy_flush_buffer (YY_BUFFER_STATE  b )
1364 {
1365         if ( ! b )
1366                 return;
1367
1368         b->yy_n_chars = 0;
1369
1370         /* We always need two end-of-buffer characters.  The first causes
1371          * a transition to the end-of-buffer state.  The second causes
1372          * a jam in that state.
1373          */
1374         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1375         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1376
1377         b->yy_buf_pos = &b->yy_ch_buf[0];
1378
1379         b->yy_at_bol = 1;
1380         b->yy_buffer_status = YY_BUFFER_NEW;
1381
1382         if ( b == YY_CURRENT_BUFFER )
1383                 yy_load_buffer_state( );
1384 }
1385
1386 /** Pushes the new state onto the stack. The new state becomes
1387  *  the current state. This function will allocate the stack
1388  *  if necessary.
1389  *  @param new_buffer The new state.
1390  *  
1391  */
1392 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1393 {
1394         if (new_buffer == NULL)
1395                 return;
1396
1397         yyensure_buffer_stack();
1398
1399         /* This block is copied from yy_switch_to_buffer. */
1400         if ( YY_CURRENT_BUFFER )
1401                 {
1402                 /* Flush out information for old buffer. */
1403                 *(yy_c_buf_p) = (yy_hold_char);
1404                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1405                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1406                 }
1407
1408         /* Only push if top exists. Otherwise, replace top. */
1409         if (YY_CURRENT_BUFFER)
1410                 (yy_buffer_stack_top)++;
1411         YY_CURRENT_BUFFER_LVALUE = new_buffer;
1412
1413         /* copied from yy_switch_to_buffer. */
1414         yy_load_buffer_state( );
1415         (yy_did_buffer_switch_on_eof) = 1;
1416 }
1417
1418 /** Removes and deletes the top of the stack, if present.
1419  *  The next element becomes the new top.
1420  *  
1421  */
1422 void yypop_buffer_state (void)
1423 {
1424         if (!YY_CURRENT_BUFFER)
1425                 return;
1426
1427         yy_delete_buffer(YY_CURRENT_BUFFER );
1428         YY_CURRENT_BUFFER_LVALUE = NULL;
1429         if ((yy_buffer_stack_top) > 0)
1430                 --(yy_buffer_stack_top);
1431
1432         if (YY_CURRENT_BUFFER) {
1433                 yy_load_buffer_state( );
1434                 (yy_did_buffer_switch_on_eof) = 1;
1435         }
1436 }
1437
1438 /* Allocates the stack if it does not exist.
1439  *  Guarantees space for at least one push.
1440  */
1441 static void yyensure_buffer_stack (void)
1442 {
1443         int num_to_alloc;
1444     
1445         if (!(yy_buffer_stack)) {
1446
1447                 /* First allocation is just for 2 elements, since we don't know if this
1448                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
1449                  * immediate realloc on the next call.
1450          */
1451                 num_to_alloc = 1;
1452                 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
1453                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
1454                                                                 );
1455                 if ( ! (yy_buffer_stack) )
1456                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1457                                                                   
1458                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1459                                 
1460                 (yy_buffer_stack_max) = num_to_alloc;
1461                 (yy_buffer_stack_top) = 0;
1462                 return;
1463         }
1464
1465         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1466
1467                 /* Increase the buffer to prepare for a possible push. */
1468                 int grow_size = 8 /* arbitrary grow size */;
1469
1470                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
1471                 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
1472                                                                 ((yy_buffer_stack),
1473                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
1474                                                                 );
1475                 if ( ! (yy_buffer_stack) )
1476                         YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1477
1478                 /* zero only the new slots.*/
1479                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1480                 (yy_buffer_stack_max) = num_to_alloc;
1481         }
1482 }
1483
1484 /** Setup the input buffer state to scan directly from a user-specified character buffer.
1485  * @param base the character buffer
1486  * @param size the size in bytes of the character buffer
1487  * 
1488  * @return the newly allocated buffer state object. 
1489  */
1490 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
1491 {
1492         YY_BUFFER_STATE b;
1493     
1494         if ( size < 2 ||
1495              base[size-2] != YY_END_OF_BUFFER_CHAR ||
1496              base[size-1] != YY_END_OF_BUFFER_CHAR )
1497                 /* They forgot to leave room for the EOB's. */
1498                 return 0;
1499
1500         b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1501         if ( ! b )
1502                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1503
1504         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
1505         b->yy_buf_pos = b->yy_ch_buf = base;
1506         b->yy_is_our_buffer = 0;
1507         b->yy_input_file = 0;
1508         b->yy_n_chars = b->yy_buf_size;
1509         b->yy_is_interactive = 0;
1510         b->yy_at_bol = 1;
1511         b->yy_fill_buffer = 0;
1512         b->yy_buffer_status = YY_BUFFER_NEW;
1513
1514         yy_switch_to_buffer(b  );
1515
1516         return b;
1517 }
1518
1519 /** Setup the input buffer state to scan a string. The next call to yylex() will
1520  * scan from a @e copy of @a str.
1521  * @param yystr a NUL-terminated string to scan
1522  * 
1523  * @return the newly allocated buffer state object.
1524  * @note If you want to scan bytes that may contain NUL values, then use
1525  *       yy_scan_bytes() instead.
1526  */
1527 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
1528 {
1529     
1530         return yy_scan_bytes(yystr,strlen(yystr) );
1531 }
1532
1533 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1534  * scan from a @e copy of @a bytes.
1535  * @param bytes the byte buffer to scan
1536  * @param len the number of bytes in the buffer pointed to by @a bytes.
1537  * 
1538  * @return the newly allocated buffer state object.
1539  */
1540 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
1541 {
1542         YY_BUFFER_STATE b;
1543         char *buf;
1544         yy_size_t n;
1545         int i;
1546     
1547         /* Get memory for full buffer, including space for trailing EOB's. */
1548         n = _yybytes_len + 2;
1549         buf = (char *) yyalloc(n  );
1550         if ( ! buf )
1551                 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1552
1553         for ( i = 0; i < _yybytes_len; ++i )
1554                 buf[i] = yybytes[i];
1555
1556         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1557
1558         b = yy_scan_buffer(buf,n );
1559         if ( ! b )
1560                 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1561
1562         /* It's okay to grow etc. this buffer, and we should throw it
1563          * away when we're done.
1564          */
1565         b->yy_is_our_buffer = 1;
1566
1567         return b;
1568 }
1569
1570 #ifndef YY_EXIT_FAILURE
1571 #define YY_EXIT_FAILURE 2
1572 #endif
1573
1574 static void yy_fatal_error (yyconst char* msg )
1575 {
1576         (void) fprintf( stderr, "%s\n", msg );
1577         exit( YY_EXIT_FAILURE );
1578 }
1579
1580 /* Redefine yyless() so it works in section 3 code. */
1581
1582 #undef yyless
1583 #define yyless(n) \
1584         do \
1585                 { \
1586                 /* Undo effects of setting up yytext. */ \
1587         int yyless_macro_arg = (n); \
1588         YY_LESS_LINENO(yyless_macro_arg);\
1589                 yytext[yyleng] = (yy_hold_char); \
1590                 (yy_c_buf_p) = yytext + yyless_macro_arg; \
1591                 (yy_hold_char) = *(yy_c_buf_p); \
1592                 *(yy_c_buf_p) = '\0'; \
1593                 yyleng = yyless_macro_arg; \
1594                 } \
1595         while ( 0 )
1596
1597 /* Accessor  methods (get/set functions) to struct members. */
1598
1599 /** Get the current line number.
1600  * 
1601  */
1602 int yyget_lineno  (void)
1603 {
1604         
1605     return yylineno;
1606 }
1607
1608 /** Get the input stream.
1609  * 
1610  */
1611 FILE *yyget_in  (void)
1612 {
1613         return yyin;
1614 }
1615
1616 /** Get the output stream.
1617  * 
1618  */
1619 FILE *yyget_out  (void)
1620 {
1621         return yyout;
1622 }
1623
1624 /** Get the length of the current token.
1625  * 
1626  */
1627 int yyget_leng  (void)
1628 {
1629         return yyleng;
1630 }
1631
1632 /** Get the current token.
1633  * 
1634  */
1635
1636 char *yyget_text  (void)
1637 {
1638         return yytext;
1639 }
1640
1641 /** Set the current line number.
1642  * @param line_number
1643  * 
1644  */
1645 void yyset_lineno (int  line_number )
1646 {
1647     
1648     yylineno = line_number;
1649 }
1650
1651 /** Set the input stream. This does not discard the current
1652  * input buffer.
1653  * @param in_str A readable stream.
1654  * 
1655  * @see yy_switch_to_buffer
1656  */
1657 void yyset_in (FILE *  in_str )
1658 {
1659         yyin = in_str ;
1660 }
1661
1662 void yyset_out (FILE *  out_str )
1663 {
1664         yyout = out_str ;
1665 }
1666
1667 int yyget_debug  (void)
1668 {
1669         return yy_flex_debug;
1670 }
1671
1672 void yyset_debug (int  bdebug )
1673 {
1674         yy_flex_debug = bdebug ;
1675 }
1676
1677 static int yy_init_globals (void)
1678 {
1679         /* Initialization is the same as for the non-reentrant scanner.
1680      * This function is called from yylex_destroy(), so don't allocate here.
1681      */
1682
1683     (yy_buffer_stack) = 0;
1684     (yy_buffer_stack_top) = 0;
1685     (yy_buffer_stack_max) = 0;
1686     (yy_c_buf_p) = (char *) 0;
1687     (yy_init) = 0;
1688     (yy_start) = 0;
1689
1690 /* Defined in main.c */
1691 #ifdef YY_STDINIT
1692     yyin = stdin;
1693     yyout = stdout;
1694 #else
1695     yyin = (FILE *) 0;
1696     yyout = (FILE *) 0;
1697 #endif
1698
1699     /* For future reference: Set errno on error, since we are called by
1700      * yylex_init()
1701      */
1702     return 0;
1703 }
1704
1705 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
1706 int yylex_destroy  (void)
1707 {
1708     
1709     /* Pop the buffer stack, destroying each element. */
1710         while(YY_CURRENT_BUFFER){
1711                 yy_delete_buffer(YY_CURRENT_BUFFER  );
1712                 YY_CURRENT_BUFFER_LVALUE = NULL;
1713                 yypop_buffer_state();
1714         }
1715
1716         /* Destroy the stack itself. */
1717         yyfree((yy_buffer_stack) );
1718         (yy_buffer_stack) = NULL;
1719
1720     /* Reset the globals. This is important in a non-reentrant scanner so the next time
1721      * yylex() is called, initialization will occur. */
1722     yy_init_globals( );
1723
1724     return 0;
1725 }
1726
1727 /*
1728  * Internal utility routines.
1729  */
1730
1731 #ifndef yytext_ptr
1732 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
1733 {
1734         register int i;
1735         for ( i = 0; i < n; ++i )
1736                 s1[i] = s2[i];
1737 }
1738 #endif
1739
1740 #ifdef YY_NEED_STRLEN
1741 static int yy_flex_strlen (yyconst char * s )
1742 {
1743         register int n;
1744         for ( n = 0; s[n]; ++n )
1745                 ;
1746
1747         return n;
1748 }
1749 #endif
1750
1751 void *yyalloc (yy_size_t  size )
1752 {
1753         return (void *) malloc( size );
1754 }
1755
1756 void *yyrealloc  (void * ptr, yy_size_t  size )
1757 {
1758         /* The cast to (char *) in the following accommodates both
1759          * implementations that use char* generic pointers, and those
1760          * that use void* generic pointers.  It works with the latter
1761          * because both ANSI C and C++ allow castless assignment from
1762          * any pointer type to void*, and deal with argument conversions
1763          * as though doing an assignment.
1764          */
1765         return (void *) realloc( (char *) ptr, size );
1766 }
1767
1768 void yyfree (void * ptr )
1769 {
1770         free( (char *) ptr );   /* see yyrealloc() for (char *) cast */
1771 }
1772
1773 #define YYTABLES_NAME "yytables"
1774
1775 #line 21 "parse_l.l"
1776
1777
1778