1 /* A lexical scanner generated by flex */
2 
3 /* Scanner skeleton version:
4  * $Header: flex.skl,v 1.2 94/01/04 14:33:15 vern Exp $
5  */
6 
7 #define FLEX_SCANNER
8 
9 #include <stdio.h>
10 
11 
12 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
13 #ifdef c_plusplus
14 #ifndef __cplusplus
15 #define __cplusplus
16 #endif
17 #endif
18 
19 
20 #ifdef __cplusplus
21 
22 #include <stdlib.h>
23 #include <unistd.h>
24 
25 /* Use prototypes in function declarations. */
26 #define YY_USE_PROTOS
27 
28 /* The "const" storage-class-modifier is valid. */
29 #define YY_USE_CONST
30 
31 #else	/* ! __cplusplus */
32 
33 #ifdef __STDC__
34 
35 #define YY_USE_PROTOS
36 #define YY_USE_CONST
37 
38 #endif	/* __STDC__ */
39 #endif	/* ! __cplusplus */
40 
41 
42 #ifdef __TURBOC__
43 #define YY_USE_CONST
44 #endif
45 
46 
47 #ifndef YY_USE_CONST
48 #ifndef const
49 #define const
50 #endif
51 #endif
52 
53 
54 #ifdef YY_USE_PROTOS
55 #define YY_PROTO(proto) proto
56 #else
57 #define YY_PROTO(proto) ()
58 #endif
59 
60 /* Returned upon end-of-file. */
61 #define YY_NULL 0
62 
63 /* Promotes a possibly negative, possibly signed char to an unsigned
64  * integer for use as an array index.  If the signed char is negative,
65  * we want to instead treat it as an 8-bit unsigned char, hence the
66  * double cast.
67  */
68 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
69 
70 /* Enter a start condition.  This macro really ought to take a parameter,
71  * but we do it the disgusting crufty way forced on us by the ()-less
72  * definition of BEGIN.
73  */
74 #define BEGIN yy_start = 1 + 2 *
75 
76 /* Translate the current start state into a value that can be later handed
77  * to BEGIN to return to the state.
78  */
79 #define YY_START ((yy_start - 1) / 2)
80 
81 /* Action number for EOF rule of a given start state. */
82 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
83 
84 /* Special action meaning "start processing a new file".  Now included
85  * only for backward compatibility with previous versions of flex.
86  */
87 #define YY_NEW_FILE yyrestart( yyin )
88 
89 #define YY_END_OF_BUFFER_CHAR 0
90 
91 /* Size of default input buffer. */
92 #define YY_BUF_SIZE 16384
93 
94 typedef struct yy_buffer_state *YY_BUFFER_STATE;
95 
96 extern int yyleng;
97 extern FILE *yyin, *yyout;
98 
99 #ifdef __cplusplus
100 extern "C" {
101 #endif
102 	extern int yywrap YY_PROTO(( void ));
103 #ifdef __cplusplus
104 	}
105 #endif
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_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
133 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
134 		} \
135 	while ( 0 )
136 
137 #define unput(c) yyunput( c, yytext_ptr )
138 
139 
140 struct yy_buffer_state
141 	{
142 	FILE *yy_input_file;
143 
144 	char *yy_ch_buf;		/* input buffer */
145 	char *yy_buf_pos;		/* current position in input buffer */
146 
147 	/* Size of input buffer in bytes, not including room for EOB
148 	 * characters.
149 	 */
150 	int yy_buf_size;
151 
152 	/* Number of characters read into yy_ch_buf, not including EOB
153 	 * characters.
154 	 */
155 	int yy_n_chars;
156 
157 	/* Whether this is an "interactive" input source; if so, and
158 	 * if we're using stdio for input, then we want to use getc()
159 	 * instead of fread(), to make sure we stop fetching input after
160 	 * each newline.
161 	 */
162 	int yy_is_interactive;
163 
164 	/* Whether to try to fill the input buffer when we reach the
165 	 * end of it.
166 	 */
167 	int yy_fill_buffer;
168 
169 	/* Whether we've seen an EOF on this buffer. */
170 	int yy_eof_status;
171 #define EOF_NOT_SEEN 0
172 	/* "Pending" happens when the EOF has been seen but there's still
173 	 * some text to process.  Note that when we actually see the EOF,
174 	 * we switch the status back to "not seen" (via yyrestart()), so
175 	 * that the user can continue scanning by just pointing yyin at
176 	 * a new input file.
177 	 */
178 #define EOF_PENDING 1
179 	};
180 
181 static YY_BUFFER_STATE yy_current_buffer = 0;
182 
183 /* We provide macros for accessing buffer states in case in the
184  * future we want to put the buffer states in a more general
185  * "scanner state".
186  */
187 #define YY_CURRENT_BUFFER yy_current_buffer
188 
189 
190 /* yy_hold_char holds the character lost when yytext is formed. */
191 static char yy_hold_char;
192 
193 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
194 
195 
196 int yyleng;
197 
198 /* Points to current character in buffer. */
199 static char *yy_c_buf_p = (char *) 0;
200 static int yy_init = 1;		/* whether we need to initialize */
201 static int yy_start = 0;	/* start state number */
202 
203 /* Flag which is used to allow yywrap()'s to do buffer switches
204  * instead of setting up a fresh yyin.  A bit of a hack ...
205  */
206 static int yy_did_buffer_switch_on_eof;
207 
208 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
209 void yyrestart YY_PROTO(( FILE *input_file ));
210 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
211 void yy_load_buffer_state YY_PROTO(( void ));
212 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
213 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
214 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
215 
216 static int yy_start_stack_ptr = 0;
217 static int yy_start_stack_depth = 0;
218 static int *yy_start_stack = 0;
219 static void yy_push_state YY_PROTO(( int new_state ));
220 static void yy_pop_state YY_PROTO(( void ));
221 static int yy_top_state YY_PROTO(( void ));
222 
223 #ifndef yytext_ptr
224 static void yy_flex_strcpy YY_PROTO(( char *, const char * ));
225 #endif
226 
227 static void *yy_flex_alloc YY_PROTO(( unsigned int ));
228 static void *yy_flex_realloc YY_PROTO(( void *ptr, unsigned int ));
229 static void yy_flex_free YY_PROTO(( void * ));
230 
231 #define yy_new_buffer yy_create_buffer
232 
233 #define INITIAL 0
234 typedef unsigned char YY_CHAR;
235 typedef int yy_state_type;
236 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
237 extern char *yytext;
238 #define yytext_ptr yytext
239 
240 #ifdef __cplusplus
241 static int yyinput YY_PROTO(( void ));
242 #else
243 static int input YY_PROTO(( void ));
244 #endif
245 
246 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
247 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
248 static int yy_get_next_buffer YY_PROTO(( void ));
249 static void yy_fatal_error YY_PROTO(( const char msg[] ));
250 
251 /* Done after the current pattern has been matched and before the
252  * corresponding action - sets up yytext.
253  */
254 #define YY_DO_BEFORE_ACTION \
255 	yytext_ptr = yy_bp; \
256 	yyleng = yy_cp - yy_bp; \
257 	yy_hold_char = *yy_cp; \
258 	*yy_cp = '\0'; \
259 	yy_c_buf_p = yy_cp;
260 
261 #define YY_END_OF_BUFFER 356
262 static const short int yy_accept[2052] =
263     {   0,
264         0,    0,  356,  354,  336,  337,  335,  354,  354,  354,
265       350,  353,  354,  338,  346,  351,  352,  354,  354,  354,
266       354,  354,  354,  354,  354,  354,  354,  354,  354,  354,
267       354,  354,  354,  354,  354,  354,  354,  354,  347,  348,
268       349,  344,  345,    0,    0,  335,    0,  341,    0,    0,
269         0,    0,    0,    0,    0,    0,  338,    0,  343,    0,
270         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
271         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
272         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
273         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
274 
275         0,    0,    0,    0,    0,    0,    0,    0,    0,  237,
276         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
277         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
278         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
279         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
280         0,    0,    0,    0,    0,    0,  333,    0,    0,    0,
281         0,  340,    0,    0,  343,    0,  339,    0,    0,    0,
282         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
283         0,    0,   48,    0,    0,    0,    0,    0,    0,    0,
284         0,    0,    0,    0,    0,    0,   84,    0,    0,    0,
285 
286         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
287         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
288         0,    0,    0,    0,    0,    0,    0,  151,    0,    0,
289         0,    0,    0,    0,    0,    0,    0,    0,    0,  202,
290         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
291         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
292         0,    0,    0,    0,  255,    0,    0,    0,    0,    0,
293         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
294         0,    0,    0,    0,  304,    0,    0,    0,    0,    0,
295         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
296 
297         0,    0,    0,  327,    0,    0,    0,    0,    0,    0,
298         0,    0,    0,    0,  342,    0,    0,    0,    0,    0,
299         0,    0,   32,    0,    0,    0,    0,   37,   38,    0,
300         0,    0,    0,    0,    0,   59,   58,    0,    0,    0,
301         0,   72,    0,    0,    0,    0,    0,    0,    0,    0,
302         0,    0,    0,    0,    0,    0,    0,    0,    0,  106,
303       116,    0,  120,    0,    0,  121,    0,    0,    0,  127,
304         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
305         0,    0,    0,  180,    0,    0,    0,    0,  194,  197,
306         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
307 
308         0,    0,    0,    0,  222,    0,    0,    0,    0,  236,
309         0,    0,    0,    0,    0,  244,    0,  247,  246,    0,
310         0,    0,    0,    0,    0,  267,  266,    0,    0,    0,
311       276,    0,    0,  271,    0,    0,    0,    0,    0,    0,
312         0,    0,    0,    0,    0,    0,    0,    0,    0,  305,
313         0,    0,    0,    0,    0,  314,    0,    0,    0,    0,
314         0,  318,    0,    0,    0,    0,    0,  328,    0,    0,
315         0,    0,  332,    0,    0,    0,    0,    0,    0,  339,
316         1,    0,    0,    0,    0,    0,    0,    0,    0,    0,
317         0,    0,   35,    0,    0,   36,    0,    0,    0,   53,
318 
319        56,    0,   62,    0,    0,    0,    0,    0,    0,    0,
320         0,    0,    0,    0,    0,    0,    0,    0,   91,   92,
321        93,    0,  101,  102,    0,    0,    0,  105,    0,    0,
322         0,    0,    0,    0,    0,    0,    0,  119,    0,    0,
323         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
324         0,    0,    0,  143,  144,  145,    0,    0,    0,    0,
325       152,  155,    0,    0,    0,    0,    0,    0,    0,    0,
326       181,    0,  192,  193,    0,    0,    0,    0,    0,    0,
327         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
328         0,    0,    0,    0,  231,  232,    0,    0,  233,    0,
329 
330         0,    0,    0,    0,  243,    0,    0,    0,    0,    0,
331       254,  256,  265,    0,  269,    0,    0,    0,  278,    0,
332         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
333       297,    0,    0,    0,    0,    0,    0,    0,    0,    0,
334         0,    0,    0,    0,    0,  315,  316,  317,    0,    0,
335         0,    0,    0,  324,    0,    0,    0,    0,    0,    0,
336         0,    4,    0,    6,    0,    0,    0,    0,    0,    0,
337         0,    0,    0,    0,    0,    0,    0,   34,    0,    0,
338         0,   47,   52,    0,    0,    0,    0,    0,    0,    0,
339         0,    0,    0,    0,    0,    0,    0,   81,    0,    0,
340 
341         0,    0,    0,    0,   90,    0,    0,    0,    0,    0,
342       103,    0,    0,    0,    0,    0,    0,    0,    0,    0,
343       104,  117,    0,  122,  128,    0,    0,    0,    0,    0,
344         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
345         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
346         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
347         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
348         0,    0,    0,  208,    0,    0,    0,    0,  214,    0,
349         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
350         0,  238,  239,    0,    0,  245,    0,    0,    0,  253,
351 
352         0,    0,    0,    0,    0,    0,  270,    0,    0,    0,
353         0,    0,  286,    0,    0,    0,    0,    0,    0,    0,
354         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
355         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
356       322,  326,    0,    0,  331,    0,    0,    0,    0,    0,
357         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
358         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
359         0,    0,    0,    0,    0,    0,    0,   57,    0,    0,
360         0,    0,    0,    0,    0,    0,    0,    0,   79,    0,
361         0,    0,    0,    0,    0,    0,   94,    0,    0,    0,
362 
363         0,    0,    0,    0,    0,    0,    0,    0,  113,    0,
364         0,    0,  118,    0,    0,    0,    0,    0,    0,    0,
365         0,    0,    0,    0,    0,    0,    0,    0,    0,  141,
366         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
367         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
368         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
369         0,    0,    0,    0,    0,    0,    0,  203,    0,    0,
370         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
371         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
372         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
373 
374       268,  277,    0,    0,    0,    0,    0,  281,    0,    0,
375         0,  287,    0,    0,    0,    0,    0,    0,    0,    0,
376         0,    0,    0,  299,    0,    0,    0,    0,    0,    0,
377         0,    0,    0,    0,    0,  323,  319,    0,    0,  329,
378         0,    0,  334,    0,    0,    0,    0,    0,    0,    0,
379         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
380         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
381         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
382         0,    0,   73,   74,   76,    0,   77,    0,    0,    0,
383         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
384 
385         0,   99,    0,    0,    0,    0,    0,    0,    0,  115,
386         0,    0,    0,    0,    0,    0,    0,    0,    0,  132,
387         0,    0,    0,    0,    0,  150,  142,    0,    0,  148,
388         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
389         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
390         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
391         0,    0,  190,    0,    0,    0,    0,    0,    0,    0,
392         0,    0,    0,  210,    0,    0,    0,    0,    0,  217,
393         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
394         0,    0,    0,    0,    0,  252,    0,    0,    0,    0,
395 
396         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
397         0,    0,    0,    0,    0,    0,    0,  295,    0,    0,
398       298,    0,    0,    0,    0,    0,  308,    0,    0,  311,
399         0,    0,    0,  320,    0,    0,    0,    0,    0,    0,
400         0,    0,    0,    0,    0,    0,    0,    0,    8,   18,
401         0,    0,    0,    0,    0,   29,    0,    0,    0,    0,
402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
403        55,    0,    0,    0,    0,    0,    0,    0,    0,   75,
404         0,    0,    0,    0,   85,    0,    0,    0,    0,    0,
405         0,  100,    0,    0,    0,    0,    0,    0,  110,  112,
406 
407       114,    0,    0,    0,    0,    0,  131,    0,    0,    0,
408         0,  136,  138,    0,    0,    0,    0,  149,    0,    0,
409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
411         0,    0,    0,    0,  184,  185,  187,    0,  188,    0,
412         0,    0,  196,    0,    0,    0,  200,    0,    0,  211,
413         0,    0,    0,    0,    0,  218,    0,    0,    0,    0,
414       224,  227,  225,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417 
418         0,    0,    0,    0,    0,    0,  294,  293,  296,    0,
419         0,  300,    0,    0,    0,  309,  310,    0,    0,    0,
420         0,    0,    0,    0,    0,    0,    5,    0,    0,    7,
421        17,    0,    0,   14,    0,   16,   12,    0,   28,    0,
422         0,    0,    0,   31,   33,    0,    0,    0,    0,    0,
423         0,    0,    0,    0,    0,    0,   54,    0,   61,    0,
424        65,    0,    0,    0,    0,    0,    0,    0,   80,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426       108,  109,  111,    0,    0,    0,  125,    0,    0,  135,
427       137,  134,    0,    0,    0,    0,    0,  154,    0,    0,
428 
429         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,  174,
431         0,    0,  186,    0,    0,  195,  201,    0,    0,    0,
432         0,    0,    0,    0,    0,    0,  215,    0,    0,    0,
433         0,  223,  226,    0,    0,    0,    0,    0,    0,    0,
434         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,  280,    0,    0,    0,
436         0,    0,    0,    0,  291,  292,  301,    0,    0,    0,
437       307,    0,    0,    0,    0,  321,    0,  330,    0,    0,
438        13,    0,   15,   11,   10,    0,    0,    0,    0,    0,
439 
440         0,   30,    0,    0,    0,    0,    0,   40,   42,    0,
441         0,    0,   45,   60,   64,   63,    0,    0,    0,    0,
442         0,    0,   78,    0,    0,    0,    0,    0,    0,    0,
443         0,   95,    0,  107,    0,  123,  126,    0,    0,  133,
444         0,    0,    0,    0,  153,    0,    0,    0,    0,    0,
445         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
446         0,    0,  175,    0,    0,  172,    0,  178,    0,  191,
447         0,    0,    0,    0,    0,    0,    0,  212,    0,  221,
448         0,  219,    0,    0,    0,    0,    0,  228,  240,    0,
449         0,    0,  248,    0,    0,    0,    0,    0,    0,    0,
450 
451       259,    0,  263,    0,    0,    0,    0,  279,    0,    0,
452         0,  285,    0,    0,  290,    0,  302,  306,    0,    0,
453         0,    0,  325,    0,    3,    9,    0,    0,    0,    0,
454         0,    0,    0,    0,    0,    0,    0,   39,   41,    0,
455         0,   44,    0,    0,    0,    0,    0,    0,    0,    0,
456         0,    0,    0,    0,   96,    0,    0,  124,    0,    0,
457         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
458         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
459       173,    0,    0,  176,  189,    0,    0,    0,    0,    0,
460         0,  209,  213,  216,  220,    0,  230,    0,    0,    0,
461 
462         0,  249,    0,    0,    0,  260,    0,    0,  257,    0,
463         0,    0,    0,    0,    0,  283,  284,    0,    0,    0,
464         0,    0,    0,    0,    2,    0,    0,    0,    0,    0,
465         0,    0,   27,    0,    0,    0,   51,   43,   46,    0,
466         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
467         0,    0,   97,    0,    0,    0,  140,    0,  147,    0,
468         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
469         0,    0,    0,    0,    0,  177,  179,    0,  198,    0,
470         0,    0,    0,  229,    0,  234,    0,    0,    0,  250,
471       258,    0,  264,  261,    0,    0,    0,    0,  282,    0,
472 
473       288,  303,    0,  312,    0,  182,    0,    0,    0,    0,
474        26,    0,   21,   24,    0,   50,    0,    0,    0,    0,
475        71,   67,    0,    0,    0,    0,    0,    0,   98,    0,
476         0,  139,  146,    0,  156,    0,    0,    0,    0,    0,
477         0,    0,    0,    0,    0,    0,    0,    0,  166,  199,
478         0,  205,    0,  204,  235,    0,  242,  251,  262,    0,
479         0,    0,    0,  289,  313,  183,    0,   25,    0,   20,
480        23,   49,    0,   70,   66,    0,    0,    0,    0,   86,
481         0,    0,    0,  129,    0,    0,    0,    0,    0,    0,
482         0,  167,  159,    0,  161,    0,  163,    0,  207,  206,
483 
484       241,    0,  273,    0,  272,   19,   22,    0,    0,    0,
485        83,    0,    0,    0,  130,  157,  158,    0,  160,    0,
486       162,    0,  164,  168,    0,  275,  274,    0,    0,    0,
487        87,    0,   88,  165,  169,    0,    0,    0,    0,   82,
488         0,    0,  170,    0,    0,   89,  171,    0,   69,   68,
489         0
490     } ;
491 
492 static const int yy_ec[256] =
493     {   0,
494         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
495         1,    4,    1,    1,    1,    1,    1,    1,    1,    1,
496         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
497         1,    4,    1,    5,    6,    1,    1,    1,    7,    1,
498         1,    8,    9,    1,   10,   11,   12,   13,   14,   15,
499        16,   13,   13,   13,   13,   13,   13,   17,    1,    1,
500         1,    1,    1,    1,    1,    1,    1,    1,   18,    1,
501         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
502         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
503        19,   20,   21,    1,   22,    1,   23,   24,   25,   26,
504 
505        27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
506        37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
507        47,   48,   49,    1,   50,    1,    1,    1,    1,    1,
508         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
509         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
510         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
511         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
512         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
513         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
514         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
515 
516         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
517         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
518         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
519         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
520         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
521         1,    1,    1,    1,    1
522     } ;
523 
524 static const int yy_meta[51] =
525     {   0,
526         1,    1,    2,    1,    1,    1,    3,    1,    1,    1,
527         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
528         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
529         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
530         1,    1,    1,    1,    1,    1,    1,    1,    1,    1
531     } ;
532 
533 static const short int yy_base[2062] =
534     {   0,
535         0,    0, 2185, 2186,   49, 2186,   50,   52,   71, 2164,
536      2186,   45,   54,   54, 2186, 2186, 2186,   40,   55,   66,
537        84,   84,   89,   34,   71,  105, 2153,  108,   68,  110,
538        76,  120,  135,  142,  162, 2144,  105,   66,  147,  171,
539      2186, 2186, 2186,  136,    0,  172,  139, 2186, 2178,    0,
540       200,  215, 2149, 2139,   97,  146,  210, 2170,    0,  222,
541      2140, 2151, 2132,   85,  143,  160,   40, 2151,  110, 2137,
542      2141,  184,  138,  167, 2134, 2147,  193, 2131, 2127,  204,
543      2125, 2137, 2131, 2121, 2136, 2134,  164,  206, 2133, 2133,
544      2125,  181, 2127,  217, 2117, 2119, 2119,  225, 2123, 2130,
545 
546       217,  147,  220,  223,  229, 2126, 2115, 2115,  229,  235,
547       247, 2107, 2117, 2111, 2123,  243, 2105, 2113, 2103, 2106,
548      2115, 2103, 2110,  250, 2115,  239, 2089, 2113,  242,  243,
549       257, 2095, 2088, 2102, 2090, 2093,  255, 2090, 2091, 2090,
550      2087, 2099, 2094, 2098, 2100,  247, 2099, 2098,  264, 2097,
551       250, 2096, 2095,  265,  289,  296,  290,  291,  310, 2081,
552      2093, 2186, 2107,  296,    0,  303,  314, 2070, 2083, 2089,
553      2068, 2073, 2076, 2061, 2076, 2069, 2063, 2079, 2076, 2056,
554      2075, 2058, 2186, 2057, 2057, 2056, 2055, 2049, 2058, 2056,
555       264, 2051, 2055, 2057, 2059, 2046, 2186, 2060, 2044, 2047,
556 
557      2042, 2056, 2051, 2058, 2040, 2048, 2051, 2050, 2050, 2033,
558      2043, 2046, 2046,  284,  310, 2042,  283, 2040, 2038, 2032,
559      2030, 2038, 2031, 2027, 2020, 2035, 2030, 2186, 2027, 2032,
560      2031, 2020, 2014, 2028, 2024, 2030, 2021, 2024, 2033,  312,
561      2022,  277,  309, 2017,  312, 2020, 2006, 2016, 2008, 2016,
562      2015, 2005, 2010, 2012, 2000, 1996, 2003, 1999, 1988, 1997,
563      1990, 1994, 1992, 2000, 2186, 1993, 1997, 1980, 1989, 1990,
564      1985, 1991, 1994,  308, 1989, 1979, 1987, 1990, 1974,  318,
565      1986, 1972, 1988, 1978,  326, 1984, 1987, 1970, 1981, 1980,
566      1964, 1960, 1962, 1961, 1961, 1978, 1962, 1953, 1957, 1957,
567 
568      1973, 1954, 1960, 2186, 1947, 1951, 1951, 1967,  345, 1986,
569      1985, 1960, 1957, 1977, 2186,  360, 1957, 1946, 1947, 1945,
570      1935,  329,  337, 1943, 1933,  341, 1944, 2186, 2186, 1949,
571      1938, 1947, 1943, 1931, 1929, 2186, 2186, 1930, 1927, 1937,
572      1926, 2186,  354, 1939, 1935, 1928, 1916, 1928, 1934,  347,
573      1922, 1925, 1911, 1916,  338, 1930,  359,  349, 1914, 2186,
574      2186, 1924, 2186, 1911, 1916, 2186, 1921, 1923,  102,  331,
575      1901,  369, 1908, 1907, 1903,  388, 1903, 1904, 1902, 1911,
576      1907,  360, 1897,  376, 1905, 1896, 1912, 1894,  374, 2186,
577      1900, 1894, 1910, 1896, 1908, 1907, 1902, 1892, 1884, 1903,
578 
579      1902, 1897, 1887, 1879, 2186,  378, 1891, 1893,  405, 1896,
580      1889, 1886, 1880, 1872, 1884, 2186, 1890, 2186, 2186,  384,
581      1872, 1877, 1883, 1885, 1866, 2186, 2186, 1876, 1879, 1869,
582      2186, 1870, 1873, 2186, 1876, 1876, 1864, 1876, 1855, 1866,
583      1854, 1868,  395, 1861, 1866,  391, 1869, 1854, 1853,  385,
584      1853, 1845,  387, 1847, 1855, 2186, 1858, 1854, 1856, 1841,
585      1858, 2186, 1838, 1842, 1853, 1850, 1839, 2186, 1833, 1837,
586      1848, 1869, 2186,  427, 1836, 1862,  426,  434,  441,  445,
587      2186, 1829, 1845, 1841,  440,  412, 1826, 1839, 1839, 1836,
588      1835, 1835, 2186, 1824, 1832, 2186, 1818, 1822, 1816, 2186,
589 
590       430, 1828,  441, 1814, 1817, 1821, 1817, 1803, 1809, 1825,
591      1820, 1819, 1819,  445, 1803,  442, 1820, 1816, 2186, 2186,
592      2186, 1800,  449, 2186, 1810, 1797, 1795, 2186,  357, 1811,
593      1800, 1798, 1798, 1810, 1802, 1814, 1803, 2186, 1787, 1792,
594      1786, 1795, 1790, 1801, 1786,  449, 1791, 1794, 1778, 1788,
595      1791, 1780, 1790, 2186, 2186, 2186, 1792,  450, 1770, 1782,
596      2186,  458, 1785, 1785, 1768,  456, 1766, 1785, 1780, 1769,
597      2186,  471, 2186, 2186, 1764, 1762, 1780,  471, 1762, 1759,
598      1758, 1765,  407, 1772, 1755, 1760, 1770,  470, 1768, 1751,
599      1765, 1765, 1766, 1766, 2186, 2186, 1765, 1753, 2186, 1746,
600 
601      1758, 1758, 1741, 1740, 2186, 1741, 1739, 1749, 1747, 1750,
602      2186, 2186,  480, 1740, 2186, 1742, 1747, 1750, 2186, 1745,
603      1744, 1744, 1728, 1739, 1742, 1724,  451, 1728, 1727, 1727,
604      2186, 1739, 1724, 1723, 1719, 1718, 1733, 1728, 1732, 1725,
605      1716, 1716, 1728,  481, 1725, 2186, 2186, 2186, 1707, 1723,
606      1720, 1712, 1718, 2186, 1699, 1716, 1708, 1714,  517, 1717,
607       510,  475, 1699, 2186,  504, 1701, 1710, 1699,   46, 1704,
608      1694, 1707, 1692, 1702, 1703, 1693, 1702, 2186, 1700, 1703,
609       513,  506, 2186, 1689, 1701, 1683, 1695, 1685, 1697, 1676,
610      1682, 1674, 1693,  478, 1686, 1688, 1679, 2186, 1684, 1680,
611 
612      1679, 1682, 1682, 1660, 2186, 1679,  512, 1668, 1667, 1666,
613      2186, 1659, 1665, 1674, 1662, 1669, 1668, 1670, 1672, 1659,
614      2186, 2186, 1653, 2186, 2186, 1661, 1655, 1667, 1649, 1652,
615      1640,  137,  144,  166,  188,  220,  274,  329,  514,  356,
616       392,  386,  425,  439,  461,  480,  484,  473,  488,  491,
617       537,  497,  519,  516,  507,  505,  507,  520,  513,  520,
618       509,  517,  538,  535,  537,  524,  520,  528,  533,  543,
619       542,  549,  532, 2186,  536,  535,  552,  555,  558,  550,
620       544,  543,  559,  561,  562,  560,  553,  551,  558,  562,
621       567, 2186, 2186,  572,  574, 2186,  567,  575,  557, 2186,
622 
623       568,  558,  582,  579,  570,  579, 2186,  569,  569,  590,
624       591,  593, 2186,  584,  586,  595,  581,  583,  587,  596,
625       596,  584,  585,  606,  600,  588,  596,  611,  610,  602,
626       606,  615,  604,  604,  614,  619,  616,  617,  605,  612,
627      2186,  618,  608,  615, 2186,  647,  613,  615,  622,  617,
628       628,  619,  626,  627,  625,  629,  635,  614,  616,  638,
629       625,  637,  630,  642,  634,  629,  641,  650,  634,  650,
630       639,  646,  643,  656,  643,  658,  647, 2186,  647,  642,
631       655,  650,  659,  662,  654,  644,  665,  666, 2186,  660,
632       665,  657,  661,  673,  671,  679, 2186,  665,  666,  667,
633 
634       671,  666,  663,  673,  679,  682,  687,  687, 2186,  688,
635       681,  690, 2186,  682,  690,  680,  692,  680,  689,  693,
636       678,  700,  700,  699,  695,  688,  690,  701,  691, 2186,
637       707,  692,  700,  703,  704,  702,  706,  712,  715,  720,
638       710,  708,  707,  722,  727,  713,  714,  712,  714,  724,
639       735,  717,  731,  733,  733,  722,  743,  744,  739,  743,
640       736,  725,  739,  745,  748,  745,  746, 2186,  755,  752,
641       750,  752,  756,  761,  740,  759,  757,  759,  762,  761,
642       764,  752,  771,  763,  766,  770,  755,  771,  757,  778,
643       762,  756,  761,  782,  779,  770,  767,  769,  779,  777,
644 
645      2186, 2186,  770,  777,  791,  787,  793, 2186,  783,  791,
646       777, 2186,  784,  798,  788,  797,  787,  798,  785,  798,
647       786,  805,  799, 2186,  789,  807,  791,  807,  794,  801,
648       810,  811,  808,  806,  801, 2186, 2186,  818,  803, 2186,
649       820,  842, 2186,  809,  816,  812,  815,  819,  825,  804,
650       806,  828,  818,  827,  830,  831,  825,  818,  824,  835,
651       818,  847,  823,  839,  844,  828,  842,  833,  840,  838,
652       847,  851,  838,  836,  835,  843,  852,  838,  841,  846,
653       840,  862, 2186, 2186, 2186,  849, 2186,  850,  850,  848,
654       848,  854,  862,  865,  866,  868,  861,  855,  852,  855,
655 
656       870, 2186,  871,  867,  877,  878,  895,  897,  882, 2186,
657       881,  877,  883,  882,  891,  888,  887,  883,  876, 2186,
658       889,  893,  891,  891,  887, 2186, 2186,  888,  900, 2186,
659       899,  893,  891,  902,  896,  897,  895,  893,  907,  912,
660       898,  899,  909,  894,  913,  918,  902,  909,  916,  903,
661       917,  918,  908,  918,  919,  921,  923,  926,  918,  908,
662       929,  930, 2186,  924,  925,  933,  930,  931,  934,  928,
663       929,  930,  940,  927,  929,  941,  931,  949,  946,  933,
664       935,  948,  951,  962,  939,  954,  956,  954,  948,  956,
665       955,  944,  952,  949,  959,  969,  951,  953,  963,  973,
666 
667       954,  968,  969,  972,  977,  978,  967,  982,  981,  981,
668       965,  988,  988,  977,  976,  987,  975, 2186,  975,  986,
669      2186,  981,  983,  978,  979,  985, 2186,  996,  997, 2186,
670       994,  998, 1006, 2186, 1006, 1003, 1008, 1001,  997, 1007,
671       998, 1007, 1010, 1011, 1005,  998, 1001, 1012, 2186, 2186,
672      1017, 1015, 1001, 1030, 1026, 2186, 1022, 1010, 1016, 1031,
673      1028, 1021, 1030, 1020, 1017, 1020, 1039, 1033, 1026, 1037,
674      2186, 1025, 1019, 1026, 1028, 1033, 1034, 1043, 1047, 2186,
675      1033, 1031, 1036, 1037, 2186, 1053, 1047, 1056, 1054, 1041,
676      1054, 2186, 1051, 1045, 1052, 1060, 1079, 1080, 2186, 2186,
677 
678      2186, 1058, 1066, 1063, 1059, 1062, 2186, 1067, 1071, 1069,
679      1058, 2186, 2186, 1065, 1073, 1078, 1062, 2186, 1068, 1066,
680      1085, 1085, 1080, 1065, 1084, 1089, 1073, 1080, 1087, 1079,
681      1081, 1079, 1079, 1097, 1090, 1099, 1092, 1093, 1095, 1095,
682      1099, 1092, 1105, 1100, 2186, 2186, 2186, 1095, 2186, 1096,
683      1096, 1107, 2186, 1099, 1107, 1107, 2186, 1116, 1117, 2186,
684      1106, 1114, 1102, 1098, 1106, 2186, 1113, 1121, 1109, 1133,
685      2186, 2186, 2186, 1125, 1123, 1117, 1119, 1128, 1119, 1121,
686      1133, 1128, 1124, 1123, 1132, 1121, 1135, 1136, 1132, 1136,
687      1137, 1139, 1142, 1135, 1136, 1138, 1148, 1151, 1135, 1134,
688 
689      1152, 1142, 1151, 1147, 1156, 1144, 2186, 2186, 2186, 1149,
690      1144, 2186, 1150, 1151, 1149, 2186, 2186, 1161, 1161, 1155,
691      1153, 1154, 1168, 1156, 1161, 1156, 2186, 1159, 1170, 2186,
692      2186, 1174, 1172, 2186, 1161, 2186, 2186, 1182, 2186, 1180,
693      1169, 1176, 1168, 2186, 2186, 1182, 1184, 1182, 1175, 1171,
694      1174, 1185, 1187, 1175, 1188, 1182, 2186, 1175, 2186, 1206,
695      2186, 1186, 1195, 1199, 1185, 1205, 1198, 1207, 2186, 1189,
696      1191, 1211, 1211, 1206, 1209, 1202, 1196, 1203, 1209, 1212,
697      2186, 2186, 2186, 1215, 1202, 1208, 2186, 1223, 1204, 2186,
698      2186, 2186, 1219, 1215, 1208, 1220, 1212, 2186, 1219, 1230,
699 
700      1218, 1220, 1218, 1218, 1236, 1230, 1239, 1223, 1236, 1222,
701      1238, 1232, 1232, 1244, 1242, 1235, 1248, 1244, 1227, 2186,
702      1238, 1234, 2186, 1235, 1233, 2186, 2186, 1249, 1256, 1254,
703      1256, 1256, 1258, 1248, 1259, 1260, 2186, 1262, 1252, 1263,
704      1264, 2186, 2186, 1263, 1266, 1259, 1268, 1255, 1261, 1273,
705      1257, 1264, 1272, 1272, 1280, 1273, 1274, 1276, 1280, 1280,
706      1273, 1286, 1269, 1290, 1291, 1287, 2186, 1273, 1279, 1292,
707      1286, 1291, 1299, 1296, 2186, 2186, 2186, 1282, 1290, 1286,
708      2186, 1297, 1304, 1289, 1304, 2186, 1295, 2186, 1290, 1292,
709      2186, 1292, 2186, 2186, 2186, 1310, 1299, 1306, 1304, 1291,
710 
711      1293, 2186, 1315, 1313, 1316, 1304, 1315, 2186, 2186, 1315,
712      1310, 1313, 2186, 2186, 2186, 2186, 1308, 1329, 1322, 1323,
713      1314, 1327, 2186, 1335, 1331, 1325, 1336, 1334, 1328, 1327,
714      1333, 2186, 1328, 2186, 1325, 2186, 2186, 1330, 1328, 2186,
715      1335, 1343, 1340, 1335, 2186, 1350, 1347, 1335, 1348, 1334,
716      1350, 1344, 1344, 1356, 1351, 1360, 1357, 1362, 1359, 1360,
717      1346, 1342, 2186, 1353, 1361, 2186, 1352, 2186, 1370, 2186,
718      1370, 1358, 1370, 1368, 1372, 1370, 1355, 2186, 1374, 2186,
719      1357, 2186, 1376, 1377, 1364, 1379, 1371, 2186, 2186, 1366,
720      1378, 1381, 2186, 1388, 1371, 1385, 1378, 1391, 1388, 1370,
721 
722      2186, 1381, 2186, 1392, 1394, 1394, 1396, 2186, 1386, 1384,
723      1391, 2186, 1403, 1386, 2186, 1391, 2186, 2186, 1405, 1393,
724      1405, 1405, 2186, 1392, 2186, 2186, 1397, 1404, 1402, 1389,
725      1391, 1402, 1413, 1407, 1413, 1416, 1427, 2186, 2186, 1409,
726      1409, 2186, 1417, 1408, 1421, 1416, 1425, 1423, 1413, 1432,
727      1433, 1430, 1436, 1436, 2186, 1423, 1425, 2186, 1422, 1437,
728      1437, 1424, 1429, 1431, 1444, 1435, 1439, 1448, 1445, 1450,
729      1447, 1448, 1434, 1435, 1453, 1443, 1455, 1439, 1454, 1446,
730      2186, 1444, 1443, 2186, 2186, 1449, 1447, 1459, 1462, 1461,
731      1464, 2186, 2186, 2186, 2186, 1451, 2186, 1457, 1452, 1464,
732 
733      1459, 2186, 1456, 1471, 1452, 2186, 1463, 1459, 2186, 1462,
734      1477, 1475, 1479, 1477, 1467, 2186, 2186, 1467, 1482, 1475,
735      1474, 1472, 1486, 1474, 2186, 1481, 1468, 1470, 1481, 1492,
736      1486, 1481, 2186, 1495, 1496, 1507, 2186, 2186, 2186, 1490,
737      1499, 1497, 1497, 1514, 1488, 1504, 1492, 1509, 1500, 1501,
738      1512, 1501, 2186, 1512, 1512, 1499, 2186, 1505, 2186, 1515,
739      1502, 1502, 1520, 1510, 1522, 1506, 1521, 1513, 1521, 1510,
740      1528, 1512, 1528, 1533, 1517, 2186, 2186, 1518, 2186, 1532,
741      1519, 1534, 1521, 2186, 1521, 2186, 1527, 1529, 1539, 2186,
742      2186, 1527, 2186, 2186, 1539, 1542, 1541, 1544, 2186, 1545,
743 
744      2186, 2186, 1533, 2186, 1534, 2186, 1538, 1549, 1543, 1538,
745      2186, 1552, 2186, 2186, 1563, 2186, 1550, 1567, 1541, 1536,
746      2186, 2186, 1562, 1561, 1560, 1547, 1566, 1563, 2186, 1564,
747      1552, 2186, 2186, 1559, 2186, 1564, 1553, 1571, 1555, 1571,
748      1576, 1560, 1566, 1565, 1556, 1567, 1565, 1581, 2186, 2186,
749      1566, 2186, 1567, 2186, 2186, 1573, 2186, 2186, 2186, 1583,
750      1570, 1585, 1572, 2186, 2186, 2186, 1574, 2186, 1588, 2186,
751      2186, 2186, 1568, 2186, 2186, 1594, 1578, 1589, 1586, 2186,
752      1597, 1588, 1583, 2186, 1583, 1590, 1589, 1580, 1591, 1589,
753      1605, 2186, 2186, 1591, 2186, 1592, 2186, 1591, 2186, 2186,
754 
755      2186, 1593, 2186, 1594, 2186, 2186, 2186, 1613, 1595, 1613,
756      2186, 1598, 1613, 1600, 2186, 2186, 2186, 1602, 2186, 1603,
757      2186, 1602, 2186, 2186, 1608, 2186, 2186, 1604, 1616, 1618,
758      2186, 1615, 2186, 2186, 2186, 1613, 1611, 1621, 1616, 2186,
759      1613, 1615, 2186, 1619, 1621, 2186, 2186, 1622, 2186, 2186,
760      2186, 1658, 1661, 1663, 1666, 1669, 1672, 1675, 1678, 1681,
761      1684
762     } ;
763 
764 static const short int yy_def[2062] =
765     {   0,
766      2051,    1, 2051, 2051, 2051, 2051, 2051, 2052, 2051, 2053,
767      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
768      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
769      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
770      2051, 2051, 2051, 2051,    9, 2051, 2052, 2051, 2052,    9,
771      2051, 2054, 2051, 2051, 2053, 2053, 2051, 2055, 2056, 2051,
772      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
773      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
774      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
775      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
776 
777      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
778      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
779      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
780      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
781      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
782      2051, 2051, 2051, 2051, 2054, 2054, 2054, 2057, 2054, 2051,
783      2051, 2051, 2055, 2058, 2056, 2051, 2051, 2051, 2051, 2051,
784      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
785      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
786      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
787 
788      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
789      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
790      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
791      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
792      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
793      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
794      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
795      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
796      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
797      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
798 
799      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2057, 2059,
800      2057, 2051, 2051, 2060, 2051, 2051, 2051, 2051, 2051, 2051,
801      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
802      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
803      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
804      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
805      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
806      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
807      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
808      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
809 
810      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
811      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
812      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
813      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
814      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
815      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
816      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
817      2051, 2059, 2051, 2051, 2051, 2060, 2058, 2051, 2051, 2051,
818      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
819      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
820 
821      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
822      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
823      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
824      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
825      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
826      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
827      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
828      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
829      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
830      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
831 
832      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
833      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
834      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
835      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
836      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
837      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
838      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
839      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
840      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
841      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
842 
843      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
844      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
845      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
846      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
847      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
848      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
849      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
850      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
851      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
852      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
853 
854      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
855      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
856      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
857      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
858      2051, 2051, 2051, 2051, 2051, 2061, 2051, 2051, 2051, 2051,
859      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
860      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
861      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
862      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
863      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
864 
865      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
866      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
867      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
868      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
869      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
870      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
871      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
872      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
873      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
874      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
875 
876      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
877      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
878      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
879      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
880      2051, 2061, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
881      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
882      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
883      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
884      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
885      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
886 
887      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
888      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
889      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
890      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
891      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
892      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
893      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
894      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
895      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
896      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
897 
898      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
899      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
900      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
901      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
902      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
903      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
904      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
905      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
906      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
907      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
908 
909      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
910      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
911      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
912      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
913      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
914      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
915      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
916      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
917      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
918      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
919 
920      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
921      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
922      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
923      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
924      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
925      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
926      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
927      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
928      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
929      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
930 
931      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
932      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
933      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
934      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
935      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
936      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
937      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
938      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
939      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
940      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
941 
942      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
943      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
944      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
945      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
946      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
947      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
948      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
949      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
950      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
951      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
952 
953      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
954      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
955      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
956      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
957      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
958      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
959      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
960      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
961      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
962      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
963 
964      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
965      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
966      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
967      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
968      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
969      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
970      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
971      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
972      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
973      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
974 
975      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
976      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
977      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
978      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
979      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
980      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
981      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
982      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
983      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
984      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
985 
986      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
987      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
988      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
989      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
990      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
991         0, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
992      2051
993     } ;
994 
995 static const short int yy_nxt[2237] =
996     {   0,
997         4,    5,    6,    7,    8,    9,   10,   11,    4,   12,
998         4,   13,   14,   14,   14,   14,   15,    4,   16,    4,
999        17,    4,   18,   19,   20,   21,   22,   23,   24,   25,
1000        26,    4,   27,   28,   29,   30,   31,   32,    4,   33,
1001        34,   35,   36,   37,   38,   39,   40,   41,   42,   43,
1002        44,   44,   44,   46,   45,   45,   48,   57,   57,   57,
1003        57,   58,  178,   61,   60,   59,   57,   57,   57,   57,
1004        91,   49,   50,   92,   50,   62,  858,   65,   63,   64,
1005        51,   66,  179,   52,   52,   52,   52,  859,   67,   68,
1006       105,   69,   70,   71,  106,  143,  144,   93,  107,   72,
1007 
1008        73,   94,   74,  162,   53,   75,   77,   95,   54,   82,
1009        78,   79,   76,   86,   80,  111,   56,   83,  112,   87,
1010        81,  171,   84,  541,  172,   88,   89,   85,   90,   96,
1011       101,  141,  108,   97,  102,  142,  109,   44,  103,   44,
1012        98,   45,  542,   48,  104,   99,  110,  113, 2051,  181,
1013       114,  182,   55,  115,  116,  183,  117,  120,   49,  118,
1014       188,  121,  119,  920,  122,  123,  125,  173,  189,  124,
1015       145,  126,  127,   44,  233,   46,  128,   45,  129,  130,
1016       146,  147,  174,  131,  132,  921,  148,  149,  133,  175,
1017       234,  134,  135,  176,  150,  177,  922,  151,  136,  207,
1018 
1019       190,  137,  191,  214,  138,  152,  186,  215,  139,  208,
1020       153,  154,   52,   52,   52,   52,  156,  157,  156,  158,
1021        60,  923,   57,   57,   57,   57,  187,  159,  159,  159,
1022       159,  166,  194,  195,  167,  167,  167,  167,  198,  209,
1023       230,  210,  217,  199,  200,  218,  222,  239,  235,  223,
1024       924,  247,  224,  236,  237,  238,  249,  241,  231,  248,
1025       250,  271,  225,  232,  242,  259,  226,  240,  227,  252,
1026       251,  253,  268,  260,  243,  275,  277,  254,  272,  279,
1027       269,  286,  278,  303,  276,  287,  296,  297,  300,  307,
1028       304,  157,  157, 2051, 2051,  310,  280,  156,  157,  156,
1029 
1030       158,  301,  308,  164,  339,  340,  395,  315,  368,  369,
1031       311,  156,  157,  156,  158,  167,  167,  167,  167,  396,
1032       925,  362,  159,  159,  159,  159,  167,  167,  167,  167,
1033       363,  316,  364,  391,  397,  401,  365,  402,  392,  398,
1034       440,  432,  403,  433,  441,  399,  393,  446,  404,  310,
1035       486,  487,  543,  434,  926,  488,  366,  519,  489,  526,
1036       447,  490,  494,  520,  311,  544,  448,  449,  478,  479,
1037       533,  491,  480,  480,  480,  480,  495,  507,  508,  527,
1038       529,  563,  509,  714,  534,  530,  564,  521,  510,  531,
1039       546,  929,  715,  511,  532,  575,  547,  566,  548,  591,
1040 
1041       512,  554,  555,  556,  592,  607,  638,  567,  642,  549,
1042       568,  569,  639,  550,  576,  595,  627,  570,  930,  628,
1043       931,  596,  643,  557,  608,  632,  597,  598,  659,  629,
1044       659,  633,  634,  477,  671,  775,   51,  315,  672,   52,
1045        52,   52,   52,  661,  776,  599,  480,  480,  480,  480,
1046       661,  684,  932,  480,  480,  480,  480,  480,  480,  480,
1047       480,  665,  687,  702,  666,  685,  699,  688,  703,  667,
1048       707,  743,  700,  708,  668,  817,  731,  744,  732,  747,
1049       669,  933,  748,  934,  670,  818,  709,  752,  710,  733,
1050       753,  754,  769,  734,  760,  761,  847,  755,  781,  762,
1051 
1052       886,  801,  834,  935,  887,  763,  770,  782,  936,  937,
1053       764,  802,  848,  938,  803,  804,  835,  765,  659,  939,
1054       659,  805,  480,  480,  480,  480,   51,  873,  850,   52,
1055        52,   52,   52,  851,  870,  927,  898,  871,  852,  948,
1056       874,  949,  950,  951,  853,  952,  953,  875,  854,  899,
1057       954,  900,  955,  956,  928,  957,  958,  872,  940,  941,
1058       959,  960,  942,  961,  943,  962,  963,  964,  965,  966,
1059       967,  968,  944,  969,  945,  970,  971,  946,  972,  947,
1060       973,  974,  975,  976,  977,  978,  979,  980,  981,  982,
1061       983,  984,  985,  986,  987,  988,  990,  991,  992,  993,
1062 
1063       997,  989,  994,  995,  998,  999, 1000, 1001, 1002,  996,
1064      1003, 1004, 1006, 1011, 1009, 1012, 1013, 1015, 1007, 1016,
1065      1017, 1018, 1019, 1020, 1021, 1005, 1010, 1022, 1023, 1024,
1066      1014, 1008, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032,
1067      1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1043,
1068      1044, 1045, 1046, 1047, 1048, 1049, 1050, 1052, 1053, 1054,
1069      1055, 1056, 1057, 1058, 1059, 1060, 1061, 1051, 1062, 1063,
1070      1064, 1065, 1066, 1067, 1068, 1070, 1071, 1072, 1074, 1075,
1071      1076, 1077, 1078, 1079, 1073, 1080, 1081, 1082, 1083, 1084,
1072      1085, 1086, 1088, 1089, 1069, 1090, 1091, 1092, 1093, 1094,
1073 
1074      1095, 1097, 1098, 1099, 1100, 1096, 1101, 1102, 1103, 1104,
1075      1105, 1087, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113,
1076      1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123,
1077      1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133,
1078      1134, 1135, 1136, 1143, 1144, 1137, 1145, 1138, 1146, 1147,
1079      1148, 1149, 1150, 1151, 1152, 1139, 1153, 1140, 1154, 1155,
1080      1141, 1156, 1142, 1157, 1158, 1159, 1160, 1162, 1163, 1164,
1081      1161, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1173, 1174,
1082      1175, 1172, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
1083      1184, 1185, 1186, 1188, 1189, 1190, 1191, 1187, 1192, 1193,
1084 
1085      1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
1086      1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213,
1087      1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223,
1088      1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233,
1089      1234, 1235, 1236, 1237, 1043, 1238, 1239, 1240, 1241, 1242,
1090      1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252,
1091      1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262,
1092      1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272,
1093      1273, 1274, 1275, 1276, 1280, 1281, 1282, 1283, 1284, 1285,
1094      1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1277, 1278,
1095 
1096      1294, 1295, 1296, 1297, 1298, 1299, 1279, 1300, 1301, 1302,
1097      1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
1098      1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322,
1099      1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332,
1100      1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342,
1101      1343, 1344, 1345, 1346, 1347, 1348, 1350, 1351, 1352, 1353,
1102      1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363,
1103      1364, 1365, 1366, 1367, 1368, 1349, 1369, 1370, 1371, 1373,
1104      1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
1105      1384, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
1106 
1107      1396, 1397, 1372, 1395, 1398, 1399, 1385, 1400, 1401, 1402,
1108      1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413,
1109      1414, 1415, 1416, 1417, 1418, 1403, 1419, 1420, 1422, 1423,
1110      1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433,
1111      1434, 1435, 1421, 1436, 1437, 1438, 1439, 1440, 1443, 1444,
1112      1441, 1445, 1446, 1448, 1449, 1450, 1451, 1447, 1452, 1453,
1113      1454, 1455, 1456, 1457, 1458, 1459, 1442, 1460, 1461, 1462,
1114      1463, 1465, 1466, 1467, 1468, 1469, 1470, 1464, 1471, 1472,
1115      1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482,
1116      1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492,
1117 
1118      1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502,
1119      1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512,
1120      1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522,
1121      1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1532, 1534,
1122      1535, 1536, 1531, 1533, 1537, 1538, 1539, 1540, 1541, 1542,
1123      1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553,
1124      1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563,
1125      1564, 1565, 1566, 1543, 1567, 1568, 1569, 1570, 1571, 1572,
1126      1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582,
1127      1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592,
1128 
1129      1593, 1594, 1595, 1596, 1597, 1599, 1600, 1602, 1603, 1604,
1130      1605, 1606, 1607, 1608, 1609, 1610, 1611, 1601, 1612, 1613,
1131      1598, 1614, 1615, 1617, 1618, 1619, 1620, 1621, 1622, 1623,
1132      1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633,
1133      1634, 1635, 1636, 1637, 1638, 1640, 1616, 1641, 1642, 1643,
1134      1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1639,
1135      1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662,
1136      1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672,
1137      1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682,
1138      1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692,
1139 
1140      1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702,
1141      1703, 1704, 1706, 1708, 1709, 1710, 1705, 1707, 1711, 1712,
1142      1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722,
1143      1723, 1724, 1725, 1726, 1727, 1729, 1730, 1732, 1733, 1734,
1144      1735, 1736, 1737, 1738, 1739, 1740, 1741, 1731, 1742, 1743,
1145      1728, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752,
1146      1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762,
1147      1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772,
1148      1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782,
1149      1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792,
1150 
1151      1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802,
1152      1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812,
1153      1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822,
1154      1823, 1824, 1825, 1826, 1827, 1829, 1830, 1831, 1832, 1833,
1155      1834, 1835, 1836, 1837, 1838, 1828, 1839, 1840, 1841, 1842,
1156      1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852,
1157      1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862,
1158      1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872,
1159      1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882,
1160      1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892,
1161 
1162      1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902,
1163      1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912,
1164      1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922,
1165      1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932,
1166      1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942,
1167      1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952,
1168      1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962,
1169      1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972,
1170      1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982,
1171      1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
1172 
1173      1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
1174      2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012,
1175      2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022,
1176      2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032,
1177      2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042,
1178      2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050,   47,   47,
1179        47,   55,   55,  155,  155,  155,  163,  163,  163,  165,
1180       919,  165,  309,  309,  309,  314,  314,  314,  472,  472,
1181       472,  476,  476,  476, 1042, 1042, 1042,  918,  917,  916,
1182       915,  914,  913,  912,  911,  910,  909,  908,  907,  906,
1183 
1184       905,  904,  903,  902,  901,  897,  896,  895,  894,  893,
1185       892,  891,  890,  889,  888,  885,  884,  883,  882,  881,
1186       880,  879,  878,  877,  876,  869,  868,  867,  866,  865,
1187       864,  863,  862,  861,  860,  857,  856,  855,  849,  846,
1188       845,  844,  843,  842,  841,  840,  839,  838,  837,  836,
1189       833,  832,  831,  830,  829,  828,  827,  826,  825,  824,
1190       823,  822,  821,  820,  819,  816,  815,  814,  813,  812,
1191       811,  810,  809,  808,  807,  806,  800,  799,  798,  797,
1192       796,  795,  794,  793,  792,  791,  790,  789,  788,  787,
1193       786,  785,  784,  783,  780,  779,  778,  777,  774,  773,
1194 
1195       772,  771,  768,  767,  766,  759,  758,  757,  756,  751,
1196       750,  749,  746,  745,  742,  741,  740,  739,  738,  737,
1197       736,  735,  730,  729,  728,  727,  726,  725,  724,  723,
1198       722,  721,  720,  719,  718,  717,  716,  713,  712,  711,
1199       706,  705,  704,  701,  698,  697,  696,  695,  694,  693,
1200       692,  691,  690,  689,  686,  683,  682,  681,  680,  679,
1201       678,  677,  676,  675,  674,  673,  664,  663,  662,  477,
1202       660,  473,  658,  657,  656,  655,  654,  653,  652,  651,
1203       650,  649,  648,  647,  646,  645,  644,  641,  640,  637,
1204       636,  635,  631,  630,  626,  625,  624,  623,  622,  621,
1205 
1206       620,  619,  618,  617,  616,  615,  614,  613,  612,  611,
1207       610,  609,  606,  605,  604,  603,  602,  601,  600,  594,
1208       593,  590,  589,  588,  587,  586,  585,  584,  583,  582,
1209       581,  580,  579,  578,  577,  574,  573,  572,  571,  565,
1210       562,  561,  560,  559,  558,  553,  552,  551,  545,  540,
1211       539,  538,  537,  536,  535,  528,  525,  524,  523,  522,
1212       518,  517,  516,  515,  514,  513,  506,  505,  504,  503,
1213       502,  501,  500,  499,  498,  497,  496,  493,  492,  485,
1214       484,  483,  482,  481,  477,  475,  474, 2051,  473,  471,
1215       470,  469,  468,  467,  466,  465,  464,  463,  462,  461,
1216 
1217       460,  459,  458,  457,  456,  455,  454,  453,  452,  451,
1218       450,  445,  444,  443,  442,  439,  438,  437,  436,  435,
1219       431,  430,  429,  428,  427,  426,  425,  424,  423,  422,
1220       421,  420,  419,  418,  417,  416,  415,  414,  413,  412,
1221       411,  410,  409,  408,  407,  406,  405,  400,  394,  390,
1222       389,  388,  387,  386,  385,  384,  383,  382,  381,  380,
1223       379,  378,  377,  376,  375,  374,  373,  372,  371,  370,
1224       367,  361,  360,  359,  358,  357,  356,  355,  354,  353,
1225       352,  351,  350,  349,  348,  347,  346,  345,  344,  343,
1226       342,  341,  338,  337,  336,  335,  334,  333,  332,  331,
1227 
1228       330,  329,  328,  327,  326,  325,  324,  323,  322,  321,
1229       320,  319,  318,  317,  164,  313,  312,  306,  305,  302,
1230       299,  298,  295,  294,  293,  292,  291,  290,  289,  288,
1231       285,  284,  283,  282,  281,  274,  273,  270,  267,  266,
1232       265,  264,  263,  262,  261,  258,  257,  256,  255,  246,
1233       245,  244,  229,  228,  221,  220,  219,  216,  213,  212,
1234       211,  206,  205,  204,  203,  202,  201,  197,  196,  193,
1235       192,  185,  184,  180,  170,  169,  168,  164,  161,  160,
1236      2051,  140,  100,   56, 2051,    3, 2051, 2051, 2051, 2051,
1237      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1238 
1239      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1240      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1241      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1242      2051, 2051, 2051, 2051, 2051, 2051
1243     } ;
1244 
1245 static const short int yy_chk[2237] =
1246     {   0,
1247         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1248         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1249         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1250         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1251         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
1252         5,    7,    5,    7,    5,    7,    8,   12,   12,   12,
1253        12,   13,   67,   18,   14,   13,   14,   14,   14,   14,
1254        24,    8,    9,   24,    9,   18,  669,   19,   18,   18,
1255         9,   19,   67,    9,    9,    9,    9,  669,   19,   19,
1256        29,   19,   20,   20,   29,   38,   38,   25,   29,   20,
1257 
1258        20,   25,   20,   55,    9,   20,   21,   25,    9,   22,
1259        21,   21,   20,   23,   21,   31,   55,   22,   31,   23,
1260        21,   64,   22,  369,   64,   23,   23,   22,   23,   26,
1261        28,   37,   30,   26,   28,   37,   30,   44,   28,   44,
1262        26,   44,  369,   47,   28,   26,   30,   32,   56,   69,
1263        32,   69,   56,   32,   32,   69,   32,   33,   47,   32,
1264        73,   33,   32,  732,   33,   33,   34,   65,   73,   33,
1265        39,   34,   34,   46,  102,   46,   34,   46,   34,   34,
1266        39,   39,   65,   34,   35,  733,   39,   39,   35,   66,
1267       102,   35,   35,   66,   40,   66,  734,   40,   35,   87,
1268 
1269        74,   35,   74,   92,   35,   40,   72,   92,   35,   87,
1270        40,   40,   51,   51,   51,   51,   52,   52,   52,   52,
1271        57,  735,   57,   57,   57,   57,   72,   52,   52,   52,
1272        52,   60,   77,   77,   60,   60,   60,   60,   80,   88,
1273       101,   88,   94,   80,   80,   94,   98,  104,  103,   98,
1274       736,  109,   98,  103,  103,  103,  110,  105,  101,  109,
1275       110,  126,   98,  101,  105,  116,   98,  104,   98,  111,
1276       110,  111,  124,  116,  105,  129,  130,  111,  126,  131,
1277       124,  137,  130,  151,  129,  137,  146,  146,  149,  154,
1278       151,  155,  157,  155,  157,  158,  131,  156,  156,  156,
1279 
1280       156,  149,  154,  164,  191,  191,  242,  164,  217,  217,
1281       158,  159,  159,  159,  159,  166,  166,  166,  166,  242,
1282       737,  214,  159,  159,  159,  159,  167,  167,  167,  167,
1283       214,  167,  215,  240,  243,  245,  215,  245,  240,  243,
1284       280,  274,  245,  274,  280,  243,  240,  285,  245,  309,
1285       322,  322,  370,  274,  738,  322,  215,  350,  323,  355,
1286       285,  323,  326,  350,  309,  370,  285,  285,  316,  316,
1287       358,  323,  316,  316,  316,  316,  326,  343,  343,  355,
1288       357,  382,  343,  529,  358,  357,  382,  350,  343,  357,
1289       372,  740,  529,  343,  357,  389,  372,  384,  372,  406,
1290 
1291       343,  376,  376,  376,  406,  420,  450,  384,  453,  372,
1292       384,  384,  450,  372,  389,  409,  443,  384,  741,  443,
1293       742,  409,  453,  376,  420,  446,  409,  409,  474,  443,
1294       474,  446,  446,  477,  486,  583,  474,  477,  486,  474,
1295       474,  474,  474,  478,  583,  409,  478,  478,  478,  478,
1296       479,  501,  743,  479,  479,  479,  479,  480,  480,  480,
1297       480,  485,  503,  516,  485,  501,  514,  503,  516,  485,
1298       523,  558,  514,  523,  485,  627,  546,  558,  546,  562,
1299       485,  744,  562,  745,  485,  627,  523,  566,  523,  546,
1300       566,  566,  578,  546,  572,  572,  662,  566,  588,  572,
1301 
1302       694,  613,  644,  746,  694,  572,  578,  588,  747,  748,
1303       572,  613,  662,  749,  613,  613,  644,  572,  659,  750,
1304       659,  613,  661,  661,  661,  661,  659,  682,  665,  659,
1305       659,  659,  659,  665,  681,  739,  707,  681,  665,  752,
1306       682,  753,  754,  755,  665,  756,  757,  682,  665,  707,
1307       758,  707,  759,  760,  739,  761,  762,  681,  751,  751,
1308       763,  764,  751,  765,  751,  766,  767,  768,  769,  770,
1309       771,  772,  751,  773,  751,  775,  776,  751,  777,  751,
1310       778,  779,  780,  781,  782,  783,  784,  785,  786,  787,
1311       788,  789,  790,  791,  794,  795,  797,  798,  799,  801,
1312 
1313       802,  795,  801,  801,  803,  804,  805,  806,  808,  801,
1314       809,  810,  811,  814,  812,  815,  816,  817,  811,  818,
1315       819,  820,  821,  822,  823,  810,  812,  824,  825,  826,
1316       816,  811,  827,  828,  829,  830,  831,  832,  833,  834,
1317       835,  836,  837,  838,  839,  840,  842,  843,  844,  846,
1318       847,  848,  849,  850,  851,  852,  853,  854,  855,  856,
1319       857,  858,  859,  860,  861,  862,  863,  853,  864,  865,
1320       866,  867,  868,  869,  870,  871,  872,  873,  874,  875,
1321       876,  877,  879,  880,  873,  881,  882,  883,  884,  885,
1322       886,  887,  888,  890,  870,  891,  892,  893,  894,  895,
1323 
1324       896,  898,  899,  900,  901,  896,  902,  903,  904,  905,
1325       906,  887,  907,  908,  910,  911,  912,  914,  915,  916,
1326       917,  918,  919,  920,  921,  922,  923,  924,  925,  926,
1327       927,  928,  929,  931,  932,  933,  934,  935,  936,  937,
1328       938,  939,  940,  941,  942,  940,  943,  940,  944,  945,
1329       946,  947,  948,  949,  950,  940,  951,  940,  952,  953,
1330       940,  954,  940,  955,  956,  957,  958,  959,  960,  961,
1331       958,  962,  963,  964,  965,  966,  967,  969,  970,  971,
1332       972,  969,  973,  974,  975,  976,  977,  978,  979,  980,
1333       981,  982,  983,  984,  985,  986,  987,  983,  988,  989,
1334 
1335       990,  991,  992,  993,  994,  995,  996,  997,  998,  999,
1336      1000, 1003, 1004, 1005, 1006, 1007, 1009, 1010, 1011, 1013,
1337      1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
1338      1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034,
1339      1035, 1038, 1039, 1041, 1042, 1044, 1045, 1046, 1047, 1048,
1340      1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058,
1341      1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068,
1342      1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078,
1343      1079, 1080, 1081, 1082, 1086, 1088, 1089, 1090, 1091, 1092,
1344      1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1082, 1082,
1345 
1346      1101, 1103, 1104, 1105, 1106, 1107, 1082, 1108, 1109, 1111,
1347      1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1121, 1122,
1348      1123, 1124, 1125, 1128, 1129, 1131, 1132, 1133, 1134, 1135,
1349      1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145,
1350      1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155,
1351      1156, 1157, 1158, 1159, 1160, 1161, 1162, 1164, 1165, 1166,
1352      1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176,
1353      1177, 1178, 1179, 1180, 1181, 1161, 1182, 1183, 1184, 1185,
1354      1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195,
1355      1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205,
1356 
1357      1206, 1207, 1184, 1205, 1208, 1209, 1196, 1210, 1211, 1212,
1358      1213, 1214, 1215, 1216, 1217, 1219, 1220, 1222, 1223, 1224,
1359      1225, 1226, 1228, 1229, 1231, 1212, 1232, 1233, 1235, 1236,
1360      1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246,
1361      1247, 1248, 1233, 1251, 1252, 1253, 1254, 1255, 1257, 1258,
1362      1255, 1259, 1260, 1261, 1262, 1263, 1264, 1260, 1265, 1266,
1363      1267, 1268, 1269, 1270, 1272, 1273, 1255, 1274, 1275, 1276,
1364      1276, 1277, 1278, 1279, 1281, 1282, 1283, 1276, 1284, 1286,
1365      1287, 1288, 1289, 1290, 1291, 1293, 1294, 1295, 1296, 1297,
1366      1298, 1302, 1303, 1304, 1305, 1306, 1308, 1309, 1310, 1311,
1367 
1368      1314, 1315, 1316, 1317, 1319, 1320, 1321, 1322, 1323, 1324,
1369      1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334,
1370      1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344,
1371      1348, 1350, 1351, 1352, 1354, 1355, 1356, 1358, 1359, 1361,
1372      1362, 1363, 1358, 1359, 1364, 1365, 1367, 1368, 1369, 1370,
1373      1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383,
1374      1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393,
1375      1394, 1395, 1396, 1370, 1397, 1398, 1399, 1400, 1401, 1402,
1376      1403, 1404, 1405, 1406, 1410, 1411, 1413, 1414, 1415, 1418,
1377      1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1428, 1429,
1378 
1379      1432, 1433, 1435, 1438, 1440, 1441, 1442, 1443, 1446, 1447,
1380      1448, 1449, 1450, 1451, 1452, 1453, 1454, 1442, 1455, 1456,
1381      1440, 1458, 1460, 1462, 1463, 1464, 1465, 1466, 1467, 1468,
1382      1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479,
1383      1480, 1484, 1485, 1486, 1488, 1489, 1460, 1493, 1494, 1495,
1384      1496, 1497, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1488,
1385      1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515,
1386      1516, 1517, 1518, 1519, 1521, 1522, 1524, 1525, 1528, 1529,
1387      1530, 1531, 1532, 1533, 1534, 1535, 1536, 1538, 1539, 1540,
1388      1541, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552,
1389 
1390      1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562,
1391      1563, 1564, 1565, 1566, 1568, 1569, 1564, 1565, 1570, 1571,
1392      1572, 1573, 1574, 1578, 1579, 1580, 1582, 1583, 1584, 1585,
1393      1587, 1589, 1590, 1592, 1596, 1597, 1598, 1599, 1600, 1601,
1394      1603, 1604, 1605, 1606, 1607, 1610, 1611, 1598, 1612, 1617,
1395      1596, 1618, 1619, 1620, 1621, 1622, 1624, 1625, 1626, 1627,
1396      1628, 1629, 1630, 1631, 1633, 1635, 1638, 1639, 1641, 1642,
1397      1643, 1644, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653,
1398      1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1664,
1399      1665, 1667, 1669, 1671, 1672, 1673, 1674, 1675, 1676, 1677,
1400 
1401      1679, 1681, 1683, 1684, 1685, 1686, 1687, 1690, 1691, 1692,
1402      1694, 1695, 1696, 1697, 1698, 1699, 1700, 1702, 1704, 1705,
1403      1706, 1707, 1709, 1710, 1711, 1713, 1714, 1716, 1719, 1720,
1404      1721, 1722, 1724, 1727, 1728, 1729, 1730, 1731, 1732, 1733,
1405      1734, 1735, 1736, 1737, 1740, 1728, 1741, 1743, 1744, 1745,
1406      1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1756,
1407      1757, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767,
1408      1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777,
1409      1778, 1779, 1780, 1782, 1783, 1786, 1787, 1788, 1789, 1790,
1410      1791, 1796, 1798, 1799, 1800, 1801, 1803, 1804, 1805, 1807,
1411 
1412      1808, 1810, 1811, 1812, 1813, 1814, 1815, 1818, 1819, 1820,
1413      1821, 1822, 1823, 1824, 1826, 1827, 1828, 1829, 1830, 1831,
1414      1832, 1834, 1835, 1836, 1840, 1841, 1842, 1843, 1844, 1845,
1415      1846, 1847, 1848, 1849, 1850, 1851, 1852, 1854, 1855, 1856,
1416      1858, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868,
1417      1869, 1870, 1871, 1872, 1873, 1874, 1875, 1878, 1880, 1881,
1418      1882, 1883, 1885, 1887, 1888, 1889, 1892, 1895, 1896, 1897,
1419      1898, 1900, 1903, 1905, 1907, 1908, 1909, 1910, 1912, 1915,
1420      1917, 1918, 1919, 1920, 1923, 1924, 1925, 1926, 1927, 1928,
1421      1930, 1931, 1934, 1936, 1937, 1938, 1939, 1940, 1941, 1942,
1422 
1423      1943, 1944, 1945, 1946, 1947, 1948, 1951, 1953, 1956, 1960,
1424      1961, 1962, 1963, 1967, 1969, 1973, 1976, 1977, 1978, 1979,
1425      1981, 1982, 1983, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1426      1994, 1996, 1998, 2002, 2004, 2008, 2009, 2010, 2012, 2013,
1427      2014, 2018, 2020, 2022, 2025, 2028, 2029, 2030, 2032, 2036,
1428      2037, 2038, 2039, 2041, 2042, 2044, 2045, 2048, 2052, 2052,
1429      2052, 2053, 2053, 2054, 2054, 2054, 2055, 2055, 2055, 2056,
1430       731, 2056, 2057, 2057, 2057, 2058, 2058, 2058, 2059, 2059,
1431      2059, 2060, 2060, 2060, 2061, 2061, 2061,  730,  729,  728,
1432       727,  726,  723,  720,  719,  718,  717,  716,  715,  714,
1433 
1434       713,  712,  710,  709,  708,  706,  704,  703,  702,  701,
1435       700,  699,  697,  696,  695,  693,  692,  691,  690,  689,
1436       688,  687,  686,  685,  684,  680,  679,  677,  676,  675,
1437       674,  673,  672,  671,  670,  668,  667,  666,  663,  660,
1438       658,  657,  656,  655,  653,  652,  651,  650,  649,  645,
1439       643,  642,  641,  640,  639,  638,  637,  636,  635,  634,
1440       633,  632,  630,  629,  628,  626,  625,  624,  623,  622,
1441       621,  620,  618,  617,  616,  614,  610,  609,  608,  607,
1442       606,  604,  603,  602,  601,  600,  598,  597,  594,  593,
1443       592,  591,  590,  589,  587,  586,  585,  584,  582,  581,
1444 
1445       580,  579,  577,  576,  575,  570,  569,  568,  567,  565,
1446       564,  563,  560,  559,  557,  553,  552,  551,  550,  549,
1447       548,  547,  545,  544,  543,  542,  541,  540,  539,  537,
1448       536,  535,  534,  533,  532,  531,  530,  527,  526,  525,
1449       522,  518,  517,  515,  513,  512,  511,  510,  509,  508,
1450       507,  506,  505,  504,  502,  499,  498,  497,  495,  494,
1451       492,  491,  490,  489,  488,  487,  484,  483,  482,  476,
1452       475,  472,  471,  470,  469,  467,  466,  465,  464,  463,
1453       461,  460,  459,  458,  457,  455,  454,  452,  451,  449,
1454       448,  447,  445,  444,  442,  441,  440,  439,  438,  437,
1455 
1456       436,  435,  433,  432,  430,  429,  428,  425,  424,  423,
1457       422,  421,  417,  415,  414,  413,  412,  411,  410,  408,
1458       407,  404,  403,  402,  401,  400,  399,  398,  397,  396,
1459       395,  394,  393,  392,  391,  388,  387,  386,  385,  383,
1460       381,  380,  379,  378,  377,  375,  374,  373,  371,  368,
1461       367,  365,  364,  362,  359,  356,  354,  353,  352,  351,
1462       349,  348,  347,  346,  345,  344,  341,  340,  339,  338,
1463       335,  334,  333,  332,  331,  330,  327,  325,  324,  321,
1464       320,  319,  318,  317,  314,  313,  312,  311,  310,  308,
1465       307,  306,  305,  303,  302,  301,  300,  299,  298,  297,
1466 
1467       296,  295,  294,  293,  292,  291,  290,  289,  288,  287,
1468       286,  284,  283,  282,  281,  279,  278,  277,  276,  275,
1469       273,  272,  271,  270,  269,  268,  267,  266,  264,  263,
1470       262,  261,  260,  259,  258,  257,  256,  255,  254,  253,
1471       252,  251,  250,  249,  248,  247,  246,  244,  241,  239,
1472       238,  237,  236,  235,  234,  233,  232,  231,  230,  229,
1473       227,  226,  225,  224,  223,  222,  221,  220,  219,  218,
1474       216,  213,  212,  211,  210,  209,  208,  207,  206,  205,
1475       204,  203,  202,  201,  200,  199,  198,  196,  195,  194,
1476       193,  192,  190,  189,  188,  187,  186,  185,  184,  182,
1477 
1478       181,  180,  179,  178,  177,  176,  175,  174,  173,  172,
1479       171,  170,  169,  168,  163,  161,  160,  153,  152,  150,
1480       148,  147,  145,  144,  143,  142,  141,  140,  139,  138,
1481       136,  135,  134,  133,  132,  128,  127,  125,  123,  122,
1482       121,  120,  119,  118,  117,  115,  114,  113,  112,  108,
1483       107,  106,  100,   99,   97,   96,   95,   93,   91,   90,
1484        89,   86,   85,   84,   83,   82,   81,   79,   78,   76,
1485        75,   71,   70,   68,   63,   62,   61,   58,   54,   53,
1486        49,   36,   27,   10,    3, 2051, 2051, 2051, 2051, 2051,
1487      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1488 
1489      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1490      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1491      2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051, 2051,
1492      2051, 2051, 2051, 2051, 2051, 2051
1493     } ;
1494 
1495 static yy_state_type yy_last_accepting_state;
1496 static char *yy_last_accepting_cpos;
1497 
1498 /* The intent behind this definition is that it'll catch
1499  * any uses of REJECT which flex missed.
1500  */
1501 #define REJECT reject_used_but_not_detected
1502 #define yymore() yymore_used_but_not_detected
1503 #define YY_MORE_ADJ 0
1504 char *yytext;
1505 # line 1 "grammar.l"
1506 # line 2 "grammar.l"
1507 
1508 
1509 #line 2 "/RW/esprit/users/sander/src/PARSEGEN/scan.skel"
1510 
1511 /*--------------------------------------------------------------------*/
1512 /*            A flex scanner specification made by parsegen           */
1513 /*--------------------------------------------------------------------*/
1514 
1515 #ifndef lint
1516 static char *scanskel_id_string="$Id: scan.skel,v 1.6 1994/04/13 10:23:44 sander Exp sander $";
1517 #endif
1518 
1519 
1520 
1521 
1522 #line 32000 "/RW/esprit/users/sander/src/PARSEGEN/parse.skel"
1523 typedef struct stree_node *syntaxtree;
1524 #undef yysyntaxtree
1525 #define yysyntaxtree syntaxtree
1526 
1527 
1528 #line 580 "grammar.pgs"
1529 
1530 #define BISONGEN
1531 #undef  YACCGEN
1532 
1533 #include <stdio.h>
1534 
1535 #include <string.h>
1536 
1537 #include "y.tab.h"
1538 
1539 
1540 #line 24 "grammar.pgs"
1541 
1542 #ifndef lint
1543 static char *id_string="$Id: grammar.pgs,v 3.17 1995/02/08 18:35:02 sander Exp $";
1544 #endif
1545 
1546 /*
1547  *   Copyright (C) 1993-2005 Saarland University
1548  *
1549  *  This program and documentation is free software; you can redistribute
1550  *  it under the terms of the  GNU General Public License as published by
1551  *  the  Free Software Foundation;  either version 2  of the License,  or
1552  *  (at your option) any later version.
1553  *
1554  *  This  program  is  distributed  in  the hope that it will be useful,
1555  *  but  WITHOUT ANY WARRANTY;  without  even  the  implied  warranty of
1556  *  MERCHANTABILITY  or  FITNESS  FOR  A  PARTICULAR  PURPOSE.  See  the
1557  *  GNU General Public License for more details.
1558  *
1559  *  You  should  have  received a copy of the GNU General Public License
1560  *  along  with  this  program;  if  not,  write  to  the  Free Software
1561  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
1562  *
1563  *  The software is available per anonymous ftp at ftp.cs.uni-sb.de.
1564  *  Contact  sander@cs.uni-sb.de  for additional information.
1565  */
1566 
1567 
1568 /* $Log: grammar.pgs,v $
1569 # Revision 3.17  1995/02/08  18:35:02  sander
1570 # Small bug for K&R C corrected.
1571 #
1572 # Revision 3.16  1995/02/08  11:11:14  sander
1573 # Distribution version 1.3.
1574 #
1575 # Revision 3.15  1994/12/23  18:12:45  sander
1576 # Manhatten layout added.
1577 #
1578 # Revision 3.14  1994/11/23  14:50:47  sander
1579 # Hash table to 22079 expanded. Better string hash function implemented.
1580 #
1581 # Revision 3.13  1994/08/08  16:01:47  sander
1582 # Attributes xraster, xlraster, yraster added.
1583 #
1584 # Revision 3.12  1994/08/05  12:13:25  sander
1585 # Treelayout added. Attributes "treefactor" and "spreadlevel" added.
1586 # Scaling as abbreviation of "stretch/shrink" added.
1587 #
1588 # Revision 3.11  1994/08/04  08:58:20  sander
1589 # Attributes crossing_weight and crossing_optimization added.
1590 #
1591 # Revision 3.10  1994/08/03  13:58:44  sander
1592 # Horizontal order mechanism changed.
1593 # Attribute horizontal_order for edges added.
1594 #
1595 # Revision 3.9  1994/06/07  14:09:59  sander
1596 # Splines implemented.
1597 # HP-UX, Linux, AIX, Sun-Os, IRIX compatibility tested.
1598 # The tool is now ready to be distributed.
1599 #
1600 # Revision 3.8  1994/05/17  16:35:59  sander
1601 # attribute node_align added to allow nodes to be centered in the levels.
1602 #
1603 # Revision 3.7  1994/05/16  08:56:03  sander
1604 # shape attribute (boxes, rhombs, ellipses, triangles) added.
1605 #
1606 # Revision 3.6  1994/05/05  08:20:30  sander
1607 # Algorithm late labels added: If labels are inserted
1608 # after partitioning, this may yield a better layout.
1609 #
1610 # Revision 3.5  1994/04/27  16:05:19  sander
1611 # attributes of graph nodes adapted to the of normal nodes.
1612 #
1613 # Revision 3.4  1994/03/04  19:11:24  sander
1614 # Specification of levels per node added.
1615 # X11 geometry behaviour (option -geometry) changed such
1616 # that the window is now opened automatically.
1617 #
1618 # Revision 3.3  1994/03/03  15:35:39  sander
1619 # Edge line style `invisible' added.
1620 #
1621 # Revision 3.2  1994/03/02  11:48:54  sander
1622 # Layoutalgoritms mindepthslow, maxdepthslow, minindegree, ... mandegree
1623 # added.
1624 # Anchors and nearedges are not anymore allowed to be intermixed.
1625 # Escapes in strings are now allowed.
1626 #
1627 # Revision 3.1  1994/03/01  10:59:55  sander
1628 # Copyright and Gnu Licence message added.
1629 # Problem with "nearedges: no" and "selfloops" solved.
1630 #
1631 # Revision 2.4  1994/02/13  17:25:54  sander
1632 # attribute 'finetuning' added.
1633 #
1634 # Revision 2.3  1994/01/21  19:33:46  sander
1635 # VCG Version tested on Silicon Graphics IRIX, IBM R6000 AIX and Sun 3/60.
1636 # Option handling improved. Option -grabinputfocus installed.
1637 # X11 Font selection scheme implemented. The user can now select a font
1638 # during installation.
1639 # Sun K&R C (a nonansi compiler) tested. Some portabitility problems solved.
1640 #
1641 # Revision 2.1  1993/12/08  21:19:21  sander
1642 # Reasonable fast and stable version
1643 #
1644  */
1645 
1646 
1647 #include <stdio.h>
1648 #include <string.h>
1649 #include <ctype.h>
1650 #include <math.h>
1651 #include "globals.h"
1652 #include "main.h"
1653 #include "options.h"
1654 
1655 #ifndef YY_CHAR
1656 #define YY_CHAR char
1657 extern YY_CHAR *yytext;
1658 #endif
1659 
1660 /* the following is added for flex 2.4.6 */
1661 
1662 #ifndef YY_MALLOC_DECL
1663 #define YY_MALLOC_DECL
1664 #include <stdlib.h>
1665 #endif
1666 
1667 #undef YYVALGLOBAL
1668 
1669 extern yysyntaxtree Syntax_Tree;
1670 
1671 #define exit(a) gs_exit(a)
1672 extern void gs_exit            _PP((int x));
1673 
1674 void   line_directive _PP((char *text));
1675 void   escape_transl  _PP((char *text));
1676 char  *my_itoa        _PP((int x));
1677 long   long_atoi      _PP((char *c));
1678 void   syntaxerror    _PP((int line,int pos,char *mesge));
1679 void   warning        _PP((int line,int pos,char *mesge));
1680 
1681 #ifndef yysyntaxerror
1682 #define yysyntaxerror(l,p,m) syntaxerror(l,p,m)
1683 #endif
1684 
1685 #ifndef yyerror
1686 #define yyerror(x) { \
1687         SPRINTF(message,"unexpected %s \"%s\" (%s)", \
1688                  ((yychar<0)?"(?)":yytokname[YYTRANSLATE(yychar)]),     \
1689                  (strlen(yytext)<48?yytext:"(?)"),x); \
1690         syntaxerror(line_nr,pos_nr,message);\
1691     }
1692 #endif
1693 
1694 /* Memory Management */
1695 
1696 #ifdef MEMBLOCKSIZE
1697 #define PARSEBLOCKSIZE (MEMBLOCKSIZE/sizeof(struct stree_node)+1)
1698 #endif
1699 
1700 /* Hash Table */
1701 
1702 #define hash_size 22079
1703 
1704 
1705 
1706 
1707 #line 580 "grammar.pgs"
1708 
1709 #ifdef ANSI_C
1710 char * ParseMalloc(int x);
1711 #else
1712 char * ParseMalloc();
1713 #endif
1714 #undef PARSEGENSTD
1715 #define PARSEGENSTD
1716 
1717 
1718 #line 1 "/RW/esprit/users/sander/src/PARSEGEN/stdth.skel"
1719 
1720 #ifndef STDHASH
1721 #define STDHASH
1722 
1723 /* $Id: stdth.skel,v 1.3 1994/01/07 19:35:32 sander Exp sander $ */
1724 
1725 #undef  HASHGENSTD
1726 #define HASHGENSTD
1727 
1728 
1729 /*--------------------------------------------------------------------*/
1730 /*  Standard Hash Table Routines                                      */
1731 /*--------------------------------------------------------------------*/
1732 
1733 /* Global Variables */
1734 /*------------------*/
1735 
1736 extern long   table_size;
1737 
1738 #ifndef PARSEGENSTD
1739 
1740 #ifndef ALIGN
1741 #define ALIGN 8
1742 #define IALIGN (ALIGN-1)
1743 #endif
1744 #ifndef STRINGBLOCKSIZE
1745 #define STRINGBLOCKSIZE 5000
1746 #endif
1747 
1748 #ifdef ANSI_C
1749 char *StringHeapMalloc(int x);
1750 void StringHeapFree(void);
1751 else
1752 char *StringHeapMalloc();
1753 void StringHeapFree();
1754 #endif
1755 
1756 #endif /* PARSEGENSTD */
1757 
1758 #ifndef hash_size
1759 #define hash_size 211
1760 #endif
1761 #ifndef hashtable_size
1762 #define hashtable_size 10000L
1763 #endif
1764 
1765 
1766 #ifdef ANSI_C
1767 void FreeHash(void);
1768 long HashInsert(register char *s);
1769 long HashTableSize(void);
1770 char *Decode(long x);
1771 #else
1772 void FreeHash();
1773 long HashInsert();
1774 long HashTableSize();
1775 char *Decode();
1776 #endif /* ANSI_C */
1777 
1778 #endif /* STDHASH */
1779 
1780 /*-- end of standard hash table interface ----------------------------*/
1781 
1782 
1783 
1784 #line 12 "/RW/esprit/users/sander/src/PARSEGEN/scan.skel"
1785 
1786 
1787 /*--------------------------------------------------------------------*/
1788 
1789 /* Global Variables */
1790 /*------------------*/
1791 
1792 int line_nr;
1793 int pos_nr;
1794 extern int nr_errors;  /* from Scanner */
1795 
1796 /* Local Variables */
1797 /*-----------------*/
1798 
1799 static char message[256];
1800 
1801 #define SKIPYYTEXT { char *c; c = yytext; while (*c) { \
1802      if (*c == '\n') { pos_nr = 1; line_nr++; }  \
1803      else pos_nr++; c++; }}
1804 
1805 
1806 /*--------------------------------------------------------------------*/
1807 /*   Character classes                                                */
1808 /*--------------------------------------------------------------------*/
1809 
1810 
1811 #line 188 "grammar.pgs"
1812 # line 328 "grammar.l"
1813 
1814 
1815 
1816 #line 44 "/RW/esprit/users/sander/src/PARSEGEN/scan.skel"
1817 
1818 #ifndef yywrap
1819 /* Changed for flex 2.4.6 (static removed) */
yywrap()1820 int yywrap() { return (1); }
1821 #endif
1822 
1823 #ifndef RETURN
1824 #ifndef YYLTYPE
1825 #define RETURN(x) { 	pos_nr += strlen(yytext); \
1826 			return(x); }
1827 #else
1828 extern YYLTYPE yylloc;
1829 #define RETURN(x) { 	pos_nr += strlen(yytext); \
1830 			yylloc.first_line = yylloc.last_line = line_nr; \
1831 			yylloc.first_column = pos_nr-strlen(yytext);    \
1832 			yylloc.last_column  = pos_nr;                   \
1833 			return(x); }
1834 #endif
1835 #endif
1836 
1837 #ifndef yysyntaxerror
1838 #define yysyntaxerror(l,p,m) {(void)printf("Line %d Pos %d: %s !\n",l,p,m);\
1839 	nr_errors++;}
1840 #endif
1841 
1842 /*--------------------------------------------------------------------*/
1843 /*   Token rules                                                      */
1844 /*--------------------------------------------------------------------*/
1845 
1846 
1847 #line 203 "grammar.pgs"
1848 
1849 /* Macros after this point can all be overridden by user definitions in
1850  * section 1.
1851  */
1852 
1853 #ifdef YY_MALLOC_DECL
1854 YY_MALLOC_DECL
1855 #else
1856 #if __STDC__
1857 #ifndef __cplusplus
1858 #include <stdlib.h>
1859 #endif
1860 #else
1861 /* Just try to get by without declaring the routines.  This will fail
1862  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1863  * or sizeof(void*) != sizeof(int).
1864  */
1865 #endif
1866 #endif
1867 
1868 /* Amount of stuff to slurp up with each read. */
1869 #ifndef YY_READ_BUF_SIZE
1870 #define YY_READ_BUF_SIZE 8192
1871 #endif
1872 
1873 /* Copy whatever the last rule matched to the standard output. */
1874 
1875 #ifndef ECHO
1876 /* This used to be an fputs(), but since the string might contain NUL's,
1877  * we now use fwrite().
1878  */
1879 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1880 #endif
1881 
1882 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1883  * is returned in "result".
1884  */
1885 #ifndef YY_INPUT
1886 #define YY_INPUT(buf,result,max_size) \
1887 	if ( yy_current_buffer->yy_is_interactive ) \
1888 		{ \
1889 		int c = getc( yyin ); \
1890 		result = c == EOF ? 0 : 1; \
1891 		buf[0] = (char) c; \
1892 		} \
1893 	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1894 		  && ferror( yyin ) ) \
1895 		YY_FATAL_ERROR( "input in flex scanner failed" );
1896 #endif
1897 
1898 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1899  * we don't want an extra ';' after the "return" because that will cause
1900  * some compilers to complain about unreachable statements.
1901  */
1902 #ifndef yyterminate
1903 #define yyterminate() return YY_NULL
1904 #endif
1905 
1906 /* Number of entries by which start-condition stack grows. */
1907 #ifndef YY_START_STACK_INCR
1908 #define YY_START_STACK_INCR 25
1909 #endif
1910 
1911 /* Report a fatal error. */
1912 #ifndef YY_FATAL_ERROR
1913 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1914 #endif
1915 
1916 /* Default declaration of generated scanner - a define so the user can
1917  * easily add parameters.
1918  */
1919 #ifndef YY_DECL
1920 #define YY_DECL int yylex YY_PROTO(( void ))
1921 #endif
1922 
1923 /* Code executed at the beginning of each rule, after yytext and yyleng
1924  * have been set up.
1925  */
1926 #ifndef YY_USER_ACTION
1927 #define YY_USER_ACTION
1928 #endif
1929 
1930 /* Code executed at the end of each rule. */
1931 #ifndef YY_BREAK
1932 #define YY_BREAK break;
1933 #endif
1934 
1935 YY_DECL
1936 	{
1937 	register yy_state_type yy_current_state;
1938 	register char *yy_cp, *yy_bp;
1939 	register int yy_act;
1940 
1941 # line 365 "grammar.l"
1942 
1943 
1944 
1945 
1946 	if ( yy_init )
1947 		{
1948 #ifdef YY_USER_INIT
1949 		YY_USER_INIT;
1950 #endif
1951 
1952 		if ( ! yy_start )
1953 			yy_start = 1;	/* first start state */
1954 
1955 		if ( ! yyin )
1956 			yyin = stdin;
1957 
1958 		if ( ! yyout )
1959 			yyout = stdout;
1960 
1961 		if ( yy_current_buffer )
1962 			yy_init_buffer( yy_current_buffer, yyin );
1963 		else
1964 			yy_current_buffer =
1965 				yy_create_buffer( yyin, YY_BUF_SIZE );
1966 
1967 		yy_load_buffer_state();
1968 
1969 		yy_init = 0;
1970 		}
1971 
1972 	while ( 1 )		/* loops until end-of-file is reached */
1973 		{
1974 		yy_cp = yy_c_buf_p;
1975 
1976 		/* Support of yytext. */
1977 		*yy_cp = yy_hold_char;
1978 
1979 		/* yy_bp points to the position in yy_ch_buf of the start of
1980 		 * the current run.
1981 		 */
1982 		yy_bp = yy_cp;
1983 
1984 		yy_current_state = yy_start;
1985 yy_match:
1986 		do
1987 			{
1988 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1989 			if ( yy_accept[yy_current_state] )
1990 				{
1991 				yy_last_accepting_state = yy_current_state;
1992 				yy_last_accepting_cpos = yy_cp;
1993 				}
1994 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1995 				{
1996 				yy_current_state = (int) yy_def[yy_current_state];
1997 				if ( yy_current_state >= 2052 )
1998 					yy_c = yy_meta[(unsigned int) yy_c];
1999 				}
2000 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2001 			++yy_cp;
2002 			}
2003 		while ( yy_base[yy_current_state] != 2186 );
2004 
2005 yy_find_action:
2006 		yy_act = yy_accept[yy_current_state];
2007 
2008 		YY_DO_BEFORE_ACTION;
2009 
2010 
2011 do_action:	/* This label is used only to access EOF actions. */
2012 
2013 
2014 		switch ( yy_act )
2015 	{ /* beginning of action switch */
2016 			case 0: /* must back up */
2017 			/* undo the effects of YY_DO_BEFORE_ACTION */
2018 			*yy_cp = yy_hold_char;
2019 			yy_cp = yy_last_accepting_cpos;
2020 			yy_current_state = yy_last_accepting_state;
2021 			goto yy_find_action;
2022 
2023 case 1:
2024 YY_USER_ACTION
2025 # line 368 "grammar.l"
2026 {
2027 #line 209 "grammar.pgs"
2028 		 RETURN(LEXWORD_ABOVE);               }
2029 	YY_BREAK
2030 case 2:
2031 YY_USER_ACTION
2032 # line 371 "grammar.l"
2033 {
2034 #line 210 "grammar.pgs"
2035 		 RETURN(LEXWORD_ANCHORPOINTS);        }
2036 	YY_BREAK
2037 case 3:
2038 YY_USER_ACTION
2039 # line 374 "grammar.l"
2040 {
2041 #line 211 "grammar.pgs"
2042 		 RETURN(LEXWORD_ANCHORPOINTS);        }
2043 	YY_BREAK
2044 case 4:
2045 YY_USER_ACTION
2046 # line 377 "grammar.l"
2047 {
2048 #line 212 "grammar.pgs"
2049 		 RETURN(LEXWORD_ANCHOR);              }
2050 	YY_BREAK
2051 case 5:
2052 YY_USER_ACTION
2053 # line 380 "grammar.l"
2054 {
2055 #line 213 "grammar.pgs"
2056 		 RETURN(LEXWORD_AQUAMARINE);          }
2057 	YY_BREAK
2058 case 6:
2059 YY_USER_ACTION
2060 # line 383 "grammar.l"
2061 {
2062 #line 214 "grammar.pgs"
2063 		 RETURN(LEXWORD_AROUND);              }
2064 	YY_BREAK
2065 case 7:
2066 YY_USER_ACTION
2067 # line 386 "grammar.l"
2068 {
2069 #line 215 "grammar.pgs"
2070 		 RETURN(LEXWORD_ARROWMODE);           }
2071 	YY_BREAK
2072 case 8:
2073 YY_USER_ACTION
2074 # line 389 "grammar.l"
2075 {
2076 #line 216 "grammar.pgs"
2077 		 RETURN(LEXWORD_ARROWMODE);           }
2078 	YY_BREAK
2079 case 9:
2080 YY_USER_ACTION
2081 # line 392 "grammar.l"
2082 {
2083 #line 217 "grammar.pgs"
2084 		 RETURN(LEXWORD_ARROWHEIGHT);         }
2085 	YY_BREAK
2086 case 10:
2087 YY_USER_ACTION
2088 # line 395 "grammar.l"
2089 {
2090 #line 218 "grammar.pgs"
2091 		 RETURN(LEXWORD_ARROWHEIGHT);         }
2092 	YY_BREAK
2093 case 11:
2094 YY_USER_ACTION
2095 # line 398 "grammar.l"
2096 {
2097 #line 219 "grammar.pgs"
2098 		 RETURN(LEXWORD_ARROWWIDTH);          }
2099 	YY_BREAK
2100 case 12:
2101 YY_USER_ACTION
2102 # line 401 "grammar.l"
2103 {
2104 #line 220 "grammar.pgs"
2105 		 RETURN(LEXWORD_ARROWWIDTH);          }
2106 	YY_BREAK
2107 case 13:
2108 YY_USER_ACTION
2109 # line 404 "grammar.l"
2110 {
2111 #line 221 "grammar.pgs"
2112 		 RETURN(LEXWORD_ARROWCOLOR);          }
2113 	YY_BREAK
2114 case 14:
2115 YY_USER_ACTION
2116 # line 407 "grammar.l"
2117 {
2118 #line 222 "grammar.pgs"
2119 		 RETURN(LEXWORD_ARROWCOLOR);          }
2120 	YY_BREAK
2121 case 15:
2122 YY_USER_ACTION
2123 # line 410 "grammar.l"
2124 {
2125 #line 223 "grammar.pgs"
2126 		 RETURN(LEXWORD_ARROWSTYLE);          }
2127 	YY_BREAK
2128 case 16:
2129 YY_USER_ACTION
2130 # line 413 "grammar.l"
2131 {
2132 #line 224 "grammar.pgs"
2133 		 RETURN(LEXWORD_ARROWSTYLE);          }
2134 	YY_BREAK
2135 case 17:
2136 YY_USER_ACTION
2137 # line 416 "grammar.l"
2138 {
2139 #line 225 "grammar.pgs"
2140 		 RETURN(LEXWORD_ARROWSIZE);           }
2141 	YY_BREAK
2142 case 18:
2143 YY_USER_ACTION
2144 # line 419 "grammar.l"
2145 {
2146 #line 226 "grammar.pgs"
2147 		 RETURN(LEXWORD_ARROWSIZE);           }
2148 	YY_BREAK
2149 case 19:
2150 YY_USER_ACTION
2151 # line 422 "grammar.l"
2152 {
2153 #line 227 "grammar.pgs"
2154 		 RETURN(LEXWORD_BARROWCOLOR);         }
2155 	YY_BREAK
2156 case 20:
2157 YY_USER_ACTION
2158 # line 425 "grammar.l"
2159 {
2160 #line 228 "grammar.pgs"
2161 		 RETURN(LEXWORD_BARROWCOLOR);         }
2162 	YY_BREAK
2163 case 21:
2164 YY_USER_ACTION
2165 # line 428 "grammar.l"
2166 {
2167 #line 229 "grammar.pgs"
2168 		 RETURN(LEXWORD_BARROWCOLOR);         }
2169 	YY_BREAK
2170 case 22:
2171 YY_USER_ACTION
2172 # line 431 "grammar.l"
2173 {
2174 #line 230 "grammar.pgs"
2175 		 RETURN(LEXWORD_BARROWSTYLE);         }
2176 	YY_BREAK
2177 case 23:
2178 YY_USER_ACTION
2179 # line 434 "grammar.l"
2180 {
2181 #line 231 "grammar.pgs"
2182 		 RETURN(LEXWORD_BARROWSTYLE);         }
2183 	YY_BREAK
2184 case 24:
2185 YY_USER_ACTION
2186 # line 437 "grammar.l"
2187 {
2188 #line 232 "grammar.pgs"
2189 		 RETURN(LEXWORD_BARROWSTYLE);         }
2190 	YY_BREAK
2191 case 25:
2192 YY_USER_ACTION
2193 # line 440 "grammar.l"
2194 {
2195 #line 233 "grammar.pgs"
2196 		 RETURN(LEXWORD_BARROWSIZE);          }
2197 	YY_BREAK
2198 case 26:
2199 YY_USER_ACTION
2200 # line 443 "grammar.l"
2201 {
2202 #line 234 "grammar.pgs"
2203 		 RETURN(LEXWORD_BARROWSIZE);          }
2204 	YY_BREAK
2205 case 27:
2206 YY_USER_ACTION
2207 # line 446 "grammar.l"
2208 {
2209 #line 235 "grammar.pgs"
2210 		 RETURN(LEXWORD_BARROWSIZE);          }
2211 	YY_BREAK
2212 case 28:
2213 YY_USER_ACTION
2214 # line 449 "grammar.l"
2215 {
2216 #line 236 "grammar.pgs"
2217 		 RETURN(LEXWORD_BACKEDGE);            }
2218 	YY_BREAK
2219 case 29:
2220 YY_USER_ACTION
2221 # line 452 "grammar.l"
2222 {
2223 #line 237 "grammar.pgs"
2224 		 RETURN(LEXWORD_BACKEDGE);            }
2225 	YY_BREAK
2226 case 30:
2227 YY_USER_ACTION
2228 # line 455 "grammar.l"
2229 {
2230 #line 238 "grammar.pgs"
2231 		 RETURN(LEXWORD_BARYCENTER);          }
2232 	YY_BREAK
2233 case 31:
2234 YY_USER_ACTION
2235 # line 458 "grammar.l"
2236 {
2237 #line 239 "grammar.pgs"
2238 		 RETURN(LEXWORD_BARYCENTER);          }
2239 	YY_BREAK
2240 case 32:
2241 YY_USER_ACTION
2242 # line 461 "grammar.l"
2243 {
2244 #line 240 "grammar.pgs"
2245 		 RETURN(LEXWORD_BARY);                }
2246 	YY_BREAK
2247 case 33:
2248 YY_USER_ACTION
2249 # line 464 "grammar.l"
2250 {
2251 #line 241 "grammar.pgs"
2252 		 RETURN(LEXWORD_BARYMEDIAN);          }
2253 	YY_BREAK
2254 case 34:
2255 YY_USER_ACTION
2256 # line 467 "grammar.l"
2257 {
2258 #line 242 "grammar.pgs"
2259 		 RETURN(LEXWORD_BEHIND);              }
2260 	YY_BREAK
2261 case 35:
2262 YY_USER_ACTION
2263 # line 470 "grammar.l"
2264 {
2265 #line 243 "grammar.pgs"
2266 		 RETURN(LEXWORD_BELOW);               }
2267 	YY_BREAK
2268 case 36:
2269 YY_USER_ACTION
2270 # line 473 "grammar.l"
2271 {
2272 #line 244 "grammar.pgs"
2273 		 RETURN(LEXWORD_BLACK);               }
2274 	YY_BREAK
2275 case 37:
2276 YY_USER_ACTION
2277 # line 476 "grammar.l"
2278 {
2279 #line 245 "grammar.pgs"
2280 		 RETURN(LEXWORD_BLUE);                }
2281 	YY_BREAK
2282 case 38:
2283 YY_USER_ACTION
2284 # line 479 "grammar.l"
2285 {
2286 #line 246 "grammar.pgs"
2287 		 RETURN(LEXWORD_BMAX);                }
2288 	YY_BREAK
2289 case 39:
2290 YY_USER_ACTION
2291 # line 482 "grammar.l"
2292 {
2293 #line 247 "grammar.pgs"
2294 		 RETURN(LEXWORD_BORDERCOLOR);         }
2295 	YY_BREAK
2296 case 40:
2297 YY_USER_ACTION
2298 # line 485 "grammar.l"
2299 {
2300 #line 248 "grammar.pgs"
2301 		 RETURN(LEXWORD_BORDERCOLOR);         }
2302 	YY_BREAK
2303 case 41:
2304 YY_USER_ACTION
2305 # line 488 "grammar.l"
2306 {
2307 #line 249 "grammar.pgs"
2308 		 RETURN(LEXWORD_BORDERWIDTH);         }
2309 	YY_BREAK
2310 case 42:
2311 YY_USER_ACTION
2312 # line 491 "grammar.l"
2313 {
2314 #line 250 "grammar.pgs"
2315 		 RETURN(LEXWORD_BORDERWIDTH);         }
2316 	YY_BREAK
2317 case 43:
2318 YY_USER_ACTION
2319 # line 494 "grammar.l"
2320 {
2321 #line 251 "grammar.pgs"
2322 		 RETURN(LEXWORD_BOTTOM_MARGIN);       }
2323 	YY_BREAK
2324 case 44:
2325 YY_USER_ACTION
2326 # line 497 "grammar.l"
2327 {
2328 #line 252 "grammar.pgs"
2329 		 RETURN(LEXWORD_BOTTOM_MARGIN);       }
2330 	YY_BREAK
2331 case 45:
2332 YY_USER_ACTION
2333 # line 500 "grammar.l"
2334 {
2335 #line 253 "grammar.pgs"
2336 		 RETURN(LEXWORD_BOTTOM_TO_TOP);       }
2337 	YY_BREAK
2338 case 46:
2339 YY_USER_ACTION
2340 # line 503 "grammar.l"
2341 {
2342 #line 254 "grammar.pgs"
2343 		 RETURN(LEXWORD_BOTTOM_TO_TOP);       }
2344 	YY_BREAK
2345 case 47:
2346 YY_USER_ACTION
2347 # line 506 "grammar.l"
2348 {
2349 #line 255 "grammar.pgs"
2350 		 RETURN(LEXWORD_BOTTOM);              }
2351 	YY_BREAK
2352 case 48:
2353 YY_USER_ACTION
2354 # line 509 "grammar.l"
2355 {
2356 #line 256 "grammar.pgs"
2357 		 RETURN(LEXWORD_BOX);                 }
2358 	YY_BREAK
2359 case 49:
2360 YY_USER_ACTION
2361 # line 512 "grammar.l"
2362 {
2363 #line 257 "grammar.pgs"
2364 		 RETURN(LEXWORD_BENTNEAREDGE);        }
2365 	YY_BREAK
2366 case 50:
2367 YY_USER_ACTION
2368 # line 515 "grammar.l"
2369 {
2370 #line 258 "grammar.pgs"
2371 		 RETURN(LEXWORD_BENTNEAREDGE);        }
2372 	YY_BREAK
2373 case 51:
2374 YY_USER_ACTION
2375 # line 518 "grammar.l"
2376 {
2377 #line 259 "grammar.pgs"
2378 		 RETURN(LEXWORD_BENTNEAREDGE);        }
2379 	YY_BREAK
2380 case 52:
2381 YY_USER_ACTION
2382 # line 521 "grammar.l"
2383 {
2384 #line 260 "grammar.pgs"
2385 		 RETURN(LEXWORD_CENTER);              }
2386 	YY_BREAK
2387 case 53:
2388 YY_USER_ACTION
2389 # line 524 "grammar.l"
2390 {
2391 #line 261 "grammar.pgs"
2392 		 RETURN(LEXWORD_CFISH);               }
2393 	YY_BREAK
2394 case 54:
2395 YY_USER_ACTION
2396 # line 527 "grammar.l"
2397 {
2398 #line 262 "grammar.pgs"
2399 		 RETURN(LEXWORD_CLASSNAME);           }
2400 	YY_BREAK
2401 case 55:
2402 YY_USER_ACTION
2403 # line 530 "grammar.l"
2404 {
2405 #line 263 "grammar.pgs"
2406 		 RETURN(LEXWORD_CLASSNAME);           }
2407 	YY_BREAK
2408 case 56:
2409 YY_USER_ACTION
2410 # line 533 "grammar.l"
2411 {
2412 #line 264 "grammar.pgs"
2413 		 RETURN(LEXWORD_CLASS);               }
2414 	YY_BREAK
2415 case 57:
2416 YY_USER_ACTION
2417 # line 536 "grammar.l"
2418 {
2419 #line 265 "grammar.pgs"
2420 		 RETURN(LEXWORD_CLUSTER);             }
2421 	YY_BREAK
2422 case 58:
2423 YY_USER_ACTION
2424 # line 539 "grammar.l"
2425 {
2426 #line 266 "grammar.pgs"
2427 		 RETURN(LEXWORD_CMIN);                }
2428 	YY_BREAK
2429 case 59:
2430 YY_USER_ACTION
2431 # line 542 "grammar.l"
2432 {
2433 #line 267 "grammar.pgs"
2434 		 RETURN(LEXWORD_CMAX);                }
2435 	YY_BREAK
2436 case 60:
2437 YY_USER_ACTION
2438 # line 545 "grammar.l"
2439 {
2440 #line 268 "grammar.pgs"
2441 		 RETURN(LEXWORD_COLORENTRY);          }
2442 	YY_BREAK
2443 case 61:
2444 YY_USER_ACTION
2445 # line 548 "grammar.l"
2446 {
2447 #line 269 "grammar.pgs"
2448 		 RETURN(LEXWORD_COLORENTRY);          }
2449 	YY_BREAK
2450 case 62:
2451 YY_USER_ACTION
2452 # line 551 "grammar.l"
2453 {
2454 #line 270 "grammar.pgs"
2455 		 RETURN(LEXWORD_COLOR);               }
2456 	YY_BREAK
2457 case 63:
2458 YY_USER_ACTION
2459 # line 554 "grammar.l"
2460 {
2461 #line 271 "grammar.pgs"
2462 		 RETURN(LEXWORD_CONSTRAINTS);         }
2463 	YY_BREAK
2464 case 64:
2465 YY_USER_ACTION
2466 # line 557 "grammar.l"
2467 {
2468 #line 272 "grammar.pgs"
2469 		 RETURN(LEXWORD_CONSTRAINT);          }
2470 	YY_BREAK
2471 case 65:
2472 YY_USER_ACTION
2473 # line 560 "grammar.l"
2474 {
2475 #line 273 "grammar.pgs"
2476 		 RETURN(LEXWORD_CONTINUOUS);          }
2477 	YY_BREAK
2478 case 66:
2479 YY_USER_ACTION
2480 # line 563 "grammar.l"
2481 {
2482 #line 274 "grammar.pgs"
2483 		 RETURN(LEXWORD_CROSSING_WEIGHT);     }
2484 	YY_BREAK
2485 case 67:
2486 YY_USER_ACTION
2487 # line 566 "grammar.l"
2488 {
2489 #line 275 "grammar.pgs"
2490 		 RETURN(LEXWORD_CROSSING_WEIGHT);     }
2491 	YY_BREAK
2492 case 68:
2493 YY_USER_ACTION
2494 # line 569 "grammar.l"
2495 {
2496 #line 276 "grammar.pgs"
2497 		 RETURN(LEXWORD_CROSSING_OPT);        }
2498 	YY_BREAK
2499 case 69:
2500 YY_USER_ACTION
2501 # line 572 "grammar.l"
2502 {
2503 #line 277 "grammar.pgs"
2504 		 RETURN(LEXWORD_CROSSING_OPT);        }
2505 	YY_BREAK
2506 case 70:
2507 YY_USER_ACTION
2508 # line 575 "grammar.l"
2509 {
2510 #line 278 "grammar.pgs"
2511 		 RETURN(LEXWORD_CROSSING_P2);         }
2512 	YY_BREAK
2513 case 71:
2514 YY_USER_ACTION
2515 # line 578 "grammar.l"
2516 {
2517 #line 279 "grammar.pgs"
2518 		 RETURN(LEXWORD_CROSSING_P2);         }
2519 	YY_BREAK
2520 case 72:
2521 YY_USER_ACTION
2522 # line 581 "grammar.l"
2523 {
2524 #line 280 "grammar.pgs"
2525 		 RETURN(LEXWORD_CYAN);                }
2526 	YY_BREAK
2527 case 73:
2528 YY_USER_ACTION
2529 # line 584 "grammar.l"
2530 {
2531 #line 281 "grammar.pgs"
2532 		 RETURN(LEXWORD_DARKBLUE);            }
2533 	YY_BREAK
2534 case 74:
2535 YY_USER_ACTION
2536 # line 587 "grammar.l"
2537 {
2538 #line 282 "grammar.pgs"
2539 		 RETURN(LEXWORD_DARKCYAN);            }
2540 	YY_BREAK
2541 case 75:
2542 YY_USER_ACTION
2543 # line 590 "grammar.l"
2544 {
2545 #line 283 "grammar.pgs"
2546 		 RETURN(LEXWORD_DARKGREEN);           }
2547 	YY_BREAK
2548 case 76:
2549 YY_USER_ACTION
2550 # line 593 "grammar.l"
2551 {
2552 #line 284 "grammar.pgs"
2553 		 RETURN(LEXWORD_DARKGREY);            }
2554 	YY_BREAK
2555 case 77:
2556 YY_USER_ACTION
2557 # line 596 "grammar.l"
2558 {
2559 #line 285 "grammar.pgs"
2560 		 RETURN(LEXWORD_DARKGREY);            }
2561 	YY_BREAK
2562 case 78:
2563 YY_USER_ACTION
2564 # line 599 "grammar.l"
2565 {
2566 #line 286 "grammar.pgs"
2567 		 RETURN(LEXWORD_DARKMAGENTA);         }
2568 	YY_BREAK
2569 case 79:
2570 YY_USER_ACTION
2571 # line 602 "grammar.l"
2572 {
2573 #line 287 "grammar.pgs"
2574 		 RETURN(LEXWORD_DARKRED);             }
2575 	YY_BREAK
2576 case 80:
2577 YY_USER_ACTION
2578 # line 605 "grammar.l"
2579 {
2580 #line 288 "grammar.pgs"
2581 		 RETURN(LEXWORD_DARKYELLOW);          }
2582 	YY_BREAK
2583 case 81:
2584 YY_USER_ACTION
2585 # line 608 "grammar.l"
2586 {
2587 #line 289 "grammar.pgs"
2588 		 RETURN(LEXWORD_DASHED);              }
2589 	YY_BREAK
2590 case 82:
2591 YY_USER_ACTION
2592 # line 611 "grammar.l"
2593 {
2594 #line 290 "grammar.pgs"
2595 		 RETURN(LEXWORD_DFS);   	       }
2596 	YY_BREAK
2597 case 83:
2598 YY_USER_ACTION
2599 # line 614 "grammar.l"
2600 {
2601 #line 291 "grammar.pgs"
2602 		 RETURN(LEXWORD_DFS);   	       }
2603 	YY_BREAK
2604 case 84:
2605 YY_USER_ACTION
2606 # line 617 "grammar.l"
2607 {
2608 #line 292 "grammar.pgs"
2609 		 RETURN(LEXWORD_DFS);   	       }
2610 	YY_BREAK
2611 case 85:
2612 YY_USER_ACTION
2613 # line 620 "grammar.l"
2614 {
2615 #line 293 "grammar.pgs"
2616 		 RETURN(LEXWORD_DIMENSION);           }
2617 	YY_BREAK
2618 case 86:
2619 YY_USER_ACTION
2620 # line 623 "grammar.l"
2621 {
2622 #line 294 "grammar.pgs"
2623 		 RETURN(LEXWORD_DIRTY_EDGE_LABELS);   }
2624 	YY_BREAK
2625 case 87:
2626 YY_USER_ACTION
2627 # line 626 "grammar.l"
2628 {
2629 #line 295 "grammar.pgs"
2630 		 RETURN(LEXWORD_DIRTY_EDGE_LABELS);   }
2631 	YY_BREAK
2632 case 88:
2633 YY_USER_ACTION
2634 # line 629 "grammar.l"
2635 {
2636 #line 296 "grammar.pgs"
2637 		 RETURN(LEXWORD_DISPLAY_EDGE_LABELS); }
2638 	YY_BREAK
2639 case 89:
2640 YY_USER_ACTION
2641 # line 632 "grammar.l"
2642 {
2643 #line 297 "grammar.pgs"
2644 		 RETURN(LEXWORD_DISPLAY_EDGE_LABELS); }
2645 	YY_BREAK
2646 case 90:
2647 YY_USER_ACTION
2648 # line 635 "grammar.l"
2649 {
2650 #line 298 "grammar.pgs"
2651 		 RETURN(LEXWORD_DOTTED);              }
2652 	YY_BREAK
2653 case 91:
2654 YY_USER_ACTION
2655 # line 638 "grammar.l"
2656 {
2657 #line 299 "grammar.pgs"
2658 		 RETURN(LEXWORD_EDGE1);               }
2659 	YY_BREAK
2660 case 92:
2661 YY_USER_ACTION
2662 # line 641 "grammar.l"
2663 {
2664 #line 300 "grammar.pgs"
2665 		 RETURN(LEXWORD_EDGE2);               }
2666 	YY_BREAK
2667 case 93:
2668 YY_USER_ACTION
2669 # line 644 "grammar.l"
2670 {
2671 #line 301 "grammar.pgs"
2672 		 RETURN(LEXWORD_EDGES);               }
2673 	YY_BREAK
2674 case 94:
2675 YY_USER_ACTION
2676 # line 647 "grammar.l"
2677 {
2678 #line 302 "grammar.pgs"
2679 		 RETURN(LEXWORD_ELLIPSE);             }
2680 	YY_BREAK
2681 case 95:
2682 YY_USER_ACTION
2683 # line 650 "grammar.l"
2684 {
2685 #line 303 "grammar.pgs"
2686 		 RETURN(LEXWORD_EQUAL_COLUMN);        }
2687 	YY_BREAK
2688 case 96:
2689 YY_USER_ACTION
2690 # line 653 "grammar.l"
2691 {
2692 #line 304 "grammar.pgs"
2693 		 RETURN(LEXWORD_EQUAL_COLUMN);        }
2694 	YY_BREAK
2695 case 97:
2696 YY_USER_ACTION
2697 # line 656 "grammar.l"
2698 {
2699 #line 305 "grammar.pgs"
2700 		 RETURN(LEXWORD_EQUAL_POSITION);      }
2701 	YY_BREAK
2702 case 98:
2703 YY_USER_ACTION
2704 # line 659 "grammar.l"
2705 {
2706 #line 306 "grammar.pgs"
2707 		 RETURN(LEXWORD_EQUAL_POSITION);      }
2708 	YY_BREAK
2709 case 99:
2710 YY_USER_ACTION
2711 # line 662 "grammar.l"
2712 {
2713 #line 307 "grammar.pgs"
2714 		 RETURN(LEXWORD_EQUAL_ROW);           }
2715 	YY_BREAK
2716 case 100:
2717 YY_USER_ACTION
2718 # line 665 "grammar.l"
2719 {
2720 #line 308 "grammar.pgs"
2721 		 RETURN(LEXWORD_EQUAL_ROW);           }
2722 	YY_BREAK
2723 case 101:
2724 YY_USER_ACTION
2725 # line 668 "grammar.l"
2726 {
2727 #line 309 "grammar.pgs"
2728 		 RETURN(LEXWORD_EQUAL);               }
2729 	YY_BREAK
2730 case 102:
2731 YY_USER_ACTION
2732 # line 671 "grammar.l"
2733 {
2734 #line 310 "grammar.pgs"
2735 		 RETURN(LEXWORD_EVERY);               }
2736 	YY_BREAK
2737 case 103:
2738 YY_USER_ACTION
2739 # line 674 "grammar.l"
2740 {
2741 #line 311 "grammar.pgs"
2742 		 RETURN(LEXWORD_FCFISH);              }
2743 	YY_BREAK
2744 case 104:
2745 YY_USER_ACTION
2746 # line 677 "grammar.l"
2747 {
2748 #line 312 "grammar.pgs"
2749 		 RETURN(LEXWORD_FPFISH);              }
2750 	YY_BREAK
2751 case 105:
2752 YY_USER_ACTION
2753 # line 680 "grammar.l"
2754 {
2755 #line 313 "grammar.pgs"
2756 		 RETURN(LEXWORD_FIXED);               }
2757 	YY_BREAK
2758 case 106:
2759 YY_USER_ACTION
2760 # line 683 "grammar.l"
2761 {
2762 #line 314 "grammar.pgs"
2763 		 RETURN(LEXWORD_FREE);                }
2764 	YY_BREAK
2765 case 107:
2766 YY_USER_ACTION
2767 # line 686 "grammar.l"
2768 {
2769 #line 315 "grammar.pgs"
2770 		 RETURN(LEXWORD_FINETUNING);          }
2771 	YY_BREAK
2772 case 108:
2773 YY_USER_ACTION
2774 # line 689 "grammar.l"
2775 {
2776 #line 316 "grammar.pgs"
2777 		 RETURN(LEXWORD_FINETUNING);          }
2778 	YY_BREAK
2779 case 109:
2780 YY_USER_ACTION
2781 # line 692 "grammar.l"
2782 {
2783 #line 317 "grammar.pgs"
2784 		 RETURN(LEXWORD_FOLDEDGE);            }
2785 	YY_BREAK
2786 case 110:
2787 YY_USER_ACTION
2788 # line 695 "grammar.l"
2789 {
2790 #line 318 "grammar.pgs"
2791 		 RETURN(LEXWORD_FOLDEDGE);            }
2792 	YY_BREAK
2793 case 111:
2794 YY_USER_ACTION
2795 # line 698 "grammar.l"
2796 {
2797 #line 319 "grammar.pgs"
2798 		 RETURN(LEXWORD_FOLDNODE);            }
2799 	YY_BREAK
2800 case 112:
2801 YY_USER_ACTION
2802 # line 701 "grammar.l"
2803 {
2804 #line 320 "grammar.pgs"
2805 		 RETURN(LEXWORD_FOLDNODE);            }
2806 	YY_BREAK
2807 case 113:
2808 YY_USER_ACTION
2809 # line 704 "grammar.l"
2810 {
2811 #line 321 "grammar.pgs"
2812 		 RETURN(LEXWORD_FOLDING);             }
2813 	YY_BREAK
2814 case 114:
2815 YY_USER_ACTION
2816 # line 707 "grammar.l"
2817 {
2818 #line 322 "grammar.pgs"
2819 		 RETURN(LEXWORD_FONTNAME);            }
2820 	YY_BREAK
2821 case 115:
2822 YY_USER_ACTION
2823 # line 710 "grammar.l"
2824 {
2825 #line 323 "grammar.pgs"
2826 		 RETURN(LEXWORD_FONTNAME);            }
2827 	YY_BREAK
2828 case 116:
2829 YY_USER_ACTION
2830 # line 713 "grammar.l"
2831 {
2832 #line 324 "grammar.pgs"
2833 		 RETURN(LEXWORD_GOLD);                }
2834 	YY_BREAK
2835 case 117:
2836 YY_USER_ACTION
2837 # line 716 "grammar.l"
2838 {
2839 #line 325 "grammar.pgs"
2840 		 RETURN(LEXWORD_GRAPH);               }
2841 	YY_BREAK
2842 case 118:
2843 YY_USER_ACTION
2844 # line 719 "grammar.l"
2845 {
2846 #line 326 "grammar.pgs"
2847 		 RETURN(LEXWORD_GREATER);             }
2848 	YY_BREAK
2849 case 119:
2850 YY_USER_ACTION
2851 # line 722 "grammar.l"
2852 {
2853 #line 327 "grammar.pgs"
2854 		 RETURN(LEXWORD_GREEN);               }
2855 	YY_BREAK
2856 case 120:
2857 YY_USER_ACTION
2858 # line 725 "grammar.l"
2859 {
2860 #line 328 "grammar.pgs"
2861 		 RETURN(LEXWORD_GREY);                }
2862 	YY_BREAK
2863 case 121:
2864 YY_USER_ACTION
2865 # line 728 "grammar.l"
2866 {
2867 #line 329 "grammar.pgs"
2868 		 RETURN(LEXWORD_GREY);                }
2869 	YY_BREAK
2870 case 122:
2871 YY_USER_ACTION
2872 # line 731 "grammar.l"
2873 {
2874 #line 330 "grammar.pgs"
2875 		 RETURN(LEXWORD_HEIGHT);              }
2876 	YY_BREAK
2877 case 123:
2878 YY_USER_ACTION
2879 # line 734 "grammar.l"
2880 {
2881 #line 331 "grammar.pgs"
2882 		 RETURN(LEXWORD_HIDESINGLES);         }
2883 	YY_BREAK
2884 case 124:
2885 YY_USER_ACTION
2886 # line 737 "grammar.l"
2887 {
2888 #line 332 "grammar.pgs"
2889 		 RETURN(LEXWORD_HIDESINGLES);         }
2890 	YY_BREAK
2891 case 125:
2892 YY_USER_ACTION
2893 # line 740 "grammar.l"
2894 {
2895 #line 333 "grammar.pgs"
2896 		 RETURN(LEXWORD_HIGH_MARGIN);         }
2897 	YY_BREAK
2898 case 126:
2899 YY_USER_ACTION
2900 # line 743 "grammar.l"
2901 {
2902 #line 334 "grammar.pgs"
2903 		 RETURN(LEXWORD_HIGH_MARGIN);         }
2904 	YY_BREAK
2905 case 127:
2906 YY_USER_ACTION
2907 # line 746 "grammar.l"
2908 {
2909 #line 335 "grammar.pgs"
2910 		 RETURN(LEXWORD_HIGH);		       }
2911 	YY_BREAK
2912 case 128:
2913 YY_USER_ACTION
2914 # line 749 "grammar.l"
2915 {
2916 #line 336 "grammar.pgs"
2917 		 RETURN(LEXWORD_HIDDEN);              }
2918 	YY_BREAK
2919 case 129:
2920 YY_USER_ACTION
2921 # line 752 "grammar.l"
2922 {
2923 #line 337 "grammar.pgs"
2924 		 RETURN(LEXWORD_HORDER);              }
2925 	YY_BREAK
2926 case 130:
2927 YY_USER_ACTION
2928 # line 755 "grammar.l"
2929 {
2930 #line 338 "grammar.pgs"
2931 		 RETURN(LEXWORD_HORDER);              }
2932 	YY_BREAK
2933 case 131:
2934 YY_USER_ACTION
2935 # line 758 "grammar.l"
2936 {
2937 #line 339 "grammar.pgs"
2938 		 RETURN(LEXWORD_ICONFILE);            }
2939 	YY_BREAK
2940 case 132:
2941 YY_USER_ACTION
2942 # line 761 "grammar.l"
2943 {
2944 #line 340 "grammar.pgs"
2945 		 RETURN(LEXWORD_ICONFILE);            }
2946 	YY_BREAK
2947 case 133:
2948 YY_USER_ACTION
2949 # line 764 "grammar.l"
2950 {
2951 #line 341 "grammar.pgs"
2952 		 RETURN(LEXWORD_ICONHEIGHT);          }
2953 	YY_BREAK
2954 case 134:
2955 YY_USER_ACTION
2956 # line 767 "grammar.l"
2957 {
2958 #line 342 "grammar.pgs"
2959 		 RETURN(LEXWORD_ICONHEIGHT);          }
2960 	YY_BREAK
2961 case 135:
2962 YY_USER_ACTION
2963 # line 770 "grammar.l"
2964 {
2965 #line 343 "grammar.pgs"
2966 		 RETURN(LEXWORD_ICONSTYLE);           }
2967 	YY_BREAK
2968 case 136:
2969 YY_USER_ACTION
2970 # line 773 "grammar.l"
2971 {
2972 #line 344 "grammar.pgs"
2973 		 RETURN(LEXWORD_ICONSTYLE);           }
2974 	YY_BREAK
2975 case 137:
2976 YY_USER_ACTION
2977 # line 776 "grammar.l"
2978 {
2979 #line 345 "grammar.pgs"
2980 		 RETURN(LEXWORD_ICONWIDTH);           }
2981 	YY_BREAK
2982 case 138:
2983 YY_USER_ACTION
2984 # line 779 "grammar.l"
2985 {
2986 #line 346 "grammar.pgs"
2987 		 RETURN(LEXWORD_ICONWIDTH);           }
2988 	YY_BREAK
2989 case 139:
2990 YY_USER_ACTION
2991 # line 782 "grammar.l"
2992 {
2993 #line 347 "grammar.pgs"
2994 		 RETURN(LEXWORD_HIDESINGLES);         }
2995 	YY_BREAK
2996 case 140:
2997 YY_USER_ACTION
2998 # line 785 "grammar.l"
2999 {
3000 #line 348 "grammar.pgs"
3001 		 RETURN(LEXWORD_HIDESINGLES);         }
3002 	YY_BREAK
3003 case 141:
3004 YY_USER_ACTION
3005 # line 788 "grammar.l"
3006 {
3007 #line 349 "grammar.pgs"
3008 		 RETURN(LEXWORD_INCLUDE);             }
3009 	YY_BREAK
3010 case 142:
3011 YY_USER_ACTION
3012 # line 791 "grammar.l"
3013 {
3014 #line 350 "grammar.pgs"
3015 		 RETURN(LEXWORD_INFONAME);            }
3016 	YY_BREAK
3017 case 143:
3018 YY_USER_ACTION
3019 # line 794 "grammar.l"
3020 {
3021 #line 351 "grammar.pgs"
3022 		 RETURN(LEXWORD_INFO1);               }
3023 	YY_BREAK
3024 case 144:
3025 YY_USER_ACTION
3026 # line 797 "grammar.l"
3027 {
3028 #line 352 "grammar.pgs"
3029 		 RETURN(LEXWORD_INFO2);               }
3030 	YY_BREAK
3031 case 145:
3032 YY_USER_ACTION
3033 # line 800 "grammar.l"
3034 {
3035 #line 353 "grammar.pgs"
3036 		 RETURN(LEXWORD_INFO3);               }
3037 	YY_BREAK
3038 case 146:
3039 YY_USER_ACTION
3040 # line 803 "grammar.l"
3041 {
3042 #line 354 "grammar.pgs"
3043 		 RETURN(LEXWORD_INPUTFUNCTION);       }
3044 	YY_BREAK
3045 case 147:
3046 YY_USER_ACTION
3047 # line 806 "grammar.l"
3048 {
3049 #line 355 "grammar.pgs"
3050 		 RETURN(LEXWORD_INPUTFUNCTION);       }
3051 	YY_BREAK
3052 case 148:
3053 YY_USER_ACTION
3054 # line 809 "grammar.l"
3055 {
3056 #line 356 "grammar.pgs"
3057 		 RETURN(LEXWORD_INTERVAL);            }
3058 	YY_BREAK
3059 case 149:
3060 YY_USER_ACTION
3061 # line 812 "grammar.l"
3062 {
3063 #line 357 "grammar.pgs"
3064 		 RETURN(LEXWORD_INVISIBLE);           }
3065 	YY_BREAK
3066 case 150:
3067 YY_USER_ACTION
3068 # line 815 "grammar.l"
3069 {
3070 #line 358 "grammar.pgs"
3071 		 RETURN(LEXWORD_IN_FRONT);            }
3072 	YY_BREAK
3073 case 151:
3074 YY_USER_ACTION
3075 # line 818 "grammar.l"
3076 {
3077 #line 359 "grammar.pgs"
3078 		 RETURN(LEXWORD_ISI);                 }
3079 	YY_BREAK
3080 case 152:
3081 YY_USER_ACTION
3082 # line 821 "grammar.l"
3083 {
3084 #line 360 "grammar.pgs"
3085 		 RETURN(LEXWORD_KHAKI);               }
3086 	YY_BREAK
3087 case 153:
3088 YY_USER_ACTION
3089 # line 824 "grammar.l"
3090 {
3091 #line 361 "grammar.pgs"
3092 		 RETURN(LEXWORD_TEXTCOLOR);           }
3093 	YY_BREAK
3094 case 154:
3095 YY_USER_ACTION
3096 # line 827 "grammar.l"
3097 {
3098 #line 362 "grammar.pgs"
3099 		 RETURN(LEXWORD_TEXTCOLOR);           }
3100 	YY_BREAK
3101 case 155:
3102 YY_USER_ACTION
3103 # line 830 "grammar.l"
3104 {
3105 #line 363 "grammar.pgs"
3106 		 RETURN(LEXWORD_LABEL);               }
3107 	YY_BREAK
3108 case 156:
3109 YY_USER_ACTION
3110 # line 833 "grammar.l"
3111 {
3112 #line 364 "grammar.pgs"
3113 		 RETURN(LEXWORD_LATE_LABELS);         }
3114 	YY_BREAK
3115 case 157:
3116 YY_USER_ACTION
3117 # line 836 "grammar.l"
3118 {
3119 #line 365 "grammar.pgs"
3120 		 RETURN(LEXWORD_LATE_LABELS);         }
3121 	YY_BREAK
3122 case 158:
3123 YY_USER_ACTION
3124 # line 839 "grammar.l"
3125 {
3126 #line 366 "grammar.pgs"
3127 		 RETURN(LEXWORD_LAYOUTALGORITHM);     }
3128 	YY_BREAK
3129 case 159:
3130 YY_USER_ACTION
3131 # line 842 "grammar.l"
3132 {
3133 #line 367 "grammar.pgs"
3134 		 RETURN(LEXWORD_LAYOUTALGORITHM);     }
3135 	YY_BREAK
3136 case 160:
3137 YY_USER_ACTION
3138 # line 845 "grammar.l"
3139 {
3140 #line 368 "grammar.pgs"
3141 		 RETURN(LEXWORD_LAYOUTFREQUENCY);     }
3142 	YY_BREAK
3143 case 161:
3144 YY_USER_ACTION
3145 # line 848 "grammar.l"
3146 {
3147 #line 369 "grammar.pgs"
3148 		 RETURN(LEXWORD_LAYOUTFREQUENCY);     }
3149 	YY_BREAK
3150 case 162:
3151 YY_USER_ACTION
3152 # line 851 "grammar.l"
3153 {
3154 #line 370 "grammar.pgs"
3155 		 RETURN(LEXWORD_LAYOUTPARAMETER);     }
3156 	YY_BREAK
3157 case 163:
3158 YY_USER_ACTION
3159 # line 854 "grammar.l"
3160 {
3161 #line 371 "grammar.pgs"
3162 		 RETURN(LEXWORD_LAYOUTPARAMETER);     }
3163 	YY_BREAK
3164 case 164:
3165 YY_USER_ACTION
3166 # line 857 "grammar.l"
3167 {
3168 #line 372 "grammar.pgs"
3169 		 RETURN(LEXWORD_LAYOUTDOWNFACTOR);    }
3170 	YY_BREAK
3171 case 165:
3172 YY_USER_ACTION
3173 # line 860 "grammar.l"
3174 {
3175 #line 373 "grammar.pgs"
3176 		 RETURN(LEXWORD_LAYOUTDOWNFACTOR);    }
3177 	YY_BREAK
3178 case 166:
3179 YY_USER_ACTION
3180 # line 863 "grammar.l"
3181 {
3182 #line 374 "grammar.pgs"
3183 		 RETURN(LEXWORD_LAYOUTUPFACTOR);      }
3184 	YY_BREAK
3185 case 167:
3186 YY_USER_ACTION
3187 # line 866 "grammar.l"
3188 {
3189 #line 375 "grammar.pgs"
3190 		 RETURN(LEXWORD_LAYOUTUPFACTOR);      }
3191 	YY_BREAK
3192 case 168:
3193 YY_USER_ACTION
3194 # line 869 "grammar.l"
3195 {
3196 #line 376 "grammar.pgs"
3197 		 RETURN(LEXWORD_LAYOUTNEARFACTOR);    }
3198 	YY_BREAK
3199 case 169:
3200 YY_USER_ACTION
3201 # line 872 "grammar.l"
3202 {
3203 #line 377 "grammar.pgs"
3204 		 RETURN(LEXWORD_LAYOUTNEARFACTOR);    }
3205 	YY_BREAK
3206 case 170:
3207 YY_USER_ACTION
3208 # line 875 "grammar.l"
3209 {
3210 #line 378 "grammar.pgs"
3211 		 RETURN(LEXWORD_LAYOUTSPLINEFACTOR);  }
3212 	YY_BREAK
3213 case 171:
3214 YY_USER_ACTION
3215 # line 878 "grammar.l"
3216 {
3217 #line 379 "grammar.pgs"
3218 		 RETURN(LEXWORD_LAYOUTSPLINEFACTOR);  }
3219 	YY_BREAK
3220 case 172:
3221 YY_USER_ACTION
3222 # line 881 "grammar.l"
3223 {
3224 #line 380 "grammar.pgs"
3225 		 RETURN(LEXWORD_LEFT_JUSTIFY);        }
3226 	YY_BREAK
3227 case 173:
3228 YY_USER_ACTION
3229 # line 884 "grammar.l"
3230 {
3231 #line 381 "grammar.pgs"
3232 		 RETURN(LEXWORD_LEFT_JUSTIFY);        }
3233 	YY_BREAK
3234 case 174:
3235 YY_USER_ACTION
3236 # line 887 "grammar.l"
3237 {
3238 #line 382 "grammar.pgs"
3239 		 RETURN(LEXWORD_LEFT_MARGIN);         }
3240 	YY_BREAK
3241 case 175:
3242 YY_USER_ACTION
3243 # line 890 "grammar.l"
3244 {
3245 #line 383 "grammar.pgs"
3246 		 RETURN(LEXWORD_LEFT_MARGIN);         }
3247 	YY_BREAK
3248 case 176:
3249 YY_USER_ACTION
3250 # line 893 "grammar.l"
3251 {
3252 #line 384 "grammar.pgs"
3253 		 RETURN(LEXWORD_LEFT_NEIGHBOR);       }
3254 	YY_BREAK
3255 case 177:
3256 YY_USER_ACTION
3257 # line 896 "grammar.l"
3258 {
3259 #line 385 "grammar.pgs"
3260 		 RETURN(LEXWORD_LEFT_NEIGHBOR);       }
3261 	YY_BREAK
3262 case 178:
3263 YY_USER_ACTION
3264 # line 899 "grammar.l"
3265 {
3266 #line 386 "grammar.pgs"
3267 		 RETURN(LEXWORD_LEFT_TO_RIGHT);       }
3268 	YY_BREAK
3269 case 179:
3270 YY_USER_ACTION
3271 # line 902 "grammar.l"
3272 {
3273 #line 387 "grammar.pgs"
3274 		 RETURN(LEXWORD_LEFT_TO_RIGHT);       }
3275 	YY_BREAK
3276 case 180:
3277 YY_USER_ACTION
3278 # line 905 "grammar.l"
3279 {
3280 #line 388 "grammar.pgs"
3281 		 RETURN(LEXWORD_LEFT);                }
3282 	YY_BREAK
3283 case 181:
3284 YY_USER_ACTION
3285 # line 908 "grammar.l"
3286 {
3287 #line 389 "grammar.pgs"
3288 		 RETURN(LEXWORD_LEVEL);               }
3289 	YY_BREAK
3290 case 182:
3291 YY_USER_ACTION
3292 # line 911 "grammar.l"
3293 {
3294 #line 390 "grammar.pgs"
3295 		 RETURN(LEXWORD_VORDER);              }
3296 	YY_BREAK
3297 case 183:
3298 YY_USER_ACTION
3299 # line 914 "grammar.l"
3300 {
3301 #line 391 "grammar.pgs"
3302 		 RETURN(LEXWORD_VORDER);              }
3303 	YY_BREAK
3304 case 184:
3305 YY_USER_ACTION
3306 # line 917 "grammar.l"
3307 {
3308 #line 392 "grammar.pgs"
3309 		 RETURN(LEXWORD_LIGHTBLUE);           }
3310 	YY_BREAK
3311 case 185:
3312 YY_USER_ACTION
3313 # line 920 "grammar.l"
3314 {
3315 #line 393 "grammar.pgs"
3316 		 RETURN(LEXWORD_LIGHTCYAN);           }
3317 	YY_BREAK
3318 case 186:
3319 YY_USER_ACTION
3320 # line 923 "grammar.l"
3321 {
3322 #line 394 "grammar.pgs"
3323 		 RETURN(LEXWORD_LIGHTGREEN);          }
3324 	YY_BREAK
3325 case 187:
3326 YY_USER_ACTION
3327 # line 926 "grammar.l"
3328 {
3329 #line 395 "grammar.pgs"
3330 		 RETURN(LEXWORD_LIGHTGREY);           }
3331 	YY_BREAK
3332 case 188:
3333 YY_USER_ACTION
3334 # line 929 "grammar.l"
3335 {
3336 #line 396 "grammar.pgs"
3337 		 RETURN(LEXWORD_LIGHTGREY);           }
3338 	YY_BREAK
3339 case 189:
3340 YY_USER_ACTION
3341 # line 932 "grammar.l"
3342 {
3343 #line 397 "grammar.pgs"
3344 		 RETURN(LEXWORD_LIGHTMAGENTA);        }
3345 	YY_BREAK
3346 case 190:
3347 YY_USER_ACTION
3348 # line 935 "grammar.l"
3349 {
3350 #line 398 "grammar.pgs"
3351 		 RETURN(LEXWORD_LIGHTRED);            }
3352 	YY_BREAK
3353 case 191:
3354 YY_USER_ACTION
3355 # line 938 "grammar.l"
3356 {
3357 #line 399 "grammar.pgs"
3358 		 RETURN(LEXWORD_LIGHTYELLOW);         }
3359 	YY_BREAK
3360 case 192:
3361 YY_USER_ACTION
3362 # line 941 "grammar.l"
3363 {
3364 #line 400 "grammar.pgs"
3365 		 RETURN(LEXWORD_LILAC);               }
3366 	YY_BREAK
3367 case 193:
3368 YY_USER_ACTION
3369 # line 944 "grammar.l"
3370 {
3371 #line 401 "grammar.pgs"
3372 		 RETURN(LEXWORD_LIMIT);               }
3373 	YY_BREAK
3374 case 194:
3375 YY_USER_ACTION
3376 # line 947 "grammar.l"
3377 {
3378 #line 402 "grammar.pgs"
3379 		 RETURN(LEXWORD_LINE);                }
3380 	YY_BREAK
3381 case 195:
3382 YY_USER_ACTION
3383 # line 950 "grammar.l"
3384 {
3385 #line 403 "grammar.pgs"
3386 		 RETURN(LEXWORD_LINESTYLE);           }
3387 	YY_BREAK
3388 case 196:
3389 YY_USER_ACTION
3390 # line 953 "grammar.l"
3391 {
3392 #line 404 "grammar.pgs"
3393 		 RETURN(LEXWORD_LINESTYLE);           }
3394 	YY_BREAK
3395 case 197:
3396 YY_USER_ACTION
3397 # line 956 "grammar.l"
3398 {
3399 #line 405 "grammar.pgs"
3400 		 RETURN(LEXWORD_LOC);                 }
3401 	YY_BREAK
3402 case 198:
3403 YY_USER_ACTION
3404 # line 959 "grammar.l"
3405 {
3406 #line 406 "grammar.pgs"
3407 		 RETURN(LEXWORD_LOWER_NEIGHBOR);      }
3408 	YY_BREAK
3409 case 199:
3410 YY_USER_ACTION
3411 # line 962 "grammar.l"
3412 {
3413 #line 407 "grammar.pgs"
3414 		 RETURN(LEXWORD_LOWER_NEIGHBOR);      }
3415 	YY_BREAK
3416 case 200:
3417 YY_USER_ACTION
3418 # line 965 "grammar.l"
3419 {
3420 #line 408 "grammar.pgs"
3421 		 RETURN(LEXWORD_LOW_MARGIN);          }
3422 	YY_BREAK
3423 case 201:
3424 YY_USER_ACTION
3425 # line 968 "grammar.l"
3426 {
3427 #line 409 "grammar.pgs"
3428 		 RETURN(LEXWORD_LOW_MARGIN);          }
3429 	YY_BREAK
3430 case 202:
3431 YY_USER_ACTION
3432 # line 971 "grammar.l"
3433 {
3434 #line 410 "grammar.pgs"
3435 		 RETURN(LEXWORD_LOW);                 }
3436 	YY_BREAK
3437 case 203:
3438 YY_USER_ACTION
3439 # line 974 "grammar.l"
3440 {
3441 #line 411 "grammar.pgs"
3442 		 RETURN(LEXWORD_MAGENTA);             }
3443 	YY_BREAK
3444 case 204:
3445 YY_USER_ACTION
3446 # line 977 "grammar.l"
3447 {
3448 #line 412 "grammar.pgs"
3449 		 RETURN(LEXWORD_MANHATTEN);           }
3450 	YY_BREAK
3451 case 205:
3452 YY_USER_ACTION
3453 # line 980 "grammar.l"
3454 {
3455 #line 413 "grammar.pgs"
3456 		 RETURN(LEXWORD_MANHATTEN);           }
3457 	YY_BREAK
3458 case 206:
3459 YY_USER_ACTION
3460 # line 983 "grammar.l"
3461 {
3462 #line 414 "grammar.pgs"
3463 		 RETURN(LEXWORD_MANHATTEN);           }
3464 	YY_BREAK
3465 case 207:
3466 YY_USER_ACTION
3467 # line 986 "grammar.l"
3468 {
3469 #line 415 "grammar.pgs"
3470 		 RETURN(LEXWORD_MANHATTEN);           }
3471 	YY_BREAK
3472 case 208:
3473 YY_USER_ACTION
3474 # line 989 "grammar.l"
3475 {
3476 #line 416 "grammar.pgs"
3477 		 RETURN(LEXWORD_MANUAL);              }
3478 	YY_BREAK
3479 case 209:
3480 YY_USER_ACTION
3481 # line 992 "grammar.l"
3482 {
3483 #line 417 "grammar.pgs"
3484 		 RETURN(LEXWORD_MAXDEPTHSLOW);        }
3485 	YY_BREAK
3486 case 210:
3487 YY_USER_ACTION
3488 # line 995 "grammar.l"
3489 {
3490 #line 418 "grammar.pgs"
3491 		 RETURN(LEXWORD_MAXDEPTH);            }
3492 	YY_BREAK
3493 case 211:
3494 YY_USER_ACTION
3495 # line 998 "grammar.l"
3496 {
3497 #line 419 "grammar.pgs"
3498 		 RETURN(LEXWORD_MAXDEGREE);           }
3499 	YY_BREAK
3500 case 212:
3501 YY_USER_ACTION
3502 # line 1001 "grammar.l"
3503 {
3504 #line 420 "grammar.pgs"
3505 		 RETURN(LEXWORD_MAXINDEGREE);         }
3506 	YY_BREAK
3507 case 213:
3508 YY_USER_ACTION
3509 # line 1004 "grammar.l"
3510 {
3511 #line 421 "grammar.pgs"
3512 		 RETURN(LEXWORD_MAXOUTDEGREE);        }
3513 	YY_BREAK
3514 case 214:
3515 YY_USER_ACTION
3516 # line 1007 "grammar.l"
3517 {
3518 #line 422 "grammar.pgs"
3519 		 RETURN(LEXWORD_MEDIAN);              }
3520 	YY_BREAK
3521 case 215:
3522 YY_USER_ACTION
3523 # line 1010 "grammar.l"
3524 {
3525 #line 423 "grammar.pgs"
3526 		 RETURN(LEXWORD_MEDIANBARY);          }
3527 	YY_BREAK
3528 case 216:
3529 YY_USER_ACTION
3530 # line 1013 "grammar.l"
3531 {
3532 #line 424 "grammar.pgs"
3533 		 RETURN(LEXWORD_MINDEPTHSLOW);        }
3534 	YY_BREAK
3535 case 217:
3536 YY_USER_ACTION
3537 # line 1016 "grammar.l"
3538 {
3539 #line 425 "grammar.pgs"
3540 		 RETURN(LEXWORD_MINDEPTH);            }
3541 	YY_BREAK
3542 case 218:
3543 YY_USER_ACTION
3544 # line 1019 "grammar.l"
3545 {
3546 #line 426 "grammar.pgs"
3547 		 RETURN(LEXWORD_MINDEGREE);           }
3548 	YY_BREAK
3549 case 219:
3550 YY_USER_ACTION
3551 # line 1022 "grammar.l"
3552 {
3553 #line 427 "grammar.pgs"
3554 		 RETURN(LEXWORD_MININDEGREE);         }
3555 	YY_BREAK
3556 case 220:
3557 YY_USER_ACTION
3558 # line 1025 "grammar.l"
3559 {
3560 #line 428 "grammar.pgs"
3561 		 RETURN(LEXWORD_MINOUTDEGREE);        }
3562 	YY_BREAK
3563 case 221:
3564 YY_USER_ACTION
3565 # line 1028 "grammar.l"
3566 {
3567 #line 429 "grammar.pgs"
3568 		 RETURN(LEXWORD_MINBACK);             }
3569 	YY_BREAK
3570 case 222:
3571 YY_USER_ACTION
3572 # line 1031 "grammar.l"
3573 {
3574 #line 430 "grammar.pgs"
3575 		 RETURN(LEXWORD_NAME);                }
3576 	YY_BREAK
3577 case 223:
3578 YY_USER_ACTION
3579 # line 1034 "grammar.l"
3580 {
3581 #line 431 "grammar.pgs"
3582 		 RETURN(LEXWORD_NEAREDGE);            }
3583 	YY_BREAK
3584 case 224:
3585 YY_USER_ACTION
3586 # line 1037 "grammar.l"
3587 {
3588 #line 432 "grammar.pgs"
3589 		 RETURN(LEXWORD_NEAREDGE);            }
3590 	YY_BREAK
3591 case 225:
3592 YY_USER_ACTION
3593 # line 1040 "grammar.l"
3594 {
3595 #line 433 "grammar.pgs"
3596 		 RETURN(LEXWORD_NEIGHBORS);           }
3597 	YY_BREAK
3598 case 226:
3599 YY_USER_ACTION
3600 # line 1043 "grammar.l"
3601 {
3602 #line 434 "grammar.pgs"
3603 		 RETURN(LEXWORD_NEAREDGES);           }
3604 	YY_BREAK
3605 case 227:
3606 YY_USER_ACTION
3607 # line 1046 "grammar.l"
3608 {
3609 #line 435 "grammar.pgs"
3610 		 RETURN(LEXWORD_NEAREDGES);           }
3611 	YY_BREAK
3612 case 228:
3613 YY_USER_ACTION
3614 # line 1049 "grammar.l"
3615 {
3616 #line 436 "grammar.pgs"
3617 		 RETURN(LEXWORD_NONEAREDGES);         }
3618 	YY_BREAK
3619 case 229:
3620 YY_USER_ACTION
3621 # line 1052 "grammar.l"
3622 {
3623 #line 437 "grammar.pgs"
3624 		 RETURN(LEXWORD_NONEAREDGES);         }
3625 	YY_BREAK
3626 case 230:
3627 YY_USER_ACTION
3628 # line 1055 "grammar.l"
3629 {
3630 #line 438 "grammar.pgs"
3631 		 RETURN(LEXWORD_NONEAREDGES);         }
3632 	YY_BREAK
3633 case 231:
3634 YY_USER_ACTION
3635 # line 1058 "grammar.l"
3636 {
3637 #line 439 "grammar.pgs"
3638 		 RETURN(LEXWORD_NODE1);               }
3639 	YY_BREAK
3640 case 232:
3641 YY_USER_ACTION
3642 # line 1061 "grammar.l"
3643 {
3644 #line 440 "grammar.pgs"
3645 		 RETURN(LEXWORD_NODE2);               }
3646 	YY_BREAK
3647 case 233:
3648 YY_USER_ACTION
3649 # line 1064 "grammar.l"
3650 {
3651 #line 441 "grammar.pgs"
3652 		 RETURN(LEXWORD_NODES);               }
3653 	YY_BREAK
3654 case 234:
3655 YY_USER_ACTION
3656 # line 1067 "grammar.l"
3657 {
3658 #line 442 "grammar.pgs"
3659 		 RETURN(LEXWORD_NODE_ALIGN);          }
3660 	YY_BREAK
3661 case 235:
3662 YY_USER_ACTION
3663 # line 1070 "grammar.l"
3664 {
3665 #line 443 "grammar.pgs"
3666 		 RETURN(LEXWORD_NODE_ALIGN);          }
3667 	YY_BREAK
3668 case 236:
3669 YY_USER_ACTION
3670 # line 1073 "grammar.l"
3671 {
3672 #line 444 "grammar.pgs"
3673 		 RETURN(LEXWORD_NONE);                }
3674 	YY_BREAK
3675 case 237:
3676 YY_USER_ACTION
3677 # line 1076 "grammar.l"
3678 {
3679 #line 445 "grammar.pgs"
3680 		 RETURN(LEXWORD_NO);                  }
3681 	YY_BREAK
3682 case 238:
3683 YY_USER_ACTION
3684 # line 1079 "grammar.l"
3685 {
3686 #line 446 "grammar.pgs"
3687 		 RETURN(LEXWORD_ORANGE);              }
3688 	YY_BREAK
3689 case 239:
3690 YY_USER_ACTION
3691 # line 1082 "grammar.l"
3692 {
3693 #line 447 "grammar.pgs"
3694 		 RETURN(LEXWORD_ORCHID);              }
3695 	YY_BREAK
3696 case 240:
3697 YY_USER_ACTION
3698 # line 1085 "grammar.l"
3699 {
3700 #line 448 "grammar.pgs"
3701 		 RETURN(LEXWORD_ORIENTATION);         }
3702 	YY_BREAK
3703 case 241:
3704 YY_USER_ACTION
3705 # line 1088 "grammar.l"
3706 {
3707 #line 449 "grammar.pgs"
3708 		 RETURN(LEXWORD_OUTPUTFUNCTION);      }
3709 	YY_BREAK
3710 case 242:
3711 YY_USER_ACTION
3712 # line 1091 "grammar.l"
3713 {
3714 #line 450 "grammar.pgs"
3715 		 RETURN(LEXWORD_OUTPUTFUNCTION);      }
3716 	YY_BREAK
3717 case 243:
3718 YY_USER_ACTION
3719 # line 1094 "grammar.l"
3720 {
3721 #line 451 "grammar.pgs"
3722 		 RETURN(LEXWORD_PFISH);               }
3723 	YY_BREAK
3724 case 244:
3725 YY_USER_ACTION
3726 # line 1097 "grammar.l"
3727 {
3728 #line 452 "grammar.pgs"
3729 		 RETURN(LEXWORD_PINK);                }
3730 	YY_BREAK
3731 case 245:
3732 YY_USER_ACTION
3733 # line 1100 "grammar.l"
3734 {
3735 #line 453 "grammar.pgs"
3736 		 RETURN(LEXWORD_PLANAR);              }
3737 	YY_BREAK
3738 case 246:
3739 YY_USER_ACTION
3740 # line 1103 "grammar.l"
3741 {
3742 #line 454 "grammar.pgs"
3743 		 RETURN(LEXWORD_PMIN);                }
3744 	YY_BREAK
3745 case 247:
3746 YY_USER_ACTION
3747 # line 1106 "grammar.l"
3748 {
3749 #line 455 "grammar.pgs"
3750 		 RETURN(LEXWORD_PMAX);                }
3751 	YY_BREAK
3752 case 248:
3753 YY_USER_ACTION
3754 # line 1109 "grammar.l"
3755 {
3756 #line 456 "grammar.pgs"
3757 		 RETURN(LEXWORD_PORTSHARING);         }
3758 	YY_BREAK
3759 case 249:
3760 YY_USER_ACTION
3761 # line 1112 "grammar.l"
3762 {
3763 #line 457 "grammar.pgs"
3764 		 RETURN(LEXWORD_PORTSHARING);         }
3765 	YY_BREAK
3766 case 250:
3767 YY_USER_ACTION
3768 # line 1115 "grammar.l"
3769 {
3770 #line 458 "grammar.pgs"
3771 		 RETURN(LEXWORD_PRIORITYPHASE);       }
3772 	YY_BREAK
3773 case 251:
3774 YY_USER_ACTION
3775 # line 1118 "grammar.l"
3776 {
3777 #line 459 "grammar.pgs"
3778 		 RETURN(LEXWORD_PRIORITYPHASE);       }
3779 	YY_BREAK
3780 case 252:
3781 YY_USER_ACTION
3782 # line 1121 "grammar.l"
3783 {
3784 #line 460 "grammar.pgs"
3785 		 RETURN(LEXWORD_PRIORITY);            }
3786 	YY_BREAK
3787 case 253:
3788 YY_USER_ACTION
3789 # line 1124 "grammar.l"
3790 {
3791 #line 461 "grammar.pgs"
3792 		 RETURN(LEXWORD_PURPLE);              }
3793 	YY_BREAK
3794 case 254:
3795 YY_USER_ACTION
3796 # line 1127 "grammar.l"
3797 {
3798 #line 462 "grammar.pgs"
3799 		 RETURN(LEXWORD_RANGE);               }
3800 	YY_BREAK
3801 case 255:
3802 YY_USER_ACTION
3803 # line 1130 "grammar.l"
3804 {
3805 #line 463 "grammar.pgs"
3806 		 RETURN(LEXWORD_RED);                 }
3807 	YY_BREAK
3808 case 256:
3809 YY_USER_ACTION
3810 # line 1133 "grammar.l"
3811 {
3812 #line 464 "grammar.pgs"
3813 		 RETURN(LEXWORD_RHOMB);               }
3814 	YY_BREAK
3815 case 257:
3816 YY_USER_ACTION
3817 # line 1136 "grammar.l"
3818 {
3819 #line 465 "grammar.pgs"
3820 		 RETURN(LEXWORD_RIGHT_JUSTIFY);       }
3821 	YY_BREAK
3822 case 258:
3823 YY_USER_ACTION
3824 # line 1139 "grammar.l"
3825 {
3826 #line 466 "grammar.pgs"
3827 		 RETURN(LEXWORD_RIGHT_JUSTIFY);       }
3828 	YY_BREAK
3829 case 259:
3830 YY_USER_ACTION
3831 # line 1142 "grammar.l"
3832 {
3833 #line 467 "grammar.pgs"
3834 		 RETURN(LEXWORD_RIGHT_MARGIN);        }
3835 	YY_BREAK
3836 case 260:
3837 YY_USER_ACTION
3838 # line 1145 "grammar.l"
3839 {
3840 #line 468 "grammar.pgs"
3841 		 RETURN(LEXWORD_RIGHT_MARGIN);        }
3842 	YY_BREAK
3843 case 261:
3844 YY_USER_ACTION
3845 # line 1148 "grammar.l"
3846 {
3847 #line 469 "grammar.pgs"
3848 		 RETURN(LEXWORD_RIGHT_NEIGHBOR);      }
3849 	YY_BREAK
3850 case 262:
3851 YY_USER_ACTION
3852 # line 1151 "grammar.l"
3853 {
3854 #line 470 "grammar.pgs"
3855 		 RETURN(LEXWORD_RIGHT_NEIGHBOR);      }
3856 	YY_BREAK
3857 case 263:
3858 YY_USER_ACTION
3859 # line 1154 "grammar.l"
3860 {
3861 #line 471 "grammar.pgs"
3862 		 RETURN(LEXWORD_RIGHT_TO_LEFT);       }
3863 	YY_BREAK
3864 case 264:
3865 YY_USER_ACTION
3866 # line 1157 "grammar.l"
3867 {
3868 #line 472 "grammar.pgs"
3869 		 RETURN(LEXWORD_RIGHT_TO_LEFT);       }
3870 	YY_BREAK
3871 case 265:
3872 YY_USER_ACTION
3873 # line 1160 "grammar.l"
3874 {
3875 #line 473 "grammar.pgs"
3876 		 RETURN(LEXWORD_RIGHT);               }
3877 	YY_BREAK
3878 case 266:
3879 YY_USER_ACTION
3880 # line 1163 "grammar.l"
3881 {
3882 #line 474 "grammar.pgs"
3883 		 RETURN(LEXWORD_RMIN);                }
3884 	YY_BREAK
3885 case 267:
3886 YY_USER_ACTION
3887 # line 1166 "grammar.l"
3888 {
3889 #line 475 "grammar.pgs"
3890 		 RETURN(LEXWORD_RMAX);                }
3891 	YY_BREAK
3892 case 268:
3893 YY_USER_ACTION
3894 # line 1169 "grammar.l"
3895 {
3896 #line 476 "grammar.pgs"
3897 		 RETURN(LEXWORD_SCALING);             }
3898 	YY_BREAK
3899 case 269:
3900 YY_USER_ACTION
3901 # line 1172 "grammar.l"
3902 {
3903 #line 477 "grammar.pgs"
3904 		 RETURN(LEXWORD_SHAPE);               }
3905 	YY_BREAK
3906 case 270:
3907 YY_USER_ACTION
3908 # line 1175 "grammar.l"
3909 {
3910 #line 478 "grammar.pgs"
3911 		 RETURN(LEXWORD_SHRINK);              }
3912 	YY_BREAK
3913 case 271:
3914 YY_USER_ACTION
3915 # line 1178 "grammar.l"
3916 {
3917 #line 479 "grammar.pgs"
3918 		 RETURN(LEXWORD_SMAX);                }
3919 	YY_BREAK
3920 case 272:
3921 YY_USER_ACTION
3922 # line 1181 "grammar.l"
3923 {
3924 #line 480 "grammar.pgs"
3925 		 RETURN(LEXWORD_SMANHATTEN);          }
3926 	YY_BREAK
3927 case 273:
3928 YY_USER_ACTION
3929 # line 1184 "grammar.l"
3930 {
3931 #line 481 "grammar.pgs"
3932 		 RETURN(LEXWORD_SMANHATTEN);          }
3933 	YY_BREAK
3934 case 274:
3935 YY_USER_ACTION
3936 # line 1187 "grammar.l"
3937 {
3938 #line 482 "grammar.pgs"
3939 		 RETURN(LEXWORD_SMANHATTEN);          }
3940 	YY_BREAK
3941 case 275:
3942 YY_USER_ACTION
3943 # line 1190 "grammar.l"
3944 {
3945 #line 483 "grammar.pgs"
3946 		 RETURN(LEXWORD_SMANHATTEN);          }
3947 	YY_BREAK
3948 case 276:
3949 YY_USER_ACTION
3950 # line 1193 "grammar.l"
3951 {
3952 #line 484 "grammar.pgs"
3953 		 RETURN(LEXWORD_SIZE);                }
3954 	YY_BREAK
3955 case 277:
3956 YY_USER_ACTION
3957 # line 1196 "grammar.l"
3958 {
3959 #line 485 "grammar.pgs"
3960 		 RETURN(LEXWORD_SMALLER);             }
3961 	YY_BREAK
3962 case 278:
3963 YY_USER_ACTION
3964 # line 1199 "grammar.l"
3965 {
3966 #line 486 "grammar.pgs"
3967 		 RETURN(LEXWORD_SOLID);               }
3968 	YY_BREAK
3969 case 279:
3970 YY_USER_ACTION
3971 # line 1202 "grammar.l"
3972 {
3973 #line 487 "grammar.pgs"
3974 		 RETURN(LEXWORD_SOURCENAME);          }
3975 	YY_BREAK
3976 case 280:
3977 YY_USER_ACTION
3978 # line 1205 "grammar.l"
3979 {
3980 #line 488 "grammar.pgs"
3981 		 RETURN(LEXWORD_SOURCENAME);          }
3982 	YY_BREAK
3983 case 281:
3984 YY_USER_ACTION
3985 # line 1208 "grammar.l"
3986 {
3987 #line 489 "grammar.pgs"
3988 		 RETURN(LEXWORD_SPLINES);             }
3989 	YY_BREAK
3990 case 282:
3991 YY_USER_ACTION
3992 # line 1211 "grammar.l"
3993 {
3994 #line 490 "grammar.pgs"
3995 		 RETURN(LEXWORD_LAYOUTSPLINEFACTOR);  }
3996 	YY_BREAK
3997 case 283:
3998 YY_USER_ACTION
3999 # line 1214 "grammar.l"
4000 {
4001 #line 491 "grammar.pgs"
4002 		 RETURN(LEXWORD_LAYOUTSPLINEFACTOR);  }
4003 	YY_BREAK
4004 case 284:
4005 YY_USER_ACTION
4006 # line 1217 "grammar.l"
4007 {
4008 #line 492 "grammar.pgs"
4009 		 RETURN(LEXWORD_SPREADLEVEL);         }
4010 	YY_BREAK
4011 case 285:
4012 YY_USER_ACTION
4013 # line 1220 "grammar.l"
4014 {
4015 #line 493 "grammar.pgs"
4016 		 RETURN(LEXWORD_SPREADLEVEL);         }
4017 	YY_BREAK
4018 case 286:
4019 YY_USER_ACTION
4020 # line 1223 "grammar.l"
4021 {
4022 #line 494 "grammar.pgs"
4023 		 RETURN(LEXWORD_STATUS);              }
4024 	YY_BREAK
4025 case 287:
4026 YY_USER_ACTION
4027 # line 1226 "grammar.l"
4028 {
4029 #line 495 "grammar.pgs"
4030 		 RETURN(LEXWORD_STRETCH);             }
4031 	YY_BREAK
4032 case 288:
4033 YY_USER_ACTION
4034 # line 1229 "grammar.l"
4035 {
4036 #line 496 "grammar.pgs"
4037 		 RETURN(LEXWORD_STRAIGHTPHASE);       }
4038 	YY_BREAK
4039 case 289:
4040 YY_USER_ACTION
4041 # line 1232 "grammar.l"
4042 {
4043 #line 497 "grammar.pgs"
4044 		 RETURN(LEXWORD_STRAIGHTPHASE);       }
4045 	YY_BREAK
4046 case 290:
4047 YY_USER_ACTION
4048 # line 1235 "grammar.l"
4049 {
4050 #line 498 "grammar.pgs"
4051 		 RETURN(LEXWORD_TARGETNAME);          }
4052 	YY_BREAK
4053 case 291:
4054 YY_USER_ACTION
4055 # line 1238 "grammar.l"
4056 {
4057 #line 499 "grammar.pgs"
4058 		 RETURN(LEXWORD_TARGETNAME);          }
4059 	YY_BREAK
4060 case 292:
4061 YY_USER_ACTION
4062 # line 1241 "grammar.l"
4063 {
4064 #line 500 "grammar.pgs"
4065 		 RETURN(LEXWORD_TEXTCOLOR);           }
4066 	YY_BREAK
4067 case 293:
4068 YY_USER_ACTION
4069 # line 1244 "grammar.l"
4070 {
4071 #line 501 "grammar.pgs"
4072 		 RETURN(LEXWORD_TEXTCOLOR);           }
4073 	YY_BREAK
4074 case 294:
4075 YY_USER_ACTION
4076 # line 1247 "grammar.l"
4077 {
4078 #line 502 "grammar.pgs"
4079 		 RETURN(LEXWORD_TEXTMODE);            }
4080 	YY_BREAK
4081 case 295:
4082 YY_USER_ACTION
4083 # line 1250 "grammar.l"
4084 {
4085 #line 503 "grammar.pgs"
4086 		 RETURN(LEXWORD_TEXTMODE);            }
4087 	YY_BREAK
4088 case 296:
4089 YY_USER_ACTION
4090 # line 1253 "grammar.l"
4091 {
4092 #line 504 "grammar.pgs"
4093 		 RETURN(LEXWORD_THICKNESS);           }
4094 	YY_BREAK
4095 case 297:
4096 YY_USER_ACTION
4097 # line 1256 "grammar.l"
4098 {
4099 #line 505 "grammar.pgs"
4100 		 RETURN(LEXWORD_TITLE);               }
4101 	YY_BREAK
4102 case 298:
4103 YY_USER_ACTION
4104 # line 1259 "grammar.l"
4105 {
4106 #line 506 "grammar.pgs"
4107 		 RETURN(LEXWORD_TOPSORT);             }
4108 	YY_BREAK
4109 case 299:
4110 YY_USER_ACTION
4111 # line 1262 "grammar.l"
4112 {
4113 #line 507 "grammar.pgs"
4114 		 RETURN(LEXWORD_TOPSORT);             }
4115 	YY_BREAK
4116 case 300:
4117 YY_USER_ACTION
4118 # line 1265 "grammar.l"
4119 {
4120 #line 508 "grammar.pgs"
4121 		 RETURN(LEXWORD_TOP_MARGIN);          }
4122 	YY_BREAK
4123 case 301:
4124 YY_USER_ACTION
4125 # line 1268 "grammar.l"
4126 {
4127 #line 509 "grammar.pgs"
4128 		 RETURN(LEXWORD_TOP_MARGIN);          }
4129 	YY_BREAK
4130 case 302:
4131 YY_USER_ACTION
4132 # line 1271 "grammar.l"
4133 {
4134 #line 510 "grammar.pgs"
4135 		 RETURN(LEXWORD_TOP_TO_BOTTOM);       }
4136 	YY_BREAK
4137 case 303:
4138 YY_USER_ACTION
4139 # line 1274 "grammar.l"
4140 {
4141 #line 511 "grammar.pgs"
4142 		 RETURN(LEXWORD_TOP_TO_BOTTOM);       }
4143 	YY_BREAK
4144 case 304:
4145 YY_USER_ACTION
4146 # line 1277 "grammar.l"
4147 {
4148 #line 512 "grammar.pgs"
4149 		 RETURN(LEXWORD_TOP);                 }
4150 	YY_BREAK
4151 case 305:
4152 YY_USER_ACTION
4153 # line 1280 "grammar.l"
4154 {
4155 #line 513 "grammar.pgs"
4156 		 RETURN(LEXWORD_TREE);                }
4157 	YY_BREAK
4158 case 306:
4159 YY_USER_ACTION
4160 # line 1283 "grammar.l"
4161 {
4162 #line 514 "grammar.pgs"
4163 		 RETURN(LEXWORD_TREEFACTOR);          }
4164 	YY_BREAK
4165 case 307:
4166 YY_USER_ACTION
4167 # line 1286 "grammar.l"
4168 {
4169 #line 515 "grammar.pgs"
4170 		 RETURN(LEXWORD_TREEFACTOR);          }
4171 	YY_BREAK
4172 case 308:
4173 YY_USER_ACTION
4174 # line 1289 "grammar.l"
4175 {
4176 #line 516 "grammar.pgs"
4177 		 RETURN(LEXWORD_TRIANGLE);            }
4178 	YY_BREAK
4179 case 309:
4180 YY_USER_ACTION
4181 # line 1292 "grammar.l"
4182 {
4183 #line 517 "grammar.pgs"
4184 		 RETURN(LEXWORD_TURQUOISE);           }
4185 	YY_BREAK
4186 case 310:
4187 YY_USER_ACTION
4188 # line 1295 "grammar.l"
4189 {
4190 #line 518 "grammar.pgs"
4191 		 RETURN(LEXWORD_TYPENAME);            }
4192 	YY_BREAK
4193 case 311:
4194 YY_USER_ACTION
4195 # line 1298 "grammar.l"
4196 {
4197 #line 519 "grammar.pgs"
4198 		 RETURN(LEXWORD_TYPENAME);            }
4199 	YY_BREAK
4200 case 312:
4201 YY_USER_ACTION
4202 # line 1301 "grammar.l"
4203 {
4204 #line 520 "grammar.pgs"
4205 		 RETURN(LEXWORD_UPPER_NEIGHBOR);      }
4206 	YY_BREAK
4207 case 313:
4208 YY_USER_ACTION
4209 # line 1304 "grammar.l"
4210 {
4211 #line 521 "grammar.pgs"
4212 		 RETURN(LEXWORD_UPPER_NEIGHBOR);      }
4213 	YY_BREAK
4214 case 314:
4215 YY_USER_ACTION
4216 # line 1307 "grammar.l"
4217 {
4218 #line 522 "grammar.pgs"
4219 		 RETURN(LEXWORD_VIEW);                }
4220 	YY_BREAK
4221 case 315:
4222 YY_USER_ACTION
4223 # line 1310 "grammar.l"
4224 {
4225 #line 523 "grammar.pgs"
4226 		 RETURN(LEXWORD_WHITE);               }
4227 	YY_BREAK
4228 case 316:
4229 YY_USER_ACTION
4230 # line 1313 "grammar.l"
4231 {
4232 #line 524 "grammar.pgs"
4233 		 RETURN(LEXWORD_WIDTH);               }
4234 	YY_BREAK
4235 case 317:
4236 YY_USER_ACTION
4237 # line 1316 "grammar.l"
4238 {
4239 #line 525 "grammar.pgs"
4240 		 RETURN(LEXWORD_XBASE);               }
4241 	YY_BREAK
4242 case 318:
4243 YY_USER_ACTION
4244 # line 1319 "grammar.l"
4245 {
4246 #line 526 "grammar.pgs"
4247 		 RETURN(LEXWORD_XMAX);                }
4248 	YY_BREAK
4249 case 319:
4250 YY_USER_ACTION
4251 # line 1322 "grammar.l"
4252 {
4253 #line 527 "grammar.pgs"
4254 		 RETURN(LEXWORD_XRASTER);             }
4255 	YY_BREAK
4256 case 320:
4257 YY_USER_ACTION
4258 # line 1325 "grammar.l"
4259 {
4260 #line 528 "grammar.pgs"
4261 		 RETURN(LEXWORD_XLRASTER);            }
4262 	YY_BREAK
4263 case 321:
4264 YY_USER_ACTION
4265 # line 1328 "grammar.l"
4266 {
4267 #line 529 "grammar.pgs"
4268 		 RETURN(LEXWORD_XSCROLLBAR);          }
4269 	YY_BREAK
4270 case 322:
4271 YY_USER_ACTION
4272 # line 1331 "grammar.l"
4273 {
4274 #line 530 "grammar.pgs"
4275 		 RETURN(LEXWORD_XSPACE);              }
4276 	YY_BREAK
4277 case 323:
4278 YY_USER_ACTION
4279 # line 1334 "grammar.l"
4280 {
4281 #line 531 "grammar.pgs"
4282 		 RETURN(LEXWORD_XLSPACE);             }
4283 	YY_BREAK
4284 case 324:
4285 YY_USER_ACTION
4286 # line 1337 "grammar.l"
4287 {
4288 #line 532 "grammar.pgs"
4289 		 RETURN(LEXWORD_YBASE);               }
4290 	YY_BREAK
4291 case 325:
4292 YY_USER_ACTION
4293 # line 1340 "grammar.l"
4294 {
4295 #line 533 "grammar.pgs"
4296 		 RETURN(LEXWORD_YELLOWGREEN);         }
4297 	YY_BREAK
4298 case 326:
4299 YY_USER_ACTION
4300 # line 1343 "grammar.l"
4301 {
4302 #line 534 "grammar.pgs"
4303 		 RETURN(LEXWORD_YELLOW);              }
4304 	YY_BREAK
4305 case 327:
4306 YY_USER_ACTION
4307 # line 1346 "grammar.l"
4308 {
4309 #line 535 "grammar.pgs"
4310 		 RETURN(LEXWORD_YES);                 }
4311 	YY_BREAK
4312 case 328:
4313 YY_USER_ACTION
4314 # line 1349 "grammar.l"
4315 {
4316 #line 536 "grammar.pgs"
4317 		 RETURN(LEXWORD_YMAX);                }
4318 	YY_BREAK
4319 case 329:
4320 YY_USER_ACTION
4321 # line 1352 "grammar.l"
4322 {
4323 #line 537 "grammar.pgs"
4324 		 RETURN(LEXWORD_YRASTER);             }
4325 	YY_BREAK
4326 case 330:
4327 YY_USER_ACTION
4328 # line 1355 "grammar.l"
4329 {
4330 #line 538 "grammar.pgs"
4331 		 RETURN(LEXWORD_YSCROLLBAR);          }
4332 	YY_BREAK
4333 case 331:
4334 YY_USER_ACTION
4335 # line 1358 "grammar.l"
4336 {
4337 #line 539 "grammar.pgs"
4338 		 RETURN(LEXWORD_YSPACE);              }
4339 	YY_BREAK
4340 case 332:
4341 YY_USER_ACTION
4342 # line 1362 "grammar.l"
4343 {
4344 #line 541 "grammar.pgs"
4345 		 line_directive(yytext);       }
4346 	YY_BREAK
4347 case 333:
4348 YY_USER_ACTION
4349 # line 1365 "grammar.l"
4350 {
4351 #line 542 "grammar.pgs"
4352 		 line_directive(yytext);       }
4353 	YY_BREAK
4354 case 334:
4355 YY_USER_ACTION
4356 # line 1368 "grammar.l"
4357 {
4358 #line 543 "grammar.pgs"
4359 		 /* ignore pragma directive */ }
4360 	YY_BREAK
4361 case 335:
4362 YY_USER_ACTION
4363 # line 1372 "grammar.l"
4364 {
4365 #line 545 "grammar.pgs"
4366 		 pos_nr+=strlen(yytext); }
4367 	YY_BREAK
4368 case 336:
4369 YY_USER_ACTION
4370 # line 1375 "grammar.l"
4371 {
4372 #line 546 "grammar.pgs"
4373 		 pos_nr++;               }
4374 	YY_BREAK
4375 case 337:
4376 YY_USER_ACTION
4377 # line 1378 "grammar.l"
4378 {
4379 #line 547 "grammar.pgs"
4380 		 line_nr++; pos_nr=1;    }
4381 	YY_BREAK
4382 case 338:
4383 YY_USER_ACTION
4384 # line 1382 "grammar.l"
4385 {
4386 #line 549 "grammar.pgs"
4387 		 yylval.lnum = long_atoi(yytext);
4388 			  RETURN(LEX_INT);
4389 			}
4390 	YY_BREAK
4391 case 339:
4392 YY_USER_ACTION
4393 # line 1387 "grammar.l"
4394 {
4395 #line 552 "grammar.pgs"
4396 		 yylval.lrealnum = atof(yytext);
4397 			  RETURN(LEX_FLOAT);
4398 			}
4399 	YY_BREAK
4400 case 340:
4401 YY_USER_ACTION
4402 # line 1392 "grammar.l"
4403 {
4404 #line 555 "grammar.pgs"
4405 		 yylval.byte = yytext[1];
4406                		  RETURN(LEX_CHAR);
4407                 	}
4408 	YY_BREAK
4409 case 341:
4410 YY_USER_ACTION
4411 # line 1397 "grammar.l"
4412 {
4413 #line 558 "grammar.pgs"
4414 		 yytext[strlen(yytext)-1] = '\0';
4415 			  escape_transl(&(yytext[1]));
4416 	                  yylval.lnum = HashInsert(&(yytext[1]));
4417 			  SKIPYYTEXT;
4418                           RETURN(LEX_STRING);
4419                         }
4420 	YY_BREAK
4421 case 342:
4422 YY_USER_ACTION
4423 # line 1405 "grammar.l"
4424 {
4425 #line 564 "grammar.pgs"
4426 		 SKIPYYTEXT; }
4427 	YY_BREAK
4428 case 343:
4429 YY_USER_ACTION
4430 # line 1408 "grammar.l"
4431 {
4432 #line 565 "grammar.pgs"
4433 		 SKIPYYTEXT; }
4434 	YY_BREAK
4435 case 344:
4436 YY_USER_ACTION
4437 # line 1412 "grammar.l"
4438 {
4439 #line 567 "grammar.pgs"
4440 		 RETURN('{'); }
4441 	YY_BREAK
4442 case 345:
4443 YY_USER_ACTION
4444 # line 1415 "grammar.l"
4445 {
4446 #line 568 "grammar.pgs"
4447 		 RETURN('}'); }
4448 	YY_BREAK
4449 case 346:
4450 YY_USER_ACTION
4451 # line 1418 "grammar.l"
4452 {
4453 #line 569 "grammar.pgs"
4454 		 RETURN(':'); }
4455 	YY_BREAK
4456 case 347:
4457 YY_USER_ACTION
4458 # line 1421 "grammar.l"
4459 {
4460 #line 570 "grammar.pgs"
4461 		 RETURN('x'); }
4462 	YY_BREAK
4463 case 348:
4464 YY_USER_ACTION
4465 # line 1424 "grammar.l"
4466 {
4467 #line 571 "grammar.pgs"
4468 		 RETURN('y'); }
4469 	YY_BREAK
4470 case 349:
4471 YY_USER_ACTION
4472 # line 1427 "grammar.l"
4473 {
4474 #line 572 "grammar.pgs"
4475 		 RETURN('z'); }
4476 	YY_BREAK
4477 case 350:
4478 YY_USER_ACTION
4479 # line 1430 "grammar.l"
4480 {
4481 #line 573 "grammar.pgs"
4482 		 RETURN('*'); }
4483 	YY_BREAK
4484 case 351:
4485 YY_USER_ACTION
4486 # line 1433 "grammar.l"
4487 {
4488 #line 574 "grammar.pgs"
4489 		 RETURN('['); }
4490 	YY_BREAK
4491 case 352:
4492 YY_USER_ACTION
4493 # line 1436 "grammar.l"
4494 {
4495 #line 575 "grammar.pgs"
4496 		 RETURN(']'); }
4497 	YY_BREAK
4498 case 353:
4499 YY_USER_ACTION
4500 # line 1439 "grammar.l"
4501 {
4502 #line 576 "grammar.pgs"
4503 		 RETURN('-'); }
4504 	YY_BREAK
4505 case 354:
4506 YY_USER_ACTION
4507 # line 1445 "grammar.l"
4508 {
4509 
4510 
4511 #line 80 "/RW/esprit/users/sander/src/PARSEGEN/scan.skel"
4512 		 (void)sprintf(message,
4513 			"scanner reads unexpected %c",yytext[0]);
4514 		 yysyntaxerror(line_nr,pos_nr,message);
4515                  RETURN(' '); }
4516 	YY_BREAK
4517 case 355:
4518 YY_USER_ACTION
4519 # line 1454 "grammar.l"
4520 ECHO;
4521 	YY_BREAK
4522 case YY_STATE_EOF(INITIAL):
4523 	yyterminate();
4524 
4525 	case YY_END_OF_BUFFER:
4526 		{
4527 		/* Amount of text matched not including the EOB char. */
4528 		int yy_amount_of_matched_text = yy_cp - yytext_ptr - 1;
4529 
4530 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
4531 		*yy_cp = yy_hold_char;
4532 
4533 		if ( yy_current_buffer->yy_input_file != yyin )
4534 			{
4535 			/* This can happen if we scan a file, yywrap() returns
4536 			 * 1, and then later the user points yyin at a new
4537 			 * file to resume scanning.  We have to assure
4538 			 * consistency between yy_current_buffer and our
4539 			 * globals.  Here is the right place to do so, because
4540 			 * this is the first action (other than possibly a
4541 			 * back-up) that will match for the new input file.
4542 			 */
4543 			yy_current_buffer->yy_input_file = yyin;
4544 			yy_n_chars = yy_current_buffer->yy_n_chars;
4545 			}
4546 
4547 		/* Note that here we test for yy_c_buf_p "<=" to the position
4548 		 * of the first EOB in the buffer, since yy_c_buf_p will
4549 		 * already have been incremented past the NUL character
4550 		 * (since all states make transitions on EOB to the
4551 		 * end-of-buffer state).  Contrast this with the test
4552 		 * in input().
4553 		 */
4554 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
4555 			{ /* This was really a NUL. */
4556 			yy_state_type yy_next_state;
4557 
4558 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
4559 
4560 			yy_current_state = yy_get_previous_state();
4561 
4562 			/* Okay, we're now positioned to make the NUL
4563 			 * transition.  We couldn't have
4564 			 * yy_get_previous_state() go ahead and do it
4565 			 * for us because it doesn't know how to deal
4566 			 * with the possibility of jamming (and we don't
4567 			 * want to build jamming into it because then it
4568 			 * will run more slowly).
4569 			 */
4570 
4571 			yy_next_state = yy_try_NUL_trans( yy_current_state );
4572 
4573 			yy_bp = yytext_ptr + YY_MORE_ADJ;
4574 
4575 			if ( yy_next_state )
4576 				{
4577 				/* Consume the NUL. */
4578 				yy_cp = ++yy_c_buf_p;
4579 				yy_current_state = yy_next_state;
4580 				goto yy_match;
4581 				}
4582 
4583 			else
4584 				{
4585 				goto yy_find_action;
4586 				}
4587 			}
4588 
4589 		else switch ( yy_get_next_buffer() )
4590 			{
4591 			case EOB_ACT_END_OF_FILE:
4592 				{
4593 				yy_did_buffer_switch_on_eof = 0;
4594 
4595 				if ( yywrap() )
4596 					{
4597 					/* Note: because we've taken care in
4598 					 * yy_get_next_buffer() to have set up
4599 					 * yytext, we can now set up
4600 					 * yy_c_buf_p so that if some total
4601 					 * hoser (like flex itself) wants to
4602 					 * call the scanner after we return the
4603 					 * YY_NULL, it'll still work - another
4604 					 * YY_NULL will get returned.
4605 					 */
4606 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
4607 
4608 					yy_act = YY_STATE_EOF(YY_START);
4609 					goto do_action;
4610 					}
4611 
4612 				else
4613 					{
4614 					if ( ! yy_did_buffer_switch_on_eof )
4615 						YY_NEW_FILE;
4616 					}
4617 				break;
4618 				}
4619 
4620 			case EOB_ACT_CONTINUE_SCAN:
4621 				yy_c_buf_p =
4622 					yytext_ptr + yy_amount_of_matched_text;
4623 
4624 				yy_current_state = yy_get_previous_state();
4625 
4626 				yy_cp = yy_c_buf_p;
4627 				yy_bp = yytext_ptr + YY_MORE_ADJ;
4628 				goto yy_match;
4629 
4630 			case EOB_ACT_LAST_MATCH:
4631 				yy_c_buf_p =
4632 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
4633 
4634 				yy_current_state = yy_get_previous_state();
4635 
4636 				yy_cp = yy_c_buf_p;
4637 				yy_bp = yytext_ptr + YY_MORE_ADJ;
4638 				goto yy_find_action;
4639 			}
4640 		break;
4641 		}
4642 
4643 	default:
4644 		YY_FATAL_ERROR(
4645 			"fatal flex scanner internal error--no action found" );
4646 	} /* end of action switch */
4647 		} /* end of scanning one token */
4648 	} /* end of yylex */
4649 
4650 
4651 /* yy_get_next_buffer - try to read in a new buffer
4652  *
4653  * Returns a code representing an action:
4654  *	EOB_ACT_LAST_MATCH -
4655  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4656  *	EOB_ACT_END_OF_FILE - end of file
4657  */
4658 
yy_get_next_buffer()4659 static int yy_get_next_buffer()
4660 	{
4661 	register char *dest = yy_current_buffer->yy_ch_buf;
4662 	register char *source = yytext_ptr - 1; /* copy prev. char, too */
4663 	register int number_to_move, i;
4664 	int ret_val;
4665 
4666 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
4667 		YY_FATAL_ERROR(
4668 		"fatal flex scanner internal error--end of buffer missed" );
4669 
4670 	if ( yy_current_buffer->yy_fill_buffer == 0 )
4671 		{ /* Don't try to fill the buffer, so this is an EOF. */
4672 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
4673 			{
4674 			/* We matched a singled characater, the EOB, so
4675 			 * treat this as a final EOF.
4676 			 */
4677 			return EOB_ACT_END_OF_FILE;
4678 			}
4679 
4680 		else
4681 			{
4682 			/* We matched some text prior to the EOB, first
4683 			 * process it.
4684 			 */
4685 			return EOB_ACT_LAST_MATCH;
4686 			}
4687 		}
4688 
4689 	/* Try to read more data. */
4690 
4691 	/* First move last chars to start of buffer. */
4692 	number_to_move = yy_c_buf_p - yytext_ptr;
4693 
4694 	for ( i = 0; i < number_to_move; ++i )
4695 		*(dest++) = *(source++);
4696 
4697 	if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
4698 		/* don't do the read, it's not guaranteed to return an EOF,
4699 		 * just force an EOF
4700 		 */
4701 		yy_n_chars = 0;
4702 
4703 	else
4704 		{
4705 		int num_to_read =
4706 			yy_current_buffer->yy_buf_size - number_to_move - 1;
4707 
4708 		while ( num_to_read <= 0 )
4709 			{ /* Not enough room in the buffer - grow it. */
4710 #ifdef YY_USES_REJECT
4711 			YY_FATAL_ERROR(
4712 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
4713 #else
4714 
4715 			/* just a shorter name for the current buffer */
4716 			YY_BUFFER_STATE b = yy_current_buffer;
4717 
4718 			int yy_c_buf_p_offset = yy_c_buf_p - b->yy_ch_buf;
4719 
4720 			b->yy_buf_size *= 2;
4721 			b->yy_ch_buf = (char *)
4722 				yy_flex_realloc( (void *) b->yy_ch_buf,
4723 						 b->yy_buf_size );
4724 
4725 			if ( ! b->yy_ch_buf )
4726 				YY_FATAL_ERROR(
4727 				"fatal error - scanner input buffer overflow" );
4728 
4729 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
4730 
4731 			num_to_read = yy_current_buffer->yy_buf_size -
4732 						number_to_move - 1;
4733 #endif
4734 			}
4735 
4736 		if ( num_to_read > YY_READ_BUF_SIZE )
4737 			num_to_read = YY_READ_BUF_SIZE;
4738 
4739 		/* Read in more data. */
4740 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
4741 			yy_n_chars, num_to_read );
4742 		}
4743 
4744 	if ( yy_n_chars == 0 )
4745 		{
4746 		if ( number_to_move - YY_MORE_ADJ == 1 )
4747 			{
4748 			ret_val = EOB_ACT_END_OF_FILE;
4749 			yyrestart( yyin );
4750 			}
4751 
4752 		else
4753 			{
4754 			ret_val = EOB_ACT_LAST_MATCH;
4755 			yy_current_buffer->yy_eof_status = EOF_PENDING;
4756 			}
4757 		}
4758 
4759 	else
4760 		ret_val = EOB_ACT_CONTINUE_SCAN;
4761 
4762 	yy_n_chars += number_to_move;
4763 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
4764 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
4765 
4766 	/* yytext begins at the second character in yy_ch_buf; the first
4767 	 * character is the one which preceded it before reading in the latest
4768 	 * buffer; it needs to be kept around in case it's a newline, so
4769 	 * yy_get_previous_state() will have with '^' rules active.
4770 	 */
4771 
4772 	yytext_ptr = &yy_current_buffer->yy_ch_buf[1];
4773 
4774 	return ret_val;
4775 	}
4776 
4777 
4778 /* yy_get_previous_state - get the state just before the EOB char was reached */
4779 
yy_get_previous_state()4780 static yy_state_type yy_get_previous_state()
4781 	{
4782 	register yy_state_type yy_current_state;
4783 	register char *yy_cp;
4784 
4785 	yy_current_state = yy_start;
4786 
4787 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
4788 		{
4789 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4790 		if ( yy_accept[yy_current_state] )
4791 			{
4792 			yy_last_accepting_state = yy_current_state;
4793 			yy_last_accepting_cpos = yy_cp;
4794 			}
4795 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4796 			{
4797 			yy_current_state = (int) yy_def[yy_current_state];
4798 			if ( yy_current_state >= 2052 )
4799 				yy_c = yy_meta[(unsigned int) yy_c];
4800 			}
4801 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4802 		}
4803 
4804 	return yy_current_state;
4805 	}
4806 
4807 
4808 /* yy_try_NUL_trans - try to make a transition on the NUL character
4809  *
4810  * synopsis
4811  *	next_state = yy_try_NUL_trans( current_state );
4812  */
4813 
4814 #ifdef YY_USE_PROTOS
yy_try_NUL_trans(yy_state_type yy_current_state)4815 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
4816 #else
4817 static yy_state_type yy_try_NUL_trans( yy_current_state )
4818 yy_state_type yy_current_state;
4819 #endif
4820 	{
4821 	register int yy_is_jam;
4822 	register char *yy_cp = yy_c_buf_p;
4823 
4824 	register YY_CHAR yy_c = 1;
4825 	if ( yy_accept[yy_current_state] )
4826 		{
4827 		yy_last_accepting_state = yy_current_state;
4828 		yy_last_accepting_cpos = yy_cp;
4829 		}
4830 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4831 		{
4832 		yy_current_state = (int) yy_def[yy_current_state];
4833 		if ( yy_current_state >= 2052 )
4834 			yy_c = yy_meta[(unsigned int) yy_c];
4835 		}
4836 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4837 	yy_is_jam = (yy_current_state == 2051);
4838 
4839 	return yy_is_jam ? 0 : yy_current_state;
4840 	}
4841 
4842 
4843 #ifdef YY_USE_PROTOS
yyunput(int c,register char * yy_bp)4844 static void yyunput( int c, register char *yy_bp )
4845 #else
4846 static void yyunput( c, yy_bp )
4847 int c;
4848 register char *yy_bp;
4849 #endif
4850 	{
4851 	register char *yy_cp = yy_c_buf_p;
4852 
4853 	/* undo effects of setting up yytext */
4854 	*yy_cp = yy_hold_char;
4855 
4856 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
4857 		{ /* need to shift things up to make room */
4858 		/* +2 for EOB chars. */
4859 		register int number_to_move = yy_n_chars + 2;
4860 		register char *dest = &yy_current_buffer->yy_ch_buf[
4861 					yy_current_buffer->yy_buf_size + 2];
4862 		register char *source =
4863 				&yy_current_buffer->yy_ch_buf[number_to_move];
4864 
4865 		while ( source > yy_current_buffer->yy_ch_buf )
4866 			*--dest = *--source;
4867 
4868 		yy_cp += dest - source;
4869 		yy_bp += dest - source;
4870 		yy_n_chars = yy_current_buffer->yy_buf_size;
4871 
4872 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
4873 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
4874 		}
4875 
4876 	if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
4877 		yy_cp[-2] = '\n';
4878 
4879 	*--yy_cp = (char) c;
4880 
4881 
4882 	/* Note: the formal parameter *must* be called "yy_bp" for this
4883 	 * macro to now work correctly.
4884 	 */
4885 	YY_DO_BEFORE_ACTION; /* set up yytext again */
4886 	}
4887 
4888 
4889 #ifdef __cplusplus
yyinput()4890 static int yyinput()
4891 #else
4892 static int input()
4893 #endif
4894 	{
4895 	int c;
4896 
4897 	*yy_c_buf_p = yy_hold_char;
4898 
4899 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
4900 		{
4901 		/* yy_c_buf_p now points to the character we want to return.
4902 		 * If this occurs *before* the EOB characters, then it's a
4903 		 * valid NUL; if not, then we've hit the end of the buffer.
4904 		 */
4905 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
4906 			/* This was really a NUL. */
4907 			*yy_c_buf_p = '\0';
4908 
4909 		else
4910 			{ /* need more input */
4911 			yytext_ptr = yy_c_buf_p;
4912 			++yy_c_buf_p;
4913 
4914 			switch ( yy_get_next_buffer() )
4915 				{
4916 				case EOB_ACT_END_OF_FILE:
4917 					{
4918 					if ( yywrap() )
4919 						{
4920 						yy_c_buf_p =
4921 						yytext_ptr + YY_MORE_ADJ;
4922 						return EOF;
4923 						}
4924 
4925 					YY_NEW_FILE;
4926 #ifdef __cplusplus
4927 					return yyinput();
4928 #else
4929 					return input();
4930 #endif
4931 					}
4932 
4933 				case EOB_ACT_CONTINUE_SCAN:
4934 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
4935 					break;
4936 
4937 				case EOB_ACT_LAST_MATCH:
4938 #ifdef __cplusplus
4939 					YY_FATAL_ERROR(
4940 					"unexpected last match in yyinput()" );
4941 #else
4942 					YY_FATAL_ERROR(
4943 					"unexpected last match in input()" );
4944 #endif
4945 				}
4946 			}
4947 		}
4948 
4949 	c = *yy_c_buf_p;
4950 	*yy_c_buf_p = '\0';	/* preserve yytext */
4951 	yy_hold_char = *++yy_c_buf_p;
4952 
4953 	return c;
4954 	}
4955 
4956 
4957 #ifdef YY_USE_PROTOS
yyrestart(FILE * input_file)4958 void yyrestart( FILE *input_file )
4959 #else
4960 void yyrestart( input_file )
4961 FILE *input_file;
4962 #endif
4963 	{
4964 	if ( ! yy_current_buffer )
4965 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
4966 
4967 	yy_init_buffer( yy_current_buffer, input_file );
4968 	yy_load_buffer_state();
4969 	}
4970 
4971 
4972 #ifdef YY_USE_PROTOS
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)4973 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
4974 #else
4975 void yy_switch_to_buffer( new_buffer )
4976 YY_BUFFER_STATE new_buffer;
4977 #endif
4978 	{
4979 	if ( yy_current_buffer == new_buffer )
4980 		return;
4981 
4982 	if ( yy_current_buffer )
4983 		{
4984 		/* Flush out information for old buffer. */
4985 		*yy_c_buf_p = yy_hold_char;
4986 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
4987 		yy_current_buffer->yy_n_chars = yy_n_chars;
4988 		}
4989 
4990 	yy_current_buffer = new_buffer;
4991 	yy_load_buffer_state();
4992 
4993 	/* We don't actually know whether we did this switch during
4994 	 * EOF (yywrap()) processing, but the only time this flag
4995 	 * is looked at is after yywrap() is called, so it's safe
4996 	 * to go ahead and always set it.
4997 	 */
4998 	yy_did_buffer_switch_on_eof = 1;
4999 	}
5000 
5001 
5002 #ifdef YY_USE_PROTOS
yy_load_buffer_state(void)5003 void yy_load_buffer_state( void )
5004 #else
5005 void yy_load_buffer_state()
5006 #endif
5007 	{
5008 	yy_n_chars = yy_current_buffer->yy_n_chars;
5009 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
5010 	yyin = yy_current_buffer->yy_input_file;
5011 	yy_hold_char = *yy_c_buf_p;
5012 	}
5013 
5014 
5015 #ifdef YY_USE_PROTOS
yy_create_buffer(FILE * file,int size)5016 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
5017 #else
5018 YY_BUFFER_STATE yy_create_buffer( file, size )
5019 FILE *file;
5020 int size;
5021 #endif
5022 	{
5023 	YY_BUFFER_STATE b;
5024 
5025 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
5026 
5027 	if ( ! b )
5028 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5029 
5030 	b->yy_buf_size = size;
5031 
5032 	/* yy_ch_buf has to be 2 characters longer than the size given because
5033 	 * we need to put in 2 end-of-buffer characters.
5034 	 */
5035 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
5036 
5037 	if ( ! b->yy_ch_buf )
5038 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
5039 
5040 	yy_init_buffer( b, file );
5041 
5042 	return b;
5043 	}
5044 
5045 
5046 #ifdef YY_USE_PROTOS
yy_delete_buffer(YY_BUFFER_STATE b)5047 void yy_delete_buffer( YY_BUFFER_STATE b )
5048 #else
5049 void yy_delete_buffer( b )
5050 YY_BUFFER_STATE b;
5051 #endif
5052 	{
5053 	if ( b == yy_current_buffer )
5054 		yy_current_buffer = (YY_BUFFER_STATE) 0;
5055 
5056 	yy_flex_free( (void *) b->yy_ch_buf );
5057 	yy_flex_free( (void *) b );
5058 	}
5059 
5060 
5061 #ifdef YY_USE_PROTOS
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)5062 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
5063 #else
5064 void yy_init_buffer( b, file )
5065 YY_BUFFER_STATE b;
5066 FILE *file;
5067 #endif
5068 	{
5069 	b->yy_input_file = file;
5070 
5071 	/* We put in the '\n' and start reading from [1] so that an
5072 	 * initial match-at-newline will be true.
5073 	 */
5074 
5075 	b->yy_ch_buf[0] = '\n';
5076 	b->yy_n_chars = 1;
5077 
5078 	/* We always need two end-of-buffer characters.  The first causes
5079 	 * a transition to the end-of-buffer state.  The second causes
5080 	 * a jam in that state.
5081 	 */
5082 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
5083 	b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
5084 
5085 	b->yy_buf_pos = &b->yy_ch_buf[1];
5086 
5087 	b->yy_is_interactive = file ? isatty( fileno(file) ) : 0;
5088 
5089 	b->yy_fill_buffer = 1;
5090 
5091 	b->yy_eof_status = EOF_NOT_SEEN;
5092 	}
5093 
5094 
5095 #ifdef YY_USE_PROTOS
yy_push_state(int new_state)5096 static void yy_push_state( int new_state )
5097 #else
5098 static void yy_push_state( new_state )
5099 int new_state;
5100 #endif
5101 	{
5102 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
5103 		{
5104 		int new_size;
5105 
5106 		yy_start_stack_depth += YY_START_STACK_INCR;
5107 		new_size = yy_start_stack_depth * sizeof( int );
5108 
5109 		if ( ! yy_start_stack )
5110 			yy_start_stack = (int *) yy_flex_alloc( new_size );
5111 
5112 		else
5113 			yy_start_stack = (int *) yy_flex_realloc(
5114 					(void *) yy_start_stack, new_size );
5115 
5116 		if ( ! yy_start_stack )
5117 			YY_FATAL_ERROR(
5118 			"out of memory expanding start-condition stack" );
5119 		}
5120 
5121 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
5122 
5123 	BEGIN(new_state);
5124 	}
5125 
5126 
yy_pop_state()5127 static void yy_pop_state()
5128 	{
5129 	if ( --yy_start_stack_ptr < 0 )
5130 		YY_FATAL_ERROR( "start-condition stack underflow" );
5131 
5132 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
5133 	}
5134 
5135 
yy_top_state()5136 static int yy_top_state()
5137 	{
5138 	return yy_start_stack[yy_start_stack_ptr - 1];
5139 	}
5140 
5141 
5142 #ifdef YY_USE_PROTOS
yy_fatal_error(const char msg[])5143 static void yy_fatal_error( const char msg[] )
5144 #else
5145 static void yy_fatal_error( msg )
5146 char msg[];
5147 #endif
5148 	{
5149 	(void) fprintf( stderr, "%s\n", msg );
5150 	exit( 1 );
5151 	}
5152 
5153 
5154 
5155 /* Redefine yyless() so it works in section 3 code. */
5156 
5157 #undef yyless
5158 #define yyless(n) \
5159 	do \
5160 		{ \
5161 		/* Undo effects of setting up yytext. */ \
5162 		yytext[yyleng] = yy_hold_char; \
5163 		yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
5164 		yy_hold_char = *yy_c_buf_p; \
5165 		*yy_c_buf_p = '\0'; \
5166 		yyleng = n; \
5167 		} \
5168 	while ( 0 )
5169 
5170 
5171 /* Internal utility routines. */
5172 
5173 #ifndef yytext_ptr
5174 #ifdef YY_USE_PROTOS
yy_flex_strcpy(char * s1,const char * s2)5175 static void yy_flex_strcpy( char *s1, const char *s2 )
5176 #else
5177 static void yy_flex_strcpy( s1, s2 )
5178 char *s1;
5179 const char *s2;
5180 #endif
5181 	{
5182 	while ( (*(s1++) = *(s2++)) )
5183 		;
5184 	}
5185 #endif
5186 
5187 
5188 #ifdef YY_USE_PROTOS
yy_flex_alloc(unsigned int size)5189 static void *yy_flex_alloc( unsigned int size )
5190 #else
5191 static void *yy_flex_alloc( size )
5192 unsigned int size;
5193 #endif
5194 	{
5195 	return (void *) malloc( size );
5196 	}
5197 
5198 #ifdef YY_USE_PROTOS
yy_flex_realloc(void * ptr,unsigned int size)5199 static void *yy_flex_realloc( void *ptr, unsigned int size )
5200 #else
5201 static void *yy_flex_realloc( ptr, size )
5202 void *ptr;
5203 unsigned int size;
5204 #endif
5205 	{
5206 	return (void *) realloc( ptr, size );
5207 	}
5208 
5209 #ifdef YY_USE_PROTOS
yy_flex_free(void * ptr)5210 static void yy_flex_free( void *ptr )
5211 #else
5212 static void yy_flex_free( ptr )
5213 void *ptr;
5214 #endif
5215 	{
5216 	free( ptr );
5217 	}
5218 # line 1454 "grammar.l"
5219 
5220 
5221 
5222 
5223 #line 88 "/RW/esprit/users/sander/src/PARSEGEN/scan.skel"
5224 
5225 /*--------------------------------------------------------------------*/
5226 /*   Initialize scanner                                               */
5227 /*--------------------------------------------------------------------*/
5228 
5229 #ifdef ANSI_C
init_lex(void)5230 void init_lex(void)
5231 #else
5232 void init_lex()
5233 #endif
5234 {
5235 	yy_init = 1;
5236 }
5237 
5238 
5239 
5240 #line 1 "/RW/esprit/users/sander/src/PARSEGEN/stdtc.skel"
5241 
5242 /*--------------------------------------------------------------------*/
5243 /*  Standard Hash Table Routines                                      */
5244 /*--------------------------------------------------------------------*/
5245 
5246 #ifdef HASHGENSTD
5247 
5248 #ifndef lint
5249 static char *stdtc_id_string="$Id: stdtc.skel,v 1.7 1994/11/25 17:23:13 sander Exp sander $";
5250 #endif
5251 
5252 
5253 #include <stdio.h>
5254 #include <string.h>
5255 #include <stdlib.h>
5256 
5257 /* Global Variables */
5258 /*------------------*/
5259 
5260 static char **decode = NULL;
5261 long   table_size = 0L;
5262 
5263 /*--------------------------------------------------------------------*/
5264 /* Fatal error: exit with message                                     */
5265 /*--------------------------------------------------------------------*/
5266 
5267 #ifdef ANSI_C
fatal_error(char * message)5268 static void fatal_error(char *message)
5269 #else
5270 static void fatal_error(message)
5271 char *message;
5272 #endif
5273 {
5274 	(void)fprintf(stderr,"Fatal error: %s !\n",message);
5275 	(void)fprintf(stderr,"Aborted !\n");
5276 	exit(-1);
5277 }
5278 
5279 
5280 /*--------------------------------------------------------------------*/
5281 /* Memory allocation for single strings                               */
5282 /*--------------------------------------------------------------------*/
5283 
5284 #ifndef ALIGN
5285 #define ALIGN 8
5286 #define IALIGN (ALIGN-1)
5287 #endif
5288 
5289 #ifndef STRINGBLOCKSIZE
5290 #define STRINGBLOCKSIZE 5000
5291 #endif
5292 
5293 
5294 #ifndef PARSEGENSTD
5295 
5296 /* If we include already the standard parser library, this is not
5297  * necessary
5298  */
5299 
5300 
5301 static char *parseheap = (char *)0;             /* the heap */
5302 static char *parseheapstart;                    /* the base */
5303 static char *parseheaptop;                      /* the top  */
5304 static char *parseheapend;                      /* the end  */
5305 static int  parseheapsize = STRINGBLOCKSIZE; /* the size of one block */
5306 
5307 
5308 #ifdef ANSI_C
alloc_block(void)5309 static void alloc_block(void)
5310 #else
5311 static void alloc_block()
5312 #endif
5313 {
5314         char * help, *help2;
5315 
5316 	help =(char *)malloc(parseheapsize*sizeof(long));
5317         if (!help) fatal_error("memory exhausted");
5318 	help2  = (char **)help;
5319 	*help2 = (char *)parseheap;
5320 	parseheap = help;
5321 	parseheapstart = parseheaptop =
5322 		(char *)((long)parseheap + (long)sizeof(char *));
5323 	parseheapend = parseheap;
5324 	parseheapend += (parseheapsize-2);
5325         if ((long)parseheaptop&IALIGN)
5326 		parseheaptop = (char *)
5327 			(((long)parseheaptop+(long)IALIGN)&(long)(~IALIGN));
5328 }
5329 
5330 
5331 /*  allocate x bytes */
5332 
5333 #ifdef ANSI_C
ParseMalloc(int x)5334 static char * ParseMalloc(int x)
5335 #else
5336 static char * ParseMalloc(x)
5337 int x;
5338 #endif
5339 {
5340         char * help;
5341         int  y;
5342 
5343 	if (!parseheap) alloc_block();
5344 
5345         y = x;
5346         if (y&IALIGN) y = (y+IALIGN)&(~IALIGN);
5347 
5348         help = parseheaptop;
5349         parseheaptop = (char *)((long)parseheaptop+(long)y);
5350 
5351         if (parseheaptop > parseheapend) {
5352 
5353 		/* heap too small -> allocate new heap block */
5354 
5355 		alloc_block();
5356                 help = parseheaptop;
5357                 parseheaptop = (char *)((long)parseheaptop+(long)y);
5358         	if (parseheaptop > parseheapend)
5359 			fatal_error("string node too large");
5360         }
5361         return (help);
5362 }
5363 
5364 
5365 /* Global: allocate x bytes */
5366 
5367 #ifdef ANSI_C
StringHeapMalloc(int x)5368 char *StringHeapMalloc(int x)
5369 #else
5370 char *StringHeapMalloc(x)
5371 int x;
5372 #endif
5373 {
5374 	return(ParseMalloc(x));
5375 }
5376 
5377 
5378 /* global deallocate the complete syntax tree heap */
5379 
5380 #ifdef ANSI_C
StringHeapFree(void)5381 void StringHeapFree(void)
5382 #else
5383 void StringHeapFree()
5384 #endif
5385 {
5386         char *help, help2;
5387 
5388         help = parseheap;
5389         while (help) {
5390                 help2 = *(char **)help;
5391                 (void)free(help);
5392                 help = help2;
5393         }
5394 
5395         parseheap = (char *)0;
5396 }
5397 
5398 #endif /* PARSEGENSTD */
5399 
5400 
5401 /*--------------------------------------------------------------------*/
5402 /* Memory allocation for decode table and hash table                  */
5403 /*--------------------------------------------------------------------*/
5404 
5405 #ifndef hash_size
5406 #define hash_size 211
5407 #endif
5408 #ifndef hashtable_size
5409 #define hashtable_size 10000L
5410 #endif
5411 
5412 /* We use a hash table with linked lists */
5413 
5414 typedef struct hash_node {
5415         long              num;
5416         struct hash_node *next;
5417 } *hashentry;
5418 
5419 
5420 /* The hash table */
5421 
5422 static hashentry *hashtable = NULL;
5423 static long hashtop = 1;
5424 
5425 #ifdef ANSI_C
init_hash(void)5426 static void init_hash(void)
5427 #else
5428 static void init_hash()
5429 #endif
5430 {
5431 	char *h;
5432 
5433         if (!hashtable) {
5434 
5435 		/* no hash table present -> allocate table */
5436 
5437                 hashtable  = (hashentry *)
5438 				calloc((size_t) (hash_size+1),
5439                 				 sizeof(hashentry));
5440         	if (!hashtable) fatal_error("memory exhausted");
5441 	}
5442 
5443         if (!decode) {
5444 
5445 		/* no decode table present -> allocate table */
5446 
5447 		hashtop = 1;
5448 		table_size = hashtable_size;
5449                 decode   = (char **)
5450 				calloc((size_t) (table_size+1L),
5451                    				sizeof(char *));
5452 	        if (!decode) fatal_error("memory exhausted");
5453                 h = ParseMalloc(strlen("$!+-#Start of Hash#+-!$")+1);
5454                 decode[0]    = strcpy(h,"$!+-#Start of Hash#+-!$");
5455 	}
5456 }
5457 
5458 
5459 #ifdef ANSI_C
increase_decode(void)5460 static void increase_decode(void)
5461 #else
5462 static void increase_decode()
5463 #endif
5464 {
5465 	char **help,**a,**b;
5466 	long   mysize, j;
5467 
5468 	mysize = table_size * 2L;
5469 	help = (char **) calloc((size_t) (mysize+1), sizeof(char *));
5470 	if (!help) fatal_error("memory exhausted");
5471 
5472 	a = help;
5473 	b = decode;
5474 	for (j=0; j<table_size; j++) *a++ = *b++;
5475 	if (decode) (void)free((char *)decode);
5476 
5477 	decode   = help;
5478 	table_size = mysize;
5479 }
5480 
5481 #ifdef ANSI_C
FreeHash(void)5482 void FreeHash(void)
5483 #else
5484 void FreeHash()
5485 #endif
5486 {
5487 	if (decode) (void)free((char *)decode);
5488 	decode   = (char **)0;
5489 	if (hashtable) (void)free((char *)hashtable);
5490         hashtable  = (hashentry *)0;
5491 }
5492 
5493 
5494 /*--------------------------------------------------------------------*/
5495 /* Hash table for identifers and strings                              */
5496 /*--------------------------------------------------------------------*/
5497 
5498 
5499 /* the hash function */
5500 
5501 #ifdef ANSI_C
hash(register char * string)5502 static int hash(register char *string)
5503 #else
5504 static int hash(string)
5505 char *string;
5506 #endif
5507 {
5508         register int   hashval = 0 ;
5509         register char *s = string;
5510 
5511         for(hashval=0; *s != '\0';)
5512                 hashval = (10*hashval - 48 + *s++) % hash_size;
5513         hashval = ((hashval<0 ) ? -hashval : hashval);
5514 
5515         return(hashval % hash_size);
5516         /* Modulo calculation because of table range */
5517 }
5518 
5519 
5520 
5521 /*--------------------------------------------------------------------*/
5522 /* Hash table: visible from outside                                   */
5523 /*--------------------------------------------------------------------*/
5524 
5525 #ifdef ANSI_C
HashInsert(register char * s)5526 long HashInsert(register char *s)
5527 #else
5528 long HashInsert(s)
5529 char *s;
5530 #endif
5531 {
5532         register  hashentry new_node;
5533         register  int       hashval;
5534         register  long      look;
5535         char *h;
5536 
5537         if (!hashtable) init_hash();
5538 
5539         hashval  = hash(s);
5540 	new_node = hashtable[hashval];
5541 	look = -1L;
5542         while (new_node != NULL) {
5543                 if ( strcmp(s,decode[new_node->num]) == 0L) {
5544 			look = new_node->num;
5545 			break;
5546 		}
5547                 new_node=new_node->next;
5548         }
5549 
5550         if (look == -1L) {
5551                 if (hashtop == table_size-1) increase_decode();
5552                 new_node = (hashentry)ParseMalloc(sizeof(struct hash_node));
5553                 look = hashtop++;
5554                 new_node->num  = look;
5555                 new_node->next = hashtable[hashval];
5556 
5557                 h = ParseMalloc(strlen(s)+1);
5558                 decode[look]    = strcpy(h,s);
5559                 hashtable[hashval] = new_node;
5560         }
5561         return(look);
5562 }
5563 
5564 #ifdef ANSI_C
HashTableSize(void)5565 long HashTableSize(void)
5566 #else
5567 long HashTableSize()
5568 #endif
5569 {
5570         if (!hashtable) init_hash();
5571 	return(hashtop);
5572 }
5573 
5574 #ifdef ANSI_C
Decode(long x)5575 char *Decode(long x)
5576 #else
5577 char *Decode(x)
5578 long x;
5579 #endif
5580 {
5581         if (!hashtable) init_hash();
5582 	if (x<0)       return(decode[0]);
5583 	if (x<hashtop) return(decode[x]);
5584 	return(decode[0]);
5585 }
5586 
5587 
5588 #endif /* HASHGENSTD */
5589 
5590 /*--------------------------------------------------------------------*/
5591 
5592 
5593 
5594 
5595 #line 580 "grammar.pgs"
5596