1    | /* A lexical scanner generated by flex */
2    | 
3    | /* Scanner skeleton version:
4    |  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
5    |  */
6    | 
7    | #define FLEX_SCANNER
8    | #define YY_FLEX_MAJOR_VERSION 2
9    | #define YY_FLEX_MINOR_VERSION 5
10   | 
11   | #ifdef __CRTRSXNT__
12   | #include <crtrsxnt.h>
13   | #endif
14   | #include <stdio.h>
15   | 
16   | 
17   | /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
18   | #ifdef c_plusplus
19   | #ifndef __cplusplus
20   | #define __cplusplus
21   | #endif
22   | #endif
23   | 
24   | 
25   | #ifdef __cplusplus
26   | 
27   | #include <stdlib.h>
28   | #include <unistd.h>
29   | 
30   | /* Use prototypes in function declarations. */
31   | #define YY_USE_PROTOS
32   | 
33   | /* The "const" storage-class-modifier is valid. */
34   | #define YY_USE_CONST
35   | 
36   | #else	/* ! __cplusplus */
37   | 
38   | #if __STDC__
39   | 
40   | #define YY_USE_PROTOS
41   | #define YY_USE_CONST
42   | 
43   | #endif	/* __STDC__ */
44   | #endif	/* ! __cplusplus */
45   | 
46   | #ifdef __TURBOC__
47   |  #pragma warn -rch
48   |  #pragma warn -use
49   | #include <io.h>
50   | #include <stdlib.h>
51   | #define YY_USE_CONST
52   | #define YY_USE_PROTOS
53   | #endif
54   | 
55   | #ifdef YY_USE_CONST
56   | #define yyconst const
57   | #else
58   | #define yyconst
59   | #endif
60   | 
61   | 
62   | #ifdef YY_USE_PROTOS
63   | #define YY_PROTO(proto) proto
64   | #else
65   | #define YY_PROTO(proto) ()
66   | #endif
67   | 
68   | /* Returned upon end-of-file. */
69   | #define YY_NULL 0
70   | 
71   | /* Promotes a possibly negative, possibly signed char to an unsigned
72   |  * integer for use as an array index.  If the signed char is negative,
73   |  * we want to instead treat it as an 8-bit unsigned char, hence the
74   |  * double cast.
75   |  */
76   | #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
77   | 
78   | /* Enter a start condition.  This macro really ought to take a parameter,
79   |  * but we do it the disgusting crufty way forced on us by the ()-less
80   |  * definition of BEGIN.
81   |  */
82   | #define BEGIN yy_start = 1 + 2 *
83   | 
84   | /* Translate the current start state into a value that can be later handed
85   |  * to BEGIN to return to the state.  The YYSTATE alias is for lex
86   |  * compatibility.
87   |  */
88   | #define YY_START ((yy_start - 1) / 2)
89   | #define YYSTATE YY_START
90   | 
91   | /* Action number for EOF rule of a given start state. */
92   | #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
93   | 
94   | /* Special action meaning "start processing a new file". */
95   | #define YY_NEW_FILE yyrestart( yyin )
96   | 
97   | #define YY_END_OF_BUFFER_CHAR 0
98   | 
99   | /* Size of default input buffer. */
100  | #define YY_BUF_SIZE 16384
101  | 
102  | typedef struct yy_buffer_state *YY_BUFFER_STATE;
103  | 
104  | extern int yyleng;
105  | extern FILE *yyin, *yyout;
106  | 
107  | #define EOB_ACT_CONTINUE_SCAN 0
108  | #define EOB_ACT_END_OF_FILE 1
109  | #define EOB_ACT_LAST_MATCH 2
110  | 
111  | /* The funky do-while in the following #define is used to turn the definition
112  |  * int a single C statement (which needs a semi-colon terminator).  This
113  |  * avoids problems with code like:
114  |  *
115  |  * 	if ( condition_holds )
116  |  *		yyless( 5 );
117  |  *	else
118  |  *		do_something_else();
119  |  *
120  |  * Prior to using the do-while the compiler would get upset at the
121  |  * "else" because it interpreted the "if" statement as being all
122  |  * done when it reached the ';' after the yyless() call.
123  |  */
124  | 
125  | /* Return all but the first 'n' matched characters back to the input stream. */
126  | 
127  | #define yyless(n) \
128  | 	do \
129  | 		{ \
130  | 		/* Undo effects of setting up yytext. */ \
131  | 		*yy_cp = yy_hold_char; \
132  | 		YY_RESTORE_YY_MORE_OFFSET \
133  | 		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
134  | 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
135  | 		} \
136  | 	while ( 0 )
137  | 
138  | #define unput(c) yyunput( c, yytext_ptr )
139  | 
140  | /* The following is because we cannot portably get our hands on size_t
141  |  * (without autoconf's help, which isn't available because we want
142  |  * flex-generated scanners to compile on their own).
143  |  */
144  | typedef unsigned int yy_size_t;
145  | 
146  | 
147  | struct yy_buffer_state
148  | 	{
149  | 	FILE *yy_input_file;
150  | 
151  | 	char *yy_ch_buf;		/* input buffer */
152  | 	char *yy_buf_pos;		/* current position in input buffer */
153  | 
154  | 	/* Size of input buffer in bytes, not including room for EOB
155  | 	 * characters.
156  | 	 */
157  | 	yy_size_t yy_buf_size;
158  | 
159  | 	/* Number of characters read into yy_ch_buf, not including EOB
160  | 	 * characters.
161  | 	 */
162  | 	int yy_n_chars;
163  | 
164  | 	/* Whether we "own" the buffer - i.e., we know we created it,
165  | 	 * and can realloc() it to grow it, and should free() it to
166  | 	 * delete it.
167  | 	 */
168  | 	int yy_is_our_buffer;
169  | 
170  | 	/* Whether this is an "interactive" input source; if so, and
171  | 	 * if we're using stdio for input, then we want to use getc()
172  | 	 * instead of fread(), to make sure we stop fetching input after
173  | 	 * each newline.
174  | 	 */
175  | 	int yy_is_interactive;
176  | 
177  | 	/* Whether we're considered to be at the beginning of a line.
178  | 	 * If so, '^' rules will be active on the next match, otherwise
179  | 	 * not.
180  | 	 */
181  | 	int yy_at_bol;
182  | 
183  | 	/* Whether to try to fill the input buffer when we reach the
184  | 	 * end of it.
185  | 	 */
186  | 	int yy_fill_buffer;
187  | 
188  | 	int yy_buffer_status;
189  | #define YY_BUFFER_NEW 0
190  | #define YY_BUFFER_NORMAL 1
191  | 	/* When an EOF's been seen but there's still some text to process
192  | 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
193  | 	 * shouldn't try reading from the input source any more.  We might
194  | 	 * still have a bunch of tokens to match, though, because of
195  | 	 * possible backing-up.
196  | 	 *
197  | 	 * When we actually see the EOF, we change the status to "new"
198  | 	 * (via yyrestart()), so that the user can continue scanning by
199  | 	 * just pointing yyin at a new input file.
200  | 	 */
201  | #define YY_BUFFER_EOF_PENDING 2
202  | 	};
203  | 
204  | static YY_BUFFER_STATE yy_current_buffer = 0;
205  | 
206  | /* We provide macros for accessing buffer states in case in the
207  |  * future we want to put the buffer states in a more general
208  |  * "scanner state".
209  |  */
210  | #define YY_CURRENT_BUFFER yy_current_buffer
211  | 
212  | 
213  | /* yy_hold_char holds the character lost when yytext is formed. */
214  | static char yy_hold_char;
215  | 
216  | static int yy_n_chars;		/* number of characters read into yy_ch_buf */
217  | 
218  | 
219  | int yyleng;
220  | 
221  | /* Points to current character in buffer. */
222  | static char *yy_c_buf_p = (char *) 0;
223  | static int yy_init = 1;		/* whether we need to initialize */
224  | static int yy_start = 0;	/* start state number */
225  | 
226  | /* Flag which is used to allow yywrap()'s to do buffer switches
227  |  * instead of setting up a fresh yyin.  A bit of a hack ...
228  |  */
229  | static int yy_did_buffer_switch_on_eof;
230  | 
231  | void yyrestart YY_PROTO(( FILE *input_file ));
232  | 
233  | void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
234  | void yy_load_buffer_state YY_PROTO(( void ));
235  | YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
236  | void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237  | void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
238  | void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
239  | #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
240  | 
241  | YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
242  | YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
243  | YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
244  | 
245  | static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
246  | static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
247  | static void yy_flex_free YY_PROTO(( void * ));
248  | 
249  | #define yy_new_buffer yy_create_buffer
250  | 
251  | #define yy_set_interactive(is_interactive) \
252  | 	{ \
253  | 	if ( ! yy_current_buffer ) \
254  | 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
255  | 	yy_current_buffer->yy_is_interactive = is_interactive; \
256  | 	}
257  | 
258  | #define yy_set_bol(at_bol) \
259  | 	{ \
260  | 	if ( ! yy_current_buffer ) \
261  | 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
262  | 	yy_current_buffer->yy_at_bol = at_bol; \
263  | 	}
264  | 
265  | #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
266  | 
267  | 
268  | #define YY_USES_REJECT
269  | typedef unsigned char YY_CHAR;
270  | FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
271  | typedef int yy_state_type;
272  | extern char *yytext;
273  | #define yytext_ptr yytext
274  | 
275  | static yy_state_type yy_get_previous_state YY_PROTO(( void ));
276  | static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
277  | static int yy_get_next_buffer YY_PROTO(( void ));
278  | static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
279  | 
280  | /* Done after the current pattern has been matched and before the
281  |  * corresponding action - sets up yytext.
282  |  */
283  | #define YY_DO_BEFORE_ACTION \
284  | 	yytext_ptr = yy_bp; \
285  | 	yyleng = (int) (yy_cp - yy_bp); \
286  | 	yy_hold_char = *yy_cp; \
287  | 	*yy_cp = '\0'; \
288  | 	yy_c_buf_p = yy_cp;
289  | 
290  | #define YY_NUM_RULES 194
291  | #define YY_END_OF_BUFFER 195
292  | static yyconst short int yy_acclist[766] =
293  |     {   0,
294  |       195,  193,  194,  192,  194,  193,  194,  169,  193,  194,
295  |       193,  194,   35,  193,  194,  181,  193,  194,  175,  193,
296  |       194,  168,  193,  194,  193,  194,  162,  193,  194,  164,
297  |       193,  194,  173,  193,  194,  172,  193,  194,  159,  193,
298  |       194,  171,  193,  194,  167,  193,  194,  174,  193,  194,
299  |       184,  193,  194,  184,  193,  194,  160,  193,  194,  153,
300  |       193,  194,  176,  193,  194,  161,  193,  194,  177,  193,
301  |       194,  180,  193,  194,  181,  193,  194,  165,  193,  194,
302  |       166,  193,  194,  178,  193,  194,  181,  193,  194,  181,
303  |       193,  194,  181,  193,  194,  181,  193,  194,  181,  193,
304  | 
305  |       194,  181,  193,  194,  181,  193,  194,  181,  193,  194,
306  |       181,  193,  194,  181,  193,  194,  181,  193,  194,  181,
307  |       193,  194,  181,  193,  194,  181,  193,  194,  181,  193,
308  |       194,  181,  193,  194,  154,  193,  194,  179,  193,  194,
309  |       157,  193,  194,  170,  193,  194,   15,  194,   15,  194,
310  |        14,   15,  194,   15,  194,   11,  194,   12,  194,   21,
311  |       194,   20,  194,   21,  194,   21,  194,   21,  194,   27,
312  |        28,  194,   27,   28,  194,   25,  194,   28,  194,   28,
313  |       194,   28,  194,   19,  194,   18,   19,  194,   19,  194,
314  |        16,  194,   17,  194,  194,   24,  194,  194,   32,   33,
315  | 
316  |       194,   32,   33,  194,   34,  194,   33,  194,   40,  194,
317  |        42,  194,   40,  194,   40,  194,   40,  194,  194,  194,
318  |       194,   39,  194,   39,  194,   39,  194,   69,  194,   71,
319  |       194,   69,  194,   69,  194,   69,  194,   69,  194,  194,
320  |       194,  194,   74,  194,  194,  194,   45,  194,   43,  194,
321  |       194,  194,   48,  194,   47,  194,  194,   46,  194,   48,
322  |       194,   48,  194,   65,  194,   67,  194,   65,  194,   65,
323  |       194,   56,   65,  194,   65,  194,   65,  194,   65,  194,
324  |        59,   65,  194,   59,   65,  194,   65,  194,   53,  194,
325  |        50,  194,   55,  194,   52,  194,  194,  194,   83,  194,
326  | 
327  |        84,  194,   87,  194,   86,  194,   88,  194,   91,  194,
328  |        90,  194,   92,  194,   96,  194,  192,  151,  190,   35,
329  |       181,  137,  146,  138,  135,  143,  133,  144,  134,  145,
330  |       188,    1,  136,  189,  183,  184,  184,  184,  142,  148,
331  |       150,  149,  141,  139,  181,  181,  181,  181,  181,  181,
332  |       181,  181,  104,  181,  181,  181,  181,  181,  181,  181,
333  |       112,  181,  181,  181,  181,  181,  181,  181,  181,  181,
334  |       181,  181,  181,  140,  147,   14,   11,   13,   12,   20,
335  |        23,   27,   27,16410,   25,   31,   18,   16,   17,   24,
336  |        32,   32,   34,   42,    3,   41,    2,   36,   39,   39,
337  | 
338  |        39,   71,    5,   70,    9,   74,   73,   10,   45,   43,
339  |         4,   44,   47,    6,   49,   67,   64,   56,   63,   61,
340  |         8,   62,   58,   59,   59,   59,   66,   53,   50,    7,
341  |        54,   83,   87,   91,  185,  163,  158,  130,  188,  188,
342  |       189,  189,  183,  184,  187,  182,  152,  132,  131,  191,
343  |       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
344  |        81,  181,  181,  181,  181,  181,  181,  181,  181,  181,
345  |       181,  181,  181,  110,  181,  181,  181,  113,  181,  181,
346  |       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
347  |       181,  181,  181,  181,   22, 8218,   29,   30,   39,   39,
348  | 
349  |        68,   72,   64,   63,   61,   61,   62,   62,   58,   59,
350  |        60,   57,  188,  188,  189,  189,  187,  182,  186,  181,
351  |       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
352  |       181,   97,  181,  181,   99,  181,  100,  181,  181,  181,
353  |       181,  181,  106,  181,  107,  181,  181,  181,  111,  181,
354  |       181,  115,  181,  181,  181,  181,  181,  181,  181,  181,
355  |       181,  181,  181,  181,  127,  181,  181,  181,  156,  155,
356  |        39,   39,   61,   61,   62,   62,   60,   57,   51,  188,
357  |       189,  181,  181,   81,  181,  181,  181,  181,  181,  181,
358  |       181,  181,  181,  181,   98,  181,  181,  101,  181,  181,
359  | 
360  |       181,  181,  181,  109,  181,  181,  181,  181,  118,  181,
361  |       181,  181,  181,  181,  181,  181,  181,  125,  181,  181,
362  |       181,  129,  181,   39,   39,   61,   62,  181,  181,  181,
363  |       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
364  |       181,  181,  105,  181,  108,  181,  114,  181,  181,  117,
365  |       181,  119,  181,  120,  181,  121,  181,  122,  181,  123,
366  |       181,  181,   89,  181,  181,  181,   39,   39,  181,  181,
367  |       181,   79,  181,  181,  181,  181,  181,  181,  181,  181,
368  |       181,  181,  103,  181,  181,  124,  181,  181,  181,   37,
369  |        39,  181,  181,  181,  181,  181,   80,  181,  181,   76,
370  | 
371  |       181,   89,  181,  181,  181,  181,  102,  181,  116,  181,
372  |       126,  181,  128,  181,   38,  181,   75,  181,  181,   79,
373  |       181,  181,  181,   82,  181,  181,  181,  181,  181,  181,
374  |       181,  181,  181,  181,   80,  181,   76,  181,   77,  181,
375  |        78,  181,  181,  181,   75,  181,  181,  181,  181,  181,
376  |       181,   94,  181,  181,  181,   77,  181,   78,  181,  181,
377  |        85,  181,   93,  181,   95
378  |     } ;
379  | 
380  | static yyconst short int yy_accept[659] =
381  |     {   0,
382  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
383  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
384  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
385  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
386  |         1,    1,    1,    2,    4,    6,    8,   11,   13,   16,
387  |        19,   22,   25,   27,   30,   33,   36,   39,   42,   45,
388  |        48,   51,   54,   57,   60,   63,   66,   69,   72,   75,
389  |        78,   81,   84,   87,   90,   93,   96,   99,  102,  105,
390  |       108,  111,  114,  117,  120,  123,  126,  129,  132,  135,
391  |       138,  141,  144,  147,  149,  151,  154,  156,  158,  160,
392  | 
393  |       162,  164,  166,  168,  170,  173,  176,  178,  180,  182,
394  |       184,  186,  189,  191,  193,  195,  196,  198,  199,  202,
395  |       205,  207,  209,  211,  213,  215,  217,  219,  220,  221,
396  |       222,  224,  226,  228,  230,  232,  234,  236,  238,  240,
397  |       241,  242,  243,  245,  246,  247,  249,  251,  252,  253,
398  |       255,  257,  258,  260,  262,  264,  266,  268,  270,  272,
399  |       275,  277,  279,  281,  284,  287,  289,  291,  293,  295,
400  |       297,  298,  299,  301,  303,  305,  307,  309,  311,  313,
401  |       315,  317,  318,  318,  319,  319,  320,  320,  321,  322,
402  |       323,  324,  325,  325,  325,  325,  325,  326,  327,  328,
403  | 
404  |       328,  328,  329,  330,  331,  331,  332,  333,  334,  335,
405  |       337,  337,  338,  338,  339,  339,  339,  340,  341,  342,
406  |       343,  344,  344,  344,  345,  346,  347,  348,  349,  350,
407  |       351,  352,  353,  355,  356,  357,  358,  359,  360,  361,
408  |       363,  364,  365,  366,  367,  368,  369,  370,  371,  372,
409  |       373,  374,  375,  376,  376,  376,  376,  376,  377,  377,
410  |       378,  379,  380,  381,  381,  381,  381,  382,  383,  384,
411  |       384,  384,  384,  385,  386,  386,  386,  387,  387,  388,
412  |       388,  389,  390,  390,  391,  391,  392,  393,  394,  394,
413  |       395,  395,  396,  397,  397,  398,  399,  399,  400,  401,
414  | 
415  |       402,  403,  403,  403,  404,  405,  405,  405,  406,  406,
416  |       407,  407,  408,  409,  410,  411,  412,  413,  413,  414,
417  |       414,  415,  416,  416,  417,  417,  417,  418,  418,  419,
418  |       419,  420,  420,  421,  422,  423,  425,  425,  426,  426,
419  |       427,  428,  428,  429,  430,  430,  431,  432,  432,  433,
420  |       434,  435,  436,  437,  438,  439,  439,  440,  442,  442,
421  |       443,  445,  445,  446,  447,  448,  449,  450,  450,  451,
422  |       451,  451,  451,  452,  453,  454,  455,  456,  457,  458,
423  |       459,  460,  461,  463,  464,  465,  466,  467,  468,  469,
424  |       470,  471,  472,  473,  474,  476,  477,  478,  480,  481,
425  | 
426  |       482,  483,  484,  485,  486,  487,  488,  489,  490,  491,
427  |       492,  493,  494,  495,  495,  495,  495,  495,  496,  497,
428  |       497,  498,  499,  500,  501,  502,  503,  503,  504,  504,
429  |       504,  505,  505,  505,  506,  508,  508,  509,  511,  511,
430  |       512,  513,  513,  513,  514,  514,  516,  516,  517,  518,
431  |       519,  520,  521,  522,  523,  524,  525,  526,  527,  528,
432  |       529,  530,  531,  532,  534,  535,  537,  539,  540,  541,
433  |       542,  543,  545,  547,  548,  549,  551,  552,  554,  555,
434  |       556,  557,  558,  559,  560,  561,  562,  563,  564,  565,
435  |       567,  568,  569,  570,  571,  572,  573,  573,  574,  574,
436  | 
437  |       576,  576,  577,  578,  579,  580,  580,  582,  583,  584,
438  |       586,  587,  588,  589,  590,  591,  592,  593,  594,  595,
439  |       597,  598,  600,  601,  602,  603,  604,  606,  607,  608,
440  |       609,  611,  612,  613,  614,  615,  616,  617,  618,  620,
441  |       621,  622,  624,  625,  626,  626,  628,  629,  630,  631,
442  |       632,  633,  634,  635,  636,  637,  638,  639,  640,  641,
443  |       642,  643,  645,  647,  649,  650,  652,  654,  656,  658,
444  |       660,  662,  663,  665,  666,  667,  668,  669,  670,  671,
445  |       672,  674,  675,  676,  677,  678,  679,  680,  681,  682,
446  |       683,  685,  686,  688,  689,  690,  691,  692,  693,  694,
447  | 
448  |       695,  696,  697,  699,  700,  702,  704,  705,  706,  707,
449  |       709,  711,  713,  715,  716,  717,  719,  720,  722,  723,
450  |       724,  726,  727,  728,  729,  730,  731,  732,  733,  734,
451  |       735,  737,  739,  741,  743,  744,  745,  747,  748,  749,
452  |       750,  751,  752,  754,  755,  756,  758,  760,  761,  763,
453  |       765,  765,  765,  765,  765,  765,  766,  766
454  |     } ;
455  | 
456  | static yyconst int yy_ec[256] =
457  |     {   0,
458  |         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
459  |         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
460  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
461  |         1,    2,    5,    6,    7,    8,    9,   10,   11,   12,
462  |        13,   14,   15,   16,   17,   18,   19,   20,   21,   21,
463  |        21,   21,   21,   21,   21,   21,   21,   22,   23,   24,
464  |        25,   26,   27,    1,   28,   28,   29,   28,   30,   31,
465  |         8,    8,   32,    8,    8,   33,    8,   34,   35,    8,
466  |         8,    8,    8,   36,   37,    8,    8,   38,    8,    8,
467  |        39,   40,   41,   42,   43,    1,   44,   45,   46,   47,
468  | 
469  |        48,   49,   50,   51,   52,   53,   54,   55,   56,   57,
470  |        58,   59,   53,   60,   61,   62,   63,   64,   65,   66,
471  |        67,   68,   69,   70,   71,   72,    1,    1,    1,    1,
472  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
473  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
474  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
475  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
476  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
477  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
478  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
479  | 
480  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
481  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
482  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
483  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
484  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
485  |         1,    1,    1,    1,    1
486  |     } ;
487  | 
488  | static yyconst int yy_meta[73] =
489  |     {   0,
490  |         1,    1,    2,    3,    1,    4,    1,    5,    1,    1,
491  |         6,    7,    7,    8,    8,    1,    1,    9,    1,   10,
492  |        10,    1,   11,    1,    1,   12,    1,   10,   10,   10,
493  |        10,    5,    5,    5,    5,    5,    5,    5,    1,    1,
494  |         1,    1,    5,   13,   13,   13,   13,   13,   13,   14,
495  |        14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
496  |        14,   14,   14,   14,   14,   14,   14,   14,    1,    1,
497  |         1,    1
498  |     } ;
499  | 
500  | static yyconst short int yy_base[695] =
501  |     {   0,
502  |         0,    0,   71,   74,   76,   78,   92,   95,   97,   99,
503  |        80,  101,  113,  116,  118,  120,  142,  192,  124,  128,
504  |       119,  123,  147,  151,  260,    0,  330,  332,  372,    0,
505  |       444,    0, 1689, 1688,  123,  128,    0,    0,  132,  144,
506  |         0,    0, 1710, 1713, 1713,  168, 1684,  127, 1706,    0,
507  |      1682,  149, 1666, 1713,  163, 1680,  154,  212,  158,  160,
508  |       201,  499,  505, 1713,  214,  152, 1679,  192, 1713,  213,
509  |      1713, 1713, 1678, 1659,  160, 1641,  294,  174,  282,  170,
510  |      1642,  178, 1641, 1650,  295, 1630, 1639, 1637, 1643, 1713,
511  |       160,  327, 1713, 1713,  339, 1713,  352,  525,  516, 1713,
512  | 
513  |      1713,  355,  347,  349,    0,  519,  541,  364,  215,  531,
514  |      1713, 1713,  545, 1679, 1677,  547, 1713,  554,    0,  567,
515  |      1713,  563, 1713, 1713,  569,  545,  571, 1713,  562,  559,
516  |         0, 1643, 1633, 1713, 1713,  574,    0,  568,  580,    0,
517  |       571,  589, 1713,  585,  580, 1687,    0,  581,  593, 1713,
518  |      1713,  598, 1713,  584,  601, 1713, 1713,  603,  546,    0,
519  |       329,  592,  600,  602,  597,  621, 1686, 1669, 1713, 1713,
520  |       602,  625,    0, 1713,    0, 1713, 1713,    0, 1713, 1713,
521  |      1713, 1713,  633, 1713,  602, 1713, 1683, 1683,    0, 1713,
522  |      1713, 1713,  615,  630,  522,  624, 1713, 1713, 1713,  629,
523  | 
524  |       630, 1713, 1713, 1713, 1666,  633, 1713, 1713,  641,  665,
525  |       658,  614,    0,  679,  657,  673, 1658, 1713, 1713, 1713,
526  |      1657,  640, 1641, 1713,  662, 1624, 1617, 1630, 1616, 1632,
527  |      1618, 1625, 1610, 1611, 1608, 1608, 1611, 1608, 1605,    0,
528  |       629, 1609,  608, 1607,   58,  659, 1612, 1604,  669,  649,
529  |      1610, 1713, 1713,  692,  703,  729,  731, 1713,  732,  737,
530  |      1713,  739, 1713,  734,  743,  733, 1713,    0,  753, 1647,
531  |       745,  759,  761,  764,  766,  757, 1713, 1641, 1713,  779,
532  |      1645, 1643,  781, 1713,  784,    0,  787, 1713,  789, 1713,
533  |       791, 1713, 1713,  793, 1713, 1655,  778,    0, 1607, 1609,
534  | 
535  |      1713,  797,  723, 1713, 1713,  799, 1648, 1713,  802, 1713,
536  |       804,  789, 1713, 1651,    0, 1713, 1713,  808, 1713,  810,
537  |      1713, 1713,  812, 1713,  814,  813, 1713,  820,    0,  809,
538  |      1713,  817,  810, 1713,  815,  848,  835,  834,    0,  854,
539  |      1713,  829, 1650, 1633, 1632, 1713, 1713,  834,    0,    0,
540  |         0, 1713, 1713, 1713, 1713,  862, 1713,  874,  893, 1713,
541  |       843,  841,  895,  888, 1713, 1713, 1713,  833, 1713, 1646,
542  |       814,  704, 1611,  831, 1589, 1580, 1588, 1600, 1591, 1575,
543  |      1584, 1582,    0, 1581, 1594, 1589, 1576,  838, 1591, 1589,
544  |      1585, 1576, 1583, 1586,    0, 1571, 1576,    0, 1577, 1574,
545  | 
546  |      1562, 1564, 1566, 1574, 1559, 1557, 1557, 1570, 1559, 1564,
547  |      1568, 1570, 1558,  825,  758,  899,  828, 1713, 1713,  916,
548  |      1713, 1713, 1560, 1556, 1713, 1713,  884,  906,  926,  916,
549  |       920,  929,  921, 1713,  928,  947, 1713,  902,  932,  951,
550  |       941, 1592,  934,  959,  974, 1713,  965,  978, 1713,  960,
551  |      1713, 1575, 1556, 1551, 1544, 1548, 1542, 1548, 1557, 1551,
552  |      1541, 1538, 1543,    0, 1543,    0, 1553, 1533, 1542, 1530,
553  |      1537,    0,    0, 1531, 1528,    0, 1532,    0, 1527, 1527,
554  |      1524, 1537, 1526, 1531, 1536, 1535,  609, 1523, 1529,    0,
555  |      1516, 1529, 1713, 1713, 1519, 1512,  967,  997, 1004, 1713,
556  | 
557  |       981, 1011, 1713, 1001, 1713,  992, 1016, 1545, 1523, 1529,
558  |      1511, 1509, 1521, 1516, 1519, 1509, 1517, 1512, 1519,    0,
559  |      1498,    0, 1504, 1505, 1511, 1501,    0, 1509, 1494, 1498,
560  |         0, 1507, 1504, 1506, 1489, 1499, 1501, 1499,    0, 1490,
561  |      1494,    0, 1485, 1472, 1019, 1030, 1473, 1425, 1425, 1406,
562  |      1383, 1387, 1384, 1385, 1391, 1368, 1375, 1359, 1376, 1355,
563  |      1355,    0,    0,    0, 1368,    0,    0,    0,    0,    0,
564  |         0, 1366,    0, 1354, 1346, 1395, 1348, 1362, 1335, 1347,
565  |      1348, 1318, 1325, 1322, 1303, 1300, 1270, 1270, 1261, 1263,
566  |         0, 1243,    0, 1255, 1252, 1297, 1296, 1262, 1035, 1020,
567  | 
568  |      1039, 1029, 1037, 1035, 1034, 1029, 1022, 1014, 1000,    0,
569  |         0,    0,    0, 1060, 1014, 1002,  981,    0,  983,  979,
570  |         0,  977,  973,  958,  955,  929,  932,  927,  840,  794,
571  |         0,    0,  732,  697,  675,  675,    0,  485,  479,  328,
572  |       322,  123,    0,  103,   44,    0,    0,  935,    0,    0,
573  |       961, 1033, 1053, 1055,  932, 1713, 1713, 1085, 1099, 1113,
574  |      1127, 1141, 1155, 1169, 1183, 1197, 1211, 1225, 1239, 1253,
575  |      1267, 1281, 1291, 1305, 1319, 1333, 1347, 1045, 1361, 1375,
576  |      1385, 1399, 1409, 1423, 1433, 1447, 1461, 1475,  997, 1489,
577  |      1503, 1517, 1531, 1016
578  | 
579  |     } ;
580  | 
581  | static yyconst short int yy_def[695] =
582  |     {   0,
583  |       657,    1,  658,  658,  659,  659,  660,  660,  661,  661,
584  |       662,  662,  663,  663,  664,  664,  665,  665,  666,  666,
585  |       665,  665,  665,  665,  657,   25,  667,  667,  657,   29,
586  |       657,   31,  668,  668,  669,  669,  665,  665,  670,  670,
587  |       671,  671,  657,  657,  657,  657,  657,  672,  657,  673,
588  |       657,  657,  674,  657,  657,  657,  657,  657,  657,  657,
589  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  673,
590  |       657,  657,  657,  673,  673,  673,  673,  673,  673,  673,
591  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  657,
592  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
593  | 
594  |       657,  657,  657,  657,  675,  675,  657,  657,  657,  657,
595  |       657,  657,  657,  657,  657,  676,  657,  676,  677,  677,
596  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
597  |       678,  678,  678,  657,  657,  657,  679,  657,  657,  680,
598  |       657,  657,  657,  657,  657,  657,  681,  657,  657,  657,
599  |       657,  657,  657,  657,  657,  657,  657,  657,  682,  683,
600  |       684,  657,  657,  657,  657,  657,  657,  685,  657,  657,
601  |       657,  657,  686,  657,  687,  657,  657,  688,  657,  657,
602  |       657,  657,  657,  657,  672,  657,  672,  657,  673,  657,
603  |       657,  657,  674,  674,  657,  657,  657,  657,  657,  657,
604  | 
605  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
606  |       657,  657,  689,  657,  657,  657,  657,  657,  657,  657,
607  |       657,  690,  691,  657,  673,  673,  673,  673,  673,  673,
608  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
609  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
610  |       673,  657,  657,  657,  657,  657,  657,  657,  657,  657,
611  |       657,  657,  657,  657,  657,  657,  657,  675,  675,  657,
612  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
613  |       657,  657,  676,  657,  676,  677,  677,  657,  657,  657,
614  |       657,  657,  657,  657,  657,  657,  657,  678,  678,  678,
615  | 
616  |       657,  657,  679,  657,  657,  657,  680,  657,  657,  657,
617  |       657,  657,  657,  657,  681,  657,  657,  657,  657,  657,
618  |       657,  657,  657,  657,  657,  682,  657,  692,  683,  684,
619  |       657,  693,  657,  657,  657,  657,  657,  657,  694,  657,
620  |       657,  657,  657,  685,  657,  657,  657,  657,  686,  687,
621  |       688,  657,  657,  657,  657,  657,  657,  657,  657,  657,
622  |       657,  657,  657,  689,  657,  657,  657,  690,  657,  690,
623  |       691,  691,  673,  673,  673,  673,  673,  673,  673,  673,
624  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
625  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
626  | 
627  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
628  |       673,  673,  673,  657,  657,  657,  657,  657,  657,  657,
629  |       657,  657,  678,  678,  657,  657,  682,  682,  692,  684,
630  |       684,  693,  657,  657,  657,  657,  657,  657,  657,  657,
631  |       694,  657,  657,  657,  657,  657,  657,  657,  657,  657,
632  |       657,  673,  673,  673,  673,  673,  673,  673,  673,  673,
633  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
634  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
635  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
636  |       673,  673,  657,  657,  678,  678,  657,  657,  657,  657,
637  | 
638  |       657,  657,  657,  657,  657,  657,  657,  673,  673,  673,
639  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
640  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
641  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
642  |       673,  673,  678,  678,  657,  657,  673,  673,  673,  673,
643  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
644  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
645  |       673,  673,  673,  673,  673,  678,  678,  673,  673,  673,
646  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
647  |       673,  673,  673,  673,  673,  657,  678,  673,  673,  673,
648  | 
649  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
650  |       673,  673,  673,  657,  673,  673,  673,  673,  673,  673,
651  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
652  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
653  |       673,  673,  673,  673,  673,  673,  673,  673,  673,  673,
654  |       657,  657,  657,  657,  657,  657,    0,  657,  657,  657,
655  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
656  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
657  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
658  |       657,  657,  657,  657
659  | 
660  |     } ;
661  | 
662  | static yyconst short int yy_nxt[1786] =
663  |     {   0,
664  |        44,   44,   45,   46,   47,   48,   49,   50,   51,   52,
665  |        53,   54,   55,   56,   57,   58,   59,   60,   61,   62,
666  |        63,   64,   65,   66,   67,   68,   69,   50,   50,   50,
667  |        50,   50,   70,   50,   50,   50,   50,   50,   71,   44,
668  |        72,   73,   74,   75,   76,   77,   78,   79,   80,   81,
669  |        50,   82,   50,   50,   83,   50,   50,   50,   50,   84,
670  |        85,   86,   87,   88,   89,   50,   50,   50,   90,   91,
671  |        92,   93,   95,   96,   97,   95,   96,   97,  101,  102,
672  |       101,  102,  117,  118,   98,   99,  650,   98,   99,  103,
673  |       104,  103,  104,  106,  107,  108,  106,  107,  108,  112,
674  | 
675  |       113,  112,  113,  117,  118,  109,  110,  403,  109,  110,
676  |       114,  115,  114,  115,  120,  121,  122,  120,  121,  122,
677  |       124,  125,  124,  125,  140,  404,  135,  136,  140,  137,
678  |       135,  136,  186,  137,  176,  177,  126,  141,  126,  176,
679  |       177,  141,  138,  179,  180,  649,  138,  137,  142,  143,
680  |       144,  137,  142,  143,  144,  179,  180,  127,  191,  127,
681  |       129,  130,  130,  139,  195,  145,  187,  139,  198,  145,
682  |       182,  183,  648,  192,  202,  217,  218,  205,  199,  206,
683  |       206,  196,  203,  204,  252,  131,  131,  131,  132,  131,
684  |       131,  131,  131,  133,  131,  131,  131,  131,  131,  131,
685  | 
686  |       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
687  |       129,  130,  130,  200,  207,  215,  220,  221,  222,  207,
688  |       226,  232,  227,  223,  237,  208,  240,  238,  276,  253,
689  |       201,  233,  216,  277,  241,  131,  131,  131,  132,  131,
690  |       131,  131,  131,  133,  131,  131,  131,  131,  131,  131,
691  |       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
692  |       128,  146,  128,  128,  128,  128,  128,  147,  128,  128,
693  |       128,  128,  128,  128,  128,  128,  128,  128,  148,  128,
694  |       128,  128,  128,  128,  128,  128,  128,  147,  147,  147,
695  |       147,  147,  147,  147,  147,  147,  147,  147,  128,  149,
696  | 
697  |       128,  128,  147,  147,  147,  147,  147,  147,  147,  147,
698  |       147,  147,  147,  147,  147,  147,  147,  147,  147,  147,
699  |       147,  147,  147,  147,  147,  147,  147,  147,  128,  128,
700  |       128,  128,  151,  152,  151,  152,  234,  229,  235,  331,
701  |       256,  153,  254,  153,  230,  244,  245,  236,  154,  255,
702  |       154,  231,  257,  256,  258,  259,  246,  263,  264,  247,
703  |       265,  266,  265,  266,  647,  267,  274,  275,  332,  155,
704  |       646,  155,  156,  156,  157,  158,  156,  159,  156,  160,
705  |       156,  156,  161,  156,  156,  156,  156,  156,  156,  162,
706  |       163,  164,  165,  156,  156,  156,  156,  156,  156,  160,
707  | 
708  |       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
709  |       156,  166,  156,  156,  160,  160,  160,  160,  160,  160,
710  |       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
711  |       160,  160,  160,  160,  160,  160,  160,  160,  160,  160,
712  |       156,  156,  156,  156,  128,  167,  128,  128,  128,  128,
713  |       128,  168,  128,  128,  128,  128,  169,  128,  128,  170,
714  |       128,  128,  171,  128,  128,  128,  128,  128,  128,  128,
715  |       128,  168,  168,  168,  168,  168,  168,  168,  168,  168,
716  |       168,  168,  128,  172,  128,  128,  168,  168,  168,  168,
717  |       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
718  | 
719  |       168,  168,  168,  168,  168,  168,  168,  168,  168,  168,
720  |       168,  168,  128,  128,  128,  128,  209,  256,  210,  210,
721  |       269,  645,  209,  195,  214,  214,  256,  644,  211,  257,
722  |       262,  212,  270,  271,  211,  212,  213,  212,  260,  256,
723  |       196,  212,  272,  261,  278,  271,  211,  279,  280,  284,
724  |       285,  327,  211,  212,  273,  273,  284,  285,  292,  212,
725  |       296,  212,  273,  292,  213,  288,  289,  212,  287,  288,
726  |       289,  290,  291,  293,  294,  295,  301,  302,  297,  297,
727  |       295,  304,  305,  306,  308,  328,  304,  310,  311,  308,
728  |       309,  310,  311,  313,  316,  317,  318,  321,  313,  316,
729  | 
730  |       319,  320,  321,  322,  323,  324,  325,  186,  312,  312,
731  |       273,  333,  333,  334,  335,  346,  340,  340,  334,  335,
732  |       346,  336,  336,  341,  342,  352,  337,  347,  348,  338,
733  |       200,  337,  657,  338,  338,  182,  183,  353,  338,  339,
734  |       193,  187,  353,  354,  337,  369,  212,  201,  354,  337,
735  |       212,  338,  206,  206,  194,  537,  338,  400,  215,  338,
736  |       358,  358,  356,  357,  338,  357,  538,  339,  212,  401,
737  |       359,  360,  362,  360,  362,  216,  212,  363,  363,  370,
738  |       356,  357,  209,  397,  210,  210,  365,  357,  359,  360,
739  |       398,  365,  373,  414,  211,  360,  209,  361,  214,  214,
740  | 
741  |       411,  361,  405,  412,  416,  374,  657,  375,  211,  376,
742  |       415,  212,  211,  377,  371,  212,  378,  643,  406,  361,
743  |       409,  417,  379,  380,  381,  382,  211,  361,  425,  410,
744  |       256,  642,  256,  212,  258,  259,  263,  264,  256,  641,
745  |       256,  212,  257,  256,  257,  256,  265,  266,  425,  261,
746  |       260,  256,  257,  262,  269,  261,  265,  266,  278,  271,
747  |       272,  418,  419,  419,  420,  272,  270,  271,  274,  275,
748  |       276,  493,  273,  273,  640,  421,  493,  273,  273,  296,
749  |       273,  279,  280,  284,  285,  273,  284,  285,  287,  288,
750  |       289,  288,  289,  290,  291,  293,  294,  297,  297,  301,
751  | 
752  |       302,  305,  306,  309,  310,  311,  310,  311,  312,  312,
753  |       317,  318,  319,  320,  322,  323,  324,  325,  327,  331,
754  |       330,  312,  312,  326,  451,  428,  414,  431,  273,  333,
755  |       333,  341,  342,  273,  435,  435,  347,  348,  369,  433,
756  |       434,  494,  434,  415,  436,  437,  494,  437,  332,  439,
757  |       639,  439,  328,  372,  440,  440,  432,  433,  434,  429,
758  |       363,  363,  436,  437,  434,  335,  338,  336,  336,  437,
759  |       338,  335,  370,  340,  340,  361,  443,  337,  443,  361,
760  |       438,  444,  444,  337,  438,  453,  338,  638,  338,  327,
761  |       338,  454,  455,  358,  358,  337,  338,  361,  468,  469,
762  | 
763  |       416,  337,  438,  445,  446,  361,  446,  447,  338,  447,
764  |       438,  327,  448,  448,  363,  363,  338,  417,  419,  420,
765  |       450,  445,  446,  328,  450,  449,  331,  449,  446,  326,
766  |       331,  428,  330,  655,  438,  497,  651,  497,  438,  431,
767  |       498,  498,  450,  449,  656,  328,  652,  435,  435,  449,
768  |       450,  440,  440,  444,  444,  332,  438,  499,  500,  332,
769  |       500,  501,  651,  501,  438,  429,  502,  502,  432,  637,
770  |       440,  440,  652,  504,  636,  499,  500,  504,  444,  444,
771  |       635,  503,  500,  503,  448,  448,  498,  498,  506,  357,
772  |       506,  357,  450,  507,  507,  504,  450,  448,  448,  503,
773  | 
774  |       502,  502,  634,  504,  633,  503,  364,  357,  360,  364,
775  |       360,  507,  507,  357,  450,  573,  498,  498,  545,  632,
776  |       545,  631,  450,  546,  546,  441,  360,  434,  441,  434,
777  |       502,  502,  360,  504,  653,  507,  507,  504,  546,  546,
778  |       630,  437,  629,  437,  628,  434,  446,  627,  446,  546,
779  |       546,  434,  654,  654,  653,  504,  655,  298,  298,  437,
780  |       500,  614,  500,  504,  446,  437,  626,  656,  625,  624,
781  |       446,  623,  654,  654,  654,  654,  622,  621,  500,  620,
782  |       619,  618,  617,  616,  500,   94,   94,   94,   94,   94,
783  |        94,   94,   94,   94,   94,   94,   94,   94,   94,  100,
784  | 
785  |       100,  100,  100,  100,  100,  100,  100,  100,  100,  100,
786  |       100,  100,  100,  105,  105,  105,  105,  105,  105,  105,
787  |       105,  105,  105,  105,  105,  105,  105,  111,  111,  111,
788  |       111,  111,  111,  111,  111,  111,  111,  111,  111,  111,
789  |       111,  116,  116,  116,  116,  116,  116,  116,  116,  116,
790  |       116,  116,  116,  116,  116,  119,  119,  119,  119,  119,
791  |       119,  119,  119,  119,  119,  119,  119,  119,  119,  123,
792  |       123,  123,  123,  123,  123,  123,  123,  123,  123,  123,
793  |       123,  123,  123,  128,  128,  128,  128,  128,  128,  128,
794  |       128,  128,  128,  128,  128,  128,  128,  134,  134,  134,
795  | 
796  |       134,  134,  134,  134,  134,  134,  134,  134,  134,  134,
797  |       134,  150,  150,  150,  150,  150,  150,  150,  150,  150,
798  |       150,  150,  150,  150,  150,  173,  173,  173,  173,  173,
799  |       173,  173,  173,  173,  173,  173,  173,  173,  173,  175,
800  |       175,  175,  175,  175,  175,  175,  175,  175,  175,  175,
801  |       175,  175,  175,  178,  178,  178,  178,  178,  178,  178,
802  |       178,  178,  178,  178,  178,  178,  178,  181,  181,  181,
803  |       181,  181,  181,  181,  181,  181,  181,  181,  181,  181,
804  |       181,  185,  185,  185,  185,  185,  185,  185,  185,  185,
805  |       185,  185,  185,  185,  185,  189,  615,  614,  596,  613,
806  | 
807  |       189,  612,  611,  189,  189,  193,  193,  193,  193,  193,
808  |       610,  193,  193,  193,  193,  193,  193,  193,  193,  268,
809  |       609,  608,  268,  268,  268,  268,  607,  268,  268,  268,
810  |       268,  268,  268,  283,  283,  283,  283,  283,  283,  283,
811  |       283,  283,  283,  283,  283,  283,  283,  286,  606,  605,
812  |       286,  286,  286,  286,  286,  286,  286,  286,  286,  286,
813  |       286,  303,  303,  303,  604,  303,  303,  303,  303,  303,
814  |       303,  303,  603,  303,  303,  307,  307,  307,  602,  307,
815  |       307,  307,  307,  307,  307,  307,  307,  307,  307,  315,
816  |       601,  600,  599,  598,  315,  597,  596,  315,  315,  326,
817  | 
818  |       595,  594,  326,  326,  326,  326,  326,  326,  326,  326,
819  |       326,  326,  326,  329,  593,  592,  591,  590,  329,  589,
820  |       588,  329,  329,  330,  587,  586,  330,  330,  330,  330,
821  |       330,  330,  330,  330,  330,  330,  330,  344,  585,  584,
822  |       583,  344,  344,  582,  581,  344,  344,  349,  349,  349,
823  |       349,  349,  349,  349,  349,  349,  349,  580,  349,  349,
824  |       349,  350,  350,  350,  350,  350,  350,  383,  350,  350,
825  |       350,  350,  350,  350,  350,  351,  351,  351,  351,  351,
826  |       351,  579,  351,  351,  351,  351,  351,  351,  351,  368,
827  |       368,  368,  368,  368,  368,  368,  368,  368,  368,  368,
828  | 
829  |       368,  368,  368,  371,  371,  371,  371,  371,  578,  371,
830  |       371,  371,  371,  371,  371,  371,  371,  427,  577,  427,
831  |       427,  427,  427,  427,  427,  427,  427,  427,  427,  427,
832  |       427,  430,  576,  430,  430,  430,  430,  430,  430,  430,
833  |       430,  430,  430,  430,  430,  575,  574,  573,  572,  571,
834  |       570,  569,  568,  567,  566,  565,  564,  563,  562,  561,
835  |       560,  559,  558,  557,  556,  555,  554,  553,  552,  551,
836  |       550,  549,  548,  547,  544,  543,  542,  541,  540,  539,
837  |       536,  535,  534,  533,  532,  531,  530,  529,  528,  527,
838  |       526,  525,  524,  523,  522,  521,  520,  519,  518,  517,
839  | 
840  |       516,  515,  514,  513,  512,  511,  510,  509,  508,  505,
841  |       496,  495,  492,  491,  490,  489,  488,  487,  486,  485,
842  |       484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
843  |       474,  473,  472,  471,  470,  467,  466,  465,  464,  463,
844  |       462,  461,  460,  459,  458,  457,  456,  452,  657,  442,
845  |       345,  343,  314,  426,  424,  423,  296,  282,  281,  422,
846  |       276,  413,  408,  407,  402,  399,  396,  395,  394,  393,
847  |       392,  391,  390,  389,  388,  387,  386,  385,  384,  383,
848  |       372,  367,  366,  355,  188,  657,  345,  343,  314,  300,
849  |       299,  282,  281,  251,  250,  249,  248,  243,  242,  239,
850  | 
851  |       228,  225,  224,  219,  197,  194,  190,  188,  184,  657,
852  |       174,  174,   43,  657,  657,  657,  657,  657,  657,  657,
853  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
854  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
855  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
856  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
857  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
858  |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
859  |       657,  657,  657,  657,  657
860  |     } ;
861  | 
862  | static yyconst short int yy_chk[1786] =
863  |     {   0,
864  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
865  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
866  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
867  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
868  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
869  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
870  |         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
871  |         1,    1,    3,    3,    3,    4,    4,    4,    5,    5,
872  |         6,    6,   11,   11,    3,    3,  645,    4,    4,    5,
873  |         5,    6,    6,    7,    7,    7,    8,    8,    8,    9,
874  | 
875  |         9,   10,   10,   12,   12,    7,    7,  245,    8,    8,
876  |         9,    9,   10,   10,   13,   13,   13,   14,   14,   14,
877  |        15,   15,   16,   16,   21,  245,   19,   19,   22,   19,
878  |        20,   20,   48,   20,   35,   35,   15,   21,   16,   36,
879  |        36,   22,   19,   39,   39,  644,   20,   19,   23,   23,
880  |        23,   20,   24,   24,   24,   40,   40,   15,   52,   16,
881  |        17,   17,   17,   19,   55,   23,   48,   20,   57,   24,
882  |        46,   46,  642,   52,   59,   66,   66,   60,   57,   60,
883  |        60,   55,   59,   59,   91,   17,   17,   17,   17,   17,
884  |        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
885  | 
886  |        17,   17,   17,   17,   17,   17,   17,   17,   17,   17,
887  |        18,   18,   18,   58,   61,   65,   68,   68,   70,   61,
888  |        75,   78,   75,   70,   80,   61,   82,   80,  109,   91,
889  |        58,   78,   65,  109,   82,   18,   18,   18,   18,   18,
890  |        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
891  |        18,   18,   18,   18,   18,   18,   18,   18,   18,   18,
892  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
893  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
894  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
895  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
896  | 
897  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
898  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
899  |        25,   25,   25,   25,   25,   25,   25,   25,   25,   25,
900  |        25,   25,   27,   27,   28,   28,   79,   77,   79,  161,
901  |        95,   27,   92,   28,   77,   85,   85,   79,   27,   92,
902  |        28,   77,   95,   95,   97,   97,   85,  102,  102,   85,
903  |       103,  103,  104,  104,  641,  103,  108,  108,  161,   27,
904  |       640,   28,   29,   29,   29,   29,   29,   29,   29,   29,
905  |        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
906  |        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
907  | 
908  |        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
909  |        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
910  |        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
911  |        29,   29,   29,   29,   29,   29,   29,   29,   29,   29,
912  |        29,   29,   29,   29,   31,   31,   31,   31,   31,   31,
913  |        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
914  |        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
915  |        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
916  |        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
917  |        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
918  | 
919  |        31,   31,   31,   31,   31,   31,   31,   31,   31,   31,
920  |        31,   31,   31,   31,   31,   31,   62,   99,   62,   62,
921  |       106,  639,   63,  195,   63,   63,   98,  638,   62,   99,
922  |        99,   62,  106,  106,   63,   62,   62,   63,   98,   98,
923  |       195,   63,  107,   98,  110,  110,   62,  113,  113,  116,
924  |       116,  159,   63,   62,  107,  107,  118,  118,  126,   63,
925  |       130,   62,  107,  126,   62,  122,  122,   63,  120,  120,
926  |       120,  125,  125,  127,  127,  129,  136,  136,  130,  130,
927  |       129,  138,  139,  139,  141,  159,  138,  144,  144,  141,
928  |       142,  142,  142,  145,  148,  149,  149,  154,  145,  148,
929  | 
930  |       152,  152,  154,  155,  155,  158,  158,  185,  142,  142,
931  |       107,  162,  162,  163,  165,  171,  165,  165,  163,  164,
932  |       171,  164,  164,  166,  166,  193,  165,  172,  172,  165,
933  |       200,  164,  194,  165,  164,  183,  183,  196,  164,  164,
934  |       194,  185,  196,  201,  165,  222,  212,  200,  201,  164,
935  |       212,  165,  206,  206,  193,  487,  164,  243,  215,  165,
936  |       209,  209,  206,  206,  164,  206,  487,  164,  212,  243,
937  |       209,  209,  211,  209,  211,  215,  212,  211,  211,  222,
938  |       206,  206,  210,  241,  210,  210,  216,  206,  209,  209,
939  |       241,  216,  225,  254,  210,  209,  214,  210,  214,  214,
940  | 
941  |       250,  210,  246,  250,  255,  225,  372,  225,  214,  225,
942  |       254,  214,  210,  225,  372,  214,  225,  636,  246,  210,
943  |       249,  255,  225,  225,  225,  225,  214,  210,  303,  249,
944  |       256,  635,  257,  214,  259,  259,  264,  264,  260,  634,
945  |       262,  214,  256,  256,  257,  257,  266,  266,  303,  257,
946  |       260,  260,  262,  262,  269,  260,  265,  265,  271,  271,
947  |       272,  265,  273,  273,  273,  274,  269,  269,  275,  275,
948  |       276,  415,  272,  272,  633,  276,  415,  274,  274,  297,
949  |       272,  280,  280,  283,  283,  274,  285,  285,  287,  287,
950  |       287,  289,  289,  291,  291,  294,  294,  297,  297,  302,
951  | 
952  |       302,  306,  306,  309,  309,  309,  311,  311,  312,  312,
953  |       318,  318,  320,  320,  323,  323,  325,  325,  326,  330,
954  |       332,  309,  309,  328,  371,  328,  414,  332,  272,  333,
955  |       333,  342,  342,  274,  335,  335,  348,  348,  368,  333,
956  |       333,  417,  333,  414,  335,  335,  417,  335,  330,  337,
957  |       630,  337,  326,  371,  337,  337,  332,  333,  333,  328,
958  |       362,  362,  335,  335,  333,  336,  338,  336,  336,  335,
959  |       338,  340,  368,  340,  340,  361,  356,  336,  356,  361,
960  |       336,  356,  356,  340,  336,  374,  340,  629,  338,  427,
961  |       340,  374,  374,  358,  358,  336,  338,  361,  388,  388,
962  | 
963  |       416,  340,  336,  358,  358,  361,  358,  359,  340,  359,
964  |       336,  428,  359,  359,  363,  363,  340,  416,  420,  420,
965  |       364,  358,  358,  427,  364,  363,  430,  363,  358,  429,
966  |       431,  429,  432,  655,  438,  433,  648,  433,  438,  432,
967  |       433,  433,  364,  363,  655,  428,  648,  435,  435,  363,
968  |       364,  439,  439,  443,  443,  430,  438,  435,  435,  431,
969  |       435,  436,  651,  436,  438,  429,  436,  436,  432,  628,
970  |       440,  440,  651,  441,  627,  435,  435,  441,  444,  444,
971  |       626,  440,  435,  440,  447,  447,  497,  497,  445,  444,
972  |       445,  444,  450,  445,  445,  441,  450,  448,  448,  440,
973  | 
974  |       501,  501,  625,  441,  624,  440,  689,  444,  448,  689,
975  |       448,  506,  506,  444,  450,  623,  498,  498,  499,  622,
976  |       499,  620,  450,  499,  499,  694,  448,  498,  694,  498,
977  |       502,  502,  448,  504,  652,  507,  507,  504,  545,  545,
978  |       619,  502,  617,  502,  616,  498,  507,  615,  507,  546,
979  |       546,  498,  652,  652,  653,  504,  654,  678,  678,  502,
980  |       546,  614,  546,  504,  507,  502,  609,  654,  608,  607,
981  |       507,  606,  653,  653,  654,  654,  605,  604,  546,  603,
982  |       602,  601,  600,  599,  546,  658,  658,  658,  658,  658,
983  |       658,  658,  658,  658,  658,  658,  658,  658,  658,  659,
984  | 
985  |       659,  659,  659,  659,  659,  659,  659,  659,  659,  659,
986  |       659,  659,  659,  660,  660,  660,  660,  660,  660,  660,
987  |       660,  660,  660,  660,  660,  660,  660,  661,  661,  661,
988  |       661,  661,  661,  661,  661,  661,  661,  661,  661,  661,
989  |       661,  662,  662,  662,  662,  662,  662,  662,  662,  662,
990  |       662,  662,  662,  662,  662,  663,  663,  663,  663,  663,
991  |       663,  663,  663,  663,  663,  663,  663,  663,  663,  664,
992  |       664,  664,  664,  664,  664,  664,  664,  664,  664,  664,
993  |       664,  664,  664,  665,  665,  665,  665,  665,  665,  665,
994  |       665,  665,  665,  665,  665,  665,  665,  666,  666,  666,
995  | 
996  |       666,  666,  666,  666,  666,  666,  666,  666,  666,  666,
997  |       666,  667,  667,  667,  667,  667,  667,  667,  667,  667,
998  |       667,  667,  667,  667,  667,  668,  668,  668,  668,  668,
999  |       668,  668,  668,  668,  668,  668,  668,  668,  668,  669,
1000 |       669,  669,  669,  669,  669,  669,  669,  669,  669,  669,
1001 |       669,  669,  669,  670,  670,  670,  670,  670,  670,  670,
1002 |       670,  670,  670,  670,  670,  670,  670,  671,  671,  671,
1003 |       671,  671,  671,  671,  671,  671,  671,  671,  671,  671,
1004 |       671,  672,  672,  672,  672,  672,  672,  672,  672,  672,
1005 |       672,  672,  672,  672,  672,  673,  598,  597,  596,  595,
1006 | 
1007 |       673,  594,  592,  673,  673,  674,  674,  674,  674,  674,
1008 |       590,  674,  674,  674,  674,  674,  674,  674,  674,  675,
1009 |       589,  588,  675,  675,  675,  675,  587,  675,  675,  675,
1010 |       675,  675,  675,  676,  676,  676,  676,  676,  676,  676,
1011 |       676,  676,  676,  676,  676,  676,  676,  677,  586,  585,
1012 |       677,  677,  677,  677,  677,  677,  677,  677,  677,  677,
1013 |       677,  679,  679,  679,  584,  679,  679,  679,  679,  679,
1014 |       679,  679,  583,  679,  679,  680,  680,  680,  582,  680,
1015 |       680,  680,  680,  680,  680,  680,  680,  680,  680,  681,
1016 |       581,  580,  579,  578,  681,  577,  576,  681,  681,  682,
1017 | 
1018 |       575,  574,  682,  682,  682,  682,  682,  682,  682,  682,
1019 |       682,  682,  682,  683,  572,  565,  561,  560,  683,  559,
1020 |       558,  683,  683,  684,  557,  556,  684,  684,  684,  684,
1021 |       684,  684,  684,  684,  684,  684,  684,  685,  555,  554,
1022 |       553,  685,  685,  552,  551,  685,  685,  686,  686,  686,
1023 |       686,  686,  686,  686,  686,  686,  686,  550,  686,  686,
1024 |       686,  687,  687,  687,  687,  687,  687,  549,  687,  687,
1025 |       687,  687,  687,  687,  687,  688,  688,  688,  688,  688,
1026 |       688,  548,  688,  688,  688,  688,  688,  688,  688,  690,
1027 |       690,  690,  690,  690,  690,  690,  690,  690,  690,  690,
1028 | 
1029 |       690,  690,  690,  691,  691,  691,  691,  691,  547,  691,
1030 |       691,  691,  691,  691,  691,  691,  691,  692,  544,  692,
1031 |       692,  692,  692,  692,  692,  692,  692,  692,  692,  692,
1032 |       692,  693,  543,  693,  693,  693,  693,  693,  693,  693,
1033 |       693,  693,  693,  693,  693,  541,  540,  538,  537,  536,
1034 |       535,  534,  533,  532,  530,  529,  528,  526,  525,  524,
1035 |       523,  521,  519,  518,  517,  516,  515,  514,  513,  512,
1036 |       511,  510,  509,  508,  496,  495,  492,  491,  489,  488,
1037 |       486,  485,  484,  483,  482,  481,  480,  479,  477,  475,
1038 |       474,  471,  470,  469,  468,  467,  465,  463,  462,  461,
1039 | 
1040 |       460,  459,  458,  457,  456,  455,  454,  453,  452,  442,
1041 |       424,  423,  413,  412,  411,  410,  409,  408,  407,  406,
1042 |       405,  404,  403,  402,  401,  400,  399,  397,  396,  394,
1043 |       393,  392,  391,  390,  389,  387,  386,  385,  384,  382,
1044 |       381,  380,  379,  378,  377,  376,  375,  373,  370,  345,
1045 |       344,  343,  314,  307,  300,  299,  296,  282,  281,  278,
1046 |       270,  251,  248,  247,  244,  242,  239,  238,  237,  236,
1047 |       235,  234,  233,  232,  231,  230,  229,  228,  227,  226,
1048 |       223,  221,  217,  205,  188,  187,  168,  167,  146,  133,
1049 |       132,  115,  114,   89,   88,   87,   86,   84,   83,   81,
1050 | 
1051 |        76,   74,   73,   67,   56,   53,   51,   49,   47,   43,
1052 |        34,   33,  657,  657,  657,  657,  657,  657,  657,  657,
1053 |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1054 |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1055 |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1056 |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1057 |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1058 |       657,  657,  657,  657,  657,  657,  657,  657,  657,  657,
1059 |       657,  657,  657,  657,  657
1060 |     } ;
1061 | 
1062 | static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
1063 | static char *yy_full_match;
1064 | static int yy_lp;
1065 | static int yy_looking_for_trail_begin = 0;
1066 | static int yy_full_lp;
1067 | static int *yy_full_state;
1068 | #define YY_TRAILING_MASK 0x2000
1069 | #define YY_TRAILING_HEAD_MASK 0x4000
1070 | #define REJECT \
1071 | { \
1072 | *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
1073 | yy_cp = yy_full_match; /* restore poss. backed-over text */ \
1074 | yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \
1075 | yy_state_ptr = yy_full_state; /* restore orig. state */ \
1076 | yy_current_state = *yy_state_ptr; /* restore curr. state */ \
1077 | ++yy_lp; \
1078 | goto find_rule; \
1079 | }
1080 | #define yymore() yymore_used_but_not_detected
1081 | #define YY_MORE_ADJ 0
1082 | #define YY_RESTORE_YY_MORE_OFFSET
1083 | char *yytext;
1084 | #define INITIAL 0
1085 | #define START_COMMENT 1
1086 | #define COMMENT 2
1087 | #define SPECIAL_COMMENT 3
1088 | 
1089 | #define START_COMMENT_CPP 4
1090 | #define COMMENT_CPP 5
1091 | #define SPECIAL_COMMENT_CPP 6
1092 | 
1093 | #define CPP 7
1094 | #define CPP_START 8
1095 | 
1096 | #define CPP_INCLUDE 9
1097 | #define CPP_INC_FILE 10
1098 | #define CPP_INC_FLAGS 11
1099 | 
1100 | #define CPP_DEFINE 12
1101 | #define CPP_DEFINE_ARGP 13
1102 | #define CPP_DEFINE_BODY 14
1103 | #define CPP_DEFINE_ARGS 15
1104 | 
1105 | #define GNU_LABEL 16
1106 | #define GNU_ATTRIBUTE 17
1107 | #define GNU_EXTENSION 18
1108 | #define GNU_TYPEOF 19
1109 | 
1110 | #define CHAR_VARYING 20
1111 | 
1112 | /***************************************
1113 |   $Header: /home/amb/cxref/RCS/parse.l 1.28 1998/10/23 10:41:57 amb Exp $
1114 | 
1115 |   C Cross Referencing & Documentation tool. Version 1.4c.
1116 | 
1117 |   C lexical analyser
1118 |   CPP processing, including GNU extensions, using yylval as a string.
1119 |   ******************/ /******************
1120 |   Written by Andrew M. Bishop
1121 | 
1122 |   This file Copyright 1995,96,97,98 Andrew M. Bishop
1123 |   It may be distributed under the GNU Public License, version 2, or
1124 |   any higher version.  See section COPYING of the GNU Public license
1125 |   for conditions under which this file may be redistributed.
1126 |   ***************************************/
1127 | 
1128 | #include "parse-yy.h"
1129 | #include "parse-yacc.h"
1130 | #include "cxref.h"
1131 | #include "memory.h"
1132 | 
1133 | /*+ The name of the current file. +*/
1134 | char* parse_file=NULL;
1135 | 
1136 | /*+ The current line number in the file. +*/
1137 | int parse_line=0;
1138 | 
1139 | 
1140 | /*+ If we are in a header file then ignore the comments. +*/
1141 | extern int in_header;
1142 | 
1143 | /*+ One of the options controlling how comments are processed, +*/
1144 | extern int option_all_comments,       /*+ use all comments not just the specially formattted ones. +*/
1145 |            option_block_comments,     /*+ remove the leading block comment marker. +*/
1146 |            option_no_comments;        /*+ ignore all comments. +*/
1147 | 
1148 | /*+ Flag that indicates if the comment warnings are to be issued. +*/
1149 | extern int option_warn;
1150 | 
1151 | 
1152 | /*+ The flags that come out of GCC when a file is included. +*/
1153 | static int inc_file_flags=0;
1154 | 
1155 | /*+ The value of the thing that is defined (but only if it is simple). +*/
1156 | static char* define_value=NULL;
1157 | 
1158 | /*+ The lex state at the time that a comment is seen. +*/
1159 | static int comment_init_state=INITIAL;
1160 | 
1161 | /*+ To get around the GCC __attribute__ keyword, skip over matched () counted by this. +*/
1162 | static int gnu_att_depth=0;
1163 | 
1164 | /*+ To get around the GCC __typeof__ keyword, skip over matched () counted by this. +*/
1165 | static int gnu_typ_depth=0;
1166 | 
1167 | /*+ If we see a comment immediately after a ',', ';', '};', '},' or ')' then push it before. +*/
1168 | static int push_past=0;
1169 | 
1170 | 
1171 | /*++++++++++++++++++++++++++++++++++++++
1172 |   Reset the Lexer, ready for the next file.
1173 |   ++++++++++++++++++++++++++++++++++++++*/
1174 | 
1175 | void ResetLexer(void)
1176 | {
1177 |  parse_file=NULL;
1178 |  parse_line=0;
1179 |  inc_file_flags=0;
1180 |  define_value=NULL;
1181 |  comment_init_state=INITIAL;
1182 |  gnu_att_depth=0;
1183 |  gnu_typ_depth=0;
1184 |  push_past=0;
1185 | }
1186 | 
1187 | 
1188 | /* Macros after this point can all be overridden by user definitions in
1189 |  * section 1.
1190 |  */
1191 | 
1192 | #ifndef YY_SKIP_YYWRAP
1193 | #ifdef __cplusplus
1194 | extern "C" int yywrap YY_PROTO(( void ));
1195 | #else
1196 | extern int yywrap YY_PROTO(( void ));
1197 | #endif
1198 | #endif
1199 | 
1200 | #ifndef YY_NO_UNPUT
1201 | static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1202 | #endif
1203 | 
1204 | #ifndef yytext_ptr
1205 | static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1206 | #endif
1207 | 
1208 | #ifdef YY_NEED_STRLEN
1209 | static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1210 | #endif
1211 | 
1212 | #ifndef YY_NO_INPUT
1213 | #ifdef __cplusplus
1214 | static int yyinput YY_PROTO(( void ));
1215 | #else
1216 | static int input YY_PROTO(( void ));
1217 | #endif
1218 | #endif
1219 | 
1220 | #if YY_STACK_USED
1221 | static int yy_start_stack_ptr = 0;
1222 | static int yy_start_stack_depth = 0;
1223 | static int *yy_start_stack = 0;
1224 | #ifndef YY_NO_PUSH_STATE
1225 | static void yy_push_state YY_PROTO(( int new_state ));
1226 | #endif
1227 | #ifndef YY_NO_POP_STATE
1228 | static void yy_pop_state YY_PROTO(( void ));
1229 | #endif
1230 | #ifndef YY_NO_TOP_STATE
1231 | static int yy_top_state YY_PROTO(( void ));
1232 | #endif
1233 | 
1234 | #else
1235 | #define YY_NO_PUSH_STATE 1
1236 | #define YY_NO_POP_STATE 1
1237 | #define YY_NO_TOP_STATE 1
1238 | #endif
1239 | 
1240 | #ifdef YY_MALLOC_DECL
1241 | YY_MALLOC_DECL
1242 | #else
1243 | #if __STDC__
1244 | #ifndef __cplusplus
1245 | #include <stdlib.h>
1246 | #endif
1247 | #else
1248 | /* Just try to get by without declaring the routines.  This will fail
1249 |  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1250 |  * or sizeof(void*) != sizeof(int).
1251 |  */
1252 | #endif
1253 | #endif
1254 | 
1255 | /* Amount of stuff to slurp up with each read. */
1256 | #ifndef YY_READ_BUF_SIZE
1257 | #define YY_READ_BUF_SIZE 8192
1258 | #endif
1259 | 
1260 | /* Copy whatever the last rule matched to the standard output. */
1261 | 
1262 | #ifndef ECHO
1263 | /* This used to be an fputs(), but since the string might contain NUL's,
1264 |  * we now use fwrite().
1265 |  */
1266 | #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1267 | #endif
1268 | 
1269 | /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1270 |  * is returned in "result".
1271 |  */
1272 | #ifndef YY_INPUT
1273 | #define YY_INPUT(buf,result,max_size) \
1274 | 	if ( yy_current_buffer->yy_is_interactive ) \
1275 | 		{ \
1276 | 		int c = '*', n; \
1277 | 		for ( n = 0; n < max_size && \
1278 | 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1279 | 			buf[n] = (char) c; \
1280 | 		if ( c == '\n' ) \
1281 | 			buf[n++] = (char) c; \
1282 | 		if ( c == EOF && ferror( yyin ) ) \
1283 | 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1284 | 		result = n; \
1285 | 		} \
1286 | 	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1287 | 		  && ferror( yyin ) ) \
1288 | 		YY_FATAL_ERROR( "input in flex scanner failed" );
1289 | #endif
1290 | 
1291 | /* No semi-colon after return; correct usage is to write "yyterminate();" -
1292 |  * we don't want an extra ';' after the "return" because that will cause
1293 |  * some compilers to complain about unreachable statements.
1294 |  */
1295 | #ifndef yyterminate
1296 | #define yyterminate() return YY_NULL
1297 | #endif
1298 | 
1299 | /* Number of entries by which start-condition stack grows. */
1300 | #ifndef YY_START_STACK_INCR
1301 | #define YY_START_STACK_INCR 25
1302 | #endif
1303 | 
1304 | /* Report a fatal error. */
1305 | #ifndef YY_FATAL_ERROR
1306 | #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1307 | #endif
1308 | 
1309 | /* Default declaration of generated scanner - a define so the user can
1310 |  * easily add parameters.
1311 |  */
1312 | #ifndef YY_DECL
1313 | #define YY_DECL int yylex YY_PROTO(( void ))
1314 | #endif
1315 | 
1316 | /* Code executed at the beginning of each rule, after yytext and yyleng
1317 |  * have been set up.
1318 |  */
1319 | #ifndef YY_USER_ACTION
1320 | #define YY_USER_ACTION
1321 | #endif
1322 | 
1323 | /* Code executed at the end of each rule. */
1324 | #ifndef YY_BREAK
1325 | #define YY_BREAK break;
1326 | #endif
1327 | 
1328 | #define YY_RULE_SETUP \
1329 | 	YY_USER_ACTION
1330 | 
1331 | YY_DECL
1332 | 	{
1333 | 	register yy_state_type yy_current_state;
1334 | 	register char *yy_cp, *yy_bp;
1335 | 	register int yy_act;
1336 | 
1337 | 
1338 | 
1339 |  /* Comments, could be embedded in a preprocessor directive. */
1340 | 
1341 | 
1342 | 	if ( yy_init )
1343 | 		{
1344 | 		yy_init = 0;
1345 | 
1346 | #ifdef YY_USER_INIT
1347 | 		YY_USER_INIT;
1348 | #endif
1349 | 
1350 | 		if ( ! yy_start )
1351 | 			yy_start = 1;	/* first start state */
1352 | 
1353 | 		if ( ! yyin )
1354 | 			yyin = stdin;
1355 | 
1356 | 		if ( ! yyout )
1357 | 			yyout = stdout;
1358 | 
1359 | 		if ( ! yy_current_buffer )
1360 | 			yy_current_buffer =
1361 | 				yy_create_buffer( yyin, YY_BUF_SIZE );
1362 | 
1363 | 		yy_load_buffer_state();
1364 | 		}
1365 | 
1366 | 	while ( 1 )		/* loops until end-of-file is reached */
1367 | 		{
1368 | 		yy_cp = yy_c_buf_p;
1369 | 
1370 | 		/* Support of yytext. */
1371 | 		*yy_cp = yy_hold_char;
1372 | 
1373 | 		/* yy_bp points to the position in yy_ch_buf of the start of
1374 | 		 * the current run.
1375 | 		 */
1376 | 		yy_bp = yy_cp;
1377 | 
1378 | 		yy_current_state = yy_start;
1379 | 		yy_state_ptr = yy_state_buf;
1380 | 		*yy_state_ptr++ = yy_current_state;
1381 | yy_match:
1382 | 		do
1383 | 			{
1384 | 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1385 | 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1386 | 				{
1387 | 				yy_current_state = (int) yy_def[yy_current_state];
1388 | 				if ( yy_current_state >= 658 )
1389 | 					yy_c = yy_meta[(unsigned int) yy_c];
1390 | 				}
1391 | 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1392 | 			*yy_state_ptr++ = yy_current_state;
1393 | 			++yy_cp;
1394 | 			}
1395 | 		while ( yy_base[yy_current_state] != 1713 );
1396 | 
1397 | yy_find_action:
1398 | 		yy_current_state = *--yy_state_ptr;
1399 | 		yy_lp = yy_accept[yy_current_state];
1400 | find_rule: /* we branch to this label when backing up */
1401 | 		for ( ; ; ) /* until we find what rule we matched */
1402 | 			{
1403 | 			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
1404 | 				{
1405 | 				yy_act = yy_acclist[yy_lp];
1406 | 				if ( yy_act & YY_TRAILING_HEAD_MASK ||
1407 | 				     yy_looking_for_trail_begin )
1408 | 					{
1409 | 					if ( yy_act == yy_looking_for_trail_begin )
1410 | 						{
1411 | 						yy_looking_for_trail_begin = 0;
1412 | 						yy_act &= ~YY_TRAILING_HEAD_MASK;
1413 | 						break;
1414 | 						}
1415 | 					}
1416 | 				else if ( yy_act & YY_TRAILING_MASK )
1417 | 					{
1418 | 					yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
1419 | 					yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
1420 | 					}
1421 | 				else
1422 | 					{
1423 | 					yy_full_match = yy_cp;
1424 | 					yy_full_state = yy_state_ptr;
1425 | 					yy_full_lp = yy_lp;
1426 | 					break;
1427 | 					}
1428 | 				++yy_lp;
1429 | 				goto find_rule;
1430 | 				}
1431 | 			--yy_cp;
1432 | 			yy_current_state = *--yy_state_ptr;
1433 | 			yy_lp = yy_accept[yy_current_state];
1434 | 			}
1435 | 
1436 | 		YY_DO_BEFORE_ACTION;
1437 | 
1438 | 
1439 | do_action:	/* This label is used only to access EOF actions. */
1440 | 
1441 | 
1442 | 		switch ( yy_act )
1443 | 	{ /* beginning of action switch */
1444 | case 1:
1445 | YY_RULE_SETUP
1446 | { comment_init_state = INITIAL        ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1447 | 	YY_BREAK
1448 | case 2:
1449 | YY_RULE_SETUP
1450 | { comment_init_state = CPP_START      ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1451 | 	YY_BREAK
1452 | case 3:
1453 | YY_RULE_SETUP
1454 | { comment_init_state = CPP            ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1455 | 	YY_BREAK
1456 | case 4:
1457 | YY_RULE_SETUP
1458 | { comment_init_state = CPP_DEFINE     ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1459 | 	YY_BREAK
1460 | case 5:
1461 | YY_RULE_SETUP
1462 | { comment_init_state = CPP_INCLUDE    ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1463 | 	YY_BREAK
1464 | case 6:
1465 | YY_RULE_SETUP
1466 | { comment_init_state = CPP_DEFINE_ARGP; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1467 | 	YY_BREAK
1468 | case 7:
1469 | YY_RULE_SETUP
1470 | { comment_init_state = CPP_DEFINE_ARGS; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1471 | 	YY_BREAK
1472 | case 8:
1473 | YY_RULE_SETUP
1474 | { comment_init_state = CPP_DEFINE_BODY; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1475 | 	YY_BREAK
1476 | case 9:
1477 | YY_RULE_SETUP
1478 | { comment_init_state = CPP_INC_FILE   ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1479 | 	YY_BREAK
1480 | case 10:
1481 | YY_RULE_SETUP
1482 | { comment_init_state = CPP_INC_FLAGS  ; BEGIN(yytext[1]=='*'?START_COMMENT:START_COMMENT_CPP); }
1483 | 	YY_BREAK
1484 | case 11:
1485 | YY_RULE_SETUP
1486 | { BEGIN(SPECIAL_COMMENT); }
1487 | 	YY_BREAK
1488 | case 12:
1489 | YY_RULE_SETUP
1490 | { BEGIN(SPECIAL_COMMENT); }
1491 | 	YY_BREAK
1492 | case 13:
1493 | YY_RULE_SETUP
1494 | { BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1495 | 	YY_BREAK
1496 | case 14:
1497 | YY_RULE_SETUP
1498 | { if(option_all_comments) SeenComment(yytext); parse_line++;
1499 |                                     if(option_all_comments) BEGIN(SPECIAL_COMMENT); else BEGIN(COMMENT); }
1500 | 	YY_BREAK
1501 | case 15:
1502 | YY_RULE_SETUP
1503 | { if(option_all_comments) SeenComment(yytext);
1504 |                                     if(option_all_comments) BEGIN(SPECIAL_COMMENT); else BEGIN(COMMENT); }
1505 | 	YY_BREAK
1506 | case 16:
1507 | YY_RULE_SETUP
1508 | { BEGIN(SPECIAL_COMMENT_CPP); }
1509 | 	YY_BREAK
1510 | case 17:
1511 | YY_RULE_SETUP
1512 | { BEGIN(SPECIAL_COMMENT_CPP); }
1513 | 	YY_BREAK
1514 | case 18:
1515 | YY_RULE_SETUP
1516 | { if(comment_init_state==CPP_INCLUDE || comment_init_state==CPP_DEFINE) comment_init_state=INITIAL;
1517 |                                     parse_line++; BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1518 | 	YY_BREAK
1519 | case 19:
1520 | YY_RULE_SETUP
1521 | { if(option_all_comments) BEGIN(SPECIAL_COMMENT_CPP); else BEGIN(COMMENT_CPP); }
1522 | 	YY_BREAK
1523 | case 20:
1524 | YY_RULE_SETUP
1525 | { parse_line++; }
1526 | 	YY_BREAK
1527 | case 21:
1528 | YY_RULE_SETUP
1529 | { }
1530 | 	YY_BREAK
1531 | case 22:
1532 | *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
1533 | yy_c_buf_p = yy_cp -= 2;
1534 | YY_DO_BEFORE_ACTION; /* set up yytext again */
1535 | YY_RULE_SETUP
1536 | { if(option_warn&COMMENT) fprintf(stderr,"%s:%d: Warning unbalanced cxref comment; starts simple, ends special.\n",parse_file,parse_line); }
1537 | 	YY_BREAK
1538 | case 23:
1539 | YY_RULE_SETUP
1540 | { BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1541 | 	YY_BREAK
1542 | case 24:
1543 | YY_RULE_SETUP
1544 | { if(comment_init_state==CPP_INCLUDE || comment_init_state==CPP_DEFINE) comment_init_state=INITIAL;
1545 |                                     parse_line++; BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1546 | 	YY_BREAK
1547 | case 25:
1548 | YY_RULE_SETUP
1549 | { if(!option_no_comments) SeenComment(yytext); parse_line++; }
1550 | 	YY_BREAK
1551 | case 26:
1552 | YY_RULE_SETUP
1553 | { parse_line++;
1554 |                                     if(option_block_comments) yytext[0]='\n',yytext[1]=0;
1555 |                                     if(!option_no_comments) SeenComment(yytext); }
1556 | 	YY_BREAK
1557 | case 27:
1558 | YY_RULE_SETUP
1559 | { if(!option_no_comments) SeenComment(yytext); }
1560 | 	YY_BREAK
1561 | case 28:
1562 | YY_RULE_SETUP
1563 | { if(!option_no_comments) SeenComment(yytext); }
1564 | 	YY_BREAK
1565 | case 29:
1566 | YY_RULE_SETUP
1567 | { if(!option_no_comments) SeenComment((char*)0);
1568 |                                     BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1569 | 	YY_BREAK
1570 | case 30:
1571 | YY_RULE_SETUP
1572 | { if(!option_no_comments) SeenComment((char*)1);
1573 |                                     if(!in_header && comment_init_state==CPP_DEFINE_ARGS) SeenDefineFuncArgComment();
1574 |                                     if(!in_header && comment_init_state==CPP_DEFINE_BODY) SeenDefineComment();
1575 |                                     if(!in_header && comment_init_state==CPP_INCLUDE)     SeenIncludeComment();
1576 |                                     BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1577 | 	YY_BREAK
1578 | case 31:
1579 | YY_RULE_SETUP
1580 | { if(!option_all_comments && option_warn&COMMENT)
1581 |                                        fprintf(stderr,"%s:%d: Warning unbalanced cxref comment; starts special, ends simple.\n",parse_file,parse_line);
1582 |                                     if(option_all_comments) SeenComment((char*)2); else if(!option_no_comments) SeenComment((char*)1);
1583 |                                     if(!in_header && comment_init_state==CPP_DEFINE_ARGS) SeenDefineFuncArgComment();
1584 |                                     if(!in_header && comment_init_state==CPP_DEFINE_BODY) SeenDefineComment();
1585 |                                     if(!in_header && comment_init_state==CPP_INCLUDE)     SeenIncludeComment();
1586 |                                     BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1587 | 	YY_BREAK
1588 | case 32:
1589 | YY_RULE_SETUP
1590 | { if(!option_no_comments) SeenComment(yytext); }
1591 | 	YY_BREAK
1592 | case 33:
1593 | YY_RULE_SETUP
1594 | { if(!option_no_comments) SeenComment(yytext); }
1595 | 	YY_BREAK
1596 | case 34:
1597 | YY_RULE_SETUP
1598 | { if(!option_no_comments) SeenComment((char*)1);
1599 |                                     if(!in_header && comment_init_state==CPP_DEFINE_ARGS) SeenDefineFuncArgComment();
1600 |                                     if(!in_header && comment_init_state==CPP_DEFINE_BODY) SeenDefineComment();
1601 |                                     if(!in_header && comment_init_state==CPP_INCLUDE)     SeenIncludeComment();
1602 |                                     if(comment_init_state==CPP_INCLUDE || comment_init_state==CPP_DEFINE) comment_init_state=INITIAL;
1603 |                                     parse_line++; BEGIN(comment_init_state); while(push_past) {push_past--;unput(yylval[push_past]);} }
1604 | 	YY_BREAK
1605 | /* Preprocessor directives, only valid at the top level. */
1606 | case 35:
1607 | YY_RULE_SETUP
1608 | { BEGIN(CPP_START); }
1609 | 	YY_BREAK
1610 | case 36:
1611 | YY_RULE_SETUP
1612 | { parse_line=atoi(yytext); BEGIN(CPP_INC_FILE);}
1613 | 	YY_BREAK
1614 | case 37:
1615 | YY_RULE_SETUP
1616 | { BEGIN(CPP_DEFINE); }
1617 | 	YY_BREAK
1618 | case 38:
1619 | YY_RULE_SETUP
1620 | { BEGIN(CPP_INCLUDE); }
1621 | 	YY_BREAK
1622 | case 39:
1623 | YY_RULE_SETUP
1624 | { BEGIN(CPP); }
1625 | 	YY_BREAK
1626 | case 40:
1627 | YY_RULE_SETUP
1628 | { }
1629 | 	YY_BREAK
1630 | case 41:
1631 | YY_RULE_SETUP
1632 | { parse_line++; }
1633 | 	YY_BREAK
1634 | case 42:
1635 | YY_RULE_SETUP
1636 | { parse_line++; BEGIN(INITIAL); }
1637 | 	YY_BREAK
1638 | case 43:
1639 | YY_RULE_SETUP
1640 | { if(!in_header) SeenDefine(yytext); BEGIN(CPP_DEFINE_ARGP); }
1641 | 	YY_BREAK
1642 | case 44:
1643 | YY_RULE_SETUP
1644 | { parse_line++; }
1645 | 	YY_BREAK
1646 | case 45:
1647 | YY_RULE_SETUP
1648 | { }
1649 | 	YY_BREAK
1650 | case 46:
1651 | YY_RULE_SETUP
1652 | { BEGIN(CPP_DEFINE_ARGS); }
1653 | 	YY_BREAK
1654 | case 47:
1655 | YY_RULE_SETUP
1656 | { parse_line++; BEGIN(INITIAL); }
1657 | 	YY_BREAK
1658 | case 48:
1659 | YY_RULE_SETUP
1660 | { define_value=NULL; BEGIN(CPP_DEFINE_BODY); }
1661 | 	YY_BREAK
1662 | case 49:
1663 | YY_RULE_SETUP
1664 | { parse_line++; }
1665 | 	YY_BREAK
1666 | case 50:
1667 | YY_RULE_SETUP
1668 | { if(!in_header) SeenDefineFunctionArg(yytext); }
1669 | 	YY_BREAK
1670 | case 51:
1671 | YY_RULE_SETUP
1672 | { if(!in_header) SeenDefineFunctionArg(yytext); }
1673 | 	YY_BREAK
1674 | case 52:
1675 | YY_RULE_SETUP
1676 | { }
1677 | 	YY_BREAK
1678 | case 53:
1679 | YY_RULE_SETUP
1680 | { }
1681 | 	YY_BREAK
1682 | case 54:
1683 | YY_RULE_SETUP
1684 | { parse_line++; }
1685 | 	YY_BREAK
1686 | case 55:
1687 | YY_RULE_SETUP
1688 | { define_value=(char*)1; BEGIN(CPP_DEFINE_BODY); }
1689 | 	YY_BREAK
1690 | case 56:
1691 | YY_RULE_SETUP
1692 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1693 | 	YY_BREAK
1694 | case 57:
1695 | YY_RULE_SETUP
1696 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1697 | 	YY_BREAK
1698 | case 58:
1699 | YY_RULE_SETUP
1700 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1701 | 	YY_BREAK
1702 | case 59:
1703 | YY_RULE_SETUP
1704 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1705 | 	YY_BREAK
1706 | case 60:
1707 | YY_RULE_SETUP
1708 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1709 | 	YY_BREAK
1710 | case 61:
1711 | YY_RULE_SETUP
1712 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1713 | 	YY_BREAK
1714 | case 62:
1715 | YY_RULE_SETUP
1716 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1717 | 	YY_BREAK
1718 | case 63:
1719 | YY_RULE_SETUP
1720 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1721 | 	YY_BREAK
1722 | case 64:
1723 | YY_RULE_SETUP
1724 | { if(!in_header) {if(!define_value) define_value=CopyString(yytext); else define_value=(char*)1;} }
1725 | 	YY_BREAK
1726 | case 65:
1727 | YY_RULE_SETUP
1728 | { }
1729 | 	YY_BREAK
1730 | case 66:
1731 | YY_RULE_SETUP
1732 | { parse_line++; }
1733 | 	YY_BREAK
1734 | case 67:
1735 | YY_RULE_SETUP
1736 | { parse_line++; if(define_value>(char*)1) SeenDefineValue(define_value); BEGIN(INITIAL); }
1737 | 	YY_BREAK
1738 | case 68:
1739 | YY_RULE_SETUP
1740 | { SeenInclude(yytext); }
1741 | 	YY_BREAK
1742 | case 69:
1743 | YY_RULE_SETUP
1744 | { }
1745 | 	YY_BREAK
1746 | case 70:
1747 | YY_RULE_SETUP
1748 | { parse_line++; }
1749 | 	YY_BREAK
1750 | case 71:
1751 | YY_RULE_SETUP
1752 | { parse_line++; BEGIN(INITIAL); }
1753 | 	YY_BREAK
1754 | case 72:
1755 | YY_RULE_SETUP
1756 | { parse_file=CopyString(yytext+1); parse_file[strlen(parse_file)-1]=0;
1757 |                                   GetCurrentComment();
1758 |                                   inc_file_flags=0; BEGIN(CPP_INC_FLAGS); }
1759 | 	YY_BREAK
1760 | case 73:
1761 | YY_RULE_SETUP
1762 | { inc_file_flags+=1<<atoi(yytext); }
1763 | 	YY_BREAK
1764 | case 74:
1765 | YY_RULE_SETUP
1766 | { if(inc_file_flags&6) SeenFileChange(parse_file,inc_file_flags);
1767 |                                   BEGIN(INITIAL); }
1768 | 	YY_BREAK
1769 | /* GNU C strangeness. */
1770 | case 75:
1771 | YY_RULE_SETUP
1772 | { yylval="alignof"  ; return(SIZEOF);   }
1773 | 	YY_BREAK
1774 | case 76:
1775 | YY_RULE_SETUP
1776 | { yylval="signed"   ; return(SIGNED);   }
1777 | 	YY_BREAK
1778 | case 77:
1779 | YY_RULE_SETUP
1780 | { yylval="unsigned" ; return(UNSIGNED); }
1781 | 	YY_BREAK
1782 | case 78:
1783 | YY_RULE_SETUP
1784 | { yylval="volatile" ; return(VOLATILE); }
1785 | 	YY_BREAK
1786 | case 79:
1787 | YY_RULE_SETUP
1788 | { yylval="const"    ; return(CONST);    }
1789 | 	YY_BREAK
1790 | case 80:
1791 | YY_RULE_SETUP
1792 | { yylval="inline"   ; return(INLINE);   }
1793 | 	YY_BREAK
1794 | case 81:
1795 | YY_RULE_SETUP
1796 | { yylval="asm"      ; return(ASM);      }
1797 | 	YY_BREAK
1798 | case 82:
1799 | YY_RULE_SETUP
1800 | { BEGIN(GNU_LABEL); }
1801 | 	YY_BREAK
1802 | case 83:
1803 | YY_RULE_SETUP
1804 | { }
1805 | 	YY_BREAK
1806 | case 84:
1807 | YY_RULE_SETUP
1808 | { BEGIN(INITIAL); }
1809 | 	YY_BREAK
1810 | case 85:
1811 | YY_RULE_SETUP
1812 | { gnu_att_depth=0; BEGIN(GNU_ATTRIBUTE); }
1813 | 	YY_BREAK
1814 | case 86:
1815 | YY_RULE_SETUP
1816 | { gnu_att_depth++; }
1817 | 	YY_BREAK
1818 | case 87:
1819 | YY_RULE_SETUP
1820 | { }
1821 | 	YY_BREAK
1822 | case 88:
1823 | YY_RULE_SETUP
1824 | { if(--gnu_att_depth==0) BEGIN(INITIAL); }
1825 | 	YY_BREAK
1826 | case 89:
1827 | YY_RULE_SETUP
1828 | { gnu_typ_depth=0; BEGIN(GNU_TYPEOF); }
1829 | 	YY_BREAK
1830 | case 90:
1831 | YY_RULE_SETUP
1832 | { gnu_typ_depth++; }
1833 | 	YY_BREAK
1834 | case 91:
1835 | YY_RULE_SETUP
1836 | { }
1837 | 	YY_BREAK
1838 | case 92:
1839 | YY_RULE_SETUP
1840 | { if(--gnu_typ_depth==0) {BEGIN(INITIAL); yylval="typeof"; return(TYPE_NAME);} }
1841 | 	YY_BREAK
1842 | case 93:
1843 | YY_RULE_SETUP
1844 | { }
1845 | 	YY_BREAK
1846 | case 94:
1847 | YY_RULE_SETUP
1848 | { yylval="__FUNCTION__"; return(STRING_LITERAL); }
1849 | 	YY_BREAK
1850 | /* VOS char_varying type */
1851 | case 95:
1852 | YY_RULE_SETUP
1853 | { yylval=CopyString(yytext); BEGIN(CHAR_VARYING); return(CHAR); }
1854 | 	YY_BREAK
1855 | case 96:
1856 | YY_RULE_SETUP
1857 | { unput(*yytext); yylval=""; BEGIN(INITIAL); return('*'); }
1858 | 	YY_BREAK
1859 | /* C language keywords. */
1860 | case 97:
1861 | YY_RULE_SETUP
1862 | { yylval="auto"    ; return(AUTO);     }
1863 | 	YY_BREAK
1864 | case 98:
1865 | YY_RULE_SETUP
1866 | { yylval="break"   ; return(BREAK);    }
1867 | 	YY_BREAK
1868 | case 99:
1869 | YY_RULE_SETUP
1870 | { yylval="case"    ; return(CASE);     }
1871 | 	YY_BREAK
1872 | case 100:
1873 | YY_RULE_SETUP
1874 | { yylval="char"    ; return(CHAR);     }
1875 | 	YY_BREAK
1876 | case 101:
1877 | YY_RULE_SETUP
1878 | { yylval="const"   ; return(CONST);    }
1879 | 	YY_BREAK
1880 | case 102:
1881 | YY_RULE_SETUP
1882 | { yylval="continue"; return(CONTINUE); }
1883 | 	YY_BREAK
1884 | case 103:
1885 | YY_RULE_SETUP
1886 | { yylval="default" ; return(DEFAULT);  }
1887 | 	YY_BREAK
1888 | case 104:
1889 | YY_RULE_SETUP
1890 | { yylval="do"      ; return(DO);       }
1891 | 	YY_BREAK
1892 | case 105:
1893 | YY_RULE_SETUP
1894 | { yylval="double"  ; return(DOUBLE);   }
1895 | 	YY_BREAK
1896 | case 106:
1897 | YY_RULE_SETUP
1898 | { yylval="else"    ; return(ELSE);     }
1899 | 	YY_BREAK
1900 | case 107:
1901 | YY_RULE_SETUP
1902 | { yylval="enum"    ; return(ENUM);     }
1903 | 	YY_BREAK
1904 | case 108:
1905 | YY_RULE_SETUP
1906 | { yylval="extern"  ; return(EXTERN);   }
1907 | 	YY_BREAK
1908 | case 109:
1909 | YY_RULE_SETUP
1910 | { yylval="float"   ; return(FLOAT);    }
1911 | 	YY_BREAK
1912 | case 110:
1913 | YY_RULE_SETUP
1914 | { yylval="for"     ; return(FOR);      }
1915 | 	YY_BREAK
1916 | case 111:
1917 | YY_RULE_SETUP
1918 | { yylval="goto"    ; return(GOTO);     }
1919 | 	YY_BREAK
1920 | case 112:
1921 | YY_RULE_SETUP
1922 | { yylval="if"      ; return(IF);       }
1923 | 	YY_BREAK
1924 | case 113:
1925 | YY_RULE_SETUP
1926 | { yylval="int"     ; return(INT);      }
1927 | 	YY_BREAK
1928 | case 114:
1929 | YY_RULE_SETUP
1930 | { yylval="inline"  ; return(INLINE);   }
1931 | 	YY_BREAK
1932 | case 115:
1933 | YY_RULE_SETUP
1934 | { yylval="long"    ; return(LONG);     }
1935 | 	YY_BREAK
1936 | case 116:
1937 | YY_RULE_SETUP
1938 | { yylval="register"; return(REGISTER); }
1939 | 	YY_BREAK
1940 | case 117:
1941 | YY_RULE_SETUP
1942 | { yylval="return"  ; return(RETURN);   }
1943 | 	YY_BREAK
1944 | case 118:
1945 | YY_RULE_SETUP
1946 | { yylval="short"   ; return(SHORT);    }
1947 | 	YY_BREAK
1948 | case 119:
1949 | YY_RULE_SETUP
1950 | { yylval="signed"  ; return(SIGNED);   }
1951 | 	YY_BREAK
1952 | case 120:
1953 | YY_RULE_SETUP
1954 | { yylval="sizeof"  ; return(SIZEOF);   }
1955 | 	YY_BREAK
1956 | case 121:
1957 | YY_RULE_SETUP
1958 | { yylval="static"  ; return(STATIC);   }
1959 | 	YY_BREAK
1960 | case 122:
1961 | YY_RULE_SETUP
1962 | { yylval="struct"  ; return(STRUCT);   }
1963 | 	YY_BREAK
1964 | case 123:
1965 | YY_RULE_SETUP
1966 | { yylval="switch"  ; return(SWITCH);   }
1967 | 	YY_BREAK
1968 | case 124:
1969 | YY_RULE_SETUP
1970 | { yylval="typedef" ; return(TYPEDEF);  }
1971 | 	YY_BREAK
1972 | case 125:
1973 | YY_RULE_SETUP
1974 | { yylval="union"   ; return(UNION);    }
1975 | 	YY_BREAK
1976 | case 126:
1977 | YY_RULE_SETUP
1978 | { yylval="unsigned"; return(UNSIGNED); }
1979 | 	YY_BREAK
1980 | case 127:
1981 | YY_RULE_SETUP
1982 | { yylval="void"    ; return(VOID);     }
1983 | 	YY_BREAK
1984 | case 128:
1985 | YY_RULE_SETUP
1986 | { yylval="volatile"; return(VOLATILE); }
1987 | 	YY_BREAK
1988 | case 129:
1989 | YY_RULE_SETUP
1990 | { yylval="while"   ; return(WHILE);    }
1991 | 	YY_BREAK
1992 | /* C language operators. */
1993 | case 130:
1994 | YY_RULE_SETUP
1995 | { yylval="...";  return(ELLIPSES);     }
1996 | 	YY_BREAK
1997 | case 131:
1998 | YY_RULE_SETUP
1999 | { yylval=">>=";  return(RIGHT_ASSIGN); }
2000 | 	YY_BREAK
2001 | case 132:
2002 | YY_RULE_SETUP
2003 | { yylval="<<=";  return(LEFT_ASSIGN);  }
2004 | 	YY_BREAK
2005 | case 133:
2006 | YY_RULE_SETUP
2007 | { yylval="+=";   return(ADD_ASSIGN); }
2008 | 	YY_BREAK
2009 | case 134:
2010 | YY_RULE_SETUP
2011 | { yylval="-=";   return(SUB_ASSIGN); }
2012 | 	YY_BREAK
2013 | case 135:
2014 | YY_RULE_SETUP
2015 | { yylval="*=";   return(MUL_ASSIGN); }
2016 | 	YY_BREAK
2017 | case 136:
2018 | YY_RULE_SETUP
2019 | { yylval="/=";   return(DIV_ASSIGN); }
2020 | 	YY_BREAK
2021 | case 137:
2022 | YY_RULE_SETUP
2023 | { yylval="%=";   return(MOD_ASSIGN); }
2024 | 	YY_BREAK
2025 | case 138:
2026 | YY_RULE_SETUP
2027 | { yylval="&=";   return(AND_ASSIGN); }
2028 | 	YY_BREAK
2029 | case 139:
2030 | YY_RULE_SETUP
2031 | { yylval="^=";   return(XOR_ASSIGN); }
2032 | 	YY_BREAK
2033 | case 140:
2034 | YY_RULE_SETUP
2035 | { yylval="|=";   return(OR_ASSIGN);  }
2036 | 	YY_BREAK
2037 | case 141:
2038 | YY_RULE_SETUP
2039 | { yylval=">>";   return(RIGHT_SHIFT);}
2040 | 	YY_BREAK
2041 | case 142:
2042 | YY_RULE_SETUP
2043 | { yylval="<<";   return(LEFT_SHIFT); }
2044 | 	YY_BREAK
2045 | case 143:
2046 | YY_RULE_SETUP
2047 | { yylval="++";   return(INC_OP); }
2048 | 	YY_BREAK
2049 | case 144:
2050 | YY_RULE_SETUP
2051 | { yylval="--";   return(DEC_OP); }
2052 | 	YY_BREAK
2053 | case 145:
2054 | YY_RULE_SETUP
2055 | { yylval="->";   return(PTR_OP); }
2056 | 	YY_BREAK
2057 | case 146:
2058 | YY_RULE_SETUP
2059 | { yylval="&&";   return(AND_OP); }
2060 | 	YY_BREAK
2061 | case 147:
2062 | YY_RULE_SETUP
2063 | { yylval="||";   return(OR_OP); }
2064 | 	YY_BREAK
2065 | case 148:
2066 | YY_RULE_SETUP
2067 | { yylval="<=";   return(LE_OP); }
2068 | 	YY_BREAK
2069 | case 149:
2070 | YY_RULE_SETUP
2071 | { yylval=">=";   return(GE_OP); }
2072 | 	YY_BREAK
2073 | case 150:
2074 | YY_RULE_SETUP
2075 | { yylval="==";   return(EQ_OP); }
2076 | 	YY_BREAK
2077 | case 151:
2078 | YY_RULE_SETUP
2079 | { yylval="!=";   return(NE_OP); }
2080 | 	YY_BREAK
2081 | case 152:
2082 | YY_RULE_SETUP
2083 | { yylval="; ";   push_past=2;
2084 |                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
2085 | 	YY_BREAK
2086 | case 153:
2087 | YY_RULE_SETUP
2088 | { yylval=";";    return(';'); }
2089 | 	YY_BREAK
2090 | case 154:
2091 | YY_RULE_SETUP
2092 | { yylval="{";    return('{'); }
2093 | 	YY_BREAK
2094 | case 155:
2095 | YY_RULE_SETUP
2096 | { yylval="}; ";  push_past=3;
2097 |                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
2098 | 	YY_BREAK
2099 | case 156:
2100 | YY_RULE_SETUP
2101 | { yylval="}, ";  push_past=3;
2102 |                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
2103 | 	YY_BREAK
2104 | case 157:
2105 | YY_RULE_SETUP
2106 | { yylval="}";    return('}'); }
2107 | 	YY_BREAK
2108 | case 158:
2109 | YY_RULE_SETUP
2110 | { yylval=", ";   push_past=2;
2111 |                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
2112 | 	YY_BREAK
2113 | case 159:
2114 | YY_RULE_SETUP
2115 | { yylval=",";    return(','); }
2116 | 	YY_BREAK
2117 | case 160:
2118 | YY_RULE_SETUP
2119 | { yylval=":";    return(':'); }
2120 | 	YY_BREAK
2121 | case 161:
2122 | YY_RULE_SETUP
2123 | { yylval="=";    return('='); }
2124 | 	YY_BREAK
2125 | case 162:
2126 | YY_RULE_SETUP
2127 | { yylval="(";    return('('); }
2128 | 	YY_BREAK
2129 | case 163:
2130 | YY_RULE_SETUP
2131 | { yylval=") ";   push_past=2;
2132 |                           comment_init_state=INITIAL; BEGIN(yytext[strlen(yytext)-1]=='*'?START_COMMENT:START_COMMENT_CPP); }
2133 | 	YY_BREAK
2134 | case 164:
2135 | YY_RULE_SETUP
2136 | { yylval=")";    return(')'); }
2137 | 	YY_BREAK
2138 | case 165:
2139 | YY_RULE_SETUP
2140 | { yylval="[";    return('['); }
2141 | 	YY_BREAK
2142 | case 166:
2143 | YY_RULE_SETUP
2144 | { yylval="]";    return(']'); }
2145 | 	YY_BREAK
2146 | case 167:
2147 | YY_RULE_SETUP
2148 | { yylval=".";    return('.'); }
2149 | 	YY_BREAK
2150 | case 168:
2151 | YY_RULE_SETUP
2152 | { yylval="&";    return('&'); }
2153 | 	YY_BREAK
2154 | case 169:
2155 | YY_RULE_SETUP
2156 | { yylval="!";    return('!'); }
2157 | 	YY_BREAK
2158 | case 170:
2159 | YY_RULE_SETUP
2160 | { yylval="~";    return('~'); }
2161 | 	YY_BREAK
2162 | case 171:
2163 | YY_RULE_SETUP
2164 | { yylval="-";    return('-'); }
2165 | 	YY_BREAK
2166 | case 172:
2167 | YY_RULE_SETUP
2168 | { yylval="+";    return('+'); }
2169 | 	YY_BREAK
2170 | case 173:
2171 | YY_RULE_SETUP
2172 | { yylval="*";    return('*'); }
2173 | 	YY_BREAK
2174 | case 174:
2175 | YY_RULE_SETUP
2176 | { yylval="/";    return('/'); }
2177 | 	YY_BREAK
2178 | case 175:
2179 | YY_RULE_SETUP
2180 | { yylval="%";    return('%'); }
2181 | 	YY_BREAK
2182 | case 176:
2183 | YY_RULE_SETUP
2184 | { yylval="<";    return('<'); }
2185 | 	YY_BREAK
2186 | case 177:
2187 | YY_RULE_SETUP
2188 | { yylval=">";    return('>'); }
2189 | 	YY_BREAK
2190 | case 178:
2191 | YY_RULE_SETUP
2192 | { yylval="^";    return('^'); }
2193 | 	YY_BREAK
2194 | case 179:
2195 | YY_RULE_SETUP
2196 | { yylval="|";    return('|'); }
2197 | 	YY_BREAK
2198 | case 180:
2199 | YY_RULE_SETUP
2200 | { yylval="?";    return('?'); }
2201 | 	YY_BREAK
2202 | /* Variable / Function / Type names */
2203 | case 181:
2204 | YY_RULE_SETUP
2205 | {
2206 |                           yylval=CopyString(yytext);
2207 |                           if(IsAScopeVariable(yytext))
2208 |                              return(IDENTIFIER);
2209 |                           else
2210 |                              if(IsATypeName(yytext))
2211 |                                 return(TYPE_NAME);
2212 |                              else
2213 |                                 return(IDENTIFIER);
2214 |                         }
2215 | 	YY_BREAK
2216 | /* Literals */
2217 | case 182:
2218 | YY_RULE_SETUP
2219 | { yylval=CopyString(yytext); return(LITERAL); }
2220 | 	YY_BREAK
2221 | case 183:
2222 | YY_RULE_SETUP
2223 | { yylval=CopyString(yytext); return(LITERAL); } 
2224 | 	YY_BREAK
2225 | case 184:
2226 | YY_RULE_SETUP
2227 | { yylval=CopyString(yytext); return(LITERAL); }
2228 | 	YY_BREAK
2229 | case 185:
2230 | YY_RULE_SETUP
2231 | { yylval=CopyString(yytext); return(LITERAL); }
2232 | 	YY_BREAK
2233 | case 186:
2234 | YY_RULE_SETUP
2235 | { yylval=CopyString(yytext); return(LITERAL); }
2236 | 	YY_BREAK
2237 | case 187:
2238 | YY_RULE_SETUP
2239 | { yylval=CopyString(yytext); return(LITERAL); }
2240 | 	YY_BREAK
2241 | case 188:
2242 | YY_RULE_SETUP
2243 | { yylval=CopyString(yytext); return(LITERAL); }
2244 | 	YY_BREAK
2245 | case 189:
2246 | YY_RULE_SETUP
2247 | { yylval=CopyString(yytext); return(LITERAL); }
2248 | 	YY_BREAK
2249 | case 190:
2250 | YY_RULE_SETUP
2251 | { yylval=CopyString(yytext); return(STRING_LITERAL); }
2252 | 	YY_BREAK
2253 | case 191:
2254 | YY_RULE_SETUP
2255 | { yylval=CopyString(yytext); return(STRING_LITERAL); }
2256 | 	YY_BREAK
2257 | /* Other text. */
2258 | case 192:
2259 | YY_RULE_SETUP
2260 | { parse_line++; }
2261 | 	YY_BREAK
2262 | case 193:
2263 | YY_RULE_SETUP
2264 | { /* Ignore bad characters */ }
2265 | 	YY_BREAK
2266 | case 194:
2267 | YY_RULE_SETUP
2268 | ECHO;
2269 | 	YY_BREAK
2270 | 			case YY_STATE_EOF(INITIAL):
2271 | 			case YY_STATE_EOF(START_COMMENT):
2272 | 			case YY_STATE_EOF(COMMENT):
2273 | 			case YY_STATE_EOF(SPECIAL_COMMENT):
2274 | 			case YY_STATE_EOF(START_COMMENT_CPP):
2275 | 			case YY_STATE_EOF(COMMENT_CPP):
2276 | 			case YY_STATE_EOF(SPECIAL_COMMENT_CPP):
2277 | 			case YY_STATE_EOF(CPP):
2278 | 			case YY_STATE_EOF(CPP_START):
2279 | 			case YY_STATE_EOF(CPP_INCLUDE):
2280 | 			case YY_STATE_EOF(CPP_INC_FILE):
2281 | 			case YY_STATE_EOF(CPP_INC_FLAGS):
2282 | 			case YY_STATE_EOF(CPP_DEFINE):
2283 | 			case YY_STATE_EOF(CPP_DEFINE_ARGP):
2284 | 			case YY_STATE_EOF(CPP_DEFINE_BODY):
2285 | 			case YY_STATE_EOF(CPP_DEFINE_ARGS):
2286 | 			case YY_STATE_EOF(GNU_LABEL):
2287 | 			case YY_STATE_EOF(GNU_ATTRIBUTE):
2288 | 			case YY_STATE_EOF(GNU_EXTENSION):
2289 | 			case YY_STATE_EOF(GNU_TYPEOF):
2290 | 			case YY_STATE_EOF(CHAR_VARYING):
2291 | 				yyterminate();
2292 | 
2293 | 	case YY_END_OF_BUFFER:
2294 | 		{
2295 | 		/* Amount of text matched not including the EOB char. */
2296 | 		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2297 | 
2298 | 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2299 | 		*yy_cp = yy_hold_char;
2300 | 		YY_RESTORE_YY_MORE_OFFSET
2301 | 
2302 | 		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2303 | 			{
2304 | 			/* We're scanning a new file or input source.  It's
2305 | 			 * possible that this happened because the user
2306 | 			 * just pointed yyin at a new source and called
2307 | 			 * yylex().  If so, then we have to assure
2308 | 			 * consistency between yy_current_buffer and our
2309 | 			 * globals.  Here is the right place to do so, because
2310 | 			 * this is the first action (other than possibly a
2311 | 			 * back-up) that will match for the new input source.
2312 | 			 */
2313 | 			yy_n_chars = yy_current_buffer->yy_n_chars;
2314 | 			yy_current_buffer->yy_input_file = yyin;
2315 | 			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2316 | 			}
2317 | 
2318 | 		/* Note that here we test for yy_c_buf_p "<=" to the position
2319 | 		 * of the first EOB in the buffer, since yy_c_buf_p will
2320 | 		 * already have been incremented past the NUL character
2321 | 		 * (since all states make transitions on EOB to the
2322 | 		 * end-of-buffer state).  Contrast this with the test
2323 | 		 * in input().
2324 | 		 */
2325 | 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2326 | 			{ /* This was really a NUL. */
2327 | 			yy_state_type yy_next_state;
2328 | 
2329 | 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2330 | 
2331 | 			yy_current_state = yy_get_previous_state();
2332 | 
2333 | 			/* Okay, we're now positioned to make the NUL
2334 | 			 * transition.  We couldn't have
2335 | 			 * yy_get_previous_state() go ahead and do it
2336 | 			 * for us because it doesn't know how to deal
2337 | 			 * with the possibility of jamming (and we don't
2338 | 			 * want to build jamming into it because then it
2339 | 			 * will run more slowly).
2340 | 			 */
2341 | 
2342 | 			yy_next_state = yy_try_NUL_trans( yy_current_state );
2343 | 
2344 | 			yy_bp = yytext_ptr + YY_MORE_ADJ;
2345 | 
2346 | 			if ( yy_next_state )
2347 | 				{
2348 | 				/* Consume the NUL. */
2349 | 				yy_cp = ++yy_c_buf_p;
2350 | 				yy_current_state = yy_next_state;
2351 | 				goto yy_match;
2352 | 				}
2353 | 
2354 | 			else
2355 | 				{
2356 | 				yy_cp = yy_c_buf_p;
2357 | 				goto yy_find_action;
2358 | 				}
2359 | 			}
2360 | 
2361 | 		else switch ( yy_get_next_buffer() )
2362 | 			{
2363 | 			case EOB_ACT_END_OF_FILE:
2364 | 				{
2365 | 				yy_did_buffer_switch_on_eof = 0;
2366 | 
2367 | 				if ( yywrap() )
2368 | 					{
2369 | 					/* Note: because we've taken care in
2370 | 					 * yy_get_next_buffer() to have set up
2371 | 					 * yytext, we can now set up
2372 | 					 * yy_c_buf_p so that if some total
2373 | 					 * hoser (like flex itself) wants to
2374 | 					 * call the scanner after we return the
2375 | 					 * YY_NULL, it'll still work - another
2376 | 					 * YY_NULL will get returned.
2377 | 					 */
2378 | 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2379 | 
2380 | 					yy_act = YY_STATE_EOF(YY_START);
2381 | 					goto do_action;
2382 | 					}
2383 | 
2384 | 				else
2385 | 					{
2386 | 					if ( ! yy_did_buffer_switch_on_eof )
2387 | 						YY_NEW_FILE;
2388 | 					}
2389 | 				break;
2390 | 				}
2391 | 
2392 | 			case EOB_ACT_CONTINUE_SCAN:
2393 | 				yy_c_buf_p =
2394 | 					yytext_ptr + yy_amount_of_matched_text;
2395 | 
2396 | 				yy_current_state = yy_get_previous_state();
2397 | 
2398 | 				yy_cp = yy_c_buf_p;
2399 | 				yy_bp = yytext_ptr + YY_MORE_ADJ;
2400 | 				goto yy_match;
2401 | 
2402 | 			case EOB_ACT_LAST_MATCH:
2403 | 				yy_c_buf_p =
2404 | 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
2405 | 
2406 | 				yy_current_state = yy_get_previous_state();
2407 | 
2408 | 				yy_cp = yy_c_buf_p;
2409 | 				yy_bp = yytext_ptr + YY_MORE_ADJ;
2410 | 				goto yy_find_action;
2411 | 			}
2412 | 		break;
2413 | 		}
2414 | 
2415 | 	default:
2416 | 		YY_FATAL_ERROR(
2417 | 			"fatal flex scanner internal error--no action found" );
2418 | 	} /* end of action switch */
2419 | 		} /* end of scanning one token */
2420 | 	} /* end of yylex */
2421 | 
2422 | 
2423 | /* yy_get_next_buffer - try to read in a new buffer
2424 |  *
2425 |  * Returns a code representing an action:
2426 |  *	EOB_ACT_LAST_MATCH -
2427 |  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2428 |  *	EOB_ACT_END_OF_FILE - end of file
2429 |  */
2430 | 
2431 | static int yy_get_next_buffer()
2432 | 	{
2433 | 	register char *dest = yy_current_buffer->yy_ch_buf;
2434 | 	register char *source = yytext_ptr;
2435 | 	register int number_to_move, i;
2436 | 	int ret_val;
2437 | 
2438 | 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2439 | 		YY_FATAL_ERROR(
2440 | 		"fatal flex scanner internal error--end of buffer missed" );
2441 | 
2442 | 	if ( yy_current_buffer->yy_fill_buffer == 0 )
2443 | 		{ /* Don't try to fill the buffer, so this is an EOF. */
2444 | 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2445 | 			{
2446 | 			/* We matched a single character, the EOB, so
2447 | 			 * treat this as a final EOF.
2448 | 			 */
2449 | 			return EOB_ACT_END_OF_FILE;
2450 | 			}
2451 | 
2452 | 		else
2453 | 			{
2454 | 			/* We matched some text prior to the EOB, first
2455 | 			 * process it.
2456 | 			 */
2457 | 			return EOB_ACT_LAST_MATCH;
2458 | 			}
2459 | 		}
2460 | 
2461 | 	/* Try to read more data. */
2462 | 
2463 | 	/* First move last chars to start of buffer. */
2464 | 	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2465 | 
2466 | 	for ( i = 0; i < number_to_move; ++i )
2467 | 		*(dest++) = *(source++);
2468 | 
2469 | 	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2470 | 		/* don't do the read, it's not guaranteed to return an EOF,
2471 | 		 * just force an EOF
2472 | 		 */
2473 | 		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2474 | 
2475 | 	else
2476 | 		{
2477 | 		int num_to_read =
2478 | 			yy_current_buffer->yy_buf_size - number_to_move - 1;
2479 | 
2480 | 		while ( num_to_read <= 0 )
2481 | 			{ /* Not enough room in the buffer - grow it. */
2482 | #ifdef YY_USES_REJECT
2483 | 			YY_FATAL_ERROR(
2484 | "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2485 | #else
2486 | 
2487 | 			/* just a shorter name for the current buffer */
2488 | 			YY_BUFFER_STATE b = yy_current_buffer;
2489 | 
2490 | 			int yy_c_buf_p_offset =
2491 | 				(int) (yy_c_buf_p - b->yy_ch_buf);
2492 | 
2493 | 			if ( b->yy_is_our_buffer )
2494 | 				{
2495 | 				int new_size = b->yy_buf_size * 2;
2496 | 
2497 | 				if ( new_size <= 0 )
2498 | 					b->yy_buf_size += b->yy_buf_size / 8;
2499 | 				else
2500 | 					b->yy_buf_size *= 2;
2501 | 
2502 | 				b->yy_ch_buf = (char *)
2503 | 					/* Include room in for 2 EOB chars. */
2504 | 					yy_flex_realloc( (void *) b->yy_ch_buf,
2505 | 							 b->yy_buf_size + 2 );
2506 | 				}
2507 | 			else
2508 | 				/* Can't grow it, we don't own it. */
2509 | 				b->yy_ch_buf = 0;
2510 | 
2511 | 			if ( ! b->yy_ch_buf )
2512 | 				YY_FATAL_ERROR(
2513 | 				"fatal error - scanner input buffer overflow" );
2514 | 
2515 | 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2516 | 
2517 | 			num_to_read = yy_current_buffer->yy_buf_size -
2518 | 						number_to_move - 1;
2519 | #endif
2520 | 			}
2521 | 
2522 | 		if ( num_to_read > YY_READ_BUF_SIZE )
2523 | 			num_to_read = YY_READ_BUF_SIZE;
2524 | 
2525 | 		/* Read in more data. */
2526 | 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2527 | 			yy_n_chars, num_to_read );
2528 | 
2529 | 		yy_current_buffer->yy_n_chars = yy_n_chars;
2530 | 		}
2531 | 
2532 | 	if ( yy_n_chars == 0 )
2533 | 		{
2534 | 		if ( number_to_move == YY_MORE_ADJ )
2535 | 			{
2536 | 			ret_val = EOB_ACT_END_OF_FILE;
2537 | 			yyrestart( yyin );
2538 | 			}
2539 | 
2540 | 		else
2541 | 			{
2542 | 			ret_val = EOB_ACT_LAST_MATCH;
2543 | 			yy_current_buffer->yy_buffer_status =
2544 | 				YY_BUFFER_EOF_PENDING;
2545 | 			}
2546 | 		}
2547 | 
2548 | 	else
2549 | 		ret_val = EOB_ACT_CONTINUE_SCAN;
2550 | 
2551 | 	yy_n_chars += number_to_move;
2552 | 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2553 | 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2554 | 
2555 | 	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2556 | 
2557 | 	return ret_val;
2558 | 	}
2559 | 
2560 | 
2561 | /* yy_get_previous_state - get the state just before the EOB char was reached */
2562 | 
2563 | static yy_state_type yy_get_previous_state()
2564 | 	{
2565 | 	register yy_state_type yy_current_state;
2566 | 	register char *yy_cp;
2567 | 
2568 | 	yy_current_state = yy_start;
2569 | 	yy_state_ptr = yy_state_buf;
2570 | 	*yy_state_ptr++ = yy_current_state;
2571 | 
2572 | 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2573 | 		{
2574 | 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2575 | 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2576 | 			{
2577 | 			yy_current_state = (int) yy_def[yy_current_state];
2578 | 			if ( yy_current_state >= 658 )
2579 | 				yy_c = yy_meta[(unsigned int) yy_c];
2580 | 			}
2581 | 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2582 | 		*yy_state_ptr++ = yy_current_state;
2583 | 		}
2584 | 
2585 | 	return yy_current_state;
2586 | 	}
2587 | 
2588 | 
2589 | /* yy_try_NUL_trans - try to make a transition on the NUL character
2590 |  *
2591 |  * synopsis
2592 |  *	next_state = yy_try_NUL_trans( current_state );
2593 |  */
2594 | 
2595 | #ifdef YY_USE_PROTOS
2596 | static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2597 | #else
2598 | static yy_state_type yy_try_NUL_trans( yy_current_state )
2599 | yy_state_type yy_current_state;
2600 | #endif
2601 | 	{
2602 | 	register int yy_is_jam;
2603 | 
2604 | 	register YY_CHAR yy_c = 1;
2605 | 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2606 | 		{
2607 | 		yy_current_state = (int) yy_def[yy_current_state];
2608 | 		if ( yy_current_state >= 658 )
2609 | 			yy_c = yy_meta[(unsigned int) yy_c];
2610 | 		}
2611 | 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2612 | 	yy_is_jam = (yy_current_state == 657);
2613 | 	if ( ! yy_is_jam )
2614 | 		*yy_state_ptr++ = yy_current_state;
2615 | 
2616 | 	return yy_is_jam ? 0 : yy_current_state;
2617 | 	}
2618 | 
2619 | 
2620 | #ifndef YY_NO_UNPUT
2621 | #ifdef YY_USE_PROTOS
2622 | static void yyunput( int c, register char *yy_bp )
2623 | #else
2624 | static void yyunput( c, yy_bp )
2625 | int c;
2626 | register char *yy_bp;
2627 | #endif
2628 | 	{
2629 | 	register char *yy_cp = yy_c_buf_p;
2630 | 
2631 | 	/* undo effects of setting up yytext */
2632 | 	*yy_cp = yy_hold_char;
2633 | 
2634 | 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2635 | 		{ /* need to shift things up to make room */
2636 | 		/* +2 for EOB chars. */
2637 | 		register int number_to_move = yy_n_chars + 2;
2638 | 		register char *dest = &yy_current_buffer->yy_ch_buf[
2639 | 					yy_current_buffer->yy_buf_size + 2];
2640 | 		register char *source =
2641 | 				&yy_current_buffer->yy_ch_buf[number_to_move];
2642 | 
2643 | 		while ( source > yy_current_buffer->yy_ch_buf )
2644 | 			*--dest = *--source;
2645 | 
2646 | 		yy_cp += (int) (dest - source);
2647 | 		yy_bp += (int) (dest - source);
2648 | 		yy_current_buffer->yy_n_chars =
2649 | 			yy_n_chars = yy_current_buffer->yy_buf_size;
2650 | 
2651 | 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2652 | 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2653 | 		}
2654 | 
2655 | 	*--yy_cp = (char) c;
2656 | 
2657 | 
2658 | 	yytext_ptr = yy_bp;
2659 | 	yy_hold_char = *yy_cp;
2660 | 	yy_c_buf_p = yy_cp;
2661 | 	}
2662 | #endif	/* ifndef YY_NO_UNPUT */
2663 | 
2664 | 
2665 | #ifdef __cplusplus
2666 | static int yyinput()
2667 | #else
2668 | static int input()
2669 | #endif
2670 | 	{
2671 | 	int c;
2672 | 
2673 | 	*yy_c_buf_p = yy_hold_char;
2674 | 
2675 | 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2676 | 		{
2677 | 		/* yy_c_buf_p now points to the character we want to return.
2678 | 		 * If this occurs *before* the EOB characters, then it's a
2679 | 		 * valid NUL; if not, then we've hit the end of the buffer.
2680 | 		 */
2681 | 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2682 | 			/* This was really a NUL. */
2683 | 			*yy_c_buf_p = '\0';
2684 | 
2685 | 		else
2686 | 			{ /* need more input */
2687 | 			int offset = yy_c_buf_p - yytext_ptr;
2688 | 			++yy_c_buf_p;
2689 | 
2690 | 			switch ( yy_get_next_buffer() )
2691 | 				{
2692 | 				case EOB_ACT_LAST_MATCH:
2693 | 					/* This happens because yy_g_n_b()
2694 | 					 * sees that we've accumulated a
2695 | 					 * token and flags that we need to
2696 | 					 * try matching the token before
2697 | 					 * proceeding.  But for input(),
2698 | 					 * there's no matching to consider.
2699 | 					 * So convert the EOB_ACT_LAST_MATCH
2700 | 					 * to EOB_ACT_END_OF_FILE.
2701 | 					 */
2702 | 
2703 | 					/* Reset buffer status. */
2704 | 					yyrestart( yyin );
2705 | 
2706 | 					/* fall through */
2707 | 
2708 | 				case EOB_ACT_END_OF_FILE:
2709 | 					{
2710 | 					if ( yywrap() )
2711 | 						return EOF;
2712 | 
2713 | 					if ( ! yy_did_buffer_switch_on_eof )
2714 | 						YY_NEW_FILE;
2715 | #ifdef __cplusplus
2716 | 					return yyinput();
2717 | #else
2718 | 					return input();
2719 | #endif
2720 | 					}
2721 | 
2722 | 				case EOB_ACT_CONTINUE_SCAN:
2723 | 					yy_c_buf_p = yytext_ptr + offset;
2724 | 					break;
2725 | 				}
2726 | 			}
2727 | 		}
2728 | 
2729 | 	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
2730 | 	*yy_c_buf_p = '\0';	/* preserve yytext */
2731 | 	yy_hold_char = *++yy_c_buf_p;
2732 | 
2733 | 
2734 | 	return c;
2735 | 	}
2736 | 
2737 | 
2738 | #ifdef YY_USE_PROTOS
2739 | void yyrestart( FILE *input_file )
2740 | #else
2741 | void yyrestart( input_file )
2742 | FILE *input_file;
2743 | #endif
2744 | 	{
2745 | 	if ( ! yy_current_buffer )
2746 | 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2747 | 
2748 | 	yy_init_buffer( yy_current_buffer, input_file );
2749 | 	yy_load_buffer_state();
2750 | 	}
2751 | 
2752 | 
2753 | #ifdef YY_USE_PROTOS
2754 | void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2755 | #else
2756 | void yy_switch_to_buffer( new_buffer )
2757 | YY_BUFFER_STATE new_buffer;
2758 | #endif
2759 | 	{
2760 | 	if ( yy_current_buffer == new_buffer )
2761 | 		return;
2762 | 
2763 | 	if ( yy_current_buffer )
2764 | 		{
2765 | 		/* Flush out information for old buffer. */
2766 | 		*yy_c_buf_p = yy_hold_char;
2767 | 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2768 | 		yy_current_buffer->yy_n_chars = yy_n_chars;
2769 | 		}
2770 | 
2771 | 	yy_current_buffer = new_buffer;
2772 | 	yy_load_buffer_state();
2773 | 
2774 | 	/* We don't actually know whether we did this switch during
2775 | 	 * EOF (yywrap()) processing, but the only time this flag
2776 | 	 * is looked at is after yywrap() is called, so it's safe
2777 | 	 * to go ahead and always set it.
2778 | 	 */
2779 | 	yy_did_buffer_switch_on_eof = 1;
2780 | 	}
2781 | 
2782 | 
2783 | #ifdef YY_USE_PROTOS
2784 | void yy_load_buffer_state( void )
2785 | #else
2786 | void yy_load_buffer_state()
2787 | #endif
2788 | 	{
2789 | 	yy_n_chars = yy_current_buffer->yy_n_chars;
2790 | 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2791 | 	yyin = yy_current_buffer->yy_input_file;
2792 | 	yy_hold_char = *yy_c_buf_p;
2793 | 	}
2794 | 
2795 | 
2796 | #ifdef YY_USE_PROTOS
2797 | YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2798 | #else
2799 | YY_BUFFER_STATE yy_create_buffer( file, size )
2800 | FILE *file;
2801 | int size;
2802 | #endif
2803 | 	{
2804 | 	YY_BUFFER_STATE b;
2805 | 
2806 | 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2807 | 	if ( ! b )
2808 | 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2809 | 
2810 | 	b->yy_buf_size = size;
2811 | 
2812 | 	/* yy_ch_buf has to be 2 characters longer than the size given because
2813 | 	 * we need to put in 2 end-of-buffer characters.
2814 | 	 */
2815 | 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2816 | 	if ( ! b->yy_ch_buf )
2817 | 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2818 | 
2819 | 	b->yy_is_our_buffer = 1;
2820 | 
2821 | 	yy_init_buffer( b, file );
2822 | 
2823 | 	return b;
2824 | 	}
2825 | 
2826 | 
2827 | #ifdef YY_USE_PROTOS
2828 | void yy_delete_buffer( YY_BUFFER_STATE b )
2829 | #else
2830 | void yy_delete_buffer( b )
2831 | YY_BUFFER_STATE b;
2832 | #endif
2833 | 	{
2834 | 	if ( ! b )
2835 | 		return;
2836 | 
2837 | 	if ( b == yy_current_buffer )
2838 | 		yy_current_buffer = (YY_BUFFER_STATE) 0;
2839 | 
2840 | 	if ( b->yy_is_our_buffer )
2841 | 		yy_flex_free( (void *) b->yy_ch_buf );
2842 | 
2843 | 	yy_flex_free( (void *) b );
2844 | 	}
2845 | 
2846 | 
2847 | #ifndef YY_ALWAYS_INTERACTIVE
2848 | #ifndef YY_NEVER_INTERACTIVE
2849 | extern int isatty YY_PROTO(( int ));
2850 | #endif
2851 | #endif
2852 | 
2853 | #ifdef YY_USE_PROTOS
2854 | void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2855 | #else
2856 | void yy_init_buffer( b, file )
2857 | YY_BUFFER_STATE b;
2858 | FILE *file;
2859 | #endif
2860 | 
2861 | 
2862 | 	{
2863 | 	yy_flush_buffer( b );
2864 | 
2865 | 	b->yy_input_file = file;
2866 | 	b->yy_fill_buffer = 1;
2867 | 
2868 | #if YY_ALWAYS_INTERACTIVE
2869 | 	b->yy_is_interactive = 1;
2870 | #else
2871 | #if YY_NEVER_INTERACTIVE
2872 | 	b->yy_is_interactive = 0;
2873 | #else
2874 | 	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2875 | #endif
2876 | #endif
2877 | 	}
2878 | 
2879 | 
2880 | #ifdef YY_USE_PROTOS
2881 | void yy_flush_buffer( YY_BUFFER_STATE b )
2882 | #else
2883 | void yy_flush_buffer( b )
2884 | YY_BUFFER_STATE b;
2885 | #endif
2886 | 
2887 | 	{
2888 | 	if ( ! b )
2889 | 		return;
2890 | 
2891 | 	b->yy_n_chars = 0;
2892 | 
2893 | 	/* We always need two end-of-buffer characters.  The first causes
2894 | 	 * a transition to the end-of-buffer state.  The second causes
2895 | 	 * a jam in that state.
2896 | 	 */
2897 | 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2898 | 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2899 | 
2900 | 	b->yy_buf_pos = &b->yy_ch_buf[0];
2901 | 
2902 | 	b->yy_at_bol = 1;
2903 | 	b->yy_buffer_status = YY_BUFFER_NEW;
2904 | 
2905 | 	if ( b == yy_current_buffer )
2906 | 		yy_load_buffer_state();
2907 | 	}
2908 | 
2909 | 
2910 | #ifndef YY_NO_SCAN_BUFFER
2911 | #ifdef YY_USE_PROTOS
2912 | YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2913 | #else
2914 | YY_BUFFER_STATE yy_scan_buffer( base, size )
2915 | char *base;
2916 | yy_size_t size;
2917 | #endif
2918 | 	{
2919 | 	YY_BUFFER_STATE b;
2920 | 
2921 | 	if ( size < 2 ||
2922 | 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2923 | 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2924 | 		/* They forgot to leave room for the EOB's. */
2925 | 		return 0;
2926 | 
2927 | 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2928 | 	if ( ! b )
2929 | 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2930 | 
2931 | 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2932 | 	b->yy_buf_pos = b->yy_ch_buf = base;
2933 | 	b->yy_is_our_buffer = 0;
2934 | 	b->yy_input_file = 0;
2935 | 	b->yy_n_chars = b->yy_buf_size;
2936 | 	b->yy_is_interactive = 0;
2937 | 	b->yy_at_bol = 1;
2938 | 	b->yy_fill_buffer = 0;
2939 | 	b->yy_buffer_status = YY_BUFFER_NEW;
2940 | 
2941 | 	yy_switch_to_buffer( b );
2942 | 
2943 | 	return b;
2944 | 	}
2945 | #endif
2946 | 
2947 | 
2948 | #ifndef YY_NO_SCAN_STRING
2949 | #ifdef YY_USE_PROTOS
2950 | YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2951 | #else
2952 | YY_BUFFER_STATE yy_scan_string( yy_str )
2953 | yyconst char *yy_str;
2954 | #endif
2955 | 	{
2956 | 	int len;
2957 | 	for ( len = 0; yy_str[len]; ++len )
2958 | 		;
2959 | 
2960 | 	return yy_scan_bytes( yy_str, len );
2961 | 	}
2962 | #endif
2963 | 
2964 | 
2965 | #ifndef YY_NO_SCAN_BYTES
2966 | #ifdef YY_USE_PROTOS
2967 | YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2968 | #else
2969 | YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2970 | yyconst char *bytes;
2971 | int len;
2972 | #endif
2973 | 	{
2974 | 	YY_BUFFER_STATE b;
2975 | 	char *buf;
2976 | 	yy_size_t n;
2977 | 	int i;
2978 | 
2979 | 	/* Get memory for full buffer, including space for trailing EOB's. */
2980 | 	n = len + 2;
2981 | 	buf = (char *) yy_flex_alloc( n );
2982 | 	if ( ! buf )
2983 | 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2984 | 
2985 | 	for ( i = 0; i < len; ++i )
2986 | 		buf[i] = bytes[i];
2987 | 
2988 | 	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2989 | 
2990 | 	b = yy_scan_buffer( buf, n );
2991 | 	if ( ! b )
2992 | 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2993 | 
2994 | 	/* It's okay to grow etc. this buffer, and we should throw it
2995 | 	 * away when we're done.
2996 | 	 */
2997 | 	b->yy_is_our_buffer = 1;
2998 | 
2999 | 	return b;
3000 | 	}
3001 | #endif
3002 | 
3003 | 
3004 | #ifndef YY_NO_PUSH_STATE
3005 | #ifdef YY_USE_PROTOS
3006 | static void yy_push_state( int new_state )
3007 | #else
3008 | static void yy_push_state( new_state )
3009 | int new_state;
3010 | #endif
3011 | 	{
3012 | 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
3013 | 		{
3014 | 		yy_size_t new_size;
3015 | 
3016 | 		yy_start_stack_depth += YY_START_STACK_INCR;
3017 | 		new_size = yy_start_stack_depth * sizeof( int );
3018 | 
3019 | 		if ( ! yy_start_stack )
3020 | 			yy_start_stack = (int *) yy_flex_alloc( new_size );
3021 | 
3022 | 		else
3023 | 			yy_start_stack = (int *) yy_flex_realloc(
3024 | 					(void *) yy_start_stack, new_size );
3025 | 
3026 | 		if ( ! yy_start_stack )
3027 | 			YY_FATAL_ERROR(
3028 | 			"out of memory expanding start-condition stack" );
3029 | 		}
3030 | 
3031 | 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
3032 | 
3033 | 	BEGIN(new_state);
3034 | 	}
3035 | #endif
3036 | 
3037 | 
3038 | #ifndef YY_NO_POP_STATE
3039 | static void yy_pop_state()
3040 | 	{
3041 | 	if ( --yy_start_stack_ptr < 0 )
3042 | 		YY_FATAL_ERROR( "start-condition stack underflow" );
3043 | 
3044 | 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
3045 | 	}
3046 | #endif
3047 | 
3048 | 
3049 | #ifndef YY_NO_TOP_STATE
3050 | static int yy_top_state()
3051 | 	{
3052 | 	return yy_start_stack[yy_start_stack_ptr - 1];
3053 | 	}
3054 | #endif
3055 | 
3056 | #ifndef YY_EXIT_FAILURE
3057 | #define YY_EXIT_FAILURE 2
3058 | #endif
3059 | 
3060 | #ifdef YY_USE_PROTOS
3061 | static void yy_fatal_error( yyconst char msg[] )
3062 | #else
3063 | static void yy_fatal_error( msg )
3064 | char msg[];
3065 | #endif
3066 | 	{
3067 | 	(void) fprintf( stderr, "%s\n", msg );
3068 | 	exit( YY_EXIT_FAILURE );
3069 | 	}
3070 | 
3071 | 
3072 | 
3073 | /* Redefine yyless() so it works in section 3 code. */
3074 | 
3075 | #undef yyless
3076 | #define yyless(n) \
3077 | 	do \
3078 | 		{ \
3079 | 		/* Undo effects of setting up yytext. */ \
3080 | 		yytext[yyleng] = yy_hold_char; \
3081 | 		yy_c_buf_p = yytext + n; \
3082 | 		yy_hold_char = *yy_c_buf_p; \
3083 | 		*yy_c_buf_p = '\0'; \
3084 | 		yyleng = n; \
3085 | 		} \
3086 | 	while ( 0 )
3087 | 
3088 | 
3089 | /* Internal utility routines. */
3090 | 
3091 | #ifndef yytext_ptr
3092 | #ifdef YY_USE_PROTOS
3093 | static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3094 | #else
3095 | static void yy_flex_strncpy( s1, s2, n )
3096 | char *s1;
3097 | yyconst char *s2;
3098 | int n;
3099 | #endif
3100 | 	{
3101 | 	register int i;
3102 | 	for ( i = 0; i < n; ++i )
3103 | 		s1[i] = s2[i];
3104 | 	}
3105 | #endif
3106 | 
3107 | #ifdef YY_NEED_STRLEN
3108 | #ifdef YY_USE_PROTOS
3109 | static int yy_flex_strlen( yyconst char *s )
3110 | #else
3111 | static int yy_flex_strlen( s )
3112 | yyconst char *s;
3113 | #endif
3114 | 	{
3115 | 	register int n;
3116 | 	for ( n = 0; s[n]; ++n )
3117 | 		;
3118 | 
3119 | 	return n;
3120 | 	}
3121 | #endif
3122 | 
3123 | 
3124 | #ifdef YY_USE_PROTOS
3125 | static void *yy_flex_alloc( yy_size_t size )
3126 | #else
3127 | static void *yy_flex_alloc( size )
3128 | yy_size_t size;
3129 | #endif
3130 | 	{
3131 | 	return (void *) malloc( size );
3132 | 	}
3133 | 
3134 | #ifdef YY_USE_PROTOS
3135 | static void *yy_flex_realloc( void *ptr, yy_size_t size )
3136 | #else
3137 | static void *yy_flex_realloc( ptr, size )
3138 | void *ptr;
3139 | yy_size_t size;
3140 | #endif
3141 | 	{
3142 | 	/* The cast to (char *) in the following accommodates both
3143 | 	 * implementations that use char* generic pointers, and those
3144 | 	 * that use void* generic pointers.  It works with the latter
3145 | 	 * because both ANSI C and C++ allow castless assignment from
3146 | 	 * any pointer type to void*, and deal with argument conversions
3147 | 	 * as though doing an assignment.
3148 | 	 */
3149 | 	return (void *) realloc( (char *) ptr, size );
3150 | 	}
3151 | 
3152 | #ifdef YY_USE_PROTOS
3153 | static void yy_flex_free( void *ptr )
3154 | #else
3155 | static void yy_flex_free( ptr )
3156 | void *ptr;
3157 | #endif
3158 | 	{
3159 | 	free( ptr );
3160 | 	}
3161 | 
3162 | #if YY_MAIN
3163 | int main()
3164 | 	{
3165 | 	yylex();
3166 | 	return 0;
3167 | 	}
3168 | #endif
3169 |