1178825Sdfr
2178825Sdfr#line 3 "lex.c"
3178825Sdfr
4178825Sdfr#define  YY_INT_ALIGNED short int
5178825Sdfr
6178825Sdfr/* A lexical scanner generated by flex */
7178825Sdfr
8178825Sdfr#define FLEX_SCANNER
9178825Sdfr#define YY_FLEX_MAJOR_VERSION 2
10178825Sdfr#define YY_FLEX_MINOR_VERSION 5
11233294Sstas#define YY_FLEX_SUBMINOR_VERSION 35
12178825Sdfr#if YY_FLEX_SUBMINOR_VERSION > 0
13178825Sdfr#define FLEX_BETA
14178825Sdfr#endif
15178825Sdfr
16178825Sdfr/* First, we deal with  platform-specific or compiler-specific issues. */
17178825Sdfr
18178825Sdfr/* begin standard C headers. */
19178825Sdfr#include <stdio.h>
20178825Sdfr#include <string.h>
21178825Sdfr#include <errno.h>
22178825Sdfr#include <stdlib.h>
23178825Sdfr
24178825Sdfr/* end standard C headers. */
25178825Sdfr
26178825Sdfr/* flex integer type definitions */
27178825Sdfr
28178825Sdfr#ifndef FLEXINT_H
29178825Sdfr#define FLEXINT_H
30178825Sdfr
31178825Sdfr/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32178825Sdfr
33233294Sstas#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34178825Sdfr
35178825Sdfr/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36178825Sdfr * if you want the limit (max/min) macros for int types.
37178825Sdfr */
38178825Sdfr#ifndef __STDC_LIMIT_MACROS
39178825Sdfr#define __STDC_LIMIT_MACROS 1
40178825Sdfr#endif
41178825Sdfr
42178825Sdfr#include <inttypes.h>
43178825Sdfrtypedef int8_t flex_int8_t;
44178825Sdfrtypedef uint8_t flex_uint8_t;
45178825Sdfrtypedef int16_t flex_int16_t;
46178825Sdfrtypedef uint16_t flex_uint16_t;
47178825Sdfrtypedef int32_t flex_int32_t;
48178825Sdfrtypedef uint32_t flex_uint32_t;
49178825Sdfr#else
50178825Sdfrtypedef signed char flex_int8_t;
51178825Sdfrtypedef short int flex_int16_t;
52178825Sdfrtypedef int flex_int32_t;
53178825Sdfrtypedef unsigned char flex_uint8_t;
54178825Sdfrtypedef unsigned short int flex_uint16_t;
55178825Sdfrtypedef unsigned int flex_uint32_t;
56178825Sdfr#endif /* ! C99 */
57178825Sdfr
58178825Sdfr/* Limits of integral types. */
59178825Sdfr#ifndef INT8_MIN
60178825Sdfr#define INT8_MIN               (-128)
61178825Sdfr#endif
62178825Sdfr#ifndef INT16_MIN
63178825Sdfr#define INT16_MIN              (-32767-1)
64178825Sdfr#endif
65178825Sdfr#ifndef INT32_MIN
66178825Sdfr#define INT32_MIN              (-2147483647-1)
67178825Sdfr#endif
68178825Sdfr#ifndef INT8_MAX
69178825Sdfr#define INT8_MAX               (127)
70178825Sdfr#endif
71178825Sdfr#ifndef INT16_MAX
72178825Sdfr#define INT16_MAX              (32767)
73178825Sdfr#endif
74178825Sdfr#ifndef INT32_MAX
75178825Sdfr#define INT32_MAX              (2147483647)
76178825Sdfr#endif
77178825Sdfr#ifndef UINT8_MAX
78178825Sdfr#define UINT8_MAX              (255U)
79178825Sdfr#endif
80178825Sdfr#ifndef UINT16_MAX
81178825Sdfr#define UINT16_MAX             (65535U)
82178825Sdfr#endif
83178825Sdfr#ifndef UINT32_MAX
84178825Sdfr#define UINT32_MAX             (4294967295U)
85178825Sdfr#endif
86178825Sdfr
87178825Sdfr#endif /* ! FLEXINT_H */
88178825Sdfr
89178825Sdfr#ifdef __cplusplus
90178825Sdfr
91178825Sdfr/* The "const" storage-class-modifier is valid. */
92178825Sdfr#define YY_USE_CONST
93178825Sdfr
94178825Sdfr#else	/* ! __cplusplus */
95178825Sdfr
96233294Sstas/* C99 requires __STDC__ to be defined as 1. */
97233294Sstas#if defined (__STDC__)
98178825Sdfr
99178825Sdfr#define YY_USE_CONST
100178825Sdfr
101233294Sstas#endif	/* defined (__STDC__) */
102178825Sdfr#endif	/* ! __cplusplus */
103178825Sdfr
104178825Sdfr#ifdef YY_USE_CONST
105178825Sdfr#define yyconst const
106178825Sdfr#else
107178825Sdfr#define yyconst
108178825Sdfr#endif
109178825Sdfr
110178825Sdfr/* Returned upon end-of-file. */
111178825Sdfr#define YY_NULL 0
112178825Sdfr
113178825Sdfr/* Promotes a possibly negative, possibly signed char to an unsigned
114178825Sdfr * integer for use as an array index.  If the signed char is negative,
115178825Sdfr * we want to instead treat it as an 8-bit unsigned char, hence the
116178825Sdfr * double cast.
117178825Sdfr */
118178825Sdfr#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119178825Sdfr
120178825Sdfr/* Enter a start condition.  This macro really ought to take a parameter,
121178825Sdfr * but we do it the disgusting crufty way forced on us by the ()-less
122178825Sdfr * definition of BEGIN.
123178825Sdfr */
124178825Sdfr#define BEGIN (yy_start) = 1 + 2 *
125178825Sdfr
126178825Sdfr/* Translate the current start state into a value that can be later handed
127178825Sdfr * to BEGIN to return to the state.  The YYSTATE alias is for lex
128178825Sdfr * compatibility.
129178825Sdfr */
130178825Sdfr#define YY_START (((yy_start) - 1) / 2)
131178825Sdfr#define YYSTATE YY_START
132178825Sdfr
133178825Sdfr/* Action number for EOF rule of a given start state. */
134178825Sdfr#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135178825Sdfr
136178825Sdfr/* Special action meaning "start processing a new file". */
137178825Sdfr#define YY_NEW_FILE yyrestart(yyin  )
138178825Sdfr
139178825Sdfr#define YY_END_OF_BUFFER_CHAR 0
140178825Sdfr
141178825Sdfr/* Size of default input buffer. */
142178825Sdfr#ifndef YY_BUF_SIZE
143178825Sdfr#define YY_BUF_SIZE 16384
144178825Sdfr#endif
145178825Sdfr
146178825Sdfr/* The state buf must be large enough to hold one state per character in the main buffer.
147178825Sdfr */
148178825Sdfr#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149178825Sdfr
150178825Sdfr#ifndef YY_TYPEDEF_YY_BUFFER_STATE
151178825Sdfr#define YY_TYPEDEF_YY_BUFFER_STATE
152178825Sdfrtypedef struct yy_buffer_state *YY_BUFFER_STATE;
153178825Sdfr#endif
154178825Sdfr
155233294Sstas#ifndef YY_TYPEDEF_YY_SIZE_T
156233294Sstas#define YY_TYPEDEF_YY_SIZE_T
157233294Sstastypedef size_t yy_size_t;
158233294Sstas#endif
159178825Sdfr
160233294Sstasextern yy_size_t yyleng;
161233294Sstas
162178825Sdfrextern FILE *yyin, *yyout;
163178825Sdfr
164178825Sdfr#define EOB_ACT_CONTINUE_SCAN 0
165178825Sdfr#define EOB_ACT_END_OF_FILE 1
166178825Sdfr#define EOB_ACT_LAST_MATCH 2
167178825Sdfr
168178825Sdfr    #define YY_LESS_LINENO(n)
169178825Sdfr
170178825Sdfr/* Return all but the first "n" matched characters back to the input stream. */
171178825Sdfr#define yyless(n) \
172178825Sdfr	do \
173178825Sdfr		{ \
174178825Sdfr		/* Undo effects of setting up yytext. */ \
175178825Sdfr        int yyless_macro_arg = (n); \
176178825Sdfr        YY_LESS_LINENO(yyless_macro_arg);\
177178825Sdfr		*yy_cp = (yy_hold_char); \
178178825Sdfr		YY_RESTORE_YY_MORE_OFFSET \
179178825Sdfr		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
180178825Sdfr		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
181178825Sdfr		} \
182178825Sdfr	while ( 0 )
183178825Sdfr
184178825Sdfr#define unput(c) yyunput( c, (yytext_ptr)  )
185178825Sdfr
186178825Sdfr#ifndef YY_STRUCT_YY_BUFFER_STATE
187178825Sdfr#define YY_STRUCT_YY_BUFFER_STATE
188178825Sdfrstruct yy_buffer_state
189178825Sdfr	{
190178825Sdfr	FILE *yy_input_file;
191178825Sdfr
192178825Sdfr	char *yy_ch_buf;		/* input buffer */
193178825Sdfr	char *yy_buf_pos;		/* current position in input buffer */
194178825Sdfr
195178825Sdfr	/* Size of input buffer in bytes, not including room for EOB
196178825Sdfr	 * characters.
197178825Sdfr	 */
198178825Sdfr	yy_size_t yy_buf_size;
199178825Sdfr
200178825Sdfr	/* Number of characters read into yy_ch_buf, not including EOB
201178825Sdfr	 * characters.
202178825Sdfr	 */
203233294Sstas	yy_size_t yy_n_chars;
204178825Sdfr
205178825Sdfr	/* Whether we "own" the buffer - i.e., we know we created it,
206178825Sdfr	 * and can realloc() it to grow it, and should free() it to
207178825Sdfr	 * delete it.
208178825Sdfr	 */
209178825Sdfr	int yy_is_our_buffer;
210178825Sdfr
211178825Sdfr	/* Whether this is an "interactive" input source; if so, and
212178825Sdfr	 * if we're using stdio for input, then we want to use getc()
213178825Sdfr	 * instead of fread(), to make sure we stop fetching input after
214178825Sdfr	 * each newline.
215178825Sdfr	 */
216178825Sdfr	int yy_is_interactive;
217178825Sdfr
218178825Sdfr	/* Whether we're considered to be at the beginning of a line.
219178825Sdfr	 * If so, '^' rules will be active on the next match, otherwise
220178825Sdfr	 * not.
221178825Sdfr	 */
222178825Sdfr	int yy_at_bol;
223178825Sdfr
224178825Sdfr    int yy_bs_lineno; /**< The line count. */
225178825Sdfr    int yy_bs_column; /**< The column count. */
226178825Sdfr
227178825Sdfr	/* Whether to try to fill the input buffer when we reach the
228178825Sdfr	 * end of it.
229178825Sdfr	 */
230178825Sdfr	int yy_fill_buffer;
231178825Sdfr
232178825Sdfr	int yy_buffer_status;
233178825Sdfr
234178825Sdfr#define YY_BUFFER_NEW 0
235178825Sdfr#define YY_BUFFER_NORMAL 1
236178825Sdfr	/* When an EOF's been seen but there's still some text to process
237178825Sdfr	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
238178825Sdfr	 * shouldn't try reading from the input source any more.  We might
239178825Sdfr	 * still have a bunch of tokens to match, though, because of
240178825Sdfr	 * possible backing-up.
241178825Sdfr	 *
242178825Sdfr	 * When we actually see the EOF, we change the status to "new"
243178825Sdfr	 * (via yyrestart()), so that the user can continue scanning by
244178825Sdfr	 * just pointing yyin at a new input file.
245178825Sdfr	 */
246178825Sdfr#define YY_BUFFER_EOF_PENDING 2
247178825Sdfr
248178825Sdfr	};
249178825Sdfr#endif /* !YY_STRUCT_YY_BUFFER_STATE */
250178825Sdfr
251178825Sdfr/* Stack of input buffers. */
252178825Sdfrstatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
253178825Sdfrstatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
254178825Sdfrstatic YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
255178825Sdfr
256178825Sdfr/* We provide macros for accessing buffer states in case in the
257178825Sdfr * future we want to put the buffer states in a more general
258178825Sdfr * "scanner state".
259178825Sdfr *
260178825Sdfr * Returns the top of the stack, or NULL.
261178825Sdfr */
262178825Sdfr#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
263178825Sdfr                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
264178825Sdfr                          : NULL)
265178825Sdfr
266178825Sdfr/* Same as previous macro, but useful when we know that the buffer stack is not
267178825Sdfr * NULL or when we need an lvalue. For internal use only.
268178825Sdfr */
269178825Sdfr#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
270178825Sdfr
271178825Sdfr/* yy_hold_char holds the character lost when yytext is formed. */
272178825Sdfrstatic char yy_hold_char;
273233294Sstasstatic yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
274233294Sstasyy_size_t yyleng;
275178825Sdfr
276178825Sdfr/* Points to current character in buffer. */
277178825Sdfrstatic char *yy_c_buf_p = (char *) 0;
278178825Sdfrstatic int yy_init = 0;		/* whether we need to initialize */
279178825Sdfrstatic int yy_start = 0;	/* start state number */
280178825Sdfr
281178825Sdfr/* Flag which is used to allow yywrap()'s to do buffer switches
282178825Sdfr * instead of setting up a fresh yyin.  A bit of a hack ...
283178825Sdfr */
284178825Sdfrstatic int yy_did_buffer_switch_on_eof;
285178825Sdfr
286178825Sdfrvoid yyrestart (FILE *input_file  );
287178825Sdfrvoid yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
288178825SdfrYY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
289178825Sdfrvoid yy_delete_buffer (YY_BUFFER_STATE b  );
290178825Sdfrvoid yy_flush_buffer (YY_BUFFER_STATE b  );
291178825Sdfrvoid yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
292178825Sdfrvoid yypop_buffer_state (void );
293178825Sdfr
294178825Sdfrstatic void yyensure_buffer_stack (void );
295178825Sdfrstatic void yy_load_buffer_state (void );
296178825Sdfrstatic void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
297178825Sdfr
298178825Sdfr#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
299178825Sdfr
300178825SdfrYY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
301178825SdfrYY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
302233294SstasYY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
303178825Sdfr
304178825Sdfrvoid *yyalloc (yy_size_t  );
305178825Sdfrvoid *yyrealloc (void *,yy_size_t  );
306178825Sdfrvoid yyfree (void *  );
307178825Sdfr
308178825Sdfr#define yy_new_buffer yy_create_buffer
309178825Sdfr
310178825Sdfr#define yy_set_interactive(is_interactive) \
311178825Sdfr	{ \
312178825Sdfr	if ( ! YY_CURRENT_BUFFER ){ \
313178825Sdfr        yyensure_buffer_stack (); \
314178825Sdfr		YY_CURRENT_BUFFER_LVALUE =    \
315178825Sdfr            yy_create_buffer(yyin,YY_BUF_SIZE ); \
316178825Sdfr	} \
317178825Sdfr	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318178825Sdfr	}
319178825Sdfr
320178825Sdfr#define yy_set_bol(at_bol) \
321178825Sdfr	{ \
322178825Sdfr	if ( ! YY_CURRENT_BUFFER ){\
323178825Sdfr        yyensure_buffer_stack (); \
324178825Sdfr		YY_CURRENT_BUFFER_LVALUE =    \
325178825Sdfr            yy_create_buffer(yyin,YY_BUF_SIZE ); \
326178825Sdfr	} \
327178825Sdfr	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
328178825Sdfr	}
329178825Sdfr
330178825Sdfr#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
331178825Sdfr
332178825Sdfr/* Begin user sect3 */
333178825Sdfr
334178825Sdfrtypedef unsigned char YY_CHAR;
335178825Sdfr
336178825SdfrFILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
337178825Sdfr
338178825Sdfrtypedef int yy_state_type;
339178825Sdfr
340178825Sdfrextern int yylineno;
341178825Sdfr
342178825Sdfrint yylineno = 1;
343178825Sdfr
344178825Sdfrextern char *yytext;
345178825Sdfr#define yytext_ptr yytext
346178825Sdfr
347178825Sdfrstatic yy_state_type yy_get_previous_state (void );
348178825Sdfrstatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
349178825Sdfrstatic int yy_get_next_buffer (void );
350178825Sdfrstatic void yy_fatal_error (yyconst char msg[]  );
351178825Sdfr
352178825Sdfr/* Done after the current pattern has been matched and before the
353178825Sdfr * corresponding action - sets up yytext.
354178825Sdfr */
355178825Sdfr#define YY_DO_BEFORE_ACTION \
356178825Sdfr	(yytext_ptr) = yy_bp; \
357178825Sdfr	yyleng = (size_t) (yy_cp - yy_bp); \
358178825Sdfr	(yy_hold_char) = *yy_cp; \
359178825Sdfr	*yy_cp = '\0'; \
360178825Sdfr	(yy_c_buf_p) = yy_cp;
361178825Sdfr
362178825Sdfr#define YY_NUM_RULES 95
363178825Sdfr#define YY_END_OF_BUFFER 96
364178825Sdfr/* This struct is not used in this scanner,
365178825Sdfr   but its presence is necessary. */
366178825Sdfrstruct yy_trans_info
367178825Sdfr	{
368178825Sdfr	flex_int32_t yy_verify;
369178825Sdfr	flex_int32_t yy_nxt;
370178825Sdfr	};
371178825Sdfrstatic yyconst flex_int16_t yy_accept[568] =
372178825Sdfr    {   0,
373178825Sdfr        0,    0,   96,   94,   90,   91,   87,   81,   81,   94,
374178825Sdfr       94,   88,   88,   94,   89,   89,   89,   89,   89,   89,
375178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
376178825Sdfr       89,   89,   89,   82,   83,   85,   88,   88,   93,   86,
377178825Sdfr        0,    0,   89,   89,   89,   89,   89,   89,   89,   89,
378178825Sdfr       89,   10,   89,   89,   89,   89,   89,   89,   89,   89,
379178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
380178825Sdfr       89,   89,   89,   89,   51,   89,   89,   89,   89,   89,
381178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
382178825Sdfr       89,   89,   89,   89,   89,   89,   89,   92,   88,   84,
383178825Sdfr
384178825Sdfr       89,    3,   89,   89,   89,    7,   89,   89,   89,   89,
385178825Sdfr       89,   89,   89,   89,   89,   89,   22,   89,   89,   89,
386178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
387178825Sdfr       89,   89,   44,   45,   89,   89,   89,   89,   89,   89,
388178825Sdfr       89,   55,   89,   89,   89,   89,   89,   89,   89,   63,
389178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
390178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
391178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
392178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   30,   89,
393178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
394178825Sdfr
395178825Sdfr       47,   89,   89,   89,   89,   89,   89,   89,   89,   89,
396178825Sdfr       89,   60,   89,   89,   64,   89,   89,   89,   68,   69,
397178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
398178825Sdfr       80,   89,   89,   89,   89,    6,   89,   89,   89,   89,
399178825Sdfr       13,   89,   89,   89,   89,   89,   89,   89,   89,   89,
400178825Sdfr       89,   89,   89,   89,   29,   89,   89,   89,   89,   89,
401178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   50,
402178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
403178825Sdfr       89,   89,   89,   89,   72,   89,   89,   89,   89,   89,
404178825Sdfr       89,   89,    1,   89,   89,   89,   89,   89,   89,   12,
405178825Sdfr
406178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   24,   89,
407178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
408178825Sdfr       89,   89,   89,   89,   89,   89,   89,   49,   89,   89,
409178825Sdfr       89,   89,   89,   89,   89,   89,   89,   65,   66,   89,
410178825Sdfr       89,   89,   73,   89,   89,   89,   89,   89,   89,   89,
411178825Sdfr       89,   89,   89,    9,   89,   89,   89,   89,   18,   89,
412178825Sdfr       89,   21,   89,   89,   26,   89,   89,   89,   89,   89,
413178825Sdfr       89,   89,   37,   38,   89,   89,   41,   89,   89,   89,
414178825Sdfr       89,   89,   89,   54,   89,   57,   58,   89,   89,   89,
415178825Sdfr       89,   89,   89,   89,   75,   89,   89,   89,   89,   89,
416178825Sdfr
417178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   20,   89,
418178825Sdfr       25,   89,   28,   89,   89,   89,   89,   89,   36,   39,
419178825Sdfr       40,   89,   89,   89,   89,   52,   89,   89,   89,   89,
420178825Sdfr       62,   89,   89,   89,   89,   89,   89,   89,   89,   89,
421178825Sdfr       89,    5,    8,   11,   14,   89,   89,   89,   89,   89,
422178825Sdfr       89,   89,   89,   34,   89,   89,   89,   89,   89,   89,
423178825Sdfr       89,   89,   89,   67,   89,   89,   74,   89,   89,   89,
424178825Sdfr       89,   89,   89,   15,   89,   17,   89,   23,   89,   89,
425178825Sdfr       89,   89,   35,   89,   89,   89,   89,   89,   89,   89,
426178825Sdfr       89,   89,   89,   76,   89,   89,   89,   89,    4,   16,
427178825Sdfr
428178825Sdfr       19,   89,   89,   89,   89,   89,   89,   89,   89,   89,
429178825Sdfr       89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
430178825Sdfr       89,   89,   89,   42,   43,   89,   89,   89,   89,   89,
431178825Sdfr       61,   89,   89,   89,   89,   89,   89,   27,   31,   89,
432178825Sdfr       33,   89,   48,   89,   56,   89,   89,   71,   89,   89,
433178825Sdfr       79,   89,   89,   46,   89,   89,   89,   89,   78,    2,
434178825Sdfr       32,   89,   59,   70,   77,   53,    0
435178825Sdfr    } ;
436178825Sdfr
437178825Sdfrstatic yyconst flex_int32_t yy_ec[256] =
438178825Sdfr    {   0,
439178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
440178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
441178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
442178825Sdfr        1,    2,    1,    4,    1,    1,    1,    1,    1,    5,
443178825Sdfr        5,    6,    1,    5,    7,    8,    9,   10,   11,   12,
444178825Sdfr       12,   13,   14,   15,   12,   16,   12,   17,    5,    1,
445178825Sdfr       18,    1,    1,    1,   19,   20,   21,   22,   23,   24,
446178825Sdfr       25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
447178825Sdfr       35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
448178825Sdfr       45,    1,   46,    1,   47,    1,   48,   49,   50,   51,
449178825Sdfr
450178825Sdfr       52,   53,   54,   55,   56,   57,   29,   58,   59,   60,
451178825Sdfr       61,   62,   29,   63,   64,   65,   66,   67,   29,   68,
452178825Sdfr       29,   69,    5,    5,    5,    1,    1,    1,    1,    1,
453178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
454178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
455178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
456178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
457178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
458178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
459178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
460178825Sdfr
461178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
462178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
463178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
464178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
465178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
466178825Sdfr        1,    1,    1,    1,    1
467178825Sdfr    } ;
468178825Sdfr
469178825Sdfrstatic yyconst flex_int32_t yy_meta[70] =
470178825Sdfr    {   0,
471178825Sdfr        1,    1,    1,    1,    1,    1,    2,    1,    1,    3,
472178825Sdfr        3,    3,    3,    3,    3,    3,    1,    1,    3,    3,
473178825Sdfr        3,    3,    3,    3,    2,    2,    2,    2,    2,    2,
474178825Sdfr        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
475178825Sdfr        2,    2,    2,    2,    1,    1,    2,    3,    3,    3,
476178825Sdfr        3,    3,    3,    2,    2,    2,    2,    2,    2,    2,
477178825Sdfr        2,    2,    2,    2,    2,    2,    2,    2,    2
478178825Sdfr    } ;
479178825Sdfr
480178825Sdfrstatic yyconst flex_int16_t yy_base[570] =
481178825Sdfr    {   0,
482178825Sdfr        0,    0,  636,  637,  637,  637,  637,  637,   63,  627,
483178825Sdfr      628,   70,   77,  616,   74,   72,   76,  609,   65,   81,
484178825Sdfr       49,    0,   92,   91,   32,  101,   97,  608,  103,  113,
485178825Sdfr       99,  574,  602,  637,  637,  637,  156,  163,  620,  637,
486178825Sdfr        0,  609,    0,  589,  595,  590,  585,  597,  583,  586,
487178825Sdfr      586,    0,  101,  599,  108,  593,  596,  122,  124,  585,
488178825Sdfr      581,  553,  564,  597,  587,  575,  115,  575,  565,  574,
489178825Sdfr      575,  545,  575,  564,    0,  563,  543,  561,  558,  558,
490178825Sdfr      124,  540,  161,  119,  551,  558,  561,  581,  566,  551,
491178825Sdfr      555,  530,  560,  160,  530,   91,  547,  637,    0,  637,
492178825Sdfr
493178825Sdfr      125,    0,  554,  550,  555,    0,  544,  550,  543,  551,
494178825Sdfr      540,  542,  145,  166,  552,  541,    0,  542,  549,  156,
495178825Sdfr      548,  533,  538,  516,  505,  529,  533,  157,  534,  525,
496178825Sdfr      539,  546,    0,  521,  529,  506,  534,  533,  528,  502,
497178825Sdfr      515,    0,  515,  514,  510,  489,  518,  528,  507,    0,
498178825Sdfr      522,  517,  505,  505,  504,  517,  516,  486,  159,  499,
499178825Sdfr      520,  468,  482,  477,  506,  499,  494,  502,  497,  495,
500178825Sdfr      461,  502,  505,  502,  485,  488,  482,  500,  479,  485,
501178825Sdfr      494,  493,  491,  479,  485,  475,  164,  487,    0,  446,
502178825Sdfr      453,  442,  468,  478,  468,  464,  483,  170,  488,  463,
503178825Sdfr
504178825Sdfr        0,  436,  477,  459,  463,  445,  471,  486,  469,  472,
505178825Sdfr      425,    0,  451,  465,    0,  455,  467,  420,    0,    0,
506178825Sdfr      477,  418,  450,  442,  457,  423,  441,  425,  415,  426,
507178825Sdfr        0,  436,  454,  451,  452,    0,  407,  450,  447,  444,
508178825Sdfr        0,  434,  429,  437,  433,  435,  439,  437,  423,  420,
509178825Sdfr      436,  418,  418,  422,    0,  405,  396,  388,  423,  180,
510178825Sdfr      411,  426,  415,  423,  408,  429,  436,  386,  403,    0,
511178825Sdfr      408,  374,  402,  410,  404,  397,  386,  406,  400,  406,
512178825Sdfr      388,  366,  401,  375,    0,  403,  389,  365,  358,  359,
513178825Sdfr      356,  362,    0,  398,  399,  379,  360,  383,  376,    0,
514178825Sdfr
515178825Sdfr      390,  393,  379,  372,  371,  385,  385,  387,    0,  378,
516178825Sdfr      367,  376,  383,  343,  350,  343,  374,  370,  374,  358,
517178825Sdfr      371,  372,  356,  368,  353,  362,  338,    0,  368,  364,
518178825Sdfr      353,  352,  345,  359,  332,  340,  358,    0,    0,  322,
519178825Sdfr      355,  308,    0,  338,  322,  310,  308,  319,  318,  331,
520178825Sdfr      330,  340,  306,    0,  342,  332,  336,  335,    0,  334,
521178825Sdfr      338,    0,  321,  320,    0,  337,  326,  151,  318,  294,
522178825Sdfr      326,  314,    0,    0,  314,  327,    0,  328,  283,  315,
523178825Sdfr      309,  315,  292,    0,  319,    0,    0,  284,  318,  317,
524178825Sdfr      279,  315,  300,  317,    0,  279,  286,  265,  295,  324,
525178825Sdfr
526178825Sdfr      303,  308,  274,  291,  288,  293,  292,  290,    0,  299,
527178825Sdfr        0,  294,    0,  255,  250,  253,  263,  293,    0,    0,
528178825Sdfr        0,  277,  251,  289,  247,    0,  247,  283,  257,  261,
529178825Sdfr        0,  253,  274,  240,  274,  243,  244,  264,  235,  262,
530178825Sdfr      265,    0,    0,    0,  260,  273,  270,  262,  271,  262,
531178825Sdfr      228,  238,  226,    0,  252,  260,  230,  258,  221,  233,
532178825Sdfr      250,  244,  247,    0,  241,  215,    0,  223,  239,  210,
533178825Sdfr      211,  230,  240,    0,  249,    0,  233,    0,  242,  212,
534178825Sdfr      216,  210,    0,  232,  204,  231,  206,  198,  233,  194,
535178825Sdfr      231,  230,  200,    0,  190,  191,  197,  220,    0,    0,
536178825Sdfr
537178825Sdfr        0,  213,  190,  211,  188,  215,  192,  218,  184,  187,
538178825Sdfr      204,  178,  218,  215,  178,  174,  180,  175,  196,  190,
539178825Sdfr      178,  175,  176,    0,    0,  191,  174,  165,  180,  166,
540178825Sdfr        0,  194,  166,  163,  158,  163,  197,    0,    0,  156,
541178825Sdfr        0,  171,    0,  148,    0,  152,  188,    0,  150,  155,
542178825Sdfr        0,  166,  153,    0,  143,  148,  162,  143,    0,    0,
543178825Sdfr        0,  101,    0,    0,    0,    0,  637,  223,   69
544178825Sdfr    } ;
545178825Sdfr
546178825Sdfrstatic yyconst flex_int16_t yy_def[570] =
547178825Sdfr    {   0,
548178825Sdfr      567,    1,  567,  567,  567,  567,  567,  567,  567,  567,
549178825Sdfr      567,  567,  567,  567,  568,  568,  568,  568,  568,  568,
550178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
551178825Sdfr      568,  568,  568,  567,  567,  567,  567,  567,  567,  567,
552178825Sdfr      569,  567,  568,  568,  568,  568,  568,  568,  568,  568,
553178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
554178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
555178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
556178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
557178825Sdfr      568,  568,  568,  568,  568,  568,  568,  567,  569,  567,
558178825Sdfr
559178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
560178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
561178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
562178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
563178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
564178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
565178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
566178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
567178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
568178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
569178825Sdfr
570178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
571178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
572178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
573178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
574178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
575178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
576178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
577178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
578178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
579178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
580178825Sdfr
581178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
582178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
583178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
584178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
585178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
586178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
587178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
588178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
589178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
590178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
591178825Sdfr
592178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
593178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
594178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
595178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
596178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
597178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
598178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
599178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
600178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
601178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
602178825Sdfr
603178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
604178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
605178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
606178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
607178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
608178825Sdfr      568,  568,  568,  568,  568,  568,  568,  568,  568,  568,
609178825Sdfr      568,  568,  568,  568,  568,  568,    0,  567,  567
610178825Sdfr    } ;
611178825Sdfr
612178825Sdfrstatic yyconst flex_int16_t yy_nxt[707] =
613178825Sdfr    {   0,
614178825Sdfr        4,    5,    6,    7,    8,    4,    9,   10,   11,   12,
615178825Sdfr       13,   13,   13,   13,   13,   13,   14,    4,   15,   16,
616178825Sdfr       17,   18,   19,   20,   21,   22,   23,   22,   22,   22,
617178825Sdfr       24,   25,   26,   27,   22,   28,   29,   30,   31,   32,
618178825Sdfr       33,   22,   22,   22,   34,   35,    4,   22,   22,   22,
619178825Sdfr       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
620178825Sdfr       22,   22,   22,   22,   22,   22,   22,   22,   22,   36,
621178825Sdfr       71,   99,   37,   38,   38,   38,   38,   38,   38,   38,
622178825Sdfr       38,   38,   38,   38,   38,   38,   38,   38,   38,   38,
623178825Sdfr       38,   38,   38,   44,   48,   57,   58,   72,   49,   60,
624178825Sdfr
625178825Sdfr       62,   53,   50,   45,   51,   54,   59,   46,   55,   69,
626178825Sdfr       64,   63,   47,   65,   52,   78,   61,   70,   79,  109,
627178825Sdfr       73,   74,   66,   67,   75,   84,   80,   88,   68,   85,
628178825Sdfr       93,   89,   81,  110,   76,  129,   94,   41,  112,  113,
629178825Sdfr       86,  163,  116,  117,  119,   87,  144,  166,   90,   77,
630178825Sdfr      145,  130,  131,  149,  164,   91,  150,  120,   95,   82,
631178825Sdfr      118,  121,  167,  566,   92,   38,   38,   38,   38,   38,
632178825Sdfr       38,   38,   38,   38,   38,   38,   38,   38,   38,  147,
633178825Sdfr      160,  177,  178,  161,  179,  185,  194,  414,  186,  195,
634178825Sdfr      148,  223,  180,  224,  264,  253,  565,  564,  225,  254,
635178825Sdfr
636178825Sdfr      318,  563,  319,  562,  561,  265,  415,  560,  559,  558,
637178825Sdfr      557,  556,  555,  554,  553,  552,  551,  550,  549,  548,
638178825Sdfr      547,  546,  545,   41,   43,   43,  544,  543,  542,  541,
639178825Sdfr      540,  539,  538,  537,  536,  535,  534,  533,  532,  531,
640178825Sdfr      530,  529,  528,  527,  526,  525,  524,  523,  522,  521,
641178825Sdfr      520,  519,  518,  517,  516,  515,  514,  513,  512,  511,
642178825Sdfr      510,  509,  508,  507,  506,  505,  504,  503,  502,  501,
643178825Sdfr      500,  499,  498,  497,  496,  495,  494,  493,  492,  491,
644178825Sdfr      490,  489,  488,  487,  486,  485,  484,  483,  482,  481,
645178825Sdfr      480,  479,  478,  477,  476,  475,  474,  473,  472,  471,
646178825Sdfr
647178825Sdfr      470,  469,  468,  467,  466,  465,  464,  463,  462,  461,
648178825Sdfr      460,  459,  458,  457,  456,  455,  454,  453,  452,  451,
649178825Sdfr      450,  449,  448,  447,  446,  445,  444,  443,  442,  441,
650178825Sdfr      440,  439,  438,  437,  436,  435,  434,  433,  432,  431,
651178825Sdfr      430,  429,  428,  427,  426,  425,  424,  423,  422,  421,
652178825Sdfr      420,  419,  418,  417,  416,  413,  412,  411,  410,  409,
653178825Sdfr      408,  407,  406,  405,  404,  403,  402,  401,  400,  399,
654178825Sdfr      398,  397,  396,  395,  394,  393,  392,  391,  390,  389,
655178825Sdfr      388,  387,  386,  385,  384,  383,  382,  381,  380,  379,
656178825Sdfr      378,  377,  376,  375,  374,  373,  372,  371,  370,  369,
657178825Sdfr
658178825Sdfr      368,  367,  366,  365,  364,  363,  362,  361,  360,  359,
659178825Sdfr      358,  357,  356,  355,  354,  353,  352,  351,  350,  349,
660178825Sdfr      348,  347,  346,  345,  344,  343,  342,  341,  340,  339,
661178825Sdfr      338,  337,  336,  335,  334,  333,  332,  331,  330,  329,
662178825Sdfr      328,  327,  326,  325,  324,  323,  322,  321,  320,  317,
663178825Sdfr      316,  315,  314,  313,  312,  311,  310,  309,  308,  307,
664178825Sdfr      306,  305,  304,  303,  302,  301,  300,  299,  298,  297,
665178825Sdfr      296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
666178825Sdfr      286,  285,  284,  283,  282,  281,  280,  279,  278,  277,
667178825Sdfr      276,  275,  274,  273,  272,  271,  270,  269,  268,  267,
668178825Sdfr
669178825Sdfr      266,  263,  262,  261,  260,  259,  258,  257,  256,  255,
670178825Sdfr      252,  251,  250,  249,  248,  247,  246,  245,  244,  243,
671178825Sdfr      242,  241,  240,  239,  238,  237,  236,  235,  234,  233,
672178825Sdfr      232,  231,  230,  229,  228,  227,  226,  222,  221,  220,
673178825Sdfr      219,  218,  217,  216,  215,  214,  213,  212,  211,  210,
674178825Sdfr      209,  208,  207,  206,  205,  204,  203,  202,  201,  200,
675178825Sdfr      199,  198,  197,  196,  193,  192,  191,  190,  189,  188,
676178825Sdfr      187,  184,  183,  182,  181,  176,  175,  174,  173,  172,
677178825Sdfr      171,  170,  169,  168,  165,  162,  159,  158,  157,  156,
678178825Sdfr      155,  154,  153,  152,  151,  146,  143,  142,  141,  140,
679178825Sdfr
680178825Sdfr      139,  138,  137,  136,  135,  134,  133,  132,  128,  127,
681178825Sdfr      126,  125,  124,  123,  122,  115,  114,  111,  108,  107,
682178825Sdfr      106,  105,  104,  103,  102,  101,  100,   98,   97,   96,
683178825Sdfr       83,   56,   42,   40,   39,  567,    3,  567,  567,  567,
684178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
685178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
686178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
687178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
688178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
689178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
690178825Sdfr
691178825Sdfr      567,  567,  567,  567,  567,  567
692178825Sdfr    } ;
693178825Sdfr
694178825Sdfrstatic yyconst flex_int16_t yy_chk[707] =
695178825Sdfr    {   0,
696178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
697178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
698178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
699178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
700178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
701178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
702178825Sdfr        1,    1,    1,    1,    1,    1,    1,    1,    1,    9,
703178825Sdfr       25,  569,    9,    9,    9,    9,    9,    9,    9,   12,
704178825Sdfr       12,   12,   12,   12,   12,   12,   13,   13,   13,   13,
705178825Sdfr       13,   13,   13,   15,   16,   19,   19,   25,   16,   20,
706178825Sdfr
707178825Sdfr       21,   17,   16,   15,   16,   17,   19,   15,   17,   24,
708178825Sdfr       23,   21,   15,   23,   16,   27,   20,   24,   27,   53,
709178825Sdfr       26,   26,   23,   23,   26,   29,   27,   30,   23,   29,
710178825Sdfr       31,   30,   27,   53,   26,   67,   31,   12,   55,   55,
711178825Sdfr       29,   96,   58,   58,   59,   29,   81,  101,   30,   26,
712178825Sdfr       81,   67,   67,   84,   96,   30,   84,   59,   31,   27,
713178825Sdfr       58,   59,  101,  562,   30,   37,   37,   37,   37,   37,
714178825Sdfr       37,   37,   38,   38,   38,   38,   38,   38,   38,   83,
715178825Sdfr       94,  113,  113,   94,  114,  120,  128,  368,  120,  128,
716178825Sdfr       83,  159,  114,  159,  198,  187,  558,  557,  159,  187,
717178825Sdfr
718178825Sdfr      260,  556,  260,  555,  553,  198,  368,  552,  550,  549,
719178825Sdfr      547,  546,  544,  542,  540,  537,  536,  535,  534,  533,
720178825Sdfr      532,  530,  529,   37,  568,  568,  528,  527,  526,  523,
721178825Sdfr      522,  521,  520,  519,  518,  517,  516,  515,  514,  513,
722178825Sdfr      512,  511,  510,  509,  508,  507,  506,  505,  504,  503,
723178825Sdfr      502,  498,  497,  496,  495,  493,  492,  491,  490,  489,
724178825Sdfr      488,  487,  486,  485,  484,  482,  481,  480,  479,  477,
725178825Sdfr      475,  473,  472,  471,  470,  469,  468,  466,  465,  463,
726178825Sdfr      462,  461,  460,  459,  458,  457,  456,  455,  453,  452,
727178825Sdfr      451,  450,  449,  448,  447,  446,  445,  441,  440,  439,
728178825Sdfr
729178825Sdfr      438,  437,  436,  435,  434,  433,  432,  430,  429,  428,
730178825Sdfr      427,  425,  424,  423,  422,  418,  417,  416,  415,  414,
731178825Sdfr      412,  410,  408,  407,  406,  405,  404,  403,  402,  401,
732178825Sdfr      400,  399,  398,  397,  396,  394,  393,  392,  391,  390,
733178825Sdfr      389,  388,  385,  383,  382,  381,  380,  379,  378,  376,
734178825Sdfr      375,  372,  371,  370,  369,  367,  366,  364,  363,  361,
735178825Sdfr      360,  358,  357,  356,  355,  353,  352,  351,  350,  349,
736178825Sdfr      348,  347,  346,  345,  344,  342,  341,  340,  337,  336,
737178825Sdfr      335,  334,  333,  332,  331,  330,  329,  327,  326,  325,
738178825Sdfr      324,  323,  322,  321,  320,  319,  318,  317,  316,  315,
739178825Sdfr
740178825Sdfr      314,  313,  312,  311,  310,  308,  307,  306,  305,  304,
741178825Sdfr      303,  302,  301,  299,  298,  297,  296,  295,  294,  292,
742178825Sdfr      291,  290,  289,  288,  287,  286,  284,  283,  282,  281,
743178825Sdfr      280,  279,  278,  277,  276,  275,  274,  273,  272,  271,
744178825Sdfr      269,  268,  267,  266,  265,  264,  263,  262,  261,  259,
745178825Sdfr      258,  257,  256,  254,  253,  252,  251,  250,  249,  248,
746178825Sdfr      247,  246,  245,  244,  243,  242,  240,  239,  238,  237,
747178825Sdfr      235,  234,  233,  232,  230,  229,  228,  227,  226,  225,
748178825Sdfr      224,  223,  222,  221,  218,  217,  216,  214,  213,  211,
749178825Sdfr      210,  209,  208,  207,  206,  205,  204,  203,  202,  200,
750178825Sdfr
751178825Sdfr      199,  197,  196,  195,  194,  193,  192,  191,  190,  188,
752178825Sdfr      186,  185,  184,  183,  182,  181,  180,  179,  178,  177,
753178825Sdfr      176,  175,  174,  173,  172,  171,  170,  169,  168,  167,
754178825Sdfr      166,  165,  164,  163,  162,  161,  160,  158,  157,  156,
755178825Sdfr      155,  154,  153,  152,  151,  149,  148,  147,  146,  145,
756178825Sdfr      144,  143,  141,  140,  139,  138,  137,  136,  135,  134,
757178825Sdfr      132,  131,  130,  129,  127,  126,  125,  124,  123,  122,
758178825Sdfr      121,  119,  118,  116,  115,  112,  111,  110,  109,  108,
759178825Sdfr      107,  105,  104,  103,   97,   95,   93,   92,   91,   90,
760178825Sdfr       89,   88,   87,   86,   85,   82,   80,   79,   78,   77,
761178825Sdfr
762178825Sdfr       76,   74,   73,   72,   71,   70,   69,   68,   66,   65,
763178825Sdfr       64,   63,   62,   61,   60,   57,   56,   54,   51,   50,
764178825Sdfr       49,   48,   47,   46,   45,   44,   42,   39,   33,   32,
765178825Sdfr       28,   18,   14,   11,   10,    3,  567,  567,  567,  567,
766178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
767178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
768178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
769178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
770178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
771178825Sdfr      567,  567,  567,  567,  567,  567,  567,  567,  567,  567,
772178825Sdfr
773178825Sdfr      567,  567,  567,  567,  567,  567
774178825Sdfr    } ;
775178825Sdfr
776178825Sdfrstatic yy_state_type yy_last_accepting_state;
777178825Sdfrstatic char *yy_last_accepting_cpos;
778178825Sdfr
779178825Sdfrextern int yy_flex_debug;
780178825Sdfrint yy_flex_debug = 0;
781178825Sdfr
782178825Sdfr/* The intent behind this definition is that it'll catch
783178825Sdfr * any uses of REJECT which flex missed.
784178825Sdfr */
785178825Sdfr#define REJECT reject_used_but_not_detected
786178825Sdfr#define yymore() yymore_used_but_not_detected
787178825Sdfr#define YY_MORE_ADJ 0
788178825Sdfr#define YY_RESTORE_YY_MORE_OFFSET
789178825Sdfrchar *yytext;
790178825Sdfr#line 1 "lex.l"
791178825Sdfr#line 2 "lex.l"
792178825Sdfr/*
793233294Sstas * Copyright (c) 1997 - 2005 Kungliga Tekniska H��gskolan
794233294Sstas * (Royal Institute of Technology, Stockholm, Sweden).
795233294Sstas * All rights reserved.
796178825Sdfr *
797233294Sstas * Redistribution and use in source and binary forms, with or without
798233294Sstas * modification, are permitted provided that the following conditions
799233294Sstas * are met:
800178825Sdfr *
801233294Sstas * 1. Redistributions of source code must retain the above copyright
802233294Sstas *    notice, this list of conditions and the following disclaimer.
803178825Sdfr *
804233294Sstas * 2. Redistributions in binary form must reproduce the above copyright
805233294Sstas *    notice, this list of conditions and the following disclaimer in the
806233294Sstas *    documentation and/or other materials provided with the distribution.
807178825Sdfr *
808233294Sstas * 3. Neither the name of the Institute nor the names of its contributors
809233294Sstas *    may be used to endorse or promote products derived from this software
810233294Sstas *    without specific prior written permission.
811178825Sdfr *
812233294Sstas * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
813233294Sstas * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
814233294Sstas * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
815233294Sstas * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
816233294Sstas * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
817233294Sstas * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
818233294Sstas * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
819233294Sstas * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
820233294Sstas * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
821233294Sstas * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
822233294Sstas * SUCH DAMAGE.
823178825Sdfr */
824178825Sdfr
825233294Sstas/* $Id$ */
826178825Sdfr
827178825Sdfr#ifdef HAVE_CONFIG_H
828178825Sdfr#include <config.h>
829178825Sdfr#endif
830178825Sdfr#include <stdio.h>
831178825Sdfr#include <stdarg.h>
832178825Sdfr#include <stdlib.h>
833178825Sdfr#include <string.h>
834178825Sdfr#ifdef HAVE_UNISTD_H
835178825Sdfr#include <unistd.h>
836178825Sdfr#endif
837178825Sdfr#undef ECHO
838178825Sdfr#include "symbol.h"
839233294Sstas#include "asn1parse.h"
840178825Sdfr#include "lex.h"
841178825Sdfr#include "gen_locl.h"
842178825Sdfr
843178825Sdfrstatic unsigned lineno = 1;
844178825Sdfr
845178825Sdfr#undef ECHO
846178825Sdfr
847178825Sdfrstatic void unterminated(const char *, unsigned);
848178825Sdfr
849178825Sdfr/* This is for broken old lexes (solaris 10 and hpux) */
850233294Sstas#line 851 "lex.c"
851178825Sdfr
852178825Sdfr#define INITIAL 0
853178825Sdfr
854178825Sdfr#ifndef YY_NO_UNISTD_H
855178825Sdfr/* Special case for "unistd.h", since it is non-ANSI. We include it way
856178825Sdfr * down here because we want the user's section 1 to have been scanned first.
857178825Sdfr * The user has a chance to override it with an option.
858178825Sdfr */
859178825Sdfr#include <unistd.h>
860178825Sdfr#endif
861178825Sdfr
862178825Sdfr#ifndef YY_EXTRA_TYPE
863178825Sdfr#define YY_EXTRA_TYPE void *
864178825Sdfr#endif
865178825Sdfr
866178825Sdfrstatic int yy_init_globals (void );
867178825Sdfr
868233294Sstas/* Accessor methods to globals.
869233294Sstas   These are made visible to non-reentrant scanners for convenience. */
870233294Sstas
871233294Sstasint yylex_destroy (void );
872233294Sstas
873233294Sstasint yyget_debug (void );
874233294Sstas
875233294Sstasvoid yyset_debug (int debug_flag  );
876233294Sstas
877233294SstasYY_EXTRA_TYPE yyget_extra (void );
878233294Sstas
879233294Sstasvoid yyset_extra (YY_EXTRA_TYPE user_defined  );
880233294Sstas
881233294SstasFILE *yyget_in (void );
882233294Sstas
883233294Sstasvoid yyset_in  (FILE * in_str  );
884233294Sstas
885233294SstasFILE *yyget_out (void );
886233294Sstas
887233294Sstasvoid yyset_out  (FILE * out_str  );
888233294Sstas
889233294Sstasyy_size_t yyget_leng (void );
890233294Sstas
891233294Sstaschar *yyget_text (void );
892233294Sstas
893233294Sstasint yyget_lineno (void );
894233294Sstas
895233294Sstasvoid yyset_lineno (int line_number  );
896233294Sstas
897178825Sdfr/* Macros after this point can all be overridden by user definitions in
898178825Sdfr * section 1.
899178825Sdfr */
900178825Sdfr
901178825Sdfr#ifndef YY_SKIP_YYWRAP
902178825Sdfr#ifdef __cplusplus
903178825Sdfrextern "C" int yywrap (void );
904178825Sdfr#else
905178825Sdfrextern int yywrap (void );
906178825Sdfr#endif
907178825Sdfr#endif
908178825Sdfr
909178825Sdfr    static void yyunput (int c,char *buf_ptr  );
910178825Sdfr
911178825Sdfr#ifndef yytext_ptr
912178825Sdfrstatic void yy_flex_strncpy (char *,yyconst char *,int );
913178825Sdfr#endif
914178825Sdfr
915178825Sdfr#ifdef YY_NEED_STRLEN
916178825Sdfrstatic int yy_flex_strlen (yyconst char * );
917178825Sdfr#endif
918178825Sdfr
919178825Sdfr#ifndef YY_NO_INPUT
920178825Sdfr
921178825Sdfr#ifdef __cplusplus
922178825Sdfrstatic int yyinput (void );
923178825Sdfr#else
924178825Sdfrstatic int input (void );
925178825Sdfr#endif
926178825Sdfr
927178825Sdfr#endif
928178825Sdfr
929178825Sdfr/* Amount of stuff to slurp up with each read. */
930178825Sdfr#ifndef YY_READ_BUF_SIZE
931178825Sdfr#define YY_READ_BUF_SIZE 8192
932178825Sdfr#endif
933178825Sdfr
934178825Sdfr/* Copy whatever the last rule matched to the standard output. */
935178825Sdfr#ifndef ECHO
936178825Sdfr/* This used to be an fputs(), but since the string might contain NUL's,
937178825Sdfr * we now use fwrite().
938178825Sdfr */
939233294Sstas#define ECHO fwrite( yytext, yyleng, 1, yyout )
940178825Sdfr#endif
941178825Sdfr
942178825Sdfr/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
943178825Sdfr * is returned in "result".
944178825Sdfr */
945178825Sdfr#ifndef YY_INPUT
946178825Sdfr#define YY_INPUT(buf,result,max_size) \
947178825Sdfr	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
948178825Sdfr		{ \
949178825Sdfr		int c = '*'; \
950233294Sstas		yy_size_t n; \
951178825Sdfr		for ( n = 0; n < max_size && \
952178825Sdfr			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
953178825Sdfr			buf[n] = (char) c; \
954178825Sdfr		if ( c == '\n' ) \
955178825Sdfr			buf[n++] = (char) c; \
956178825Sdfr		if ( c == EOF && ferror( yyin ) ) \
957178825Sdfr			YY_FATAL_ERROR( "input in flex scanner failed" ); \
958178825Sdfr		result = n; \
959178825Sdfr		} \
960178825Sdfr	else \
961178825Sdfr		{ \
962178825Sdfr		errno=0; \
963178825Sdfr		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
964178825Sdfr			{ \
965178825Sdfr			if( errno != EINTR) \
966178825Sdfr				{ \
967178825Sdfr				YY_FATAL_ERROR( "input in flex scanner failed" ); \
968178825Sdfr				break; \
969178825Sdfr				} \
970178825Sdfr			errno=0; \
971178825Sdfr			clearerr(yyin); \
972178825Sdfr			} \
973178825Sdfr		}\
974178825Sdfr\
975178825Sdfr
976178825Sdfr#endif
977178825Sdfr
978178825Sdfr/* No semi-colon after return; correct usage is to write "yyterminate();" -
979178825Sdfr * we don't want an extra ';' after the "return" because that will cause
980178825Sdfr * some compilers to complain about unreachable statements.
981178825Sdfr */
982178825Sdfr#ifndef yyterminate
983178825Sdfr#define yyterminate() return YY_NULL
984178825Sdfr#endif
985178825Sdfr
986178825Sdfr/* Number of entries by which start-condition stack grows. */
987178825Sdfr#ifndef YY_START_STACK_INCR
988178825Sdfr#define YY_START_STACK_INCR 25
989178825Sdfr#endif
990178825Sdfr
991178825Sdfr/* Report a fatal error. */
992178825Sdfr#ifndef YY_FATAL_ERROR
993178825Sdfr#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
994178825Sdfr#endif
995178825Sdfr
996178825Sdfr/* end tables serialization structures and prototypes */
997178825Sdfr
998178825Sdfr/* Default declaration of generated scanner - a define so the user can
999178825Sdfr * easily add parameters.
1000178825Sdfr */
1001178825Sdfr#ifndef YY_DECL
1002178825Sdfr#define YY_DECL_IS_OURS 1
1003178825Sdfr
1004178825Sdfrextern int yylex (void);
1005178825Sdfr
1006178825Sdfr#define YY_DECL int yylex (void)
1007178825Sdfr#endif /* !YY_DECL */
1008178825Sdfr
1009178825Sdfr/* Code executed at the beginning of each rule, after yytext and yyleng
1010178825Sdfr * have been set up.
1011178825Sdfr */
1012178825Sdfr#ifndef YY_USER_ACTION
1013178825Sdfr#define YY_USER_ACTION
1014178825Sdfr#endif
1015178825Sdfr
1016178825Sdfr/* Code executed at the end of each rule. */
1017178825Sdfr#ifndef YY_BREAK
1018178825Sdfr#define YY_BREAK break;
1019178825Sdfr#endif
1020178825Sdfr
1021178825Sdfr#define YY_RULE_SETUP \
1022178825Sdfr	YY_USER_ACTION
1023178825Sdfr
1024178825Sdfr/** The main scanner function which does all the work.
1025178825Sdfr */
1026178825SdfrYY_DECL
1027178825Sdfr{
1028178825Sdfr	register yy_state_type yy_current_state;
1029178825Sdfr	register char *yy_cp, *yy_bp;
1030178825Sdfr	register int yy_act;
1031178825Sdfr
1032178825Sdfr#line 68 "lex.l"
1033178825Sdfr
1034233294Sstas#line 1035 "lex.c"
1035178825Sdfr
1036178825Sdfr	if ( !(yy_init) )
1037178825Sdfr		{
1038178825Sdfr		(yy_init) = 1;
1039178825Sdfr
1040178825Sdfr#ifdef YY_USER_INIT
1041178825Sdfr		YY_USER_INIT;
1042178825Sdfr#endif
1043178825Sdfr
1044178825Sdfr		if ( ! (yy_start) )
1045178825Sdfr			(yy_start) = 1;	/* first start state */
1046178825Sdfr
1047178825Sdfr		if ( ! yyin )
1048178825Sdfr			yyin = stdin;
1049178825Sdfr
1050178825Sdfr		if ( ! yyout )
1051178825Sdfr			yyout = stdout;
1052178825Sdfr
1053178825Sdfr		if ( ! YY_CURRENT_BUFFER ) {
1054178825Sdfr			yyensure_buffer_stack ();
1055178825Sdfr			YY_CURRENT_BUFFER_LVALUE =
1056178825Sdfr				yy_create_buffer(yyin,YY_BUF_SIZE );
1057178825Sdfr		}
1058178825Sdfr
1059178825Sdfr		yy_load_buffer_state( );
1060178825Sdfr		}
1061178825Sdfr
1062178825Sdfr	while ( 1 )		/* loops until end-of-file is reached */
1063178825Sdfr		{
1064178825Sdfr		yy_cp = (yy_c_buf_p);
1065178825Sdfr
1066178825Sdfr		/* Support of yytext. */
1067178825Sdfr		*yy_cp = (yy_hold_char);
1068178825Sdfr
1069178825Sdfr		/* yy_bp points to the position in yy_ch_buf of the start of
1070178825Sdfr		 * the current run.
1071178825Sdfr		 */
1072178825Sdfr		yy_bp = yy_cp;
1073178825Sdfr
1074178825Sdfr		yy_current_state = (yy_start);
1075178825Sdfryy_match:
1076178825Sdfr		do
1077178825Sdfr			{
1078178825Sdfr			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1079178825Sdfr			if ( yy_accept[yy_current_state] )
1080178825Sdfr				{
1081178825Sdfr				(yy_last_accepting_state) = yy_current_state;
1082178825Sdfr				(yy_last_accepting_cpos) = yy_cp;
1083178825Sdfr				}
1084178825Sdfr			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1085178825Sdfr				{
1086178825Sdfr				yy_current_state = (int) yy_def[yy_current_state];
1087178825Sdfr				if ( yy_current_state >= 568 )
1088178825Sdfr					yy_c = yy_meta[(unsigned int) yy_c];
1089178825Sdfr				}
1090178825Sdfr			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1091178825Sdfr			++yy_cp;
1092178825Sdfr			}
1093178825Sdfr		while ( yy_base[yy_current_state] != 637 );
1094178825Sdfr
1095178825Sdfryy_find_action:
1096178825Sdfr		yy_act = yy_accept[yy_current_state];
1097178825Sdfr		if ( yy_act == 0 )
1098178825Sdfr			{ /* have to back up */
1099178825Sdfr			yy_cp = (yy_last_accepting_cpos);
1100178825Sdfr			yy_current_state = (yy_last_accepting_state);
1101178825Sdfr			yy_act = yy_accept[yy_current_state];
1102178825Sdfr			}
1103178825Sdfr
1104178825Sdfr		YY_DO_BEFORE_ACTION;
1105178825Sdfr
1106178825Sdfrdo_action:	/* This label is used only to access EOF actions. */
1107178825Sdfr
1108178825Sdfr		switch ( yy_act )
1109178825Sdfr	{ /* beginning of action switch */
1110178825Sdfr			case 0: /* must back up */
1111178825Sdfr			/* undo the effects of YY_DO_BEFORE_ACTION */
1112178825Sdfr			*yy_cp = (yy_hold_char);
1113178825Sdfr			yy_cp = (yy_last_accepting_cpos);
1114178825Sdfr			yy_current_state = (yy_last_accepting_state);
1115178825Sdfr			goto yy_find_action;
1116178825Sdfr
1117178825Sdfrcase 1:
1118178825SdfrYY_RULE_SETUP
1119178825Sdfr#line 69 "lex.l"
1120178825Sdfr{ return kw_ABSENT; }
1121178825Sdfr	YY_BREAK
1122178825Sdfrcase 2:
1123178825SdfrYY_RULE_SETUP
1124178825Sdfr#line 70 "lex.l"
1125178825Sdfr{ return kw_ABSTRACT_SYNTAX; }
1126178825Sdfr	YY_BREAK
1127178825Sdfrcase 3:
1128178825SdfrYY_RULE_SETUP
1129178825Sdfr#line 71 "lex.l"
1130178825Sdfr{ return kw_ALL; }
1131178825Sdfr	YY_BREAK
1132178825Sdfrcase 4:
1133178825SdfrYY_RULE_SETUP
1134178825Sdfr#line 72 "lex.l"
1135178825Sdfr{ return kw_APPLICATION; }
1136178825Sdfr	YY_BREAK
1137178825Sdfrcase 5:
1138178825SdfrYY_RULE_SETUP
1139178825Sdfr#line 73 "lex.l"
1140178825Sdfr{ return kw_AUTOMATIC; }
1141178825Sdfr	YY_BREAK
1142178825Sdfrcase 6:
1143178825SdfrYY_RULE_SETUP
1144178825Sdfr#line 74 "lex.l"
1145178825Sdfr{ return kw_BEGIN; }
1146178825Sdfr	YY_BREAK
1147178825Sdfrcase 7:
1148178825SdfrYY_RULE_SETUP
1149178825Sdfr#line 75 "lex.l"
1150178825Sdfr{ return kw_BIT; }
1151178825Sdfr	YY_BREAK
1152178825Sdfrcase 8:
1153178825SdfrYY_RULE_SETUP
1154178825Sdfr#line 76 "lex.l"
1155178825Sdfr{ return kw_BMPString; }
1156178825Sdfr	YY_BREAK
1157178825Sdfrcase 9:
1158178825SdfrYY_RULE_SETUP
1159178825Sdfr#line 77 "lex.l"
1160178825Sdfr{ return kw_BOOLEAN; }
1161178825Sdfr	YY_BREAK
1162178825Sdfrcase 10:
1163178825SdfrYY_RULE_SETUP
1164178825Sdfr#line 78 "lex.l"
1165178825Sdfr{ return kw_BY; }
1166178825Sdfr	YY_BREAK
1167178825Sdfrcase 11:
1168178825SdfrYY_RULE_SETUP
1169178825Sdfr#line 79 "lex.l"
1170178825Sdfr{ return kw_CHARACTER; }
1171178825Sdfr	YY_BREAK
1172178825Sdfrcase 12:
1173178825SdfrYY_RULE_SETUP
1174178825Sdfr#line 80 "lex.l"
1175178825Sdfr{ return kw_CHOICE; }
1176178825Sdfr	YY_BREAK
1177178825Sdfrcase 13:
1178178825SdfrYY_RULE_SETUP
1179178825Sdfr#line 81 "lex.l"
1180178825Sdfr{ return kw_CLASS; }
1181178825Sdfr	YY_BREAK
1182178825Sdfrcase 14:
1183178825SdfrYY_RULE_SETUP
1184178825Sdfr#line 82 "lex.l"
1185178825Sdfr{ return kw_COMPONENT; }
1186178825Sdfr	YY_BREAK
1187178825Sdfrcase 15:
1188178825SdfrYY_RULE_SETUP
1189178825Sdfr#line 83 "lex.l"
1190178825Sdfr{ return kw_COMPONENTS; }
1191178825Sdfr	YY_BREAK
1192178825Sdfrcase 16:
1193178825SdfrYY_RULE_SETUP
1194178825Sdfr#line 84 "lex.l"
1195178825Sdfr{ return kw_CONSTRAINED; }
1196178825Sdfr	YY_BREAK
1197178825Sdfrcase 17:
1198178825SdfrYY_RULE_SETUP
1199178825Sdfr#line 85 "lex.l"
1200178825Sdfr{ return kw_CONTAINING; }
1201178825Sdfr	YY_BREAK
1202178825Sdfrcase 18:
1203178825SdfrYY_RULE_SETUP
1204178825Sdfr#line 86 "lex.l"
1205178825Sdfr{ return kw_DEFAULT; }
1206178825Sdfr	YY_BREAK
1207178825Sdfrcase 19:
1208178825SdfrYY_RULE_SETUP
1209178825Sdfr#line 87 "lex.l"
1210178825Sdfr{ return kw_DEFINITIONS; }
1211178825Sdfr	YY_BREAK
1212178825Sdfrcase 20:
1213178825SdfrYY_RULE_SETUP
1214178825Sdfr#line 88 "lex.l"
1215178825Sdfr{ return kw_EMBEDDED; }
1216178825Sdfr	YY_BREAK
1217178825Sdfrcase 21:
1218178825SdfrYY_RULE_SETUP
1219178825Sdfr#line 89 "lex.l"
1220178825Sdfr{ return kw_ENCODED; }
1221178825Sdfr	YY_BREAK
1222178825Sdfrcase 22:
1223178825SdfrYY_RULE_SETUP
1224178825Sdfr#line 90 "lex.l"
1225178825Sdfr{ return kw_END; }
1226178825Sdfr	YY_BREAK
1227178825Sdfrcase 23:
1228178825SdfrYY_RULE_SETUP
1229178825Sdfr#line 91 "lex.l"
1230178825Sdfr{ return kw_ENUMERATED; }
1231178825Sdfr	YY_BREAK
1232178825Sdfrcase 24:
1233178825SdfrYY_RULE_SETUP
1234178825Sdfr#line 92 "lex.l"
1235178825Sdfr{ return kw_EXCEPT; }
1236178825Sdfr	YY_BREAK
1237178825Sdfrcase 25:
1238178825SdfrYY_RULE_SETUP
1239178825Sdfr#line 93 "lex.l"
1240178825Sdfr{ return kw_EXPLICIT; }
1241178825Sdfr	YY_BREAK
1242178825Sdfrcase 26:
1243178825SdfrYY_RULE_SETUP
1244178825Sdfr#line 94 "lex.l"
1245178825Sdfr{ return kw_EXPORTS; }
1246178825Sdfr	YY_BREAK
1247178825Sdfrcase 27:
1248178825SdfrYY_RULE_SETUP
1249178825Sdfr#line 95 "lex.l"
1250178825Sdfr{ return kw_EXTENSIBILITY; }
1251178825Sdfr	YY_BREAK
1252178825Sdfrcase 28:
1253178825SdfrYY_RULE_SETUP
1254178825Sdfr#line 96 "lex.l"
1255178825Sdfr{ return kw_EXTERNAL; }
1256178825Sdfr	YY_BREAK
1257178825Sdfrcase 29:
1258178825SdfrYY_RULE_SETUP
1259178825Sdfr#line 97 "lex.l"
1260178825Sdfr{ return kw_FALSE; }
1261178825Sdfr	YY_BREAK
1262178825Sdfrcase 30:
1263178825SdfrYY_RULE_SETUP
1264178825Sdfr#line 98 "lex.l"
1265178825Sdfr{ return kw_FROM; }
1266178825Sdfr	YY_BREAK
1267178825Sdfrcase 31:
1268178825SdfrYY_RULE_SETUP
1269178825Sdfr#line 99 "lex.l"
1270178825Sdfr{ return kw_GeneralString; }
1271178825Sdfr	YY_BREAK
1272178825Sdfrcase 32:
1273178825SdfrYY_RULE_SETUP
1274178825Sdfr#line 100 "lex.l"
1275178825Sdfr{ return kw_GeneralizedTime; }
1276178825Sdfr	YY_BREAK
1277178825Sdfrcase 33:
1278178825SdfrYY_RULE_SETUP
1279178825Sdfr#line 101 "lex.l"
1280178825Sdfr{ return kw_GraphicString; }
1281178825Sdfr	YY_BREAK
1282178825Sdfrcase 34:
1283178825SdfrYY_RULE_SETUP
1284178825Sdfr#line 102 "lex.l"
1285178825Sdfr{ return kw_IA5String; }
1286178825Sdfr	YY_BREAK
1287178825Sdfrcase 35:
1288178825SdfrYY_RULE_SETUP
1289178825Sdfr#line 103 "lex.l"
1290178825Sdfr{ return kw_IDENTIFIER; }
1291178825Sdfr	YY_BREAK
1292178825Sdfrcase 36:
1293178825SdfrYY_RULE_SETUP
1294178825Sdfr#line 104 "lex.l"
1295178825Sdfr{ return kw_IMPLICIT; }
1296178825Sdfr	YY_BREAK
1297178825Sdfrcase 37:
1298178825SdfrYY_RULE_SETUP
1299178825Sdfr#line 105 "lex.l"
1300178825Sdfr{ return kw_IMPLIED; }
1301178825Sdfr	YY_BREAK
1302178825Sdfrcase 38:
1303178825SdfrYY_RULE_SETUP
1304178825Sdfr#line 106 "lex.l"
1305178825Sdfr{ return kw_IMPORTS; }
1306178825Sdfr	YY_BREAK
1307178825Sdfrcase 39:
1308178825SdfrYY_RULE_SETUP
1309178825Sdfr#line 107 "lex.l"
1310178825Sdfr{ return kw_INCLUDES; }
1311178825Sdfr	YY_BREAK
1312178825Sdfrcase 40:
1313178825SdfrYY_RULE_SETUP
1314178825Sdfr#line 108 "lex.l"
1315178825Sdfr{ return kw_INSTANCE; }
1316178825Sdfr	YY_BREAK
1317178825Sdfrcase 41:
1318178825SdfrYY_RULE_SETUP
1319178825Sdfr#line 109 "lex.l"
1320178825Sdfr{ return kw_INTEGER; }
1321178825Sdfr	YY_BREAK
1322178825Sdfrcase 42:
1323178825SdfrYY_RULE_SETUP
1324178825Sdfr#line 110 "lex.l"
1325178825Sdfr{ return kw_INTERSECTION; }
1326178825Sdfr	YY_BREAK
1327178825Sdfrcase 43:
1328178825SdfrYY_RULE_SETUP
1329178825Sdfr#line 111 "lex.l"
1330178825Sdfr{ return kw_ISO646String; }
1331178825Sdfr	YY_BREAK
1332178825Sdfrcase 44:
1333178825SdfrYY_RULE_SETUP
1334178825Sdfr#line 112 "lex.l"
1335178825Sdfr{ return kw_MAX; }
1336178825Sdfr	YY_BREAK
1337178825Sdfrcase 45:
1338178825SdfrYY_RULE_SETUP
1339178825Sdfr#line 113 "lex.l"
1340178825Sdfr{ return kw_MIN; }
1341178825Sdfr	YY_BREAK
1342178825Sdfrcase 46:
1343178825SdfrYY_RULE_SETUP
1344178825Sdfr#line 114 "lex.l"
1345178825Sdfr{ return kw_MINUS_INFINITY; }
1346178825Sdfr	YY_BREAK
1347178825Sdfrcase 47:
1348178825SdfrYY_RULE_SETUP
1349178825Sdfr#line 115 "lex.l"
1350178825Sdfr{ return kw_NULL; }
1351178825Sdfr	YY_BREAK
1352178825Sdfrcase 48:
1353178825SdfrYY_RULE_SETUP
1354178825Sdfr#line 116 "lex.l"
1355178825Sdfr{ return kw_NumericString; }
1356178825Sdfr	YY_BREAK
1357178825Sdfrcase 49:
1358178825SdfrYY_RULE_SETUP
1359178825Sdfr#line 117 "lex.l"
1360178825Sdfr{ return kw_OBJECT; }
1361178825Sdfr	YY_BREAK
1362178825Sdfrcase 50:
1363178825SdfrYY_RULE_SETUP
1364178825Sdfr#line 118 "lex.l"
1365178825Sdfr{ return kw_OCTET; }
1366178825Sdfr	YY_BREAK
1367178825Sdfrcase 51:
1368178825SdfrYY_RULE_SETUP
1369178825Sdfr#line 119 "lex.l"
1370178825Sdfr{ return kw_OF; }
1371178825Sdfr	YY_BREAK
1372178825Sdfrcase 52:
1373178825SdfrYY_RULE_SETUP
1374178825Sdfr#line 120 "lex.l"
1375178825Sdfr{ return kw_OPTIONAL; }
1376178825Sdfr	YY_BREAK
1377178825Sdfrcase 53:
1378178825SdfrYY_RULE_SETUP
1379178825Sdfr#line 121 "lex.l"
1380178825Sdfr{ return kw_ObjectDescriptor; }
1381178825Sdfr	YY_BREAK
1382178825Sdfrcase 54:
1383178825SdfrYY_RULE_SETUP
1384178825Sdfr#line 122 "lex.l"
1385178825Sdfr{ return kw_PATTERN; }
1386178825Sdfr	YY_BREAK
1387178825Sdfrcase 55:
1388178825SdfrYY_RULE_SETUP
1389178825Sdfr#line 123 "lex.l"
1390178825Sdfr{ return kw_PDV; }
1391178825Sdfr	YY_BREAK
1392178825Sdfrcase 56:
1393178825SdfrYY_RULE_SETUP
1394178825Sdfr#line 124 "lex.l"
1395178825Sdfr{ return kw_PLUS_INFINITY; }
1396178825Sdfr	YY_BREAK
1397178825Sdfrcase 57:
1398178825SdfrYY_RULE_SETUP
1399178825Sdfr#line 125 "lex.l"
1400178825Sdfr{ return kw_PRESENT; }
1401178825Sdfr	YY_BREAK
1402178825Sdfrcase 58:
1403178825SdfrYY_RULE_SETUP
1404178825Sdfr#line 126 "lex.l"
1405178825Sdfr{ return kw_PRIVATE; }
1406178825Sdfr	YY_BREAK
1407178825Sdfrcase 59:
1408178825SdfrYY_RULE_SETUP
1409178825Sdfr#line 127 "lex.l"
1410178825Sdfr{ return kw_PrintableString; }
1411178825Sdfr	YY_BREAK
1412178825Sdfrcase 60:
1413178825SdfrYY_RULE_SETUP
1414178825Sdfr#line 128 "lex.l"
1415178825Sdfr{ return kw_REAL; }
1416178825Sdfr	YY_BREAK
1417178825Sdfrcase 61:
1418178825SdfrYY_RULE_SETUP
1419178825Sdfr#line 129 "lex.l"
1420178825Sdfr{ return kw_RELATIVE_OID; }
1421178825Sdfr	YY_BREAK
1422178825Sdfrcase 62:
1423178825SdfrYY_RULE_SETUP
1424178825Sdfr#line 130 "lex.l"
1425178825Sdfr{ return kw_SEQUENCE; }
1426178825Sdfr	YY_BREAK
1427178825Sdfrcase 63:
1428178825SdfrYY_RULE_SETUP
1429178825Sdfr#line 131 "lex.l"
1430178825Sdfr{ return kw_SET; }
1431178825Sdfr	YY_BREAK
1432178825Sdfrcase 64:
1433178825SdfrYY_RULE_SETUP
1434178825Sdfr#line 132 "lex.l"
1435178825Sdfr{ return kw_SIZE; }
1436178825Sdfr	YY_BREAK
1437178825Sdfrcase 65:
1438178825SdfrYY_RULE_SETUP
1439178825Sdfr#line 133 "lex.l"
1440178825Sdfr{ return kw_STRING; }
1441178825Sdfr	YY_BREAK
1442178825Sdfrcase 66:
1443178825SdfrYY_RULE_SETUP
1444178825Sdfr#line 134 "lex.l"
1445178825Sdfr{ return kw_SYNTAX; }
1446178825Sdfr	YY_BREAK
1447178825Sdfrcase 67:
1448178825SdfrYY_RULE_SETUP
1449178825Sdfr#line 135 "lex.l"
1450178825Sdfr{ return kw_T61String; }
1451178825Sdfr	YY_BREAK
1452178825Sdfrcase 68:
1453178825SdfrYY_RULE_SETUP
1454178825Sdfr#line 136 "lex.l"
1455178825Sdfr{ return kw_TAGS; }
1456178825Sdfr	YY_BREAK
1457178825Sdfrcase 69:
1458178825SdfrYY_RULE_SETUP
1459178825Sdfr#line 137 "lex.l"
1460178825Sdfr{ return kw_TRUE; }
1461178825Sdfr	YY_BREAK
1462178825Sdfrcase 70:
1463178825SdfrYY_RULE_SETUP
1464178825Sdfr#line 138 "lex.l"
1465178825Sdfr{ return kw_TYPE_IDENTIFIER; }
1466178825Sdfr	YY_BREAK
1467178825Sdfrcase 71:
1468178825SdfrYY_RULE_SETUP
1469178825Sdfr#line 139 "lex.l"
1470178825Sdfr{ return kw_TeletexString; }
1471178825Sdfr	YY_BREAK
1472178825Sdfrcase 72:
1473178825SdfrYY_RULE_SETUP
1474178825Sdfr#line 140 "lex.l"
1475178825Sdfr{ return kw_UNION; }
1476178825Sdfr	YY_BREAK
1477178825Sdfrcase 73:
1478178825SdfrYY_RULE_SETUP
1479178825Sdfr#line 141 "lex.l"
1480178825Sdfr{ return kw_UNIQUE; }
1481178825Sdfr	YY_BREAK
1482178825Sdfrcase 74:
1483178825SdfrYY_RULE_SETUP
1484178825Sdfr#line 142 "lex.l"
1485178825Sdfr{ return kw_UNIVERSAL; }
1486178825Sdfr	YY_BREAK
1487178825Sdfrcase 75:
1488178825SdfrYY_RULE_SETUP
1489178825Sdfr#line 143 "lex.l"
1490178825Sdfr{ return kw_UTCTime; }
1491178825Sdfr	YY_BREAK
1492178825Sdfrcase 76:
1493178825SdfrYY_RULE_SETUP
1494178825Sdfr#line 144 "lex.l"
1495178825Sdfr{ return kw_UTF8String; }
1496178825Sdfr	YY_BREAK
1497178825Sdfrcase 77:
1498178825SdfrYY_RULE_SETUP
1499178825Sdfr#line 145 "lex.l"
1500178825Sdfr{ return kw_UniversalString; }
1501178825Sdfr	YY_BREAK
1502178825Sdfrcase 78:
1503178825SdfrYY_RULE_SETUP
1504178825Sdfr#line 146 "lex.l"
1505178825Sdfr{ return kw_VideotexString; }
1506178825Sdfr	YY_BREAK
1507178825Sdfrcase 79:
1508178825SdfrYY_RULE_SETUP
1509178825Sdfr#line 147 "lex.l"
1510178825Sdfr{ return kw_VisibleString; }
1511178825Sdfr	YY_BREAK
1512178825Sdfrcase 80:
1513178825SdfrYY_RULE_SETUP
1514178825Sdfr#line 148 "lex.l"
1515178825Sdfr{ return kw_WITH; }
1516178825Sdfr	YY_BREAK
1517178825Sdfrcase 81:
1518178825SdfrYY_RULE_SETUP
1519178825Sdfr#line 149 "lex.l"
1520178825Sdfr{ return *yytext; }
1521178825Sdfr	YY_BREAK
1522178825Sdfrcase 82:
1523178825SdfrYY_RULE_SETUP
1524178825Sdfr#line 150 "lex.l"
1525178825Sdfr{ return *yytext; }
1526178825Sdfr	YY_BREAK
1527178825Sdfrcase 83:
1528178825SdfrYY_RULE_SETUP
1529178825Sdfr#line 151 "lex.l"
1530178825Sdfr{ return *yytext; }
1531178825Sdfr	YY_BREAK
1532178825Sdfrcase 84:
1533178825SdfrYY_RULE_SETUP
1534178825Sdfr#line 152 "lex.l"
1535178825Sdfr{ return EEQUAL; }
1536178825Sdfr	YY_BREAK
1537178825Sdfrcase 85:
1538178825SdfrYY_RULE_SETUP
1539178825Sdfr#line 153 "lex.l"
1540233294Sstas{
1541178825Sdfr			    int c, start_lineno = lineno;
1542178825Sdfr			    int f = 0;
1543178825Sdfr			    while((c = input()) != EOF) {
1544178825Sdfr				if(f && c == '-')
1545178825Sdfr				    break;
1546178825Sdfr				if(c == '-') {
1547178825Sdfr				    f = 1;
1548178825Sdfr				    continue;
1549178825Sdfr				}
1550178825Sdfr				if(c == '\n') {
1551178825Sdfr				    lineno++;
1552178825Sdfr				    break;
1553178825Sdfr				}
1554178825Sdfr				f = 0;
1555178825Sdfr			    }
1556178825Sdfr			    if(c == EOF)
1557178825Sdfr				unterminated("comment", start_lineno);
1558178825Sdfr			}
1559178825Sdfr	YY_BREAK
1560178825Sdfrcase 86:
1561178825SdfrYY_RULE_SETUP
1562178825Sdfr#line 172 "lex.l"
1563233294Sstas{
1564178825Sdfr			    int c, start_lineno = lineno;
1565178825Sdfr			    int level = 1;
1566178825Sdfr			    int seen_star = 0;
1567178825Sdfr			    int seen_slash = 0;
1568178825Sdfr			    while((c = input()) != EOF) {
1569178825Sdfr				if(c == '/') {
1570178825Sdfr				    if(seen_star) {
1571178825Sdfr					if(--level == 0)
1572178825Sdfr					    break;
1573178825Sdfr					seen_star = 0;
1574178825Sdfr					continue;
1575178825Sdfr				    }
1576178825Sdfr				    seen_slash = 1;
1577178825Sdfr				    continue;
1578178825Sdfr				}
1579178825Sdfr				if(seen_star && c == '/') {
1580178825Sdfr				    if(--level == 0)
1581178825Sdfr					break;
1582178825Sdfr				    seen_star = 0;
1583178825Sdfr				    continue;
1584178825Sdfr				}
1585178825Sdfr				if(c == '*') {
1586178825Sdfr				    if(seen_slash) {
1587178825Sdfr					level++;
1588178825Sdfr					seen_star = seen_slash = 0;
1589178825Sdfr					continue;
1590233294Sstas				    }
1591178825Sdfr				    seen_star = 1;
1592178825Sdfr				    continue;
1593178825Sdfr				}
1594178825Sdfr				seen_star = seen_slash = 0;
1595178825Sdfr				if(c == '\n') {
1596178825Sdfr				    lineno++;
1597178825Sdfr				    continue;
1598178825Sdfr				}
1599178825Sdfr			    }
1600178825Sdfr			    if(c == EOF)
1601178825Sdfr				unterminated("comment", start_lineno);
1602178825Sdfr			}
1603178825Sdfr	YY_BREAK
1604178825Sdfrcase 87:
1605178825SdfrYY_RULE_SETUP
1606178825Sdfr#line 212 "lex.l"
1607233294Sstas{
1608178825Sdfr			    int start_lineno = lineno;
1609178825Sdfr			    int c;
1610178825Sdfr			    char buf[1024];
1611178825Sdfr			    char *p = buf;
1612178825Sdfr			    int f = 0;
1613178825Sdfr			    int skip_ws = 0;
1614233294Sstas
1615178825Sdfr			    while((c = input()) != EOF) {
1616178825Sdfr				if(isspace(c) && skip_ws) {
1617178825Sdfr				    if(c == '\n')
1618178825Sdfr					lineno++;
1619178825Sdfr				    continue;
1620178825Sdfr				}
1621178825Sdfr				skip_ws = 0;
1622233294Sstas
1623178825Sdfr				if(c == '"') {
1624178825Sdfr				    if(f) {
1625178825Sdfr					*p++ = '"';
1626178825Sdfr					f = 0;
1627178825Sdfr				    } else
1628178825Sdfr					f = 1;
1629178825Sdfr				    continue;
1630178825Sdfr				}
1631178825Sdfr				if(f == 1) {
1632178825Sdfr				    unput(c);
1633178825Sdfr				    break;
1634178825Sdfr				}
1635178825Sdfr				if(c == '\n') {
1636178825Sdfr				    lineno++;
1637178825Sdfr				    while(p > buf && isspace((unsigned char)p[-1]))
1638178825Sdfr					p--;
1639178825Sdfr				    skip_ws = 1;
1640178825Sdfr				    continue;
1641178825Sdfr				}
1642178825Sdfr				*p++ = c;
1643178825Sdfr			    }
1644178825Sdfr			    if(c == EOF)
1645178825Sdfr				unterminated("string", start_lineno);
1646178825Sdfr			    *p++ = '\0';
1647178825Sdfr			    fprintf(stderr, "string -- %s\n", buf);
1648178825Sdfr			    yylval.name = estrdup(buf);
1649233294Sstas			    return STRING;
1650178825Sdfr			}
1651178825Sdfr	YY_BREAK
1652178825Sdfrcase 88:
1653178825SdfrYY_RULE_SETUP
1654178825Sdfr#line 257 "lex.l"
1655178825Sdfr{ char *e, *y = yytext;
1656178825Sdfr			  yylval.constant = strtol((const char *)yytext,
1657178825Sdfr						   &e, 0);
1658233294Sstas			  if(e == y)
1659233294Sstas			    lex_error_message("malformed constant (%s)", yytext);
1660178825Sdfr			  else
1661178825Sdfr			    return NUMBER;
1662178825Sdfr			}
1663178825Sdfr	YY_BREAK
1664178825Sdfrcase 89:
1665178825SdfrYY_RULE_SETUP
1666178825Sdfr#line 265 "lex.l"
1667178825Sdfr{
1668178825Sdfr			  yylval.name =  estrdup ((const char *)yytext);
1669178825Sdfr			  return IDENTIFIER;
1670178825Sdfr			}
1671178825Sdfr	YY_BREAK
1672178825Sdfrcase 90:
1673178825SdfrYY_RULE_SETUP
1674178825Sdfr#line 269 "lex.l"
1675178825Sdfr;
1676178825Sdfr	YY_BREAK
1677178825Sdfrcase 91:
1678178825Sdfr/* rule 91 can match eol */
1679178825SdfrYY_RULE_SETUP
1680178825Sdfr#line 270 "lex.l"
1681178825Sdfr{ ++lineno; }
1682178825Sdfr	YY_BREAK
1683178825Sdfrcase 92:
1684178825SdfrYY_RULE_SETUP
1685178825Sdfr#line 271 "lex.l"
1686178825Sdfr{ return ELLIPSIS; }
1687178825Sdfr	YY_BREAK
1688178825Sdfrcase 93:
1689178825SdfrYY_RULE_SETUP
1690178825Sdfr#line 272 "lex.l"
1691178825Sdfr{ return RANGE; }
1692178825Sdfr	YY_BREAK
1693178825Sdfrcase 94:
1694178825SdfrYY_RULE_SETUP
1695178825Sdfr#line 273 "lex.l"
1696233294Sstas{ lex_error_message("Ignoring char(%c)\n", *yytext); }
1697178825Sdfr	YY_BREAK
1698178825Sdfrcase 95:
1699178825SdfrYY_RULE_SETUP
1700178825Sdfr#line 274 "lex.l"
1701178825SdfrECHO;
1702178825Sdfr	YY_BREAK
1703233294Sstas#line 1704 "lex.c"
1704178825Sdfrcase YY_STATE_EOF(INITIAL):
1705178825Sdfr	yyterminate();
1706178825Sdfr
1707178825Sdfr	case YY_END_OF_BUFFER:
1708178825Sdfr		{
1709178825Sdfr		/* Amount of text matched not including the EOB char. */
1710178825Sdfr		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1711178825Sdfr
1712178825Sdfr		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1713178825Sdfr		*yy_cp = (yy_hold_char);
1714178825Sdfr		YY_RESTORE_YY_MORE_OFFSET
1715178825Sdfr
1716178825Sdfr		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1717178825Sdfr			{
1718178825Sdfr			/* We're scanning a new file or input source.  It's
1719178825Sdfr			 * possible that this happened because the user
1720178825Sdfr			 * just pointed yyin at a new source and called
1721178825Sdfr			 * yylex().  If so, then we have to assure
1722178825Sdfr			 * consistency between YY_CURRENT_BUFFER and our
1723178825Sdfr			 * globals.  Here is the right place to do so, because
1724178825Sdfr			 * this is the first action (other than possibly a
1725178825Sdfr			 * back-up) that will match for the new input source.
1726178825Sdfr			 */
1727178825Sdfr			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1728178825Sdfr			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1729178825Sdfr			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1730178825Sdfr			}
1731178825Sdfr
1732178825Sdfr		/* Note that here we test for yy_c_buf_p "<=" to the position
1733178825Sdfr		 * of the first EOB in the buffer, since yy_c_buf_p will
1734178825Sdfr		 * already have been incremented past the NUL character
1735178825Sdfr		 * (since all states make transitions on EOB to the
1736178825Sdfr		 * end-of-buffer state).  Contrast this with the test
1737178825Sdfr		 * in input().
1738178825Sdfr		 */
1739178825Sdfr		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1740178825Sdfr			{ /* This was really a NUL. */
1741178825Sdfr			yy_state_type yy_next_state;
1742178825Sdfr
1743178825Sdfr			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1744178825Sdfr
1745178825Sdfr			yy_current_state = yy_get_previous_state(  );
1746178825Sdfr
1747178825Sdfr			/* Okay, we're now positioned to make the NUL
1748178825Sdfr			 * transition.  We couldn't have
1749178825Sdfr			 * yy_get_previous_state() go ahead and do it
1750178825Sdfr			 * for us because it doesn't know how to deal
1751178825Sdfr			 * with the possibility of jamming (and we don't
1752178825Sdfr			 * want to build jamming into it because then it
1753178825Sdfr			 * will run more slowly).
1754178825Sdfr			 */
1755178825Sdfr
1756178825Sdfr			yy_next_state = yy_try_NUL_trans( yy_current_state );
1757178825Sdfr
1758178825Sdfr			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1759178825Sdfr
1760178825Sdfr			if ( yy_next_state )
1761178825Sdfr				{
1762178825Sdfr				/* Consume the NUL. */
1763178825Sdfr				yy_cp = ++(yy_c_buf_p);
1764178825Sdfr				yy_current_state = yy_next_state;
1765178825Sdfr				goto yy_match;
1766178825Sdfr				}
1767178825Sdfr
1768178825Sdfr			else
1769178825Sdfr				{
1770178825Sdfr				yy_cp = (yy_c_buf_p);
1771178825Sdfr				goto yy_find_action;
1772178825Sdfr				}
1773178825Sdfr			}
1774178825Sdfr
1775178825Sdfr		else switch ( yy_get_next_buffer(  ) )
1776178825Sdfr			{
1777178825Sdfr			case EOB_ACT_END_OF_FILE:
1778178825Sdfr				{
1779178825Sdfr				(yy_did_buffer_switch_on_eof) = 0;
1780178825Sdfr
1781178825Sdfr				if ( yywrap( ) )
1782178825Sdfr					{
1783178825Sdfr					/* Note: because we've taken care in
1784178825Sdfr					 * yy_get_next_buffer() to have set up
1785178825Sdfr					 * yytext, we can now set up
1786178825Sdfr					 * yy_c_buf_p so that if some total
1787178825Sdfr					 * hoser (like flex itself) wants to
1788178825Sdfr					 * call the scanner after we return the
1789178825Sdfr					 * YY_NULL, it'll still work - another
1790178825Sdfr					 * YY_NULL will get returned.
1791178825Sdfr					 */
1792178825Sdfr					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1793178825Sdfr
1794178825Sdfr					yy_act = YY_STATE_EOF(YY_START);
1795178825Sdfr					goto do_action;
1796178825Sdfr					}
1797178825Sdfr
1798178825Sdfr				else
1799178825Sdfr					{
1800178825Sdfr					if ( ! (yy_did_buffer_switch_on_eof) )
1801178825Sdfr						YY_NEW_FILE;
1802178825Sdfr					}
1803178825Sdfr				break;
1804178825Sdfr				}
1805178825Sdfr
1806178825Sdfr			case EOB_ACT_CONTINUE_SCAN:
1807178825Sdfr				(yy_c_buf_p) =
1808178825Sdfr					(yytext_ptr) + yy_amount_of_matched_text;
1809178825Sdfr
1810178825Sdfr				yy_current_state = yy_get_previous_state(  );
1811178825Sdfr
1812178825Sdfr				yy_cp = (yy_c_buf_p);
1813178825Sdfr				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1814178825Sdfr				goto yy_match;
1815178825Sdfr
1816178825Sdfr			case EOB_ACT_LAST_MATCH:
1817178825Sdfr				(yy_c_buf_p) =
1818178825Sdfr				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1819178825Sdfr
1820178825Sdfr				yy_current_state = yy_get_previous_state(  );
1821178825Sdfr
1822178825Sdfr				yy_cp = (yy_c_buf_p);
1823178825Sdfr				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1824178825Sdfr				goto yy_find_action;
1825178825Sdfr			}
1826178825Sdfr		break;
1827178825Sdfr		}
1828178825Sdfr
1829178825Sdfr	default:
1830178825Sdfr		YY_FATAL_ERROR(
1831178825Sdfr			"fatal flex scanner internal error--no action found" );
1832178825Sdfr	} /* end of action switch */
1833178825Sdfr		} /* end of scanning one token */
1834178825Sdfr} /* end of yylex */
1835178825Sdfr
1836178825Sdfr/* yy_get_next_buffer - try to read in a new buffer
1837178825Sdfr *
1838178825Sdfr * Returns a code representing an action:
1839178825Sdfr *	EOB_ACT_LAST_MATCH -
1840178825Sdfr *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1841178825Sdfr *	EOB_ACT_END_OF_FILE - end of file
1842178825Sdfr */
1843178825Sdfrstatic int yy_get_next_buffer (void)
1844178825Sdfr{
1845178825Sdfr    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1846178825Sdfr	register char *source = (yytext_ptr);
1847178825Sdfr	register int number_to_move, i;
1848178825Sdfr	int ret_val;
1849178825Sdfr
1850178825Sdfr	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1851178825Sdfr		YY_FATAL_ERROR(
1852178825Sdfr		"fatal flex scanner internal error--end of buffer missed" );
1853178825Sdfr
1854178825Sdfr	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1855178825Sdfr		{ /* Don't try to fill the buffer, so this is an EOF. */
1856178825Sdfr		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1857178825Sdfr			{
1858178825Sdfr			/* We matched a single character, the EOB, so
1859178825Sdfr			 * treat this as a final EOF.
1860178825Sdfr			 */
1861178825Sdfr			return EOB_ACT_END_OF_FILE;
1862178825Sdfr			}
1863178825Sdfr
1864178825Sdfr		else
1865178825Sdfr			{
1866178825Sdfr			/* We matched some text prior to the EOB, first
1867178825Sdfr			 * process it.
1868178825Sdfr			 */
1869178825Sdfr			return EOB_ACT_LAST_MATCH;
1870178825Sdfr			}
1871178825Sdfr		}
1872178825Sdfr
1873178825Sdfr	/* Try to read more data. */
1874178825Sdfr
1875178825Sdfr	/* First move last chars to start of buffer. */
1876178825Sdfr	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1877178825Sdfr
1878178825Sdfr	for ( i = 0; i < number_to_move; ++i )
1879178825Sdfr		*(dest++) = *(source++);
1880178825Sdfr
1881178825Sdfr	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1882178825Sdfr		/* don't do the read, it's not guaranteed to return an EOF,
1883178825Sdfr		 * just force an EOF
1884178825Sdfr		 */
1885178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1886178825Sdfr
1887178825Sdfr	else
1888178825Sdfr		{
1889233294Sstas			yy_size_t num_to_read =
1890178825Sdfr			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1891178825Sdfr
1892178825Sdfr		while ( num_to_read <= 0 )
1893178825Sdfr			{ /* Not enough room in the buffer - grow it. */
1894178825Sdfr
1895178825Sdfr			/* just a shorter name for the current buffer */
1896178825Sdfr			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1897178825Sdfr
1898178825Sdfr			int yy_c_buf_p_offset =
1899178825Sdfr				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1900178825Sdfr
1901178825Sdfr			if ( b->yy_is_our_buffer )
1902178825Sdfr				{
1903233294Sstas				yy_size_t new_size = b->yy_buf_size * 2;
1904178825Sdfr
1905178825Sdfr				if ( new_size <= 0 )
1906178825Sdfr					b->yy_buf_size += b->yy_buf_size / 8;
1907178825Sdfr				else
1908178825Sdfr					b->yy_buf_size *= 2;
1909178825Sdfr
1910178825Sdfr				b->yy_ch_buf = (char *)
1911178825Sdfr					/* Include room in for 2 EOB chars. */
1912178825Sdfr					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1913178825Sdfr				}
1914178825Sdfr			else
1915178825Sdfr				/* Can't grow it, we don't own it. */
1916178825Sdfr				b->yy_ch_buf = 0;
1917178825Sdfr
1918178825Sdfr			if ( ! b->yy_ch_buf )
1919178825Sdfr				YY_FATAL_ERROR(
1920178825Sdfr				"fatal error - scanner input buffer overflow" );
1921178825Sdfr
1922178825Sdfr			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1923178825Sdfr
1924178825Sdfr			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1925178825Sdfr						number_to_move - 1;
1926178825Sdfr
1927178825Sdfr			}
1928178825Sdfr
1929178825Sdfr		if ( num_to_read > YY_READ_BUF_SIZE )
1930178825Sdfr			num_to_read = YY_READ_BUF_SIZE;
1931178825Sdfr
1932178825Sdfr		/* Read in more data. */
1933178825Sdfr		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1934178825Sdfr			(yy_n_chars), num_to_read );
1935178825Sdfr
1936178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1937178825Sdfr		}
1938178825Sdfr
1939178825Sdfr	if ( (yy_n_chars) == 0 )
1940178825Sdfr		{
1941178825Sdfr		if ( number_to_move == YY_MORE_ADJ )
1942178825Sdfr			{
1943178825Sdfr			ret_val = EOB_ACT_END_OF_FILE;
1944178825Sdfr			yyrestart(yyin  );
1945178825Sdfr			}
1946178825Sdfr
1947178825Sdfr		else
1948178825Sdfr			{
1949178825Sdfr			ret_val = EOB_ACT_LAST_MATCH;
1950178825Sdfr			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1951178825Sdfr				YY_BUFFER_EOF_PENDING;
1952178825Sdfr			}
1953178825Sdfr		}
1954178825Sdfr
1955178825Sdfr	else
1956178825Sdfr		ret_val = EOB_ACT_CONTINUE_SCAN;
1957178825Sdfr
1958233294Sstas	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1959233294Sstas		/* Extend the array by 50%, plus the number we really need. */
1960233294Sstas		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1961233294Sstas		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1962233294Sstas		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1963233294Sstas			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1964233294Sstas	}
1965233294Sstas
1966178825Sdfr	(yy_n_chars) += number_to_move;
1967178825Sdfr	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1968178825Sdfr	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1969178825Sdfr
1970178825Sdfr	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1971178825Sdfr
1972178825Sdfr	return ret_val;
1973178825Sdfr}
1974178825Sdfr
1975178825Sdfr/* yy_get_previous_state - get the state just before the EOB char was reached */
1976178825Sdfr
1977178825Sdfr    static yy_state_type yy_get_previous_state (void)
1978178825Sdfr{
1979178825Sdfr	register yy_state_type yy_current_state;
1980178825Sdfr	register char *yy_cp;
1981178825Sdfr
1982178825Sdfr	yy_current_state = (yy_start);
1983178825Sdfr
1984178825Sdfr	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1985178825Sdfr		{
1986178825Sdfr		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1987178825Sdfr		if ( yy_accept[yy_current_state] )
1988178825Sdfr			{
1989178825Sdfr			(yy_last_accepting_state) = yy_current_state;
1990178825Sdfr			(yy_last_accepting_cpos) = yy_cp;
1991178825Sdfr			}
1992178825Sdfr		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1993178825Sdfr			{
1994178825Sdfr			yy_current_state = (int) yy_def[yy_current_state];
1995178825Sdfr			if ( yy_current_state >= 568 )
1996178825Sdfr				yy_c = yy_meta[(unsigned int) yy_c];
1997178825Sdfr			}
1998178825Sdfr		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1999178825Sdfr		}
2000178825Sdfr
2001178825Sdfr	return yy_current_state;
2002178825Sdfr}
2003178825Sdfr
2004178825Sdfr/* yy_try_NUL_trans - try to make a transition on the NUL character
2005178825Sdfr *
2006178825Sdfr * synopsis
2007178825Sdfr *	next_state = yy_try_NUL_trans( current_state );
2008178825Sdfr */
2009178825Sdfr    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2010178825Sdfr{
2011178825Sdfr	register int yy_is_jam;
2012178825Sdfr    	register char *yy_cp = (yy_c_buf_p);
2013178825Sdfr
2014178825Sdfr	register YY_CHAR yy_c = 1;
2015178825Sdfr	if ( yy_accept[yy_current_state] )
2016178825Sdfr		{
2017178825Sdfr		(yy_last_accepting_state) = yy_current_state;
2018178825Sdfr		(yy_last_accepting_cpos) = yy_cp;
2019178825Sdfr		}
2020178825Sdfr	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2021178825Sdfr		{
2022178825Sdfr		yy_current_state = (int) yy_def[yy_current_state];
2023178825Sdfr		if ( yy_current_state >= 568 )
2024178825Sdfr			yy_c = yy_meta[(unsigned int) yy_c];
2025178825Sdfr		}
2026178825Sdfr	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2027178825Sdfr	yy_is_jam = (yy_current_state == 567);
2028178825Sdfr
2029178825Sdfr	return yy_is_jam ? 0 : yy_current_state;
2030178825Sdfr}
2031178825Sdfr
2032178825Sdfr    static void yyunput (int c, register char * yy_bp )
2033178825Sdfr{
2034178825Sdfr	register char *yy_cp;
2035178825Sdfr
2036178825Sdfr    yy_cp = (yy_c_buf_p);
2037178825Sdfr
2038178825Sdfr	/* undo effects of setting up yytext */
2039178825Sdfr	*yy_cp = (yy_hold_char);
2040178825Sdfr
2041178825Sdfr	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2042178825Sdfr		{ /* need to shift things up to make room */
2043178825Sdfr		/* +2 for EOB chars. */
2044233294Sstas		register yy_size_t number_to_move = (yy_n_chars) + 2;
2045178825Sdfr		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2046178825Sdfr					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2047178825Sdfr		register char *source =
2048178825Sdfr				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2049178825Sdfr
2050178825Sdfr		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2051178825Sdfr			*--dest = *--source;
2052178825Sdfr
2053178825Sdfr		yy_cp += (int) (dest - source);
2054178825Sdfr		yy_bp += (int) (dest - source);
2055178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2056178825Sdfr			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2057178825Sdfr
2058178825Sdfr		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2059178825Sdfr			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2060178825Sdfr		}
2061178825Sdfr
2062178825Sdfr	*--yy_cp = (char) c;
2063178825Sdfr
2064178825Sdfr	(yytext_ptr) = yy_bp;
2065178825Sdfr	(yy_hold_char) = *yy_cp;
2066178825Sdfr	(yy_c_buf_p) = yy_cp;
2067178825Sdfr}
2068178825Sdfr
2069178825Sdfr#ifndef YY_NO_INPUT
2070178825Sdfr#ifdef __cplusplus
2071178825Sdfr    static int yyinput (void)
2072178825Sdfr#else
2073178825Sdfr    static int input  (void)
2074178825Sdfr#endif
2075178825Sdfr
2076178825Sdfr{
2077178825Sdfr	int c;
2078178825Sdfr
2079178825Sdfr	*(yy_c_buf_p) = (yy_hold_char);
2080178825Sdfr
2081178825Sdfr	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2082178825Sdfr		{
2083178825Sdfr		/* yy_c_buf_p now points to the character we want to return.
2084178825Sdfr		 * If this occurs *before* the EOB characters, then it's a
2085178825Sdfr		 * valid NUL; if not, then we've hit the end of the buffer.
2086178825Sdfr		 */
2087178825Sdfr		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2088178825Sdfr			/* This was really a NUL. */
2089178825Sdfr			*(yy_c_buf_p) = '\0';
2090178825Sdfr
2091178825Sdfr		else
2092178825Sdfr			{ /* need more input */
2093233294Sstas			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2094178825Sdfr			++(yy_c_buf_p);
2095178825Sdfr
2096178825Sdfr			switch ( yy_get_next_buffer(  ) )
2097178825Sdfr				{
2098178825Sdfr				case EOB_ACT_LAST_MATCH:
2099178825Sdfr					/* This happens because yy_g_n_b()
2100178825Sdfr					 * sees that we've accumulated a
2101178825Sdfr					 * token and flags that we need to
2102178825Sdfr					 * try matching the token before
2103178825Sdfr					 * proceeding.  But for input(),
2104178825Sdfr					 * there's no matching to consider.
2105178825Sdfr					 * So convert the EOB_ACT_LAST_MATCH
2106178825Sdfr					 * to EOB_ACT_END_OF_FILE.
2107178825Sdfr					 */
2108178825Sdfr
2109178825Sdfr					/* Reset buffer status. */
2110178825Sdfr					yyrestart(yyin );
2111178825Sdfr
2112178825Sdfr					/*FALLTHROUGH*/
2113178825Sdfr
2114178825Sdfr				case EOB_ACT_END_OF_FILE:
2115178825Sdfr					{
2116178825Sdfr					if ( yywrap( ) )
2117178825Sdfr						return 0;
2118178825Sdfr
2119178825Sdfr					if ( ! (yy_did_buffer_switch_on_eof) )
2120178825Sdfr						YY_NEW_FILE;
2121178825Sdfr#ifdef __cplusplus
2122178825Sdfr					return yyinput();
2123178825Sdfr#else
2124178825Sdfr					return input();
2125178825Sdfr#endif
2126178825Sdfr					}
2127178825Sdfr
2128178825Sdfr				case EOB_ACT_CONTINUE_SCAN:
2129178825Sdfr					(yy_c_buf_p) = (yytext_ptr) + offset;
2130178825Sdfr					break;
2131178825Sdfr				}
2132178825Sdfr			}
2133178825Sdfr		}
2134178825Sdfr
2135178825Sdfr	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
2136178825Sdfr	*(yy_c_buf_p) = '\0';	/* preserve yytext */
2137178825Sdfr	(yy_hold_char) = *++(yy_c_buf_p);
2138178825Sdfr
2139178825Sdfr	return c;
2140178825Sdfr}
2141178825Sdfr#endif	/* ifndef YY_NO_INPUT */
2142178825Sdfr
2143178825Sdfr/** Immediately switch to a different input stream.
2144178825Sdfr * @param input_file A readable stream.
2145178825Sdfr *
2146178825Sdfr * @note This function does not reset the start condition to @c INITIAL .
2147178825Sdfr */
2148178825Sdfr    void yyrestart  (FILE * input_file )
2149178825Sdfr{
2150178825Sdfr
2151178825Sdfr	if ( ! YY_CURRENT_BUFFER ){
2152178825Sdfr        yyensure_buffer_stack ();
2153178825Sdfr		YY_CURRENT_BUFFER_LVALUE =
2154178825Sdfr            yy_create_buffer(yyin,YY_BUF_SIZE );
2155178825Sdfr	}
2156178825Sdfr
2157178825Sdfr	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2158178825Sdfr	yy_load_buffer_state( );
2159178825Sdfr}
2160178825Sdfr
2161178825Sdfr/** Switch to a different input buffer.
2162178825Sdfr * @param new_buffer The new input buffer.
2163178825Sdfr *
2164178825Sdfr */
2165178825Sdfr    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
2166178825Sdfr{
2167178825Sdfr
2168178825Sdfr	/* TODO. We should be able to replace this entire function body
2169178825Sdfr	 * with
2170178825Sdfr	 *		yypop_buffer_state();
2171178825Sdfr	 *		yypush_buffer_state(new_buffer);
2172178825Sdfr     */
2173178825Sdfr	yyensure_buffer_stack ();
2174178825Sdfr	if ( YY_CURRENT_BUFFER == new_buffer )
2175178825Sdfr		return;
2176178825Sdfr
2177178825Sdfr	if ( YY_CURRENT_BUFFER )
2178178825Sdfr		{
2179178825Sdfr		/* Flush out information for old buffer. */
2180178825Sdfr		*(yy_c_buf_p) = (yy_hold_char);
2181178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2182178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2183178825Sdfr		}
2184178825Sdfr
2185178825Sdfr	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2186178825Sdfr	yy_load_buffer_state( );
2187178825Sdfr
2188178825Sdfr	/* We don't actually know whether we did this switch during
2189178825Sdfr	 * EOF (yywrap()) processing, but the only time this flag
2190178825Sdfr	 * is looked at is after yywrap() is called, so it's safe
2191178825Sdfr	 * to go ahead and always set it.
2192178825Sdfr	 */
2193178825Sdfr	(yy_did_buffer_switch_on_eof) = 1;
2194178825Sdfr}
2195178825Sdfr
2196178825Sdfrstatic void yy_load_buffer_state  (void)
2197178825Sdfr{
2198178825Sdfr    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2199178825Sdfr	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2200178825Sdfr	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2201178825Sdfr	(yy_hold_char) = *(yy_c_buf_p);
2202178825Sdfr}
2203178825Sdfr
2204178825Sdfr/** Allocate and initialize an input buffer state.
2205178825Sdfr * @param file A readable stream.
2206178825Sdfr * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2207178825Sdfr *
2208178825Sdfr * @return the allocated buffer state.
2209178825Sdfr */
2210178825Sdfr    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
2211178825Sdfr{
2212178825Sdfr	YY_BUFFER_STATE b;
2213178825Sdfr
2214178825Sdfr	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2215178825Sdfr	if ( ! b )
2216178825Sdfr		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2217178825Sdfr
2218178825Sdfr	b->yy_buf_size = size;
2219178825Sdfr
2220178825Sdfr	/* yy_ch_buf has to be 2 characters longer than the size given because
2221178825Sdfr	 * we need to put in 2 end-of-buffer characters.
2222178825Sdfr	 */
2223178825Sdfr	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
2224178825Sdfr	if ( ! b->yy_ch_buf )
2225178825Sdfr		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2226178825Sdfr
2227178825Sdfr	b->yy_is_our_buffer = 1;
2228178825Sdfr
2229178825Sdfr	yy_init_buffer(b,file );
2230178825Sdfr
2231178825Sdfr	return b;
2232178825Sdfr}
2233178825Sdfr
2234178825Sdfr/** Destroy the buffer.
2235178825Sdfr * @param b a buffer created with yy_create_buffer()
2236178825Sdfr *
2237178825Sdfr */
2238178825Sdfr    void yy_delete_buffer (YY_BUFFER_STATE  b )
2239178825Sdfr{
2240178825Sdfr
2241178825Sdfr	if ( ! b )
2242178825Sdfr		return;
2243178825Sdfr
2244178825Sdfr	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2245178825Sdfr		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2246178825Sdfr
2247178825Sdfr	if ( b->yy_is_our_buffer )
2248178825Sdfr		yyfree((void *) b->yy_ch_buf  );
2249178825Sdfr
2250178825Sdfr	yyfree((void *) b  );
2251178825Sdfr}
2252178825Sdfr
2253178825Sdfr#ifndef __cplusplus
2254178825Sdfrextern int isatty (int );
2255178825Sdfr#endif /* __cplusplus */
2256178825Sdfr
2257178825Sdfr/* Initializes or reinitializes a buffer.
2258178825Sdfr * This function is sometimes called more than once on the same buffer,
2259178825Sdfr * such as during a yyrestart() or at EOF.
2260178825Sdfr */
2261178825Sdfr    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
2262178825Sdfr
2263178825Sdfr{
2264178825Sdfr	int oerrno = errno;
2265178825Sdfr
2266178825Sdfr	yy_flush_buffer(b );
2267178825Sdfr
2268178825Sdfr	b->yy_input_file = file;
2269178825Sdfr	b->yy_fill_buffer = 1;
2270178825Sdfr
2271178825Sdfr    /* If b is the current buffer, then yy_init_buffer was _probably_
2272178825Sdfr     * called from yyrestart() or through yy_get_next_buffer.
2273178825Sdfr     * In that case, we don't want to reset the lineno or column.
2274178825Sdfr     */
2275178825Sdfr    if (b != YY_CURRENT_BUFFER){
2276178825Sdfr        b->yy_bs_lineno = 1;
2277178825Sdfr        b->yy_bs_column = 0;
2278178825Sdfr    }
2279178825Sdfr
2280178825Sdfr        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2281178825Sdfr
2282178825Sdfr	errno = oerrno;
2283178825Sdfr}
2284178825Sdfr
2285178825Sdfr/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2286178825Sdfr * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2287178825Sdfr *
2288178825Sdfr */
2289178825Sdfr    void yy_flush_buffer (YY_BUFFER_STATE  b )
2290178825Sdfr{
2291178825Sdfr    	if ( ! b )
2292178825Sdfr		return;
2293178825Sdfr
2294178825Sdfr	b->yy_n_chars = 0;
2295178825Sdfr
2296178825Sdfr	/* We always need two end-of-buffer characters.  The first causes
2297178825Sdfr	 * a transition to the end-of-buffer state.  The second causes
2298178825Sdfr	 * a jam in that state.
2299178825Sdfr	 */
2300178825Sdfr	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2301178825Sdfr	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2302178825Sdfr
2303178825Sdfr	b->yy_buf_pos = &b->yy_ch_buf[0];
2304178825Sdfr
2305178825Sdfr	b->yy_at_bol = 1;
2306178825Sdfr	b->yy_buffer_status = YY_BUFFER_NEW;
2307178825Sdfr
2308178825Sdfr	if ( b == YY_CURRENT_BUFFER )
2309178825Sdfr		yy_load_buffer_state( );
2310178825Sdfr}
2311178825Sdfr
2312178825Sdfr/** Pushes the new state onto the stack. The new state becomes
2313178825Sdfr *  the current state. This function will allocate the stack
2314178825Sdfr *  if necessary.
2315178825Sdfr *  @param new_buffer The new state.
2316178825Sdfr *
2317178825Sdfr */
2318178825Sdfrvoid yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2319178825Sdfr{
2320178825Sdfr    	if (new_buffer == NULL)
2321178825Sdfr		return;
2322178825Sdfr
2323178825Sdfr	yyensure_buffer_stack();
2324178825Sdfr
2325178825Sdfr	/* This block is copied from yy_switch_to_buffer. */
2326178825Sdfr	if ( YY_CURRENT_BUFFER )
2327178825Sdfr		{
2328178825Sdfr		/* Flush out information for old buffer. */
2329178825Sdfr		*(yy_c_buf_p) = (yy_hold_char);
2330178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2331178825Sdfr		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2332178825Sdfr		}
2333178825Sdfr
2334178825Sdfr	/* Only push if top exists. Otherwise, replace top. */
2335178825Sdfr	if (YY_CURRENT_BUFFER)
2336178825Sdfr		(yy_buffer_stack_top)++;
2337178825Sdfr	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2338178825Sdfr
2339178825Sdfr	/* copied from yy_switch_to_buffer. */
2340178825Sdfr	yy_load_buffer_state( );
2341178825Sdfr	(yy_did_buffer_switch_on_eof) = 1;
2342178825Sdfr}
2343178825Sdfr
2344178825Sdfr/** Removes and deletes the top of the stack, if present.
2345178825Sdfr *  The next element becomes the new top.
2346178825Sdfr *
2347178825Sdfr */
2348178825Sdfrvoid yypop_buffer_state (void)
2349178825Sdfr{
2350178825Sdfr    	if (!YY_CURRENT_BUFFER)
2351178825Sdfr		return;
2352178825Sdfr
2353178825Sdfr	yy_delete_buffer(YY_CURRENT_BUFFER );
2354178825Sdfr	YY_CURRENT_BUFFER_LVALUE = NULL;
2355178825Sdfr	if ((yy_buffer_stack_top) > 0)
2356178825Sdfr		--(yy_buffer_stack_top);
2357178825Sdfr
2358178825Sdfr	if (YY_CURRENT_BUFFER) {
2359178825Sdfr		yy_load_buffer_state( );
2360178825Sdfr		(yy_did_buffer_switch_on_eof) = 1;
2361178825Sdfr	}
2362178825Sdfr}
2363178825Sdfr
2364178825Sdfr/* Allocates the stack if it does not exist.
2365178825Sdfr *  Guarantees space for at least one push.
2366178825Sdfr */
2367178825Sdfrstatic void yyensure_buffer_stack (void)
2368178825Sdfr{
2369233294Sstas	yy_size_t num_to_alloc;
2370178825Sdfr
2371178825Sdfr	if (!(yy_buffer_stack)) {
2372178825Sdfr
2373178825Sdfr		/* First allocation is just for 2 elements, since we don't know if this
2374178825Sdfr		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2375178825Sdfr		 * immediate realloc on the next call.
2376178825Sdfr         */
2377178825Sdfr		num_to_alloc = 1;
2378178825Sdfr		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2379178825Sdfr								(num_to_alloc * sizeof(struct yy_buffer_state*)
2380178825Sdfr								);
2381233294Sstas		if ( ! (yy_buffer_stack) )
2382233294Sstas			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2383233294Sstas
2384178825Sdfr		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2385178825Sdfr
2386178825Sdfr		(yy_buffer_stack_max) = num_to_alloc;
2387178825Sdfr		(yy_buffer_stack_top) = 0;
2388178825Sdfr		return;
2389178825Sdfr	}
2390178825Sdfr
2391178825Sdfr	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2392178825Sdfr
2393178825Sdfr		/* Increase the buffer to prepare for a possible push. */
2394178825Sdfr		int grow_size = 8 /* arbitrary grow size */;
2395178825Sdfr
2396178825Sdfr		num_to_alloc = (yy_buffer_stack_max) + grow_size;
2397178825Sdfr		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2398178825Sdfr								((yy_buffer_stack),
2399178825Sdfr								num_to_alloc * sizeof(struct yy_buffer_state*)
2400178825Sdfr								);
2401233294Sstas		if ( ! (yy_buffer_stack) )
2402233294Sstas			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2403178825Sdfr
2404178825Sdfr		/* zero only the new slots.*/
2405178825Sdfr		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2406178825Sdfr		(yy_buffer_stack_max) = num_to_alloc;
2407178825Sdfr	}
2408178825Sdfr}
2409178825Sdfr
2410178825Sdfr/** Setup the input buffer state to scan directly from a user-specified character buffer.
2411178825Sdfr * @param base the character buffer
2412178825Sdfr * @param size the size in bytes of the character buffer
2413178825Sdfr *
2414178825Sdfr * @return the newly allocated buffer state object.
2415178825Sdfr */
2416178825SdfrYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
2417178825Sdfr{
2418178825Sdfr	YY_BUFFER_STATE b;
2419178825Sdfr
2420178825Sdfr	if ( size < 2 ||
2421178825Sdfr	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2422178825Sdfr	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2423178825Sdfr		/* They forgot to leave room for the EOB's. */
2424178825Sdfr		return 0;
2425178825Sdfr
2426178825Sdfr	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2427178825Sdfr	if ( ! b )
2428178825Sdfr		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2429178825Sdfr
2430178825Sdfr	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2431178825Sdfr	b->yy_buf_pos = b->yy_ch_buf = base;
2432178825Sdfr	b->yy_is_our_buffer = 0;
2433178825Sdfr	b->yy_input_file = 0;
2434178825Sdfr	b->yy_n_chars = b->yy_buf_size;
2435178825Sdfr	b->yy_is_interactive = 0;
2436178825Sdfr	b->yy_at_bol = 1;
2437178825Sdfr	b->yy_fill_buffer = 0;
2438178825Sdfr	b->yy_buffer_status = YY_BUFFER_NEW;
2439178825Sdfr
2440178825Sdfr	yy_switch_to_buffer(b  );
2441178825Sdfr
2442178825Sdfr	return b;
2443178825Sdfr}
2444178825Sdfr
2445178825Sdfr/** Setup the input buffer state to scan a string. The next call to yylex() will
2446178825Sdfr * scan from a @e copy of @a str.
2447233294Sstas * @param yystr a NUL-terminated string to scan
2448178825Sdfr *
2449178825Sdfr * @return the newly allocated buffer state object.
2450178825Sdfr * @note If you want to scan bytes that may contain NUL values, then use
2451178825Sdfr *       yy_scan_bytes() instead.
2452178825Sdfr */
2453178825SdfrYY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2454178825Sdfr{
2455178825Sdfr
2456178825Sdfr	return yy_scan_bytes(yystr,strlen(yystr) );
2457178825Sdfr}
2458178825Sdfr
2459178825Sdfr/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2460178825Sdfr * scan from a @e copy of @a bytes.
2461178825Sdfr * @param bytes the byte buffer to scan
2462178825Sdfr * @param len the number of bytes in the buffer pointed to by @a bytes.
2463178825Sdfr *
2464178825Sdfr * @return the newly allocated buffer state object.
2465178825Sdfr */
2466233294SstasYY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
2467178825Sdfr{
2468178825Sdfr	YY_BUFFER_STATE b;
2469178825Sdfr	char *buf;
2470233294Sstas	yy_size_t n, i;
2471178825Sdfr
2472178825Sdfr	/* Get memory for full buffer, including space for trailing EOB's. */
2473178825Sdfr	n = _yybytes_len + 2;
2474178825Sdfr	buf = (char *) yyalloc(n  );
2475178825Sdfr	if ( ! buf )
2476178825Sdfr		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2477178825Sdfr
2478178825Sdfr	for ( i = 0; i < _yybytes_len; ++i )
2479178825Sdfr		buf[i] = yybytes[i];
2480178825Sdfr
2481178825Sdfr	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2482178825Sdfr
2483178825Sdfr	b = yy_scan_buffer(buf,n );
2484178825Sdfr	if ( ! b )
2485178825Sdfr		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2486178825Sdfr
2487178825Sdfr	/* It's okay to grow etc. this buffer, and we should throw it
2488178825Sdfr	 * away when we're done.
2489178825Sdfr	 */
2490178825Sdfr	b->yy_is_our_buffer = 1;
2491178825Sdfr
2492178825Sdfr	return b;
2493178825Sdfr}
2494178825Sdfr
2495178825Sdfr#ifndef YY_EXIT_FAILURE
2496178825Sdfr#define YY_EXIT_FAILURE 2
2497178825Sdfr#endif
2498178825Sdfr
2499178825Sdfrstatic void yy_fatal_error (yyconst char* msg )
2500178825Sdfr{
2501178825Sdfr    	(void) fprintf( stderr, "%s\n", msg );
2502178825Sdfr	exit( YY_EXIT_FAILURE );
2503178825Sdfr}
2504178825Sdfr
2505178825Sdfr/* Redefine yyless() so it works in section 3 code. */
2506178825Sdfr
2507178825Sdfr#undef yyless
2508178825Sdfr#define yyless(n) \
2509178825Sdfr	do \
2510178825Sdfr		{ \
2511178825Sdfr		/* Undo effects of setting up yytext. */ \
2512178825Sdfr        int yyless_macro_arg = (n); \
2513178825Sdfr        YY_LESS_LINENO(yyless_macro_arg);\
2514178825Sdfr		yytext[yyleng] = (yy_hold_char); \
2515178825Sdfr		(yy_c_buf_p) = yytext + yyless_macro_arg; \
2516178825Sdfr		(yy_hold_char) = *(yy_c_buf_p); \
2517178825Sdfr		*(yy_c_buf_p) = '\0'; \
2518178825Sdfr		yyleng = yyless_macro_arg; \
2519178825Sdfr		} \
2520178825Sdfr	while ( 0 )
2521178825Sdfr
2522178825Sdfr/* Accessor  methods (get/set functions) to struct members. */
2523178825Sdfr
2524178825Sdfr/** Get the current line number.
2525178825Sdfr *
2526178825Sdfr */
2527178825Sdfrint yyget_lineno  (void)
2528178825Sdfr{
2529178825Sdfr
2530178825Sdfr    return yylineno;
2531178825Sdfr}
2532178825Sdfr
2533178825Sdfr/** Get the input stream.
2534178825Sdfr *
2535178825Sdfr */
2536178825SdfrFILE *yyget_in  (void)
2537178825Sdfr{
2538178825Sdfr        return yyin;
2539178825Sdfr}
2540178825Sdfr
2541178825Sdfr/** Get the output stream.
2542178825Sdfr *
2543178825Sdfr */
2544178825SdfrFILE *yyget_out  (void)
2545178825Sdfr{
2546178825Sdfr        return yyout;
2547178825Sdfr}
2548178825Sdfr
2549178825Sdfr/** Get the length of the current token.
2550178825Sdfr *
2551178825Sdfr */
2552233294Sstasyy_size_t yyget_leng  (void)
2553178825Sdfr{
2554178825Sdfr        return yyleng;
2555178825Sdfr}
2556178825Sdfr
2557178825Sdfr/** Get the current token.
2558178825Sdfr *
2559178825Sdfr */
2560178825Sdfr
2561178825Sdfrchar *yyget_text  (void)
2562178825Sdfr{
2563178825Sdfr        return yytext;
2564178825Sdfr}
2565178825Sdfr
2566178825Sdfr/** Set the current line number.
2567178825Sdfr * @param line_number
2568178825Sdfr *
2569178825Sdfr */
2570178825Sdfrvoid yyset_lineno (int  line_number )
2571178825Sdfr{
2572178825Sdfr
2573178825Sdfr    yylineno = line_number;
2574178825Sdfr}
2575178825Sdfr
2576178825Sdfr/** Set the input stream. This does not discard the current
2577178825Sdfr * input buffer.
2578178825Sdfr * @param in_str A readable stream.
2579178825Sdfr *
2580178825Sdfr * @see yy_switch_to_buffer
2581178825Sdfr */
2582178825Sdfrvoid yyset_in (FILE *  in_str )
2583178825Sdfr{
2584178825Sdfr        yyin = in_str ;
2585178825Sdfr}
2586178825Sdfr
2587178825Sdfrvoid yyset_out (FILE *  out_str )
2588178825Sdfr{
2589178825Sdfr        yyout = out_str ;
2590178825Sdfr}
2591178825Sdfr
2592178825Sdfrint yyget_debug  (void)
2593178825Sdfr{
2594178825Sdfr        return yy_flex_debug;
2595178825Sdfr}
2596178825Sdfr
2597178825Sdfrvoid yyset_debug (int  bdebug )
2598178825Sdfr{
2599178825Sdfr        yy_flex_debug = bdebug ;
2600178825Sdfr}
2601178825Sdfr
2602178825Sdfrstatic int yy_init_globals (void)
2603178825Sdfr{
2604178825Sdfr        /* Initialization is the same as for the non-reentrant scanner.
2605178825Sdfr     * This function is called from yylex_destroy(), so don't allocate here.
2606178825Sdfr     */
2607178825Sdfr
2608178825Sdfr    (yy_buffer_stack) = 0;
2609178825Sdfr    (yy_buffer_stack_top) = 0;
2610178825Sdfr    (yy_buffer_stack_max) = 0;
2611178825Sdfr    (yy_c_buf_p) = (char *) 0;
2612178825Sdfr    (yy_init) = 0;
2613178825Sdfr    (yy_start) = 0;
2614178825Sdfr
2615178825Sdfr/* Defined in main.c */
2616178825Sdfr#ifdef YY_STDINIT
2617178825Sdfr    yyin = stdin;
2618178825Sdfr    yyout = stdout;
2619178825Sdfr#else
2620178825Sdfr    yyin = (FILE *) 0;
2621178825Sdfr    yyout = (FILE *) 0;
2622178825Sdfr#endif
2623178825Sdfr
2624178825Sdfr    /* For future reference: Set errno on error, since we are called by
2625178825Sdfr     * yylex_init()
2626178825Sdfr     */
2627178825Sdfr    return 0;
2628178825Sdfr}
2629178825Sdfr
2630178825Sdfr/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2631178825Sdfrint yylex_destroy  (void)
2632178825Sdfr{
2633178825Sdfr
2634178825Sdfr    /* Pop the buffer stack, destroying each element. */
2635178825Sdfr	while(YY_CURRENT_BUFFER){
2636178825Sdfr		yy_delete_buffer(YY_CURRENT_BUFFER  );
2637178825Sdfr		YY_CURRENT_BUFFER_LVALUE = NULL;
2638178825Sdfr		yypop_buffer_state();
2639178825Sdfr	}
2640178825Sdfr
2641178825Sdfr	/* Destroy the stack itself. */
2642178825Sdfr	yyfree((yy_buffer_stack) );
2643178825Sdfr	(yy_buffer_stack) = NULL;
2644178825Sdfr
2645178825Sdfr    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2646178825Sdfr     * yylex() is called, initialization will occur. */
2647178825Sdfr    yy_init_globals( );
2648178825Sdfr
2649178825Sdfr    return 0;
2650178825Sdfr}
2651178825Sdfr
2652178825Sdfr/*
2653178825Sdfr * Internal utility routines.
2654178825Sdfr */
2655178825Sdfr
2656178825Sdfr#ifndef yytext_ptr
2657178825Sdfrstatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2658178825Sdfr{
2659178825Sdfr	register int i;
2660178825Sdfr	for ( i = 0; i < n; ++i )
2661178825Sdfr		s1[i] = s2[i];
2662178825Sdfr}
2663178825Sdfr#endif
2664178825Sdfr
2665178825Sdfr#ifdef YY_NEED_STRLEN
2666178825Sdfrstatic int yy_flex_strlen (yyconst char * s )
2667178825Sdfr{
2668178825Sdfr	register int n;
2669178825Sdfr	for ( n = 0; s[n]; ++n )
2670178825Sdfr		;
2671178825Sdfr
2672178825Sdfr	return n;
2673178825Sdfr}
2674178825Sdfr#endif
2675178825Sdfr
2676178825Sdfrvoid *yyalloc (yy_size_t  size )
2677178825Sdfr{
2678178825Sdfr	return (void *) malloc( size );
2679178825Sdfr}
2680178825Sdfr
2681178825Sdfrvoid *yyrealloc  (void * ptr, yy_size_t  size )
2682178825Sdfr{
2683178825Sdfr	/* The cast to (char *) in the following accommodates both
2684178825Sdfr	 * implementations that use char* generic pointers, and those
2685178825Sdfr	 * that use void* generic pointers.  It works with the latter
2686178825Sdfr	 * because both ANSI C and C++ allow castless assignment from
2687178825Sdfr	 * any pointer type to void*, and deal with argument conversions
2688178825Sdfr	 * as though doing an assignment.
2689178825Sdfr	 */
2690178825Sdfr	return (void *) realloc( (char *) ptr, size );
2691178825Sdfr}
2692178825Sdfr
2693178825Sdfrvoid yyfree (void * ptr )
2694178825Sdfr{
2695178825Sdfr	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2696178825Sdfr}
2697178825Sdfr
2698178825Sdfr#define YYTABLES_NAME "yytables"
2699178825Sdfr
2700178825Sdfr#line 274 "lex.l"
2701178825Sdfr
2702178825Sdfr
2703178825Sdfr
2704178825Sdfr#ifndef yywrap /* XXX */
2705178825Sdfrint
2706233294Sstasyywrap ()
2707178825Sdfr{
2708178825Sdfr     return 1;
2709178825Sdfr}
2710178825Sdfr#endif
2711178825Sdfr
2712178825Sdfrvoid
2713233294Sstaslex_error_message (const char *format, ...)
2714178825Sdfr{
2715178825Sdfr    va_list args;
2716178825Sdfr
2717178825Sdfr    va_start (args, format);
2718178825Sdfr    fprintf (stderr, "%s:%d: ", get_filename(), lineno);
2719178825Sdfr    vfprintf (stderr, format, args);
2720178825Sdfr    va_end (args);
2721178825Sdfr    error_flag++;
2722178825Sdfr}
2723178825Sdfr
2724178825Sdfrstatic void
2725178825Sdfrunterminated(const char *type, unsigned start_lineno)
2726178825Sdfr{
2727233294Sstas    lex_error_message("unterminated %s, possibly started on line %d\n", type, start_lineno);
2728178825Sdfr}
2729178825Sdfr
2730