1fd7d9bd3Smrg
2e53c48bfSmrg#line 2 "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
10e53c48bfSmrg#define YY_FLEX_MINOR_VERSION 6
11e53c48bfSmrg#define YY_FLEX_SUBMINOR_VERSION 4
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;
56fd7d9bd3Smrg
57350952b9Smrg/* Limits of integral types. */
58350952b9Smrg#ifndef INT8_MIN
59350952b9Smrg#define INT8_MIN               (-128)
60350952b9Smrg#endif
61350952b9Smrg#ifndef INT16_MIN
62350952b9Smrg#define INT16_MIN              (-32767-1)
63350952b9Smrg#endif
64350952b9Smrg#ifndef INT32_MIN
65350952b9Smrg#define INT32_MIN              (-2147483647-1)
66350952b9Smrg#endif
67350952b9Smrg#ifndef INT8_MAX
68350952b9Smrg#define INT8_MAX               (127)
69350952b9Smrg#endif
70350952b9Smrg#ifndef INT16_MAX
71350952b9Smrg#define INT16_MAX              (32767)
72350952b9Smrg#endif
73350952b9Smrg#ifndef INT32_MAX
74350952b9Smrg#define INT32_MAX              (2147483647)
75350952b9Smrg#endif
76350952b9Smrg#ifndef UINT8_MAX
77350952b9Smrg#define UINT8_MAX              (255U)
78350952b9Smrg#endif
79350952b9Smrg#ifndef UINT16_MAX
80350952b9Smrg#define UINT16_MAX             (65535U)
81350952b9Smrg#endif
82350952b9Smrg#ifndef UINT32_MAX
83350952b9Smrg#define UINT32_MAX             (4294967295U)
84350952b9Smrg#endif
85fd7d9bd3Smrg
86e53c48bfSmrg#ifndef SIZE_MAX
87e53c48bfSmrg#define SIZE_MAX               (~(size_t)0)
88e53c48bfSmrg#endif
89fd7d9bd3Smrg
90e53c48bfSmrg#endif /* ! C99 */
91fd7d9bd3Smrg
92e53c48bfSmrg#endif /* ! FLEXINT_H */
93fd7d9bd3Smrg
94e53c48bfSmrg/* begin standard C++ headers. */
95fd7d9bd3Smrg
96e53c48bfSmrg/* TODO: this is always defined, so inline it */
97fd7d9bd3Smrg#define yyconst const
98e53c48bfSmrg
99e53c48bfSmrg#if defined(__GNUC__) && __GNUC__ >= 3
100e53c48bfSmrg#define yynoreturn __attribute__((__noreturn__))
101fd7d9bd3Smrg#else
102e53c48bfSmrg#define yynoreturn
103fd7d9bd3Smrg#endif
104fd7d9bd3Smrg
105fd7d9bd3Smrg/* Returned upon end-of-file. */
106fd7d9bd3Smrg#define YY_NULL 0
107fd7d9bd3Smrg
108e53c48bfSmrg/* Promotes a possibly negative, possibly signed char to an
109e53c48bfSmrg *   integer in range [0..255] for use as an array index.
110fd7d9bd3Smrg */
111e53c48bfSmrg#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
112fd7d9bd3Smrg
113fd7d9bd3Smrg/* Enter a start condition.  This macro really ought to take a parameter,
114fd7d9bd3Smrg * but we do it the disgusting crufty way forced on us by the ()-less
115fd7d9bd3Smrg * definition of BEGIN.
116fd7d9bd3Smrg */
117350952b9Smrg#define BEGIN (yy_start) = 1 + 2 *
118fd7d9bd3Smrg/* Translate the current start state into a value that can be later handed
119fd7d9bd3Smrg * to BEGIN to return to the state.  The YYSTATE alias is for lex
120fd7d9bd3Smrg * compatibility.
121fd7d9bd3Smrg */
122350952b9Smrg#define YY_START (((yy_start) - 1) / 2)
123fd7d9bd3Smrg#define YYSTATE YY_START
124fd7d9bd3Smrg/* Action number for EOF rule of a given start state. */
125fd7d9bd3Smrg#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
126fd7d9bd3Smrg/* Special action meaning "start processing a new file". */
127e53c48bfSmrg#define YY_NEW_FILE yyrestart( yyin  )
128fd7d9bd3Smrg#define YY_END_OF_BUFFER_CHAR 0
129fd7d9bd3Smrg
130fd7d9bd3Smrg/* Size of default input buffer. */
131350952b9Smrg#ifndef YY_BUF_SIZE
132e53c48bfSmrg#ifdef __ia64__
133e53c48bfSmrg/* On IA-64, the buffer size is 16k, not 8k.
134e53c48bfSmrg * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
135e53c48bfSmrg * Ditto for the __ia64__ case accordingly.
136e53c48bfSmrg */
137e53c48bfSmrg#define YY_BUF_SIZE 32768
138e53c48bfSmrg#else
139fd7d9bd3Smrg#define YY_BUF_SIZE 16384
140e53c48bfSmrg#endif /* __ia64__ */
141350952b9Smrg#endif
142350952b9Smrg
143350952b9Smrg/* The state buf must be large enough to hold one state per character in the main buffer.
144350952b9Smrg */
145350952b9Smrg#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
146fd7d9bd3Smrg
147350952b9Smrg#ifndef YY_TYPEDEF_YY_BUFFER_STATE
148350952b9Smrg#define YY_TYPEDEF_YY_BUFFER_STATE
149fd7d9bd3Smrgtypedef struct yy_buffer_state *YY_BUFFER_STATE;
150350952b9Smrg#endif
151fd7d9bd3Smrg
152e53c48bfSmrg#ifndef YY_TYPEDEF_YY_SIZE_T
153e53c48bfSmrg#define YY_TYPEDEF_YY_SIZE_T
154e53c48bfSmrgtypedef size_t yy_size_t;
155e53c48bfSmrg#endif
156e53c48bfSmrg
157fd7d9bd3Smrgextern int yyleng;
158350952b9Smrg
159fd7d9bd3Smrgextern FILE *yyin, *yyout;
160fd7d9bd3Smrg
161fd7d9bd3Smrg#define EOB_ACT_CONTINUE_SCAN 0
162fd7d9bd3Smrg#define EOB_ACT_END_OF_FILE 1
163fd7d9bd3Smrg#define EOB_ACT_LAST_MATCH 2
164e53c48bfSmrg
165350952b9Smrg    #define YY_LESS_LINENO(n)
166e53c48bfSmrg    #define YY_LINENO_REWIND_TO(ptr)
167350952b9Smrg
168350952b9Smrg/* Return all but the first "n" matched characters back to the input stream. */
169fd7d9bd3Smrg#define yyless(n) \
170fd7d9bd3Smrg	do \
171fd7d9bd3Smrg		{ \
172fd7d9bd3Smrg		/* Undo effects of setting up yytext. */ \
173350952b9Smrg        int yyless_macro_arg = (n); \
174350952b9Smrg        YY_LESS_LINENO(yyless_macro_arg);\
175350952b9Smrg		*yy_cp = (yy_hold_char); \
176fd7d9bd3Smrg		YY_RESTORE_YY_MORE_OFFSET \
177350952b9Smrg		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
178fd7d9bd3Smrg		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
179fd7d9bd3Smrg		} \
180fd7d9bd3Smrg	while ( 0 )
181350952b9Smrg#define unput(c) yyunput( c, (yytext_ptr)  )
182fd7d9bd3Smrg
183350952b9Smrg#ifndef YY_STRUCT_YY_BUFFER_STATE
184350952b9Smrg#define YY_STRUCT_YY_BUFFER_STATE
185fd7d9bd3Smrgstruct yy_buffer_state
186fd7d9bd3Smrg	{
187fd7d9bd3Smrg	FILE *yy_input_file;
188fd7d9bd3Smrg
189fd7d9bd3Smrg	char *yy_ch_buf;		/* input buffer */
190fd7d9bd3Smrg	char *yy_buf_pos;		/* current position in input buffer */
191fd7d9bd3Smrg
192fd7d9bd3Smrg	/* Size of input buffer in bytes, not including room for EOB
193fd7d9bd3Smrg	 * characters.
194fd7d9bd3Smrg	 */
195e53c48bfSmrg	int yy_buf_size;
196fd7d9bd3Smrg
197fd7d9bd3Smrg	/* Number of characters read into yy_ch_buf, not including EOB
198fd7d9bd3Smrg	 * characters.
199fd7d9bd3Smrg	 */
200fd7d9bd3Smrg	int yy_n_chars;
201fd7d9bd3Smrg
202fd7d9bd3Smrg	/* Whether we "own" the buffer - i.e., we know we created it,
203fd7d9bd3Smrg	 * and can realloc() it to grow it, and should free() it to
204fd7d9bd3Smrg	 * delete it.
205fd7d9bd3Smrg	 */
206fd7d9bd3Smrg	int yy_is_our_buffer;
207fd7d9bd3Smrg
208fd7d9bd3Smrg	/* Whether this is an "interactive" input source; if so, and
209fd7d9bd3Smrg	 * if we're using stdio for input, then we want to use getc()
210fd7d9bd3Smrg	 * instead of fread(), to make sure we stop fetching input after
211fd7d9bd3Smrg	 * each newline.
212fd7d9bd3Smrg	 */
213fd7d9bd3Smrg	int yy_is_interactive;
214fd7d9bd3Smrg
215fd7d9bd3Smrg	/* Whether we're considered to be at the beginning of a line.
216fd7d9bd3Smrg	 * If so, '^' rules will be active on the next match, otherwise
217fd7d9bd3Smrg	 * not.
218fd7d9bd3Smrg	 */
219fd7d9bd3Smrg	int yy_at_bol;
220fd7d9bd3Smrg
221350952b9Smrg    int yy_bs_lineno; /**< The line count. */
222350952b9Smrg    int yy_bs_column; /**< The column count. */
223e53c48bfSmrg
224fd7d9bd3Smrg	/* Whether to try to fill the input buffer when we reach the
225fd7d9bd3Smrg	 * end of it.
226fd7d9bd3Smrg	 */
227fd7d9bd3Smrg	int yy_fill_buffer;
228fd7d9bd3Smrg
229fd7d9bd3Smrg	int yy_buffer_status;
230350952b9Smrg
231fd7d9bd3Smrg#define YY_BUFFER_NEW 0
232fd7d9bd3Smrg#define YY_BUFFER_NORMAL 1
233fd7d9bd3Smrg	/* When an EOF's been seen but there's still some text to process
234fd7d9bd3Smrg	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
235fd7d9bd3Smrg	 * shouldn't try reading from the input source any more.  We might
236fd7d9bd3Smrg	 * still have a bunch of tokens to match, though, because of
237fd7d9bd3Smrg	 * possible backing-up.
238fd7d9bd3Smrg	 *
239fd7d9bd3Smrg	 * When we actually see the EOF, we change the status to "new"
240fd7d9bd3Smrg	 * (via yyrestart()), so that the user can continue scanning by
241fd7d9bd3Smrg	 * just pointing yyin at a new input file.
242fd7d9bd3Smrg	 */
243fd7d9bd3Smrg#define YY_BUFFER_EOF_PENDING 2
244350952b9Smrg
245fd7d9bd3Smrg	};
246350952b9Smrg#endif /* !YY_STRUCT_YY_BUFFER_STATE */
247fd7d9bd3Smrg
248350952b9Smrg/* Stack of input buffers. */
249350952b9Smrgstatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
250350952b9Smrgstatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
251e53c48bfSmrgstatic YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
252fd7d9bd3Smrg
253fd7d9bd3Smrg/* We provide macros for accessing buffer states in case in the
254fd7d9bd3Smrg * future we want to put the buffer states in a more general
255fd7d9bd3Smrg * "scanner state".
256350952b9Smrg *
257350952b9Smrg * Returns the top of the stack, or NULL.
258fd7d9bd3Smrg */
259350952b9Smrg#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
260350952b9Smrg                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
261350952b9Smrg                          : NULL)
262350952b9Smrg/* Same as previous macro, but useful when we know that the buffer stack is not
263350952b9Smrg * NULL or when we need an lvalue. For internal use only.
264350952b9Smrg */
265350952b9Smrg#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
266fd7d9bd3Smrg
267fd7d9bd3Smrg/* yy_hold_char holds the character lost when yytext is formed. */
268fd7d9bd3Smrgstatic char yy_hold_char;
269fd7d9bd3Smrgstatic int yy_n_chars;		/* number of characters read into yy_ch_buf */
270fd7d9bd3Smrgint yyleng;
271fd7d9bd3Smrg
272fd7d9bd3Smrg/* Points to current character in buffer. */
273e53c48bfSmrgstatic char *yy_c_buf_p = NULL;
274350952b9Smrgstatic int yy_init = 0;		/* whether we need to initialize */
275fd7d9bd3Smrgstatic int yy_start = 0;	/* start state number */
276fd7d9bd3Smrg
277fd7d9bd3Smrg/* Flag which is used to allow yywrap()'s to do buffer switches
278fd7d9bd3Smrg * instead of setting up a fresh yyin.  A bit of a hack ...
279fd7d9bd3Smrg */
280fd7d9bd3Smrgstatic int yy_did_buffer_switch_on_eof;
281fd7d9bd3Smrg
282e53c48bfSmrgvoid yyrestart ( FILE *input_file  );
283e53c48bfSmrgvoid yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
284e53c48bfSmrgYY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
285e53c48bfSmrgvoid yy_delete_buffer ( YY_BUFFER_STATE b  );
286e53c48bfSmrgvoid yy_flush_buffer ( YY_BUFFER_STATE b  );
287e53c48bfSmrgvoid yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
288e53c48bfSmrgvoid yypop_buffer_state ( void );
289350952b9Smrg
290e53c48bfSmrgstatic void yyensure_buffer_stack ( void );
291e53c48bfSmrgstatic void yy_load_buffer_state ( void );
292e53c48bfSmrgstatic void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
293e53c48bfSmrg#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
294fd7d9bd3Smrg
295e53c48bfSmrgYY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
296e53c48bfSmrgYY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
297e53c48bfSmrgYY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
298fd7d9bd3Smrg
299e53c48bfSmrgvoid *yyalloc ( yy_size_t  );
300e53c48bfSmrgvoid *yyrealloc ( void *, yy_size_t  );
301e53c48bfSmrgvoid yyfree ( void *  );
302fd7d9bd3Smrg
303fd7d9bd3Smrg#define yy_new_buffer yy_create_buffer
304fd7d9bd3Smrg#define yy_set_interactive(is_interactive) \
305fd7d9bd3Smrg	{ \
306350952b9Smrg	if ( ! YY_CURRENT_BUFFER ){ \
307350952b9Smrg        yyensure_buffer_stack (); \
308350952b9Smrg		YY_CURRENT_BUFFER_LVALUE =    \
309e53c48bfSmrg            yy_create_buffer( yyin, YY_BUF_SIZE ); \
310350952b9Smrg	} \
311350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
312fd7d9bd3Smrg	}
313fd7d9bd3Smrg#define yy_set_bol(at_bol) \
314fd7d9bd3Smrg	{ \
315350952b9Smrg	if ( ! YY_CURRENT_BUFFER ){\
316350952b9Smrg        yyensure_buffer_stack (); \
317350952b9Smrg		YY_CURRENT_BUFFER_LVALUE =    \
318e53c48bfSmrg            yy_create_buffer( yyin, YY_BUF_SIZE ); \
319350952b9Smrg	} \
320350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
321fd7d9bd3Smrg	}
322350952b9Smrg#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
323350952b9Smrg
324350952b9Smrg/* Begin user sect3 */
325e53c48bfSmrgtypedef flex_uint8_t YY_CHAR;
326fd7d9bd3Smrg
327e53c48bfSmrgFILE *yyin = NULL, *yyout = NULL;
328350952b9Smrg
329fd7d9bd3Smrgtypedef int yy_state_type;
330350952b9Smrg
331350952b9Smrgextern int yylineno;
332350952b9Smrgint yylineno = 1;
333350952b9Smrg
334fd7d9bd3Smrgextern char *yytext;
335e53c48bfSmrg#ifdef yytext_ptr
336e53c48bfSmrg#undef yytext_ptr
337e53c48bfSmrg#endif
338fd7d9bd3Smrg#define yytext_ptr yytext
339fd7d9bd3Smrg
340e53c48bfSmrgstatic yy_state_type yy_get_previous_state ( void );
341e53c48bfSmrgstatic yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
342e53c48bfSmrgstatic int yy_get_next_buffer ( void );
343e53c48bfSmrgstatic void yynoreturn yy_fatal_error ( const char* msg  );
344fd7d9bd3Smrg
345fd7d9bd3Smrg/* Done after the current pattern has been matched and before the
346fd7d9bd3Smrg * corresponding action - sets up yytext.
347fd7d9bd3Smrg */
348fd7d9bd3Smrg#define YY_DO_BEFORE_ACTION \
349350952b9Smrg	(yytext_ptr) = yy_bp; \
350e53c48bfSmrg	yyleng = (int) (yy_cp - yy_bp); \
351350952b9Smrg	(yy_hold_char) = *yy_cp; \
352fd7d9bd3Smrg	*yy_cp = '\0'; \
353350952b9Smrg	(yy_c_buf_p) = yy_cp;
354fd7d9bd3Smrg#define YY_NUM_RULES 72
355fd7d9bd3Smrg#define YY_END_OF_BUFFER 73
356350952b9Smrg/* This struct is not used in this scanner,
357350952b9Smrg   but its presence is necessary. */
358350952b9Smrgstruct yy_trans_info
359350952b9Smrg	{
360350952b9Smrg	flex_int32_t yy_verify;
361350952b9Smrg	flex_int32_t yy_nxt;
362350952b9Smrg	};
363e53c48bfSmrgstatic const flex_int16_t yy_accept[420] =
364fd7d9bd3Smrg    {   0,
365fd7d9bd3Smrg        0,    0,   73,   70,   68,   69,   70,   70,   65,   70,
366fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
367fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
368fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
369fd7d9bd3Smrg       70,   70,    0,   66,   70,   70,    0,   67,   65,   70,
370fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
371fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
372fd7d9bd3Smrg       70,   70,   70,   70,   70,   10,   70,   70,   70,   70,
373fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
374fd7d9bd3Smrg       70,   70,   70,   70,   66,    0,   70,    0,   66,   70,
375fd7d9bd3Smrg
376fd7d9bd3Smrg        4,   70,   70,   70,   70,   70,   70,   70,   70,   70,
377fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
378fd7d9bd3Smrg       70,   70,   70,   70,   70,   11,   70,   70,   70,   70,
379fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,    1,   18,
380fd7d9bd3Smrg       70,   70,   70,   70,   70,    9,   70,   70,   66,    0,
381fd7d9bd3Smrg       70,   70,   70,   70,   70,   41,   70,   70,   70,    6,
382fd7d9bd3Smrg       70,   70,   70,   70,   70,   63,   70,   70,   70,   70,
383fd7d9bd3Smrg       70,   70,   70,   70,   17,    8,   70,   70,   70,   70,
384fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
385fd7d9bd3Smrg       19,   70,   70,    6,   70,   70,   70,   70,   70,   45,
386fd7d9bd3Smrg
387fd7d9bd3Smrg       70,   56,    3,   70,   70,   70,   70,   70,   12,   70,
388fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
389fd7d9bd3Smrg       70,   44,   70,   70,   70,   70,   70,   70,   70,   70,
390fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   46,
391fd7d9bd3Smrg       51,   70,   48,   70,   70,   70,   70,   70,   70,   70,
392fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
393fd7d9bd3Smrg       70,   70,   13,   70,   70,   70,   70,   70,   70,   70,
394fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   70,   70,
395fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   55,   70,   70,
396fd7d9bd3Smrg       70,   70,   70,   70,   70,   53,   70,   70,   70,   70,
397fd7d9bd3Smrg
398fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   40,   70,   70,   70,
399fd7d9bd3Smrg       70,   64,   70,   70,   26,   70,   70,   70,   70,   70,
400fd7d9bd3Smrg       70,   70,   70,   70,   54,   70,   70,   70,   39,   20,
401fd7d9bd3Smrg       70,   70,   62,   70,   70,   52,   70,   70,    2,   31,
402fd7d9bd3Smrg       70,   70,   70,   70,   70,   70,   70,   70,   57,   70,
403fd7d9bd3Smrg       70,   23,   70,   70,   70,   70,   70,   30,   49,   70,
404fd7d9bd3Smrg       70,   70,   70,   21,   70,   70,   47,   70,   70,   43,
405fd7d9bd3Smrg       36,   60,   37,   70,   70,   14,   61,   70,   70,   22,
406fd7d9bd3Smrg       70,   70,   70,   32,   70,   70,    5,   59,   70,   38,
407fd7d9bd3Smrg       70,   58,   70,   33,   70,   16,   70,   70,   70,   70,
408fd7d9bd3Smrg
409fd7d9bd3Smrg       34,   42,    7,   70,   27,   35,   70,   29,   70,   70,
410fd7d9bd3Smrg       24,   15,   70,   28,   70,   70,   25,   50,    0
411fd7d9bd3Smrg    } ;
412fd7d9bd3Smrg
413e53c48bfSmrgstatic const YY_CHAR yy_ec[256] =
414fd7d9bd3Smrg    {   0,
415fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
416fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
417fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
418fd7d9bd3Smrg        1,    2,    1,    4,    5,    1,    1,    1,    1,    1,
419fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    6,    7,    6,
420fd7d9bd3Smrg        6,    6,    6,    8,    6,    9,    6,    1,    1,    1,
421fd7d9bd3Smrg        1,    1,    1,    1,   10,   11,   12,   13,   14,   15,
422fd7d9bd3Smrg       16,    1,   17,   18,    1,   19,   20,   21,   22,   23,
423fd7d9bd3Smrg        1,   24,   25,   26,    1,    1,   27,   28,    1,    1,
424fd7d9bd3Smrg        1,   29,    1,    1,    1,    1,   30,   31,   32,   33,
425fd7d9bd3Smrg
426fd7d9bd3Smrg       34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
427fd7d9bd3Smrg       44,   45,   46,   47,   48,   49,   50,   51,   52,   53,
428fd7d9bd3Smrg       54,    1,    1,    1,    1,    1,    1,    1,    1,    1,
429fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
430fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
431fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
432fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
433fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
434fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
435fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
436fd7d9bd3Smrg
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
443fd7d9bd3Smrg    } ;
444fd7d9bd3Smrg
445e53c48bfSmrgstatic const YY_CHAR yy_meta[55] =
446fd7d9bd3Smrg    {   0,
447fd7d9bd3Smrg        1,    2,    2,    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,    1,    1,    1,    1,    1,
451fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
452fd7d9bd3Smrg        1,    1,    1,    1
453fd7d9bd3Smrg    } ;
454fd7d9bd3Smrg
455e53c48bfSmrgstatic const flex_int16_t yy_base[427] =
456fd7d9bd3Smrg    {   0,
457fd7d9bd3Smrg        0,    0,  498,    0,  499,  499,   53,   56,   54,   21,
458fd7d9bd3Smrg       35,   36,   37,   24,   34,  463,   44,  452,  457,  456,
459fd7d9bd3Smrg       44,   46,   56,   48,   61,   45,  455,  448,  461,   71,
460fd7d9bd3Smrg      460,  443,   58,  445,   69,  440,   70,  436,  451,  450,
461fd7d9bd3Smrg        0,  114,  103,    0,  117,  120,  480,  499,  118,  449,
462fd7d9bd3Smrg      449,  448,  428,  429,  432,  432,  441,  429,  425,  422,
463fd7d9bd3Smrg      421,  436,  428,   86,  425,  418,  436,  414,  426,  420,
464fd7d9bd3Smrg      413,  418,   87,  438,  429,  111,  411,  423,  426,  414,
465fd7d9bd3Smrg      410,  404,  402,  408,  401,  408,  410,  399,  405,  402,
466fd7d9bd3Smrg      397,  398,  401,   93,  499,  135,  145,  126,  148,  154,
467fd7d9bd3Smrg
468fd7d9bd3Smrg      136,  399,  400,  405,  389,  389,  389,  405,  380,  396,
469fd7d9bd3Smrg      401,  393,  387,  388,  379,  393,  394,  408,  388,  389,
470fd7d9bd3Smrg      379,  387,  386,  386,  373,    0,  398,  381,  369,  371,
471fd7d9bd3Smrg      379,  380,  386,  367,  355,  369,  390,  363,    0,    0,
472fd7d9bd3Smrg      367,  359,  354,  368,  368,    0,  346,  358,  137,  141,
473fd7d9bd3Smrg      355,  363,  352,  359,  353,    0,  344,  359,  344,  144,
474fd7d9bd3Smrg      349,  348,  337,  365,  139,    0,  350,  336,  342,  349,
475fd7d9bd3Smrg      335,  333,  111,  333,    0,    0,  349,  343,  327,  325,
476fd7d9bd3Smrg      324,  340,  332,  338,  165,  337,  328,  336,  335,  322,
477fd7d9bd3Smrg        0,  333,  327,  347,  121,  312,  311,  328,  313,    0,
478fd7d9bd3Smrg
479fd7d9bd3Smrg      305,    0,    0,  311,  314,  315,  317,  320,    0,  320,
480fd7d9bd3Smrg      308,  301,  301,  302,  310,  317,  320,  296,  295,  294,
481fd7d9bd3Smrg      304,    0,  293,  327,  305,  304,  303,  293,  297,  292,
482fd7d9bd3Smrg      286,  294,  293,  286,  295,  294,  293,  294,  295,    0,
483fd7d9bd3Smrg        0,  283,    0,  280,  288,  287,  286,  275,  277,  283,
484fd7d9bd3Smrg      265,  285,  266,  300,  279,  270,  269,  255,  264,  263,
485fd7d9bd3Smrg      270,  271,    0,  250,  249,  269,  252,  270,  274,  251,
486fd7d9bd3Smrg      250,  247,  263,  264,  261,  251,  248,  252,  257,  252,
487fd7d9bd3Smrg      234,  237,  249,  250,  247,  235,  234,    0,  230,  245,
488fd7d9bd3Smrg      248,  243,  233,  226,  244,    0,  219,  238,  230,  220,
489fd7d9bd3Smrg
490fd7d9bd3Smrg      226,  234,  214,  225,  224,  215,    0,  215,  213,  212,
491fd7d9bd3Smrg      212,    0,  225,  210,    0,  216,  222,  212,  205,  211,
492fd7d9bd3Smrg      203,  213,  216,  216,    0,  199,  199,  203,    0,    0,
493fd7d9bd3Smrg      198,  210,    0,  195,  206,    0,  207,  197,    0,    0,
494fd7d9bd3Smrg      190,  204,  203,  199,  198,  196,  199,  198,    0,  191,
495fd7d9bd3Smrg      155,    0,  181,  199,  194,  164,  184,    0,    0,  192,
496fd7d9bd3Smrg      191,  191,  174,    0,  185,  177,    0,  187,  169,    0,
497fd7d9bd3Smrg        0,    0,    0,  174,  185,    0,    0,  170,  182,    0,
498fd7d9bd3Smrg      172,  171,  205,    0,  176,  178,    0,    0,  176,    0,
499fd7d9bd3Smrg      166,    0,  200,    0,  162,    0,  174,  173,  168,  136,
500fd7d9bd3Smrg
501fd7d9bd3Smrg        0,    0,    0,  149,    0,    0,  140,    0,  123,  101,
502fd7d9bd3Smrg        0,    0,   80,    0,   75,   43,    0,    0,  499,   70,
503fd7d9bd3Smrg      191,  193,  195,  197,  199,  201
504fd7d9bd3Smrg    } ;
505fd7d9bd3Smrg
506e53c48bfSmrgstatic const flex_int16_t yy_def[427] =
507fd7d9bd3Smrg    {   0,
508fd7d9bd3Smrg      419,    1,  419,  420,  419,  419,  421,  422,  420,  420,
509fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
510fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
511fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
512fd7d9bd3Smrg      420,  421,  423,  420,  424,  422,  425,  419,  420,  420,
513fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
514fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
515fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
516fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
517fd7d9bd3Smrg      420,  420,  420,  420,  419,  426,  421,  423,  421,  424,
518fd7d9bd3Smrg
519fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
520fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  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,  423,  426,
524fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
525fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
526fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
527fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
528fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
529fd7d9bd3Smrg
530fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
531fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
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      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
538fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
539fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
540fd7d9bd3Smrg
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      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
549fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
550fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
551fd7d9bd3Smrg
552fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,  420,  420,
553fd7d9bd3Smrg      420,  420,  420,  420,  420,  420,  420,  420,    0,  419,
554fd7d9bd3Smrg      419,  419,  419,  419,  419,  419
555fd7d9bd3Smrg    } ;
556fd7d9bd3Smrg
557e53c48bfSmrgstatic const flex_int16_t yy_nxt[554] =
558fd7d9bd3Smrg    {   0,
559fd7d9bd3Smrg        4,    5,    6,    7,    8,    9,    9,    9,    9,   10,
560fd7d9bd3Smrg       11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
561fd7d9bd3Smrg       21,   22,   23,   24,   25,   26,   27,   28,    4,   10,
562fd7d9bd3Smrg       29,   30,   31,   32,   33,    4,    4,   34,   18,    4,
563fd7d9bd3Smrg       19,    4,   35,   36,   37,    4,   38,   39,   40,    4,
564fd7d9bd3Smrg        4,    4,   28,    4,   43,   43,   44,   47,   48,   49,
565fd7d9bd3Smrg       49,   49,   49,   50,   52,   55,   59,   51,   53,   61,
566fd7d9bd3Smrg       41,   63,   56,   72,   62,  418,   57,   64,   88,   58,
567fd7d9bd3Smrg       60,   45,   89,   65,   54,   67,   68,   73,   74,   77,
568fd7d9bd3Smrg       75,   83,   76,   78,   85,   93,   79,   84,   72,   80,
569fd7d9bd3Smrg
570fd7d9bd3Smrg       55,   64,   81,   77,   86,   82,   95,   65,  417,   87,
571fd7d9bd3Smrg       79,   57,   94,  416,   92,   43,   43,   44,   98,   43,
572fd7d9bd3Smrg       99,   47,   48,   49,   49,   49,   49,  130,  115,   95,
573fd7d9bd3Smrg      125,   96,  116,  126,  131,  127,  125,   43,  149,  126,
574fd7d9bd3Smrg       95,  415,   45,   43,  149,  100,   43,   43,   44,   43,
575fd7d9bd3Smrg       43,   44,  151,  204,   96,   98,   43,   99,  220,  152,
576fd7d9bd3Smrg      205,  211,  221,  150,  378,   96,  206,  212,  213,  150,
577fd7d9bd3Smrg      383,  414,  384,   45,  231,  393,   45,  394,  379,  232,
578fd7d9bd3Smrg      413,  412,  100,  233,  411,  212,  213,  234,  235,  236,
579fd7d9bd3Smrg      237,   42,   42,   46,   46,   43,   43,   97,   97,   47,
580fd7d9bd3Smrg
581fd7d9bd3Smrg       47,   98,   98,  410,  409,  408,  407,  406,  405,  404,
582fd7d9bd3Smrg      403,  402,  401,  400,  399,  398,  397,  396,  395,  392,
583fd7d9bd3Smrg      391,  390,  389,  388,  387,  386,  385,  382,  381,  380,
584fd7d9bd3Smrg      377,  376,  375,  374,  373,  372,  371,  370,  369,  368,
585fd7d9bd3Smrg      367,  366,  365,  364,  363,  362,  361,  360,  359,  358,
586fd7d9bd3Smrg      357,  356,  355,  354,  353,  352,  351,  350,  349,  348,
587fd7d9bd3Smrg      347,  346,  345,  344,  343,  342,  341,  340,  339,  338,
588fd7d9bd3Smrg      337,  336,  335,  334,  333,  332,  331,  330,  329,  328,
589fd7d9bd3Smrg      327,  326,  325,  324,  323,  322,  321,  320,  319,  318,
590fd7d9bd3Smrg      317,  316,  315,  314,  313,  312,  311,  310,  309,  308,
591fd7d9bd3Smrg
592fd7d9bd3Smrg      307,  306,  305,  304,  303,  302,  301,  300,  299,  298,
593fd7d9bd3Smrg      297,  296,  295,  294,  293,  292,  291,  290,  289,  288,
594fd7d9bd3Smrg      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
595fd7d9bd3Smrg      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
596fd7d9bd3Smrg      267,  266,  265,  264,  263,  262,  261,  260,  259,  258,
597fd7d9bd3Smrg      257,  256,  255,  254,  253,  252,  251,  250,  249,  248,
598fd7d9bd3Smrg      247,  246,  245,  205,  244,  243,  242,  241,  240,  239,
599fd7d9bd3Smrg      238,  230,  229,  228,  227,  226,  225,  224,  223,  222,
600fd7d9bd3Smrg      219,  218,  217,  216,  215,  214,  210,  209,  208,  207,
601fd7d9bd3Smrg      203,  202,  201,  200,  199,  198,  197,  196,  195,  194,
602fd7d9bd3Smrg
603fd7d9bd3Smrg      193,  192,  191,  190,  189,  188,  187,  186,  185,  184,
604fd7d9bd3Smrg      183,  182,  181,  180,  179,  178,  177,  176,  175,  174,
605fd7d9bd3Smrg      173,  172,  171,  170,  169,  168,  167,  166,  165,  164,
606fd7d9bd3Smrg      163,  162,  161,  160,  159,  158,  157,  156,  155,  154,
607fd7d9bd3Smrg      153,  148,  147,  146,  145,  144,  143,  142,  141,  140,
608fd7d9bd3Smrg      139,  138,  137,  136,  135,  134,  133,  132,  129,  128,
609fd7d9bd3Smrg      124,  123,  122,  121,  120,  119,  118,  117,  114,  113,
610fd7d9bd3Smrg      112,  111,  110,  109,  108,  107,  106,  105,  104,  103,
611fd7d9bd3Smrg      102,  101,   48,   88,   85,   84,   76,   68,   61,   59,
612fd7d9bd3Smrg       52,   91,   90,   71,   70,   69,   66,  419,    3,  419,
613fd7d9bd3Smrg
614fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
615fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
616fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
617fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
618fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
619fd7d9bd3Smrg      419,  419,  419
620fd7d9bd3Smrg    } ;
621fd7d9bd3Smrg
622e53c48bfSmrgstatic const flex_int16_t yy_chk[554] =
623fd7d9bd3Smrg    {   0,
624fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
625fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
626fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
627fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
628fd7d9bd3Smrg        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
629fd7d9bd3Smrg        1,    1,    1,    1,    7,    7,    7,    8,    8,    9,
630fd7d9bd3Smrg        9,    9,    9,   10,   11,   12,   13,   10,   11,   14,
631fd7d9bd3Smrg      420,   15,   12,   21,   14,  416,   12,   15,   26,   12,
632fd7d9bd3Smrg       13,    7,   26,   15,   11,   17,   17,   21,   22,   23,
633fd7d9bd3Smrg       22,   24,   22,   23,   25,   33,   23,   24,   35,   23,
634fd7d9bd3Smrg
635fd7d9bd3Smrg       30,   33,   23,   37,   25,   23,   43,   33,  415,   25,
636fd7d9bd3Smrg       37,   30,   35,  413,   30,   42,   42,   42,   45,   45,
637fd7d9bd3Smrg       45,   46,   46,   49,   49,   49,   49,   76,   64,   98,
638fd7d9bd3Smrg       73,   43,   64,   73,   76,   73,   94,   96,   96,   94,
639fd7d9bd3Smrg      149,  410,   42,  150,  150,   45,   97,   97,   97,   99,
640fd7d9bd3Smrg       99,   99,  101,  160,   98,  100,  100,  100,  173,  101,
641fd7d9bd3Smrg      160,  165,  173,   96,  351,  149,  160,  195,  195,  150,
642fd7d9bd3Smrg      356,  409,  356,   97,  185,  369,   99,  369,  351,  185,
643fd7d9bd3Smrg      407,  404,  100,  185,  400,  165,  165,  185,  185,  185,
644fd7d9bd3Smrg      185,  421,  421,  422,  422,  423,  423,  424,  424,  425,
645fd7d9bd3Smrg
646fd7d9bd3Smrg      425,  426,  426,  399,  398,  397,  395,  393,  391,  389,
647fd7d9bd3Smrg      386,  385,  383,  382,  381,  379,  378,  375,  374,  368,
648fd7d9bd3Smrg      366,  365,  363,  362,  361,  360,  357,  355,  354,  353,
649fd7d9bd3Smrg      350,  348,  347,  346,  345,  344,  343,  342,  341,  338,
650fd7d9bd3Smrg      337,  335,  334,  332,  331,  328,  327,  326,  324,  323,
651fd7d9bd3Smrg      322,  321,  320,  319,  318,  317,  316,  314,  313,  311,
652fd7d9bd3Smrg      310,  309,  308,  306,  305,  304,  303,  302,  301,  300,
653fd7d9bd3Smrg      299,  298,  297,  295,  294,  293,  292,  291,  290,  289,
654fd7d9bd3Smrg      287,  286,  285,  284,  283,  282,  281,  280,  279,  278,
655fd7d9bd3Smrg      277,  276,  275,  274,  273,  272,  271,  270,  269,  268,
656fd7d9bd3Smrg
657fd7d9bd3Smrg      267,  266,  265,  264,  262,  261,  260,  259,  258,  257,
658fd7d9bd3Smrg      256,  255,  254,  253,  252,  251,  250,  249,  248,  247,
659fd7d9bd3Smrg      246,  245,  244,  242,  239,  238,  237,  236,  235,  234,
660fd7d9bd3Smrg      233,  232,  231,  230,  229,  228,  227,  226,  225,  224,
661fd7d9bd3Smrg      223,  221,  220,  219,  218,  217,  216,  215,  214,  213,
662fd7d9bd3Smrg      212,  211,  210,  208,  207,  206,  205,  204,  201,  199,
663fd7d9bd3Smrg      198,  197,  196,  194,  193,  192,  190,  189,  188,  187,
664fd7d9bd3Smrg      186,  184,  183,  182,  181,  180,  179,  178,  177,  174,
665fd7d9bd3Smrg      172,  171,  170,  169,  168,  167,  164,  163,  162,  161,
666fd7d9bd3Smrg      159,  158,  157,  155,  154,  153,  152,  151,  148,  147,
667fd7d9bd3Smrg
668fd7d9bd3Smrg      145,  144,  143,  142,  141,  138,  137,  136,  135,  134,
669fd7d9bd3Smrg      133,  132,  131,  130,  129,  128,  127,  125,  124,  123,
670fd7d9bd3Smrg      122,  121,  120,  119,  118,  117,  116,  115,  114,  113,
671fd7d9bd3Smrg      112,  111,  110,  109,  108,  107,  106,  105,  104,  103,
672fd7d9bd3Smrg      102,   93,   92,   91,   90,   89,   88,   87,   86,   85,
673fd7d9bd3Smrg       84,   83,   82,   81,   80,   79,   78,   77,   75,   74,
674fd7d9bd3Smrg       72,   71,   70,   69,   68,   67,   66,   65,   63,   62,
675fd7d9bd3Smrg       61,   60,   59,   58,   57,   56,   55,   54,   53,   52,
676fd7d9bd3Smrg       51,   50,   47,   40,   39,   38,   36,   34,   32,   31,
677fd7d9bd3Smrg       29,   28,   27,   20,   19,   18,   16,    3,  419,  419,
678fd7d9bd3Smrg
679fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
680fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
681fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
682fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
683fd7d9bd3Smrg      419,  419,  419,  419,  419,  419,  419,  419,  419,  419,
684fd7d9bd3Smrg      419,  419,  419
685fd7d9bd3Smrg    } ;
686fd7d9bd3Smrg
687fd7d9bd3Smrgstatic yy_state_type yy_last_accepting_state;
688fd7d9bd3Smrgstatic char *yy_last_accepting_cpos;
689fd7d9bd3Smrg
690350952b9Smrgextern int yy_flex_debug;
691350952b9Smrgint yy_flex_debug = 0;
692350952b9Smrg
693fd7d9bd3Smrg/* The intent behind this definition is that it'll catch
694fd7d9bd3Smrg * any uses of REJECT which flex missed.
695fd7d9bd3Smrg */
696fd7d9bd3Smrg#define REJECT reject_used_but_not_detected
697fd7d9bd3Smrg#define yymore() yymore_used_but_not_detected
698fd7d9bd3Smrg#define YY_MORE_ADJ 0
699fd7d9bd3Smrg#define YY_RESTORE_YY_MORE_OFFSET
700fd7d9bd3Smrgchar *yytext;
701fd7d9bd3Smrg#line 1 "lex.l"
702fd7d9bd3Smrg/*
703fd7d9bd3Smrg** lex file for xgc syntax
704fd7d9bd3Smrg*/
705fd7d9bd3Smrg/* Lots of stuff stolen from gwm's wool.lex */
7069aa2a2b5Smrg#line 8 "lex.l"
707fd7d9bd3Smrg
708fd7d9bd3Smrg#include <X11/X.h>
709fd7d9bd3Smrg#include <stdlib.h>
710fd7d9bd3Smrg#include "gram.h"
711fd7d9bd3Smrg#include "constants.h"
712fd7d9bd3Smrg#if defined(FLEX_SCANNER) && !defined(YY_FLEX_LEX_COMPAT) && !defined(__UNIXOS2__)
713fd7d9bd3Smrgint yylineno;
714fd7d9bd3Smrg#endif
715e53c48bfSmrg#line 715 "lex.c"
716e53c48bfSmrg#line 716 "lex.c"
717350952b9Smrg
718350952b9Smrg#define INITIAL 0
719350952b9Smrg
720350952b9Smrg#ifndef YY_NO_UNISTD_H
721350952b9Smrg/* Special case for "unistd.h", since it is non-ANSI. We include it way
722350952b9Smrg * down here because we want the user's section 1 to have been scanned first.
723350952b9Smrg * The user has a chance to override it with an option.
724350952b9Smrg */
725350952b9Smrg#include <unistd.h>
726350952b9Smrg#endif
727350952b9Smrg
728350952b9Smrg#ifndef YY_EXTRA_TYPE
729350952b9Smrg#define YY_EXTRA_TYPE void *
730350952b9Smrg#endif
731350952b9Smrg
732e53c48bfSmrgstatic int yy_init_globals ( void );
733350952b9Smrg
734350952b9Smrg/* Accessor methods to globals.
735350952b9Smrg   These are made visible to non-reentrant scanners for convenience. */
736350952b9Smrg
737e53c48bfSmrgint yylex_destroy ( void );
738350952b9Smrg
739e53c48bfSmrgint yyget_debug ( void );
740350952b9Smrg
741e53c48bfSmrgvoid yyset_debug ( int debug_flag  );
742350952b9Smrg
743e53c48bfSmrgYY_EXTRA_TYPE yyget_extra ( void );
744350952b9Smrg
745e53c48bfSmrgvoid yyset_extra ( YY_EXTRA_TYPE user_defined  );
746350952b9Smrg
747e53c48bfSmrgFILE *yyget_in ( void );
748350952b9Smrg
749e53c48bfSmrgvoid yyset_in  ( FILE * _in_str  );
750350952b9Smrg
751e53c48bfSmrgFILE *yyget_out ( void );
752350952b9Smrg
753e53c48bfSmrgvoid yyset_out  ( FILE * _out_str  );
754350952b9Smrg
755e53c48bfSmrg			int yyget_leng ( void );
756350952b9Smrg
757e53c48bfSmrgchar *yyget_text ( void );
758350952b9Smrg
759e53c48bfSmrgint yyget_lineno ( void );
760350952b9Smrg
761e53c48bfSmrgvoid yyset_lineno ( int _line_number  );
762fd7d9bd3Smrg
763fd7d9bd3Smrg/* Macros after this point can all be overridden by user definitions in
764fd7d9bd3Smrg * section 1.
765fd7d9bd3Smrg */
766fd7d9bd3Smrg
767fd7d9bd3Smrg#ifndef YY_SKIP_YYWRAP
768fd7d9bd3Smrg#ifdef __cplusplus
769e53c48bfSmrgextern "C" int yywrap ( void );
770fd7d9bd3Smrg#else
771e53c48bfSmrgextern int yywrap ( void );
772fd7d9bd3Smrg#endif
773fd7d9bd3Smrg#endif
774fd7d9bd3Smrg
775e53c48bfSmrg#ifndef YY_NO_UNPUT
776350952b9Smrg
777e53c48bfSmrg    static void yyunput ( int c, char *buf_ptr  );
778e53c48bfSmrg
779e53c48bfSmrg#endif
780e53c48bfSmrg
781fd7d9bd3Smrg#ifndef yytext_ptr
782e53c48bfSmrgstatic void yy_flex_strncpy ( char *, const char *, int );
783fd7d9bd3Smrg#endif
784fd7d9bd3Smrg
785fd7d9bd3Smrg#ifdef YY_NEED_STRLEN
786e53c48bfSmrgstatic int yy_flex_strlen ( const char * );
787fd7d9bd3Smrg#endif
788fd7d9bd3Smrg
789fd7d9bd3Smrg#ifndef YY_NO_INPUT
790350952b9Smrg#ifdef __cplusplus
791e53c48bfSmrgstatic int yyinput ( void );
792fd7d9bd3Smrg#else
793e53c48bfSmrgstatic int input ( void );
794fd7d9bd3Smrg#endif
795fd7d9bd3Smrg
796fd7d9bd3Smrg#endif
797fd7d9bd3Smrg
798fd7d9bd3Smrg/* Amount of stuff to slurp up with each read. */
799fd7d9bd3Smrg#ifndef YY_READ_BUF_SIZE
800e53c48bfSmrg#ifdef __ia64__
801e53c48bfSmrg/* On IA-64, the buffer size is 16k, not 8k */
802e53c48bfSmrg#define YY_READ_BUF_SIZE 16384
803e53c48bfSmrg#else
804fd7d9bd3Smrg#define YY_READ_BUF_SIZE 8192
805e53c48bfSmrg#endif /* __ia64__ */
806fd7d9bd3Smrg#endif
807fd7d9bd3Smrg
808fd7d9bd3Smrg/* Copy whatever the last rule matched to the standard output. */
809fd7d9bd3Smrg#ifndef ECHO
810fd7d9bd3Smrg/* This used to be an fputs(), but since the string might contain NUL's,
811fd7d9bd3Smrg * we now use fwrite().
812fd7d9bd3Smrg */
813e53c48bfSmrg#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
814fd7d9bd3Smrg#endif
815fd7d9bd3Smrg
816fd7d9bd3Smrg/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
817fd7d9bd3Smrg * is returned in "result".
818fd7d9bd3Smrg */
819fd7d9bd3Smrg#ifndef YY_INPUT
820fd7d9bd3Smrg#define YY_INPUT(buf,result,max_size) \
821350952b9Smrg	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
822fd7d9bd3Smrg		{ \
823350952b9Smrg		int c = '*'; \
824350952b9Smrg		int n; \
825fd7d9bd3Smrg		for ( n = 0; n < max_size && \
826fd7d9bd3Smrg			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
827fd7d9bd3Smrg			buf[n] = (char) c; \
828fd7d9bd3Smrg		if ( c == '\n' ) \
829fd7d9bd3Smrg			buf[n++] = (char) c; \
830fd7d9bd3Smrg		if ( c == EOF && ferror( yyin ) ) \
831fd7d9bd3Smrg			YY_FATAL_ERROR( "input in flex scanner failed" ); \
832fd7d9bd3Smrg		result = n; \
833fd7d9bd3Smrg		} \
834350952b9Smrg	else \
835350952b9Smrg		{ \
836350952b9Smrg		errno=0; \
837e53c48bfSmrg		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
838350952b9Smrg			{ \
839350952b9Smrg			if( errno != EINTR) \
840350952b9Smrg				{ \
841350952b9Smrg				YY_FATAL_ERROR( "input in flex scanner failed" ); \
842350952b9Smrg				break; \
843350952b9Smrg				} \
844350952b9Smrg			errno=0; \
845350952b9Smrg			clearerr(yyin); \
846350952b9Smrg			} \
847350952b9Smrg		}\
848350952b9Smrg\
849350952b9Smrg
850fd7d9bd3Smrg#endif
851fd7d9bd3Smrg
852fd7d9bd3Smrg/* No semi-colon after return; correct usage is to write "yyterminate();" -
853fd7d9bd3Smrg * we don't want an extra ';' after the "return" because that will cause
854fd7d9bd3Smrg * some compilers to complain about unreachable statements.
855fd7d9bd3Smrg */
856fd7d9bd3Smrg#ifndef yyterminate
857fd7d9bd3Smrg#define yyterminate() return YY_NULL
858fd7d9bd3Smrg#endif
859fd7d9bd3Smrg
860fd7d9bd3Smrg/* Number of entries by which start-condition stack grows. */
861fd7d9bd3Smrg#ifndef YY_START_STACK_INCR
862fd7d9bd3Smrg#define YY_START_STACK_INCR 25
863fd7d9bd3Smrg#endif
864fd7d9bd3Smrg
865fd7d9bd3Smrg/* Report a fatal error. */
866fd7d9bd3Smrg#ifndef YY_FATAL_ERROR
867fd7d9bd3Smrg#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
868fd7d9bd3Smrg#endif
869fd7d9bd3Smrg
870350952b9Smrg/* end tables serialization structures and prototypes */
871350952b9Smrg
872fd7d9bd3Smrg/* Default declaration of generated scanner - a define so the user can
873fd7d9bd3Smrg * easily add parameters.
874fd7d9bd3Smrg */
875fd7d9bd3Smrg#ifndef YY_DECL
876350952b9Smrg#define YY_DECL_IS_OURS 1
877350952b9Smrg
878350952b9Smrgextern int yylex (void);
879350952b9Smrg
880350952b9Smrg#define YY_DECL int yylex (void)
881350952b9Smrg#endif /* !YY_DECL */
882fd7d9bd3Smrg
883fd7d9bd3Smrg/* Code executed at the beginning of each rule, after yytext and yyleng
884fd7d9bd3Smrg * have been set up.
885fd7d9bd3Smrg */
886fd7d9bd3Smrg#ifndef YY_USER_ACTION
887fd7d9bd3Smrg#define YY_USER_ACTION
888fd7d9bd3Smrg#endif
889fd7d9bd3Smrg
890fd7d9bd3Smrg/* Code executed at the end of each rule. */
891fd7d9bd3Smrg#ifndef YY_BREAK
892e53c48bfSmrg#define YY_BREAK /*LINTED*/break;
893fd7d9bd3Smrg#endif
894fd7d9bd3Smrg
895fd7d9bd3Smrg#define YY_RULE_SETUP \
896fd7d9bd3Smrg	YY_USER_ACTION
897fd7d9bd3Smrg
898350952b9Smrg/** The main scanner function which does all the work.
899350952b9Smrg */
900fd7d9bd3SmrgYY_DECL
901350952b9Smrg{
902e53c48bfSmrg	yy_state_type yy_current_state;
903e53c48bfSmrg	char *yy_cp, *yy_bp;
904e53c48bfSmrg	int yy_act;
905350952b9Smrg
906350952b9Smrg	if ( !(yy_init) )
907fd7d9bd3Smrg		{
908350952b9Smrg		(yy_init) = 1;
909fd7d9bd3Smrg
910fd7d9bd3Smrg#ifdef YY_USER_INIT
911fd7d9bd3Smrg		YY_USER_INIT;
912fd7d9bd3Smrg#endif
913fd7d9bd3Smrg
914350952b9Smrg		if ( ! (yy_start) )
915350952b9Smrg			(yy_start) = 1;	/* first start state */
916fd7d9bd3Smrg
917fd7d9bd3Smrg		if ( ! yyin )
918fd7d9bd3Smrg			yyin = stdin;
919fd7d9bd3Smrg
920fd7d9bd3Smrg		if ( ! yyout )
921fd7d9bd3Smrg			yyout = stdout;
922fd7d9bd3Smrg
923350952b9Smrg		if ( ! YY_CURRENT_BUFFER ) {
924350952b9Smrg			yyensure_buffer_stack ();
925350952b9Smrg			YY_CURRENT_BUFFER_LVALUE =
926e53c48bfSmrg				yy_create_buffer( yyin, YY_BUF_SIZE );
927350952b9Smrg		}
928fd7d9bd3Smrg
929e53c48bfSmrg		yy_load_buffer_state(  );
930fd7d9bd3Smrg		}
931fd7d9bd3Smrg
932e53c48bfSmrg	{
933e53c48bfSmrg#line 25 "lex.l"
934e53c48bfSmrg
935e53c48bfSmrg
936e53c48bfSmrg#line 936 "lex.c"
937e53c48bfSmrg
938e53c48bfSmrg	while ( /*CONSTCOND*/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			{
954e53c48bfSmrg			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 )
964e53c48bfSmrg					yy_c = yy_meta[yy_c];
965fd7d9bd3Smrg				}
966e53c48bfSmrg			yy_current_state = yy_nxt[yy_base[yy_current_state] + 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
9959aa2a2b5Smrg#line 27 "lex.l"
996fd7d9bd3Smrg{ return (RUN); }
997fd7d9bd3Smrg	YY_BREAK
998fd7d9bd3Smrgcase 2:
999fd7d9bd3SmrgYY_RULE_SETUP
10009aa2a2b5Smrg#line 29 "lex.l"
1001fd7d9bd3Smrg{ return (FUNCTION); }
1002fd7d9bd3Smrg	YY_BREAK
1003fd7d9bd3Smrgcase 3:
1004fd7d9bd3SmrgYY_RULE_SETUP
10059aa2a2b5Smrg#line 30 "lex.l"
1006fd7d9bd3Smrg{ yylval.num = GXclear;
1007fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1008fd7d9bd3Smrg	YY_BREAK
1009fd7d9bd3Smrgcase 4:
1010fd7d9bd3SmrgYY_RULE_SETUP
10119aa2a2b5Smrg#line 32 "lex.l"
1012fd7d9bd3Smrg{ yylval.num = GXand;
1013fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1014fd7d9bd3Smrg	YY_BREAK
1015fd7d9bd3Smrgcase 5:
1016fd7d9bd3SmrgYY_RULE_SETUP
10179aa2a2b5Smrg#line 34 "lex.l"
1018fd7d9bd3Smrg{ yylval.num = GXandReverse;
1019fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1020fd7d9bd3Smrg	YY_BREAK
1021fd7d9bd3Smrgcase 6:
1022fd7d9bd3SmrgYY_RULE_SETUP
10239aa2a2b5Smrg#line 36 "lex.l"
1024fd7d9bd3Smrg{ yylval.num = GXcopy;
1025fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1026fd7d9bd3Smrg	YY_BREAK
1027fd7d9bd3Smrgcase 7:
1028fd7d9bd3SmrgYY_RULE_SETUP
10299aa2a2b5Smrg#line 38 "lex.l"
1030fd7d9bd3Smrg{ yylval.num = GXandInverted;
1031fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1032fd7d9bd3Smrg	YY_BREAK
1033fd7d9bd3Smrgcase 8:
1034fd7d9bd3SmrgYY_RULE_SETUP
10359aa2a2b5Smrg#line 40 "lex.l"
1036fd7d9bd3Smrg{ yylval.num = GXnoop;
1037fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1038fd7d9bd3Smrg	YY_BREAK
1039fd7d9bd3Smrgcase 9:
1040fd7d9bd3SmrgYY_RULE_SETUP
10419aa2a2b5Smrg#line 42 "lex.l"
1042fd7d9bd3Smrg{ yylval.num = GXxor;
1043fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1044fd7d9bd3Smrg	YY_BREAK
1045fd7d9bd3Smrgcase 10:
1046fd7d9bd3SmrgYY_RULE_SETUP
10479aa2a2b5Smrg#line 44 "lex.l"
1048fd7d9bd3Smrg{ yylval.num = GXor;
1049fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1050fd7d9bd3Smrg	YY_BREAK
1051fd7d9bd3Smrgcase 11:
1052fd7d9bd3SmrgYY_RULE_SETUP
10539aa2a2b5Smrg#line 46 "lex.l"
1054fd7d9bd3Smrg{ yylval.num = GXnor;
1055fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1056fd7d9bd3Smrg	YY_BREAK
1057fd7d9bd3Smrgcase 12:
1058fd7d9bd3SmrgYY_RULE_SETUP
10599aa2a2b5Smrg#line 48 "lex.l"
1060fd7d9bd3Smrg{ yylval.num = GXequiv;
1061fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1062fd7d9bd3Smrg	YY_BREAK
1063fd7d9bd3Smrgcase 13:
1064fd7d9bd3SmrgYY_RULE_SETUP
10659aa2a2b5Smrg#line 50 "lex.l"
1066fd7d9bd3Smrg{ yylval.num = GXinvert;
1067fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1068fd7d9bd3Smrg	YY_BREAK
1069fd7d9bd3Smrgcase 14:
1070fd7d9bd3SmrgYY_RULE_SETUP
10719aa2a2b5Smrg#line 52 "lex.l"
1072fd7d9bd3Smrg{ yylval.num = GXorReverse;
1073fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1074fd7d9bd3Smrg	YY_BREAK
1075fd7d9bd3Smrgcase 15:
1076fd7d9bd3SmrgYY_RULE_SETUP
10779aa2a2b5Smrg#line 54 "lex.l"
1078fd7d9bd3Smrg{ yylval.num = GXcopyInverted;
1079fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1080fd7d9bd3Smrg	YY_BREAK
1081fd7d9bd3Smrgcase 16:
1082fd7d9bd3SmrgYY_RULE_SETUP
10839aa2a2b5Smrg#line 56 "lex.l"
1084fd7d9bd3Smrg{ yylval.num = GXorInverted;
1085fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1086fd7d9bd3Smrg	YY_BREAK
1087fd7d9bd3Smrgcase 17:
1088fd7d9bd3SmrgYY_RULE_SETUP
10899aa2a2b5Smrg#line 58 "lex.l"
1090fd7d9bd3Smrg{ yylval.num = GXnand;
1091fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1092fd7d9bd3Smrg	YY_BREAK
1093fd7d9bd3Smrgcase 18:
1094fd7d9bd3SmrgYY_RULE_SETUP
10959aa2a2b5Smrg#line 60 "lex.l"
1096fd7d9bd3Smrg{ yylval.num = GXset;
1097fd7d9bd3Smrg				  return (FUNCTIONTYPE); }
1098fd7d9bd3Smrg	YY_BREAK
1099fd7d9bd3Smrgcase 19:
1100fd7d9bd3SmrgYY_RULE_SETUP
11019aa2a2b5Smrg#line 63 "lex.l"
1102fd7d9bd3Smrg{ return (TEST); }
1103fd7d9bd3Smrg	YY_BREAK
1104fd7d9bd3Smrgcase 20:
1105fd7d9bd3SmrgYY_RULE_SETUP
11069aa2a2b5Smrg#line 64 "lex.l"
1107fd7d9bd3Smrg{ yylval.num = CopyArea;
1108fd7d9bd3Smrg				  return (TESTTYPE); }
1109fd7d9bd3Smrg	YY_BREAK
1110fd7d9bd3Smrgcase 21:
1111fd7d9bd3SmrgYY_RULE_SETUP
11129aa2a2b5Smrg#line 66 "lex.l"
1113fd7d9bd3Smrg{ yylval.num = CopyPlane;
1114fd7d9bd3Smrg				  return (TESTTYPE); }
1115fd7d9bd3Smrg	YY_BREAK
1116fd7d9bd3Smrgcase 22:
1117fd7d9bd3SmrgYY_RULE_SETUP
11189aa2a2b5Smrg#line 68 "lex.l"
1119fd7d9bd3Smrg{ yylval.num = PolyPoint;
1120fd7d9bd3Smrg				  return (TESTTYPE); }
1121fd7d9bd3Smrg	YY_BREAK
1122fd7d9bd3Smrgcase 23:
1123fd7d9bd3SmrgYY_RULE_SETUP
11249aa2a2b5Smrg#line 70 "lex.l"
1125fd7d9bd3Smrg{ yylval.num = PolyLine;
1126fd7d9bd3Smrg				  return (TESTTYPE); }
1127fd7d9bd3Smrg	YY_BREAK
1128fd7d9bd3Smrgcase 24:
1129fd7d9bd3SmrgYY_RULE_SETUP
11309aa2a2b5Smrg#line 72 "lex.l"
1131fd7d9bd3Smrg{ yylval.num = PolySegment;
1132fd7d9bd3Smrg				  return (TESTTYPE); }
1133fd7d9bd3Smrg	YY_BREAK
1134fd7d9bd3Smrgcase 25:
1135fd7d9bd3SmrgYY_RULE_SETUP
11369aa2a2b5Smrg#line 74 "lex.l"
1137fd7d9bd3Smrg{ yylval.num = PolyRectangle;
1138fd7d9bd3Smrg				  return (TESTTYPE); }
1139fd7d9bd3Smrg	YY_BREAK
1140fd7d9bd3Smrgcase 26:
1141fd7d9bd3SmrgYY_RULE_SETUP
11429aa2a2b5Smrg#line 76 "lex.l"
1143fd7d9bd3Smrg{ yylval.num = PolyArc;
1144fd7d9bd3Smrg				  return (TESTTYPE); }
1145fd7d9bd3Smrg	YY_BREAK
1146fd7d9bd3Smrgcase 27:
1147fd7d9bd3SmrgYY_RULE_SETUP
11489aa2a2b5Smrg#line 78 "lex.l"
1149fd7d9bd3Smrg{ yylval.num = FillPolygon;
1150fd7d9bd3Smrg				  return (TESTTYPE); }
1151fd7d9bd3Smrg	YY_BREAK
1152fd7d9bd3Smrgcase 28:
1153fd7d9bd3SmrgYY_RULE_SETUP
11549aa2a2b5Smrg#line 80 "lex.l"
1155fd7d9bd3Smrg{ yylval.num = PolyFillRect;
1156fd7d9bd3Smrg				  return (TESTTYPE); }
1157fd7d9bd3Smrg	YY_BREAK
1158fd7d9bd3Smrgcase 29:
1159fd7d9bd3SmrgYY_RULE_SETUP
11609aa2a2b5Smrg#line 82 "lex.l"
1161fd7d9bd3Smrg{ yylval.num = PolyFillArc;
1162fd7d9bd3Smrg				  return (TESTTYPE); }
1163fd7d9bd3Smrg	YY_BREAK
1164fd7d9bd3Smrgcase 30:
1165fd7d9bd3SmrgYY_RULE_SETUP
11669aa2a2b5Smrg#line 84 "lex.l"
1167fd7d9bd3Smrg{ yylval.num = PutImage;
1168fd7d9bd3Smrg				  return (TESTTYPE); }
1169fd7d9bd3Smrg	YY_BREAK
1170fd7d9bd3Smrgcase 31:
1171fd7d9bd3SmrgYY_RULE_SETUP
11729aa2a2b5Smrg#line 86 "lex.l"
1173fd7d9bd3Smrg{ yylval.num = GetImage;
1174fd7d9bd3Smrg				  return (TESTTYPE); }
1175fd7d9bd3Smrg	YY_BREAK
1176fd7d9bd3Smrgcase 32:
1177fd7d9bd3SmrgYY_RULE_SETUP
11789aa2a2b5Smrg#line 88 "lex.l"
1179fd7d9bd3Smrg{ yylval.num = PolyText8;
1180fd7d9bd3Smrg				  return (TESTTYPE); }
1181fd7d9bd3Smrg	YY_BREAK
1182fd7d9bd3Smrgcase 33:
1183fd7d9bd3SmrgYY_RULE_SETUP
11849aa2a2b5Smrg#line 90 "lex.l"
1185fd7d9bd3Smrg{ yylval.num = ImageText8;
1186fd7d9bd3Smrg				  return (TESTTYPE); }
1187fd7d9bd3Smrg	YY_BREAK
1188fd7d9bd3Smrgcase 34:
1189fd7d9bd3SmrgYY_RULE_SETUP
11909aa2a2b5Smrg#line 92 "lex.l"
1191fd7d9bd3Smrg{ yylval.num = PolyText16;
1192fd7d9bd3Smrg				  return (TESTTYPE); }
1193fd7d9bd3Smrg	YY_BREAK
1194fd7d9bd3Smrgcase 35:
1195fd7d9bd3SmrgYY_RULE_SETUP
11969aa2a2b5Smrg#line 94 "lex.l"
1197fd7d9bd3Smrg{ yylval.num = ImageText16;
1198fd7d9bd3Smrg				  return (TESTTYPE); }
1199fd7d9bd3Smrg	YY_BREAK
1200fd7d9bd3Smrgcase 36:
1201fd7d9bd3SmrgYY_RULE_SETUP
12029aa2a2b5Smrg#line 97 "lex.l"
1203fd7d9bd3Smrg{ return (LINESTYLE); }
1204fd7d9bd3Smrg	YY_BREAK
1205fd7d9bd3Smrgcase 37:
1206fd7d9bd3SmrgYY_RULE_SETUP
12079aa2a2b5Smrg#line 98 "lex.l"
1208fd7d9bd3Smrg{ yylval.num = LineOnOffDash;
1209fd7d9bd3Smrg				  return (LINESTYLETYPE); }
1210fd7d9bd3Smrg	YY_BREAK
1211fd7d9bd3Smrgcase 38:
1212fd7d9bd3SmrgYY_RULE_SETUP
12139aa2a2b5Smrg#line 100 "lex.l"
1214fd7d9bd3Smrg{ yylval.num = LineDoubleDash;
1215fd7d9bd3Smrg				  return (LINESTYLETYPE); }
1216fd7d9bd3Smrg	YY_BREAK
1217fd7d9bd3Smrgcase 39:
1218fd7d9bd3SmrgYY_RULE_SETUP
12199aa2a2b5Smrg#line 103 "lex.l"
1220fd7d9bd3Smrg{ return (CAPSTYLE); }
1221fd7d9bd3Smrg	YY_BREAK
1222fd7d9bd3Smrgcase 40:
1223fd7d9bd3SmrgYY_RULE_SETUP
12249aa2a2b5Smrg#line 104 "lex.l"
1225fd7d9bd3Smrg{ yylval.num = CapNotLast;
1226fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
1227fd7d9bd3Smrg	YY_BREAK
1228fd7d9bd3Smrgcase 41:
1229fd7d9bd3SmrgYY_RULE_SETUP
12309aa2a2b5Smrg#line 106 "lex.l"
1231fd7d9bd3Smrg{ yylval.num = CapButt;
1232fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
1233fd7d9bd3Smrg	YY_BREAK
1234fd7d9bd3Smrgcase 42:
1235fd7d9bd3SmrgYY_RULE_SETUP
12369aa2a2b5Smrg#line 108 "lex.l"
1237fd7d9bd3Smrg{ yylval.num = CapProjecting;
1238fd7d9bd3Smrg				  return (CAPSTYLETYPE); }
1239fd7d9bd3Smrg	YY_BREAK
1240fd7d9bd3Smrgcase 43:
1241fd7d9bd3SmrgYY_RULE_SETUP
12429aa2a2b5Smrg#line 111 "lex.l"
1243fd7d9bd3Smrg{ return (JOINSTYLE); }
1244fd7d9bd3Smrg	YY_BREAK
1245fd7d9bd3Smrgcase 44:
1246fd7d9bd3SmrgYY_RULE_SETUP
12479aa2a2b5Smrg#line 112 "lex.l"
1248fd7d9bd3Smrg{ yylval.num = JoinMiter;
1249fd7d9bd3Smrg				  return (JOINSTYLETYPE); }
1250fd7d9bd3Smrg	YY_BREAK
1251fd7d9bd3Smrgcase 45:
1252fd7d9bd3SmrgYY_RULE_SETUP
12539aa2a2b5Smrg#line 114 "lex.l"
1254fd7d9bd3Smrg{ yylval.num = JoinBevel;
1255fd7d9bd3Smrg				  return (JOINSTYLETYPE); }
1256fd7d9bd3Smrg	YY_BREAK
1257fd7d9bd3Smrgcase 46:
1258fd7d9bd3SmrgYY_RULE_SETUP
12599aa2a2b5Smrg#line 117 "lex.l"
1260fd7d9bd3Smrg{ return (ROUND); }
1261fd7d9bd3Smrg	YY_BREAK
1262fd7d9bd3Smrgcase 47:
1263fd7d9bd3SmrgYY_RULE_SETUP
12649aa2a2b5Smrg#line 119 "lex.l"
1265fd7d9bd3Smrg{ return (FILLSTYLE); }
1266fd7d9bd3Smrg	YY_BREAK
1267fd7d9bd3Smrgcase 48:
1268fd7d9bd3SmrgYY_RULE_SETUP
12699aa2a2b5Smrg#line 120 "lex.l"
1270fd7d9bd3Smrg{ yylval.num = FillTiled;
1271fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
1272fd7d9bd3Smrg	YY_BREAK
1273fd7d9bd3Smrgcase 49:
1274fd7d9bd3SmrgYY_RULE_SETUP
12759aa2a2b5Smrg#line 122 "lex.l"
1276fd7d9bd3Smrg{ yylval.num = FillStippled;
1277fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
1278fd7d9bd3Smrg	YY_BREAK
1279fd7d9bd3Smrgcase 50:
1280fd7d9bd3SmrgYY_RULE_SETUP
12819aa2a2b5Smrg#line 124 "lex.l"
1282fd7d9bd3Smrg{ yylval.num = FillOpaqueStippled;
1283fd7d9bd3Smrg				  return (FILLSTYLETYPE); }
1284fd7d9bd3Smrg	YY_BREAK
1285fd7d9bd3Smrgcase 51:
1286fd7d9bd3SmrgYY_RULE_SETUP
12879aa2a2b5Smrg#line 127 "lex.l"
1288fd7d9bd3Smrg{ return (SOLID); }
1289fd7d9bd3Smrg	YY_BREAK
1290fd7d9bd3Smrgcase 52:
1291fd7d9bd3SmrgYY_RULE_SETUP
12929aa2a2b5Smrg#line 129 "lex.l"
1293fd7d9bd3Smrg{ return (FILLRULE); }
1294fd7d9bd3Smrg	YY_BREAK
1295fd7d9bd3Smrgcase 53:
1296fd7d9bd3SmrgYY_RULE_SETUP
12979aa2a2b5Smrg#line 130 "lex.l"
1298fd7d9bd3Smrg{ yylval.num = EvenOddRule;
1299fd7d9bd3Smrg				  return (FILLRULETYPE); }
1300fd7d9bd3Smrg	YY_BREAK
1301fd7d9bd3Smrgcase 54:
1302fd7d9bd3SmrgYY_RULE_SETUP
13039aa2a2b5Smrg#line 132 "lex.l"
1304fd7d9bd3Smrg{ yylval.num = WindingRule;
1305fd7d9bd3Smrg				  return (FILLRULETYPE); }
1306fd7d9bd3Smrg	YY_BREAK
1307fd7d9bd3Smrgcase 55:
1308fd7d9bd3SmrgYY_RULE_SETUP
13099aa2a2b5Smrg#line 135 "lex.l"
1310fd7d9bd3Smrg{ return (ARCMODE); }
1311fd7d9bd3Smrg	YY_BREAK
1312fd7d9bd3Smrgcase 56:
1313fd7d9bd3SmrgYY_RULE_SETUP
13149aa2a2b5Smrg#line 136 "lex.l"
1315fd7d9bd3Smrg{ yylval.num = ArcChord;
1316fd7d9bd3Smrg				  return (ARCMODETYPE); }
1317fd7d9bd3Smrg	YY_BREAK
1318fd7d9bd3Smrgcase 57:
1319fd7d9bd3SmrgYY_RULE_SETUP
13209aa2a2b5Smrg#line 138 "lex.l"
1321fd7d9bd3Smrg{ yylval.num = ArcPieSlice;
1322fd7d9bd3Smrg				  return (ARCMODETYPE); }
1323fd7d9bd3Smrg	YY_BREAK
1324fd7d9bd3Smrgcase 58:
1325fd7d9bd3SmrgYY_RULE_SETUP
13269aa2a2b5Smrg#line 141 "lex.l"
1327fd7d9bd3Smrg{ return (FOREGROUND); }
1328fd7d9bd3Smrg	YY_BREAK
1329fd7d9bd3Smrgcase 59:
1330fd7d9bd3SmrgYY_RULE_SETUP
13319aa2a2b5Smrg#line 142 "lex.l"
1332fd7d9bd3Smrg{ return (BACKGROUND); }
1333fd7d9bd3Smrg	YY_BREAK
1334fd7d9bd3Smrgcase 60:
1335fd7d9bd3SmrgYY_RULE_SETUP
13369aa2a2b5Smrg#line 143 "lex.l"
1337fd7d9bd3Smrg{ return (LINEWIDTH); }
1338fd7d9bd3Smrg	YY_BREAK
1339fd7d9bd3Smrgcase 61:
1340fd7d9bd3SmrgYY_RULE_SETUP
13419aa2a2b5Smrg#line 144 "lex.l"
1342fd7d9bd3Smrg{ return (PLANEMASK); }
1343fd7d9bd3Smrg	YY_BREAK
1344fd7d9bd3Smrgcase 62:
1345fd7d9bd3SmrgYY_RULE_SETUP
13469aa2a2b5Smrg#line 145 "lex.l"
1347fd7d9bd3Smrg{ return (DASHLIST); }
1348fd7d9bd3Smrg	YY_BREAK
1349fd7d9bd3Smrgcase 63:
1350fd7d9bd3SmrgYY_RULE_SETUP
13519aa2a2b5Smrg#line 146 "lex.l"
1352fd7d9bd3Smrg{ return (FONT); }
1353fd7d9bd3Smrg	YY_BREAK
1354fd7d9bd3Smrgcase 64:
1355fd7d9bd3SmrgYY_RULE_SETUP
13569aa2a2b5Smrg#line 147 "lex.l"
1357fd7d9bd3Smrg{ return (PERCENT); }
1358fd7d9bd3Smrg	YY_BREAK
1359fd7d9bd3Smrgcase 65:
1360fd7d9bd3SmrgYY_RULE_SETUP
13619aa2a2b5Smrg#line 149 "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
13689aa2a2b5Smrg#line 151 "lex.l"
1369fd7d9bd3Smrg{ yylval.ptr = (char *) yytext;
1370fd7d9bd3Smrg				  return (STRING); }
1371fd7d9bd3Smrg	YY_BREAK
1372fd7d9bd3Smrgcase 67:
1373350952b9Smrg/* rule 67 can match eol */
1374fd7d9bd3SmrgYY_RULE_SETUP
13759aa2a2b5Smrg#line 153 "lex.l"
1376fd7d9bd3Smrg{ ; }
1377fd7d9bd3Smrg	YY_BREAK
1378fd7d9bd3Smrgcase 68:
1379fd7d9bd3SmrgYY_RULE_SETUP
13809aa2a2b5Smrg#line 154 "lex.l"
1381fd7d9bd3Smrg{ ; }
1382fd7d9bd3Smrg	YY_BREAK
1383fd7d9bd3Smrgcase 69:
1384350952b9Smrg/* rule 69 can match eol */
1385fd7d9bd3SmrgYY_RULE_SETUP
13869aa2a2b5Smrg#line 155 "lex.l"
1387fd7d9bd3Smrg{ return ('\n'); }
1388fd7d9bd3Smrg	YY_BREAK
1389fd7d9bd3Smrgcase 70:
1390fd7d9bd3SmrgYY_RULE_SETUP
13919aa2a2b5Smrg#line 157 "lex.l"
1392fd7d9bd3Smrg{ yylval.ptr = (char *) yytext;
1393fd7d9bd3Smrg				  return (STRING); }
1394fd7d9bd3Smrg	YY_BREAK
1395fd7d9bd3Smrgcase 71:
1396fd7d9bd3SmrgYY_RULE_SETUP
13979aa2a2b5Smrg#line 160 "lex.l"
1398fd7d9bd3Smrg{ fprintf(stderr,
1399fd7d9bd3Smrg					"xgc: bad character `%s', line %d\n",
1400fd7d9bd3Smrg					yytext, yylineno); }
1401fd7d9bd3Smrg	YY_BREAK
1402fd7d9bd3Smrgcase 72:
1403fd7d9bd3SmrgYY_RULE_SETUP
14049aa2a2b5Smrg#line 164 "lex.l"
1405fd7d9bd3SmrgECHO;
1406fd7d9bd3Smrg	YY_BREAK
1407e53c48bfSmrg#line 1407 "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
1485e53c48bfSmrg				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 */
1538e53c48bfSmrg	} /* end of user's declarations */
1539350952b9Smrg} /* end of yylex */
1540fd7d9bd3Smrg
1541fd7d9bd3Smrg/* yy_get_next_buffer - try to read in a new buffer
1542fd7d9bd3Smrg *
1543fd7d9bd3Smrg * Returns a code representing an action:
1544fd7d9bd3Smrg *	EOB_ACT_LAST_MATCH -
1545fd7d9bd3Smrg *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1546fd7d9bd3Smrg *	EOB_ACT_END_OF_FILE - end of file
1547fd7d9bd3Smrg */
1548350952b9Smrgstatic int yy_get_next_buffer (void)
1549350952b9Smrg{
1550e53c48bfSmrg    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1551e53c48bfSmrg	char *source = (yytext_ptr);
1552e53c48bfSmrg	int number_to_move, i;
1553fd7d9bd3Smrg	int ret_val;
1554fd7d9bd3Smrg
1555350952b9Smrg	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1556fd7d9bd3Smrg		YY_FATAL_ERROR(
1557fd7d9bd3Smrg		"fatal flex scanner internal error--end of buffer missed" );
1558fd7d9bd3Smrg
1559350952b9Smrg	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1560fd7d9bd3Smrg		{ /* Don't try to fill the buffer, so this is an EOF. */
1561350952b9Smrg		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1562fd7d9bd3Smrg			{
1563fd7d9bd3Smrg			/* We matched a single character, the EOB, so
1564fd7d9bd3Smrg			 * treat this as a final EOF.
1565fd7d9bd3Smrg			 */
1566fd7d9bd3Smrg			return EOB_ACT_END_OF_FILE;
1567fd7d9bd3Smrg			}
1568fd7d9bd3Smrg
1569fd7d9bd3Smrg		else
1570fd7d9bd3Smrg			{
1571fd7d9bd3Smrg			/* We matched some text prior to the EOB, first
1572fd7d9bd3Smrg			 * process it.
1573fd7d9bd3Smrg			 */
1574fd7d9bd3Smrg			return EOB_ACT_LAST_MATCH;
1575fd7d9bd3Smrg			}
1576fd7d9bd3Smrg		}
1577fd7d9bd3Smrg
1578fd7d9bd3Smrg	/* Try to read more data. */
1579fd7d9bd3Smrg
1580fd7d9bd3Smrg	/* First move last chars to start of buffer. */
1581e53c48bfSmrg	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1582fd7d9bd3Smrg
1583fd7d9bd3Smrg	for ( i = 0; i < number_to_move; ++i )
1584fd7d9bd3Smrg		*(dest++) = *(source++);
1585fd7d9bd3Smrg
1586350952b9Smrg	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1587fd7d9bd3Smrg		/* don't do the read, it's not guaranteed to return an EOF,
1588fd7d9bd3Smrg		 * just force an EOF
1589fd7d9bd3Smrg		 */
1590350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1591fd7d9bd3Smrg
1592fd7d9bd3Smrg	else
1593fd7d9bd3Smrg		{
1594350952b9Smrg			int num_to_read =
1595350952b9Smrg			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1596fd7d9bd3Smrg
1597fd7d9bd3Smrg		while ( num_to_read <= 0 )
1598fd7d9bd3Smrg			{ /* Not enough room in the buffer - grow it. */
1599fd7d9bd3Smrg
1600fd7d9bd3Smrg			/* just a shorter name for the current buffer */
1601e53c48bfSmrg			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1602fd7d9bd3Smrg
1603fd7d9bd3Smrg			int yy_c_buf_p_offset =
1604350952b9Smrg				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1605fd7d9bd3Smrg
1606fd7d9bd3Smrg			if ( b->yy_is_our_buffer )
1607fd7d9bd3Smrg				{
1608fd7d9bd3Smrg				int new_size = b->yy_buf_size * 2;
1609fd7d9bd3Smrg
1610fd7d9bd3Smrg				if ( new_size <= 0 )
1611fd7d9bd3Smrg					b->yy_buf_size += b->yy_buf_size / 8;
1612fd7d9bd3Smrg				else
1613fd7d9bd3Smrg					b->yy_buf_size *= 2;
1614fd7d9bd3Smrg
1615fd7d9bd3Smrg				b->yy_ch_buf = (char *)
1616fd7d9bd3Smrg					/* Include room in for 2 EOB chars. */
1617e53c48bfSmrg					yyrealloc( (void *) b->yy_ch_buf,
1618e53c48bfSmrg							 (yy_size_t) (b->yy_buf_size + 2)  );
1619fd7d9bd3Smrg				}
1620fd7d9bd3Smrg			else
1621fd7d9bd3Smrg				/* Can't grow it, we don't own it. */
1622e53c48bfSmrg				b->yy_ch_buf = NULL;
1623fd7d9bd3Smrg
1624fd7d9bd3Smrg			if ( ! b->yy_ch_buf )
1625fd7d9bd3Smrg				YY_FATAL_ERROR(
1626fd7d9bd3Smrg				"fatal error - scanner input buffer overflow" );
1627fd7d9bd3Smrg
1628350952b9Smrg			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1629fd7d9bd3Smrg
1630350952b9Smrg			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1631fd7d9bd3Smrg						number_to_move - 1;
1632350952b9Smrg
1633fd7d9bd3Smrg			}
1634fd7d9bd3Smrg
1635fd7d9bd3Smrg		if ( num_to_read > YY_READ_BUF_SIZE )
1636fd7d9bd3Smrg			num_to_read = YY_READ_BUF_SIZE;
1637fd7d9bd3Smrg
1638fd7d9bd3Smrg		/* Read in more data. */
1639350952b9Smrg		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1640e53c48bfSmrg			(yy_n_chars), num_to_read );
1641fd7d9bd3Smrg
1642350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1643fd7d9bd3Smrg		}
1644fd7d9bd3Smrg
1645350952b9Smrg	if ( (yy_n_chars) == 0 )
1646fd7d9bd3Smrg		{
1647fd7d9bd3Smrg		if ( number_to_move == YY_MORE_ADJ )
1648fd7d9bd3Smrg			{
1649fd7d9bd3Smrg			ret_val = EOB_ACT_END_OF_FILE;
1650e53c48bfSmrg			yyrestart( yyin  );
1651fd7d9bd3Smrg			}
1652fd7d9bd3Smrg
1653fd7d9bd3Smrg		else
1654fd7d9bd3Smrg			{
1655fd7d9bd3Smrg			ret_val = EOB_ACT_LAST_MATCH;
1656350952b9Smrg			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1657fd7d9bd3Smrg				YY_BUFFER_EOF_PENDING;
1658fd7d9bd3Smrg			}
1659fd7d9bd3Smrg		}
1660fd7d9bd3Smrg
1661fd7d9bd3Smrg	else
1662fd7d9bd3Smrg		ret_val = EOB_ACT_CONTINUE_SCAN;
1663fd7d9bd3Smrg
1664e53c48bfSmrg	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1665350952b9Smrg		/* Extend the array by 50%, plus the number we really need. */
1666e53c48bfSmrg		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1667e53c48bfSmrg		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
1668e53c48bfSmrg			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
1669350952b9Smrg		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1670350952b9Smrg			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1671e53c48bfSmrg		/* "- 2" to take care of EOB's */
1672e53c48bfSmrg		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1673350952b9Smrg	}
1674350952b9Smrg
1675350952b9Smrg	(yy_n_chars) += number_to_move;
1676350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1677350952b9Smrg	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1678fd7d9bd3Smrg
1679350952b9Smrg	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1680fd7d9bd3Smrg
1681fd7d9bd3Smrg	return ret_val;
1682350952b9Smrg}
1683fd7d9bd3Smrg
1684fd7d9bd3Smrg/* yy_get_previous_state - get the state just before the EOB char was reached */
1685fd7d9bd3Smrg
1686350952b9Smrg    static yy_state_type yy_get_previous_state (void)
1687350952b9Smrg{
1688e53c48bfSmrg	yy_state_type yy_current_state;
1689e53c48bfSmrg	char *yy_cp;
1690350952b9Smrg
1691350952b9Smrg	yy_current_state = (yy_start);
1692fd7d9bd3Smrg
1693350952b9Smrg	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1694fd7d9bd3Smrg		{
1695e53c48bfSmrg		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1696fd7d9bd3Smrg		if ( yy_accept[yy_current_state] )
1697fd7d9bd3Smrg			{
1698350952b9Smrg			(yy_last_accepting_state) = yy_current_state;
1699350952b9Smrg			(yy_last_accepting_cpos) = yy_cp;
1700fd7d9bd3Smrg			}
1701fd7d9bd3Smrg		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1702fd7d9bd3Smrg			{
1703fd7d9bd3Smrg			yy_current_state = (int) yy_def[yy_current_state];
1704fd7d9bd3Smrg			if ( yy_current_state >= 420 )
1705e53c48bfSmrg				yy_c = yy_meta[yy_c];
1706fd7d9bd3Smrg			}
1707e53c48bfSmrg		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1708fd7d9bd3Smrg		}
1709fd7d9bd3Smrg
1710fd7d9bd3Smrg	return yy_current_state;
1711350952b9Smrg}
1712fd7d9bd3Smrg
1713fd7d9bd3Smrg/* yy_try_NUL_trans - try to make a transition on the NUL character
1714fd7d9bd3Smrg *
1715fd7d9bd3Smrg * synopsis
1716fd7d9bd3Smrg *	next_state = yy_try_NUL_trans( current_state );
1717fd7d9bd3Smrg */
1718350952b9Smrg    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1719350952b9Smrg{
1720e53c48bfSmrg	int yy_is_jam;
1721e53c48bfSmrg    	char *yy_cp = (yy_c_buf_p);
1722fd7d9bd3Smrg
1723e53c48bfSmrg	YY_CHAR yy_c = 1;
1724fd7d9bd3Smrg	if ( yy_accept[yy_current_state] )
1725fd7d9bd3Smrg		{
1726350952b9Smrg		(yy_last_accepting_state) = yy_current_state;
1727350952b9Smrg		(yy_last_accepting_cpos) = yy_cp;
1728fd7d9bd3Smrg		}
1729fd7d9bd3Smrg	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1730fd7d9bd3Smrg		{
1731fd7d9bd3Smrg		yy_current_state = (int) yy_def[yy_current_state];
1732fd7d9bd3Smrg		if ( yy_current_state >= 420 )
1733e53c48bfSmrg			yy_c = yy_meta[yy_c];
1734fd7d9bd3Smrg		}
1735e53c48bfSmrg	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1736fd7d9bd3Smrg	yy_is_jam = (yy_current_state == 419);
1737fd7d9bd3Smrg
1738e53c48bfSmrg		return yy_is_jam ? 0 : yy_current_state;
1739350952b9Smrg}
1740fd7d9bd3Smrg
1741e53c48bfSmrg#ifndef YY_NO_UNPUT
1742e53c48bfSmrg
1743e53c48bfSmrg    static void yyunput (int c, char * yy_bp )
1744350952b9Smrg{
1745e53c48bfSmrg	char *yy_cp;
1746350952b9Smrg
1747350952b9Smrg    yy_cp = (yy_c_buf_p);
1748fd7d9bd3Smrg
1749fd7d9bd3Smrg	/* undo effects of setting up yytext */
1750350952b9Smrg	*yy_cp = (yy_hold_char);
1751fd7d9bd3Smrg
1752350952b9Smrg	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1753fd7d9bd3Smrg		{ /* need to shift things up to make room */
1754fd7d9bd3Smrg		/* +2 for EOB chars. */
1755e53c48bfSmrg		int number_to_move = (yy_n_chars) + 2;
1756e53c48bfSmrg		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1757350952b9Smrg					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1758e53c48bfSmrg		char *source =
1759350952b9Smrg				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1760fd7d9bd3Smrg
1761350952b9Smrg		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1762fd7d9bd3Smrg			*--dest = *--source;
1763fd7d9bd3Smrg
1764fd7d9bd3Smrg		yy_cp += (int) (dest - source);
1765fd7d9bd3Smrg		yy_bp += (int) (dest - source);
1766350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1767e53c48bfSmrg			(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1768fd7d9bd3Smrg
1769350952b9Smrg		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1770fd7d9bd3Smrg			YY_FATAL_ERROR( "flex scanner push-back overflow" );
1771fd7d9bd3Smrg		}
1772fd7d9bd3Smrg
1773fd7d9bd3Smrg	*--yy_cp = (char) c;
1774fd7d9bd3Smrg
1775350952b9Smrg	(yytext_ptr) = yy_bp;
1776350952b9Smrg	(yy_hold_char) = *yy_cp;
1777350952b9Smrg	(yy_c_buf_p) = yy_cp;
1778350952b9Smrg}
1779fd7d9bd3Smrg
1780e53c48bfSmrg#endif
1781e53c48bfSmrg
1782fd7d9bd3Smrg#ifndef YY_NO_INPUT
1783fd7d9bd3Smrg#ifdef __cplusplus
1784350952b9Smrg    static int yyinput (void)
1785fd7d9bd3Smrg#else
1786350952b9Smrg    static int input  (void)
1787fd7d9bd3Smrg#endif
1788fd7d9bd3Smrg
1789350952b9Smrg{
1790350952b9Smrg	int c;
1791350952b9Smrg
1792350952b9Smrg	*(yy_c_buf_p) = (yy_hold_char);
1793fd7d9bd3Smrg
1794350952b9Smrg	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1795fd7d9bd3Smrg		{
1796fd7d9bd3Smrg		/* yy_c_buf_p now points to the character we want to return.
1797fd7d9bd3Smrg		 * If this occurs *before* the EOB characters, then it's a
1798fd7d9bd3Smrg		 * valid NUL; if not, then we've hit the end of the buffer.
1799fd7d9bd3Smrg		 */
1800350952b9Smrg		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1801fd7d9bd3Smrg			/* This was really a NUL. */
1802350952b9Smrg			*(yy_c_buf_p) = '\0';
1803fd7d9bd3Smrg
1804fd7d9bd3Smrg		else
1805fd7d9bd3Smrg			{ /* need more input */
1806e53c48bfSmrg			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
1807350952b9Smrg			++(yy_c_buf_p);
1808fd7d9bd3Smrg
1809350952b9Smrg			switch ( yy_get_next_buffer(  ) )
1810fd7d9bd3Smrg				{
1811fd7d9bd3Smrg				case EOB_ACT_LAST_MATCH:
1812fd7d9bd3Smrg					/* This happens because yy_g_n_b()
1813fd7d9bd3Smrg					 * sees that we've accumulated a
1814fd7d9bd3Smrg					 * token and flags that we need to
1815fd7d9bd3Smrg					 * try matching the token before
1816fd7d9bd3Smrg					 * proceeding.  But for input(),
1817fd7d9bd3Smrg					 * there's no matching to consider.
1818fd7d9bd3Smrg					 * So convert the EOB_ACT_LAST_MATCH
1819fd7d9bd3Smrg					 * to EOB_ACT_END_OF_FILE.
1820fd7d9bd3Smrg					 */
1821fd7d9bd3Smrg
1822fd7d9bd3Smrg					/* Reset buffer status. */
1823e53c48bfSmrg					yyrestart( yyin );
1824fd7d9bd3Smrg
1825350952b9Smrg					/*FALLTHROUGH*/
1826fd7d9bd3Smrg
1827fd7d9bd3Smrg				case EOB_ACT_END_OF_FILE:
1828fd7d9bd3Smrg					{
1829e53c48bfSmrg					if ( yywrap(  ) )
1830e53c48bfSmrg						return 0;
1831fd7d9bd3Smrg
1832350952b9Smrg					if ( ! (yy_did_buffer_switch_on_eof) )
1833fd7d9bd3Smrg						YY_NEW_FILE;
1834fd7d9bd3Smrg#ifdef __cplusplus
1835fd7d9bd3Smrg					return yyinput();
1836fd7d9bd3Smrg#else
1837fd7d9bd3Smrg					return input();
1838fd7d9bd3Smrg#endif
1839fd7d9bd3Smrg					}
1840fd7d9bd3Smrg
1841fd7d9bd3Smrg				case EOB_ACT_CONTINUE_SCAN:
1842350952b9Smrg					(yy_c_buf_p) = (yytext_ptr) + offset;
1843fd7d9bd3Smrg					break;
1844fd7d9bd3Smrg				}
1845fd7d9bd3Smrg			}
1846fd7d9bd3Smrg		}
1847fd7d9bd3Smrg
1848350952b9Smrg	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
1849350952b9Smrg	*(yy_c_buf_p) = '\0';	/* preserve yytext */
1850350952b9Smrg	(yy_hold_char) = *++(yy_c_buf_p);
1851fd7d9bd3Smrg
1852fd7d9bd3Smrg	return c;
1853350952b9Smrg}
1854350952b9Smrg#endif	/* ifndef YY_NO_INPUT */
1855fd7d9bd3Smrg
1856350952b9Smrg/** Immediately switch to a different input stream.
1857350952b9Smrg * @param input_file A readable stream.
1858350952b9Smrg *
1859350952b9Smrg * @note This function does not reset the start condition to @c INITIAL .
1860350952b9Smrg */
1861350952b9Smrg    void yyrestart  (FILE * input_file )
1862350952b9Smrg{
1863350952b9Smrg
1864350952b9Smrg	if ( ! YY_CURRENT_BUFFER ){
1865350952b9Smrg        yyensure_buffer_stack ();
1866350952b9Smrg		YY_CURRENT_BUFFER_LVALUE =
1867e53c48bfSmrg            yy_create_buffer( yyin, YY_BUF_SIZE );
1868fd7d9bd3Smrg	}
1869fd7d9bd3Smrg
1870e53c48bfSmrg	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
1871e53c48bfSmrg	yy_load_buffer_state(  );
1872350952b9Smrg}
1873fd7d9bd3Smrg
1874350952b9Smrg/** Switch to a different input buffer.
1875350952b9Smrg * @param new_buffer The new input buffer.
1876350952b9Smrg *
1877350952b9Smrg */
1878350952b9Smrg    void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1879350952b9Smrg{
1880350952b9Smrg
1881350952b9Smrg	/* TODO. We should be able to replace this entire function body
1882350952b9Smrg	 * with
1883350952b9Smrg	 *		yypop_buffer_state();
1884350952b9Smrg	 *		yypush_buffer_state(new_buffer);
1885350952b9Smrg     */
1886350952b9Smrg	yyensure_buffer_stack ();
1887350952b9Smrg	if ( YY_CURRENT_BUFFER == new_buffer )
1888fd7d9bd3Smrg		return;
1889fd7d9bd3Smrg
1890350952b9Smrg	if ( YY_CURRENT_BUFFER )
1891fd7d9bd3Smrg		{
1892fd7d9bd3Smrg		/* Flush out information for old buffer. */
1893350952b9Smrg		*(yy_c_buf_p) = (yy_hold_char);
1894350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1895350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1896fd7d9bd3Smrg		}
1897fd7d9bd3Smrg
1898350952b9Smrg	YY_CURRENT_BUFFER_LVALUE = new_buffer;
1899e53c48bfSmrg	yy_load_buffer_state(  );
1900fd7d9bd3Smrg
1901fd7d9bd3Smrg	/* We don't actually know whether we did this switch during
1902fd7d9bd3Smrg	 * EOF (yywrap()) processing, but the only time this flag
1903fd7d9bd3Smrg	 * is looked at is after yywrap() is called, so it's safe
1904fd7d9bd3Smrg	 * to go ahead and always set it.
1905fd7d9bd3Smrg	 */
1906350952b9Smrg	(yy_did_buffer_switch_on_eof) = 1;
1907350952b9Smrg}
1908350952b9Smrg
1909350952b9Smrgstatic void yy_load_buffer_state  (void)
1910350952b9Smrg{
1911350952b9Smrg    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1912350952b9Smrg	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1913350952b9Smrg	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1914350952b9Smrg	(yy_hold_char) = *(yy_c_buf_p);
1915350952b9Smrg}
1916350952b9Smrg
1917350952b9Smrg/** Allocate and initialize an input buffer state.
1918350952b9Smrg * @param file A readable stream.
1919350952b9Smrg * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1920350952b9Smrg *
1921350952b9Smrg * @return the allocated buffer state.
1922350952b9Smrg */
1923350952b9Smrg    YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
1924350952b9Smrg{
1925fd7d9bd3Smrg	YY_BUFFER_STATE b;
1926350952b9Smrg
1927e53c48bfSmrg	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
1928fd7d9bd3Smrg	if ( ! b )
1929fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1930fd7d9bd3Smrg
1931fd7d9bd3Smrg	b->yy_buf_size = size;
1932fd7d9bd3Smrg
1933fd7d9bd3Smrg	/* yy_ch_buf has to be 2 characters longer than the size given because
1934fd7d9bd3Smrg	 * we need to put in 2 end-of-buffer characters.
1935fd7d9bd3Smrg	 */
1936e53c48bfSmrg	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
1937fd7d9bd3Smrg	if ( ! b->yy_ch_buf )
1938fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1939fd7d9bd3Smrg
1940fd7d9bd3Smrg	b->yy_is_our_buffer = 1;
1941fd7d9bd3Smrg
1942e53c48bfSmrg	yy_init_buffer( b, file );
1943fd7d9bd3Smrg
1944fd7d9bd3Smrg	return b;
1945350952b9Smrg}
1946fd7d9bd3Smrg
1947350952b9Smrg/** Destroy the buffer.
1948350952b9Smrg * @param b a buffer created with yy_create_buffer()
1949350952b9Smrg *
1950350952b9Smrg */
1951350952b9Smrg    void yy_delete_buffer (YY_BUFFER_STATE  b )
1952350952b9Smrg{
1953350952b9Smrg
1954fd7d9bd3Smrg	if ( ! b )
1955fd7d9bd3Smrg		return;
1956fd7d9bd3Smrg
1957350952b9Smrg	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1958350952b9Smrg		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1959fd7d9bd3Smrg
1960fd7d9bd3Smrg	if ( b->yy_is_our_buffer )
1961e53c48bfSmrg		yyfree( (void *) b->yy_ch_buf  );
1962fd7d9bd3Smrg
1963e53c48bfSmrg	yyfree( (void *) b  );
1964350952b9Smrg}
1965fd7d9bd3Smrg
1966350952b9Smrg/* Initializes or reinitializes a buffer.
1967350952b9Smrg * This function is sometimes called more than once on the same buffer,
1968350952b9Smrg * such as during a yyrestart() or at EOF.
1969350952b9Smrg */
1970350952b9Smrg    static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1971fd7d9bd3Smrg
1972350952b9Smrg{
1973350952b9Smrg	int oerrno = errno;
1974350952b9Smrg
1975e53c48bfSmrg	yy_flush_buffer( b );
1976fd7d9bd3Smrg
1977fd7d9bd3Smrg	b->yy_input_file = file;
1978fd7d9bd3Smrg	b->yy_fill_buffer = 1;
1979fd7d9bd3Smrg
1980350952b9Smrg    /* If b is the current buffer, then yy_init_buffer was _probably_
1981350952b9Smrg     * called from yyrestart() or through yy_get_next_buffer.
1982350952b9Smrg     * In that case, we don't want to reset the lineno or column.
1983350952b9Smrg     */
1984350952b9Smrg    if (b != YY_CURRENT_BUFFER){
1985350952b9Smrg        b->yy_bs_lineno = 1;
1986350952b9Smrg        b->yy_bs_column = 0;
1987350952b9Smrg    }
1988350952b9Smrg
1989350952b9Smrg        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1990350952b9Smrg
1991350952b9Smrg	errno = oerrno;
1992350952b9Smrg}
1993350952b9Smrg
1994350952b9Smrg/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1995350952b9Smrg * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1996350952b9Smrg *
1997350952b9Smrg */
1998350952b9Smrg    void yy_flush_buffer (YY_BUFFER_STATE  b )
1999350952b9Smrg{
2000350952b9Smrg    	if ( ! b )
2001fd7d9bd3Smrg		return;
2002fd7d9bd3Smrg
2003fd7d9bd3Smrg	b->yy_n_chars = 0;
2004fd7d9bd3Smrg
2005fd7d9bd3Smrg	/* We always need two end-of-buffer characters.  The first causes
2006fd7d9bd3Smrg	 * a transition to the end-of-buffer state.  The second causes
2007fd7d9bd3Smrg	 * a jam in that state.
2008fd7d9bd3Smrg	 */
2009fd7d9bd3Smrg	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2010fd7d9bd3Smrg	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2011fd7d9bd3Smrg
2012fd7d9bd3Smrg	b->yy_buf_pos = &b->yy_ch_buf[0];
2013fd7d9bd3Smrg
2014fd7d9bd3Smrg	b->yy_at_bol = 1;
2015fd7d9bd3Smrg	b->yy_buffer_status = YY_BUFFER_NEW;
2016fd7d9bd3Smrg
2017350952b9Smrg	if ( b == YY_CURRENT_BUFFER )
2018e53c48bfSmrg		yy_load_buffer_state(  );
2019350952b9Smrg}
2020350952b9Smrg
2021350952b9Smrg/** Pushes the new state onto the stack. The new state becomes
2022350952b9Smrg *  the current state. This function will allocate the stack
2023350952b9Smrg *  if necessary.
2024350952b9Smrg *  @param new_buffer The new state.
2025350952b9Smrg *
2026350952b9Smrg */
2027350952b9Smrgvoid yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2028350952b9Smrg{
2029350952b9Smrg    	if (new_buffer == NULL)
2030350952b9Smrg		return;
2031350952b9Smrg
2032350952b9Smrg	yyensure_buffer_stack();
2033350952b9Smrg
2034350952b9Smrg	/* This block is copied from yy_switch_to_buffer. */
2035350952b9Smrg	if ( YY_CURRENT_BUFFER )
2036350952b9Smrg		{
2037350952b9Smrg		/* Flush out information for old buffer. */
2038350952b9Smrg		*(yy_c_buf_p) = (yy_hold_char);
2039350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2040350952b9Smrg		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2041350952b9Smrg		}
2042350952b9Smrg
2043350952b9Smrg	/* Only push if top exists. Otherwise, replace top. */
2044350952b9Smrg	if (YY_CURRENT_BUFFER)
2045350952b9Smrg		(yy_buffer_stack_top)++;
2046350952b9Smrg	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2047350952b9Smrg
2048350952b9Smrg	/* copied from yy_switch_to_buffer. */
2049e53c48bfSmrg	yy_load_buffer_state(  );
2050350952b9Smrg	(yy_did_buffer_switch_on_eof) = 1;
2051350952b9Smrg}
2052350952b9Smrg
2053350952b9Smrg/** Removes and deletes the top of the stack, if present.
2054350952b9Smrg *  The next element becomes the new top.
2055350952b9Smrg *
2056350952b9Smrg */
2057350952b9Smrgvoid yypop_buffer_state (void)
2058350952b9Smrg{
2059350952b9Smrg    	if (!YY_CURRENT_BUFFER)
2060350952b9Smrg		return;
2061350952b9Smrg
2062350952b9Smrg	yy_delete_buffer(YY_CURRENT_BUFFER );
2063350952b9Smrg	YY_CURRENT_BUFFER_LVALUE = NULL;
2064350952b9Smrg	if ((yy_buffer_stack_top) > 0)
2065350952b9Smrg		--(yy_buffer_stack_top);
2066350952b9Smrg
2067350952b9Smrg	if (YY_CURRENT_BUFFER) {
2068e53c48bfSmrg		yy_load_buffer_state(  );
2069350952b9Smrg		(yy_did_buffer_switch_on_eof) = 1;
2070fd7d9bd3Smrg	}
2071350952b9Smrg}
2072fd7d9bd3Smrg
2073350952b9Smrg/* Allocates the stack if it does not exist.
2074350952b9Smrg *  Guarantees space for at least one push.
2075350952b9Smrg */
2076350952b9Smrgstatic void yyensure_buffer_stack (void)
2077350952b9Smrg{
2078e53c48bfSmrg	yy_size_t num_to_alloc;
2079350952b9Smrg
2080350952b9Smrg	if (!(yy_buffer_stack)) {
2081350952b9Smrg
2082350952b9Smrg		/* First allocation is just for 2 elements, since we don't know if this
2083350952b9Smrg		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2084350952b9Smrg		 * immediate realloc on the next call.
2085350952b9Smrg         */
2086e53c48bfSmrg      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2087350952b9Smrg		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2088350952b9Smrg								(num_to_alloc * sizeof(struct yy_buffer_state*)
2089350952b9Smrg								);
2090350952b9Smrg		if ( ! (yy_buffer_stack) )
2091350952b9Smrg			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2092e53c48bfSmrg
2093350952b9Smrg		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2094e53c48bfSmrg
2095350952b9Smrg		(yy_buffer_stack_max) = num_to_alloc;
2096350952b9Smrg		(yy_buffer_stack_top) = 0;
2097350952b9Smrg		return;
2098350952b9Smrg	}
2099fd7d9bd3Smrg
2100350952b9Smrg	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2101350952b9Smrg
2102350952b9Smrg		/* Increase the buffer to prepare for a possible push. */
2103e53c48bfSmrg		yy_size_t grow_size = 8 /* arbitrary grow size */;
2104350952b9Smrg
2105350952b9Smrg		num_to_alloc = (yy_buffer_stack_max) + grow_size;
2106350952b9Smrg		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2107350952b9Smrg								((yy_buffer_stack),
2108350952b9Smrg								num_to_alloc * sizeof(struct yy_buffer_state*)
2109350952b9Smrg								);
2110350952b9Smrg		if ( ! (yy_buffer_stack) )
2111350952b9Smrg			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2112350952b9Smrg
2113350952b9Smrg		/* zero only the new slots.*/
2114350952b9Smrg		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2115350952b9Smrg		(yy_buffer_stack_max) = num_to_alloc;
2116350952b9Smrg	}
2117350952b9Smrg}
2118fd7d9bd3Smrg
2119350952b9Smrg/** Setup the input buffer state to scan directly from a user-specified character buffer.
2120350952b9Smrg * @param base the character buffer
2121350952b9Smrg * @param size the size in bytes of the character buffer
2122350952b9Smrg *
2123e53c48bfSmrg * @return the newly allocated buffer state object.
2124350952b9Smrg */
2125350952b9SmrgYY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
2126350952b9Smrg{
2127350952b9Smrg	YY_BUFFER_STATE b;
2128350952b9Smrg
2129fd7d9bd3Smrg	if ( size < 2 ||
2130fd7d9bd3Smrg	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2131fd7d9bd3Smrg	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2132fd7d9bd3Smrg		/* They forgot to leave room for the EOB's. */
2133e53c48bfSmrg		return NULL;
2134fd7d9bd3Smrg
2135e53c48bfSmrg	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
2136fd7d9bd3Smrg	if ( ! b )
2137fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2138fd7d9bd3Smrg
2139e53c48bfSmrg	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
2140fd7d9bd3Smrg	b->yy_buf_pos = b->yy_ch_buf = base;
2141fd7d9bd3Smrg	b->yy_is_our_buffer = 0;
2142e53c48bfSmrg	b->yy_input_file = NULL;
2143fd7d9bd3Smrg	b->yy_n_chars = b->yy_buf_size;
2144fd7d9bd3Smrg	b->yy_is_interactive = 0;
2145fd7d9bd3Smrg	b->yy_at_bol = 1;
2146fd7d9bd3Smrg	b->yy_fill_buffer = 0;
2147fd7d9bd3Smrg	b->yy_buffer_status = YY_BUFFER_NEW;
2148fd7d9bd3Smrg
2149e53c48bfSmrg	yy_switch_to_buffer( b  );
2150fd7d9bd3Smrg
2151fd7d9bd3Smrg	return b;
2152350952b9Smrg}
2153350952b9Smrg
2154350952b9Smrg/** Setup the input buffer state to scan a string. The next call to yylex() will
2155350952b9Smrg * scan from a @e copy of @a str.
2156350952b9Smrg * @param yystr a NUL-terminated string to scan
2157350952b9Smrg *
2158350952b9Smrg * @return the newly allocated buffer state object.
2159350952b9Smrg * @note If you want to scan bytes that may contain NUL values, then use
2160350952b9Smrg *       yy_scan_bytes() instead.
2161350952b9Smrg */
2162e53c48bfSmrgYY_BUFFER_STATE yy_scan_string (const char * yystr )
2163350952b9Smrg{
2164350952b9Smrg
2165e53c48bfSmrg	return yy_scan_bytes( yystr, (int) strlen(yystr) );
2166350952b9Smrg}
2167350952b9Smrg
2168350952b9Smrg/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2169350952b9Smrg * scan from a @e copy of @a bytes.
2170e53c48bfSmrg * @param yybytes the byte buffer to scan
2171e53c48bfSmrg * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2172350952b9Smrg *
2173350952b9Smrg * @return the newly allocated buffer state object.
2174350952b9Smrg */
2175e53c48bfSmrgYY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
2176350952b9Smrg{
2177fd7d9bd3Smrg	YY_BUFFER_STATE b;
2178fd7d9bd3Smrg	char *buf;
2179fd7d9bd3Smrg	yy_size_t n;
2180fd7d9bd3Smrg	int i;
2181350952b9Smrg
2182fd7d9bd3Smrg	/* Get memory for full buffer, including space for trailing EOB's. */
2183e53c48bfSmrg	n = (yy_size_t) (_yybytes_len + 2);
2184e53c48bfSmrg	buf = (char *) yyalloc( n  );
2185fd7d9bd3Smrg	if ( ! buf )
2186fd7d9bd3Smrg		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2187fd7d9bd3Smrg
2188350952b9Smrg	for ( i = 0; i < _yybytes_len; ++i )
2189350952b9Smrg		buf[i] = yybytes[i];
2190fd7d9bd3Smrg
2191350952b9Smrg	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2192fd7d9bd3Smrg
2193e53c48bfSmrg	b = yy_scan_buffer( buf, n );
2194fd7d9bd3Smrg	if ( ! b )
2195fd7d9bd3Smrg		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2196fd7d9bd3Smrg
2197fd7d9bd3Smrg	/* It's okay to grow etc. this buffer, and we should throw it
2198fd7d9bd3Smrg	 * away when we're done.
2199fd7d9bd3Smrg	 */
2200fd7d9bd3Smrg	b->yy_is_our_buffer = 1;
2201fd7d9bd3Smrg
2202fd7d9bd3Smrg	return b;
2203350952b9Smrg}
2204fd7d9bd3Smrg
2205fd7d9bd3Smrg#ifndef YY_EXIT_FAILURE
2206fd7d9bd3Smrg#define YY_EXIT_FAILURE 2
2207fd7d9bd3Smrg#endif
2208fd7d9bd3Smrg
2209e53c48bfSmrgstatic void yynoreturn yy_fatal_error (const char* msg )
2210350952b9Smrg{
2211e53c48bfSmrg			fprintf( stderr, "%s\n", msg );
2212fd7d9bd3Smrg	exit( YY_EXIT_FAILURE );
2213350952b9Smrg}
2214fd7d9bd3Smrg
2215fd7d9bd3Smrg/* Redefine yyless() so it works in section 3 code. */
2216fd7d9bd3Smrg
2217fd7d9bd3Smrg#undef yyless
2218fd7d9bd3Smrg#define yyless(n) \
2219fd7d9bd3Smrg	do \
2220fd7d9bd3Smrg		{ \
2221fd7d9bd3Smrg		/* Undo effects of setting up yytext. */ \
2222350952b9Smrg        int yyless_macro_arg = (n); \
2223350952b9Smrg        YY_LESS_LINENO(yyless_macro_arg);\
2224350952b9Smrg		yytext[yyleng] = (yy_hold_char); \
2225350952b9Smrg		(yy_c_buf_p) = yytext + yyless_macro_arg; \
2226350952b9Smrg		(yy_hold_char) = *(yy_c_buf_p); \
2227350952b9Smrg		*(yy_c_buf_p) = '\0'; \
2228350952b9Smrg		yyleng = yyless_macro_arg; \
2229fd7d9bd3Smrg		} \
2230fd7d9bd3Smrg	while ( 0 )
2231fd7d9bd3Smrg
2232350952b9Smrg/* Accessor  methods (get/set functions) to struct members. */
2233350952b9Smrg
2234350952b9Smrg/** Get the current line number.
2235350952b9Smrg *
2236350952b9Smrg */
2237350952b9Smrgint yyget_lineno  (void)
2238350952b9Smrg{
2239e53c48bfSmrg
2240350952b9Smrg    return yylineno;
2241350952b9Smrg}
2242350952b9Smrg
2243350952b9Smrg/** Get the input stream.
2244350952b9Smrg *
2245350952b9Smrg */
2246350952b9SmrgFILE *yyget_in  (void)
2247350952b9Smrg{
2248350952b9Smrg        return yyin;
2249350952b9Smrg}
2250fd7d9bd3Smrg
2251350952b9Smrg/** Get the output stream.
2252350952b9Smrg *
2253350952b9Smrg */
2254350952b9SmrgFILE *yyget_out  (void)
2255350952b9Smrg{
2256350952b9Smrg        return yyout;
2257350952b9Smrg}
2258fd7d9bd3Smrg
2259350952b9Smrg/** Get the length of the current token.
2260350952b9Smrg *
2261350952b9Smrg */
2262350952b9Smrgint yyget_leng  (void)
2263350952b9Smrg{
2264350952b9Smrg        return yyleng;
2265350952b9Smrg}
2266350952b9Smrg
2267350952b9Smrg/** Get the current token.
2268350952b9Smrg *
2269350952b9Smrg */
2270350952b9Smrg
2271350952b9Smrgchar *yyget_text  (void)
2272350952b9Smrg{
2273350952b9Smrg        return yytext;
2274350952b9Smrg}
2275350952b9Smrg
2276350952b9Smrg/** Set the current line number.
2277e53c48bfSmrg * @param _line_number line number
2278350952b9Smrg *
2279350952b9Smrg */
2280e53c48bfSmrgvoid yyset_lineno (int  _line_number )
2281350952b9Smrg{
2282350952b9Smrg
2283e53c48bfSmrg    yylineno = _line_number;
2284350952b9Smrg}
2285350952b9Smrg
2286350952b9Smrg/** Set the input stream. This does not discard the current
2287350952b9Smrg * input buffer.
2288e53c48bfSmrg * @param _in_str A readable stream.
2289350952b9Smrg *
2290350952b9Smrg * @see yy_switch_to_buffer
2291350952b9Smrg */
2292e53c48bfSmrgvoid yyset_in (FILE *  _in_str )
2293350952b9Smrg{
2294e53c48bfSmrg        yyin = _in_str ;
2295350952b9Smrg}
2296350952b9Smrg
2297e53c48bfSmrgvoid yyset_out (FILE *  _out_str )
2298350952b9Smrg{
2299e53c48bfSmrg        yyout = _out_str ;
2300350952b9Smrg}
2301350952b9Smrg
2302350952b9Smrgint yyget_debug  (void)
2303350952b9Smrg{
2304350952b9Smrg        return yy_flex_debug;
2305350952b9Smrg}
2306350952b9Smrg
2307e53c48bfSmrgvoid yyset_debug (int  _bdebug )
2308350952b9Smrg{
2309e53c48bfSmrg        yy_flex_debug = _bdebug ;
2310350952b9Smrg}
2311350952b9Smrg
2312350952b9Smrgstatic int yy_init_globals (void)
2313350952b9Smrg{
2314350952b9Smrg        /* Initialization is the same as for the non-reentrant scanner.
2315350952b9Smrg     * This function is called from yylex_destroy(), so don't allocate here.
2316350952b9Smrg     */
2317350952b9Smrg
2318e53c48bfSmrg    (yy_buffer_stack) = NULL;
2319350952b9Smrg    (yy_buffer_stack_top) = 0;
2320350952b9Smrg    (yy_buffer_stack_max) = 0;
2321e53c48bfSmrg    (yy_c_buf_p) = NULL;
2322350952b9Smrg    (yy_init) = 0;
2323350952b9Smrg    (yy_start) = 0;
2324350952b9Smrg
2325350952b9Smrg/* Defined in main.c */
2326350952b9Smrg#ifdef YY_STDINIT
2327350952b9Smrg    yyin = stdin;
2328350952b9Smrg    yyout = stdout;
2329fd7d9bd3Smrg#else
2330e53c48bfSmrg    yyin = NULL;
2331e53c48bfSmrg    yyout = NULL;
2332350952b9Smrg#endif
2333350952b9Smrg
2334350952b9Smrg    /* For future reference: Set errno on error, since we are called by
2335350952b9Smrg     * yylex_init()
2336350952b9Smrg     */
2337350952b9Smrg    return 0;
2338350952b9Smrg}
2339350952b9Smrg
2340350952b9Smrg/* yylex_destroy is for both reentrant and non-reentrant scanners. */
2341350952b9Smrgint yylex_destroy  (void)
2342350952b9Smrg{
2343350952b9Smrg
2344350952b9Smrg    /* Pop the buffer stack, destroying each element. */
2345350952b9Smrg	while(YY_CURRENT_BUFFER){
2346e53c48bfSmrg		yy_delete_buffer( YY_CURRENT_BUFFER  );
2347350952b9Smrg		YY_CURRENT_BUFFER_LVALUE = NULL;
2348350952b9Smrg		yypop_buffer_state();
2349350952b9Smrg	}
2350350952b9Smrg
2351350952b9Smrg	/* Destroy the stack itself. */
2352350952b9Smrg	yyfree((yy_buffer_stack) );
2353350952b9Smrg	(yy_buffer_stack) = NULL;
2354350952b9Smrg
2355350952b9Smrg    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2356350952b9Smrg     * yylex() is called, initialization will occur. */
2357350952b9Smrg    yy_init_globals( );
2358350952b9Smrg
2359350952b9Smrg    return 0;
2360350952b9Smrg}
2361350952b9Smrg
2362350952b9Smrg/*
2363350952b9Smrg * Internal utility routines.
2364350952b9Smrg */
2365350952b9Smrg
2366350952b9Smrg#ifndef yytext_ptr
2367e53c48bfSmrgstatic void yy_flex_strncpy (char* s1, const char * s2, int n )
2368350952b9Smrg{
2369e53c48bfSmrg
2370e53c48bfSmrg	int i;
2371fd7d9bd3Smrg	for ( i = 0; i < n; ++i )
2372fd7d9bd3Smrg		s1[i] = s2[i];
2373350952b9Smrg}
2374fd7d9bd3Smrg#endif
2375fd7d9bd3Smrg
2376fd7d9bd3Smrg#ifdef YY_NEED_STRLEN
2377e53c48bfSmrgstatic int yy_flex_strlen (const char * s )
2378350952b9Smrg{
2379e53c48bfSmrg	int n;
2380fd7d9bd3Smrg	for ( n = 0; s[n]; ++n )
2381fd7d9bd3Smrg		;
2382fd7d9bd3Smrg
2383fd7d9bd3Smrg	return n;
2384350952b9Smrg}
2385fd7d9bd3Smrg#endif
2386fd7d9bd3Smrg
2387350952b9Smrgvoid *yyalloc (yy_size_t  size )
2388350952b9Smrg{
2389e53c48bfSmrg			return malloc(size);
2390350952b9Smrg}
2391fd7d9bd3Smrg
2392350952b9Smrgvoid *yyrealloc  (void * ptr, yy_size_t  size )
2393350952b9Smrg{
2394e53c48bfSmrg
2395fd7d9bd3Smrg	/* The cast to (char *) in the following accommodates both
2396fd7d9bd3Smrg	 * implementations that use char* generic pointers, and those
2397fd7d9bd3Smrg	 * that use void* generic pointers.  It works with the latter
2398fd7d9bd3Smrg	 * because both ANSI C and C++ allow castless assignment from
2399fd7d9bd3Smrg	 * any pointer type to void*, and deal with argument conversions
2400fd7d9bd3Smrg	 * as though doing an assignment.
2401fd7d9bd3Smrg	 */
2402e53c48bfSmrg	return realloc(ptr, size);
2403350952b9Smrg}
2404fd7d9bd3Smrg
2405350952b9Smrgvoid yyfree (void * ptr )
2406350952b9Smrg{
2407e53c48bfSmrg			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2408350952b9Smrg}
2409350952b9Smrg
2410350952b9Smrg#define YYTABLES_NAME "yytables"
2411fd7d9bd3Smrg
24129aa2a2b5Smrg#line 164 "lex.l"
2413fd7d9bd3Smrg
2414fd7d9bd3Smrg
2415fd7d9bd3Smrg#ifndef yywrap
2416350952b9Smrgint yywrap(void) { return (1); }
2417fd7d9bd3Smrg#endif
2418350952b9Smrg
2419