lex.c revision 350952b9
1fd7d9bd3Smrg
2350952b9Smrg#line 3 "lex.c"
3350952b9Smrg
4350952b9Smrg#define  YY_INT_ALIGNED short int
5350952b9Smrg
6350952b9Smrg/* A lexical scanner generated by flex */
7fd7d9bd3Smrg
8fd7d9bd3Smrg#define FLEX_SCANNER
9fd7d9bd3Smrg#define YY_FLEX_MAJOR_VERSION 2
10fd7d9bd3Smrg#define YY_FLEX_MINOR_VERSION 5
11350952b9Smrg#define YY_FLEX_SUBMINOR_VERSION 35
12350952b9Smrg#if YY_FLEX_SUBMINOR_VERSION > 0
13350952b9Smrg#define FLEX_BETA
14350952b9Smrg#endif
15fd7d9bd3Smrg
16350952b9Smrg/* First, we deal with  platform-specific or compiler-specific issues. */
17350952b9Smrg
18350952b9Smrg/* begin standard C headers. */
19fd7d9bd3Smrg#include <stdio.h>
20350952b9Smrg#include <string.h>
21350952b9Smrg#include <errno.h>
22350952b9Smrg#include <stdlib.h>
23fd7d9bd3Smrg
24350952b9Smrg/* end standard C headers. */
25fd7d9bd3Smrg
26350952b9Smrg/* flex integer type definitions */
27350952b9Smrg
28350952b9Smrg#ifndef FLEXINT_H
29350952b9Smrg#define FLEXINT_H
30350952b9Smrg
31350952b9Smrg/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32350952b9Smrg
33350952b9Smrg#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34350952b9Smrg
35350952b9Smrg/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36350952b9Smrg * if you want the limit (max/min) macros for int types.
37350952b9Smrg */
38350952b9Smrg#ifndef __STDC_LIMIT_MACROS
39350952b9Smrg#define __STDC_LIMIT_MACROS 1
40fd7d9bd3Smrg#endif
41fd7d9bd3Smrg
42350952b9Smrg#include <inttypes.h>
43350952b9Smrgtypedef int8_t flex_int8_t;
44350952b9Smrgtypedef uint8_t flex_uint8_t;
45350952b9Smrgtypedef int16_t flex_int16_t;
46350952b9Smrgtypedef uint16_t flex_uint16_t;
47350952b9Smrgtypedef int32_t flex_int32_t;
48350952b9Smrgtypedef uint32_t flex_uint32_t;
49350952b9Smrg#else
50350952b9Smrgtypedef signed char flex_int8_t;
51350952b9Smrgtypedef short int flex_int16_t;
52350952b9Smrgtypedef int flex_int32_t;
53350952b9Smrgtypedef unsigned char flex_uint8_t;
54350952b9Smrgtypedef unsigned short int flex_uint16_t;
55350952b9Smrgtypedef unsigned int flex_uint32_t;
56350952b9Smrg#endif /* ! C99 */
57fd7d9bd3Smrg
58350952b9Smrg/* Limits of integral types. */
59350952b9Smrg#ifndef INT8_MIN
60350952b9Smrg#define INT8_MIN               (-128)
61350952b9Smrg#endif
62350952b9Smrg#ifndef INT16_MIN
63350952b9Smrg#define INT16_MIN              (-32767-1)
64350952b9Smrg#endif
65350952b9Smrg#ifndef INT32_MIN
66350952b9Smrg#define INT32_MIN              (-2147483647-1)
67350952b9Smrg#endif
68350952b9Smrg#ifndef INT8_MAX
69350952b9Smrg#define INT8_MAX               (127)
70350952b9Smrg#endif
71350952b9Smrg#ifndef INT16_MAX
72350952b9Smrg#define INT16_MAX              (32767)
73350952b9Smrg#endif
74350952b9Smrg#ifndef INT32_MAX
75350952b9Smrg#define INT32_MAX              (2147483647)
76350952b9Smrg#endif
77350952b9Smrg#ifndef UINT8_MAX
78350952b9Smrg#define UINT8_MAX              (255U)
79350952b9Smrg#endif
80350952b9Smrg#ifndef UINT16_MAX
81350952b9Smrg#define UINT16_MAX             (65535U)
82350952b9Smrg#endif
83350952b9Smrg#ifndef UINT32_MAX
84350952b9Smrg#define UINT32_MAX             (4294967295U)
85350952b9Smrg#endif
86fd7d9bd3Smrg
87350952b9Smrg#endif /* ! FLEXINT_H */
88fd7d9bd3Smrg
89350952b9Smrg#ifdef __cplusplus
90fd7d9bd3Smrg
91fd7d9bd3Smrg/* The "const" storage-class-modifier is valid. */
92fd7d9bd3Smrg#define YY_USE_CONST
93fd7d9bd3Smrg
94fd7d9bd3Smrg#else	/* ! __cplusplus */
95fd7d9bd3Smrg
96350952b9Smrg/* C99 requires __STDC__ to be defined as 1. */
97350952b9Smrg#if defined (__STDC__)
98fd7d9bd3Smrg
99fd7d9bd3Smrg#define YY_USE_CONST
100fd7d9bd3Smrg
101350952b9Smrg#endif	/* defined (__STDC__) */
102fd7d9bd3Smrg#endif	/* ! __cplusplus */
103fd7d9bd3Smrg
104fd7d9bd3Smrg#ifdef YY_USE_CONST
105fd7d9bd3Smrg#define yyconst const
106fd7d9bd3Smrg#else
107fd7d9bd3Smrg#define yyconst
108fd7d9bd3Smrg#endif
109fd7d9bd3Smrg
110fd7d9bd3Smrg/* Returned upon end-of-file. */
111fd7d9bd3Smrg#define YY_NULL 0
112fd7d9bd3Smrg
113fd7d9bd3Smrg/* Promotes a possibly negative, possibly signed char to an unsigned
114fd7d9bd3Smrg * integer for use as an array index.  If the signed char is negative,
115fd7d9bd3Smrg * we want to instead treat it as an 8-bit unsigned char, hence the
116fd7d9bd3Smrg * double cast.
117fd7d9bd3Smrg */
118fd7d9bd3Smrg#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119fd7d9bd3Smrg
120fd7d9bd3Smrg/* Enter a start condition.  This macro really ought to take a parameter,
121fd7d9bd3Smrg * but we do it the disgusting crufty way forced on us by the ()-less
122fd7d9bd3Smrg * definition of BEGIN.
123fd7d9bd3Smrg */
124350952b9Smrg#define BEGIN (yy_start) = 1 + 2 *
125fd7d9bd3Smrg
126fd7d9bd3Smrg/* Translate the current start state into a value that can be later handed
127fd7d9bd3Smrg * to BEGIN to return to the state.  The YYSTATE alias is for lex
128fd7d9bd3Smrg * compatibility.
129fd7d9bd3Smrg */
130350952b9Smrg#define YY_START (((yy_start) - 1) / 2)
131fd7d9bd3Smrg#define YYSTATE YY_START
132fd7d9bd3Smrg
133fd7d9bd3Smrg/* Action number for EOF rule of a given start state. */
134fd7d9bd3Smrg#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135fd7d9bd3Smrg
136fd7d9bd3Smrg/* Special action meaning "start processing a new file". */
137350952b9Smrg#define YY_NEW_FILE yyrestart(yyin  )
138fd7d9bd3Smrg
139fd7d9bd3Smrg#define YY_END_OF_BUFFER_CHAR 0
140fd7d9bd3Smrg
141fd7d9bd3Smrg/* Size of default input buffer. */
142350952b9Smrg#ifndef YY_BUF_SIZE
143fd7d9bd3Smrg#define YY_BUF_SIZE 16384
144350952b9Smrg#endif
145350952b9Smrg
146350952b9Smrg/* The state buf must be large enough to hold one state per character in the main buffer.
147350952b9Smrg */
148350952b9Smrg#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149fd7d9bd3Smrg
150350952b9Smrg#ifndef YY_TYPEDEF_YY_BUFFER_STATE
151350952b9Smrg#define YY_TYPEDEF_YY_BUFFER_STATE
152fd7d9bd3Smrgtypedef struct yy_buffer_state *YY_BUFFER_STATE;
153350952b9Smrg#endif
154fd7d9bd3Smrg
155fd7d9bd3Smrgextern int yyleng;
156350952b9Smrg
157fd7d9bd3Smrgextern FILE *yyin, *yyout;
158fd7d9bd3Smrg
159fd7d9bd3Smrg#define EOB_ACT_CONTINUE_SCAN 0
160fd7d9bd3Smrg#define EOB_ACT_END_OF_FILE 1
161fd7d9bd3Smrg#define EOB_ACT_LAST_MATCH 2
162fd7d9bd3Smrg
163350952b9Smrg    #define YY_LESS_LINENO(n)
164350952b9Smrg
165350952b9Smrg/* Return all but the first "n" matched characters back to the input stream. */
166fd7d9bd3Smrg#define yyless(n) \
167fd7d9bd3Smrg	do \
168fd7d9bd3Smrg		{ \
169fd7d9bd3Smrg		/* Undo effects of setting up yytext. */ \
170350952b9Smrg        int yyless_macro_arg = (n); \
171350952b9Smrg        YY_LESS_LINENO(yyless_macro_arg);\
172350952b9Smrg		*yy_cp = (yy_hold_char); \
173fd7d9bd3Smrg		YY_RESTORE_YY_MORE_OFFSET \
174350952b9Smrg		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
175fd7d9bd3Smrg		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
176fd7d9bd3Smrg		} \
177fd7d9bd3Smrg	while ( 0 )
178fd7d9bd3Smrg
179350952b9Smrg#define unput(c) yyunput( c, (yytext_ptr)  )
180fd7d9bd3Smrg
181350952b9Smrg#ifndef YY_TYPEDEF_YY_SIZE_T
182350952b9Smrg#define YY_TYPEDEF_YY_SIZE_T
183350952b9Smrgtypedef size_t yy_size_t;
184350952b9Smrg#endif
185fd7d9bd3Smrg
186350952b9Smrg#ifndef YY_STRUCT_YY_BUFFER_STATE
187350952b9Smrg#define YY_STRUCT_YY_BUFFER_STATE
188fd7d9bd3Smrgstruct yy_buffer_state
189fd7d9bd3Smrg	{
190fd7d9bd3Smrg	FILE *yy_input_file;
191fd7d9bd3Smrg
192fd7d9bd3Smrg	char *yy_ch_buf;		/* input buffer */
193fd7d9bd3Smrg	char *yy_buf_pos;		/* current position in input buffer */
194fd7d9bd3Smrg
195fd7d9bd3Smrg	/* Size of input buffer in bytes, not including room for EOB
196fd7d9bd3Smrg	 * characters.
197fd7d9bd3Smrg	 */
198fd7d9bd3Smrg	yy_size_t yy_buf_size;
199fd7d9bd3Smrg
200fd7d9bd3Smrg	/* Number of characters read into yy_ch_buf, not including EOB
201fd7d9bd3Smrg	 * characters.
202fd7d9bd3Smrg	 */
203fd7d9bd3Smrg	int yy_n_chars;
204fd7d9bd3Smrg
205fd7d9bd3Smrg	/* Whether we "own" the buffer - i.e., we know we created it,
206fd7d9bd3Smrg	 * and can realloc() it to grow it, and should free() it to
207fd7d9bd3Smrg	 * delete it.
208fd7d9bd3Smrg	 */
209fd7d9bd3Smrg	int yy_is_our_buffer;
210fd7d9bd3Smrg
211fd7d9bd3Smrg	/* Whether this is an "interactive" input source; if so, and
212fd7d9bd3Smrg	 * if we're using stdio for input, then we want to use getc()
213fd7d9bd3Smrg	 * instead of fread(), to make sure we stop fetching input after
214fd7d9bd3Smrg	 * each newline.
215fd7d9bd3Smrg	 */
216fd7d9bd3Smrg	int yy_is_interactive;
217fd7d9bd3Smrg
218fd7d9bd3Smrg	/* Whether we're considered to be at the beginning of a line.
219fd7d9bd3Smrg	 * If so, '^' rules will be active on the next match, otherwise
220fd7d9bd3Smrg	 * not.
221fd7d9bd3Smrg	 */
222fd7d9bd3Smrg	int yy_at_bol;
223fd7d9bd3Smrg
224350952b9Smrg    int yy_bs_lineno; /**< The line count. */
225350952b9Smrg    int yy_bs_column; /**< The column count. */
226350952b9Smrg
227fd7d9bd3Smrg	/* Whether to try to fill the input buffer when we reach the
228fd7d9bd3Smrg	 * end of it.
229fd7d9bd3Smrg	 */
230fd7d9bd3Smrg	int yy_fill_buffer;
231fd7d9bd3Smrg
232fd7d9bd3Smrg	int yy_buffer_status;
233350952b9Smrg
234fd7d9bd3Smrg#define YY_BUFFER_NEW 0
235fd7d9bd3Smrg#define YY_BUFFER_NORMAL 1
236fd7d9bd3Smrg	/* When an EOF's been seen but there's still some text to process
237fd7d9bd3Smrg	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
238fd7d9bd3Smrg	 * shouldn't try reading from the input source any more.  We might
239fd7d9bd3Smrg	 * still have a bunch of tokens to match, though, because of
240fd7d9bd3Smrg	 * possible backing-up.
241fd7d9bd3Smrg	 *
242fd7d9bd3Smrg	 * When we actually see the EOF, we change the status to "new"
243fd7d9bd3Smrg	 * (via yyrestart()), so that the user can continue scanning by
244fd7d9bd3Smrg	 * just pointing yyin at a new input file.
245fd7d9bd3Smrg	 */
246fd7d9bd3Smrg#define YY_BUFFER_EOF_PENDING 2
247350952b9Smrg
248fd7d9bd3Smrg	};
249350952b9Smrg#endif /* !YY_STRUCT_YY_BUFFER_STATE */
250fd7d9bd3Smrg
251350952b9Smrg/* Stack of input buffers. */
252350952b9Smrgstatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
253350952b9Smrgstatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
254350952b9Smrgstatic YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
255fd7d9bd3Smrg
256fd7d9bd3Smrg/* We provide macros for accessing buffer states in case in the
257fd7d9bd3Smrg * future we want to put the buffer states in a more general
258fd7d9bd3Smrg * "scanner state".
259350952b9Smrg *
260350952b9Smrg * Returns the top of the stack, or NULL.
261fd7d9bd3Smrg */
262350952b9Smrg#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
263350952b9Smrg                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
264350952b9Smrg                          : NULL)
265fd7d9bd3Smrg
266350952b9Smrg/* Same as previous macro, but useful when we know that the buffer stack is not
267350952b9Smrg * NULL or when we need an lvalue. For internal use only.
268350952b9Smrg */
269350952b9Smrg#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
270fd7d9bd3Smrg
271fd7d9bd3Smrg/* yy_hold_char holds the character lost when yytext is formed. */
272fd7d9bd3Smrgstatic char yy_hold_char;
273fd7d9bd3Smrgstatic int yy_n_chars;		/* number of characters read into yy_ch_buf */
274fd7d9bd3Smrgint yyleng;
275fd7d9bd3Smrg
276fd7d9bd3Smrg/* Points to current character in buffer. */
277fd7d9bd3Smrgstatic char *yy_c_buf_p = (char *) 0;
278350952b9Smrgstatic int yy_init = 0;		/* whether we need to initialize */
279fd7d9bd3Smrgstatic int yy_start = 0;	/* start state number */
280fd7d9bd3Smrg
281fd7d9bd3Smrg/* Flag which is used to allow yywrap()'s to do buffer switches
282fd7d9bd3Smrg * instead of setting up a fresh yyin.  A bit of a hack ...
283fd7d9bd3Smrg */
284fd7d9bd3Smrgstatic int yy_did_buffer_switch_on_eof;
285fd7d9bd3Smrg
286350952b9Smrgvoid yyrestart (FILE *input_file  );
287350952b9Smrgvoid yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
288350952b9SmrgYY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
289350952b9Smrgvoid yy_delete_buffer (YY_BUFFER_STATE b  );
290350952b9Smrgvoid yy_flush_buffer (YY_BUFFER_STATE b  );
291350952b9Smrgvoid yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
292350952b9Smrgvoid yypop_buffer_state (void );
293350952b9Smrg
294350952b9Smrgstatic void yyensure_buffer_stack (void );
295350952b9Smrgstatic void yy_load_buffer_state (void );
296350952b9Smrgstatic void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
297fd7d9bd3Smrg
298350952b9Smrg#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
299fd7d9bd3Smrg
300350952b9SmrgYY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
301350952b9SmrgYY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
302350952b9SmrgYY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
303fd7d9bd3Smrg
304350952b9Smrgvoid *yyalloc (yy_size_t  );
305350952b9Smrgvoid *yyrealloc (void *,yy_size_t  );
306350952b9Smrgvoid yyfree (void *  );
307fd7d9bd3Smrg
308fd7d9bd3Smrg#define yy_new_buffer yy_create_buffer
309fd7d9bd3Smrg
310fd7d9bd3Smrg#define yy_set_interactive(is_interactive) \
311fd7d9bd3Smrg	{ \
312350952b9Smrg	if ( ! YY_CURRENT_BUFFER ){ \
313350952b9Smrg        yyensure_buffer_stack (); \
314350952b9Smrg		YY_CURRENT_BUFFER_LVALUE =    \
315350952b9Smrg            yy_create_buffer(yyin,YY_BUF_SIZE ); \
316350952b9Smrg	} \
317350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
318fd7d9bd3Smrg	}
319fd7d9bd3Smrg
320fd7d9bd3Smrg#define yy_set_bol(at_bol) \
321fd7d9bd3Smrg	{ \
322350952b9Smrg	if ( ! YY_CURRENT_BUFFER ){\
323350952b9Smrg        yyensure_buffer_stack (); \
324350952b9Smrg		YY_CURRENT_BUFFER_LVALUE =    \
325350952b9Smrg            yy_create_buffer(yyin,YY_BUF_SIZE ); \
326350952b9Smrg	} \
327350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
328fd7d9bd3Smrg	}
329fd7d9bd3Smrg
330350952b9Smrg#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
331350952b9Smrg
332350952b9Smrg/* Begin user sect3 */
333fd7d9bd3Smrg
334fd7d9bd3Smrgtypedef unsigned char YY_CHAR;
335350952b9Smrg
336fd7d9bd3SmrgFILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
337350952b9Smrg
338fd7d9bd3Smrgtypedef int yy_state_type;
339350952b9Smrg
340350952b9Smrgextern int yylineno;
341350952b9Smrg
342350952b9Smrgint yylineno = 1;
343350952b9Smrg
344fd7d9bd3Smrgextern char *yytext;
345fd7d9bd3Smrg#define yytext_ptr yytext
346fd7d9bd3Smrg
347350952b9Smrgstatic yy_state_type yy_get_previous_state (void );
348350952b9Smrgstatic yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
349350952b9Smrgstatic int yy_get_next_buffer (void );
350350952b9Smrgstatic void yy_fatal_error (yyconst char msg[]  );
351fd7d9bd3Smrg
352fd7d9bd3Smrg/* Done after the current pattern has been matched and before the
353fd7d9bd3Smrg * corresponding action - sets up yytext.
354fd7d9bd3Smrg */
355fd7d9bd3Smrg#define YY_DO_BEFORE_ACTION \
356350952b9Smrg	(yytext_ptr) = yy_bp; \
357350952b9Smrg	yyleng = (size_t) (yy_cp - yy_bp); \
358350952b9Smrg	(yy_hold_char) = *yy_cp; \
359fd7d9bd3Smrg	*yy_cp = '\0'; \
360350952b9Smrg	(yy_c_buf_p) = yy_cp;
361fd7d9bd3Smrg
362fd7d9bd3Smrg#define YY_NUM_RULES 72
363fd7d9bd3Smrg#define YY_END_OF_BUFFER 73
364350952b9Smrg/* This struct is not used in this scanner,
365350952b9Smrg   but its presence is necessary. */
366350952b9Smrgstruct yy_trans_info
367350952b9Smrg	{
368350952b9Smrg	flex_int32_t yy_verify;
369350952b9Smrg	flex_int32_t yy_nxt;
370350952b9Smrg	};
371350952b9Smrgstatic yyconst flex_int16_t yy_accept[420] =
372fd7d9bd3Smrg    {   0,
373fd7d9bd3Smrg        0,    0,   73,   70,   68,   69,   70,   70,   65,   70,
374fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
375fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
376fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
377fd7d9bd3Smrg       70,   70,    0,   66,   70,   70,    0,   67,   65,   70,
378fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
379fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
380fd7d9bd3Smrg       70,   70,   70,   70,   70,   10,   70,   70,   70,   70,
381fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
382fd7d9bd3Smrg       70,   70,   70,   70,   66,    0,   70,    0,   66,   70,
383fd7d9bd3Smrg
384fd7d9bd3Smrg        4,   70,   70,   70,   70,   70,   70,   70,   70,   70,
385fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
386fd7d9bd3Smrg       70,   70,   70,   70,   70,   11,   70,   70,   70,   70,
387fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,    1,   18,
388fd7d9bd3Smrg       70,   70,   70,   70,   70,    9,   70,   70,   66,    0,
389fd7d9bd3Smrg       70,   70,   70,   70,   70,   41,   70,   70,   70,    6,
390fd7d9bd3Smrg       70,   70,   70,   70,   70,   63,   70,   70,   70,   70,
391fd7d9bd3Smrg       70,   70,   70,   70,   17,    8,   70,   70,   70,   70,
392fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
393fd7d9bd3Smrg       19,   70,   70,    6,   70,   70,   70,   70,   70,   45,
394fd7d9bd3Smrg
395fd7d9bd3Smrg       70,   56,    3,   70,   70,   70,   70,   70,   12,   70,
396fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
397fd7d9bd3Smrg       70,   44,   70,   70,   70,   70,   70,   70,   70,   70,
398fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   46,
399fd7d9bd3Smrg       51,   70,   48,   70,   70,   70,   70,   70,   70,   70,
400fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
401fd7d9bd3Smrg       70,   70,   13,   70,   70,   70,   70,   70,   70,   70,
402fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
403fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   55,   70,   70,
404fd7d9bd3Smrg       70,   70,   70,   70,   70,   53,   70,   70,   70,   70,
405fd7d9bd3Smrg
406fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   40,   70,   70,   70,
407fd7d9bd3Smrg       70,   64,   70,   70,   26,   70,   70,   70,   70,   70,
408fd7d9bd3Smrg       70,   70,   70,   70,   54,   70,   70,   70,   39,   20,
409fd7d9bd3Smrg       70,   70,   62,   70,   70,   52,   70,   70,    2,   31,
410fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   57,   70,
411fd7d9bd3Smrg       70,   23,   70,   70,   70,   70,   70,   30,   49,   70,
412fd7d9bd3Smrg       70,   70,   70,   21,   70,   70,   47,   70,   70,   43,
413fd7d9bd3Smrg       36,   60,   37,   70,   70,   14,   61,   70,   70,   22,
414fd7d9bd3Smrg       70,   70,   70,   32,   70,   70,    5,   59,   70,   38,
415fd7d9bd3Smrg       70,   58,   70,   33,   70,   16,   70,   70,   70,   70,
416fd7d9bd3Smrg
417fd7d9bd3Smrg       34,   42,    7,   70,   27,   35,   70,   29,   70,   70,
418fd7d9bd3Smrg       24,   15,   70,   28,   70,   70,   25,   50,    0
419fd7d9bd3Smrg    } ;
420fd7d9bd3Smrg
421350952b9Smrgstatic yyconst flex_int32_t yy_ec[256] =
422fd7d9bd3Smrg    {   0,
423fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
424fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
425fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
426fd7d9bd3Smrg        1,    2,    1,    4,    5,    1,    1,    1,    1,    1,
427fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    6,    7,    6,
428fd7d9bd3Smrg        6,    6,    6,    8,    6,    9,    6,    1,    1,    1,
429fd7d9bd3Smrg        1,    1,    1,    1,   10,   11,   12,   13,   14,   15,
430fd7d9bd3Smrg       16,    1,   17,   18,    1,   19,   20,   21,   22,   23,
431fd7d9bd3Smrg        1,   24,   25,   26,    1,    1,   27,   28,    1,    1,
432fd7d9bd3Smrg        1,   29,    1,    1,    1,    1,   30,   31,   32,   33,
433fd7d9bd3Smrg
434fd7d9bd3Smrg       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
435fd7d9bd3Smrg       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
436fd7d9bd3Smrg       54,    1,    1,    1,    1,    1,    1,    1,    1,    1,
437fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
438fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
439fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
440fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
441fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
442fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
443fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
444fd7d9bd3Smrg
445fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
446fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
447fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
448fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
449fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
450fd7d9bd3Smrg        1,    1,    1,    1,    1
451fd7d9bd3Smrg    } ;
452fd7d9bd3Smrg
453350952b9Smrgstatic yyconst flex_int32_t yy_meta[55] =
454fd7d9bd3Smrg    {   0,
455fd7d9bd3Smrg        1,    2,    2,    1,    1,    1,    1,    1,    1,    1,
456fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
457fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
458fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
459fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
460fd7d9bd3Smrg        1,    1,    1,    1
461fd7d9bd3Smrg    } ;
462fd7d9bd3Smrg
463350952b9Smrgstatic yyconst flex_int16_t yy_base[427] =
464fd7d9bd3Smrg    {   0,
465fd7d9bd3Smrg        0,    0,  498,    0,  499,  499,   53,   56,   54,   21,
466fd7d9bd3Smrg       35,   36,   37,   24,   34,  463,   44,  452,  457,  456,
467fd7d9bd3Smrg       44,   46,   56,   48,   61,   45,  455,  448,  461,   71,
468fd7d9bd3Smrg      460,  443,   58,  445,   69,  440,   70,  436,  451,  450,
469fd7d9bd3Smrg        0,  114,  103,    0,  117,  120,  480,  499,  118,  449,
470fd7d9bd3Smrg      449,  448,  428,  429,  432,  432,  441,  429,  425,  422,
471fd7d9bd3Smrg      421,  436,  428,   86,  425,  418,  436,  414,  426,  420,
472fd7d9bd3Smrg      413,  418,   87,  438,  429,  111,  411,  423,  426,  414,
473fd7d9bd3Smrg      410,  404,  402,  408,  401,  408,  410,  399,  405,  402,
474fd7d9bd3Smrg      397,  398,  401,   93,  499,  135,  145,  126,  148,  154,
475fd7d9bd3Smrg
476fd7d9bd3Smrg      136,  399,  400,  405,  389,  389,  389,  405,  380,  396,
477fd7d9bd3Smrg      401,  393,  387,  388,  379,  393,  394,  408,  388,  389,
478fd7d9bd3Smrg      379,  387,  386,  386,  373,    0,  398,  381,  369,  371,
479fd7d9bd3Smrg      379,  380,  386,  367,  355,  369,  390,  363,    0,    0,
480fd7d9bd3Smrg      367,  359,  354,  368,  368,    0,  346,  358,  137,  141,
481fd7d9bd3Smrg      355,  363,  352,  359,  353,    0,  344,  359,  344,  144,
482fd7d9bd3Smrg      349,  348,  337,  365,  139,    0,  350,  336,  342,  349,
483fd7d9bd3Smrg      335,  333,  111,  333,    0,    0,  349,  343,  327,  325,
484fd7d9bd3Smrg      324,  340,  332,  338,  165,  337,  328,  336,  335,  322,
485fd7d9bd3Smrg        0,  333,  327,  347,  121,  312,  311,  328,  313,    0,
486fd7d9bd3Smrg
487fd7d9bd3Smrg      305,    0,    0,  311,  314,  315,  317,  320,    0,  320,
488fd7d9bd3Smrg      308,  301,  301,  302,  310,  317,  320,  296,  295,  294,
489fd7d9bd3Smrg      304,    0,  293,  327,  305,  304,  303,  293,  297,  292,
490fd7d9bd3Smrg      286,  294,  293,  286,  295,  294,  293,  294,  295,    0,
491fd7d9bd3Smrg        0,  283,    0,  280,  288,  287,  286,  275,  277,  283,
492fd7d9bd3Smrg      265,  285,  266,  300,  279,  270,  269,  255,  264,  263,
493fd7d9bd3Smrg      270,  271,    0,  250,  249,  269,  252,  270,  274,  251,
494fd7d9bd3Smrg      250,  247,  263,  264,  261,  251,  248,  252,  257,  252,
495fd7d9bd3Smrg      234,  237,  249,  250,  247,  235,  234,    0,  230,  245,
496fd7d9bd3Smrg      248,  243,  233,  226,  244,    0,  219,  238,  230,  220,
497fd7d9bd3Smrg
498fd7d9bd3Smrg      226,  234,  214,  225,  224,  215,    0,  215,  213,  212,
499fd7d9bd3Smrg      212,    0,  225,  210,    0,  216,  222,  212,  205,  211,
500fd7d9bd3Smrg      203,  213,  216,  216,    0,  199,  199,  203,    0,    0,
501fd7d9bd3Smrg      198,  210,    0,  195,  206,    0,  207,  197,    0,    0,
502fd7d9bd3Smrg      190,  204,  203,  199,  198,  196,  199,  198,    0,  191,
503fd7d9bd3Smrg      155,    0,  181,  199,  194,  164,  184,    0,    0,  192,
504fd7d9bd3Smrg      191,  191,  174,    0,  185,  177,    0,  187,  169,    0,
505fd7d9bd3Smrg        0,    0,    0,  174,  185,    0,    0,  170,  182,    0,
506fd7d9bd3Smrg      172,  171,  205,    0,  176,  178,    0,    0,  176,    0,
507fd7d9bd3Smrg      166,    0,  200,    0,  162,    0,  174,  173,  168,  136,
508fd7d9bd3Smrg
509fd7d9bd3Smrg        0,    0,    0,  149,    0,    0,  140,    0,  123,  101,
510fd7d9bd3Smrg        0,    0,   80,    0,   75,   43,    0,    0,  499,   70,
511fd7d9bd3Smrg      191,  193,  195,  197,  199,  201
512fd7d9bd3Smrg    } ;
513fd7d9bd3Smrg
514350952b9Smrgstatic yyconst flex_int16_t yy_def[427] =
515fd7d9bd3Smrg    {   0,
516fd7d9bd3Smrg      419,    1,  419,  420,  419,  419,  421,  422,  420,  420,
517fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
518fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
519fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
520fd7d9bd3Smrg      420,  421,  423,  420,  424,  422,  425,  419,  420,  420,
521fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
522fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
523fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
524fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
525fd7d9bd3Smrg      420,  420,  420,  420,  419,  426,  421,  423,  421,  424,
526fd7d9bd3Smrg
527fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
528fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
529fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
530fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
531fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  423,  426,
532fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
533fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
534fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
535fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
536fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
537fd7d9bd3Smrg
538fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
539fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
540fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
541fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
542fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
543fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
544fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
545fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
546fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
547fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
548fd7d9bd3Smrg
549fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
550fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
551fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
552fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
553fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
554fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
555fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
556fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
557fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
558fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
559fd7d9bd3Smrg
560fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
561fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,    0,  419,
562fd7d9bd3Smrg      419,  419,  419,  419,  419,  419
563fd7d9bd3Smrg    } ;
564fd7d9bd3Smrg
565350952b9Smrgstatic yyconst flex_int16_t yy_nxt[554] =
566fd7d9bd3Smrg    {   0,
567fd7d9bd3Smrg        4,    5,    6,    7,    8,    9,    9,    9,    9,   10,
568fd7d9bd3Smrg       11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
569fd7d9bd3Smrg       21,   22,   23,   24,   25,   26,   27,   28,    4,   10,
570fd7d9bd3Smrg       29,   30,   31,   32,   33,    4,    4,   34,   18,    4,
571fd7d9bd3Smrg       19,    4,   35,   36,   37,    4,   38,   39,   40,    4,
572fd7d9bd3Smrg        4,    4,   28,    4,   43,   43,   44,   47,   48,   49,
573fd7d9bd3Smrg       49,   49,   49,   50,   52,   55,   59,   51,   53,   61,
574fd7d9bd3Smrg       41,   63,   56,   72,   62,  418,   57,   64,   88,   58,
575fd7d9bd3Smrg       60,   45,   89,   65,   54,   67,   68,   73,   74,   77,
576fd7d9bd3Smrg       75,   83,   76,   78,   85,   93,   79,   84,   72,   80,
577fd7d9bd3Smrg
578fd7d9bd3Smrg       55,   64,   81,   77,   86,   82,   95,   65,  417,   87,
579fd7d9bd3Smrg       79,   57,   94,  416,   92,   43,   43,   44,   98,   43,
580fd7d9bd3Smrg       99,   47,   48,   49,   49,   49,   49,  130,  115,   95,
581fd7d9bd3Smrg      125,   96,  116,  126,  131,  127,  125,   43,  149,  126,
582fd7d9bd3Smrg       95,  415,   45,   43,  149,  100,   43,   43,   44,   43,
583fd7d9bd3Smrg       43,   44,  151,  204,   96,   98,   43,   99,  220,  152,
584fd7d9bd3Smrg      205,  211,  221,  150,  378,   96,  206,  212,  213,  150,
585fd7d9bd3Smrg      383,  414,  384,   45,  231,  393,   45,  394,  379,  232,
586fd7d9bd3Smrg      413,  412,  100,  233,  411,  212,  213,  234,  235,  236,
587fd7d9bd3Smrg      237,   42,   42,   46,   46,   43,   43,   97,   97,   47,
588fd7d9bd3Smrg
589fd7d9bd3Smrg       47,   98,   98,  410,  409,  408,  407,  406,  405,  404,
590fd7d9bd3Smrg      403,  402,  401,  400,  399,  398,  397,  396,  395,  392,
591fd7d9bd3Smrg      391,  390,  389,  388,  387,  386,  385,  382,  381,  380,
592fd7d9bd3Smrg      377,  376,  375,  374,  373,  372,  371,  370,  369,  368,
593fd7d9bd3Smrg      367,  366,  365,  364,  363,  362,  361,  360,  359,  358,
594fd7d9bd3Smrg      357,  356,  355,  354,  353,  352,  351,  350,  349,  348,
595fd7d9bd3Smrg      347,  346,  345,  344,  343,  342,  341,  340,  339,  338,
596fd7d9bd3Smrg      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
597fd7d9bd3Smrg      327,  326,  325,  324,  323,  322,  321,  320,  319,  318,
598fd7d9bd3Smrg      317,  316,  315,  314,  313,  312,  311,  310,  309,  308,
599fd7d9bd3Smrg
600fd7d9bd3Smrg      307,  306,  305,  304,  303,  302,  301,  300,  299,  298,
601fd7d9bd3Smrg      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
602fd7d9bd3Smrg      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
603fd7d9bd3Smrg      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
604fd7d9bd3Smrg      267,  266,  265,  264,  263,  262,  261,  260,  259,  258,
605fd7d9bd3Smrg      257,  256,  255,  254,  253,  252,  251,  250,  249,  248,
606fd7d9bd3Smrg      247,  246,  245,  205,  244,  243,  242,  241,  240,  239,
607fd7d9bd3Smrg      238,  230,  229,  228,  227,  226,  225,  224,  223,  222,
608fd7d9bd3Smrg      219,  218,  217,  216,  215,  214,  210,  209,  208,  207,
609fd7d9bd3Smrg      203,  202,  201,  200,  199,  198,  197,  196,  195,  194,
610fd7d9bd3Smrg
611fd7d9bd3Smrg      193,  192,  191,  190,  189,  188,  187,  186,  185,  184,
612fd7d9bd3Smrg      183,  182,  181,  180,  179,  178,  177,  176,  175,  174,
613fd7d9bd3Smrg      173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
614fd7d9bd3Smrg      163,  162,  161,  160,  159,  158,  157,  156,  155,  154,
615fd7d9bd3Smrg      153,  148,  147,  146,  145,  144,  143,  142,  141,  140,
616fd7d9bd3Smrg      139,  138,  137,  136,  135,  134,  133,  132,  129,  128,
617fd7d9bd3Smrg      124,  123,  122,  121,  120,  119,  118,  117,  114,  113,
618fd7d9bd3Smrg      112,  111,  110,  109,  108,  107,  106,  105,  104,  103,
619fd7d9bd3Smrg      102,  101,   48,   88,   85,   84,   76,   68,   61,   59,
620fd7d9bd3Smrg       52,   91,   90,   71,   70,   69,   66,  419,    3,  419,
621fd7d9bd3Smrg
622fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
623fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
624fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
625fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
626fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
627fd7d9bd3Smrg      419,  419,  419
628fd7d9bd3Smrg    } ;
629fd7d9bd3Smrg
630350952b9Smrgstatic yyconst flex_int16_t yy_chk[554] =
631fd7d9bd3Smrg    {   0,
632fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
633fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
634fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
635fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
636fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
637fd7d9bd3Smrg        1,    1,    1,    1,    7,    7,    7,    8,    8,    9,
638fd7d9bd3Smrg        9,    9,    9,   10,   11,   12,   13,   10,   11,   14,
639fd7d9bd3Smrg      420,   15,   12,   21,   14,  416,   12,   15,   26,   12,
640fd7d9bd3Smrg       13,    7,   26,   15,   11,   17,   17,   21,   22,   23,
641fd7d9bd3Smrg       22,   24,   22,   23,   25,   33,   23,   24,   35,   23,
642fd7d9bd3Smrg
643fd7d9bd3Smrg       30,   33,   23,   37,   25,   23,   43,   33,  415,   25,
644fd7d9bd3Smrg       37,   30,   35,  413,   30,   42,   42,   42,   45,   45,
645fd7d9bd3Smrg       45,   46,   46,   49,   49,   49,   49,   76,   64,   98,
646fd7d9bd3Smrg       73,   43,   64,   73,   76,   73,   94,   96,   96,   94,
647fd7d9bd3Smrg      149,  410,   42,  150,  150,   45,   97,   97,   97,   99,
648fd7d9bd3Smrg       99,   99,  101,  160,   98,  100,  100,  100,  173,  101,
649fd7d9bd3Smrg      160,  165,  173,   96,  351,  149,  160,  195,  195,  150,
650fd7d9bd3Smrg      356,  409,  356,   97,  185,  369,   99,  369,  351,  185,
651fd7d9bd3Smrg      407,  404,  100,  185,  400,  165,  165,  185,  185,  185,
652fd7d9bd3Smrg      185,  421,  421,  422,  422,  423,  423,  424,  424,  425,
653fd7d9bd3Smrg
654fd7d9bd3Smrg      425,  426,  426,  399,  398,  397,  395,  393,  391,  389,
655fd7d9bd3Smrg      386,  385,  383,  382,  381,  379,  378,  375,  374,  368,
656fd7d9bd3Smrg      366,  365,  363,  362,  361,  360,  357,  355,  354,  353,
657fd7d9bd3Smrg      350,  348,  347,  346,  345,  344,  343,  342,  341,  338,
658fd7d9bd3Smrg      337,  335,  334,  332,  331,  328,  327,  326,  324,  323,
659fd7d9bd3Smrg      322,  321,  320,  319,  318,  317,  316,  314,  313,  311,
660fd7d9bd3Smrg      310,  309,  308,  306,  305,  304,  303,  302,  301,  300,
661fd7d9bd3Smrg      299,  298,  297,  295,  294,  293,  292,  291,  290,  289,
662fd7d9bd3Smrg      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
663fd7d9bd3Smrg      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
664fd7d9bd3Smrg
665fd7d9bd3Smrg      267,  266,  265,  264,  262,  261,  260,  259,  258,  257,
666fd7d9bd3Smrg      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
667fd7d9bd3Smrg      246,  245,  244,  242,  239,  238,  237,  236,  235,  234,
668fd7d9bd3Smrg      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
669fd7d9bd3Smrg      223,  221,  220,  219,  218,  217,  216,  215,  214,  213,
670fd7d9bd3Smrg      212,  211,  210,  208,  207,  206,  205,  204,  201,  199,
671fd7d9bd3Smrg      198,  197,  196,  194,  193,  192,  190,  189,  188,  187,
672fd7d9bd3Smrg      186,  184,  183,  182,  181,  180,  179,  178,  177,  174,
673fd7d9bd3Smrg      172,  171,  170,  169,  168,  167,  164,  163,  162,  161,
674fd7d9bd3Smrg      159,  158,  157,  155,  154,  153,  152,  151,  148,  147,
675fd7d9bd3Smrg
676fd7d9bd3Smrg      145,  144,  143,  142,  141,  138,  137,  136,  135,  134,
677fd7d9bd3Smrg      133,  132,  131,  130,  129,  128,  127,  125,  124,  123,
678fd7d9bd3Smrg      122,  121,  120,  119,  118,  117,  116,  115,  114,  113,
679fd7d9bd3Smrg      112,  111,  110,  109,  108,  107,  106,  105,  104,  103,
680fd7d9bd3Smrg      102,   93,   92,   91,   90,   89,   88,   87,   86,   85,
681fd7d9bd3Smrg       84,   83,   82,   81,   80,   79,   78,   77,   75,   74,
682fd7d9bd3Smrg       72,   71,   70,   69,   68,   67,   66,   65,   63,   62,
683fd7d9bd3Smrg       61,   60,   59,   58,   57,   56,   55,   54,   53,   52,
684fd7d9bd3Smrg       51,   50,   47,   40,   39,   38,   36,   34,   32,   31,
685fd7d9bd3Smrg       29,   28,   27,   20,   19,   18,   16,    3,  419,  419,
686fd7d9bd3Smrg
687fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
688fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
689fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
690fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
691fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
692fd7d9bd3Smrg      419,  419,  419
693fd7d9bd3Smrg    } ;
694fd7d9bd3Smrg
695fd7d9bd3Smrgstatic yy_state_type yy_last_accepting_state;
696fd7d9bd3Smrgstatic char *yy_last_accepting_cpos;
697fd7d9bd3Smrg
698350952b9Smrgextern int yy_flex_debug;
699350952b9Smrgint yy_flex_debug = 0;
700350952b9Smrg
701fd7d9bd3Smrg/* The intent behind this definition is that it'll catch
702fd7d9bd3Smrg * any uses of REJECT which flex missed.
703fd7d9bd3Smrg */
704fd7d9bd3Smrg#define REJECT reject_used_but_not_detected
705fd7d9bd3Smrg#define yymore() yymore_used_but_not_detected
706fd7d9bd3Smrg#define YY_MORE_ADJ 0
707fd7d9bd3Smrg#define YY_RESTORE_YY_MORE_OFFSET
708fd7d9bd3Smrgchar *yytext;
709fd7d9bd3Smrg#line 1 "lex.l"
710fd7d9bd3Smrg/* $XConsortium: lex.l,v 1.8 94/03/31 20:40:44 rws Exp $ */
711fd7d9bd3Smrg/* $XFree86: xc/programs/xgc/lex.l,v 1.3 2000/04/05 18:14:07 dawes Exp $ */
712fd7d9bd3Smrg/*
713fd7d9bd3Smrg** lex file for xgc syntax
714fd7d9bd3Smrg*/
715fd7d9bd3Smrg/* Lots of stuff stolen from gwm's wool.lex */
716fd7d9bd3Smrg#line 10 "lex.l"
717fd7d9bd3Smrg
718fd7d9bd3Smrg#include <X11/X.h>
719fd7d9bd3Smrg#include <stdlib.h>
720fd7d9bd3Smrg#include "gram.h"
721fd7d9bd3Smrg#include "constants.h"
722fd7d9bd3Smrg#if defined(FLEX_SCANNER) && !defined(YY_FLEX_LEX_COMPAT) && !defined(__UNIXOS2__)
723fd7d9bd3Smrgint yylineno;
724fd7d9bd3Smrg#endif
725350952b9Smrg#line 726 "lex.c"
726350952b9Smrg
727350952b9Smrg#define INITIAL 0
728350952b9Smrg
729350952b9Smrg#ifndef YY_NO_UNISTD_H
730350952b9Smrg/* Special case for "unistd.h", since it is non-ANSI. We include it way
731350952b9Smrg * down here because we want the user's section 1 to have been scanned first.
732350952b9Smrg * The user has a chance to override it with an option.
733350952b9Smrg */
734350952b9Smrg#include <unistd.h>
735350952b9Smrg#endif
736350952b9Smrg
737350952b9Smrg#ifndef YY_EXTRA_TYPE
738350952b9Smrg#define YY_EXTRA_TYPE void *
739350952b9Smrg#endif
740350952b9Smrg
741350952b9Smrgstatic int yy_init_globals (void );
742350952b9Smrg
743350952b9Smrg/* Accessor methods to globals.
744350952b9Smrg   These are made visible to non-reentrant scanners for convenience. */
745350952b9Smrg
746350952b9Smrgint yylex_destroy (void );
747350952b9Smrg
748350952b9Smrgint yyget_debug (void );
749350952b9Smrg
750350952b9Smrgvoid yyset_debug (int debug_flag  );
751350952b9Smrg
752350952b9SmrgYY_EXTRA_TYPE yyget_extra (void );
753350952b9Smrg
754350952b9Smrgvoid yyset_extra (YY_EXTRA_TYPE user_defined  );
755350952b9Smrg
756350952b9SmrgFILE *yyget_in (void );
757350952b9Smrg
758350952b9Smrgvoid yyset_in  (FILE * in_str  );
759350952b9Smrg
760350952b9SmrgFILE *yyget_out (void );
761350952b9Smrg
762350952b9Smrgvoid yyset_out  (FILE * out_str  );
763350952b9Smrg
764350952b9Smrgint yyget_leng (void );
765350952b9Smrg
766350952b9Smrgchar *yyget_text (void );
767350952b9Smrg
768350952b9Smrgint yyget_lineno (void );
769350952b9Smrg
770350952b9Smrgvoid yyset_lineno (int line_number  );
771fd7d9bd3Smrg
772fd7d9bd3Smrg/* Macros after this point can all be overridden by user definitions in
773fd7d9bd3Smrg * section 1.
774fd7d9bd3Smrg */
775fd7d9bd3Smrg
776fd7d9bd3Smrg#ifndef YY_SKIP_YYWRAP
777fd7d9bd3Smrg#ifdef __cplusplus
778350952b9Smrgextern "C" int yywrap (void );
779fd7d9bd3Smrg#else
780350952b9Smrgextern int yywrap (void );
781fd7d9bd3Smrg#endif
782fd7d9bd3Smrg#endif
783fd7d9bd3Smrg
784350952b9Smrg    static void yyunput (int c,char *buf_ptr  );
785350952b9Smrg
786fd7d9bd3Smrg#ifndef yytext_ptr
787350952b9Smrgstatic void yy_flex_strncpy (char *,yyconst char *,int );
788fd7d9bd3Smrg#endif
789fd7d9bd3Smrg
790fd7d9bd3Smrg#ifdef YY_NEED_STRLEN
791350952b9Smrgstatic int yy_flex_strlen (yyconst char * );
792fd7d9bd3Smrg#endif
793fd7d9bd3Smrg
794fd7d9bd3Smrg#ifndef YY_NO_INPUT
795fd7d9bd3Smrg
796350952b9Smrg#ifdef __cplusplus
797350952b9Smrgstatic int yyinput (void );
798fd7d9bd3Smrg#else
799350952b9Smrgstatic int input (void );
800fd7d9bd3Smrg#endif
801fd7d9bd3Smrg
802fd7d9bd3Smrg#endif
803fd7d9bd3Smrg
804fd7d9bd3Smrg/* Amount of stuff to slurp up with each read. */
805fd7d9bd3Smrg#ifndef YY_READ_BUF_SIZE
806fd7d9bd3Smrg#define YY_READ_BUF_SIZE 8192
807fd7d9bd3Smrg#endif
808fd7d9bd3Smrg
809fd7d9bd3Smrg/* Copy whatever the last rule matched to the standard output. */
810fd7d9bd3Smrg#ifndef ECHO
811fd7d9bd3Smrg/* This used to be an fputs(), but since the string might contain NUL's,
812fd7d9bd3Smrg * we now use fwrite().
813fd7d9bd3Smrg */
814350952b9Smrg#define ECHO fwrite( yytext, yyleng, 1, yyout )
815fd7d9bd3Smrg#endif
816fd7d9bd3Smrg
817fd7d9bd3Smrg/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
818fd7d9bd3Smrg * is returned in "result".
819fd7d9bd3Smrg */
820fd7d9bd3Smrg#ifndef YY_INPUT
821fd7d9bd3Smrg#define YY_INPUT(buf,result,max_size) \
822350952b9Smrg	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
823fd7d9bd3Smrg		{ \
824350952b9Smrg		int c = '*'; \
825350952b9Smrg		int n; \
826fd7d9bd3Smrg		for ( n = 0; n < max_size && \
827fd7d9bd3Smrg			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
828fd7d9bd3Smrg			buf[n] = (char) c; \
829fd7d9bd3Smrg		if ( c == '\n' ) \
830fd7d9bd3Smrg			buf[n++] = (char) c; \
831fd7d9bd3Smrg		if ( c == EOF && ferror( yyin ) ) \
832fd7d9bd3Smrg			YY_FATAL_ERROR( "input in flex scanner failed" ); \
833fd7d9bd3Smrg		result = n; \
834fd7d9bd3Smrg		} \
835350952b9Smrg	else \
836350952b9Smrg		{ \
837350952b9Smrg		errno=0; \
838350952b9Smrg		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
839350952b9Smrg			{ \
840350952b9Smrg			if( errno != EINTR) \
841350952b9Smrg				{ \
842350952b9Smrg				YY_FATAL_ERROR( "input in flex scanner failed" ); \
843350952b9Smrg				break; \
844350952b9Smrg				} \
845350952b9Smrg			errno=0; \
846350952b9Smrg			clearerr(yyin); \
847350952b9Smrg			} \
848350952b9Smrg		}\
849350952b9Smrg\
850350952b9Smrg
851fd7d9bd3Smrg#endif
852fd7d9bd3Smrg
853fd7d9bd3Smrg/* No semi-colon after return; correct usage is to write "yyterminate();" -
854fd7d9bd3Smrg * we don't want an extra ';' after the "return" because that will cause
855fd7d9bd3Smrg * some compilers to complain about unreachable statements.
856fd7d9bd3Smrg */
857fd7d9bd3Smrg#ifndef yyterminate
858fd7d9bd3Smrg#define yyterminate() return YY_NULL
859fd7d9bd3Smrg#endif
860fd7d9bd3Smrg
861fd7d9bd3Smrg/* Number of entries by which start-condition stack grows. */
862fd7d9bd3Smrg#ifndef YY_START_STACK_INCR
863fd7d9bd3Smrg#define YY_START_STACK_INCR 25
864fd7d9bd3Smrg#endif
865fd7d9bd3Smrg
866fd7d9bd3Smrg/* Report a fatal error. */
867fd7d9bd3Smrg#ifndef YY_FATAL_ERROR
868fd7d9bd3Smrg#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
869fd7d9bd3Smrg#endif
870fd7d9bd3Smrg
871350952b9Smrg/* end tables serialization structures and prototypes */
872350952b9Smrg
873fd7d9bd3Smrg/* Default declaration of generated scanner - a define so the user can
874fd7d9bd3Smrg * easily add parameters.
875fd7d9bd3Smrg */
876fd7d9bd3Smrg#ifndef YY_DECL
877350952b9Smrg#define YY_DECL_IS_OURS 1
878350952b9Smrg
879350952b9Smrgextern int yylex (void);
880350952b9Smrg
881350952b9Smrg#define YY_DECL int yylex (void)
882350952b9Smrg#endif /* !YY_DECL */
883fd7d9bd3Smrg
884fd7d9bd3Smrg/* Code executed at the beginning of each rule, after yytext and yyleng
885fd7d9bd3Smrg * have been set up.
886fd7d9bd3Smrg */
887fd7d9bd3Smrg#ifndef YY_USER_ACTION
888fd7d9bd3Smrg#define YY_USER_ACTION
889fd7d9bd3Smrg#endif
890fd7d9bd3Smrg
891fd7d9bd3Smrg/* Code executed at the end of each rule. */
892fd7d9bd3Smrg#ifndef YY_BREAK
893fd7d9bd3Smrg#define YY_BREAK break;
894fd7d9bd3Smrg#endif
895fd7d9bd3Smrg
896fd7d9bd3Smrg#define YY_RULE_SETUP \
897fd7d9bd3Smrg	YY_USER_ACTION
898fd7d9bd3Smrg
899350952b9Smrg/** The main scanner function which does all the work.
900350952b9Smrg */
901fd7d9bd3SmrgYY_DECL
902350952b9Smrg{
903fd7d9bd3Smrg	register yy_state_type yy_current_state;
904350952b9Smrg	register char *yy_cp, *yy_bp;
905fd7d9bd3Smrg	register int yy_act;
906350952b9Smrg
907fd7d9bd3Smrg#line 27 "lex.l"
908fd7d9bd3Smrg
909fd7d9bd3Smrg
910350952b9Smrg#line 911 "lex.c"
911fd7d9bd3Smrg
912350952b9Smrg	if ( !(yy_init) )
913fd7d9bd3Smrg		{
914350952b9Smrg		(yy_init) = 1;
915fd7d9bd3Smrg
916fd7d9bd3Smrg#ifdef YY_USER_INIT
917fd7d9bd3Smrg		YY_USER_INIT;
918fd7d9bd3Smrg#endif
919fd7d9bd3Smrg
920350952b9Smrg		if ( ! (yy_start) )
921350952b9Smrg			(yy_start) = 1;	/* first start state */
922fd7d9bd3Smrg
923fd7d9bd3Smrg		if ( ! yyin )
924fd7d9bd3Smrg			yyin = stdin;
925fd7d9bd3Smrg
926fd7d9bd3Smrg		if ( ! yyout )
927fd7d9bd3Smrg			yyout = stdout;
928fd7d9bd3Smrg
929350952b9Smrg		if ( ! YY_CURRENT_BUFFER ) {
930350952b9Smrg			yyensure_buffer_stack ();
931350952b9Smrg			YY_CURRENT_BUFFER_LVALUE =
932350952b9Smrg				yy_create_buffer(yyin,YY_BUF_SIZE );
933350952b9Smrg		}
934fd7d9bd3Smrg
935350952b9Smrg		yy_load_buffer_state( );
936fd7d9bd3Smrg		}
937fd7d9bd3Smrg
938fd7d9bd3Smrg	while ( 1 )		/* loops until end-of-file is reached */
939fd7d9bd3Smrg		{
940350952b9Smrg		yy_cp = (yy_c_buf_p);
941fd7d9bd3Smrg
942fd7d9bd3Smrg		/* Support of yytext. */
943350952b9Smrg		*yy_cp = (yy_hold_char);
944fd7d9bd3Smrg
945fd7d9bd3Smrg		/* yy_bp points to the position in yy_ch_buf of the start of
946fd7d9bd3Smrg		 * the current run.
947fd7d9bd3Smrg		 */
948fd7d9bd3Smrg		yy_bp = yy_cp;
949fd7d9bd3Smrg
950350952b9Smrg		yy_current_state = (yy_start);
951fd7d9bd3Smrgyy_match:
952fd7d9bd3Smrg		do
953fd7d9bd3Smrg			{
954fd7d9bd3Smrg			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
955fd7d9bd3Smrg			if ( yy_accept[yy_current_state] )
956fd7d9bd3Smrg				{
957350952b9Smrg				(yy_last_accepting_state) = yy_current_state;
958350952b9Smrg				(yy_last_accepting_cpos) = yy_cp;
959fd7d9bd3Smrg				}
960fd7d9bd3Smrg			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
961fd7d9bd3Smrg				{
962fd7d9bd3Smrg				yy_current_state = (int) yy_def[yy_current_state];
963fd7d9bd3Smrg				if ( yy_current_state >= 420 )
964fd7d9bd3Smrg					yy_c = yy_meta[(unsigned int) yy_c];
965fd7d9bd3Smrg				}
966fd7d9bd3Smrg			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
967fd7d9bd3Smrg			++yy_cp;
968fd7d9bd3Smrg			}
969fd7d9bd3Smrg		while ( yy_base[yy_current_state] != 499 );
970fd7d9bd3Smrg
971fd7d9bd3Smrgyy_find_action:
972fd7d9bd3Smrg		yy_act = yy_accept[yy_current_state];
973fd7d9bd3Smrg		if ( yy_act == 0 )
974fd7d9bd3Smrg			{ /* have to back up */
975350952b9Smrg			yy_cp = (yy_last_accepting_cpos);
976350952b9Smrg			yy_current_state = (yy_last_accepting_state);
977fd7d9bd3Smrg			yy_act = yy_accept[yy_current_state];
978fd7d9bd3Smrg			}
979fd7d9bd3Smrg
980fd7d9bd3Smrg		YY_DO_BEFORE_ACTION;
981fd7d9bd3Smrg
982fd7d9bd3Smrgdo_action:	/* This label is used only to access EOF actions. */
983fd7d9bd3Smrg
984fd7d9bd3Smrg		switch ( yy_act )
985fd7d9bd3Smrg	{ /* beginning of action switch */
986fd7d9bd3Smrg			case 0: /* must back up */
987fd7d9bd3Smrg			/* undo the effects of YY_DO_BEFORE_ACTION */
988350952b9Smrg			*yy_cp = (yy_hold_char);
989350952b9Smrg			yy_cp = (yy_last_accepting_cpos);
990350952b9Smrg			yy_current_state = (yy_last_accepting_state);
991fd7d9bd3Smrg			goto yy_find_action;
992fd7d9bd3Smrg
993fd7d9bd3Smrgcase 1:
994fd7d9bd3SmrgYY_RULE_SETUP
995fd7d9bd3Smrg#line 29 "lex.l"
996fd7d9bd3Smrg{ return (RUN); }
997fd7d9bd3Smrg	YY_BREAK
998fd7d9bd3Smrgcase 2:
999fd7d9bd3SmrgYY_RULE_SETUP
1000fd7d9bd3Smrg#line 31 "lex.l"
1001fd7d9bd3Smrg{ return (FUNCTION); }
1002fd7d9bd3Smrg	YY_BREAK
1003fd7d9bd3Smrgcase 3:
1004fd7d9bd3SmrgYY_RULE_SETUP
1005fd7d9bd3Smrg#line 32 "lex.l"
1006fd7d9bd3Smrg{ yylval.num = GXclear;
1007fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1008fd7d9bd3Smrg	YY_BREAK
1009fd7d9bd3Smrgcase 4:
1010fd7d9bd3SmrgYY_RULE_SETUP
1011fd7d9bd3Smrg#line 34 "lex.l"
1012fd7d9bd3Smrg{ yylval.num = GXand;
1013fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1014fd7d9bd3Smrg	YY_BREAK
1015fd7d9bd3Smrgcase 5:
1016fd7d9bd3SmrgYY_RULE_SETUP
1017fd7d9bd3Smrg#line 36 "lex.l"
1018fd7d9bd3Smrg{ yylval.num = GXandReverse;
1019fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1020fd7d9bd3Smrg	YY_BREAK
1021fd7d9bd3Smrgcase 6:
1022fd7d9bd3SmrgYY_RULE_SETUP
1023fd7d9bd3Smrg#line 38 "lex.l"
1024fd7d9bd3Smrg{ yylval.num = GXcopy;
1025fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1026fd7d9bd3Smrg	YY_BREAK
1027fd7d9bd3Smrgcase 7:
1028fd7d9bd3SmrgYY_RULE_SETUP
1029fd7d9bd3Smrg#line 40 "lex.l"
1030fd7d9bd3Smrg{ yylval.num = GXandInverted;
1031fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1032fd7d9bd3Smrg	YY_BREAK
1033fd7d9bd3Smrgcase 8:
1034fd7d9bd3SmrgYY_RULE_SETUP
1035fd7d9bd3Smrg#line 42 "lex.l"
1036fd7d9bd3Smrg{ yylval.num = GXnoop;
1037fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1038fd7d9bd3Smrg	YY_BREAK
1039fd7d9bd3Smrgcase 9:
1040fd7d9bd3SmrgYY_RULE_SETUP
1041fd7d9bd3Smrg#line 44 "lex.l"
1042fd7d9bd3Smrg{ yylval.num = GXxor;
1043fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1044fd7d9bd3Smrg	YY_BREAK
1045fd7d9bd3Smrgcase 10:
1046fd7d9bd3SmrgYY_RULE_SETUP
1047fd7d9bd3Smrg#line 46 "lex.l"
1048fd7d9bd3Smrg{ yylval.num = GXor;
1049fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1050fd7d9bd3Smrg	YY_BREAK
1051fd7d9bd3Smrgcase 11:
1052fd7d9bd3SmrgYY_RULE_SETUP
1053fd7d9bd3Smrg#line 48 "lex.l"
1054fd7d9bd3Smrg{ yylval.num = GXnor;
1055fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1056fd7d9bd3Smrg	YY_BREAK
1057fd7d9bd3Smrgcase 12:
1058fd7d9bd3SmrgYY_RULE_SETUP
1059fd7d9bd3Smrg#line 50 "lex.l"
1060fd7d9bd3Smrg{ yylval.num = GXequiv;
1061fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1062fd7d9bd3Smrg	YY_BREAK
1063fd7d9bd3Smrgcase 13:
1064fd7d9bd3SmrgYY_RULE_SETUP
1065fd7d9bd3Smrg#line 52 "lex.l"
1066fd7d9bd3Smrg{ yylval.num = GXinvert;
1067fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1068fd7d9bd3Smrg	YY_BREAK
1069fd7d9bd3Smrgcase 14:
1070fd7d9bd3SmrgYY_RULE_SETUP
1071fd7d9bd3Smrg#line 54 "lex.l"
1072fd7d9bd3Smrg{ yylval.num = GXorReverse;
1073fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1074fd7d9bd3Smrg	YY_BREAK
1075fd7d9bd3Smrgcase 15:
1076fd7d9bd3SmrgYY_RULE_SETUP
1077fd7d9bd3Smrg#line 56 "lex.l"
1078fd7d9bd3Smrg{ yylval.num = GXcopyInverted;
1079fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1080fd7d9bd3Smrg	YY_BREAK
1081fd7d9bd3Smrgcase 16:
1082fd7d9bd3SmrgYY_RULE_SETUP
1083fd7d9bd3Smrg#line 58 "lex.l"
1084fd7d9bd3Smrg{ yylval.num = GXorInverted;
1085fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1086fd7d9bd3Smrg	YY_BREAK
1087fd7d9bd3Smrgcase 17:
1088fd7d9bd3SmrgYY_RULE_SETUP
1089fd7d9bd3Smrg#line 60 "lex.l"
1090fd7d9bd3Smrg{ yylval.num = GXnand;
1091fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1092fd7d9bd3Smrg	YY_BREAK
1093fd7d9bd3Smrgcase 18:
1094fd7d9bd3SmrgYY_RULE_SETUP
1095fd7d9bd3Smrg#line 62 "lex.l"
1096fd7d9bd3Smrg{ yylval.num = GXset;
1097fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1098fd7d9bd3Smrg	YY_BREAK
1099fd7d9bd3Smrgcase 19:
1100fd7d9bd3SmrgYY_RULE_SETUP
1101fd7d9bd3Smrg#line 65 "lex.l"
1102fd7d9bd3Smrg{ return (TEST); }
1103fd7d9bd3Smrg	YY_BREAK
1104fd7d9bd3Smrgcase 20:
1105fd7d9bd3SmrgYY_RULE_SETUP
1106fd7d9bd3Smrg#line 66 "lex.l"
1107fd7d9bd3Smrg{ yylval.num = CopyArea;
1108fd7d9bd3Smrg				  return (TESTTYPE); }
1109fd7d9bd3Smrg	YY_BREAK
1110fd7d9bd3Smrgcase 21:
1111fd7d9bd3SmrgYY_RULE_SETUP
1112fd7d9bd3Smrg#line 68 "lex.l"
1113fd7d9bd3Smrg{ yylval.num = CopyPlane;
1114fd7d9bd3Smrg				  return (TESTTYPE); }
1115fd7d9bd3Smrg	YY_BREAK
1116fd7d9bd3Smrgcase 22:
1117fd7d9bd3SmrgYY_RULE_SETUP
1118fd7d9bd3Smrg#line 70 "lex.l"
1119fd7d9bd3Smrg{ yylval.num = PolyPoint;
1120fd7d9bd3Smrg				  return (TESTTYPE); }
1121fd7d9bd3Smrg	YY_BREAK
1122fd7d9bd3Smrgcase 23:
1123fd7d9bd3SmrgYY_RULE_SETUP
1124fd7d9bd3Smrg#line 72 "lex.l"
1125fd7d9bd3Smrg{ yylval.num = PolyLine;
1126fd7d9bd3Smrg				  return (TESTTYPE); }
1127fd7d9bd3Smrg	YY_BREAK
1128fd7d9bd3Smrgcase 24:
1129fd7d9bd3SmrgYY_RULE_SETUP
1130fd7d9bd3Smrg#line 74 "lex.l"
1131fd7d9bd3Smrg{ yylval.num = PolySegment;
1132fd7d9bd3Smrg				  return (TESTTYPE); }
1133fd7d9bd3Smrg	YY_BREAK
1134fd7d9bd3Smrgcase 25:
1135fd7d9bd3SmrgYY_RULE_SETUP
1136fd7d9bd3Smrg#line 76 "lex.l"
1137fd7d9bd3Smrg{ yylval.num = PolyRectangle;
1138fd7d9bd3Smrg				  return (TESTTYPE); }
1139fd7d9bd3Smrg	YY_BREAK
1140fd7d9bd3Smrgcase 26:
1141fd7d9bd3SmrgYY_RULE_SETUP
1142fd7d9bd3Smrg#line 78 "lex.l"
1143fd7d9bd3Smrg{ yylval.num = PolyArc;
1144fd7d9bd3Smrg				  return (TESTTYPE); }
1145fd7d9bd3Smrg	YY_BREAK
1146fd7d9bd3Smrgcase 27:
1147fd7d9bd3SmrgYY_RULE_SETUP
1148fd7d9bd3Smrg#line 80 "lex.l"
1149fd7d9bd3Smrg{ yylval.num = FillPolygon;
1150fd7d9bd3Smrg				  return (TESTTYPE); }
1151fd7d9bd3Smrg	YY_BREAK
1152fd7d9bd3Smrgcase 28:
1153fd7d9bd3SmrgYY_RULE_SETUP
1154fd7d9bd3Smrg#line 82 "lex.l"
1155fd7d9bd3Smrg{ yylval.num = PolyFillRect;
1156fd7d9bd3Smrg				  return (TESTTYPE); }
1157fd7d9bd3Smrg	YY_BREAK
1158fd7d9bd3Smrgcase 29:
1159fd7d9bd3SmrgYY_RULE_SETUP
1160fd7d9bd3Smrg#line 84 "lex.l"
1161fd7d9bd3Smrg{ yylval.num = PolyFillArc;
1162fd7d9bd3Smrg				  return (TESTTYPE); }
1163fd7d9bd3Smrg	YY_BREAK
1164fd7d9bd3Smrgcase 30:
1165fd7d9bd3SmrgYY_RULE_SETUP
1166fd7d9bd3Smrg#line 86 "lex.l"
1167fd7d9bd3Smrg{ yylval.num = PutImage;
1168fd7d9bd3Smrg				  return (TESTTYPE); }
1169fd7d9bd3Smrg	YY_BREAK
1170fd7d9bd3Smrgcase 31:
1171fd7d9bd3SmrgYY_RULE_SETUP
1172fd7d9bd3Smrg#line 88 "lex.l"
1173fd7d9bd3Smrg{ yylval.num = GetImage;
1174fd7d9bd3Smrg				  return (TESTTYPE); }
1175fd7d9bd3Smrg	YY_BREAK
1176fd7d9bd3Smrgcase 32:
1177fd7d9bd3SmrgYY_RULE_SETUP
1178fd7d9bd3Smrg#line 90 "lex.l"
1179fd7d9bd3Smrg{ yylval.num = PolyText8;
1180fd7d9bd3Smrg				  return (TESTTYPE); }
1181fd7d9bd3Smrg	YY_BREAK
1182fd7d9bd3Smrgcase 33:
1183fd7d9bd3SmrgYY_RULE_SETUP
1184fd7d9bd3Smrg#line 92 "lex.l"
1185fd7d9bd3Smrg{ yylval.num = ImageText8;
1186fd7d9bd3Smrg				  return (TESTTYPE); }
1187fd7d9bd3Smrg	YY_BREAK
1188fd7d9bd3Smrgcase 34:
1189fd7d9bd3SmrgYY_RULE_SETUP
1190fd7d9bd3Smrg#line 94 "lex.l"
1191fd7d9bd3Smrg{ yylval.num = PolyText16;
1192fd7d9bd3Smrg				  return (TESTTYPE); }
1193fd7d9bd3Smrg	YY_BREAK
1194fd7d9bd3Smrgcase 35:
1195fd7d9bd3SmrgYY_RULE_SETUP
1196fd7d9bd3Smrg#line 96 "lex.l"
1197fd7d9bd3Smrg{ yylval.num = ImageText16;
1198fd7d9bd3Smrg				  return (TESTTYPE); }
1199fd7d9bd3Smrg	YY_BREAK
1200fd7d9bd3Smrgcase 36:
1201fd7d9bd3SmrgYY_RULE_SETUP
1202fd7d9bd3Smrg#line 99 "lex.l"
1203fd7d9bd3Smrg{ return (LINESTYLE); }
1204fd7d9bd3Smrg	YY_BREAK
1205fd7d9bd3Smrgcase 37:
1206fd7d9bd3SmrgYY_RULE_SETUP
1207fd7d9bd3Smrg#line 100 "lex.l"
1208fd7d9bd3Smrg{ yylval.num = LineOnOffDash;
1209fd7d9bd3Smrg				  return (LINESTYLETYPE); }
1210fd7d9bd3Smrg	YY_BREAK
1211fd7d9bd3Smrgcase 38:
1212fd7d9bd3SmrgYY_RULE_SETUP
1213fd7d9bd3Smrg#line 102 "lex.l"
1214fd7d9bd3Smrg{ yylval.num = LineDoubleDash;
1215fd7d9bd3Smrg				  return (LINESTYLETYPE); }
1216fd7d9bd3Smrg	YY_BREAK
1217fd7d9bd3Smrgcase 39:
1218fd7d9bd3SmrgYY_RULE_SETUP
1219fd7d9bd3Smrg#line 105 "lex.l"
1220fd7d9bd3Smrg{ return (CAPSTYLE); }
1221fd7d9bd3Smrg	YY_BREAK
1222fd7d9bd3Smrgcase 40:
1223fd7d9bd3SmrgYY_RULE_SETUP
1224fd7d9bd3Smrg#line 106 "lex.l"
1225fd7d9bd3Smrg{ yylval.num = CapNotLast;
1226fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
1227fd7d9bd3Smrg	YY_BREAK
1228fd7d9bd3Smrgcase 41:
1229fd7d9bd3SmrgYY_RULE_SETUP
1230fd7d9bd3Smrg#line 108 "lex.l"
1231fd7d9bd3Smrg{ yylval.num = CapButt;
1232fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
1233fd7d9bd3Smrg	YY_BREAK
1234fd7d9bd3Smrgcase 42:
1235fd7d9bd3SmrgYY_RULE_SETUP
1236fd7d9bd3Smrg#line 110 "lex.l"
1237fd7d9bd3Smrg{ yylval.num = CapProjecting;
1238fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
1239fd7d9bd3Smrg	YY_BREAK
1240fd7d9bd3Smrgcase 43:
1241fd7d9bd3SmrgYY_RULE_SETUP
1242fd7d9bd3Smrg#line 113 "lex.l"
1243fd7d9bd3Smrg{ return (JOINSTYLE); }
1244fd7d9bd3Smrg	YY_BREAK
1245fd7d9bd3Smrgcase 44:
1246fd7d9bd3SmrgYY_RULE_SETUP
1247fd7d9bd3Smrg#line 114 "lex.l"
1248fd7d9bd3Smrg{ yylval.num = JoinMiter;
1249fd7d9bd3Smrg				  return (JOINSTYLETYPE); }
1250fd7d9bd3Smrg	YY_BREAK
1251fd7d9bd3Smrgcase 45:
1252fd7d9bd3SmrgYY_RULE_SETUP
1253fd7d9bd3Smrg#line 116 "lex.l"
1254fd7d9bd3Smrg{ yylval.num = JoinBevel;
1255fd7d9bd3Smrg				  return (JOINSTYLETYPE); }
1256fd7d9bd3Smrg	YY_BREAK
1257fd7d9bd3Smrgcase 46:
1258fd7d9bd3SmrgYY_RULE_SETUP
1259fd7d9bd3Smrg#line 119 "lex.l"
1260fd7d9bd3Smrg{ return (ROUND); }
1261fd7d9bd3Smrg	YY_BREAK
1262fd7d9bd3Smrgcase 47:
1263fd7d9bd3SmrgYY_RULE_SETUP
1264fd7d9bd3Smrg#line 121 "lex.l"
1265fd7d9bd3Smrg{ return (FILLSTYLE); }
1266fd7d9bd3Smrg	YY_BREAK
1267fd7d9bd3Smrgcase 48:
1268fd7d9bd3SmrgYY_RULE_SETUP
1269fd7d9bd3Smrg#line 122 "lex.l"
1270fd7d9bd3Smrg{ yylval.num = FillTiled;
1271fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
1272fd7d9bd3Smrg	YY_BREAK
1273fd7d9bd3Smrgcase 49:
1274fd7d9bd3SmrgYY_RULE_SETUP
1275fd7d9bd3Smrg#line 124 "lex.l"
1276fd7d9bd3Smrg{ yylval.num = FillStippled;
1277fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
1278fd7d9bd3Smrg	YY_BREAK
1279fd7d9bd3Smrgcase 50:
1280fd7d9bd3SmrgYY_RULE_SETUP
1281fd7d9bd3Smrg#line 126 "lex.l"
1282fd7d9bd3Smrg{ yylval.num = FillOpaqueStippled;
1283fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
1284fd7d9bd3Smrg	YY_BREAK
1285fd7d9bd3Smrgcase 51:
1286fd7d9bd3SmrgYY_RULE_SETUP
1287fd7d9bd3Smrg#line 129 "lex.l"
1288fd7d9bd3Smrg{ return (SOLID); }
1289fd7d9bd3Smrg	YY_BREAK
1290fd7d9bd3Smrgcase 52:
1291fd7d9bd3SmrgYY_RULE_SETUP
1292fd7d9bd3Smrg#line 131 "lex.l"
1293fd7d9bd3Smrg{ return (FILLRULE); }
1294fd7d9bd3Smrg	YY_BREAK
1295fd7d9bd3Smrgcase 53:
1296fd7d9bd3SmrgYY_RULE_SETUP
1297fd7d9bd3Smrg#line 132 "lex.l"
1298fd7d9bd3Smrg{ yylval.num = EvenOddRule;
1299fd7d9bd3Smrg				  return (FILLRULETYPE); }
1300fd7d9bd3Smrg	YY_BREAK
1301fd7d9bd3Smrgcase 54:
1302fd7d9bd3SmrgYY_RULE_SETUP
1303fd7d9bd3Smrg#line 134 "lex.l"
1304fd7d9bd3Smrg{ yylval.num = WindingRule;
1305fd7d9bd3Smrg				  return (FILLRULETYPE); }
1306fd7d9bd3Smrg	YY_BREAK
1307fd7d9bd3Smrgcase 55:
1308fd7d9bd3SmrgYY_RULE_SETUP
1309fd7d9bd3Smrg#line 137 "lex.l"
1310fd7d9bd3Smrg{ return (ARCMODE); }
1311fd7d9bd3Smrg	YY_BREAK
1312fd7d9bd3Smrgcase 56:
1313fd7d9bd3SmrgYY_RULE_SETUP
1314fd7d9bd3Smrg#line 138 "lex.l"
1315fd7d9bd3Smrg{ yylval.num = ArcChord;
1316fd7d9bd3Smrg				  return (ARCMODETYPE); }
1317fd7d9bd3Smrg	YY_BREAK
1318fd7d9bd3Smrgcase 57:
1319fd7d9bd3SmrgYY_RULE_SETUP
1320fd7d9bd3Smrg#line 140 "lex.l"
1321fd7d9bd3Smrg{ yylval.num = ArcPieSlice;
1322fd7d9bd3Smrg				  return (ARCMODETYPE); }
1323fd7d9bd3Smrg	YY_BREAK
1324fd7d9bd3Smrgcase 58:
1325fd7d9bd3SmrgYY_RULE_SETUP
1326fd7d9bd3Smrg#line 143 "lex.l"
1327fd7d9bd3Smrg{ return (FOREGROUND); }
1328fd7d9bd3Smrg	YY_BREAK
1329fd7d9bd3Smrgcase 59:
1330fd7d9bd3SmrgYY_RULE_SETUP
1331fd7d9bd3Smrg#line 144 "lex.l"
1332fd7d9bd3Smrg{ return (BACKGROUND); }
1333fd7d9bd3Smrg	YY_BREAK
1334fd7d9bd3Smrgcase 60:
1335fd7d9bd3SmrgYY_RULE_SETUP
1336fd7d9bd3Smrg#line 145 "lex.l"
1337fd7d9bd3Smrg{ return (LINEWIDTH); }
1338fd7d9bd3Smrg	YY_BREAK
1339fd7d9bd3Smrgcase 61:
1340fd7d9bd3SmrgYY_RULE_SETUP
1341fd7d9bd3Smrg#line 146 "lex.l"
1342fd7d9bd3Smrg{ return (PLANEMASK); }
1343fd7d9bd3Smrg	YY_BREAK
1344fd7d9bd3Smrgcase 62:
1345fd7d9bd3SmrgYY_RULE_SETUP
1346fd7d9bd3Smrg#line 147 "lex.l"
1347fd7d9bd3Smrg{ return (DASHLIST); }
1348fd7d9bd3Smrg	YY_BREAK
1349fd7d9bd3Smrgcase 63:
1350fd7d9bd3SmrgYY_RULE_SETUP
1351fd7d9bd3Smrg#line 148 "lex.l"
1352fd7d9bd3Smrg{ return (FONT); }
1353fd7d9bd3Smrg	YY_BREAK
1354fd7d9bd3Smrgcase 64:
1355fd7d9bd3SmrgYY_RULE_SETUP
1356fd7d9bd3Smrg#line 149 "lex.l"
1357fd7d9bd3Smrg{ return (PERCENT); }
1358fd7d9bd3Smrg	YY_BREAK
1359fd7d9bd3Smrgcase 65:
1360fd7d9bd3SmrgYY_RULE_SETUP
1361fd7d9bd3Smrg#line 151 "lex.l"
1362fd7d9bd3Smrg{ (void) sscanf ((char *)yytext, "%d", &yylval.num);
1363fd7d9bd3Smrg				  return (NUMBER); }
1364fd7d9bd3Smrg	YY_BREAK
1365fd7d9bd3Smrgcase 66:
1366350952b9Smrg/* rule 66 can match eol */
1367fd7d9bd3SmrgYY_RULE_SETUP
1368fd7d9bd3Smrg#line 153 "lex.l"
1369fd7d9bd3Smrg{ yylval.ptr = (char *) yytext;
1370fd7d9bd3Smrg				  return (STRING); }
1371fd7d9bd3Smrg	YY_BREAK
1372fd7d9bd3Smrgcase 67:
1373350952b9Smrg/* rule 67 can match eol */
1374fd7d9bd3SmrgYY_RULE_SETUP
1375fd7d9bd3Smrg#line 155 "lex.l"
1376fd7d9bd3Smrg{ ; }
1377fd7d9bd3Smrg	YY_BREAK
1378fd7d9bd3Smrgcase 68:
1379fd7d9bd3SmrgYY_RULE_SETUP
1380fd7d9bd3Smrg#line 156 "lex.l"
1381fd7d9bd3Smrg{ ; }
1382fd7d9bd3Smrg	YY_BREAK
1383fd7d9bd3Smrgcase 69:
1384350952b9Smrg/* rule 69 can match eol */
1385fd7d9bd3SmrgYY_RULE_SETUP
1386fd7d9bd3Smrg#line 157 "lex.l"
1387fd7d9bd3Smrg{ return ('\n'); }
1388fd7d9bd3Smrg	YY_BREAK
1389fd7d9bd3Smrgcase 70:
1390fd7d9bd3SmrgYY_RULE_SETUP
1391fd7d9bd3Smrg#line 159 "lex.l"
1392fd7d9bd3Smrg{ yylval.ptr = (char *) yytext;
1393fd7d9bd3Smrg				  return (STRING); }
1394fd7d9bd3Smrg	YY_BREAK
1395fd7d9bd3Smrgcase 71:
1396fd7d9bd3SmrgYY_RULE_SETUP
1397fd7d9bd3Smrg#line 162 "lex.l"
1398fd7d9bd3Smrg{ fprintf(stderr,
1399fd7d9bd3Smrg					"xgc: bad character `%s', line %d\n",
1400fd7d9bd3Smrg					yytext, yylineno); }
1401fd7d9bd3Smrg	YY_BREAK
1402fd7d9bd3Smrgcase 72:
1403fd7d9bd3SmrgYY_RULE_SETUP
1404fd7d9bd3Smrg#line 166 "lex.l"
1405fd7d9bd3SmrgECHO;
1406fd7d9bd3Smrg	YY_BREAK
1407350952b9Smrg#line 1408 "lex.c"
1408fd7d9bd3Smrgcase YY_STATE_EOF(INITIAL):
1409fd7d9bd3Smrg	yyterminate();
1410fd7d9bd3Smrg
1411fd7d9bd3Smrg	case YY_END_OF_BUFFER:
1412fd7d9bd3Smrg		{
1413fd7d9bd3Smrg		/* Amount of text matched not including the EOB char. */
1414350952b9Smrg		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1415fd7d9bd3Smrg
1416fd7d9bd3Smrg		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1417350952b9Smrg		*yy_cp = (yy_hold_char);
1418fd7d9bd3Smrg		YY_RESTORE_YY_MORE_OFFSET
1419fd7d9bd3Smrg
1420350952b9Smrg		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1421fd7d9bd3Smrg			{
1422fd7d9bd3Smrg			/* We're scanning a new file or input source.  It's
1423fd7d9bd3Smrg			 * possible that this happened because the user
1424fd7d9bd3Smrg			 * just pointed yyin at a new source and called
1425fd7d9bd3Smrg			 * yylex().  If so, then we have to assure
1426350952b9Smrg			 * consistency between YY_CURRENT_BUFFER and our
1427fd7d9bd3Smrg			 * globals.  Here is the right place to do so, because
1428fd7d9bd3Smrg			 * this is the first action (other than possibly a
1429fd7d9bd3Smrg			 * back-up) that will match for the new input source.
1430fd7d9bd3Smrg			 */
1431350952b9Smrg			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1432350952b9Smrg			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1433350952b9Smrg			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1434fd7d9bd3Smrg			}
1435fd7d9bd3Smrg
1436fd7d9bd3Smrg		/* Note that here we test for yy_c_buf_p "<=" to the position
1437fd7d9bd3Smrg		 * of the first EOB in the buffer, since yy_c_buf_p will
1438fd7d9bd3Smrg		 * already have been incremented past the NUL character
1439fd7d9bd3Smrg		 * (since all states make transitions on EOB to the
1440fd7d9bd3Smrg		 * end-of-buffer state).  Contrast this with the test
1441fd7d9bd3Smrg		 * in input().
1442fd7d9bd3Smrg		 */
1443350952b9Smrg		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1444fd7d9bd3Smrg			{ /* This was really a NUL. */
1445fd7d9bd3Smrg			yy_state_type yy_next_state;
1446fd7d9bd3Smrg
1447350952b9Smrg			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1448fd7d9bd3Smrg
1449350952b9Smrg			yy_current_state = yy_get_previous_state(  );
1450fd7d9bd3Smrg
1451fd7d9bd3Smrg			/* Okay, we're now positioned to make the NUL
1452fd7d9bd3Smrg			 * transition.  We couldn't have
1453fd7d9bd3Smrg			 * yy_get_previous_state() go ahead and do it
1454fd7d9bd3Smrg			 * for us because it doesn't know how to deal
1455fd7d9bd3Smrg			 * with the possibility of jamming (and we don't
1456fd7d9bd3Smrg			 * want to build jamming into it because then it
1457fd7d9bd3Smrg			 * will run more slowly).
1458fd7d9bd3Smrg			 */
1459fd7d9bd3Smrg
1460fd7d9bd3Smrg			yy_next_state = yy_try_NUL_trans( yy_current_state );
1461fd7d9bd3Smrg
1462350952b9Smrg			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1463fd7d9bd3Smrg
1464fd7d9bd3Smrg			if ( yy_next_state )
1465fd7d9bd3Smrg				{
1466fd7d9bd3Smrg				/* Consume the NUL. */
1467350952b9Smrg				yy_cp = ++(yy_c_buf_p);
1468fd7d9bd3Smrg				yy_current_state = yy_next_state;
1469fd7d9bd3Smrg				goto yy_match;
1470fd7d9bd3Smrg				}
1471fd7d9bd3Smrg
1472fd7d9bd3Smrg			else
1473fd7d9bd3Smrg				{
1474350952b9Smrg				yy_cp = (yy_c_buf_p);
1475fd7d9bd3Smrg				goto yy_find_action;
1476fd7d9bd3Smrg				}
1477fd7d9bd3Smrg			}
1478fd7d9bd3Smrg
1479350952b9Smrg		else switch ( yy_get_next_buffer(  ) )
1480fd7d9bd3Smrg			{
1481fd7d9bd3Smrg			case EOB_ACT_END_OF_FILE:
1482fd7d9bd3Smrg				{
1483350952b9Smrg				(yy_did_buffer_switch_on_eof) = 0;
1484fd7d9bd3Smrg
1485350952b9Smrg				if ( yywrap( ) )
1486fd7d9bd3Smrg					{
1487fd7d9bd3Smrg					/* Note: because we've taken care in
1488fd7d9bd3Smrg					 * yy_get_next_buffer() to have set up
1489fd7d9bd3Smrg					 * yytext, we can now set up
1490fd7d9bd3Smrg					 * yy_c_buf_p so that if some total
1491fd7d9bd3Smrg					 * hoser (like flex itself) wants to
1492fd7d9bd3Smrg					 * call the scanner after we return the
1493fd7d9bd3Smrg					 * YY_NULL, it'll still work - another
1494fd7d9bd3Smrg					 * YY_NULL will get returned.
1495fd7d9bd3Smrg					 */
1496350952b9Smrg					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1497fd7d9bd3Smrg
1498fd7d9bd3Smrg					yy_act = YY_STATE_EOF(YY_START);
1499fd7d9bd3Smrg					goto do_action;
1500fd7d9bd3Smrg					}
1501fd7d9bd3Smrg
1502fd7d9bd3Smrg				else
1503fd7d9bd3Smrg					{
1504350952b9Smrg					if ( ! (yy_did_buffer_switch_on_eof) )
1505fd7d9bd3Smrg						YY_NEW_FILE;
1506fd7d9bd3Smrg					}
1507fd7d9bd3Smrg				break;
1508fd7d9bd3Smrg				}
1509fd7d9bd3Smrg
1510fd7d9bd3Smrg			case EOB_ACT_CONTINUE_SCAN:
1511350952b9Smrg				(yy_c_buf_p) =
1512350952b9Smrg					(yytext_ptr) + yy_amount_of_matched_text;
1513fd7d9bd3Smrg
1514350952b9Smrg				yy_current_state = yy_get_previous_state(  );
1515fd7d9bd3Smrg
1516350952b9Smrg				yy_cp = (yy_c_buf_p);
1517350952b9Smrg				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1518fd7d9bd3Smrg				goto yy_match;
1519fd7d9bd3Smrg
1520fd7d9bd3Smrg			case EOB_ACT_LAST_MATCH:
1521350952b9Smrg				(yy_c_buf_p) =
1522350952b9Smrg				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1523fd7d9bd3Smrg
1524350952b9Smrg				yy_current_state = yy_get_previous_state(  );
1525fd7d9bd3Smrg
1526350952b9Smrg				yy_cp = (yy_c_buf_p);
1527350952b9Smrg				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1528fd7d9bd3Smrg				goto yy_find_action;
1529fd7d9bd3Smrg			}
1530fd7d9bd3Smrg		break;
1531fd7d9bd3Smrg		}
1532fd7d9bd3Smrg
1533fd7d9bd3Smrg	default:
1534fd7d9bd3Smrg		YY_FATAL_ERROR(
1535fd7d9bd3Smrg			"fatal flex scanner internal error--no action found" );
1536fd7d9bd3Smrg	} /* end of action switch */
1537fd7d9bd3Smrg		} /* end of scanning one token */
1538350952b9Smrg} /* end of yylex */
1539fd7d9bd3Smrg
1540fd7d9bd3Smrg/* yy_get_next_buffer - try to read in a new buffer
1541fd7d9bd3Smrg *
1542fd7d9bd3Smrg * Returns a code representing an action:
1543fd7d9bd3Smrg *	EOB_ACT_LAST_MATCH -
1544fd7d9bd3Smrg *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1545fd7d9bd3Smrg *	EOB_ACT_END_OF_FILE - end of file
1546fd7d9bd3Smrg */
1547350952b9Smrgstatic int yy_get_next_buffer (void)
1548350952b9Smrg{
1549350952b9Smrg    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1550350952b9Smrg	register char *source = (yytext_ptr);
1551fd7d9bd3Smrg	register int number_to_move, i;
1552fd7d9bd3Smrg	int ret_val;
1553fd7d9bd3Smrg
1554350952b9Smrg	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1555fd7d9bd3Smrg		YY_FATAL_ERROR(
1556fd7d9bd3Smrg		"fatal flex scanner internal error--end of buffer missed" );
1557fd7d9bd3Smrg
1558350952b9Smrg	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1559fd7d9bd3Smrg		{ /* Don't try to fill the buffer, so this is an EOF. */
1560350952b9Smrg		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1561fd7d9bd3Smrg			{
1562fd7d9bd3Smrg			/* We matched a single character, the EOB, so
1563fd7d9bd3Smrg			 * treat this as a final EOF.
1564fd7d9bd3Smrg			 */
1565fd7d9bd3Smrg			return EOB_ACT_END_OF_FILE;
1566fd7d9bd3Smrg			}
1567fd7d9bd3Smrg
1568fd7d9bd3Smrg		else
1569fd7d9bd3Smrg			{
1570fd7d9bd3Smrg			/* We matched some text prior to the EOB, first
1571fd7d9bd3Smrg			 * process it.
1572fd7d9bd3Smrg			 */
1573fd7d9bd3Smrg			return EOB_ACT_LAST_MATCH;
1574fd7d9bd3Smrg			}
1575fd7d9bd3Smrg		}
1576fd7d9bd3Smrg
1577fd7d9bd3Smrg	/* Try to read more data. */
1578fd7d9bd3Smrg
1579fd7d9bd3Smrg	/* First move last chars to start of buffer. */
1580350952b9Smrg	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1581fd7d9bd3Smrg
1582fd7d9bd3Smrg	for ( i = 0; i < number_to_move; ++i )
1583fd7d9bd3Smrg		*(dest++) = *(source++);
1584fd7d9bd3Smrg
1585350952b9Smrg	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1586fd7d9bd3Smrg		/* don't do the read, it's not guaranteed to return an EOF,
1587fd7d9bd3Smrg		 * just force an EOF
1588fd7d9bd3Smrg		 */
1589350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1590fd7d9bd3Smrg
1591fd7d9bd3Smrg	else
1592fd7d9bd3Smrg		{
1593350952b9Smrg			int num_to_read =
1594350952b9Smrg			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1595fd7d9bd3Smrg
1596fd7d9bd3Smrg		while ( num_to_read <= 0 )
1597fd7d9bd3Smrg			{ /* Not enough room in the buffer - grow it. */
1598fd7d9bd3Smrg
1599fd7d9bd3Smrg			/* just a shorter name for the current buffer */
1600350952b9Smrg			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1601fd7d9bd3Smrg
1602fd7d9bd3Smrg			int yy_c_buf_p_offset =
1603350952b9Smrg				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1604fd7d9bd3Smrg
1605fd7d9bd3Smrg			if ( b->yy_is_our_buffer )
1606fd7d9bd3Smrg				{
1607fd7d9bd3Smrg				int new_size = b->yy_buf_size * 2;
1608fd7d9bd3Smrg
1609fd7d9bd3Smrg				if ( new_size <= 0 )
1610fd7d9bd3Smrg					b->yy_buf_size += b->yy_buf_size / 8;
1611fd7d9bd3Smrg				else
1612fd7d9bd3Smrg					b->yy_buf_size *= 2;
1613fd7d9bd3Smrg
1614fd7d9bd3Smrg				b->yy_ch_buf = (char *)
1615fd7d9bd3Smrg					/* Include room in for 2 EOB chars. */
1616350952b9Smrg					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1617fd7d9bd3Smrg				}
1618fd7d9bd3Smrg			else
1619fd7d9bd3Smrg				/* Can't grow it, we don't own it. */
1620fd7d9bd3Smrg				b->yy_ch_buf = 0;
1621fd7d9bd3Smrg
1622fd7d9bd3Smrg			if ( ! b->yy_ch_buf )
1623fd7d9bd3Smrg				YY_FATAL_ERROR(
1624fd7d9bd3Smrg				"fatal error - scanner input buffer overflow" );
1625fd7d9bd3Smrg
1626350952b9Smrg			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1627fd7d9bd3Smrg
1628350952b9Smrg			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1629fd7d9bd3Smrg						number_to_move - 1;
1630350952b9Smrg
1631fd7d9bd3Smrg			}
1632fd7d9bd3Smrg
1633fd7d9bd3Smrg		if ( num_to_read > YY_READ_BUF_SIZE )
1634fd7d9bd3Smrg			num_to_read = YY_READ_BUF_SIZE;
1635fd7d9bd3Smrg
1636fd7d9bd3Smrg		/* Read in more data. */
1637350952b9Smrg		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1638350952b9Smrg			(yy_n_chars), (size_t) num_to_read );
1639fd7d9bd3Smrg
1640350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1641fd7d9bd3Smrg		}
1642fd7d9bd3Smrg
1643350952b9Smrg	if ( (yy_n_chars) == 0 )
1644fd7d9bd3Smrg		{
1645fd7d9bd3Smrg		if ( number_to_move == YY_MORE_ADJ )
1646fd7d9bd3Smrg			{
1647fd7d9bd3Smrg			ret_val = EOB_ACT_END_OF_FILE;
1648350952b9Smrg			yyrestart(yyin  );
1649fd7d9bd3Smrg			}
1650fd7d9bd3Smrg
1651fd7d9bd3Smrg		else
1652fd7d9bd3Smrg			{
1653fd7d9bd3Smrg			ret_val = EOB_ACT_LAST_MATCH;
1654350952b9Smrg			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1655fd7d9bd3Smrg				YY_BUFFER_EOF_PENDING;
1656fd7d9bd3Smrg			}
1657fd7d9bd3Smrg		}
1658fd7d9bd3Smrg
1659fd7d9bd3Smrg	else
1660fd7d9bd3Smrg		ret_val = EOB_ACT_CONTINUE_SCAN;
1661fd7d9bd3Smrg
1662350952b9Smrg	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1663350952b9Smrg		/* Extend the array by 50%, plus the number we really need. */
1664350952b9Smrg		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1665350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1666350952b9Smrg		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1667350952b9Smrg			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1668350952b9Smrg	}
1669350952b9Smrg
1670350952b9Smrg	(yy_n_chars) += number_to_move;
1671350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1672350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1673fd7d9bd3Smrg
1674350952b9Smrg	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1675fd7d9bd3Smrg
1676fd7d9bd3Smrg	return ret_val;
1677350952b9Smrg}
1678fd7d9bd3Smrg
1679fd7d9bd3Smrg/* yy_get_previous_state - get the state just before the EOB char was reached */
1680fd7d9bd3Smrg
1681350952b9Smrg    static yy_state_type yy_get_previous_state (void)
1682350952b9Smrg{
1683fd7d9bd3Smrg	register yy_state_type yy_current_state;
1684fd7d9bd3Smrg	register char *yy_cp;
1685350952b9Smrg
1686350952b9Smrg	yy_current_state = (yy_start);
1687fd7d9bd3Smrg
1688350952b9Smrg	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1689fd7d9bd3Smrg		{
1690fd7d9bd3Smrg		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1691fd7d9bd3Smrg		if ( yy_accept[yy_current_state] )
1692fd7d9bd3Smrg			{
1693350952b9Smrg			(yy_last_accepting_state) = yy_current_state;
1694350952b9Smrg			(yy_last_accepting_cpos) = yy_cp;
1695fd7d9bd3Smrg			}
1696fd7d9bd3Smrg		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1697fd7d9bd3Smrg			{
1698fd7d9bd3Smrg			yy_current_state = (int) yy_def[yy_current_state];
1699fd7d9bd3Smrg			if ( yy_current_state >= 420 )
1700fd7d9bd3Smrg				yy_c = yy_meta[(unsigned int) yy_c];
1701fd7d9bd3Smrg			}
1702fd7d9bd3Smrg		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1703fd7d9bd3Smrg		}
1704fd7d9bd3Smrg
1705fd7d9bd3Smrg	return yy_current_state;
1706350952b9Smrg}
1707fd7d9bd3Smrg
1708fd7d9bd3Smrg/* yy_try_NUL_trans - try to make a transition on the NUL character
1709fd7d9bd3Smrg *
1710fd7d9bd3Smrg * synopsis
1711fd7d9bd3Smrg *	next_state = yy_try_NUL_trans( current_state );
1712fd7d9bd3Smrg */
1713350952b9Smrg    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1714350952b9Smrg{
1715fd7d9bd3Smrg	register int yy_is_jam;
1716350952b9Smrg    	register char *yy_cp = (yy_c_buf_p);
1717fd7d9bd3Smrg
1718fd7d9bd3Smrg	register YY_CHAR yy_c = 1;
1719fd7d9bd3Smrg	if ( yy_accept[yy_current_state] )
1720fd7d9bd3Smrg		{
1721350952b9Smrg		(yy_last_accepting_state) = yy_current_state;
1722350952b9Smrg		(yy_last_accepting_cpos) = yy_cp;
1723fd7d9bd3Smrg		}
1724fd7d9bd3Smrg	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1725fd7d9bd3Smrg		{
1726fd7d9bd3Smrg		yy_current_state = (int) yy_def[yy_current_state];
1727fd7d9bd3Smrg		if ( yy_current_state >= 420 )
1728fd7d9bd3Smrg			yy_c = yy_meta[(unsigned int) yy_c];
1729fd7d9bd3Smrg		}
1730fd7d9bd3Smrg	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1731fd7d9bd3Smrg	yy_is_jam = (yy_current_state == 419);
1732fd7d9bd3Smrg
1733fd7d9bd3Smrg	return yy_is_jam ? 0 : yy_current_state;
1734350952b9Smrg}
1735fd7d9bd3Smrg
1736350952b9Smrg    static void yyunput (int c, register char * yy_bp )
1737350952b9Smrg{
1738350952b9Smrg	register char *yy_cp;
1739350952b9Smrg
1740350952b9Smrg    yy_cp = (yy_c_buf_p);
1741fd7d9bd3Smrg
1742fd7d9bd3Smrg	/* undo effects of setting up yytext */
1743350952b9Smrg	*yy_cp = (yy_hold_char);
1744fd7d9bd3Smrg
1745350952b9Smrg	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1746fd7d9bd3Smrg		{ /* need to shift things up to make room */
1747fd7d9bd3Smrg		/* +2 for EOB chars. */
1748350952b9Smrg		register int number_to_move = (yy_n_chars) + 2;
1749350952b9Smrg		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1750350952b9Smrg					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1751fd7d9bd3Smrg		register char *source =
1752350952b9Smrg				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1753fd7d9bd3Smrg
1754350952b9Smrg		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1755fd7d9bd3Smrg			*--dest = *--source;
1756fd7d9bd3Smrg
1757fd7d9bd3Smrg		yy_cp += (int) (dest - source);
1758fd7d9bd3Smrg		yy_bp += (int) (dest - source);
1759350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1760350952b9Smrg			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1761fd7d9bd3Smrg
1762350952b9Smrg		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1763fd7d9bd3Smrg			YY_FATAL_ERROR( "flex scanner push-back overflow" );
1764fd7d9bd3Smrg		}
1765fd7d9bd3Smrg
1766fd7d9bd3Smrg	*--yy_cp = (char) c;
1767fd7d9bd3Smrg
1768350952b9Smrg	(yytext_ptr) = yy_bp;
1769350952b9Smrg	(yy_hold_char) = *yy_cp;
1770350952b9Smrg	(yy_c_buf_p) = yy_cp;
1771350952b9Smrg}
1772fd7d9bd3Smrg
1773fd7d9bd3Smrg#ifndef YY_NO_INPUT
1774fd7d9bd3Smrg#ifdef __cplusplus
1775350952b9Smrg    static int yyinput (void)
1776fd7d9bd3Smrg#else
1777350952b9Smrg    static int input  (void)
1778fd7d9bd3Smrg#endif
1779fd7d9bd3Smrg
1780350952b9Smrg{
1781350952b9Smrg	int c;
1782350952b9Smrg
1783350952b9Smrg	*(yy_c_buf_p) = (yy_hold_char);
1784fd7d9bd3Smrg
1785350952b9Smrg	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1786fd7d9bd3Smrg		{
1787fd7d9bd3Smrg		/* yy_c_buf_p now points to the character we want to return.
1788fd7d9bd3Smrg		 * If this occurs *before* the EOB characters, then it's a
1789fd7d9bd3Smrg		 * valid NUL; if not, then we've hit the end of the buffer.
1790fd7d9bd3Smrg		 */
1791350952b9Smrg		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1792fd7d9bd3Smrg			/* This was really a NUL. */
1793350952b9Smrg			*(yy_c_buf_p) = '\0';
1794fd7d9bd3Smrg
1795fd7d9bd3Smrg		else
1796fd7d9bd3Smrg			{ /* need more input */
1797350952b9Smrg			int offset = (yy_c_buf_p) - (yytext_ptr);
1798350952b9Smrg			++(yy_c_buf_p);
1799fd7d9bd3Smrg
1800350952b9Smrg			switch ( yy_get_next_buffer(  ) )
1801fd7d9bd3Smrg				{
1802fd7d9bd3Smrg				case EOB_ACT_LAST_MATCH:
1803fd7d9bd3Smrg					/* This happens because yy_g_n_b()
1804fd7d9bd3Smrg					 * sees that we've accumulated a
1805fd7d9bd3Smrg					 * token and flags that we need to
1806fd7d9bd3Smrg					 * try matching the token before
1807fd7d9bd3Smrg					 * proceeding.  But for input(),
1808fd7d9bd3Smrg					 * there's no matching to consider.
1809fd7d9bd3Smrg					 * So convert the EOB_ACT_LAST_MATCH
1810fd7d9bd3Smrg					 * to EOB_ACT_END_OF_FILE.
1811fd7d9bd3Smrg					 */
1812fd7d9bd3Smrg
1813fd7d9bd3Smrg					/* Reset buffer status. */
1814350952b9Smrg					yyrestart(yyin );
1815fd7d9bd3Smrg
1816350952b9Smrg					/*FALLTHROUGH*/
1817fd7d9bd3Smrg
1818fd7d9bd3Smrg				case EOB_ACT_END_OF_FILE:
1819fd7d9bd3Smrg					{
1820350952b9Smrg					if ( yywrap( ) )
1821fd7d9bd3Smrg						return EOF;
1822fd7d9bd3Smrg
1823350952b9Smrg					if ( ! (yy_did_buffer_switch_on_eof) )
1824fd7d9bd3Smrg						YY_NEW_FILE;
1825fd7d9bd3Smrg#ifdef __cplusplus
1826fd7d9bd3Smrg					return yyinput();
1827fd7d9bd3Smrg#else
1828fd7d9bd3Smrg					return input();
1829fd7d9bd3Smrg#endif
1830fd7d9bd3Smrg					}
1831fd7d9bd3Smrg
1832fd7d9bd3Smrg				case EOB_ACT_CONTINUE_SCAN:
1833350952b9Smrg					(yy_c_buf_p) = (yytext_ptr) + offset;
1834fd7d9bd3Smrg					break;
1835fd7d9bd3Smrg				}
1836fd7d9bd3Smrg			}
1837fd7d9bd3Smrg		}
1838fd7d9bd3Smrg
1839350952b9Smrg	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
1840350952b9Smrg	*(yy_c_buf_p) = '\0';	/* preserve yytext */
1841350952b9Smrg	(yy_hold_char) = *++(yy_c_buf_p);
1842fd7d9bd3Smrg
1843fd7d9bd3Smrg	return c;
1844350952b9Smrg}
1845350952b9Smrg#endif	/* ifndef YY_NO_INPUT */
1846fd7d9bd3Smrg
1847350952b9Smrg/** Immediately switch to a different input stream.
1848350952b9Smrg * @param input_file A readable stream.
1849350952b9Smrg *
1850350952b9Smrg * @note This function does not reset the start condition to @c INITIAL .
1851350952b9Smrg */
1852350952b9Smrg    void yyrestart  (FILE * input_file )
1853350952b9Smrg{
1854350952b9Smrg
1855350952b9Smrg	if ( ! YY_CURRENT_BUFFER ){
1856350952b9Smrg        yyensure_buffer_stack ();
1857350952b9Smrg		YY_CURRENT_BUFFER_LVALUE =
1858350952b9Smrg            yy_create_buffer(yyin,YY_BUF_SIZE );
1859fd7d9bd3Smrg	}
1860fd7d9bd3Smrg
1861350952b9Smrg	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
1862350952b9Smrg	yy_load_buffer_state( );
1863350952b9Smrg}
1864fd7d9bd3Smrg
1865350952b9Smrg/** Switch to a different input buffer.
1866350952b9Smrg * @param new_buffer The new input buffer.
1867350952b9Smrg *
1868350952b9Smrg */
1869350952b9Smrg    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1870350952b9Smrg{
1871350952b9Smrg
1872350952b9Smrg	/* TODO. We should be able to replace this entire function body
1873350952b9Smrg	 * with
1874350952b9Smrg	 *		yypop_buffer_state();
1875350952b9Smrg	 *		yypush_buffer_state(new_buffer);
1876350952b9Smrg     */
1877350952b9Smrg	yyensure_buffer_stack ();
1878350952b9Smrg	if ( YY_CURRENT_BUFFER == new_buffer )
1879fd7d9bd3Smrg		return;
1880fd7d9bd3Smrg
1881350952b9Smrg	if ( YY_CURRENT_BUFFER )
1882fd7d9bd3Smrg		{
1883fd7d9bd3Smrg		/* Flush out information for old buffer. */
1884350952b9Smrg		*(yy_c_buf_p) = (yy_hold_char);
1885350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1886350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1887fd7d9bd3Smrg		}
1888fd7d9bd3Smrg
1889350952b9Smrg	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1890350952b9Smrg	yy_load_buffer_state( );
1891fd7d9bd3Smrg
1892fd7d9bd3Smrg	/* We don't actually know whether we did this switch during
1893fd7d9bd3Smrg	 * EOF (yywrap()) processing, but the only time this flag
1894fd7d9bd3Smrg	 * is looked at is after yywrap() is called, so it's safe
1895fd7d9bd3Smrg	 * to go ahead and always set it.
1896fd7d9bd3Smrg	 */
1897350952b9Smrg	(yy_did_buffer_switch_on_eof) = 1;
1898350952b9Smrg}
1899350952b9Smrg
1900350952b9Smrgstatic void yy_load_buffer_state  (void)
1901350952b9Smrg{
1902350952b9Smrg    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1903350952b9Smrg	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1904350952b9Smrg	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1905350952b9Smrg	(yy_hold_char) = *(yy_c_buf_p);
1906350952b9Smrg}
1907350952b9Smrg
1908350952b9Smrg/** Allocate and initialize an input buffer state.
1909350952b9Smrg * @param file A readable stream.
1910350952b9Smrg * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1911350952b9Smrg *
1912350952b9Smrg * @return the allocated buffer state.
1913350952b9Smrg */
1914350952b9Smrg    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1915350952b9Smrg{
1916fd7d9bd3Smrg	YY_BUFFER_STATE b;
1917350952b9Smrg
1918350952b9Smrg	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
1919fd7d9bd3Smrg	if ( ! b )
1920fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1921fd7d9bd3Smrg
1922fd7d9bd3Smrg	b->yy_buf_size = size;
1923fd7d9bd3Smrg
1924fd7d9bd3Smrg	/* yy_ch_buf has to be 2 characters longer than the size given because
1925fd7d9bd3Smrg	 * we need to put in 2 end-of-buffer characters.
1926fd7d9bd3Smrg	 */
1927350952b9Smrg	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
1928fd7d9bd3Smrg	if ( ! b->yy_ch_buf )
1929fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1930fd7d9bd3Smrg
1931fd7d9bd3Smrg	b->yy_is_our_buffer = 1;
1932fd7d9bd3Smrg
1933350952b9Smrg	yy_init_buffer(b,file );
1934fd7d9bd3Smrg
1935fd7d9bd3Smrg	return b;
1936350952b9Smrg}
1937fd7d9bd3Smrg
1938350952b9Smrg/** Destroy the buffer.
1939350952b9Smrg * @param b a buffer created with yy_create_buffer()
1940350952b9Smrg *
1941350952b9Smrg */
1942350952b9Smrg    void yy_delete_buffer (YY_BUFFER_STATE  b )
1943350952b9Smrg{
1944350952b9Smrg
1945fd7d9bd3Smrg	if ( ! b )
1946fd7d9bd3Smrg		return;
1947fd7d9bd3Smrg
1948350952b9Smrg	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1949350952b9Smrg		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1950fd7d9bd3Smrg
1951fd7d9bd3Smrg	if ( b->yy_is_our_buffer )
1952350952b9Smrg		yyfree((void *) b->yy_ch_buf  );
1953fd7d9bd3Smrg
1954350952b9Smrg	yyfree((void *) b  );
1955350952b9Smrg}
1956fd7d9bd3Smrg
1957350952b9Smrg#ifndef __cplusplus
1958350952b9Smrgextern int isatty (int );
1959350952b9Smrg#endif /* __cplusplus */
1960350952b9Smrg
1961350952b9Smrg/* Initializes or reinitializes a buffer.
1962350952b9Smrg * This function is sometimes called more than once on the same buffer,
1963350952b9Smrg * such as during a yyrestart() or at EOF.
1964350952b9Smrg */
1965350952b9Smrg    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1966fd7d9bd3Smrg
1967350952b9Smrg{
1968350952b9Smrg	int oerrno = errno;
1969350952b9Smrg
1970350952b9Smrg	yy_flush_buffer(b );
1971fd7d9bd3Smrg
1972fd7d9bd3Smrg	b->yy_input_file = file;
1973fd7d9bd3Smrg	b->yy_fill_buffer = 1;
1974fd7d9bd3Smrg
1975350952b9Smrg    /* If b is the current buffer, then yy_init_buffer was _probably_
1976350952b9Smrg     * called from yyrestart() or through yy_get_next_buffer.
1977350952b9Smrg     * In that case, we don't want to reset the lineno or column.
1978350952b9Smrg     */
1979350952b9Smrg    if (b != YY_CURRENT_BUFFER){
1980350952b9Smrg        b->yy_bs_lineno = 1;
1981350952b9Smrg        b->yy_bs_column = 0;
1982350952b9Smrg    }
1983350952b9Smrg
1984350952b9Smrg        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1985350952b9Smrg
1986350952b9Smrg	errno = oerrno;
1987350952b9Smrg}
1988350952b9Smrg
1989350952b9Smrg/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1990350952b9Smrg * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1991350952b9Smrg *
1992350952b9Smrg */
1993350952b9Smrg    void yy_flush_buffer (YY_BUFFER_STATE  b )
1994350952b9Smrg{
1995350952b9Smrg    	if ( ! b )
1996fd7d9bd3Smrg		return;
1997fd7d9bd3Smrg
1998fd7d9bd3Smrg	b->yy_n_chars = 0;
1999fd7d9bd3Smrg
2000fd7d9bd3Smrg	/* We always need two end-of-buffer characters.  The first causes
2001fd7d9bd3Smrg	 * a transition to the end-of-buffer state.  The second causes
2002fd7d9bd3Smrg	 * a jam in that state.
2003fd7d9bd3Smrg	 */
2004fd7d9bd3Smrg	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2005fd7d9bd3Smrg	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2006fd7d9bd3Smrg
2007fd7d9bd3Smrg	b->yy_buf_pos = &b->yy_ch_buf[0];
2008fd7d9bd3Smrg
2009fd7d9bd3Smrg	b->yy_at_bol = 1;
2010fd7d9bd3Smrg	b->yy_buffer_status = YY_BUFFER_NEW;
2011fd7d9bd3Smrg
2012350952b9Smrg	if ( b == YY_CURRENT_BUFFER )
2013350952b9Smrg		yy_load_buffer_state( );
2014350952b9Smrg}
2015350952b9Smrg
2016350952b9Smrg/** Pushes the new state onto the stack. The new state becomes
2017350952b9Smrg *  the current state. This function will allocate the stack
2018350952b9Smrg *  if necessary.
2019350952b9Smrg *  @param new_buffer The new state.
2020350952b9Smrg *
2021350952b9Smrg */
2022350952b9Smrgvoid yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2023350952b9Smrg{
2024350952b9Smrg    	if (new_buffer == NULL)
2025350952b9Smrg		return;
2026350952b9Smrg
2027350952b9Smrg	yyensure_buffer_stack();
2028350952b9Smrg
2029350952b9Smrg	/* This block is copied from yy_switch_to_buffer. */
2030350952b9Smrg	if ( YY_CURRENT_BUFFER )
2031350952b9Smrg		{
2032350952b9Smrg		/* Flush out information for old buffer. */
2033350952b9Smrg		*(yy_c_buf_p) = (yy_hold_char);
2034350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2035350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2036350952b9Smrg		}
2037350952b9Smrg
2038350952b9Smrg	/* Only push if top exists. Otherwise, replace top. */
2039350952b9Smrg	if (YY_CURRENT_BUFFER)
2040350952b9Smrg		(yy_buffer_stack_top)++;
2041350952b9Smrg	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2042350952b9Smrg
2043350952b9Smrg	/* copied from yy_switch_to_buffer. */
2044350952b9Smrg	yy_load_buffer_state( );
2045350952b9Smrg	(yy_did_buffer_switch_on_eof) = 1;
2046350952b9Smrg}
2047350952b9Smrg
2048350952b9Smrg/** Removes and deletes the top of the stack, if present.
2049350952b9Smrg *  The next element becomes the new top.
2050350952b9Smrg *
2051350952b9Smrg */
2052350952b9Smrgvoid yypop_buffer_state (void)
2053350952b9Smrg{
2054350952b9Smrg    	if (!YY_CURRENT_BUFFER)
2055350952b9Smrg		return;
2056350952b9Smrg
2057350952b9Smrg	yy_delete_buffer(YY_CURRENT_BUFFER );
2058350952b9Smrg	YY_CURRENT_BUFFER_LVALUE = NULL;
2059350952b9Smrg	if ((yy_buffer_stack_top) > 0)
2060350952b9Smrg		--(yy_buffer_stack_top);
2061350952b9Smrg
2062350952b9Smrg	if (YY_CURRENT_BUFFER) {
2063350952b9Smrg		yy_load_buffer_state( );
2064350952b9Smrg		(yy_did_buffer_switch_on_eof) = 1;
2065fd7d9bd3Smrg	}
2066350952b9Smrg}
2067fd7d9bd3Smrg
2068350952b9Smrg/* Allocates the stack if it does not exist.
2069350952b9Smrg *  Guarantees space for at least one push.
2070350952b9Smrg */
2071350952b9Smrgstatic void yyensure_buffer_stack (void)
2072350952b9Smrg{
2073350952b9Smrg	int num_to_alloc;
2074350952b9Smrg
2075350952b9Smrg	if (!(yy_buffer_stack)) {
2076350952b9Smrg
2077350952b9Smrg		/* First allocation is just for 2 elements, since we don't know if this
2078350952b9Smrg		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2079350952b9Smrg		 * immediate realloc on the next call.
2080350952b9Smrg         */
2081350952b9Smrg		num_to_alloc = 1;
2082350952b9Smrg		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2083350952b9Smrg								(num_to_alloc * sizeof(struct yy_buffer_state*)
2084350952b9Smrg								);
2085350952b9Smrg		if ( ! (yy_buffer_stack) )
2086350952b9Smrg			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2087350952b9Smrg
2088350952b9Smrg		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2089350952b9Smrg
2090350952b9Smrg		(yy_buffer_stack_max) = num_to_alloc;
2091350952b9Smrg		(yy_buffer_stack_top) = 0;
2092350952b9Smrg		return;
2093350952b9Smrg	}
2094fd7d9bd3Smrg
2095350952b9Smrg	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2096350952b9Smrg
2097350952b9Smrg		/* Increase the buffer to prepare for a possible push. */
2098350952b9Smrg		int grow_size = 8 /* arbitrary grow size */;
2099350952b9Smrg
2100350952b9Smrg		num_to_alloc = (yy_buffer_stack_max) + grow_size;
2101350952b9Smrg		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2102350952b9Smrg								((yy_buffer_stack),
2103350952b9Smrg								num_to_alloc * sizeof(struct yy_buffer_state*)
2104350952b9Smrg								);
2105350952b9Smrg		if ( ! (yy_buffer_stack) )
2106350952b9Smrg			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2107350952b9Smrg
2108350952b9Smrg		/* zero only the new slots.*/
2109350952b9Smrg		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2110350952b9Smrg		(yy_buffer_stack_max) = num_to_alloc;
2111350952b9Smrg	}
2112350952b9Smrg}
2113fd7d9bd3Smrg
2114350952b9Smrg/** Setup the input buffer state to scan directly from a user-specified character buffer.
2115350952b9Smrg * @param base the character buffer
2116350952b9Smrg * @param size the size in bytes of the character buffer
2117350952b9Smrg *
2118350952b9Smrg * @return the newly allocated buffer state object.
2119350952b9Smrg */
2120350952b9SmrgYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
2121350952b9Smrg{
2122350952b9Smrg	YY_BUFFER_STATE b;
2123350952b9Smrg
2124fd7d9bd3Smrg	if ( size < 2 ||
2125fd7d9bd3Smrg	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2126fd7d9bd3Smrg	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2127fd7d9bd3Smrg		/* They forgot to leave room for the EOB's. */
2128fd7d9bd3Smrg		return 0;
2129fd7d9bd3Smrg
2130350952b9Smrg	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2131fd7d9bd3Smrg	if ( ! b )
2132fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2133fd7d9bd3Smrg
2134fd7d9bd3Smrg	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2135fd7d9bd3Smrg	b->yy_buf_pos = b->yy_ch_buf = base;
2136fd7d9bd3Smrg	b->yy_is_our_buffer = 0;
2137fd7d9bd3Smrg	b->yy_input_file = 0;
2138fd7d9bd3Smrg	b->yy_n_chars = b->yy_buf_size;
2139fd7d9bd3Smrg	b->yy_is_interactive = 0;
2140fd7d9bd3Smrg	b->yy_at_bol = 1;
2141fd7d9bd3Smrg	b->yy_fill_buffer = 0;
2142fd7d9bd3Smrg	b->yy_buffer_status = YY_BUFFER_NEW;
2143fd7d9bd3Smrg
2144350952b9Smrg	yy_switch_to_buffer(b  );
2145fd7d9bd3Smrg
2146fd7d9bd3Smrg	return b;
2147350952b9Smrg}
2148350952b9Smrg
2149350952b9Smrg/** Setup the input buffer state to scan a string. The next call to yylex() will
2150350952b9Smrg * scan from a @e copy of @a str.
2151350952b9Smrg * @param yystr a NUL-terminated string to scan
2152350952b9Smrg *
2153350952b9Smrg * @return the newly allocated buffer state object.
2154350952b9Smrg * @note If you want to scan bytes that may contain NUL values, then use
2155350952b9Smrg *       yy_scan_bytes() instead.
2156350952b9Smrg */
2157350952b9SmrgYY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2158350952b9Smrg{
2159350952b9Smrg
2160350952b9Smrg	return yy_scan_bytes(yystr,strlen(yystr) );
2161350952b9Smrg}
2162350952b9Smrg
2163350952b9Smrg/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2164350952b9Smrg * scan from a @e copy of @a bytes.
2165350952b9Smrg * @param bytes the byte buffer to scan
2166350952b9Smrg * @param len the number of bytes in the buffer pointed to by @a bytes.
2167350952b9Smrg *
2168350952b9Smrg * @return the newly allocated buffer state object.
2169350952b9Smrg */
2170350952b9SmrgYY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
2171350952b9Smrg{
2172fd7d9bd3Smrg	YY_BUFFER_STATE b;
2173fd7d9bd3Smrg	char *buf;
2174fd7d9bd3Smrg	yy_size_t n;
2175fd7d9bd3Smrg	int i;
2176350952b9Smrg
2177fd7d9bd3Smrg	/* Get memory for full buffer, including space for trailing EOB's. */
2178350952b9Smrg	n = _yybytes_len + 2;
2179350952b9Smrg	buf = (char *) yyalloc(n  );
2180fd7d9bd3Smrg	if ( ! buf )
2181fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2182fd7d9bd3Smrg
2183350952b9Smrg	for ( i = 0; i < _yybytes_len; ++i )
2184350952b9Smrg		buf[i] = yybytes[i];
2185fd7d9bd3Smrg
2186350952b9Smrg	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2187fd7d9bd3Smrg
2188350952b9Smrg	b = yy_scan_buffer(buf,n );
2189fd7d9bd3Smrg	if ( ! b )
2190fd7d9bd3Smrg		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2191fd7d9bd3Smrg
2192fd7d9bd3Smrg	/* It's okay to grow etc. this buffer, and we should throw it
2193fd7d9bd3Smrg	 * away when we're done.
2194fd7d9bd3Smrg	 */
2195fd7d9bd3Smrg	b->yy_is_our_buffer = 1;
2196fd7d9bd3Smrg
2197fd7d9bd3Smrg	return b;
2198350952b9Smrg}
2199fd7d9bd3Smrg
2200fd7d9bd3Smrg#ifndef YY_EXIT_FAILURE
2201fd7d9bd3Smrg#define YY_EXIT_FAILURE 2
2202fd7d9bd3Smrg#endif
2203fd7d9bd3Smrg
2204350952b9Smrgstatic void yy_fatal_error (yyconst char* msg )
2205350952b9Smrg{
2206350952b9Smrg    	(void) fprintf( stderr, "%s\n", msg );
2207fd7d9bd3Smrg	exit( YY_EXIT_FAILURE );
2208350952b9Smrg}
2209fd7d9bd3Smrg
2210fd7d9bd3Smrg/* Redefine yyless() so it works in section 3 code. */
2211fd7d9bd3Smrg
2212fd7d9bd3Smrg#undef yyless
2213fd7d9bd3Smrg#define yyless(n) \
2214fd7d9bd3Smrg	do \
2215fd7d9bd3Smrg		{ \
2216fd7d9bd3Smrg		/* Undo effects of setting up yytext. */ \
2217350952b9Smrg        int yyless_macro_arg = (n); \
2218350952b9Smrg        YY_LESS_LINENO(yyless_macro_arg);\
2219350952b9Smrg		yytext[yyleng] = (yy_hold_char); \
2220350952b9Smrg		(yy_c_buf_p) = yytext + yyless_macro_arg; \
2221350952b9Smrg		(yy_hold_char) = *(yy_c_buf_p); \
2222350952b9Smrg		*(yy_c_buf_p) = '\0'; \
2223350952b9Smrg		yyleng = yyless_macro_arg; \
2224fd7d9bd3Smrg		} \
2225fd7d9bd3Smrg	while ( 0 )
2226fd7d9bd3Smrg
2227350952b9Smrg/* Accessor  methods (get/set functions) to struct members. */
2228350952b9Smrg
2229350952b9Smrg/** Get the current line number.
2230350952b9Smrg *
2231350952b9Smrg */
2232350952b9Smrgint yyget_lineno  (void)
2233350952b9Smrg{
2234350952b9Smrg
2235350952b9Smrg    return yylineno;
2236350952b9Smrg}
2237350952b9Smrg
2238350952b9Smrg/** Get the input stream.
2239350952b9Smrg *
2240350952b9Smrg */
2241350952b9SmrgFILE *yyget_in  (void)
2242350952b9Smrg{
2243350952b9Smrg        return yyin;
2244350952b9Smrg}
2245fd7d9bd3Smrg
2246350952b9Smrg/** Get the output stream.
2247350952b9Smrg *
2248350952b9Smrg */
2249350952b9SmrgFILE *yyget_out  (void)
2250350952b9Smrg{
2251350952b9Smrg        return yyout;
2252350952b9Smrg}
2253fd7d9bd3Smrg
2254350952b9Smrg/** Get the length of the current token.
2255350952b9Smrg *
2256350952b9Smrg */
2257350952b9Smrgint yyget_leng  (void)
2258350952b9Smrg{
2259350952b9Smrg        return yyleng;
2260350952b9Smrg}
2261350952b9Smrg
2262350952b9Smrg/** Get the current token.
2263350952b9Smrg *
2264350952b9Smrg */
2265350952b9Smrg
2266350952b9Smrgchar *yyget_text  (void)
2267350952b9Smrg{
2268350952b9Smrg        return yytext;
2269350952b9Smrg}
2270350952b9Smrg
2271350952b9Smrg/** Set the current line number.
2272350952b9Smrg * @param line_number
2273350952b9Smrg *
2274350952b9Smrg */
2275350952b9Smrgvoid yyset_lineno (int  line_number )
2276350952b9Smrg{
2277350952b9Smrg
2278350952b9Smrg    yylineno = line_number;
2279350952b9Smrg}
2280350952b9Smrg
2281350952b9Smrg/** Set the input stream. This does not discard the current
2282350952b9Smrg * input buffer.
2283350952b9Smrg * @param in_str A readable stream.
2284350952b9Smrg *
2285350952b9Smrg * @see yy_switch_to_buffer
2286350952b9Smrg */
2287350952b9Smrgvoid yyset_in (FILE *  in_str )
2288350952b9Smrg{
2289350952b9Smrg        yyin = in_str ;
2290350952b9Smrg}
2291350952b9Smrg
2292350952b9Smrgvoid yyset_out (FILE *  out_str )
2293350952b9Smrg{
2294350952b9Smrg        yyout = out_str ;
2295350952b9Smrg}
2296350952b9Smrg
2297350952b9Smrgint yyget_debug  (void)
2298350952b9Smrg{
2299350952b9Smrg        return yy_flex_debug;
2300350952b9Smrg}
2301350952b9Smrg
2302350952b9Smrgvoid yyset_debug (int  bdebug )
2303350952b9Smrg{
2304350952b9Smrg        yy_flex_debug = bdebug ;
2305350952b9Smrg}
2306350952b9Smrg
2307350952b9Smrgstatic int yy_init_globals (void)
2308350952b9Smrg{
2309350952b9Smrg        /* Initialization is the same as for the non-reentrant scanner.
2310350952b9Smrg     * This function is called from yylex_destroy(), so don't allocate here.
2311350952b9Smrg     */
2312350952b9Smrg
2313350952b9Smrg    (yy_buffer_stack) = 0;
2314350952b9Smrg    (yy_buffer_stack_top) = 0;
2315350952b9Smrg    (yy_buffer_stack_max) = 0;
2316350952b9Smrg    (yy_c_buf_p) = (char *) 0;
2317350952b9Smrg    (yy_init) = 0;
2318350952b9Smrg    (yy_start) = 0;
2319350952b9Smrg
2320350952b9Smrg/* Defined in main.c */
2321350952b9Smrg#ifdef YY_STDINIT
2322350952b9Smrg    yyin = stdin;
2323350952b9Smrg    yyout = stdout;
2324fd7d9bd3Smrg#else
2325350952b9Smrg    yyin = (FILE *) 0;
2326350952b9Smrg    yyout = (FILE *) 0;
2327350952b9Smrg#endif
2328350952b9Smrg
2329350952b9Smrg    /* For future reference: Set errno on error, since we are called by
2330350952b9Smrg     * yylex_init()
2331350952b9Smrg     */
2332350952b9Smrg    return 0;
2333350952b9Smrg}
2334350952b9Smrg
2335350952b9Smrg/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2336350952b9Smrgint yylex_destroy  (void)
2337350952b9Smrg{
2338350952b9Smrg
2339350952b9Smrg    /* Pop the buffer stack, destroying each element. */
2340350952b9Smrg	while(YY_CURRENT_BUFFER){
2341350952b9Smrg		yy_delete_buffer(YY_CURRENT_BUFFER  );
2342350952b9Smrg		YY_CURRENT_BUFFER_LVALUE = NULL;
2343350952b9Smrg		yypop_buffer_state();
2344350952b9Smrg	}
2345350952b9Smrg
2346350952b9Smrg	/* Destroy the stack itself. */
2347350952b9Smrg	yyfree((yy_buffer_stack) );
2348350952b9Smrg	(yy_buffer_stack) = NULL;
2349350952b9Smrg
2350350952b9Smrg    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2351350952b9Smrg     * yylex() is called, initialization will occur. */
2352350952b9Smrg    yy_init_globals( );
2353350952b9Smrg
2354350952b9Smrg    return 0;
2355350952b9Smrg}
2356350952b9Smrg
2357350952b9Smrg/*
2358350952b9Smrg * Internal utility routines.
2359350952b9Smrg */
2360350952b9Smrg
2361350952b9Smrg#ifndef yytext_ptr
2362350952b9Smrgstatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2363350952b9Smrg{
2364fd7d9bd3Smrg	register int i;
2365fd7d9bd3Smrg	for ( i = 0; i < n; ++i )
2366fd7d9bd3Smrg		s1[i] = s2[i];
2367350952b9Smrg}
2368fd7d9bd3Smrg#endif
2369fd7d9bd3Smrg
2370fd7d9bd3Smrg#ifdef YY_NEED_STRLEN
2371350952b9Smrgstatic int yy_flex_strlen (yyconst char * s )
2372350952b9Smrg{
2373fd7d9bd3Smrg	register int n;
2374fd7d9bd3Smrg	for ( n = 0; s[n]; ++n )
2375fd7d9bd3Smrg		;
2376fd7d9bd3Smrg
2377fd7d9bd3Smrg	return n;
2378350952b9Smrg}
2379fd7d9bd3Smrg#endif
2380fd7d9bd3Smrg
2381350952b9Smrgvoid *yyalloc (yy_size_t  size )
2382350952b9Smrg{
2383fd7d9bd3Smrg	return (void *) malloc( size );
2384350952b9Smrg}
2385fd7d9bd3Smrg
2386350952b9Smrgvoid *yyrealloc  (void * ptr, yy_size_t  size )
2387350952b9Smrg{
2388fd7d9bd3Smrg	/* The cast to (char *) in the following accommodates both
2389fd7d9bd3Smrg	 * implementations that use char* generic pointers, and those
2390fd7d9bd3Smrg	 * that use void* generic pointers.  It works with the latter
2391fd7d9bd3Smrg	 * because both ANSI C and C++ allow castless assignment from
2392fd7d9bd3Smrg	 * any pointer type to void*, and deal with argument conversions
2393fd7d9bd3Smrg	 * as though doing an assignment.
2394fd7d9bd3Smrg	 */
2395fd7d9bd3Smrg	return (void *) realloc( (char *) ptr, size );
2396350952b9Smrg}
2397fd7d9bd3Smrg
2398350952b9Smrgvoid yyfree (void * ptr )
2399350952b9Smrg{
2400350952b9Smrg	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2401350952b9Smrg}
2402350952b9Smrg
2403350952b9Smrg#define YYTABLES_NAME "yytables"
2404fd7d9bd3Smrg
2405fd7d9bd3Smrg#line 166 "lex.l"
2406fd7d9bd3Smrg
2407fd7d9bd3Smrg
2408350952b9Smrg
2409fd7d9bd3Smrg#ifndef yywrap
2410350952b9Smrgint yywrap(void) { return (1); }
2411fd7d9bd3Smrg#endif
2412350952b9Smrg
2413