1    	#line 1 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.c"
2    	
3    	#line 3 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.c"
4    	
5    	#define  YY_INT_ALIGNED short int
6    	
7    	/* A lexical scanner generated by flex */
8    	
9    	#define FLEX_SCANNER
10   	#define YY_FLEX_MAJOR_VERSION 2
11   	#define YY_FLEX_MINOR_VERSION 6
12   	#define YY_FLEX_SUBMINOR_VERSION 4
13   	#if YY_FLEX_SUBMINOR_VERSION > 0
14   	#define FLEX_BETA
15   	#endif
16   	
17   	#ifdef yy_create_buffer
18   	#define ganeshun_yy_create_buffer_ALREADY_DEFINED
19   	#else
20   	#define yy_create_buffer ganeshun_yy_create_buffer
21   	#endif
22   	
23   	#ifdef yy_delete_buffer
24   	#define ganeshun_yy_delete_buffer_ALREADY_DEFINED
25   	#else
26   	#define yy_delete_buffer ganeshun_yy_delete_buffer
27   	#endif
28   	
29   	#ifdef yy_scan_buffer
30   	#define ganeshun_yy_scan_buffer_ALREADY_DEFINED
31   	#else
32   	#define yy_scan_buffer ganeshun_yy_scan_buffer
33   	#endif
34   	
35   	#ifdef yy_scan_string
36   	#define ganeshun_yy_scan_string_ALREADY_DEFINED
37   	#else
38   	#define yy_scan_string ganeshun_yy_scan_string
39   	#endif
40   	
41   	#ifdef yy_scan_bytes
42   	#define ganeshun_yy_scan_bytes_ALREADY_DEFINED
43   	#else
44   	#define yy_scan_bytes ganeshun_yy_scan_bytes
45   	#endif
46   	
47   	#ifdef yy_init_buffer
48   	#define ganeshun_yy_init_buffer_ALREADY_DEFINED
49   	#else
50   	#define yy_init_buffer ganeshun_yy_init_buffer
51   	#endif
52   	
53   	#ifdef yy_flush_buffer
54   	#define ganeshun_yy_flush_buffer_ALREADY_DEFINED
55   	#else
56   	#define yy_flush_buffer ganeshun_yy_flush_buffer
57   	#endif
58   	
59   	#ifdef yy_load_buffer_state
60   	#define ganeshun_yy_load_buffer_state_ALREADY_DEFINED
61   	#else
62   	#define yy_load_buffer_state ganeshun_yy_load_buffer_state
63   	#endif
64   	
65   	#ifdef yy_switch_to_buffer
66   	#define ganeshun_yy_switch_to_buffer_ALREADY_DEFINED
67   	#else
68   	#define yy_switch_to_buffer ganeshun_yy_switch_to_buffer
69   	#endif
70   	
71   	#ifdef yypush_buffer_state
72   	#define ganeshun_yypush_buffer_state_ALREADY_DEFINED
73   	#else
74   	#define yypush_buffer_state ganeshun_yypush_buffer_state
75   	#endif
76   	
77   	#ifdef yypop_buffer_state
78   	#define ganeshun_yypop_buffer_state_ALREADY_DEFINED
79   	#else
80   	#define yypop_buffer_state ganeshun_yypop_buffer_state
81   	#endif
82   	
83   	#ifdef yyensure_buffer_stack
84   	#define ganeshun_yyensure_buffer_stack_ALREADY_DEFINED
85   	#else
86   	#define yyensure_buffer_stack ganeshun_yyensure_buffer_stack
87   	#endif
88   	
89   	#ifdef yylex
90   	#define ganeshun_yylex_ALREADY_DEFINED
91   	#else
92   	#define yylex ganeshun_yylex
93   	#endif
94   	
95   	#ifdef yyrestart
96   	#define ganeshun_yyrestart_ALREADY_DEFINED
97   	#else
98   	#define yyrestart ganeshun_yyrestart
99   	#endif
100  	
101  	#ifdef yylex_init
102  	#define ganeshun_yylex_init_ALREADY_DEFINED
103  	#else
104  	#define yylex_init ganeshun_yylex_init
105  	#endif
106  	
107  	#ifdef yylex_init_extra
108  	#define ganeshun_yylex_init_extra_ALREADY_DEFINED
109  	#else
110  	#define yylex_init_extra ganeshun_yylex_init_extra
111  	#endif
112  	
113  	#ifdef yylex_destroy
114  	#define ganeshun_yylex_destroy_ALREADY_DEFINED
115  	#else
116  	#define yylex_destroy ganeshun_yylex_destroy
117  	#endif
118  	
119  	#ifdef yyget_debug
120  	#define ganeshun_yyget_debug_ALREADY_DEFINED
121  	#else
122  	#define yyget_debug ganeshun_yyget_debug
123  	#endif
124  	
125  	#ifdef yyset_debug
126  	#define ganeshun_yyset_debug_ALREADY_DEFINED
127  	#else
128  	#define yyset_debug ganeshun_yyset_debug
129  	#endif
130  	
131  	#ifdef yyget_extra
132  	#define ganeshun_yyget_extra_ALREADY_DEFINED
133  	#else
134  	#define yyget_extra ganeshun_yyget_extra
135  	#endif
136  	
137  	#ifdef yyset_extra
138  	#define ganeshun_yyset_extra_ALREADY_DEFINED
139  	#else
140  	#define yyset_extra ganeshun_yyset_extra
141  	#endif
142  	
143  	#ifdef yyget_in
144  	#define ganeshun_yyget_in_ALREADY_DEFINED
145  	#else
146  	#define yyget_in ganeshun_yyget_in
147  	#endif
148  	
149  	#ifdef yyset_in
150  	#define ganeshun_yyset_in_ALREADY_DEFINED
151  	#else
152  	#define yyset_in ganeshun_yyset_in
153  	#endif
154  	
155  	#ifdef yyget_out
156  	#define ganeshun_yyget_out_ALREADY_DEFINED
157  	#else
158  	#define yyget_out ganeshun_yyget_out
159  	#endif
160  	
161  	#ifdef yyset_out
162  	#define ganeshun_yyset_out_ALREADY_DEFINED
163  	#else
164  	#define yyset_out ganeshun_yyset_out
165  	#endif
166  	
167  	#ifdef yyget_leng
168  	#define ganeshun_yyget_leng_ALREADY_DEFINED
169  	#else
170  	#define yyget_leng ganeshun_yyget_leng
171  	#endif
172  	
173  	#ifdef yyget_text
174  	#define ganeshun_yyget_text_ALREADY_DEFINED
175  	#else
176  	#define yyget_text ganeshun_yyget_text
177  	#endif
178  	
179  	#ifdef yyget_lineno
180  	#define ganeshun_yyget_lineno_ALREADY_DEFINED
181  	#else
182  	#define yyget_lineno ganeshun_yyget_lineno
183  	#endif
184  	
185  	#ifdef yyset_lineno
186  	#define ganeshun_yyset_lineno_ALREADY_DEFINED
187  	#else
188  	#define yyset_lineno ganeshun_yyset_lineno
189  	#endif
190  	
191  	#ifdef yyget_column
192  	#define ganeshun_yyget_column_ALREADY_DEFINED
193  	#else
194  	#define yyget_column ganeshun_yyget_column
195  	#endif
196  	
197  	#ifdef yyset_column
198  	#define ganeshun_yyset_column_ALREADY_DEFINED
199  	#else
200  	#define yyset_column ganeshun_yyset_column
201  	#endif
202  	
203  	#ifdef yywrap
204  	#define ganeshun_yywrap_ALREADY_DEFINED
205  	#else
206  	#define yywrap ganeshun_yywrap
207  	#endif
208  	
209  	#ifdef yyget_lval
210  	#define ganeshun_yyget_lval_ALREADY_DEFINED
211  	#else
212  	#define yyget_lval ganeshun_yyget_lval
213  	#endif
214  	
215  	#ifdef yyset_lval
216  	#define ganeshun_yyset_lval_ALREADY_DEFINED
217  	#else
218  	#define yyset_lval ganeshun_yyset_lval
219  	#endif
220  	
221  	#ifdef yyget_lloc
222  	#define ganeshun_yyget_lloc_ALREADY_DEFINED
223  	#else
224  	#define yyget_lloc ganeshun_yyget_lloc
225  	#endif
226  	
227  	#ifdef yyset_lloc
228  	#define ganeshun_yyset_lloc_ALREADY_DEFINED
229  	#else
230  	#define yyset_lloc ganeshun_yyset_lloc
231  	#endif
232  	
233  	#ifdef yyalloc
234  	#define ganeshun_yyalloc_ALREADY_DEFINED
235  	#else
236  	#define yyalloc ganeshun_yyalloc
237  	#endif
238  	
239  	#ifdef yyrealloc
240  	#define ganeshun_yyrealloc_ALREADY_DEFINED
241  	#else
242  	#define yyrealloc ganeshun_yyrealloc
243  	#endif
244  	
245  	#ifdef yyfree
246  	#define ganeshun_yyfree_ALREADY_DEFINED
247  	#else
248  	#define yyfree ganeshun_yyfree
249  	#endif
250  	
251  	/* First, we deal with  platform-specific or compiler-specific issues. */
252  	
253  	/* begin standard C headers. */
254  	#include <stdio.h>
255  	#include <string.h>
256  	#include <errno.h>
257  	#include <stdlib.h>
258  	
259  	/* end standard C headers. */
260  	
261  	/* flex integer type definitions */
262  	
263  	#ifndef FLEXINT_H
264  	#define FLEXINT_H
265  	
266  	/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
267  	
268  	#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
269  	
270  	/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
271  	 * if you want the limit (max/min) macros for int types. 
272  	 */
273  	#ifndef __STDC_LIMIT_MACROS
274  	#define __STDC_LIMIT_MACROS 1
275  	#endif
276  	
277  	#include <inttypes.h>
278  	typedef int8_t flex_int8_t;
279  	typedef uint8_t flex_uint8_t;
280  	typedef int16_t flex_int16_t;
281  	typedef uint16_t flex_uint16_t;
282  	typedef int32_t flex_int32_t;
283  	typedef uint32_t flex_uint32_t;
284  	#else
285  	typedef signed char flex_int8_t;
286  	typedef short int flex_int16_t;
287  	typedef int flex_int32_t;
288  	typedef unsigned char flex_uint8_t; 
289  	typedef unsigned short int flex_uint16_t;
290  	typedef unsigned int flex_uint32_t;
291  	
292  	/* Limits of integral types. */
293  	#ifndef INT8_MIN
294  	#define INT8_MIN               (-128)
295  	#endif
296  	#ifndef INT16_MIN
297  	#define INT16_MIN              (-32767-1)
298  	#endif
299  	#ifndef INT32_MIN
300  	#define INT32_MIN              (-2147483647-1)
301  	#endif
302  	#ifndef INT8_MAX
303  	#define INT8_MAX               (127)
304  	#endif
305  	#ifndef INT16_MAX
306  	#define INT16_MAX              (32767)
307  	#endif
308  	#ifndef INT32_MAX
309  	#define INT32_MAX              (2147483647)
310  	#endif
311  	#ifndef UINT8_MAX
312  	#define UINT8_MAX              (255U)
313  	#endif
314  	#ifndef UINT16_MAX
315  	#define UINT16_MAX             (65535U)
316  	#endif
317  	#ifndef UINT32_MAX
318  	#define UINT32_MAX             (4294967295U)
319  	#endif
320  	
321  	#ifndef SIZE_MAX
322  	#define SIZE_MAX               (~(size_t)0)
323  	#endif
324  	
325  	#endif /* ! C99 */
326  	
327  	#endif /* ! FLEXINT_H */
328  	
329  	/* begin standard C++ headers. */
330  	
331  	/* TODO: this is always defined, so inline it */
332  	#define yyconst const
333  	
334  	#if defined(__GNUC__) && __GNUC__ >= 3
335  	#define yynoreturn __attribute__((__noreturn__))
336  	#else
337  	#define yynoreturn
338  	#endif
339  	
340  	/* Returned upon end-of-file. */
341  	#define YY_NULL 0
342  	
343  	/* Promotes a possibly negative, possibly signed char to an
344  	 *   integer in range [0..255] for use as an array index.
345  	 */
346  	#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
347  	
348  	/* An opaque pointer. */
349  	#ifndef YY_TYPEDEF_YY_SCANNER_T
350  	#define YY_TYPEDEF_YY_SCANNER_T
351  	typedef void* yyscan_t;
352  	#endif
353  	
354  	/* For convenience, these vars (plus the bison vars far below)
355  	   are macros in the reentrant scanner. */
356  	#define yyin yyg->yyin_r
357  	#define yyout yyg->yyout_r
358  	#define yyextra yyg->yyextra_r
359  	#define yyleng yyg->yyleng_r
360  	#define yytext yyg->yytext_r
361  	#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
362  	#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
363  	#define yy_flex_debug yyg->yy_flex_debug_r
364  	
365  	/* Enter a start condition.  This macro really ought to take a parameter,
366  	 * but we do it the disgusting crufty way forced on us by the ()-less
367  	 * definition of BEGIN.
368  	 */
369  	#define BEGIN yyg->yy_start = 1 + 2 *
370  	/* Translate the current start state into a value that can be later handed
371  	 * to BEGIN to return to the state.  The YYSTATE alias is for lex
372  	 * compatibility.
373  	 */
374  	#define YY_START ((yyg->yy_start - 1) / 2)
375  	#define YYSTATE YY_START
376  	/* Action number for EOF rule of a given start state. */
377  	#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
378  	/* Special action meaning "start processing a new file". */
379  	#define YY_NEW_FILE yyrestart( yyin , yyscanner )
380  	#define YY_END_OF_BUFFER_CHAR 0
381  	
382  	/* Size of default input buffer. */
383  	#ifndef YY_BUF_SIZE
384  	#ifdef __ia64__
385  	/* On IA-64, the buffer size is 16k, not 8k.
386  	 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
387  	 * Ditto for the __ia64__ case accordingly.
388  	 */
389  	#define YY_BUF_SIZE 32768
390  	#else
391  	#define YY_BUF_SIZE 16384
392  	#endif /* __ia64__ */
393  	#endif
394  	
395  	/* The state buf must be large enough to hold one state per character in the main buffer.
396  	 */
397  	#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
398  	
399  	#ifndef YY_TYPEDEF_YY_BUFFER_STATE
400  	#define YY_TYPEDEF_YY_BUFFER_STATE
401  	typedef struct yy_buffer_state *YY_BUFFER_STATE;
402  	#endif
403  	
404  	#ifndef YY_TYPEDEF_YY_SIZE_T
405  	#define YY_TYPEDEF_YY_SIZE_T
406  	typedef size_t yy_size_t;
407  	#endif
408  	
409  	#define EOB_ACT_CONTINUE_SCAN 0
410  	#define EOB_ACT_END_OF_FILE 1
411  	#define EOB_ACT_LAST_MATCH 2
412  	    
413  	    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
414  	     *       access to the local variable yy_act. Since yyless() is a macro, it would break
415  	     *       existing scanners that call yyless() from OUTSIDE yylex.
416  	     *       One obvious solution it to make yy_act a global. I tried that, and saw
417  	     *       a 5% performance hit in a non-yylineno scanner, because yy_act is
418  	     *       normally declared as a register variable-- so it is not worth it.
419  	     */
420  	    #define  YY_LESS_LINENO(n) \
421  	            do { \
422  	                int yyl;\
423  	                for ( yyl = n; yyl < yyleng; ++yyl )\
424  	                    if ( yytext[yyl] == '\n' )\
425  	                        --yylineno;\
426  	            }while(0)
427  	    #define YY_LINENO_REWIND_TO(dst) \
428  	            do {\
429  	                const char *p;\
430  	                for ( p = yy_cp-1; p >= (dst); --p)\
431  	                    if ( *p == '\n' )\
432  	                        --yylineno;\
433  	            }while(0)
434  	    
435  	/* Return all but the first "n" matched characters back to the input stream. */
436  	#define yyless(n) \
437  		do \
438  			{ \
439  			/* Undo effects of setting up yytext. */ \
440  	        int yyless_macro_arg = (n); \
441  	        YY_LESS_LINENO(yyless_macro_arg);\
442  			*yy_cp = yyg->yy_hold_char; \
443  			YY_RESTORE_YY_MORE_OFFSET \
444  			yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
445  			YY_DO_BEFORE_ACTION; /* set up yytext again */ \
446  			} \
447  		while ( 0 )
448  	#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
449  	
450  	#ifndef YY_STRUCT_YY_BUFFER_STATE
451  	#define YY_STRUCT_YY_BUFFER_STATE
452  	struct yy_buffer_state
453  		{
454  		FILE *yy_input_file;
455  	
456  		char *yy_ch_buf;		/* input buffer */
457  		char *yy_buf_pos;		/* current position in input buffer */
458  	
459  		/* Size of input buffer in bytes, not including room for EOB
460  		 * characters.
461  		 */
462  		int yy_buf_size;
463  	
464  		/* Number of characters read into yy_ch_buf, not including EOB
465  		 * characters.
466  		 */
467  		int yy_n_chars;
468  	
469  		/* Whether we "own" the buffer - i.e., we know we created it,
470  		 * and can realloc() it to grow it, and should free() it to
471  		 * delete it.
472  		 */
473  		int yy_is_our_buffer;
474  	
475  		/* Whether this is an "interactive" input source; if so, and
476  		 * if we're using stdio for input, then we want to use getc()
477  		 * instead of fread(), to make sure we stop fetching input after
478  		 * each newline.
479  		 */
480  		int yy_is_interactive;
481  	
482  		/* Whether we're considered to be at the beginning of a line.
483  		 * If so, '^' rules will be active on the next match, otherwise
484  		 * not.
485  		 */
486  		int yy_at_bol;
487  	
488  	    int yy_bs_lineno; /**< The line count. */
489  	    int yy_bs_column; /**< The column count. */
490  	
491  		/* Whether to try to fill the input buffer when we reach the
492  		 * end of it.
493  		 */
494  		int yy_fill_buffer;
495  	
496  		int yy_buffer_status;
497  	
498  	#define YY_BUFFER_NEW 0
499  	#define YY_BUFFER_NORMAL 1
500  		/* When an EOF's been seen but there's still some text to process
501  		 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
502  		 * shouldn't try reading from the input source any more.  We might
503  		 * still have a bunch of tokens to match, though, because of
504  		 * possible backing-up.
505  		 *
506  		 * When we actually see the EOF, we change the status to "new"
507  		 * (via yyrestart()), so that the user can continue scanning by
508  		 * just pointing yyin at a new input file.
509  		 */
510  	#define YY_BUFFER_EOF_PENDING 2
511  	
512  		};
513  	#endif /* !YY_STRUCT_YY_BUFFER_STATE */
514  	
515  	/* We provide macros for accessing buffer states in case in the
516  	 * future we want to put the buffer states in a more general
517  	 * "scanner state".
518  	 *
519  	 * Returns the top of the stack, or NULL.
520  	 */
521  	#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
522  	                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
523  	                          : NULL)
524  	/* Same as previous macro, but useful when we know that the buffer stack is not
525  	 * NULL or when we need an lvalue. For internal use only.
526  	 */
527  	#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
528  	
529  	void yyrestart ( FILE *input_file , yyscan_t yyscanner );
530  	void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
531  	YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size , yyscan_t yyscanner );
532  	void yy_delete_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
533  	void yy_flush_buffer ( YY_BUFFER_STATE b , yyscan_t yyscanner );
534  	void yypush_buffer_state ( YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
535  	void yypop_buffer_state ( yyscan_t yyscanner );
536  	
537  	static void yyensure_buffer_stack ( yyscan_t yyscanner );
538  	static void yy_load_buffer_state ( yyscan_t yyscanner );
539  	static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
540  	#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
541  	
542  	YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size , yyscan_t yyscanner );
543  	YY_BUFFER_STATE yy_scan_string ( const char *yy_str , yyscan_t yyscanner );
544  	YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len , yyscan_t yyscanner );
545  	
546  	void *yyalloc ( yy_size_t , yyscan_t yyscanner );
547  	void *yyrealloc ( void *, yy_size_t , yyscan_t yyscanner );
548  	void yyfree ( void * , yyscan_t yyscanner );
549  	
550  	#define yy_new_buffer yy_create_buffer
551  	#define yy_set_interactive(is_interactive) \
552  		{ \
553  		if ( ! YY_CURRENT_BUFFER ){ \
554  	        yyensure_buffer_stack (yyscanner); \
555  			YY_CURRENT_BUFFER_LVALUE =    \
556  	            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
557  		} \
558  		YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
559  		}
560  	#define yy_set_bol(at_bol) \
561  		{ \
562  		if ( ! YY_CURRENT_BUFFER ){\
563  	        yyensure_buffer_stack (yyscanner); \
564  			YY_CURRENT_BUFFER_LVALUE =    \
565  	            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
566  		} \
567  		YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
568  		}
569  	#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
570  	
571  	/* Begin user sect3 */
572  	typedef flex_uint8_t YY_CHAR;
573  	
574  	typedef int yy_state_type;
575  	
576  	#define yytext_ptr yytext_r
577  	
578  	static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
579  	static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  , yyscan_t yyscanner);
580  	static int yy_get_next_buffer ( yyscan_t yyscanner );
581  	static void yynoreturn yy_fatal_error ( const char* msg , yyscan_t yyscanner );
582  	
583  	/* Done after the current pattern has been matched and before the
584  	 * corresponding action - sets up yytext.
585  	 */
586  	#define YY_DO_BEFORE_ACTION \
587  		yyg->yytext_ptr = yy_bp; \
588  		yyleng = (int) (yy_cp - yy_bp); \
589  		yyg->yy_hold_char = *yy_cp; \
590  		*yy_cp = '\0'; \
591  		yyg->yy_c_buf_p = yy_cp;
592  	#define YY_NUM_RULES 35
593  	#define YY_END_OF_BUFFER 36
594  	/* This struct is not used in this scanner,
595  	   but its presence is necessary. */
596  	struct yy_trans_info
597  		{
598  		flex_int32_t yy_verify;
599  		flex_int32_t yy_nxt;
600  		};
601  	static const flex_int16_t yy_accept[508] =
602  	    {   0,
603  	        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
604  	        0,    0,   36,   34,   32,   33,   34,   12,   13,    9,
605  	       10,   11,   34,    7,    8,   34,   34,   24,   18,   34,
606  	       28,   23,   23,   23,   34,   29,   34,   29,   29,   29,
607  	       29,   29,   29,   29,   34,   18,   34,    2,   34,   34,
608  	       34,    0,   31,    0,    0,    7,    8,    0,   14,    0,
609  	        0,   15,   30,   30,    0,    0,    0,   28,    0,   21,
610  	        0,    0,    0,    0,    0,   23,   19,   26,   29,   27,
611  	       29,   29,   29,   17,   29,   16,   29,   29,    0,    0,
612  	        0,    0,    2,    0,    0,    0,    0,    0,    0,   14,
613  	
614  	        0,   28,   28,   20,   20,   21,    0,    0,    0,    0,
615  	       26,   22,   20,   23,    0,   26,   26,   27,   29,   29,
616  	       29,    3,    0,    2,    0,    0,    0,    4,   28,    0,
617  	       20,    0,    0,    0,   20,   21,    0,    0,    0,    0,
618  	       26,   26,    0,   23,   26,    0,   26,    0,   26,   29,
619  	       29,    0,    0,    0,    0,    0,    0,   20,    0,   20,
620  	       20,   21,    0,    0,   26,   26,    0,   26,   20,   20,
621  	       23,   26,    0,   26,   26,   26,   26,    0,    0,    0,
622  	        0,    0,    0,   20,   20,    0,    0,    0,   26,   26,
623  	       26,   26,   26,   26,   20,    0,    0,   26,    0,   26,
624  	
625  	        0,   26,    0,    0,    0,   24,   25,    0,    0,    0,
626  	       26,   26,    0,   26,   26,   26,    0,   26,    0,    0,
627  	        0,   26,   26,   26,   26,    0,    0,    1,    0,   25,
628  	        0,    0,    0,   26,   26,   26,   26,   26,   26,   26,
629  	       26,   26,   26,    0,    0,    0,    0,   26,    0,   26,
630  	        0,   26,    0,    0,   25,   25,    0,    0,   26,   26,
631  	        0,   26,   26,   26,    0,   26,   26,   26,    0,   26,
632  	       26,    0,    0,    0,    0,   26,   26,   26,   26,    0,
633  	        5,   25,    0,    0,    0,   26,   26,   26,   26,   26,
634  	       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
635  	
636  	        0,    0,    0,    0,   26,    0,   26,    0,   26,    0,
637  	        0,    0,   26,   26,    0,   26,   26,   26,    0,   26,
638  	       26,   26,    0,   26,   26,   26,    0,   26,   26,   26,
639  	        0,    0,    0,    0,   26,   26,   26,   26,    6,    0,
640  	        0,    0,   26,   26,   26,   26,   26,   26,   26,   26,
641  	       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
642  	       26,    0,    0,    0,    0,   26,    0,   26,    0,   26,
643  	        0,    0,   26,    0,   26,    0,   26,   26,   26,    0,
644  	       26,   26,   26,    0,   26,   26,   26,    0,   26,   26,
645  	       26,    0,   26,   26,   26,    0,    0,    0,    0,   26,
646  	
647  	       26,   26,   26,    0,    0,    0,    0,    0,   26,   26,
648  	       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
649  	       26,   26,   26,   26,   26,    0,    0,    0,    0,   26,
650  	        0,   26,    0,   26,    0,    0,    0,   26,   26,   26,
651  	       26,   26,   26,   26,   26,   26,   26,   26,   26,   26,
652  	       26,   26,    0,    0,    0,    0,   26,   26,   26,    0,
653  	        0,    0,   26,   26,   26,   26,   26,   26,   26,   26,
654  	        0,    0,    0,    0,   26,   26,    0,    0,   26,   26,
655  	       26,   26,   26,   26,   26,   26,   26,    0,    0,    0,
656  	       26,    0,    0,   26,    0,    0,   26,   26,    0,   26,
657  	
658  	       26,    0,   26,   26,   26,   26,    0
659  	    } ;
660  	
661  	static const YY_CHAR yy_ec[256] =
662  	    {   0,
663  	        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
664  	        1,    2,    2,    1,    1,    1,    1,    1,    1,    1,
665  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
666  	        1,    2,    4,    5,    6,    1,    7,    8,    9,    1,
667  	        1,   10,    1,   11,   12,   13,   14,   15,   16,   16,
668  	       16,   16,   16,   16,   16,   17,   18,   19,   20,    1,
669  	       21,    1,   22,   23,   24,   25,   25,   25,   26,   27,
670  	       28,   28,   28,   28,   28,   29,   28,   30,   31,   32,
671  	       28,   33,   34,   35,   36,   28,   28,   37,   38,   28,
672  	       39,   40,   41,    1,   28,    1,   42,   25,   43,   44,
673  	
674  	       45,   27,   28,   28,   46,   28,   28,   47,   28,   48,
675  	       49,   32,   28,   50,   51,   35,   52,   28,   28,   37,
676  	       38,   28,   53,    1,   54,   55,    1,    1,    1,    1,
677  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
678  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
679  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
680  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
681  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
682  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
683  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
684  	
685  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
686  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
687  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
688  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
689  	        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
690  	        1,    1,    1,    1,    1
691  	    } ;
692  	
693  	static const YY_CHAR yy_meta[56] =
694  	    {   0,
695  	        1,    1,    1,    2,    1,    1,    1,    3,    1,    4,
696  	        1,    5,    6,    7,    8,    8,    8,    8,    9,    1,
697  	        3,    4,    1,   10,   10,   10,   10,   11,   11,   11,
698  	       11,   11,   11,   11,   11,   11,   11,   11,    4,    1,
699  	        1,   10,   10,   10,   10,   11,   11,   11,   11,   11,
700  	       11,   11,    1,    1,    1
701  	    } ;
702  	
703  	static const flex_int16_t yy_base[626] =
704  	    {   0,
705  	        0,    2,   56,    0,  105,    0,  157,    0,  212,    0,
706  	      266,  319, 1739, 2941, 2941, 2941, 1735, 2941, 2941, 2941,
707  	     2941, 2941,    0,    0,    0,    2, 1719,    2,    4,    5,
708  	        0,  364,  407, 1668, 1669,    6,    0,  443,    5,  481,
709  	        0,    3,   94,  100, 1663, 2941, 1652, 1620, 1608, 1551,
710  	     1547, 1565, 2941, 1519, 1516,    0,    0,  265, 2941,  270,
711  	     1547, 2941,  268,  269, 1531,  270,    0, 1515,  279,  512,
712  	       19, 1509,  100,  543, 1481,   21,  104,  297,  278,    0,
713  	        0,  574,   99,    0, 1468,    0,  246,  251, 1484,  295,
714  	      109, 1473, 1472,    0, 1434, 1431, 1420, 1415,  298,  301,
715  	
716  	      323, 1441,    0,  316,  329,  605,  335,  339,  341, 1435,
717  	      350, 1440,  426,  420,  344,  638,  496,    0,  669,  336,
718  	      278, 2941,    0, 1429, 1398, 1381, 1382, 2941,    0,  486,
719  	      502,  527,  700,  516,  533,  558,  547,  565, 1403, 1402,
720  	      733,  589,  578,  595,  609,  618,  766,  622,  628, 1401,
721  	      359,  269, 1361, 1358, 1345,  653,  659,  684,  690,    0,
722  	      715,  721, 1366, 1331,  674,  799,  643,  748,  704,  738,
723  	      754, 2941,  781,  787,  808,  832,  815, 1293, 1304, 1278,
724  	      771,  821,  787,  837,  845, 1302, 1292, 1271,  865,  851,
725  	      874,  881,  898,  886,  855,  903,  913,  262,  917,  931,
726  	
727  	      921,  946, 1259, 1233, 1201,  951,  963,  969, 1226, 1216,
728  	      974,  980,  936,  995,  426, 1013,  985, 1001, 1028, 1201,
729  	     1034, 1040, 1047, 1054, 1069, 1194, 1182, 2941,  880, 1074,
730  	     1149, 1137, 1109, 1087, 1102, 1108, 1120, 1127, 1142, 1148,
731  	     1160, 1167, 1182, 1018, 1188, 1047, 1200,  502, 1059, 1206,
732  	     1092, 1221, 1102,    0, 1226, 1238, 1076, 1075, 1243, 1249,
733  	     1108, 1264,  533, 1282, 1120, 1270,  565, 1315, 1132, 1297,
734  	     1302, 1080, 1330, 1070, 1336, 1342, 1349, 1356, 1371,    0,
735  	        0, 1034, 1023, 1002,  990, 1389, 1377, 1398, 1405, 1422,
736  	     1410, 1431, 1438, 1455, 1443, 1464, 1471, 1488, 1476, 1502,
737  	
738  	     1148, 1508, 1160, 1521,  659, 1172, 1527, 1211, 1542,  978,
739  	      953,  952, 1547, 1560, 1254, 1575,  690, 1593, 1287, 1581,
740  	      721, 1626, 1320, 1608,  754, 1659, 1349, 1614,  956, 1640,
741  	      947, 1646,  914, 1674, 1680, 1692, 1699, 1714, 2941,  887,
742  	      886, 1718, 1732, 1747, 1753, 1765, 1772, 1787, 1793, 1805,
743  	     1812, 1827, 1833, 1845, 1852, 1867, 1873, 1885, 1892, 1907,
744  	     1912, 1361, 1925, 1493, 1931,  821, 1532, 1937, 1565, 1952,
745  	      867, 1970,  871, 1958, 2003,    0, 1985, 1001, 2036,    0,
746  	     1991, 1188, 2069,    0, 2018, 1270, 2102,    0, 2024, 1377,
747  	     2135,    0, 2051,  851, 2056,  816, 2084,  807, 2090, 2111,
748  	
749  	     2118, 2168, 2123,  800, 1598, 2201,  788, 2150,  781, 2156,
750  	     2177,  760, 2184, 2186,  748, 2188, 2210,  715, 2217, 2219,
751  	      709, 2221, 2228,  696, 2234, 1631, 2240, 1664, 2246, 1508,
752  	     1680, 2252,    0, 2267, 2273,  324,  435,  684,  665,  653,
753  	     1581,  628, 1614,  614, 1646,  601, 1754,  595, 1794,  589,
754  	      583, 2284,  559, 2290,  540, 2296, 2302, 2304,  527, 1692,
755  	     2309,  516,  508,  496,  470,  469,  452,  450,  433, 2314,
756  	     1704, 2320, 1737, 2326, 1834,  416, 2332,  415,  413,  405,
757  	      404,  391,  370,  361,  357,  335, 2337,  322, 2343,  314,
758  	      111, 1765, 2349, 2354, 1777, 2360,  110, 2365,   37,   34,
759  	
760  	     2370,   27, 2375, 2380,   11,    3, 2941, 2398, 2409, 2416,
761  	     2423, 2434, 2445, 2453, 2461, 2468, 2476, 2478, 2488, 2495,
762  	     2502, 2513, 2520, 2524, 2528, 2534, 2541, 2545, 2549, 2555,
763  	     2559, 2562, 2565, 2568, 2571, 2575, 2578, 2583, 2586, 2589,
764  	     2594, 2597, 2600, 2603, 2607, 2610, 2613, 2618, 2624, 2628,
765  	     2631, 2636, 2641, 2644, 2652, 2656, 2659, 2663, 2666, 2669,
766  	     2672, 2677, 2685, 2689, 2692, 2697, 2702, 2707, 2710, 2713,
767  	     2716, 2720, 2723, 2726, 2729, 2732, 2737, 2740, 2743, 2748,
768  	     2753, 2758, 2763, 2766, 2769, 2773, 2776, 2779, 2782, 2785,
769  	     2788, 2793, 2796, 2800, 2805, 2809, 2814, 2818, 2823, 2827,
770  	
771  	     2832, 2836, 2841, 2845, 2848, 2853, 2857, 2861, 2865, 2869,
772  	     2873, 2877, 2881, 2886, 2890, 2894, 2898, 2902, 2906, 2910,
773  	     2914, 2918, 2922, 2926, 2930
774  	    } ;
775  	
776  	static const flex_int16_t yy_def[626] =
777  	    {   0,
778  	      508,  508,  507,    3,    3,    5,  507,    7,  507,    9,
779  	      508,  508,  507,  507,  507,  507,  509,  507,  507,  507,
780  	      507,  507,  507,  510,  511,  512,  513,  514,  515,  515,
781  	      516,  507,  515,   33,  507,  517,  518,  507,   38,   38,
782  	       40,   40,   40,   40,  519,  507,  520,  521,  521,  507,
783  	      507,  509,  507,  507,  507,  510,  511,  512,  507,  522,
784  	      513,  507,  514,  514,  519,  515,  523,  516,  515,   33,
785  	       70,  524,   70,   69,   69,   70,   69,  525,  517,  526,
786  	       40,   38,   82,   40,   40,   40,   40,   40,  519,  519,
787  	      520,  520,  521,  527,  507,  507,  507,  507,  512,  512,
788  	
789  	      522,  523,  523,   69,   69,   70,  106,  106,   69,  528,
790  	      529,   74,   69,  106,  507,  507,  116,  526,   82,   40,
791  	       40,  507,  530,  527,  507,  507,  507,  507,  523,   69,
792  	       69,   69,   69,   69,   69,   69,   69,   69,  531,  532,
793  	      507,  141,   69,   69,  507,  507,  507,  533,  147,   40,
794  	       40,  530,  507,  507,  507,   69,   69,   69,   69,  133,
795  	       69,   69,  534,  535,  536,  507,  537,  166,   69,   69,
796  	       69,  507,  507,  538,  538,  507,  176,  507,  507,  507,
797  	       69,   69,   69,   69,   69,  507,  539,  540,  507,  189,
798  	      541,  541,  507,  193,   69,  507,  507,  507,  507,  507,
799  	
800  	      542,  200,  507,  507,  507,   69,   69,   69,  543,  544,
801  	      545,  507,  546,  212,  507,  507,  547,  216,  507,  507,
802  	      507,  548,  548,  507,  224,  507,  507,  507,  549,   69,
803  	      507,  550,  551,  507,  234,  552,  552,  507,  238,  553,
804  	      553,  507,  242,  507,  507,  507,  507,  507,  507,  507,
805  	      554,  250,  507,  555,  549,   69,  556,  557,  558,  507,
806  	      559,  260,  507,  507,  560,  264,  507,  507,  561,  268,
807  	      507,  507,  507,  507,  507,  562,  562,  507,  278,  563,
808  	      555,  549,  507,  564,  565,  507,  286,  566,  566,  507,
809  	      290,  567,  567,  507,  294,  568,  568,  507,  298,  507,
810  	
811  	      507,  507,  507,  507,  507,  507,  507,  569,  307,  563,
812  	      570,  571,  572,  507,  573,  314,  507,  507,  574,  318,
813  	      507,  507,  575,  322,  507,  507,  576,  326,  507,  507,
814  	      507,  507,  507,  507,  577,  577,  507,  337,  507,  507,
815  	      578,  579,  507,  343,  580,  580,  507,  347,  581,  581,
816  	      507,  351,  582,  582,  507,  355,  583,  583,  507,  359,
817  	      507,  507,  507,  507,  507,  507,  507,  507,  584,  368,
818  	      585,  507,  586,  372,  507,  587,  375,  507,  507,  588,
819  	      379,  507,  507,  589,  383,  507,  507,  590,  387,  507,
820  	      507,  591,  391,  507,  507,  507,  507,  507,  507,  592,
821  	
822  	      592,  507,  402,  507,  507,  507,  593,  406,  594,  595,
823  	      595,  596,  597,  597,  598,  599,  599,  600,  601,  601,
824  	      602,  603,  603,  604,  507,  507,  507,  507,  507,  507,
825  	      507,  507,  605,  432,  507,  606,  606,  607,  507,  608,
826  	      507,  609,  507,  610,  507,  611,  507,  612,  507,  613,
827  	      507,  507,  507,  507,  507,  507,  614,  614,  615,  507,
828  	      507,  507,  616,  617,  618,  619,  620,  621,  622,  507,
829  	      507,  507,  507,  507,  507,  623,  507,  507,  624,  507,
830  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
831  	      625,  507,  507,  507,  507,  507,  507,  507,  507,  507,
832  	
833  	      507,  507,  507,  507,  507,  507,    0,  507,  507,  507,
834  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
835  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
836  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
837  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
838  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
839  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
840  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
841  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
842  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
843  	
844  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
845  	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
846  	      507,  507,  507,  507,  507
847  	    } ;
848  	
849  	static const flex_int16_t yy_nxt[2997] =
850  	    {   0,
851  	      507,   15,   16,   15,   16,   17,   59,   17,  507,  507,
852  	       18,   63,   18,   63,   63,   63,  115,   67,   67,   19,
853  	       20,   19,   20,   63,  115,   63,   63,   63,   83,   85,
854  	       84,  109,   86,  107,  107,  114,  114,  114,  114,  495,
855  	       65,   60,   65,   65,   65,   54,   83,  115,   84,  492,
856  	       86,   55,   21,   22,   21,   22,   14,   15,   16,   14,
857  	       14,   17,   23,   14,   14,   14,   18,   14,   14,   14,
858  	       14,   14,   14,   14,   14,   19,   20,   14,   14,   24,
859  	       24,   24,   24,   24,   24,   24,   24,   24,   24,   24,
860  	       24,   24,   24,   24,   14,   14,   14,   24,   24,   24,
861  	
862  	       24,   24,   24,   24,   24,   24,   24,   24,   21,   22,
863  	       14,   14,   66,  122,  108,  108,  108,  108,   66,   66,
864  	       66,   66,  123,  115,  115,   88,   87,  120,   25,   25,
865  	       25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
866  	       25,   25,   25,   87,   88,  120,   25,   25,   25,   25,
867  	       25,   25,   25,   25,   25,   25,   25,   14,   15,   16,
868  	       14,   26,   17,   14,   14,   27,   28,   18,   29,   30,
869  	       31,   32,   33,   33,   34,   35,   19,   20,   36,   37,
870  	       38,   38,   38,   39,   40,   40,   41,   42,   40,   40,
871  	       40,   43,   40,   40,   44,   45,   14,   14,   38,   38,
872  	
873  	       38,   38,   40,   40,   41,   42,   40,   40,   40,   21,
874  	       22,   46,   14,   15,   16,   14,   47,   17,   14,   14,
875  	       14,   14,   18,   48,   48,   49,   48,   48,   48,   48,
876  	       14,   19,   20,   14,   14,   48,   48,   48,   48,   48,
877  	       48,   48,   48,   48,   48,   48,   48,   48,   48,   48,
878  	       14,   14,   14,   48,   48,   48,   48,   48,   48,   48,
879  	       48,   48,   48,   48,   21,   22,   14,   15,   16,   59,
880  	       50,   17,   58,  122,  100,  115,   18,   63,   63,   63,
881  	      148,  121,  123,   67,   86,   19,   20,   63,   63,   63,
882  	       63,   63,   67,  104,  105,  105,  105,  121,  507,   63,
883  	
884  	       63,   86,   59,   86,   60,   59,   65,   65,   65,  101,
885  	      115,  116,  116,  116,  116,   51,   65,   65,   21,   22,
886  	       15,   16,   86,   50,   17,   58,  473,  100,  130,   18,
887  	      131,  131,  132,  132,  471,   63,  405,   60,   19,   20,
888  	       60,  134,  407,  135,  135,  135,  135,  109,  115,  137,
889  	      137,   66,  133,  137,  137,  138,  138,  138,  138,  145,
890  	      145,  145,  101,  115,  141,  141,  141,  141,   51,  151,
891  	      115,   21,   22,   63,  115,   66,   69,   67,   70,   70,
892  	       71,   71,   72,  115,   84,   63,  151,   73,   73,   73,
893  	       73,   66,   66,   66,   66,   66,   66,   66,   66,   66,
894  	
895  	       74,   66,   65,   84,  115,   73,   73,   73,   73,   66,
896  	       66,   66,   66,   66,   66,   66,   63,  115,  115,   75,
897  	       67,   76,   76,   76,   76,   72,  115,  460,   63,  115,
898  	       73,   73,   73,   73,  144,  144,  144,  144,  134,  115,
899  	      131,  131,  132,  132,  167,   65,  115,  507,   73,   73,
900  	       73,   73,   63,  407,   81,   81,   67,   82,   82,   82,
901  	       82,   72,  133,  115,   63,  115,   82,   82,   82,   82,
902  	       81,   81,   81,   81,   81,   81,   81,   81,   81,   81,
903  	       81,   65,  115,  115,   82,   82,   82,   82,   81,   81,
904  	       81,   81,   81,   81,   81,   81,   81,   81,   81,  507,
905  	
906  	      156,  157,  157,  157,   81,   81,   81,   81,  507,  115,
907  	      149,  149,  149,  149,  134,  115,  158,  158,  159,  159,
908  	      201,  115,   81,   81,   81,   81,  106,  106,  107,  107,
909  	      157,  157,  157,  157,  407,  108,  108,  108,  108,  134,
910  	      115,  159,  159,  159,  159,  134,  115,  161,  161,  161,
911  	      161,  213,  428,  108,  108,  108,  108,  112,  112,  112,
912  	      112,   66,   66,   66,   66,   72,  112,  112,  112,  112,
913  	      143,  426,  162,  162,   66,   66,   72,  134,  115,  132,
914  	      132,  132,  132,  217,  112,  112,  112,  112,  119,  119,
915  	      119,  119,  169,  170,  170,  170,  115,  119,  119,  119,
916  	
917  	      119,  507,  115,  168,  168,  168,  168,  143,  115,  171,
918  	      171,  171,  171,   72,  115,  119,  119,  119,  119,  136,
919  	      136,  137,  137,  172,  172,  172,  172,  115,  137,  137,
920  	      137,  137,  173,  173,  173,  173,  176,  176,  176,  176,
921  	      507,  115,  175,  175,  175,  175,  137,  137,  137,  137,
922  	      146,  115,  147,  147,  147,  147,  148,  193,  193,  193,
923  	      193,  149,  149,  149,  149,  181,  115,  182,  182,  182,
924  	      182,  183,  115,  182,  182,  182,  182,  251,  115,  149,
925  	      149,  149,  149,  150,  150,  150,  150,  115,  189,  189,
926  	      189,  189,  150,  150,  150,  150,  134,  115,  184,  184,
927  	
928  	       66,   66,  134,  115,   66,   66,   66,   66,  261,  115,
929  	      150,  150,  150,  150,  160,  160,  160,  160,  195,  195,
930  	       66,   66,  115,  160,  160,  160,  160,  134,  115,  185,
931  	      185,  185,  185,  143,  115,  162,  162,   66,   66,  265,
932  	      133,  160,  160,  160,  160,  146,  115,  166,  166,  166,
933  	      166,  167,  185,  185,  185,  185,  168,  168,  168,  168,
934  	      507,  115,  192,  192,  192,  192,  143,  115,  171,  171,
935  	      171,  171,  269,  115,  168,  168,  168,  168,  146,  115,
936  	      174,  174,  174,  174,  148,  206,  207,  207,  207,  175,
937  	      175,  175,  175,  196,  115,  197,  197,  197,  197,  146,
938  	
939  	      115,  207,  207,  207,  207,  148,  439,  175,  175,  175,
940  	      175,  146,  115,  191,  191,  191,  191,  167,  342,  364,
941  	      507,  115,  192,  192,  192,  192,  148,  507,  362,  202,
942  	      202,  202,  202,  183,  115,  208,  208,  208,  208,  308,
943  	      192,  192,  192,  192,  199,  115,  200,  200,  200,  200,
944  	      201,  184,  184,   66,   66,  202,  202,  202,  202,  185,
945  	      185,  185,  185,  507,  115,  214,  214,  214,  214,  184,
946  	      184,   66,   66,  202,  202,  202,  202,  146,  115,  212,
947  	      212,  212,  212,  213,  115,  342,  146,  115,  214,  214,
948  	      214,  214,  167,  507,  115,  255,  255,  255,  507,  167,
949  	
950  	      218,  218,  218,  218,  342,  285,  214,  214,  214,  214,
951  	      199,  115,  216,  216,  216,  216,  217,  219,  219,  219,
952  	      219,  218,  218,  218,  218,  196,  303,  220,  220,  220,
953  	      220,  221,  221,  221,  221,  224,  224,  224,  224,  218,
954  	      218,  218,  218,  199,  115,  222,  222,  222,  222,  201,
955  	      238,  238,  238,  238,  223,  223,  223,  223,  507,  301,
956  	      223,  223,  223,  223,  229,  230,  230,  230,  230,  115,
957  	      342,  285,  223,  223,  223,  223,  229,  230,  230,  230,
958  	      230,  183,  339,   66,   66,   66,   66,  115,  234,  234,
959  	      234,  234,  146,  115,  236,  236,  236,  236,  213,  242,
960  	
961  	      242,  242,  242,  237,  237,  237,  237,  507,  313,  237,
962  	      237,  237,  237,  507,  115,  241,  241,  241,  241,  315,
963  	      285,  237,  237,  237,  237,  199,  115,  240,  240,  240,
964  	      240,  217,  271,  271,  271,  271,  241,  241,  241,  241,
965  	      244,  233,  245,  245,  245,  245,  246,  129,  247,  247,
966  	      247,  247,  199,  115,  241,  241,  241,  241,  201,  507,
967  	      115,  273,  273,  273,  273,  201,  249,  115,  250,  250,
968  	      250,  250,  251,  275,  275,  275,  275,  252,  252,  252,
969  	      252,  507,  246,  252,  252,  252,  252,  229,  256,  256,
970  	      256,  256,  244,  285,  233,  252,  252,  252,  252,  146,
971  	
972  	      115,  260,  260,  260,  260,  261,  278,  278,  278,  278,
973  	      262,  262,  262,  262,  507,  280,  262,  262,  262,  262,
974  	      146,  115,  290,  290,  290,  290,  213,  259,  262,  262,
975  	      262,  262,  507,  115,  294,  294,  294,  294,  213,  199,
976  	      115,  264,  264,  264,  264,  265,  298,  298,  298,  298,
977  	      266,  266,  266,  266,  507,  233,  266,  266,  266,  266,
978  	      199,  115,  330,  330,  330,  330,  217,  188,  266,  266,
979  	      266,  266,  507,  115,  332,  332,  332,  332,  217,  249,
980  	      115,  268,  268,  268,  268,  269,  334,  334,  334,  334,
981  	      270,  270,  270,  270,  507,  254,  270,  270,  270,  270,
982  	
983  	      244,  115,  272,  272,  272,  272,  319,  253,  270,  270,
984  	      270,  270,  246,  196,  274,  274,  274,  274,  249,  115,
985  	      276,  276,  276,  276,  251,  337,  337,  337,  337,  277,
986  	      277,  277,  277,  507,  233,  277,  277,  277,  277,  129,
987  	      282,  282,  282,  282,  188,  228,  227,  277,  277,  277,
988  	      277,  229,   66,   66,   66,   66,  115,  286,  286,  286,
989  	      286,  146,  115,  288,  288,  288,  288,  261,  347,  347,
990  	      347,  347,  289,  289,  289,  289,  507,  226,  289,  289,
991  	      289,  289,  507,  115,  293,  293,  293,  293,  323,  211,
992  	      289,  289,  289,  289,  199,  115,  292,  292,  292,  292,
993  	
994  	      265,  351,  351,  351,  351,  293,  293,  293,  293,  507,
995  	      188,  297,  297,  297,  297,  115,  300,  300,  300,  300,
996  	      140,  205,  204,  293,  293,  293,  293,  249,  115,  296,
997  	      296,  296,  296,  269,  355,  355,  355,  355,  297,  297,
998  	      297,  297,  301,  203,  302,  302,  302,  302,  303,  188,
999  	      304,  304,  304,  304,  249,  115,  297,  297,  297,  297,
1000 	      251,  507,  115,  359,  359,  359,  359,  251,  306,  115,
1001 	      307,  307,  307,  307,  308,  395,  395,  395,  395,  309,
1002 	      309,  309,  309,  507,  140,  309,  309,  309,  309,  507,
1003 	      115,  316,  316,  316,  316,  327,  180,  309,  309,  309,
1004 	
1005 	      309,  146,  115,  314,  314,  314,  314,  315,  179,  178,
1006 	      146,  115,  316,  316,  316,  316,  261,  507,  115,   72,
1007 	      165,  140,  507,  261,  320,  320,  320,  320,  155,  154,
1008 	      316,  316,  316,  316,  199,  115,  318,  318,  318,  318,
1009 	      319,  153,   94,  199,  115,  320,  320,  320,  320,  265,
1010 	      507,  115,  143,  140,  129,  507,  265,  324,  324,  324,
1011 	      324,  128,  127,  320,  320,  320,  320,  249,  115,  322,
1012 	      322,  322,  322,  323,  126,  125,  249,  115,  324,  324,
1013 	      324,  324,  269,  507,  115,   94,  507,  507,  507,  269,
1014 	      328,  328,  328,  328,   84,  113,  324,  324,  324,  324,
1015 	
1016 	      306,  115,  326,  326,  326,  326,  327,  397,  397,  397,
1017 	      397,  328,  328,  328,  328,  115,  329,  329,  329,  329,
1018 	      301,  115,  331,  331,  331,  331,  369,  111,  103,  328,
1019 	      328,  328,  328,  303,   89,  333,  333,  333,  333,  306,
1020 	      115,  335,  335,  335,  335,  308,  399,  399,  399,  399,
1021 	      336,  336,  336,  336,  507,   62,  336,  336,  336,  336,
1022 	      115,  343,  343,  343,  343,   98,   97,   53,  336,  336,
1023 	      336,  336,  146,  115,  345,  345,  345,  345,  315,  402,
1024 	      402,  402,  402,  346,  346,  346,  346,  507,   96,  346,
1025 	      346,  346,  346,  507,  115,  350,  350,  350,  350,  376,
1026 	
1027 	       95,  346,  346,  346,  346,  199,  115,  349,  349,  349,
1028 	      349,  319,  435,  435,  435,  435,  350,  350,  350,  350,
1029 	      507,  507,  354,  354,  354,  354,  507,  115,  358,  358,
1030 	      358,  358,  380,   94,  350,  350,  350,  350,  249,  115,
1031 	      353,  353,  353,  353,  323,  452,  452,  452,  452,  354,
1032 	      354,  354,  354,  115,  361,  361,  361,  361,  362,  115,
1033 	      363,  363,  363,  363,  384,   92,   89,  354,  354,  354,
1034 	      354,  306,  115,  357,  357,  357,  357,  327,  454,  454,
1035 	      454,  454,  358,  358,  358,  358,  364,   78,  365,  365,
1036 	      365,  365,  306,  115,  456,  456,  456,  456,  308,   77,
1037 	
1038 	      358,  358,  358,  358,  507,  115,  477,  477,  477,  477,
1039 	      308,  367,  115,  368,  368,  368,  368,  369,  487,  487,
1040 	      487,  487,  370,  370,  370,  370,  507,   62,  370,  370,
1041 	      370,  370,  372,  372,  372,  372,  373,   53,  507,  507,
1042 	      370,  370,  370,  370,  146,  115,  375,  375,  375,  375,
1043 	      376,  489,  489,  489,  489,  377,  377,  377,  377,  507,
1044 	      507,  377,  377,  377,  377,  146,  115,  115,  507,  507,
1045 	      507,  315,  388,  377,  377,  377,  377,  507,  115,  498,
1046 	      498,  498,  498,  315,  199,  115,  379,  379,  379,  379,
1047 	      380,  501,  501,  501,  501,  381,  381,  381,  381,  507,
1048 	
1049 	      507,  381,  381,  381,  381,  199,  115,  115,  507,  507,
1050 	      507,  319,  392,  381,  381,  381,  381,  507,  115,  507,
1051 	      507,  507,  507,  319,  249,  115,  383,  383,  383,  383,
1052 	      384,  507,  507,  507,  507,  385,  385,  385,  385,  507,
1053 	      507,  385,  385,  385,  385,  249,  115,  115,  507,  507,
1054 	      507,  323,  433,  385,  385,  385,  385,  507,  115,  507,
1055 	      507,  507,  507,  323,  306,  115,  387,  387,  387,  387,
1056 	      388,  507,  507,  507,  507,  389,  389,  389,  389,  507,
1057 	      507,  389,  389,  389,  389,  306,  115,  507,  507,  507,
1058 	      507,  327,  507,  389,  389,  389,  389,  507,  115,  507,
1059 	
1060 	      507,  507,  507,  327,  367,  115,  391,  391,  391,  391,
1061 	      392,  507,  507,  507,  507,  393,  393,  393,  393,  507,
1062 	      507,  393,  393,  393,  393,  115,  394,  394,  394,  394,
1063 	      507,  507,  507,  393,  393,  393,  393,  362,  507,  396,
1064 	      396,  396,  396,  364,  507,  398,  398,  398,  398,  367,
1065 	      115,  400,  400,  400,  400,  369,  507,  507,  507,  507,
1066 	      401,  401,  401,  401,  507,  507,  401,  401,  401,  401,
1067 	      507,  507,  408,  408,  408,  408,  507,  507,  401,  401,
1068 	      401,  401,  405,  507,  406,  406,  406,  406,  407,  507,
1069 	      507,  507,  507,  408,  408,  408,  408,  507,  507,  411,
1070 	
1071 	      411,  411,  411,  507,  507,  414,  414,  414,  414,  507,
1072 	      507,  408,  408,  408,  408,  146,  115,  410,  410,  410,
1073 	      410,  376,  507,  507,  507,  507,  411,  411,  411,  411,
1074 	      507,  507,  417,  417,  417,  417,  507,  507,  420,  420,
1075 	      420,  420,  507,  507,  411,  411,  411,  411,  199,  115,
1076 	      413,  413,  413,  413,  380,  507,  507,  507,  507,  414,
1077 	      414,  414,  414,  507,  507,  423,  423,  423,  423,  115,
1078 	      425,  425,  425,  425,  507,  507,  507,  414,  414,  414,
1079 	      414,  249,  115,  416,  416,  416,  416,  384,  507,  507,
1080 	      507,  507,  417,  417,  417,  417,  426,  507,  427,  427,
1081 	
1082 	      427,  427,  428,  507,  429,  429,  429,  429,  507,  507,
1083 	      417,  417,  417,  417,  306,  115,  419,  419,  419,  419,
1084 	      388,  507,  507,  367,  115,  420,  420,  420,  420,  369,
1085 	      507,  115,  507,  507,  507,  507,  369,  434,  434,  434,
1086 	      434,  507,  507,  420,  420,  420,  420,  367,  115,  422,
1087 	      422,  422,  422,  392,  507,  507,  507,  507,  423,  423,
1088 	      423,  423,  507,  507,  437,  437,  437,  437,  146,  115,
1089 	      507,  507,  507,  507,  376,  507,  423,  423,  423,  423,
1090 	      431,  115,  432,  432,  432,  432,  433,  507,  507,  507,
1091 	      115,  434,  434,  434,  434,  376,  199,  115,  507,  115,
1092 	
1093 	      249,  115,  380,  507,  380,  507,  384,  507,  507,  434,
1094 	      434,  434,  434,  405,  507,  436,  436,  436,  436,  407,
1095 	      507,  507,  507,  115,  437,  437,  437,  437,  384,  306,
1096 	      115,  507,  115,  367,  115,  388,  507,  388,  507,  392,
1097 	      507,  115,  437,  437,  437,  437,  392,  115,  451,  451,
1098 	      451,  451,  426,  507,  453,  453,  453,  453,  428,  507,
1099 	      455,  455,  455,  455,  431,  115,  457,  457,  457,  457,
1100 	      433,  507,  507,  507,  507,  458,  458,  458,  458,  507,
1101 	      507,  458,  458,  458,  458,  460,  507,  461,  461,  461,
1102 	      461,  507,  507,  458,  458,  458,  458,  115,  470,  470,
1103 	
1104 	      470,  470,  471,  507,  472,  472,  472,  472,  473,  507,
1105 	      474,  474,  474,  474,  431,  115,  507,  115,  507,  507,
1106 	      433,  460,  433,  478,  478,  478,  478,  115,  486,  486,
1107 	      486,  486,  471,  507,  488,  488,  488,  488,  473,  507,
1108 	      490,  490,  490,  490,  492,  507,  493,  493,  493,  493,
1109 	      115,  494,  494,  494,  494,  495,  507,  496,  496,  496,
1110 	      496,  492,  507,  499,  499,  499,  499,  115,  500,  500,
1111 	      500,  500,  495,  507,  502,  502,  502,  502,  115,  503,
1112 	      503,  503,  503,  115,  504,  504,  504,  504,  115,  505,
1113 	      505,  505,  505,  115,  506,  506,  506,  506,   14,   14,
1114 	
1115 	       14,   14,   14,   14,   14,   14,   14,   14,   14,   52,
1116 	       52,   52,   52,   52,   52,   52,   52,   52,   52,   52,
1117 	       56,  507,  507,   56,  507,   56,   56,   57,  507,  507,
1118 	       57,  507,   57,   57,   58,   58,   58,   58,   58,   58,
1119 	       58,   58,   58,   58,   58,   61,   61,   61,   61,   61,
1120 	       61,   61,   61,   61,   61,   61,   64,   64,   64,  507,
1121 	       64,  507,   64,   64,   66,   66,   66,   66,   66,  507,
1122 	       66,   66,   68,   68,  507,   68,  507,   68,   68,   79,
1123 	       79,   79,  507,   79,  507,   79,   79,   80,   80,   90,
1124 	      507,  507,   90,   90,  507,   90,  507,   90,   90,   91,
1125 	
1126 	       91,   91,   91,  507,   91,   91,   93,   93,   93,   93,
1127 	      507,   93,   93,   99,   99,   99,   99,   99,   99,   99,
1128 	       99,   99,   99,   99,  102,  102,  507,  102,  507,  102,
1129 	      102,  110,  110,  110,  117,  117,  507,  117,  118,  118,
1130 	      507,  118,  507,  118,  118,  124,  124,  507,  124,  507,
1131 	      124,  124,  139,  139,  139,  142,  142,  507,  142,  152,
1132 	      152,  507,  152,  507,  152,  152,  163,  163,  163,  164,
1133 	      164,  164,  177,  507,  177,  186,  186,  186,  187,  187,
1134 	      187,  190,  190,  507,  190,  194,  507,  194,  198,  198,
1135 	      198,  198,  198,  209,  209,  209,  210,  210,  210,  215,
1136 	
1137 	      215,  215,  215,  215,  225,  507,  225,  231,  231,  231,
1138 	      232,  232,  232,  235,  235,  507,  235,  239,  507,  239,
1139 	      243,  507,  243,  248,  248,  248,  248,  248,  102,  102,
1140 	      507,  102,  507,  102,  102,  257,  257,  257,  258,  258,
1141 	      258,  263,  263,  263,  263,  263,  267,  267,  267,  267,
1142 	      267,  279,  507,  279,  281,  507,  281,  281,  281,  281,
1143 	      507,  281,  281,  283,  283,  283,  284,  284,  284,  287,
1144 	      287,  507,  287,  291,  507,  291,  295,  507,  295,  299,
1145 	      507,  299,  305,  305,  305,  305,  305,  310,  507,  310,
1146 	      310,  310,  310,  507,  310,  310,  311,  311,  311,  312,
1147 	
1148 	      312,  312,  317,  317,  317,  317,  317,  321,  321,  321,
1149 	      321,  321,  325,  325,  325,  325,  325,  338,  507,  338,
1150 	      340,  340,  340,  341,  341,  341,  344,  344,  507,  344,
1151 	      348,  507,  348,  352,  507,  352,  356,  507,  356,  360,
1152 	      507,  360,  366,  366,  366,  366,  366,  371,  371,  371,
1153 	      374,  374,  374,  378,  378,  378,  378,  378,  382,  382,
1154 	      382,  382,  382,  386,  386,  386,  386,  386,  390,  390,
1155 	      390,  390,  390,  403,  507,  403,  404,  404,  404,  409,
1156 	      409,  507,  409,  412,  507,  412,  415,  507,  415,  418,
1157 	      507,  418,  421,  507,  421,  424,  507,  424,  430,  430,
1158 	
1159 	      430,  430,  430,  438,  438,  438,  440,  440,  507,  440,
1160 	      441,  441,  441,  441,  441,  442,  442,  507,  442,  443,
1161 	      443,  443,  443,  443,  444,  444,  507,  444,  445,  445,
1162 	      445,  445,  445,  446,  446,  507,  446,  447,  447,  447,
1163 	      447,  447,  448,  448,  507,  448,  449,  449,  449,  449,
1164 	      449,  450,  450,  507,  450,  459,  507,  459,  462,  507,
1165 	      462,  462,  462,  463,  463,  507,  463,  464,  464,  507,
1166 	      464,  465,  465,  507,  465,  466,  466,  507,  466,  467,
1167 	      467,  507,  467,  468,  468,  507,  468,  469,  469,  507,
1168 	      469,  475,  475,  475,  475,  475,  476,  476,  507,  476,
1169 	
1170 	      479,  479,  507,  479,  480,  480,  507,  480,  481,  481,
1171 	      507,  481,  482,  482,  507,  482,  483,  483,  507,  483,
1172 	      484,  484,  507,  484,  485,  485,  507,  485,  491,  491,
1173 	      507,  491,  439,  439,  507,  439,  497,  497,  507,  497,
1174 	       13,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1175 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1176 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1177 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1178 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1179 	      507,  507,  507,  507,  507,  507
1180 	
1181 	    } ;
1182 	
1183 	static const flex_int16_t yy_chk[2997] =
1184 	    {   0,
1185 	        0,    1,    1,    2,    2,    1,   26,    2,    0,    0,
1186 	        1,   28,    2,   29,   30,   36,  506,   29,   30,    1,
1187 	        1,    2,    2,   28,  505,   29,   30,   36,   39,   42,
1188 	       41,   71,   42,   71,   71,   76,   76,   76,   76,  502,
1189 	       28,   26,   29,   30,   36,   23,   39,  500,   41,  499,
1190 	       42,   23,    1,    1,    2,    2,    3,    3,    3,    3,
1191 	        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1192 	        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1193 	        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1194 	        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1195 	
1196 	        3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
1197 	        3,    5,   73,   91,   73,   73,   73,   73,   77,   77,
1198 	       77,   77,   91,  497,  491,   44,   43,   83,    5,    5,
1199 	        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
1200 	        5,    5,    5,   43,   44,   83,    5,    5,    5,    5,
1201 	        5,    5,    5,    5,    5,    5,    5,    7,    7,    7,
1202 	        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
1203 	        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
1204 	        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
1205 	        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
1206 	
1207 	        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
1208 	        7,    7,    9,    9,    9,    9,    9,    9,    9,    9,
1209 	        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1210 	        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1211 	        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1212 	        9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
1213 	        9,    9,    9,    9,    9,    9,    9,   11,   11,   58,
1214 	       11,   11,   60,  152,   60,  198,   11,   63,   64,   66,
1215 	      198,   87,  152,   66,   88,   11,   11,   79,   69,   63,
1216 	       64,   66,   69,   69,   69,   69,   69,   87,   90,   79,
1217 	
1218 	       69,   88,   99,  121,   58,  100,   63,   64,   66,   60,
1219 	       78,   78,   78,   78,   78,   11,   79,   69,   11,   11,
1220 	       12,   12,  121,   12,   12,  101,  490,  101,  104,   12,
1221 	      104,  104,  104,  104,  488,   90,  436,   99,   12,   12,
1222 	      100,  105,  436,  105,  105,  105,  105,  107,  486,  107,
1223 	      107,  108,  104,  108,  108,  109,  109,  109,  109,  115,
1224 	      115,  115,  101,  111,  111,  111,  111,  111,   12,  120,
1225 	      485,   12,   12,   32,  484,   32,   32,   32,   32,   32,
1226 	       32,   32,   32,  483,  151,   32,  120,   32,   32,   32,
1227 	       32,   32,   32,   32,   32,   32,   32,   32,   32,   32,
1228 	
1229 	       32,   32,   32,  151,  482,   32,   32,   32,   32,   32,
1230 	       32,   32,   32,   32,   32,   32,   33,  481,  480,   33,
1231 	       33,   33,   33,   33,   33,   33,  479,  478,   33,  476,
1232 	       33,   33,   33,   33,  114,  114,  114,  114,  113,  215,
1233 	      113,  113,  113,  113,  215,   33,  469,  437,   33,   33,
1234 	       33,   33,   38,  437,   38,   38,   38,   38,   38,   38,
1235 	       38,   38,  113,  468,   38,  467,   38,   38,   38,   38,
1236 	       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
1237 	       38,   38,  466,  465,   38,   38,   38,   38,   38,   38,
1238 	       38,   38,   38,   38,   38,   40,   40,   40,   40,   40,
1239 	
1240 	      130,  130,  130,  130,   40,   40,   40,   40,  117,  464,
1241 	      117,  117,  117,  117,  131,  248,  131,  131,  131,  131,
1242 	      248,  463,   40,   40,   40,   40,   70,   70,   70,   70,
1243 	      134,  134,  134,  134,  462,   70,   70,   70,   70,  132,
1244 	      459,  132,  132,  132,  132,  135,  263,  135,  135,  135,
1245 	      135,  263,  455,   70,   70,   70,   70,   74,   74,   74,
1246 	       74,  137,  137,  137,  137,  137,   74,   74,   74,   74,
1247 	      136,  453,  136,  136,  136,  136,  136,  138,  267,  138,
1248 	      138,  138,  138,  267,   74,   74,   74,   74,   82,   82,
1249 	       82,   82,  143,  143,  143,  143,  451,   82,   82,   82,
1250 	
1251 	       82,  142,  450,  142,  142,  142,  142,  144,  448,  144,
1252 	      144,  144,  144,  144,  446,   82,   82,   82,   82,  106,
1253 	      106,  106,  106,  145,  145,  145,  145,  444,  106,  106,
1254 	      106,  106,  146,  146,  146,  146,  148,  148,  148,  148,
1255 	      149,  442,  149,  149,  149,  149,  106,  106,  106,  106,
1256 	      116,  116,  116,  116,  116,  116,  116,  167,  167,  167,
1257 	      167,  116,  116,  116,  116,  156,  440,  156,  156,  156,
1258 	      156,  157,  305,  157,  157,  157,  157,  305,  439,  116,
1259 	      116,  116,  116,  119,  119,  119,  119,  165,  165,  165,
1260 	      165,  165,  119,  119,  119,  119,  158,  438,  158,  158,
1261 	
1262 	      158,  158,  159,  317,  159,  159,  159,  159,  317,  424,
1263 	      119,  119,  119,  119,  133,  133,  133,  133,  169,  169,
1264 	      169,  169,  421,  133,  133,  133,  133,  161,  418,  161,
1265 	      161,  161,  161,  162,  321,  162,  162,  162,  162,  321,
1266 	      169,  133,  133,  133,  133,  141,  141,  141,  141,  141,
1267 	      141,  141,  170,  170,  170,  170,  141,  141,  141,  141,
1268 	      168,  415,  168,  168,  168,  168,  171,  325,  171,  171,
1269 	      171,  171,  325,  412,  141,  141,  141,  141,  147,  147,
1270 	      147,  147,  147,  147,  147,  181,  181,  181,  181,  147,
1271 	      147,  147,  147,  173,  409,  173,  173,  173,  173,  174,
1272 	
1273 	      174,  183,  183,  183,  183,  174,  407,  147,  147,  147,
1274 	      147,  166,  166,  166,  166,  166,  166,  166,  404,  398,
1275 	      175,  175,  166,  166,  166,  166,  175,  177,  396,  177,
1276 	      177,  177,  177,  182,  366,  182,  182,  182,  182,  366,
1277 	      166,  166,  166,  166,  176,  176,  176,  176,  176,  176,
1278 	      176,  184,  184,  184,  184,  176,  176,  176,  176,  185,
1279 	      185,  185,  185,  190,  394,  190,  190,  190,  190,  195,
1280 	      195,  195,  195,  176,  176,  176,  176,  189,  189,  189,
1281 	      189,  189,  189,  189,  373,  371,  191,  191,  189,  189,
1282 	      189,  189,  191,  192,  192,  229,  229,  229,  194,  192,
1283 	
1284 	      194,  194,  194,  194,  341,  340,  189,  189,  189,  189,
1285 	      193,  193,  193,  193,  193,  193,  193,  196,  196,  196,
1286 	      196,  193,  193,  193,  193,  197,  333,  197,  197,  197,
1287 	      197,  199,  199,  199,  199,  201,  201,  201,  201,  193,
1288 	      193,  193,  193,  200,  200,  200,  200,  200,  200,  200,
1289 	      213,  213,  213,  213,  200,  200,  200,  200,  202,  331,
1290 	      202,  202,  202,  202,  206,  206,  206,  206,  206,  329,
1291 	      312,  311,  200,  200,  200,  200,  207,  207,  207,  207,
1292 	      207,  208,  310,  208,  208,  208,  208,  211,  211,  211,
1293 	      211,  211,  212,  212,  212,  212,  212,  212,  212,  217,
1294 	
1295 	      217,  217,  217,  212,  212,  212,  212,  214,  285,  214,
1296 	      214,  214,  214,  218,  378,  218,  218,  218,  218,  378,
1297 	      284,  212,  212,  212,  212,  216,  216,  216,  216,  216,
1298 	      216,  216,  244,  244,  244,  244,  216,  216,  216,  216,
1299 	      219,  283,  219,  219,  219,  219,  221,  282,  221,  221,
1300 	      221,  221,  222,  222,  216,  216,  216,  216,  222,  223,
1301 	      223,  246,  246,  246,  246,  223,  224,  224,  224,  224,
1302 	      224,  224,  224,  249,  249,  249,  249,  224,  224,  224,
1303 	      224,  225,  274,  225,  225,  225,  225,  230,  230,  230,
1304 	      230,  230,  272,  258,  257,  224,  224,  224,  224,  234,
1305 	
1306 	      234,  234,  234,  234,  234,  234,  251,  251,  251,  251,
1307 	      234,  234,  234,  234,  235,  253,  235,  235,  235,  235,
1308 	      236,  236,  261,  261,  261,  261,  236,  233,  234,  234,
1309 	      234,  234,  237,  237,  265,  265,  265,  265,  237,  238,
1310 	      238,  238,  238,  238,  238,  238,  269,  269,  269,  269,
1311 	      238,  238,  238,  238,  239,  232,  239,  239,  239,  239,
1312 	      240,  240,  301,  301,  301,  301,  240,  231,  238,  238,
1313 	      238,  238,  241,  241,  303,  303,  303,  303,  241,  242,
1314 	      242,  242,  242,  242,  242,  242,  306,  306,  306,  306,
1315 	      242,  242,  242,  242,  243,  227,  243,  243,  243,  243,
1316 	
1317 	      245,  382,  245,  245,  245,  245,  382,  226,  242,  242,
1318 	      242,  242,  247,  220,  247,  247,  247,  247,  250,  250,
1319 	      250,  250,  250,  250,  250,  308,  308,  308,  308,  250,
1320 	      250,  250,  250,  252,  210,  252,  252,  252,  252,  255,
1321 	      255,  255,  255,  255,  209,  205,  204,  250,  250,  250,
1322 	      250,  256,  256,  256,  256,  256,  259,  259,  259,  259,
1323 	      259,  260,  260,  260,  260,  260,  260,  260,  315,  315,
1324 	      315,  315,  260,  260,  260,  260,  262,  203,  262,  262,
1325 	      262,  262,  266,  386,  266,  266,  266,  266,  386,  188,
1326 	      260,  260,  260,  260,  264,  264,  264,  264,  264,  264,
1327 	
1328 	      264,  319,  319,  319,  319,  264,  264,  264,  264,  270,
1329 	      187,  270,  270,  270,  270,  271,  271,  271,  271,  271,
1330 	      186,  180,  179,  264,  264,  264,  264,  268,  268,  268,
1331 	      268,  268,  268,  268,  323,  323,  323,  323,  268,  268,
1332 	      268,  268,  273,  178,  273,  273,  273,  273,  275,  164,
1333 	      275,  275,  275,  275,  276,  276,  268,  268,  268,  268,
1334 	      276,  277,  277,  327,  327,  327,  327,  277,  278,  278,
1335 	      278,  278,  278,  278,  278,  362,  362,  362,  362,  278,
1336 	      278,  278,  278,  279,  163,  279,  279,  279,  279,  287,
1337 	      390,  287,  287,  287,  287,  390,  155,  278,  278,  278,
1338 	
1339 	      278,  286,  286,  286,  286,  286,  286,  286,  154,  153,
1340 	      288,  288,  286,  286,  286,  286,  288,  289,  289,  150,
1341 	      140,  139,  291,  289,  291,  291,  291,  291,  127,  126,
1342 	      286,  286,  286,  286,  290,  290,  290,  290,  290,  290,
1343 	      290,  125,  124,  292,  292,  290,  290,  290,  290,  292,
1344 	      293,  293,  112,  110,  102,  295,  293,  295,  295,  295,
1345 	      295,   98,   97,  290,  290,  290,  290,  294,  294,  294,
1346 	      294,  294,  294,  294,   96,   95,  296,  296,  294,  294,
1347 	      294,  294,  296,  297,  297,   93,   92,   89,  299,  297,
1348 	      299,  299,  299,  299,   85,   75,  294,  294,  294,  294,
1349 	
1350 	      298,  298,  298,  298,  298,  298,  298,  364,  364,  364,
1351 	      364,  298,  298,  298,  298,  300,  300,  300,  300,  300,
1352 	      302,  430,  302,  302,  302,  302,  430,   72,   68,  298,
1353 	      298,  298,  298,  304,   65,  304,  304,  304,  304,  307,
1354 	      307,  307,  307,  307,  307,  307,  367,  367,  367,  367,
1355 	      307,  307,  307,  307,  309,   61,  309,  309,  309,  309,
1356 	      313,  313,  313,  313,  313,   55,   54,   52,  307,  307,
1357 	      307,  307,  314,  314,  314,  314,  314,  314,  314,  369,
1358 	      369,  369,  369,  314,  314,  314,  314,  316,   51,  316,
1359 	      316,  316,  316,  320,  441,  320,  320,  320,  320,  441,
1360 	
1361 	       50,  314,  314,  314,  314,  318,  318,  318,  318,  318,
1362 	      318,  318,  405,  405,  405,  405,  318,  318,  318,  318,
1363 	      324,   49,  324,  324,  324,  324,  328,  443,  328,  328,
1364 	      328,  328,  443,   48,  318,  318,  318,  318,  322,  322,
1365 	      322,  322,  322,  322,  322,  426,  426,  426,  426,  322,
1366 	      322,  322,  322,  330,  330,  330,  330,  330,  332,  445,
1367 	      332,  332,  332,  332,  445,   47,   45,  322,  322,  322,
1368 	      322,  326,  326,  326,  326,  326,  326,  326,  428,  428,
1369 	      428,  428,  326,  326,  326,  326,  334,   35,  334,  334,
1370 	      334,  334,  335,  335,  431,  431,  431,  431,  335,   34,
1371 	
1372 	      326,  326,  326,  326,  336,  336,  460,  460,  460,  460,
1373 	      336,  337,  337,  337,  337,  337,  337,  337,  471,  471,
1374 	      471,  471,  337,  337,  337,  337,  338,   27,  338,  338,
1375 	      338,  338,  342,  342,  342,  342,  342,   17,   13,    0,
1376 	      337,  337,  337,  337,  343,  343,  343,  343,  343,  343,
1377 	      343,  473,  473,  473,  473,  343,  343,  343,  343,  344,
1378 	        0,  344,  344,  344,  344,  345,  345,  447,    0,    0,
1379 	        0,  345,  447,  343,  343,  343,  343,  346,  346,  492,
1380 	      492,  492,  492,  346,  347,  347,  347,  347,  347,  347,
1381 	      347,  495,  495,  495,  495,  347,  347,  347,  347,  348,
1382 	
1383 	        0,  348,  348,  348,  348,  349,  349,  449,    0,    0,
1384 	        0,  349,  449,  347,  347,  347,  347,  350,  350,    0,
1385 	        0,    0,    0,  350,  351,  351,  351,  351,  351,  351,
1386 	      351,    0,    0,    0,    0,  351,  351,  351,  351,  352,
1387 	        0,  352,  352,  352,  352,  353,  353,  475,    0,    0,
1388 	        0,  353,  475,  351,  351,  351,  351,  354,  354,    0,
1389 	        0,    0,    0,  354,  355,  355,  355,  355,  355,  355,
1390 	      355,    0,    0,    0,    0,  355,  355,  355,  355,  356,
1391 	        0,  356,  356,  356,  356,  357,  357,    0,    0,    0,
1392 	        0,  357,    0,  355,  355,  355,  355,  358,  358,    0,
1393 	
1394 	        0,    0,    0,  358,  359,  359,  359,  359,  359,  359,
1395 	      359,    0,    0,    0,    0,  359,  359,  359,  359,  360,
1396 	        0,  360,  360,  360,  360,  361,  361,  361,  361,  361,
1397 	        0,    0,    0,  359,  359,  359,  359,  363,    0,  363,
1398 	      363,  363,  363,  365,    0,  365,  365,  365,  365,  368,
1399 	      368,  368,  368,  368,  368,  368,    0,    0,    0,    0,
1400 	      368,  368,  368,  368,  370,    0,  370,  370,  370,  370,
1401 	      374,    0,  374,  374,  374,  374,    0,    0,  368,  368,
1402 	      368,  368,  372,    0,  372,  372,  372,  372,  372,    0,
1403 	        0,    0,    0,  372,  372,  372,  372,  377,    0,  377,
1404 	
1405 	      377,  377,  377,  381,    0,  381,  381,  381,  381,    0,
1406 	        0,  372,  372,  372,  372,  375,  375,  375,  375,  375,
1407 	      375,  375,    0,    0,    0,    0,  375,  375,  375,  375,
1408 	      385,    0,  385,  385,  385,  385,  389,    0,  389,  389,
1409 	      389,  389,    0,    0,  375,  375,  375,  375,  379,  379,
1410 	      379,  379,  379,  379,  379,    0,    0,    0,    0,  379,
1411 	      379,  379,  379,  393,    0,  393,  393,  393,  393,  395,
1412 	      395,  395,  395,  395,    0,    0,    0,  379,  379,  379,
1413 	      379,  383,  383,  383,  383,  383,  383,  383,    0,    0,
1414 	        0,    0,  383,  383,  383,  383,  397,    0,  397,  397,
1415 	
1416 	      397,  397,  399,    0,  399,  399,  399,  399,    0,    0,
1417 	      383,  383,  383,  383,  387,  387,  387,  387,  387,  387,
1418 	      387,    0,    0,  400,  400,  387,  387,  387,  387,  400,
1419 	      401,  401,    0,    0,    0,  403,  401,  403,  403,  403,
1420 	      403,    0,    0,  387,  387,  387,  387,  391,  391,  391,
1421 	      391,  391,  391,  391,    0,    0,    0,    0,  391,  391,
1422 	      391,  391,  408,    0,  408,  408,  408,  408,  410,  410,
1423 	        0,    0,    0,    0,  410,    0,  391,  391,  391,  391,
1424 	      402,  402,  402,  402,  402,  402,  402,    0,    0,  411,
1425 	      411,  402,  402,  402,  402,  411,  413,  413,  414,  414,
1426 	
1427 	      416,  416,  413,    0,  414,    0,  416,    0,    0,  402,
1428 	      402,  402,  402,  406,    0,  406,  406,  406,  406,  406,
1429 	        0,    0,  417,  417,  406,  406,  406,  406,  417,  419,
1430 	      419,  420,  420,  422,  422,  419,    0,  420,    0,  422,
1431 	      423,  423,  406,  406,  406,  406,  423,  425,  425,  425,
1432 	      425,  425,  427,    0,  427,  427,  427,  427,  429,    0,
1433 	      429,  429,  429,  429,  432,  432,  432,  432,  432,  432,
1434 	      432,    0,    0,    0,    0,  432,  432,  432,  432,  434,
1435 	        0,  434,  434,  434,  434,  435,    0,  435,  435,  435,
1436 	      435,    0,    0,  432,  432,  432,  432,  452,  452,  452,
1437 	
1438 	      452,  452,  454,    0,  454,  454,  454,  454,  456,    0,
1439 	      456,  456,  456,  456,  457,  457,  458,  458,    0,    0,
1440 	      457,  461,  458,  461,  461,  461,  461,  470,  470,  470,
1441 	      470,  470,  472,    0,  472,  472,  472,  472,  474,    0,
1442 	      474,  474,  474,  474,  477,    0,  477,  477,  477,  477,
1443 	      487,  487,  487,  487,  487,  489,    0,  489,  489,  489,
1444 	      489,  493,    0,  493,  493,  493,  493,  494,  494,  494,
1445 	      494,  494,  496,    0,  496,  496,  496,  496,  498,  498,
1446 	      498,  498,  498,  501,  501,  501,  501,  501,  503,  503,
1447 	      503,  503,  503,  504,  504,  504,  504,  504,  508,  508,
1448 	
1449 	      508,  508,  508,  508,  508,  508,  508,  508,  508,  509,
1450 	      509,  509,  509,  509,  509,  509,  509,  509,  509,  509,
1451 	      510,    0,    0,  510,    0,  510,  510,  511,    0,    0,
1452 	      511,    0,  511,  511,  512,  512,  512,  512,  512,  512,
1453 	      512,  512,  512,  512,  512,  513,  513,  513,  513,  513,
1454 	      513,  513,  513,  513,  513,  513,  514,  514,  514,    0,
1455 	      514,    0,  514,  514,  515,  515,  515,  515,  515,    0,
1456 	      515,  515,  516,  516,    0,  516,    0,  516,  516,  517,
1457 	      517,  517,    0,  517,    0,  517,  517,  518,  518,  519,
1458 	        0,    0,  519,  519,    0,  519,    0,  519,  519,  520,
1459 	
1460 	      520,  520,  520,    0,  520,  520,  521,  521,  521,  521,
1461 	        0,  521,  521,  522,  522,  522,  522,  522,  522,  522,
1462 	      522,  522,  522,  522,  523,  523,    0,  523,    0,  523,
1463 	      523,  524,  524,  524,  525,  525,    0,  525,  526,  526,
1464 	        0,  526,    0,  526,  526,  527,  527,    0,  527,    0,
1465 	      527,  527,  528,  528,  528,  529,  529,    0,  529,  530,
1466 	      530,    0,  530,    0,  530,  530,  531,  531,  531,  532,
1467 	      532,  532,  533,    0,  533,  534,  534,  534,  535,  535,
1468 	      535,  536,  536,    0,  536,  537,    0,  537,  538,  538,
1469 	      538,  538,  538,  539,  539,  539,  540,  540,  540,  541,
1470 	
1471 	      541,  541,  541,  541,  542,    0,  542,  543,  543,  543,
1472 	      544,  544,  544,  545,  545,    0,  545,  546,    0,  546,
1473 	      547,    0,  547,  548,  548,  548,  548,  548,  549,  549,
1474 	        0,  549,    0,  549,  549,  550,  550,  550,  551,  551,
1475 	      551,  552,  552,  552,  552,  552,  553,  553,  553,  553,
1476 	      553,  554,    0,  554,  555,    0,  555,  555,  555,  555,
1477 	        0,  555,  555,  556,  556,  556,  557,  557,  557,  558,
1478 	      558,    0,  558,  559,    0,  559,  560,    0,  560,  561,
1479 	        0,  561,  562,  562,  562,  562,  562,  563,    0,  563,
1480 	      563,  563,  563,    0,  563,  563,  564,  564,  564,  565,
1481 	
1482 	      565,  565,  566,  566,  566,  566,  566,  567,  567,  567,
1483 	      567,  567,  568,  568,  568,  568,  568,  569,    0,  569,
1484 	      570,  570,  570,  571,  571,  571,  572,  572,    0,  572,
1485 	      573,    0,  573,  574,    0,  574,  575,    0,  575,  576,
1486 	        0,  576,  577,  577,  577,  577,  577,  578,  578,  578,
1487 	      579,  579,  579,  580,  580,  580,  580,  580,  581,  581,
1488 	      581,  581,  581,  582,  582,  582,  582,  582,  583,  583,
1489 	      583,  583,  583,  584,    0,  584,  585,  585,  585,  586,
1490 	      586,    0,  586,  587,    0,  587,  588,    0,  588,  589,
1491 	        0,  589,  590,    0,  590,  591,    0,  591,  592,  592,
1492 	
1493 	      592,  592,  592,  593,  593,  593,  594,  594,    0,  594,
1494 	      595,  595,  595,  595,  595,  596,  596,    0,  596,  597,
1495 	      597,  597,  597,  597,  598,  598,    0,  598,  599,  599,
1496 	      599,  599,  599,  600,  600,    0,  600,  601,  601,  601,
1497 	      601,  601,  602,  602,    0,  602,  603,  603,  603,  603,
1498 	      603,  604,  604,    0,  604,  605,    0,  605,  606,    0,
1499 	      606,  606,  606,  607,  607,    0,  607,  608,  608,    0,
1500 	      608,  609,  609,    0,  609,  610,  610,    0,  610,  611,
1501 	      611,    0,  611,  612,  612,    0,  612,  613,  613,    0,
1502 	      613,  614,  614,  614,  614,  614,  615,  615,    0,  615,
1503 	
1504 	      616,  616,    0,  616,  617,  617,    0,  617,  618,  618,
1505 	        0,  618,  619,  619,    0,  619,  620,  620,    0,  620,
1506 	      621,  621,    0,  621,  622,  622,    0,  622,  623,  623,
1507 	        0,  623,  624,  624,    0,  624,  625,  625,    0,  625,
1508 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1509 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1510 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1511 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1512 	      507,  507,  507,  507,  507,  507,  507,  507,  507,  507,
1513 	      507,  507,  507,  507,  507,  507
1514 	
1515 	    } ;
1516 	
1517 	/* Table of booleans, true if rule could match eol. */
1518 	static const flex_int32_t yy_rule_can_match_eol[36] =
1519 	    {   0,
1520 	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 
1521 	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     };
1522 	
1523 	/* The intent behind this definition is that it'll catch
1524 	 * any uses of REJECT which flex missed.
1525 	 */
1526 	#define REJECT reject_used_but_not_detected
1527 	#define yymore() yymore_used_but_not_detected
1528 	#define YY_MORE_ADJ 0
1529 	#define YY_RESTORE_YY_MORE_OFFSET
1530 	#line 1 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1531 	#line 2 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1532 	
1533 	#pragma GCC diagnostic ignored "-Wunused-value"
1534 	#pragma GCC diagnostic ignored "-Wunused-variable"
1535 	#pragma GCC diagnostic ignored "-Wunused-function"
1536 	
1537 	#include "config.h"
1538 	#include "config_parsing.h"
1539 	#include "conf_url.h"
1540 	#include "analyse.h"
1541 	#include "abstract_mem.h"
1542 	#include "conf_yacc.h"
1543 	#include "abstract_atomic.h"
1544 	
1545 	#include <stdio.h>
1546 	#include <errno.h>
1547 	#include <stdlib.h>
1548 	#include <libgen.h>
1549 	#include "log.h"
1550 	
1551 	#if HAVE_STRING_H
1552 	#   include <string.h>
1553 	#endif
1554 	
1555 	/* Our versions of parser macros */
1556 	
1557 	#define YY_USER_INIT \
1558 	do { \
1559 		BEGIN YY_INIT; \
1560 	} while (0);
1561 	
1562 	#define YY_USER_ACTION \
1563 		yylloc->first_line = yylloc->last_line = yylineno; \
1564 		yylloc->first_column = yylloc->last_column = yycolumn + yyleng -1; \
1565 		yycolumn += yyleng; \
1566 		yylloc->filename = stp->current_file;
1567 	
1568 	#ifdef _DEBUG_PARSING
1569 	#define DEBUG_LEX   printf
1570 	#else
1571 	#define DEBUG_LEX(...) (void)0
1572 	#endif
1573 	
1574 	#define BS_FLAG_NONE  0
1575 	#define BS_FLAG_URL   1
1576 	
1577 	struct bufstack {
1578 		struct bufstack *prev;
1579 		YY_BUFFER_STATE bs;
1580 		int lineno;
1581 		char *filename;
1582 		FILE *f;
1583 		char *fbuf;
1584 		uint32_t flags;
1585 	};
1586 	
1587 	static char *filter_string(char *src, int esc);
1588 	static int new_file(char *filename, struct parser_state *st);
1589 	static int fetch_url(char *name_tok, struct parser_state *st);
1590 	static int pop_file(struct parser_state *st);
1591 	
1592 	#line 1592 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.c"
1593 	/* URL types, e.g., (rados|http|ftp) */
1594 	/* INCLUDE state is used for picking the name of the include file */
1595 	
1596 	#line 1596 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.c"
1597 	
1598 	#define INITIAL 0
1599 	#define YY_INIT 1
1600 	#define DEFINITION 2
1601 	#define TERM 3
1602 	#define INCLUDE 4
1603 	#define URL 5
1604 	
1605 	#ifndef YY_NO_UNISTD_H
1606 	/* Special case for "unistd.h", since it is non-ANSI. We include it way
1607 	 * down here because we want the user's section 1 to have been scanned first.
1608 	 * The user has a chance to override it with an option.
1609 	 */
1610 	#include <unistd.h>
1611 	#endif
1612 	
1613 	#define YY_EXTRA_TYPE struct parser_state *
1614 	
1615 	/* Holds the entire state of the reentrant scanner. */
1616 	struct yyguts_t
1617 	    {
1618 	
1619 	    /* User-defined. Not touched by flex. */
1620 	    YY_EXTRA_TYPE yyextra_r;
1621 	
1622 	    /* The rest are the same as the globals declared in the non-reentrant scanner. */
1623 	    FILE *yyin_r, *yyout_r;
1624 	    size_t yy_buffer_stack_top; /**< index of top of stack. */
1625 	    size_t yy_buffer_stack_max; /**< capacity of stack. */
1626 	    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1627 	    char yy_hold_char;
1628 	    int yy_n_chars;
1629 	    int yyleng_r;
1630 	    char *yy_c_buf_p;
1631 	    int yy_init;
1632 	    int yy_start;
1633 	    int yy_did_buffer_switch_on_eof;
1634 	    int yy_start_stack_ptr;
1635 	    int yy_start_stack_depth;
1636 	    int *yy_start_stack;
1637 	    yy_state_type yy_last_accepting_state;
1638 	    char* yy_last_accepting_cpos;
1639 	
1640 	    int yylineno_r;
1641 	    int yy_flex_debug_r;
1642 	
1643 	    char *yytext_r;
1644 	    int yy_more_flag;
1645 	    int yy_more_len;
1646 	
1647 	    YYSTYPE * yylval_r;
1648 	
1649 	    YYLTYPE * yylloc_r;
1650 	
1651 	    }; /* end struct yyguts_t */
1652 	
1653 	static int yy_init_globals ( yyscan_t yyscanner );
1654 	
1655 	    /* This must go here because YYSTYPE and YYLTYPE are included
1656 	     * from bison output in section 1.*/
1657 	    #    define yylval yyg->yylval_r
1658 	    
1659 	    #    define yylloc yyg->yylloc_r
1660 	    
1661 	int yylex_init (yyscan_t* scanner);
1662 	
1663 	int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
1664 	
1665 	/* Accessor methods to globals.
1666 	   These are made visible to non-reentrant scanners for convenience. */
1667 	
1668 	int yylex_destroy ( yyscan_t yyscanner );
1669 	
1670 	int yyget_debug ( yyscan_t yyscanner );
1671 	
1672 	void yyset_debug ( int debug_flag , yyscan_t yyscanner );
1673 	
1674 	YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
1675 	
1676 	void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
1677 	
1678 	FILE *yyget_in ( yyscan_t yyscanner );
1679 	
1680 	void yyset_in  ( FILE * _in_str , yyscan_t yyscanner );
1681 	
1682 	FILE *yyget_out ( yyscan_t yyscanner );
1683 	
1684 	void yyset_out  ( FILE * _out_str , yyscan_t yyscanner );
1685 	
1686 				int yyget_leng ( yyscan_t yyscanner );
1687 	
1688 	char *yyget_text ( yyscan_t yyscanner );
1689 	
1690 	int yyget_lineno ( yyscan_t yyscanner );
1691 	
1692 	void yyset_lineno ( int _line_number , yyscan_t yyscanner );
1693 	
1694 	int yyget_column  ( yyscan_t yyscanner );
1695 	
1696 	void yyset_column ( int _column_no , yyscan_t yyscanner );
1697 	
1698 	YYSTYPE * yyget_lval ( yyscan_t yyscanner );
1699 	
1700 	void yyset_lval ( YYSTYPE * yylval_param , yyscan_t yyscanner );
1701 	
1702 	       YYLTYPE *yyget_lloc ( yyscan_t yyscanner );
1703 	    
1704 	        void yyset_lloc ( YYLTYPE * yylloc_param , yyscan_t yyscanner );
1705 	    
1706 	/* Macros after this point can all be overridden by user definitions in
1707 	 * section 1.
1708 	 */
1709 	
1710 	#ifndef YY_SKIP_YYWRAP
1711 	#ifdef __cplusplus
1712 	extern "C" int yywrap ( yyscan_t yyscanner );
1713 	#else
1714 	extern int yywrap ( yyscan_t yyscanner );
1715 	#endif
1716 	#endif
1717 	
1718 	#ifndef YY_NO_UNPUT
1719 	    
1720 	#endif
1721 	
1722 	#ifndef yytext_ptr
1723 	static void yy_flex_strncpy ( char *, const char *, int , yyscan_t yyscanner);
1724 	#endif
1725 	
1726 	#ifdef YY_NEED_STRLEN
1727 	static int yy_flex_strlen ( const char * , yyscan_t yyscanner);
1728 	#endif
1729 	
1730 	#ifndef YY_NO_INPUT
1731 	#ifdef __cplusplus
1732 	static int yyinput ( yyscan_t yyscanner );
1733 	#else
1734 	static int input ( yyscan_t yyscanner );
1735 	#endif
1736 	
1737 	#endif
1738 	
1739 	/* Amount of stuff to slurp up with each read. */
1740 	#ifndef YY_READ_BUF_SIZE
1741 	#ifdef __ia64__
1742 	/* On IA-64, the buffer size is 16k, not 8k */
1743 	#define YY_READ_BUF_SIZE 16384
1744 	#else
1745 	#define YY_READ_BUF_SIZE 8192
1746 	#endif /* __ia64__ */
1747 	#endif
1748 	
1749 	/* Copy whatever the last rule matched to the standard output. */
1750 	#ifndef ECHO
1751 	/* This used to be an fputs(), but since the string might contain NUL's,
1752 	 * we now use fwrite().
1753 	 */
1754 	#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1755 	#endif
1756 	
1757 	/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1758 	 * is returned in "result".
1759 	 */
1760 	#ifndef YY_INPUT
1761 	#define YY_INPUT(buf,result,max_size) \
1762 		if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1763 			{ \
1764 			int c = '*'; \
1765 			int n; \
1766 			for ( n = 0; n < max_size && \
1767 				     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1768 				buf[n] = (char) c; \
1769 			if ( c == '\n' ) \
1770 				buf[n++] = (char) c; \
1771 			if ( c == EOF && ferror( yyin ) ) \
1772 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1773 			result = n; \
1774 			} \
1775 		else \
1776 			{ \
1777 			errno=0; \
1778 			while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1779 				{ \
1780 				if( errno != EINTR) \
1781 					{ \
1782 					YY_FATAL_ERROR( "input in flex scanner failed" ); \
1783 					break; \
1784 					} \
1785 				errno=0; \
1786 				clearerr(yyin); \
1787 				} \
1788 			}\
1789 	\
1790 	
1791 	#endif
1792 	
1793 	/* No semi-colon after return; correct usage is to write "yyterminate();" -
1794 	 * we don't want an extra ';' after the "return" because that will cause
1795 	 * some compilers to complain about unreachable statements.
1796 	 */
1797 	#ifndef yyterminate
1798 	#define yyterminate() return YY_NULL
1799 	#endif
1800 	
1801 	/* Number of entries by which start-condition stack grows. */
1802 	#ifndef YY_START_STACK_INCR
1803 	#define YY_START_STACK_INCR 25
1804 	#endif
1805 	
1806 	/* Report a fatal error. */
1807 	#ifndef YY_FATAL_ERROR
1808 	#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1809 	#endif
1810 	
1811 	/* end tables serialization structures and prototypes */
1812 	
1813 	/* Default declaration of generated scanner - a define so the user can
1814 	 * easily add parameters.
1815 	 */
1816 	#ifndef YY_DECL
1817 	#define YY_DECL_IS_OURS 1
1818 	
1819 	extern int yylex \
1820 	               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner);
1821 	
1822 	#define YY_DECL int yylex \
1823 	               (YYSTYPE * yylval_param, YYLTYPE * yylloc_param , yyscan_t yyscanner)
1824 	#endif /* !YY_DECL */
1825 	
1826 	/* Code executed at the beginning of each rule, after yytext and yyleng
1827 	 * have been set up.
1828 	 */
1829 	#ifndef YY_USER_ACTION
1830 	#define YY_USER_ACTION
1831 	#endif
1832 	
1833 	/* Code executed at the end of each rule. */
1834 	#ifndef YY_BREAK
1835 	#define YY_BREAK /*LINTED*/break;
1836 	#endif
1837 	
1838 	#define YY_RULE_SETUP \
1839 		YY_USER_ACTION
1840 	
1841 	/** The main scanner function which does all the work.
1842 	 */
1843 	YY_DECL
1844 	{
1845 		yy_state_type yy_current_state;
1846 		char *yy_cp, *yy_bp;
1847 		int yy_act;
1848 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1849 	
1850 	    yylval = yylval_param;
1851 	
1852 	    yylloc = yylloc_param;
1853 	
1854 		if ( !yyg->yy_init )
1855 			{
1856 			yyg->yy_init = 1;
1857 	
1858 	#ifdef YY_USER_INIT
1859 			YY_USER_INIT;
1860 	#endif
1861 	
1862 			if ( ! yyg->yy_start )
1863 				yyg->yy_start = 1;	/* first start state */
1864 	
1865 			if ( ! yyin )
1866 				yyin = stdin;
1867 	
1868 			if ( ! yyout )
1869 				yyout = stdout;
1870 	
1871 			if ( ! YY_CURRENT_BUFFER ) {
1872 				yyensure_buffer_stack (yyscanner);
1873 				YY_CURRENT_BUFFER_LVALUE =
1874 					yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
1875 			}
1876 	
1877 			yy_load_buffer_state( yyscanner );
1878 			}
1879 	
1880 		{
1881 	#line 127 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1882 	
1883 	
1884 	#line 130 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1885 		struct parser_state *stp = yyextra;
1886 	
1887 	
1888 	#line 1888 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.c"
1889 	
1890 		while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
1891 			{
1892 			yy_cp = yyg->yy_c_buf_p;
1893 	
1894 			/* Support of yytext. */
1895 			*yy_cp = yyg->yy_hold_char;
1896 	
1897 			/* yy_bp points to the position in yy_ch_buf of the start of
1898 			 * the current run.
1899 			 */
1900 			yy_bp = yy_cp;
1901 	
1902 			yy_current_state = yyg->yy_start;
1903 	yy_match:
1904 			do
1905 				{
1906 				YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1907 				if ( yy_accept[yy_current_state] )
1908 					{
1909 					yyg->yy_last_accepting_state = yy_current_state;
1910 					yyg->yy_last_accepting_cpos = yy_cp;
1911 					}
1912 				while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1913 					{
1914 					yy_current_state = (int) yy_def[yy_current_state];
1915 					if ( yy_current_state >= 508 )
1916 						yy_c = yy_meta[yy_c];
1917 					}
1918 				yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1919 				++yy_cp;
1920 				}
1921 			while ( yy_base[yy_current_state] != 2941 );
1922 	
1923 	yy_find_action:
1924 			yy_act = yy_accept[yy_current_state];
1925 			if ( yy_act == 0 )
1926 				{ /* have to back up */
1927 				yy_cp = yyg->yy_last_accepting_cpos;
1928 				yy_current_state = yyg->yy_last_accepting_state;
1929 				yy_act = yy_accept[yy_current_state];
1930 				}
1931 	
1932 			YY_DO_BEFORE_ACTION;
1933 	
1934 			if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1935 				{
1936 				int yyl;
1937 				for ( yyl = 0; yyl < yyleng; ++yyl )
1938 					if ( yytext[yyl] == '\n' )
1939 						
1940 	    do{ yylineno++;
1941 	        yycolumn=0;
1942 	    }while(0)
1943 	;
1944 				}
1945 	
1946 	do_action:	/* This label is used only to access EOF actions. */
1947 	
1948 			switch ( yy_act )
1949 		{ /* beginning of action switch */
1950 				case 0: /* must back up */
1951 				/* undo the effects of YY_DO_BEFORE_ACTION */
1952 				*yy_cp = yyg->yy_hold_char;
1953 				yy_cp = yyg->yy_last_accepting_cpos;
1954 				yy_current_state = yyg->yy_last_accepting_state;
1955 				goto yy_find_action;
1956 	
1957 	case 1:
1958 	YY_RULE_SETUP
1959 	#line 133 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1960 	{ /* include file start */
1961 		DEBUG_LEX("INCLUDE\n");
1962 		BEGIN INCLUDE;
1963 		/* not a token, return nothing */
1964 	}
1965 		YY_BREAK
1966 	case 2:
1967 	YY_RULE_SETUP
1968 	#line 139 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1969 	{
1970 	
1971 		{
1972 			int c;
1973 	
1974 			DEBUG_LEX("Calling new_file with unquoted %s\n", yytext);
1975 			c = new_file(yytext, stp);
1976 			if (c == ENOMEM)
1977 				yyterminate();
1978 			BEGIN YY_INIT;
1979 			DEBUG_LEX("done new file\n");
1980 		}
1981 	}
1982 		YY_BREAK
1983 	case 3:
1984 	YY_RULE_SETUP
1985 	#line 153 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
1986 	{
1987 		{
1988 			int c;
1989 	
1990 			DEBUG_LEX("Calling new_file with quoted %s\n", yytext);
1991 			c = new_file(yytext, stp);
1992 			if (c == ENOMEM)
1993 				yyterminate();
1994 			BEGIN YY_INIT;
1995 			DEBUG_LEX("done new file\n");
1996 		}
1997 	}
1998 		YY_BREAK
1999 	case 4:
2000 	YY_RULE_SETUP
2001 	#line 166 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2002 	{ /* URL include file start */
2003 		DEBUG_LEX("URL\n");
2004 		BEGIN URL;
2005 		/* not a token, return nothing */
2006 	}
2007 		YY_BREAK
2008 	case 5:
2009 	YY_RULE_SETUP
2010 	#line 172 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2011 	{
2012 	
2013 		{
2014 			int c;
2015 	
2016 			DEBUG_LEX("Calling new_file with unquoted %s\n", yytext);
2017 			c = fetch_url(yytext, stp);
2018 			if (c == ENOMEM)
2019 				yyterminate();
2020 			BEGIN YY_INIT;
2021 			DEBUG_LEX("done new file\n");
2022 		}
2023 	}
2024 		YY_BREAK
2025 	case 6:
2026 	YY_RULE_SETUP
2027 	#line 186 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2028 	{
2029 		{
2030 			int c;
2031 	
2032 			DEBUG_LEX("Calling new_file with quoted %s\n", yytext);
2033 			c = fetch_url(yytext, stp);
2034 			if (c == ENOMEM)
2035 				yyterminate();
2036 			BEGIN YY_INIT;
2037 			DEBUG_LEX("done new file\n");
2038 		}
2039 	}
2040 		YY_BREAK
2041 	case YY_STATE_EOF(INITIAL):
2042 	case YY_STATE_EOF(YY_INIT):
2043 	case YY_STATE_EOF(DEFINITION):
2044 	case YY_STATE_EOF(TERM):
2045 	case YY_STATE_EOF(INCLUDE):
2046 	case YY_STATE_EOF(URL):
2047 	#line 199 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2048 	{ /* end of included file */
2049 		DEBUG_LEX("<EOF>\n");
2050 		if (pop_file(stp) == 0)
2051 			yyterminate();
2052 	}
2053 		YY_BREAK
2054 	/* Initial State.  We start with a block identifier */
2055 	case 7:
2056 	YY_RULE_SETUP
2057 	#line 207 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2058 	{ /* first block */
2059 		/* identifier */
2060 		DEBUG_LEX("[block:%s]\n",yytext);
2061 		yylval->token = save_token(yytext, false, stp);
2062 		BEGIN DEFINITION;
2063 		return IDENTIFIER;
2064 	}
2065 		YY_BREAK
2066 	case 8:
2067 	YY_RULE_SETUP
2068 	#line 215 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2069 	{
2070 		DEBUG_LEX("[id:%s",yytext);
2071 		yylval->token = save_token(yytext, false, stp);
2072 		return IDENTIFIER;
2073 	}
2074 		YY_BREAK
2075 	case 9:
2076 	YY_RULE_SETUP
2077 	#line 221 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2078 	{
2079 		DEBUG_LEX(" EQUALS ");
2080 		BEGIN TERM;
2081 		return EQUAL_OP;
2082 	}
2083 		YY_BREAK
2084 	case 10:
2085 	YY_RULE_SETUP
2086 	#line 227 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2087 	{
2088 		DEBUG_LEX("BEGIN_BLOCK\n");
2089 		BEGIN DEFINITION;
2090 		stp->block_depth++;
2091 		return LCURLY_OP;
2092 	}
2093 		YY_BREAK
2094 	case 11:
2095 	YY_RULE_SETUP
2096 	#line 234 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2097 	{   /* end of block */
2098 		DEBUG_LEX("END_BLOCK\n");
2099 		stp->block_depth --;
2100 		if (stp->block_depth <= 0)
2101 			BEGIN YY_INIT;
2102 		return RCURLY_OP;
2103 	}
2104 		YY_BREAK
2105 	case 12:
2106 	YY_RULE_SETUP
2107 	#line 242 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2108 	{ /* another terminal to follow ',' */
2109 		DEBUG_LEX(" ',' ");
2110 		return COMMA_OP;
2111 	}
2112 		YY_BREAK
2113 	/* End of statement */
2114 	case 13:
2115 	YY_RULE_SETUP
2116 	#line 249 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2117 	{ /* end of statement */
2118 		DEBUG_LEX("]\n");
2119 		BEGIN DEFINITION;
2120 		return SEMI_OP;
2121 	}
2122 		YY_BREAK
2123 	/* Double Quote, allows char escaping */
2124 	case 14:
2125 	/* rule 14 can match eol */
2126 	YY_RULE_SETUP
2127 	#line 258 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2128 	{  /* start of a double quote string */
2129 		DEBUG_LEX("quote value:<%s>", yytext);
2130 		yylval->token = save_token(yytext, true, stp);
2131 		return DQUOTE;
2132 	}
2133 		YY_BREAK
2134 	/* Single Quote, single line with no escaping */
2135 	case 15:
2136 	/* rule 15 can match eol */
2137 	YY_RULE_SETUP
2138 	#line 266 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2139 	{ /* start of a single quote string */
2140 		DEBUG_LEX("lit value:<%s>", yytext);
2141 		yylval->token = save_token(yytext, false, stp);
2142 		return SQUOTE;
2143 	}
2144 		YY_BREAK
2145 	case 16:
2146 	YY_RULE_SETUP
2147 	#line 272 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2148 	{ /* a boolean TRUE */
2149 		DEBUG_LEX("boolean TRUE:%s", yytext);
2150 		yylval->token = save_token(yytext, false, stp);
2151 		return TOK_TRUE;
2152 	}
2153 		YY_BREAK
2154 	case 17:
2155 	YY_RULE_SETUP
2156 	#line 278 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2157 	{ /* a boolean FALSE */
2158 		DEBUG_LEX("boolean FALSE:%s", yytext);
2159 		yylval->token = save_token(yytext, false, stp);
2160 		return TOK_FALSE;
2161 	}
2162 		YY_BREAK
2163 	case 18:
2164 	YY_RULE_SETUP
2165 	#line 284 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2166 	{ /* an arithmetic op */
2167 		DEBUG_LEX(" arith op:%s", yytext);
2168 		yylval->token = save_token(yytext, false, stp);
2169 		return TOK_ARITH_OP;
2170 	}
2171 		YY_BREAK
2172 	case 19:
2173 	YY_RULE_SETUP
2174 	#line 290 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2175 	{ /* "9P" is here to take precedence over numbers, this is a special */
2176 		DEBUG_LEX("token value:%s",yytext);
2177 		yylval->token = save_token(yytext, false, stp);
2178 		return TOKEN;
2179 	}
2180 		YY_BREAK
2181 	case 20:
2182 	YY_RULE_SETUP
2183 	#line 296 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2184 	{ /* an FSID */
2185 		DEBUG_LEX(" FSID :%s", yytext);
2186 		yylval->token = save_token(yytext, false, stp);
2187 		return TOK_FSID;
2188 	}
2189 		YY_BREAK
2190 	case 21:
2191 	YY_RULE_SETUP
2192 	#line 302 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2193 	{ /* an octal number */
2194 		DEBUG_LEX(" octal number:%s", yytext);
2195 		yylval->token = save_token(yytext, false, stp);
2196 		return TOK_OCTNUM;
2197 	}
2198 		YY_BREAK
2199 	case 22:
2200 	YY_RULE_SETUP
2201 	#line 308 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2202 	{ /* a hexidecimal number */
2203 		DEBUG_LEX(" hex number:%s", yytext);
2204 		yylval->token = save_token(yytext, false, stp);
2205 		return TOK_HEXNUM;
2206 	}
2207 		YY_BREAK
2208 	case 23:
2209 	YY_RULE_SETUP
2210 	#line 314 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2211 	{ /* a decimal number */
2212 		DEBUG_LEX(" dec number:%s", yytext);
2213 		yylval->token = save_token(yytext, false, stp);
2214 		return TOK_DECNUM;
2215 	}
2216 		YY_BREAK
2217 	case 24:
2218 	YY_RULE_SETUP
2219 	#line 320 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2220 	{ /* v4 address wildcard, ganesha only, not IETF */
2221 		DEBUG_LEX(" V4 any:%s", yytext);
2222 		yylval->token = save_token(yytext, false, stp);
2223 		return TOK_V4_ANY;
2224 	}
2225 		YY_BREAK
2226 	case 25:
2227 	YY_RULE_SETUP
2228 	#line 326 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2229 	{ /* V4 CIDR */
2230 		DEBUG_LEX(" IPv4 :%s", yytext);
2231 		yylval->token = save_token(yytext, false, stp);
2232 		if (index(yylval->token, '/') == NULL)
2233 			return TOK_V4ADDR;
2234 		else
2235 			return TOK_V4CIDR;
2236 	}
2237 		YY_BREAK
2238 	/* Mere mortals are not supposed to grok the pattern for IPV6ADDR. */
2239 	/* I got it from the Flex manual. */
2240 	case 26:
2241 	YY_RULE_SETUP
2242 	#line 338 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2243 	{ /* V6 CIDR */
2244 		DEBUG_LEX(" IPv6 :%s", yytext);
2245 		yylval->token = save_token(yytext, false, stp);
2246 		if (index(yylval->token, '/') == NULL)
2247 			return TOK_V6ADDR;
2248 		else
2249 			return TOK_V6CIDR;
2250 	}
2251 		YY_BREAK
2252 	case 27:
2253 	YY_RULE_SETUP
2254 	#line 347 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2255 	{ /* a netgroup used for clients */
2256 		DEBUG_LEX(" netgroup :%s", yytext);
2257 		yylval->token = save_token(yytext, false, stp);
2258 		return TOK_NETGROUP;
2259 	}
2260 		YY_BREAK
2261 	/* Last resort terminals. PATHAME is here because it can confuse */
2262 	/* with a CIDR (precedence) and */
2263 	/* TOKEN_CHARS gobbles anything other than white and ";" */
2264 	case 28:
2265 	YY_RULE_SETUP
2266 	#line 357 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2267 	{ /* a POSIX pathname */
2268 		DEBUG_LEX("pathname:%s", yytext);
2269 		yylval->token = save_token(yytext, false, stp);
2270 		return TOK_PATH;
2271 	}
2272 		YY_BREAK
2273 	case 29:
2274 	YY_RULE_SETUP
2275 	#line 363 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2276 	{ /* start of a number or label/tag */
2277 		DEBUG_LEX("token value:%s",yytext);
2278 		yylval->token = save_token(yytext, false, stp);
2279 		return TOKEN;
2280 	}
2281 		YY_BREAK
2282 	case 30:
2283 	YY_RULE_SETUP
2284 	#line 369 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2285 	{ /* start of a number or label/tag as glob(7) string */
2286 		DEBUG_LEX("token value:%s",yytext);
2287 		yylval->token = save_token(yytext, false, stp);
2288 		return REGEX_TOKEN;
2289 	}
2290 		YY_BREAK
2291 	/* Skip over stuff we don't send upstairs */
2292 	case 31:
2293 	*yy_cp = yyg->yy_hold_char; /* undo effects of setting up yytext */
2294 	yyg->yy_c_buf_p = yy_cp -= 1;
2295 	YY_DO_BEFORE_ACTION; /* set up yytext again */
2296 	YY_RULE_SETUP
2297 	#line 377 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2298 	;/* ignore */
2299 		YY_BREAK
2300 	case 32:
2301 	YY_RULE_SETUP
2302 	#line 378 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2303 	;/* ignore */
2304 		YY_BREAK
2305 	case 33:
2306 	/* rule 33 can match eol */
2307 	YY_RULE_SETUP
2308 	#line 379 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2309 	;/* ignore */
2310 		YY_BREAK
2311 	/* Unrecognized chars.  Must do better... */
2312 	case 34:
2313 	YY_RULE_SETUP
2314 	#line 383 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2315 	{ /* ERROR: out of character character */
2316 		DEBUG_LEX("unexpected stuff (%s)\n", yytext);
2317 		config_parse_error(yylloc, stp,
2318 			"Unexpected character (%s)", yytext);
2319 		stp->err_type->scan = true;
2320 		yylval->token = save_token(yytext, false, stp); /* for error rpt */
2321 		return _ERROR_;
2322 	}
2323 		YY_BREAK
2324 	case 35:
2325 	YY_RULE_SETUP
2326 	#line 392 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
2327 	ECHO;
2328 		YY_BREAK
2329 	#line 2329 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.c"
2330 	
2331 		case YY_END_OF_BUFFER:
2332 			{
2333 			/* Amount of text matched not including the EOB char. */
2334 			int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
2335 	
2336 			/* Undo the effects of YY_DO_BEFORE_ACTION. */
2337 			*yy_cp = yyg->yy_hold_char;
2338 			YY_RESTORE_YY_MORE_OFFSET
2339 	
2340 			if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2341 				{
2342 				/* We're scanning a new file or input source.  It's
2343 				 * possible that this happened because the user
2344 				 * just pointed yyin at a new source and called
2345 				 * yylex().  If so, then we have to assure
2346 				 * consistency between YY_CURRENT_BUFFER and our
2347 				 * globals.  Here is the right place to do so, because
2348 				 * this is the first action (other than possibly a
2349 				 * back-up) that will match for the new input source.
2350 				 */
2351 				yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2352 				YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2353 				YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2354 				}
2355 	
2356 			/* Note that here we test for yy_c_buf_p "<=" to the position
2357 			 * of the first EOB in the buffer, since yy_c_buf_p will
2358 			 * already have been incremented past the NUL character
2359 			 * (since all states make transitions on EOB to the
2360 			 * end-of-buffer state).  Contrast this with the test
2361 			 * in input().
2362 			 */
2363 			if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2364 				{ /* This was really a NUL. */
2365 				yy_state_type yy_next_state;
2366 	
2367 				yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
2368 	
2369 				yy_current_state = yy_get_previous_state( yyscanner );
2370 	
2371 				/* Okay, we're now positioned to make the NUL
2372 				 * transition.  We couldn't have
2373 				 * yy_get_previous_state() go ahead and do it
2374 				 * for us because it doesn't know how to deal
2375 				 * with the possibility of jamming (and we don't
2376 				 * want to build jamming into it because then it
2377 				 * will run more slowly).
2378 				 */
2379 	
2380 				yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
2381 	
2382 				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2383 	
2384 				if ( yy_next_state )
2385 					{
2386 					/* Consume the NUL. */
2387 					yy_cp = ++yyg->yy_c_buf_p;
2388 					yy_current_state = yy_next_state;
2389 					goto yy_match;
2390 					}
2391 	
2392 				else
2393 					{
2394 					yy_cp = yyg->yy_c_buf_p;
2395 					goto yy_find_action;
2396 					}
2397 				}
2398 	
2399 			else switch ( yy_get_next_buffer( yyscanner ) )
2400 				{
2401 				case EOB_ACT_END_OF_FILE:
2402 					{
2403 					yyg->yy_did_buffer_switch_on_eof = 0;
2404 	
2405 					if ( yywrap( yyscanner ) )
2406 						{
2407 						/* Note: because we've taken care in
2408 						 * yy_get_next_buffer() to have set up
2409 						 * yytext, we can now set up
2410 						 * yy_c_buf_p so that if some total
2411 						 * hoser (like flex itself) wants to
2412 						 * call the scanner after we return the
2413 						 * YY_NULL, it'll still work - another
2414 						 * YY_NULL will get returned.
2415 						 */
2416 						yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
2417 	
2418 						yy_act = YY_STATE_EOF(YY_START);
2419 						goto do_action;
2420 						}
2421 	
2422 					else
2423 						{
2424 						if ( ! yyg->yy_did_buffer_switch_on_eof )
2425 							YY_NEW_FILE;
2426 						}
2427 					break;
2428 					}
2429 	
2430 				case EOB_ACT_CONTINUE_SCAN:
2431 					yyg->yy_c_buf_p =
2432 						yyg->yytext_ptr + yy_amount_of_matched_text;
2433 	
2434 					yy_current_state = yy_get_previous_state( yyscanner );
2435 	
2436 					yy_cp = yyg->yy_c_buf_p;
2437 					yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2438 					goto yy_match;
2439 	
2440 				case EOB_ACT_LAST_MATCH:
2441 					yyg->yy_c_buf_p =
2442 					&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
2443 	
2444 					yy_current_state = yy_get_previous_state( yyscanner );
2445 	
2446 					yy_cp = yyg->yy_c_buf_p;
2447 					yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
2448 					goto yy_find_action;
2449 				}
2450 			break;
2451 			}
2452 	
2453 		default:
2454 			YY_FATAL_ERROR(
2455 				"fatal flex scanner internal error--no action found" );
2456 		} /* end of action switch */
2457 			} /* end of scanning one token */
2458 		} /* end of user's declarations */
2459 	} /* end of yylex */
2460 	
2461 	/* yy_get_next_buffer - try to read in a new buffer
2462 	 *
2463 	 * Returns a code representing an action:
2464 	 *	EOB_ACT_LAST_MATCH -
2465 	 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2466 	 *	EOB_ACT_END_OF_FILE - end of file
2467 	 */
2468 	static int yy_get_next_buffer (yyscan_t yyscanner)
2469 	{
2470 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2471 		char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2472 		char *source = yyg->yytext_ptr;
2473 		int number_to_move, i;
2474 		int ret_val;
2475 	
2476 		if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
2477 			YY_FATAL_ERROR(
2478 			"fatal flex scanner internal error--end of buffer missed" );
2479 	
2480 		if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2481 			{ /* Don't try to fill the buffer, so this is an EOF. */
2482 			if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
2483 				{
2484 				/* We matched a single character, the EOB, so
2485 				 * treat this as a final EOF.
2486 				 */
2487 				return EOB_ACT_END_OF_FILE;
2488 				}
2489 	
2490 			else
2491 				{
2492 				/* We matched some text prior to the EOB, first
2493 				 * process it.
2494 				 */
2495 				return EOB_ACT_LAST_MATCH;
2496 				}
2497 			}
2498 	
2499 		/* Try to read more data. */
2500 	
2501 		/* First move last chars to start of buffer. */
2502 		number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
2503 	
2504 		for ( i = 0; i < number_to_move; ++i )
2505 			*(dest++) = *(source++);
2506 	
2507 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2508 			/* don't do the read, it's not guaranteed to return an EOF,
2509 			 * just force an EOF
2510 			 */
2511 			YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
2512 	
2513 		else
2514 			{
2515 				int num_to_read =
2516 				YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2517 	
2518 			while ( num_to_read <= 0 )
2519 				{ /* Not enough room in the buffer - grow it. */
2520 	
2521 				/* just a shorter name for the current buffer */
2522 				YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
2523 	
2524 				int yy_c_buf_p_offset =
2525 					(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
2526 	
2527 				if ( b->yy_is_our_buffer )
2528 					{
2529 					int new_size = b->yy_buf_size * 2;
2530 	
2531 					if ( new_size <= 0 )
2532 						b->yy_buf_size += b->yy_buf_size / 8;
2533 					else
2534 						b->yy_buf_size *= 2;
2535 	
2536 					b->yy_ch_buf = (char *)
2537 						/* Include room in for 2 EOB chars. */
2538 						yyrealloc( (void *) b->yy_ch_buf,
2539 								 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
2540 					}
2541 				else
2542 					/* Can't grow it, we don't own it. */
2543 					b->yy_ch_buf = NULL;
2544 	
2545 				if ( ! b->yy_ch_buf )
2546 					YY_FATAL_ERROR(
2547 					"fatal error - scanner input buffer overflow" );
2548 	
2549 				yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2550 	
2551 				num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2552 							number_to_move - 1;
2553 	
2554 				}
2555 	
2556 			if ( num_to_read > YY_READ_BUF_SIZE )
2557 				num_to_read = YY_READ_BUF_SIZE;
2558 	
2559 			/* Read in more data. */
2560 			YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2561 				yyg->yy_n_chars, num_to_read );
2562 	
2563 			YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2564 			}
2565 	
2566 		if ( yyg->yy_n_chars == 0 )
2567 			{
2568 			if ( number_to_move == YY_MORE_ADJ )
2569 				{
2570 				ret_val = EOB_ACT_END_OF_FILE;
2571 				yyrestart( yyin  , yyscanner);
2572 				}
2573 	
2574 			else
2575 				{
2576 				ret_val = EOB_ACT_LAST_MATCH;
2577 				YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2578 					YY_BUFFER_EOF_PENDING;
2579 				}
2580 			}
2581 	
2582 		else
2583 			ret_val = EOB_ACT_CONTINUE_SCAN;
2584 	
2585 		if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2586 			/* Extend the array by 50%, plus the number we really need. */
2587 			int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2588 			YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
2589 				(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
2590 			if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2591 				YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2592 			/* "- 2" to take care of EOB's */
2593 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
2594 		}
2595 	
2596 		yyg->yy_n_chars += number_to_move;
2597 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2598 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2599 	
2600 		yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2601 	
2602 		return ret_val;
2603 	}
2604 	
2605 	/* yy_get_previous_state - get the state just before the EOB char was reached */
2606 	
2607 	    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2608 	{
2609 		yy_state_type yy_current_state;
2610 		char *yy_cp;
2611 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2612 	
2613 		yy_current_state = yyg->yy_start;
2614 	
2615 		for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2616 			{
2617 			YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2618 			if ( yy_accept[yy_current_state] )
2619 				{
2620 				yyg->yy_last_accepting_state = yy_current_state;
2621 				yyg->yy_last_accepting_cpos = yy_cp;
2622 				}
2623 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2624 				{
2625 				yy_current_state = (int) yy_def[yy_current_state];
2626 				if ( yy_current_state >= 508 )
2627 					yy_c = yy_meta[yy_c];
2628 				}
2629 			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2630 			}
2631 	
2632 		return yy_current_state;
2633 	}
2634 	
2635 	/* yy_try_NUL_trans - try to make a transition on the NUL character
2636 	 *
2637 	 * synopsis
2638 	 *	next_state = yy_try_NUL_trans( current_state );
2639 	 */
2640 	    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
2641 	{
2642 		int yy_is_jam;
2643 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2644 		char *yy_cp = yyg->yy_c_buf_p;
2645 	
2646 		YY_CHAR yy_c = 1;
2647 		if ( yy_accept[yy_current_state] )
2648 			{
2649 			yyg->yy_last_accepting_state = yy_current_state;
2650 			yyg->yy_last_accepting_cpos = yy_cp;
2651 			}
2652 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2653 			{
2654 			yy_current_state = (int) yy_def[yy_current_state];
2655 			if ( yy_current_state >= 508 )
2656 				yy_c = yy_meta[yy_c];
2657 			}
2658 		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2659 		yy_is_jam = (yy_current_state == 507);
2660 	
2661 		(void)yyg;
2662 		return yy_is_jam ? 0 : yy_current_state;
2663 	}
2664 	
2665 	#ifndef YY_NO_UNPUT
2666 	
2667 	#endif
2668 	
2669 	#ifndef YY_NO_INPUT
2670 	#ifdef __cplusplus
2671 	    static int yyinput (yyscan_t yyscanner)
2672 	#else
2673 	    static int input  (yyscan_t yyscanner)
2674 	#endif
2675 	
2676 	{
2677 		int c;
2678 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2679 	
2680 		*yyg->yy_c_buf_p = yyg->yy_hold_char;
2681 	
2682 		if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2683 			{
2684 			/* yy_c_buf_p now points to the character we want to return.
2685 			 * If this occurs *before* the EOB characters, then it's a
2686 			 * valid NUL; if not, then we've hit the end of the buffer.
2687 			 */
2688 			if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2689 				/* This was really a NUL. */
2690 				*yyg->yy_c_buf_p = '\0';
2691 	
2692 			else
2693 				{ /* need more input */
2694 				int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
2695 				++yyg->yy_c_buf_p;
2696 	
2697 				switch ( yy_get_next_buffer( yyscanner ) )
2698 					{
2699 					case EOB_ACT_LAST_MATCH:
2700 						/* This happens because yy_g_n_b()
2701 						 * sees that we've accumulated a
2702 						 * token and flags that we need to
2703 						 * try matching the token before
2704 						 * proceeding.  But for input(),
2705 						 * there's no matching to consider.
2706 						 * So convert the EOB_ACT_LAST_MATCH
2707 						 * to EOB_ACT_END_OF_FILE.
2708 						 */
2709 	
2710 						/* Reset buffer status. */
2711 						yyrestart( yyin , yyscanner);
2712 	
2713 						/*FALLTHROUGH*/
2714 	
2715 					case EOB_ACT_END_OF_FILE:
2716 						{
2717 						if ( yywrap( yyscanner ) )
2718 							return 0;
2719 	
2720 						if ( ! yyg->yy_did_buffer_switch_on_eof )
2721 							YY_NEW_FILE;
2722 	#ifdef __cplusplus
2723 						return yyinput(yyscanner);
2724 	#else
2725 						return input(yyscanner);
2726 	#endif
2727 						}
2728 	
2729 					case EOB_ACT_CONTINUE_SCAN:
2730 						yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2731 						break;
2732 					}
2733 				}
2734 			}
2735 	
2736 		c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
2737 		*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
2738 		yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2739 	
2740 		if ( c == '\n' )
2741 			
2742 	    do{ yylineno++;
2743 	        yycolumn=0;
2744 	    }while(0)
2745 	;
2746 	
2747 		return c;
2748 	}
2749 	#endif	/* ifndef YY_NO_INPUT */
2750 	
2751 	/** Immediately switch to a different input stream.
2752 	 * @param input_file A readable stream.
2753 	 * @param yyscanner The scanner object.
2754 	 * @note This function does not reset the start condition to @c INITIAL .
2755 	 */
2756 	    void yyrestart  (FILE * input_file , yyscan_t yyscanner)
2757 	{
2758 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2759 	
2760 		if ( ! YY_CURRENT_BUFFER ){
2761 	        yyensure_buffer_stack (yyscanner);
2762 			YY_CURRENT_BUFFER_LVALUE =
2763 	            yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
2764 		}
2765 	
2766 		yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
2767 		yy_load_buffer_state( yyscanner );
2768 	}
2769 	
2770 	/** Switch to a different input buffer.
2771 	 * @param new_buffer The new input buffer.
2772 	 * @param yyscanner The scanner object.
2773 	 */
2774 	    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
2775 	{
2776 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2777 	
2778 		/* TODO. We should be able to replace this entire function body
2779 		 * with
2780 		 *		yypop_buffer_state();
2781 		 *		yypush_buffer_state(new_buffer);
2782 	     */
2783 		yyensure_buffer_stack (yyscanner);
2784 		if ( YY_CURRENT_BUFFER == new_buffer )
2785 			return;
2786 	
2787 		if ( YY_CURRENT_BUFFER )
2788 			{
2789 			/* Flush out information for old buffer. */
2790 			*yyg->yy_c_buf_p = yyg->yy_hold_char;
2791 			YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2792 			YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2793 			}
2794 	
2795 		YY_CURRENT_BUFFER_LVALUE = new_buffer;
2796 		yy_load_buffer_state( yyscanner );
2797 	
2798 		/* We don't actually know whether we did this switch during
2799 		 * EOF (yywrap()) processing, but the only time this flag
2800 		 * is looked at is after yywrap() is called, so it's safe
2801 		 * to go ahead and always set it.
2802 		 */
2803 		yyg->yy_did_buffer_switch_on_eof = 1;
2804 	}
2805 	
2806 	static void yy_load_buffer_state  (yyscan_t yyscanner)
2807 	{
2808 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2809 		yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2810 		yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2811 		yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2812 		yyg->yy_hold_char = *yyg->yy_c_buf_p;
2813 	}
2814 	
2815 	/** Allocate and initialize an input buffer state.
2816 	 * @param file A readable stream.
2817 	 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2818 	 * @param yyscanner The scanner object.
2819 	 * @return the allocated buffer state.
2820 	 */
2821 	    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
2822 	{
2823 		YY_BUFFER_STATE b;
2824 	    
2825 		b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
2826 		if ( ! b )
2827 			YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2828 	
2829 		b->yy_buf_size = size;
2830 	
2831 		/* yy_ch_buf has to be 2 characters longer than the size given because
2832 		 * we need to put in 2 end-of-buffer characters.
2833 		 */
2834 		b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
2835 		if ( ! b->yy_ch_buf )
2836 			YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2837 	
2838 		b->yy_is_our_buffer = 1;
2839 	
2840 		yy_init_buffer( b, file , yyscanner);
2841 	
2842 		return b;
2843 	}
2844 	
2845 	/** Destroy the buffer.
2846 	 * @param b a buffer created with yy_create_buffer()
2847 	 * @param yyscanner The scanner object.
2848 	 */
2849 	    void yy_delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2850 	{
2851 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2852 	
2853 		if ( ! b )
2854 			return;
2855 	
2856 		if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2857 			YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2858 	
2859 		if ( b->yy_is_our_buffer )
2860 			yyfree( (void *) b->yy_ch_buf , yyscanner );
2861 	
2862 		yyfree( (void *) b , yyscanner );
2863 	}
2864 	
2865 	/* Initializes or reinitializes a buffer.
2866 	 * This function is sometimes called more than once on the same buffer,
2867 	 * such as during a yyrestart() or at EOF.
2868 	 */
2869 	    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
2870 	
2871 	{
2872 		int oerrno = errno;
2873 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2874 	
2875 		yy_flush_buffer( b , yyscanner);
2876 	
2877 		b->yy_input_file = file;
2878 		b->yy_fill_buffer = 1;
2879 	
2880 	    /* If b is the current buffer, then yy_init_buffer was _probably_
2881 	     * called from yyrestart() or through yy_get_next_buffer.
2882 	     * In that case, we don't want to reset the lineno or column.
2883 	     */
2884 	    if (b != YY_CURRENT_BUFFER){
2885 	        b->yy_bs_lineno = 1;
2886 	        b->yy_bs_column = 0;
2887 	    }
2888 	
2889 	        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2890 	    
2891 		errno = oerrno;
2892 	}
2893 	
2894 	/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2895 	 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2896 	 * @param yyscanner The scanner object.
2897 	 */
2898 	    void yy_flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2899 	{
2900 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2901 		if ( ! b )
2902 			return;
2903 	
2904 		b->yy_n_chars = 0;
2905 	
2906 		/* We always need two end-of-buffer characters.  The first causes
2907 		 * a transition to the end-of-buffer state.  The second causes
2908 		 * a jam in that state.
2909 		 */
2910 		b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2911 		b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2912 	
2913 		b->yy_buf_pos = &b->yy_ch_buf[0];
2914 	
2915 		b->yy_at_bol = 1;
2916 		b->yy_buffer_status = YY_BUFFER_NEW;
2917 	
2918 		if ( b == YY_CURRENT_BUFFER )
2919 			yy_load_buffer_state( yyscanner );
2920 	}
2921 	
2922 	/** Pushes the new state onto the stack. The new state becomes
2923 	 *  the current state. This function will allocate the stack
2924 	 *  if necessary.
2925 	 *  @param new_buffer The new state.
2926 	 *  @param yyscanner The scanner object.
2927 	 */
2928 	void yypush_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2929 	{
(1) Event cond_false: Condition "new_buffer == NULL", taking false branch.
2930 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
(2) Event if_end: End of if statement.
2931 		if (new_buffer == NULL)
2932 			return;
2933 	
2934 		yyensure_buffer_stack(yyscanner);
2935 	
(3) Event cond_false: Condition "yyg->yy_buffer_stack", taking false branch.
(4) Event cond_false: Condition "yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] : NULL", taking false branch.
2936 		/* This block is copied from yy_switch_to_buffer. */
2937 		if ( YY_CURRENT_BUFFER )
2938 			{
2939 			/* Flush out information for old buffer. */
2940 			*yyg->yy_c_buf_p = yyg->yy_hold_char;
2941 			YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
(5) Event if_end: End of if statement.
2942 			YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2943 			}
2944 	
(6) Event cond_false: Condition "yyg->yy_buffer_stack", taking false branch.
(7) Event var_compare_op: Comparing "yyg->yy_buffer_stack" to null implies that "yyg->yy_buffer_stack" might be null.
(8) Event cond_false: Condition "yyg->yy_buffer_stack ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] : NULL", taking false branch.
Also see events: [var_deref_op]
2945 		/* Only push if top exists. Otherwise, replace top. */
(9) Event if_end: End of if statement.
2946 		if (YY_CURRENT_BUFFER)
(10) Event var_deref_op: Dereferencing null pointer "yyg->yy_buffer_stack".
Also see events: [var_compare_op]
2947 			yyg->yy_buffer_stack_top++;
2948 		YY_CURRENT_BUFFER_LVALUE = new_buffer;
2949 	
2950 		/* copied from yy_switch_to_buffer. */
2951 		yy_load_buffer_state( yyscanner );
2952 		yyg->yy_did_buffer_switch_on_eof = 1;
2953 	}
2954 	
2955 	/** Removes and deletes the top of the stack, if present.
2956 	 *  The next element becomes the new top.
2957 	 *  @param yyscanner The scanner object.
2958 	 */
2959 	void yypop_buffer_state (yyscan_t yyscanner)
2960 	{
2961 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2962 		if (!YY_CURRENT_BUFFER)
2963 			return;
2964 	
2965 		yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
2966 		YY_CURRENT_BUFFER_LVALUE = NULL;
2967 		if (yyg->yy_buffer_stack_top > 0)
2968 			--yyg->yy_buffer_stack_top;
2969 	
2970 		if (YY_CURRENT_BUFFER) {
2971 			yy_load_buffer_state( yyscanner );
2972 			yyg->yy_did_buffer_switch_on_eof = 1;
2973 		}
2974 	}
2975 	
2976 	/* Allocates the stack if it does not exist.
2977 	 *  Guarantees space for at least one push.
2978 	 */
2979 	static void yyensure_buffer_stack (yyscan_t yyscanner)
2980 	{
2981 		yy_size_t num_to_alloc;
2982 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2983 	
2984 		if (!yyg->yy_buffer_stack) {
2985 	
2986 			/* First allocation is just for 2 elements, since we don't know if this
2987 			 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2988 			 * immediate realloc on the next call.
2989 	         */
2990 	      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2991 			yyg->yy_buffer_stack = (struct yy_buffer_state**)yyalloc
2992 									(num_to_alloc * sizeof(struct yy_buffer_state*)
2993 									, yyscanner);
2994 			if ( ! yyg->yy_buffer_stack )
2995 				YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2996 	
2997 			memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2998 	
2999 			yyg->yy_buffer_stack_max = num_to_alloc;
3000 			yyg->yy_buffer_stack_top = 0;
3001 			return;
3002 		}
3003 	
3004 		if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
3005 	
3006 			/* Increase the buffer to prepare for a possible push. */
3007 			yy_size_t grow_size = 8 /* arbitrary grow size */;
3008 	
3009 			num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
3010 			yyg->yy_buffer_stack = (struct yy_buffer_state**)yyrealloc
3011 									(yyg->yy_buffer_stack,
3012 									num_to_alloc * sizeof(struct yy_buffer_state*)
3013 									, yyscanner);
3014 			if ( ! yyg->yy_buffer_stack )
3015 				YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3016 	
3017 			/* zero only the new slots.*/
3018 			memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
3019 			yyg->yy_buffer_stack_max = num_to_alloc;
3020 		}
3021 	}
3022 	
3023 	/** Setup the input buffer state to scan directly from a user-specified character buffer.
3024 	 * @param base the character buffer
3025 	 * @param size the size in bytes of the character buffer
3026 	 * @param yyscanner The scanner object.
3027 	 * @return the newly allocated buffer state object.
3028 	 */
3029 	YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
3030 	{
3031 		YY_BUFFER_STATE b;
3032 	    
3033 		if ( size < 2 ||
3034 		     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3035 		     base[size-1] != YY_END_OF_BUFFER_CHAR )
3036 			/* They forgot to leave room for the EOB's. */
3037 			return NULL;
3038 	
3039 		b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) , yyscanner );
3040 		if ( ! b )
3041 			YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3042 	
3043 		b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
3044 		b->yy_buf_pos = b->yy_ch_buf = base;
3045 		b->yy_is_our_buffer = 0;
3046 		b->yy_input_file = NULL;
3047 		b->yy_n_chars = b->yy_buf_size;
3048 		b->yy_is_interactive = 0;
3049 		b->yy_at_bol = 1;
3050 		b->yy_fill_buffer = 0;
3051 		b->yy_buffer_status = YY_BUFFER_NEW;
3052 	
3053 		yy_switch_to_buffer( b , yyscanner );
3054 	
3055 		return b;
3056 	}
3057 	
3058 	/** Setup the input buffer state to scan a string. The next call to yylex() will
3059 	 * scan from a @e copy of @a str.
3060 	 * @param yystr a NUL-terminated string to scan
3061 	 * @param yyscanner The scanner object.
3062 	 * @return the newly allocated buffer state object.
3063 	 * @note If you want to scan bytes that may contain NUL values, then use
3064 	 *       yy_scan_bytes() instead.
3065 	 */
3066 	YY_BUFFER_STATE yy_scan_string (const char * yystr , yyscan_t yyscanner)
3067 	{
3068 	    
3069 		return yy_scan_bytes( yystr, (int) strlen(yystr) , yyscanner);
3070 	}
3071 	
3072 	/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3073 	 * scan from a @e copy of @a bytes.
3074 	 * @param yybytes the byte buffer to scan
3075 	 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3076 	 * @param yyscanner The scanner object.
3077 	 * @return the newly allocated buffer state object.
3078 	 */
3079 	YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
3080 	{
3081 		YY_BUFFER_STATE b;
3082 		char *buf;
3083 		yy_size_t n;
3084 		int i;
3085 	    
3086 		/* Get memory for full buffer, including space for trailing EOB's. */
3087 		n = (yy_size_t) (_yybytes_len + 2);
3088 		buf = (char *) yyalloc( n , yyscanner );
3089 		if ( ! buf )
3090 			YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3091 	
3092 		for ( i = 0; i < _yybytes_len; ++i )
3093 			buf[i] = yybytes[i];
3094 	
3095 		buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3096 	
3097 		b = yy_scan_buffer( buf, n , yyscanner);
3098 		if ( ! b )
3099 			YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3100 	
3101 		/* It's okay to grow etc. this buffer, and we should throw it
3102 		 * away when we're done.
3103 		 */
3104 		b->yy_is_our_buffer = 1;
3105 	
3106 		return b;
3107 	}
3108 	
3109 	#ifndef YY_EXIT_FAILURE
3110 	#define YY_EXIT_FAILURE 2
3111 	#endif
3112 	
3113 	static void yynoreturn yy_fatal_error (const char* msg , yyscan_t yyscanner)
3114 	{
3115 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3116 		(void)yyg;
3117 		fprintf( stderr, "%s\n", msg );
3118 		exit( YY_EXIT_FAILURE );
3119 	}
3120 	
3121 	/* Redefine yyless() so it works in section 3 code. */
3122 	
3123 	#undef yyless
3124 	#define yyless(n) \
3125 		do \
3126 			{ \
3127 			/* Undo effects of setting up yytext. */ \
3128 	        int yyless_macro_arg = (n); \
3129 	        YY_LESS_LINENO(yyless_macro_arg);\
3130 			yytext[yyleng] = yyg->yy_hold_char; \
3131 			yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
3132 			yyg->yy_hold_char = *yyg->yy_c_buf_p; \
3133 			*yyg->yy_c_buf_p = '\0'; \
3134 			yyleng = yyless_macro_arg; \
3135 			} \
3136 		while ( 0 )
3137 	
3138 	/* Accessor  methods (get/set functions) to struct members. */
3139 	
3140 	/** Get the user-defined data for this scanner.
3141 	 * @param yyscanner The scanner object.
3142 	 */
3143 	YY_EXTRA_TYPE yyget_extra  (yyscan_t yyscanner)
3144 	{
3145 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3146 	    return yyextra;
3147 	}
3148 	
3149 	/** Get the current line number.
3150 	 * @param yyscanner The scanner object.
3151 	 */
3152 	int yyget_lineno  (yyscan_t yyscanner)
3153 	{
3154 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3155 	
3156 	        if (! YY_CURRENT_BUFFER)
3157 	            return 0;
3158 	    
3159 	    return yylineno;
3160 	}
3161 	
3162 	/** Get the current column number.
3163 	 * @param yyscanner The scanner object.
3164 	 */
3165 	int yyget_column  (yyscan_t yyscanner)
3166 	{
3167 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3168 	
3169 	        if (! YY_CURRENT_BUFFER)
3170 	            return 0;
3171 	    
3172 	    return yycolumn;
3173 	}
3174 	
3175 	/** Get the input stream.
3176 	 * @param yyscanner The scanner object.
3177 	 */
3178 	FILE *yyget_in  (yyscan_t yyscanner)
3179 	{
3180 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3181 	    return yyin;
3182 	}
3183 	
3184 	/** Get the output stream.
3185 	 * @param yyscanner The scanner object.
3186 	 */
3187 	FILE *yyget_out  (yyscan_t yyscanner)
3188 	{
3189 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3190 	    return yyout;
3191 	}
3192 	
3193 	/** Get the length of the current token.
3194 	 * @param yyscanner The scanner object.
3195 	 */
3196 	int yyget_leng  (yyscan_t yyscanner)
3197 	{
3198 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3199 	    return yyleng;
3200 	}
3201 	
3202 	/** Get the current token.
3203 	 * @param yyscanner The scanner object.
3204 	 */
3205 	
3206 	char *yyget_text  (yyscan_t yyscanner)
3207 	{
3208 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3209 	    return yytext;
3210 	}
3211 	
3212 	/** Set the user-defined data. This data is never touched by the scanner.
3213 	 * @param user_defined The data to be associated with this scanner.
3214 	 * @param yyscanner The scanner object.
3215 	 */
3216 	void yyset_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
3217 	{
3218 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3219 	    yyextra = user_defined ;
3220 	}
3221 	
3222 	/** Set the current line number.
3223 	 * @param _line_number line number
3224 	 * @param yyscanner The scanner object.
3225 	 */
3226 	void yyset_lineno (int  _line_number , yyscan_t yyscanner)
3227 	{
3228 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3229 	
3230 	        /* lineno is only valid if an input buffer exists. */
3231 	        if (! YY_CURRENT_BUFFER )
3232 	           YY_FATAL_ERROR( "yyset_lineno called with no buffer" );
3233 	    
3234 	    yylineno = _line_number;
3235 	}
3236 	
3237 	/** Set the current column.
3238 	 * @param _column_no column number
3239 	 * @param yyscanner The scanner object.
3240 	 */
3241 	void yyset_column (int  _column_no , yyscan_t yyscanner)
3242 	{
3243 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3244 	
3245 	        /* column is only valid if an input buffer exists. */
3246 	        if (! YY_CURRENT_BUFFER )
3247 	           YY_FATAL_ERROR( "yyset_column called with no buffer" );
3248 	    
3249 	    yycolumn = _column_no;
3250 	}
3251 	
3252 	/** Set the input stream. This does not discard the current
3253 	 * input buffer.
3254 	 * @param _in_str A readable stream.
3255 	 * @param yyscanner The scanner object.
3256 	 * @see yy_switch_to_buffer
3257 	 */
3258 	void yyset_in (FILE *  _in_str , yyscan_t yyscanner)
3259 	{
3260 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3261 	    yyin = _in_str ;
3262 	}
3263 	
3264 	void yyset_out (FILE *  _out_str , yyscan_t yyscanner)
3265 	{
3266 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3267 	    yyout = _out_str ;
3268 	}
3269 	
3270 	int yyget_debug  (yyscan_t yyscanner)
3271 	{
3272 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3273 	    return yy_flex_debug;
3274 	}
3275 	
3276 	void yyset_debug (int  _bdebug , yyscan_t yyscanner)
3277 	{
3278 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3279 	    yy_flex_debug = _bdebug ;
3280 	}
3281 	
3282 	/* Accessor methods for yylval and yylloc */
3283 	
3284 	YYSTYPE * yyget_lval  (yyscan_t yyscanner)
3285 	{
3286 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3287 	    return yylval;
3288 	}
3289 	
3290 	void yyset_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
3291 	{
3292 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3293 	    yylval = yylval_param;
3294 	}
3295 	
3296 	YYLTYPE *yyget_lloc  (yyscan_t yyscanner)
3297 	{
3298 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3299 	    return yylloc;
3300 	}
3301 	    
3302 	void yyset_lloc (YYLTYPE *  yylloc_param , yyscan_t yyscanner)
3303 	{
3304 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3305 	    yylloc = yylloc_param;
3306 	}
3307 	    
3308 	/* User-visible API */
3309 	
3310 	/* yylex_init is special because it creates the scanner itself, so it is
3311 	 * the ONLY reentrant function that doesn't take the scanner as the last argument.
3312 	 * That's why we explicitly handle the declaration, instead of using our macros.
3313 	 */
3314 	int yylex_init(yyscan_t* ptr_yy_globals)
3315 	{
3316 	    if (ptr_yy_globals == NULL){
3317 	        errno = EINVAL;
3318 	        return 1;
3319 	    }
3320 	
3321 	    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), NULL );
3322 	
3323 	    if (*ptr_yy_globals == NULL){
3324 	        errno = ENOMEM;
3325 	        return 1;
3326 	    }
3327 	
3328 	    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
3329 	    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3330 	
3331 	    return yy_init_globals ( *ptr_yy_globals );
3332 	}
3333 	
3334 	/* yylex_init_extra has the same functionality as yylex_init, but follows the
3335 	 * convention of taking the scanner as the last argument. Note however, that
3336 	 * this is a *pointer* to a scanner, as it will be allocated by this call (and
3337 	 * is the reason, too, why this function also must handle its own declaration).
3338 	 * The user defined value in the first argument will be available to yyalloc in
3339 	 * the yyextra field.
3340 	 */
3341 	int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
3342 	{
3343 	    struct yyguts_t dummy_yyguts;
3344 	
3345 	    yyset_extra (yy_user_defined, &dummy_yyguts);
3346 	
3347 	    if (ptr_yy_globals == NULL){
3348 	        errno = EINVAL;
3349 	        return 1;
3350 	    }
3351 	
3352 	    *ptr_yy_globals = (yyscan_t) yyalloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
3353 	
3354 	    if (*ptr_yy_globals == NULL){
3355 	        errno = ENOMEM;
3356 	        return 1;
3357 	    }
3358 	
3359 	    /* By setting to 0xAA, we expose bugs in
3360 	    yy_init_globals. Leave at 0x00 for releases. */
3361 	    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
3362 	
3363 	    yyset_extra (yy_user_defined, *ptr_yy_globals);
3364 	
3365 	    return yy_init_globals ( *ptr_yy_globals );
3366 	}
3367 	
3368 	static int yy_init_globals (yyscan_t yyscanner)
3369 	{
3370 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3371 	    /* Initialization is the same as for the non-reentrant scanner.
3372 	     * This function is called from yylex_destroy(), so don't allocate here.
3373 	     */
3374 	
3375 	    yyg->yy_buffer_stack = NULL;
3376 	    yyg->yy_buffer_stack_top = 0;
3377 	    yyg->yy_buffer_stack_max = 0;
3378 	    yyg->yy_c_buf_p = NULL;
3379 	    yyg->yy_init = 0;
3380 	    yyg->yy_start = 0;
3381 	
3382 	    yyg->yy_start_stack_ptr = 0;
3383 	    yyg->yy_start_stack_depth = 0;
3384 	    yyg->yy_start_stack =  NULL;
3385 	
3386 	/* Defined in main.c */
3387 	#ifdef YY_STDINIT
3388 	    yyin = stdin;
3389 	    yyout = stdout;
3390 	#else
3391 	    yyin = NULL;
3392 	    yyout = NULL;
3393 	#endif
3394 	
3395 	    /* For future reference: Set errno on error, since we are called by
3396 	     * yylex_init()
3397 	     */
3398 	    return 0;
3399 	}
3400 	
3401 	/* yylex_destroy is for both reentrant and non-reentrant scanners. */
3402 	int yylex_destroy  (yyscan_t yyscanner)
3403 	{
3404 	    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3405 	
3406 	    /* Pop the buffer stack, destroying each element. */
3407 		while(YY_CURRENT_BUFFER){
3408 			yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
3409 			YY_CURRENT_BUFFER_LVALUE = NULL;
3410 			yypop_buffer_state(yyscanner);
3411 		}
3412 	
3413 		/* Destroy the stack itself. */
3414 		yyfree(yyg->yy_buffer_stack , yyscanner);
3415 		yyg->yy_buffer_stack = NULL;
3416 	
3417 	    /* Destroy the start condition stack. */
3418 	        yyfree( yyg->yy_start_stack , yyscanner );
3419 	        yyg->yy_start_stack = NULL;
3420 	
3421 	    /* Reset the globals. This is important in a non-reentrant scanner so the next time
3422 	     * yylex() is called, initialization will occur. */
3423 	    yy_init_globals( yyscanner);
3424 	
3425 	    /* Destroy the main struct (reentrant only). */
3426 	    yyfree ( yyscanner , yyscanner );
3427 	    yyscanner = NULL;
3428 	    return 0;
3429 	}
3430 	
3431 	/*
3432 	 * Internal utility routines.
3433 	 */
3434 	
3435 	#ifndef yytext_ptr
3436 	static void yy_flex_strncpy (char* s1, const char * s2, int n , yyscan_t yyscanner)
3437 	{
3438 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3439 		(void)yyg;
3440 	
3441 		int i;
3442 		for ( i = 0; i < n; ++i )
3443 			s1[i] = s2[i];
3444 	}
3445 	#endif
3446 	
3447 	#ifdef YY_NEED_STRLEN
3448 	static int yy_flex_strlen (const char * s , yyscan_t yyscanner)
3449 	{
3450 		int n;
3451 		for ( n = 0; s[n]; ++n )
3452 			;
3453 	
3454 		return n;
3455 	}
3456 	#endif
3457 	
3458 	void *yyalloc (yy_size_t  size , yyscan_t yyscanner)
3459 	{
3460 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3461 		(void)yyg;
3462 		return malloc(size);
3463 	}
3464 	
3465 	void *yyrealloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
3466 	{
3467 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3468 		(void)yyg;
3469 	
3470 		/* The cast to (char *) in the following accommodates both
3471 		 * implementations that use char* generic pointers, and those
3472 		 * that use void* generic pointers.  It works with the latter
3473 		 * because both ANSI C and C++ allow castless assignment from
3474 		 * any pointer type to void*, and deal with argument conversions
3475 		 * as though doing an assignment.
3476 		 */
3477 		return realloc(ptr, size);
3478 	}
3479 	
3480 	void yyfree (void * ptr , yyscan_t yyscanner)
3481 	{
3482 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3483 		(void)yyg;
3484 		free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
3485 	}
3486 	
3487 	#define YYTABLES_NAME "yytables"
3488 	
3489 	#line 392 "/home/kkeithle/src/github/nfs-ganesha/src/config_parsing/conf_lex.l"
3490 	
3491 	
3492 	int ganeshun_yywrap(void *yyscanner){
3493 	    return 1;
3494 	}
3495 	
3496 	/*
3497 	 * This value represents a unique value for _this_ config_root. By tagging
3498 	 * each root with a value, we can propagate that value down to the structures
3499 	 * that this parsed tree touches. Then, later we can remove structures that
3500 	 * should no longer be present by looking to see if their generation number
3501 	 * predates this one.
3502 	 */
3503 	static uint64_t config_generation;
3504 	
3505 	int ganeshun_yy_init_parser(char *srcfile, struct parser_state *st)
3506 	{
3507 		FILE *in_file;
3508 		void *yyscanner = st->scanner;
3509 		/* reentrant scanner macro magic requires this... */
3510 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3511 		struct file_list *flist;
3512 		struct config_root *confroot;
3513 		YY_BUFFER_STATE inbuf;
3514 		int rc = ENOMEM;
3515 	
3516 		confroot = gsh_calloc(1, sizeof(struct config_root));
3517 	
3518 		glist_init(&confroot->root.node);
3519 		glist_init(&confroot->root.u.nterm.sub_nodes);
3520 		confroot->root.type = TYPE_ROOT;
3521 		confroot->generation = atomic_inc_uint64_t(&config_generation);
3522 		st->root_node = confroot;
3523 		ganeshun_yylex_init_extra(st, &st->scanner);
3524 		rc = new_file(srcfile, st);
3525 		if (rc == 0)
3526 			confroot->root.filename = gsh_strdup(srcfile);
3527 		return rc;
3528 	}
3529 	
3530 	void ganeshun_yy_cleanup_parser(struct parser_state *st)
3531 	{
3532 		int rc;
3533 	
3534 		if (st->curbs != NULL) {
3535 			st->err_type->parse = true;
3536 			while(pop_file(st) != 0);
3537 		}
3538 		ganeshun_yylex_destroy(st->scanner);
3539 	}
3540 	
3541 	static int new_file(char *name_tok,
3542 		     struct parser_state *st)
3543 	{
3544 		struct bufstack *bs = NULL;
3545 		FILE *in_file;
3546 		YY_BUFFER_STATE inbuf;
3547 		struct file_list *flist = NULL;
3548 		struct file_list *fp;
3549 		void *yyscanner = st->scanner;
3550 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3551 		struct config_root *confroot = st->root_node;
3552 		char *fullpath = NULL;
3553 		int rc = ENOMEM;
3554 		char *filename = alloca(strlen(name_tok) + 1);
3555 	
3556 		if (*name_tok == '\"') {
3557 			strcpy(filename, name_tok + 1);
3558 			filename[strlen(filename) - 1] = '\0';
3559 		} else {
3560 			strcpy(filename, name_tok); /* alloca'd memory freed on exit */
3561 		}
3562 		if (confroot->files == NULL) {
3563 			if (filename[0] == '/') {
3564 				char *path = alloca(strlen(filename) + 1);
3565 	
3566 				strcpy(path, filename);
3567 				confroot->conf_dir = gsh_strdup(dirname(path));
3568 			} else {
3569 				confroot->conf_dir = gsh_strdup(".");
3570 			}
3571 		}
3572 		if (filename[0] == '/') {
3573 			fullpath = gsh_strdup(filename);
3574 		} else {
3575 			fullpath = gsh_malloc(strlen(filename) +
3576 					      strlen(confroot->conf_dir) + 2);
3577 	
3578 			sprintf(fullpath, "%s/%s", confroot->conf_dir, filename);
3579 		}
3580 		/* loop detection */
3581 		for (fp = confroot->files; fp != NULL; fp = fp->next) {
3582 			if (!strcmp(fp->pathname, fullpath)) {
3583 				config_parse_error(yylloc, st,
3584 					"file (%s)already parsed, ignored",
3585 					fullpath);
3586 				rc = EINVAL;
3587 				goto errout;
3588 			}
3589 		}
3590 		bs = gsh_calloc(1, sizeof(struct bufstack));
3591 	
3592 		flist = gsh_calloc(1, sizeof(struct file_list));
3593 	
3594 		in_file = fopen(fullpath, "r" );
3595 		if (in_file == NULL) {
3596 			rc = errno;
3597 			config_parse_error(yylloc, st,
3598 				"new file (%s) open error (%s), ignored",
3599 				fullpath, strerror(rc));
3600 			goto errout;
3601 		}
3602 		bs->bs = ganeshun_yy_create_buffer(in_file,
3603 						 YY_BUF_SIZE,
3604 						 yyscanner);
3605 		if (st->curbs)
3606 			st->curbs->lineno = yylineno;
3607 		bs->prev = st->curbs;
3608 		bs->f = in_file;
3609 		bs->filename = fullpath;
3610 		ganeshun_yy_switch_to_buffer(bs->bs, yyscanner);
3611 		st->current_file = fullpath;
3612 		st->curbs = bs;
3613 		flist->pathname = fullpath;
3614 		flist->next = confroot->files;
3615 		confroot->files = flist;
3616 		return 0;
3617 	
3618 	errout:
3619 		if (rc == ENOMEM)
3620 			st->err_type->resource = true;
3621 		else
3622 			st->err_type->scan = true;
3623 	
3624 		gsh_free(flist);
3625 		gsh_free(bs);
3626 		gsh_free(fullpath);
3627 	
3628 		return rc;
3629 	}
3630 	
3631 	/* fetch_url */
3632 	static int fetch_url(char *name_tok, struct parser_state *st)
3633 	{
3634 		struct bufstack *bs = NULL;
3635 		YY_BUFFER_STATE inbuf;
3636 		struct file_list *flist = NULL;
3637 		struct file_list *fp;
3638 		void *yyscanner = st->scanner;
3639 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3640 		struct config_root *confroot = st->root_node;
3641 		char *filename = NULL;
3642 		int rc = ENOMEM;
3643 	
3644 	#ifdef NO_URL_RECURSION
3645 		/* forbid URL chasing */
3646 		if (st->curbs && (st->curbs->flags & BS_FLAG_URL)) {
3647 			config_parse_error(yylloc, st,
3648 				"new url (%s) transitive fetch from (%s), ignored",
3649 				name_tok, st->curbs->filename);
3650 			goto errout;
3651 		}
3652 	#endif
3653 		filename = gsh_strdup(name_tok);
3654 	
3655 		bs = gsh_calloc(1, sizeof(struct bufstack));
3656 		flist = gsh_calloc(1, sizeof(struct file_list));
3657 	
3658 		rc = config_url_fetch(filename, &bs->f, &bs->fbuf);
3659 		if (bs->f == NULL) {
3660 			config_parse_error(yylloc, st,
3661 				"new url (%s) open error (%s), ignored",
3662 				filename, strerror(rc));
3663 			goto errout;
3664 		}
3665 		bs->bs = ganeshun_yy_create_buffer(bs->f, YY_BUF_SIZE, yyscanner);
3666 		if (st->curbs)
3667 			st->curbs->lineno = yylineno;
3668 		bs->prev = st->curbs;
3669 		bs->filename = filename;
3670 		bs->flags = BS_FLAG_URL;
3671 		ganeshun_yy_switch_to_buffer(bs->bs, yyscanner);
3672 		st->current_file = gsh_strdup(bs->filename);
3673 		st->curbs = bs;
3674 		flist->pathname = gsh_strdup(bs->filename); /* XXX */
3675 		flist->next = confroot->files;
3676 		confroot->files = flist;
3677 		return 0;
3678 	
3679 	errout:
3680 		if (rc == ENOMEM)
3681 			st->err_type->resource = true;
3682 		else
3683 			st->err_type->scan = true;
3684 	
3685 		gsh_free(flist);
3686 		gsh_free(bs);
3687 		gsh_free(filename);
3688 	
3689 		return rc;
3690 	} /* fetch_url() */
3691 	
3692 	static int pop_file(struct parser_state *st)
3693 	{
3694 		struct bufstack *bs = st->curbs;
3695 		struct bufstack *prevbs;
3696 		void *yyscanner = st->scanner;
3697 		struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
3698 	
3699 		if (bs == NULL)
3700 			return 0;
3701 		if (bs->flags & BS_FLAG_URL) {
3702 			config_url_release(bs->f, bs->fbuf);
3703 		} else {
3704 			fclose(bs->f);
3705 		}
3706 		ganeshun_yy_delete_buffer(bs->bs, yyscanner);
3707 		prevbs = bs->prev;
3708 		st->curbs = prevbs;
3709 		gsh_free(bs);
3710 		if (prevbs == NULL)
3711 			return 0;
3712 		ganeshun_yy_switch_to_buffer(prevbs->bs, yyscanner);
3713 		yylineno = st->curbs->lineno;
3714 		st->current_file = st->curbs->filename;
3715 		return 1;
3716 	}
3717 	
3718