1 /* $OpenBSD: flex.skl,v 1.10 2007/01/26 14:38:19 tsi Exp $ */
3 /* A lexical scanner generated by flex */
5 /* Scanner skeleton version:
6 * $Header: /home/cvs/courtesan/sudo/Attic/lex.yy.c,v 1.46.2.11 2008/06/26 11:53:49 millert Exp $
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
17 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
30 /* Use prototypes in function declarations. */
33 /* The "const" storage-class-modifier is valid. */
36 #else /* ! __cplusplus */
44 #endif /* ! __cplusplus */
63 #define YY_PROTO(proto) proto
65 #define YY_PROTO(proto) ()
68 /* Returned upon end-of-file. */
71 /* Promotes a possibly negative, possibly signed char to an unsigned
72 * integer for use as an array index. If the signed char is negative,
73 * we want to instead treat it as an 8-bit unsigned char, hence the
76 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
78 /* Enter a start condition. This macro really ought to take a parameter,
79 * but we do it the disgusting crufty way forced on us by the ()-less
80 * definition of BEGIN.
82 #define BEGIN yy_start = 1 + 2 *
84 /* Translate the current start state into a value that can be later handed
85 * to BEGIN to return to the state. The YYSTATE alias is for lex
88 #define YY_START ((yy_start - 1) / 2)
89 #define YYSTATE YY_START
91 /* Action number for EOF rule of a given start state. */
92 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
94 /* Special action meaning "start processing a new file". */
95 #define YY_NEW_FILE yyrestart( yyin )
97 #define YY_END_OF_BUFFER_CHAR 0
99 /* Size of default input buffer. */
100 #define YY_BUF_SIZE 16384
102 typedef struct yy_buffer_state *YY_BUFFER_STATE;
105 extern FILE *yyin, *yyout;
107 #define EOB_ACT_CONTINUE_SCAN 0
108 #define EOB_ACT_END_OF_FILE 1
109 #define EOB_ACT_LAST_MATCH 2
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:
115 * if ( condition_holds )
118 * do_something_else();
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.
125 /* Return all but the first 'n' matched characters back to the input stream. */
130 /* Undo effects of setting up yytext. */ \
131 *yy_cp = yy_hold_char; \
132 YY_RESTORE_YY_MORE_OFFSET \
133 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
134 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
138 #define unput(c) yyunput( c, yytext_ptr )
140 /* The following is because we cannot portably get our hands on size_t
141 * (without autoconf's help, which isn't available because we want
142 * flex-generated scanners to compile on their own).
144 typedef unsigned int yy_size_t;
147 struct yy_buffer_state
151 char *yy_ch_buf; /* input buffer */
152 char *yy_buf_pos; /* current position in input buffer */
154 /* Size of input buffer in bytes, not including room for EOB
157 yy_size_t yy_buf_size;
159 /* Number of characters read into yy_ch_buf, not including EOB
164 /* Whether we "own" the buffer - i.e., we know we created it,
165 * and can realloc() it to grow it, and should free() it to
168 int yy_is_our_buffer;
170 /* Whether this is an "interactive" input source; if so, and
171 * if we're using stdio for input, then we want to use getc()
172 * instead of fread(), to make sure we stop fetching input after
175 int yy_is_interactive;
177 /* Whether we're considered to be at the beginning of a line.
178 * If so, '^' rules will be active on the next match, otherwise
183 /* Whether to try to fill the input buffer when we reach the
188 int yy_buffer_status;
189 #define YY_BUFFER_NEW 0
190 #define YY_BUFFER_NORMAL 1
191 /* When an EOF's been seen but there's still some text to process
192 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
193 * shouldn't try reading from the input source any more. We might
194 * still have a bunch of tokens to match, though, because of
195 * possible backing-up.
197 * When we actually see the EOF, we change the status to "new"
198 * (via yyrestart()), so that the user can continue scanning by
199 * just pointing yyin at a new input file.
201 #define YY_BUFFER_EOF_PENDING 2
204 static YY_BUFFER_STATE yy_current_buffer = 0;
206 /* We provide macros for accessing buffer states in case in the
207 * future we want to put the buffer states in a more general
210 #define YY_CURRENT_BUFFER yy_current_buffer
213 /* yy_hold_char holds the character lost when yytext is formed. */
214 static char yy_hold_char;
216 static int yy_n_chars; /* number of characters read into yy_ch_buf */
221 /* Points to current character in buffer. */
222 static char *yy_c_buf_p = (char *) 0;
223 static int yy_init = 1; /* whether we need to initialize */
224 static int yy_start = 0; /* start state number */
226 /* Flag which is used to allow yywrap()'s to do buffer switches
227 * instead of setting up a fresh yyin. A bit of a hack ...
229 static int yy_did_buffer_switch_on_eof;
231 void yyrestart YY_PROTO(( FILE *input_file ));
233 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
234 void yy_load_buffer_state YY_PROTO(( void ));
235 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
236 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
237 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
238 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
239 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
241 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
242 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
243 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
245 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
246 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
247 static void yy_flex_free YY_PROTO(( void * ));
249 #define yy_new_buffer yy_create_buffer
251 #define yy_set_interactive(is_interactive) \
253 if ( ! yy_current_buffer ) \
254 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
255 yy_current_buffer->yy_is_interactive = is_interactive; \
258 #define yy_set_bol(at_bol) \
260 if ( ! yy_current_buffer ) \
261 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
262 yy_current_buffer->yy_at_bol = at_bol; \
265 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
267 typedef unsigned char YY_CHAR;
268 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
269 typedef int yy_state_type;
271 #define yytext_ptr yytext
273 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
274 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
275 static int yy_get_next_buffer YY_PROTO(( void ));
276 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
278 /* Done after the current pattern has been matched and before the
279 * corresponding action - sets up yytext.
281 #define YY_DO_BEFORE_ACTION \
282 yytext_ptr = yy_bp; \
283 yyleng = (int) (yy_cp - yy_bp); \
284 yy_hold_char = *yy_cp; \
288 #define YY_NUM_RULES 48
289 #define YY_END_OF_BUFFER 49
290 static yyconst short int yy_accept[610] =
292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293 0, 0, 0, 0, 49, 38, 44, 43, 42, 47,
294 38, 31, 47, 38, 39, 38, 38, 38, 38, 41,
295 40, 32, 32, 32, 32, 32, 32, 47, 38, 38,
296 32, 32, 32, 32, 32, 33, 47, 33, 35, 33,
297 33, 33, 33, 33, 32, 32, 32, 32, 32, 32,
298 47, 33, 33, 1, 16, 15, 16, 15, 15, 47,
299 47, 2, 8, 7, 8, 3, 8, 4, 47, 12,
300 12, 12, 10, 11, 38, 0, 44, 42, 0, 46,
301 26, 0, 25, 0, 37, 37, 0, 38, 38, 0,
303 38, 38, 38, 38, 0, 29, 32, 32, 32, 32,
304 32, 32, 38, 45, 38, 38, 38, 38, 38, 38,
305 33, 0, 0, 33, 26, 0, 25, 0, 33, 0,
306 33, 33, 33, 33, 33, 33, 32, 32, 32, 32,
307 32, 32, 33, 33, 1, 16, 16, 14, 13, 14,
308 0, 2, 8, 0, 5, 6, 8, 8, 12, 0,
309 12, 12, 0, 9, 0, 38, 38, 38, 38, 38,
310 0, 0, 29, 29, 32, 32, 32, 32, 32, 32,
311 32, 38, 38, 38, 38, 38, 38, 0, 34, 33,
312 33, 33, 33, 33, 32, 32, 32, 32, 32, 32,
314 32, 33, 9, 38, 38, 38, 38, 38, 38, 0,
315 30, 30, 30, 0, 0, 29, 29, 29, 29, 29,
316 29, 29, 32, 32, 32, 32, 32, 32, 32, 38,
317 38, 38, 38, 33, 33, 33, 33, 33, 33, 32,
318 32, 32, 32, 32, 32, 32, 33, 38, 38, 38,
319 0, 0, 30, 30, 30, 0, 29, 29, 0, 29,
320 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
321 0, 22, 32, 32, 32, 32, 32, 38, 38, 38,
322 33, 33, 33, 32, 32, 32, 32, 32, 33, 38,
323 38, 38, 38, 38, 0, 30, 0, 29, 29, 29,
325 0, 0, 0, 29, 29, 29, 29, 29, 29, 29,
326 29, 29, 29, 29, 29, 29, 32, 32, 32, 32,
327 32, 38, 38, 38, 33, 33, 33, 33, 33, 32,
328 32, 32, 32, 32, 33, 27, 27, 27, 0, 0,
329 29, 29, 29, 29, 29, 29, 29, 0, 0, 0,
330 0, 0, 29, 29, 29, 29, 29, 29, 29, 29,
331 29, 29, 29, 29, 29, 29, 0, 21, 32, 32,
332 0, 20, 0, 23, 38, 38, 38, 27, 27, 27,
333 32, 32, 33, 38, 27, 27, 27, 27, 0, 29,
334 0, 29, 29, 29, 29, 29, 29, 29, 29, 29,
336 29, 29, 0, 0, 0, 29, 29, 29, 29, 29,
337 29, 29, 29, 29, 29, 29, 29, 29, 32, 32,
338 36, 38, 17, 33, 27, 27, 27, 27, 32, 32,
339 33, 38, 28, 28, 28, 29, 0, 0, 0, 29,
340 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
341 29, 29, 0, 0, 0, 0, 0, 29, 29, 29,
342 29, 29, 29, 29, 29, 0, 19, 0, 24, 38,
343 17, 33, 28, 28, 28, 38, 38, 28, 28, 28,
344 28, 28, 0, 0, 0, 0, 0, 29, 29, 29,
345 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
347 29, 29, 29, 29, 29, 29, 29, 18, 33, 33,
348 28, 28, 28, 28, 28, 38, 38, 38, 28, 28,
349 0, 0, 0, 29, 29, 29, 29, 29, 29, 29,
350 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
351 29, 33, 33, 33, 28, 28, 38, 38, 38, 38,
352 38, 0, 0, 0, 0, 0, 29, 29, 29, 29,
353 29, 29, 29, 29, 33, 33, 33, 33, 33, 38,
354 38, 38, 29, 29, 29, 29, 29, 29, 33, 33,
355 33, 38, 38, 38, 38, 38, 29, 29, 29, 29,
356 29, 33, 33, 33, 33, 33, 27, 27, 27, 27,
358 27, 27, 27, 27, 27, 27, 27, 27, 0
361 static yyconst int yy_ec[256] =
363 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
364 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
365 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
366 1, 2, 4, 5, 6, 1, 7, 1, 1, 8,
367 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
368 19, 20, 21, 22, 22, 22, 23, 24, 1, 1,
369 25, 26, 10, 26, 27, 28, 29, 30, 31, 28,
370 32, 33, 32, 32, 32, 32, 32, 34, 35, 36,
371 32, 37, 38, 39, 40, 41, 42, 43, 32, 32,
372 10, 44, 10, 1, 45, 1, 46, 47, 47, 48,
374 49, 50, 51, 51, 52, 51, 51, 53, 54, 55,
375 56, 51, 51, 57, 58, 59, 60, 51, 51, 51,
376 51, 51, 1, 1, 1, 1, 1, 1, 1, 1,
377 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
378 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
379 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
381 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
382 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
383 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
385 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
386 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
387 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
388 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
389 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
393 static yyconst int yy_meta[61] =
395 1, 2, 3, 4, 5, 6, 1, 4, 4, 1,
396 1, 2, 7, 8, 9, 10, 10, 10, 10, 10,
397 10, 10, 10, 11, 6, 4, 12, 12, 12, 12,
398 12, 1, 1, 1, 1, 1, 1, 1, 1, 1,
399 1, 1, 1, 13, 14, 15, 15, 15, 15, 15,
400 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
403 static yyconst short int yy_base[681] =
405 0, 32, 72, 0, 62, 131, 132, 139, 182, 241,
406 300, 343, 145, 150, 3097, 3052, 3093, 3790, 3068, 3059,
407 3008, 3790, 3790, 2996, 3790, 161, 374, 179, 161, 3015,
408 3790, 424, 2995, 469, 3002, 3009, 2982, 518, 190, 102,
409 2949, 2944, 2927, 2913, 2905, 2909, 201, 2873, 3790, 2864,
410 306, 531, 232, 240, 581, 2855, 626, 2855, 2852, 2838,
411 675, 248, 114, 2847, 0, 3790, 2844, 0, 3790, 314,
412 64, 0, 2803, 3790, 115, 3790, 146, 3790, 158, 2802,
413 171, 275, 3790, 270, 2801, 355, 2836, 2818, 2808, 3790,
414 2757, 684, 2739, 709, 325, 2729, 718, 355, 729, 2739,
416 2739, 390, 485, 493, 2675, 151, 764, 0, 2665, 245,
417 2657, 2649, 338, 3790, 124, 148, 232, 219, 287, 278,
418 2633, 794, 2656, 0, 2605, 819, 2593, 828, 530, 853,
419 549, 864, 2622, 642, 745, 650, 899, 0, 2604, 292,
420 2596, 2571, 382, 230, 2566, 0, 2548, 305, 3790, 3790,
421 333, 0, 2507, 700, 3790, 3790, 2505, 492, 2489, 2527,
422 384, 339, 350, 2529, 844, 936, 880, 720, 967, 2484,
423 2460, 1002, 201, 1038, 1073, 2454, 2433, 2438, 2431, 2409,
424 2403, 265, 236, 2369, 356, 147, 370, 2411, 3790, 1110,
425 915, 753, 1141, 2399, 1176, 2354, 2315, 2302, 2283, 2275,
427 2281, 479, 2293, 947, 375, 0, 0, 343, 392, 2270,
428 2236, 955, 515, 2222, 2221, 513, 983, 1213, 1018, 854,
429 1249, 1056, 2214, 539, 2196, 2186, 2153, 2149, 2125, 540,
430 388, 764, 529, 1090, 532, 0, 0, 427, 661, 2133,
431 583, 2110, 2101, 2084, 2080, 2087, 645, 1121, 1159, 1194,
432 2095, 2080, 1129, 2080, 2033, 2032, 2021, 667, 1229, 683,
433 1265, 775, 1286, 0, 1304, 1323, 1339, 888, 1359, 1377,
434 729, 3790, 2009, 1999, 1972, 1972, 1948, 481, 513, 651,
435 1396, 1406, 1416, 1959, 1919, 1925, 1925, 1913, 675, 1424,
436 791, 1434, 1444, 1455, 1926, 1873, 1856, 1819, 1484, 792,
438 1811, 1810, 1463, 802, 824, 827, 1471, 852, 1521, 0,
439 1502, 1558, 1537, 923, 1594, 1576, 730, 1745, 1737, 958,
440 1040, 19, 805, 670, 1610, 819, 1639, 1649, 1631, 1081,
441 1711, 1718, 1112, 1251, 318, 1661, 1669, 991, 1694, 1677,
442 1615, 1677, 1692, 1708, 1273, 1727, 1745, 1762, 1624, 1621,
443 1620, 1772, 1056, 1101, 1387, 1622, 1778, 1788, 1799, 0,
444 1817, 1836, 1788, 1347, 1872, 1854, 1324, 3790, 1590, 1578,
445 1325, 3790, 1522, 3790, 984, 757, 771, 1908, 1888, 1545,
446 1572, 1543, 1038, 1916, 636, 0, 0, 866, 1559, 1505,
447 1924, 937, 1945, 1142, 1955, 0, 1966, 1977, 1993, 1716,
449 2012, 2030, 1496, 1482, 2049, 1150, 1185, 1934, 2040, 2057,
450 2067, 2078, 0, 2096, 2115, 2067, 1896, 2133, 1523, 1837,
451 1434, 879, 1194, 2150, 1377, 0, 0, 970, 1838, 1957,
452 1426, 2181, 2158, 2166, 1028, 1407, 1390, 1389, 2191, 1306,
453 1435, 1577, 2199, 1650, 2212, 0, 2223, 2234, 2250, 2001,
454 2269, 2287, 2304, 1260, 1244, 1225, 2314, 1745, 1854, 2322,
455 1084, 1103, 2333, 0, 2324, 1968, 3790, 2116, 3790, 1451,
456 3790, 2343, 2351, 2359, 1167, 2372, 846, 2380, 2388, 2401,
457 2409, 2419, 2422, 1172, 1153, 1101, 2432, 1057, 1039, 1693,
458 2134, 2438, 2182, 2450, 0, 2461, 2472, 2488, 2258, 2507,
460 2525, 1032, 1012, 2543, 2287, 947, 1187, 880, 2553, 1483,
461 2561, 2569, 2577, 2585, 2595, 2600, 2610, 2624, 2634, 2368,
462 850, 833, 2644, 798, 780, 2235, 2473, 2652, 2526, 2662,
463 0, 2673, 2684, 2700, 2496, 2721, 782, 740, 713, 2730,
464 701, 2738, 2748, 2758, 2768, 2692, 2776, 1484, 2786, 2796,
465 2807, 2813, 689, 638, 592, 2823, 566, 559, 2601, 550,
466 416, 2836, 0, 1232, 2844, 1659, 2854, 2864, 2875, 2883,
467 2893, 2904, 2912, 2920, 2928, 393, 0, 346, 2938, 2948,
468 2958, 2968, 2146, 2978, 2988, 2998, 3790, 3004, 3012, 2708,
469 3790, 3027, 2179, 3037, 3047, 3057, 3063, 3071, 3100, 3108,
471 3116, 3145, 293, 3153, 3137, 123, 3182, 3166, 3790, 3226,
472 3241, 3256, 3271, 3286, 3301, 3316, 3331, 3346, 3352, 3367,
473 3382, 3397, 3412, 3427, 3442, 1242, 3457, 3472, 3487, 3502,
474 3508, 3515, 3530, 1593, 3536, 3543, 3549, 3555, 3561, 3568,
475 3574, 3580, 3586, 3593, 3601, 3607, 3613, 3619, 1211, 1321,
476 3626, 3634, 3640, 3646, 3653, 3661, 3667, 3675, 1694, 1762,
477 3682, 3690, 1834, 1871, 3696, 3704, 3711, 3719, 3725, 3733,
478 1302, 1375, 3740, 1888, 1943, 3746, 3754, 3760, 3768, 3774
481 static yyconst short int yy_def[681] =
483 609, 1, 609, 3, 1, 1, 610, 610, 611, 611,
484 612, 612, 613, 613, 609, 614, 609, 609, 609, 615,
485 616, 609, 609, 617, 609, 618, 614, 27, 27, 619,
486 609, 609, 32, 32, 34, 34, 34, 614, 27, 614,
487 32, 32, 34, 34, 34, 620, 621, 622, 609, 623,
488 624, 620, 52, 52, 609, 55, 55, 57, 57, 57,
489 620, 52, 620, 609, 625, 609, 625, 625, 609, 609,
490 609, 626, 627, 609, 627, 609, 627, 609, 628, 629,
491 629, 629, 609, 609, 614, 614, 609, 609, 615, 609,
492 616, 616, 617, 617, 618, 630, 614, 614, 27, 619,
494 99, 99, 99, 99, 631, 632, 32, 34, 34, 34,
495 34, 34, 614, 609, 614, 614, 99, 614, 614, 614,
496 620, 620, 633, 634, 622, 622, 623, 623, 624, 620,
497 620, 52, 132, 132, 132, 132, 55, 57, 57, 57,
498 57, 57, 620, 620, 609, 625, 625, 609, 609, 609,
499 609, 626, 627, 627, 609, 609, 627, 627, 629, 609,
500 629, 629, 609, 609, 609, 614, 166, 166, 99, 169,
501 635, 609, 636, 609, 32, 34, 34, 34, 34, 34,
502 34, 614, 614, 169, 614, 614, 614, 633, 609, 620,
503 190, 190, 132, 193, 55, 57, 57, 57, 57, 57,
505 57, 620, 609, 614, 614, 166, 166, 166, 614, 637,
506 638, 638, 212, 639, 638, 640, 174, 609, 218, 218,
507 609, 218, 34, 34, 34, 34, 34, 34, 34, 614,
508 614, 614, 614, 620, 620, 190, 190, 190, 620, 57,
509 57, 57, 57, 57, 57, 57, 620, 166, 166, 166,
510 609, 641, 641, 253, 641, 642, 643, 644, 609, 645,
511 221, 645, 609, 263, 645, 609, 266, 266, 609, 266,
512 609, 609, 34, 34, 34, 34, 34, 614, 614, 614,
513 190, 190, 190, 57, 57, 57, 57, 57, 620, 614,
514 614, 166, 166, 614, 646, 646, 647, 648, 609, 609,
516 649, 650, 609, 651, 651, 652, 269, 652, 609, 309,
517 652, 609, 312, 312, 609, 312, 34, 34, 34, 34,
518 34, 614, 614, 614, 620, 620, 190, 190, 620, 57,
519 57, 57, 57, 57, 620, 614, 336, 336, 609, 653,
520 654, 299, 609, 343, 343, 609, 343, 609, 609, 649,
521 649, 609, 609, 655, 655, 656, 315, 656, 609, 359,
522 656, 609, 362, 362, 609, 362, 609, 609, 34, 34,
523 609, 609, 609, 609, 614, 614, 614, 620, 378, 378,
524 57, 57, 620, 614, 614, 336, 336, 336, 609, 657,
525 609, 658, 346, 658, 658, 395, 658, 609, 398, 398,
527 609, 398, 659, 660, 609, 609, 661, 661, 662, 365,
528 662, 609, 412, 662, 609, 415, 415, 415, 34, 34,
529 614, 614, 614, 620, 620, 378, 378, 378, 57, 57,
530 620, 614, 432, 432, 432, 609, 663, 664, 609, 665,
531 665, 666, 401, 666, 666, 445, 666, 609, 448, 448,
532 609, 448, 609, 609, 659, 659, 609, 609, 667, 667,
533 668, 668, 668, 463, 668, 609, 609, 609, 609, 614,
534 609, 620, 472, 472, 472, 614, 614, 432, 432, 432,
535 432, 614, 609, 609, 663, 663, 609, 609, 669, 669,
536 670, 451, 670, 670, 494, 670, 609, 497, 497, 609,
538 497, 671, 672, 609, 609, 673, 673, 614, 472, 620,
539 472, 472, 472, 472, 620, 432, 432, 432, 432, 614,
540 674, 675, 609, 609, 676, 676, 677, 500, 677, 677,
541 530, 677, 609, 533, 533, 533, 609, 671, 671, 609,
542 609, 472, 472, 472, 472, 620, 614, 614, 432, 432,
543 614, 609, 609, 674, 674, 609, 609, 678, 678, 679,
544 679, 679, 562, 562, 620, 620, 472, 472, 620, 432,
545 432, 432, 609, 609, 609, 609, 680, 680, 472, 472,
546 472, 432, 614, 432, 432, 614, 609, 609, 609, 609,
547 609, 472, 620, 472, 472, 620, 614, 614, 614, 620,
549 620, 620, 614, 614, 614, 620, 620, 620, 0, 609,
550 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
551 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
552 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
553 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
554 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
555 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
556 609, 609, 609, 609, 609, 609, 609, 609, 609, 609
559 static yyconst short int yy_nxt[3851] =
561 16, 17, 18, 19, 16, 20, 21, 22, 23, 16,
562 24, 25, 16, 16, 26, 27, 28, 29, 27, 27,
563 27, 27, 27, 30, 31, 23, 32, 32, 32, 32,
564 33, 34, 34, 35, 34, 36, 34, 37, 34, 34,
565 34, 34, 34, 38, 16, 39, 39, 39, 39, 39,
566 16, 16, 16, 16, 16, 16, 16, 40, 16, 16,
567 41, 42, 86, 64, 43, 151, 114, 23, 44, 23,
568 375, 45, 46, 17, 18, 19, 46, 47, 48, 23,
569 49, 46, 50, 25, 46, 46, 51, 52, 53, 54,
570 52, 52, 52, 52, 52, 30, 31, 23, 55, 55,
572 55, 55, 56, 57, 57, 58, 57, 59, 57, 60,
573 57, 57, 57, 57, 57, 61, 46, 62, 62, 62,
574 62, 62, 46, 46, 46, 46, 46, 46, 46, 63,
575 46, 46, 64, 17, 66, 67, 23, 68, 23, 155,
576 17, 66, 67, 69, 68, 86, 81, 18, 82, 83,
577 69, 81, 18, 82, 83, 69, 68, 122, 154, 158,
578 114, 115, 69, 68, 96, 172, 122, 86, 96, 96,
579 156, 182, 161, 144, 174, 70, 103, 103, 103, 103,
580 103, 104, 70, 17, 18, 19, 96, 20, 84, 154,
581 86, 86, 233, 84, 102, 102, 102, 102, 102, 102,
583 102, 102, 183, 85, 97, 101, 101, 101, 101, 101,
584 101, 101, 101, 124, 160, 172, 124, 124, 124, 124,
585 124, 124, 124, 124, 217, 71, 72, 72, 72, 72,
586 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
587 72, 72, 17, 18, 19, 85, 20, 134, 134, 134,
588 134, 134, 134, 134, 134, 135, 135, 135, 135, 135,
589 136, 121, 86, 133, 133, 133, 133, 133, 133, 133,
590 133, 163, 164, 122, 159, 177, 185, 202, 162, 86,
591 178, 184, 179, 231, 71, 72, 72, 72, 72, 72,
592 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
594 72, 17, 18, 19, 74, 20, 151, 114, 86, 96,
595 75, 76, 77, 96, 96, 148, 114, 149, 160, 150,
596 230, 86, 197, 149, 78, 150, 187, 198, 96, 199,
597 86, 96, 96, 96, 151, 114, 86, 150, 150, 151,
598 114, 186, 162, 79, 17, 18, 19, 74, 20, 130,
599 96, 163, 164, 75, 76, 77, 85, 150, 85, 391,
600 85, 122, 85, 85, 85, 85, 85, 78, 97, 383,
601 166, 167, 168, 166, 166, 166, 166, 166, 85, 85,
602 85, 86, 160, 151, 114, 161, 79, 98, 204, 99,
603 99, 99, 99, 99, 99, 99, 99, 100, 86, 86,
605 101, 101, 101, 101, 101, 170, 170, 170, 170, 170,
606 170, 170, 170, 86, 231, 100, 528, 86, 86, 101,
607 101, 101, 101, 101, 85, 122, 231, 160, 85, 609,
608 85, 86, 279, 85, 85, 86, 85, 85, 85, 107,
609 107, 107, 107, 107, 107, 107, 107, 100, 121, 121,
610 107, 107, 107, 107, 107, 108, 108, 108, 108, 108,
611 108, 108, 108, 108, 108, 108, 108, 86, 108, 101,
612 101, 101, 101, 101, 85, 85, 85, 85, 85, 85,
613 85, 85, 85, 85, 108, 108, 108, 108, 108, 108,
614 108, 108, 609, 151, 114, 108, 108, 108, 108, 108,
616 170, 170, 170, 170, 170, 170, 170, 170, 170, 170,
617 170, 170, 170, 170, 85, 85, 85, 85, 85, 113,
618 114, 85, 122, 85, 86, 85, 85, 172, 322, 85,
619 255, 255, 255, 96, 247, 154, 217, 96, 96, 323,
620 271, 85, 85, 85, 131, 234, 132, 132, 132, 132,
621 132, 132, 132, 132, 100, 96, 86, 133, 133, 133,
622 133, 133, 272, 391, 190, 191, 192, 190, 190, 190,
623 190, 190, 86, 130, 122, 122, 133, 133, 133, 133,
624 133, 121, 528, 86, 271, 121, 231, 121, 278, 492,
625 121, 121, 122, 121, 121, 121, 137, 137, 137, 137,
627 137, 137, 137, 137, 100, 552, 272, 137, 137, 137,
628 137, 137, 138, 138, 138, 138, 138, 138, 138, 138,
629 138, 138, 138, 138, 122, 138, 133, 133, 133, 133,
630 133, 121, 121, 121, 121, 121, 121, 121, 121, 121,
631 121, 138, 138, 138, 138, 138, 138, 138, 138, 609,
632 384, 552, 138, 138, 138, 138, 138, 194, 194, 194,
633 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
634 194, 121, 121, 121, 121, 121, 143, 114, 121, 86,
635 121, 172, 121, 121, 100, 91, 121, 91, 122, 91,
636 217, 91, 91, 289, 86, 91, 259, 172, 121, 121,
638 121, 153, 552, 324, 122, 153, 261, 91, 91, 91,
639 93, 153, 93, 86, 93, 172, 93, 93, 122, 95,
640 93, 85, 335, 95, 153, 85, 85, 172, 377, 95,
641 271, 367, 93, 93, 93, 207, 207, 207, 207, 207,
642 208, 95, 95, 85, 169, 169, 169, 169, 169, 169,
643 169, 169, 272, 368, 172, 169, 169, 169, 169, 169,
644 194, 194, 194, 194, 194, 194, 194, 194, 237, 237,
645 237, 237, 237, 238, 169, 169, 169, 169, 169, 175,
646 175, 175, 175, 175, 175, 175, 175, 100, 609, 172,
647 175, 175, 175, 175, 175, 121, 172, 121, 261, 121,
649 86, 121, 121, 492, 290, 121, 172, 86, 422, 169,
650 169, 169, 169, 169, 86, 217, 172, 121, 121, 121,
651 125, 443, 125, 280, 125, 261, 125, 125, 423, 127,
652 125, 127, 325, 127, 86, 127, 127, 259, 172, 127,
653 259, 172, 125, 125, 125, 96, 552, 261, 86, 96,
654 307, 127, 127, 127, 129, 96, 121, 376, 129, 476,
655 121, 121, 122, 552, 129, 609, 172, 96, 96, 264,
656 264, 264, 264, 264, 265, 307, 129, 129, 121, 193,
657 193, 193, 193, 193, 193, 193, 193, 85, 85, 86,
658 193, 193, 193, 193, 193, 206, 206, 206, 206, 206,
660 206, 206, 206, 310, 310, 310, 310, 310, 311, 193,
661 193, 193, 193, 193, 195, 195, 195, 195, 195, 195,
662 195, 195, 86, 86, 470, 195, 195, 195, 195, 195,
663 236, 236, 236, 236, 236, 236, 236, 236, 360, 360,
664 360, 360, 360, 361, 193, 193, 193, 193, 193, 204,
665 391, 205, 205, 205, 205, 205, 205, 205, 205, 371,
666 393, 172, 248, 249, 250, 248, 248, 248, 248, 248,
667 253, 253, 254, 255, 255, 255, 255, 255, 214, 86,
668 85, 372, 209, 209, 209, 209, 209, 209, 209, 209,
669 86, 121, 121, 209, 209, 209, 209, 209, 222, 222,
671 222, 222, 222, 222, 222, 222, 387, 387, 387, 387,
672 387, 388, 209, 209, 209, 209, 209, 211, 212, 213,
673 213, 213, 213, 213, 213, 214, 172, 86, 215, 215,
674 215, 215, 215, 263, 263, 263, 263, 263, 263, 263,
675 263, 373, 421, 482, 482, 482, 172, 215, 215, 215,
676 215, 215, 172, 218, 219, 220, 218, 218, 218, 218,
677 218, 221, 443, 374, 222, 222, 222, 222, 222, 609,
678 172, 262, 262, 262, 262, 262, 262, 262, 262, 261,
679 393, 122, 367, 222, 222, 222, 222, 222, 223, 223,
680 223, 223, 223, 223, 223, 223, 431, 259, 172, 223,
682 223, 223, 223, 223, 368, 281, 282, 283, 281, 281,
683 281, 281, 281, 371, 483, 172, 609, 172, 209, 209,
684 209, 209, 209, 234, 307, 235, 235, 235, 235, 235,
685 235, 235, 235, 122, 290, 372, 291, 291, 291, 291,
686 291, 291, 291, 291, 296, 296, 296, 296, 296, 296,
687 296, 296, 214, 122, 121, 609, 239, 239, 239, 239,
688 239, 239, 239, 239, 172, 393, 483, 239, 239, 239,
689 239, 239, 290, 307, 292, 292, 292, 292, 292, 292,
690 292, 292, 515, 515, 515, 483, 239, 239, 239, 239,
691 239, 240, 240, 240, 240, 240, 240, 240, 240, 172,
693 259, 172, 240, 240, 240, 240, 240, 290, 357, 293,
694 293, 293, 293, 293, 294, 291, 291, 471, 349, 471,
695 349, 239, 239, 239, 239, 239, 259, 172, 260, 260,
696 260, 260, 260, 260, 260, 260, 261, 86, 453, 262,
697 262, 262, 262, 262, 301, 302, 303, 301, 301, 301,
698 301, 301, 373, 577, 577, 152, 152, 453, 262, 262,
699 262, 262, 262, 172, 266, 267, 268, 266, 266, 266,
700 266, 266, 269, 453, 374, 270, 270, 270, 270, 270,
701 270, 270, 270, 270, 270, 270, 270, 270, 396, 396,
702 396, 396, 396, 397, 270, 270, 270, 270, 270, 259,
704 172, 305, 305, 305, 305, 305, 305, 305, 305, 261,
705 537, 537, 304, 304, 304, 304, 304, 259, 172, 305,
706 305, 305, 305, 305, 305, 367, 371, 261, 350, 393,
707 350, 304, 304, 304, 304, 304, 259, 172, 306, 306,
708 306, 306, 306, 306, 306, 306, 307, 368, 372, 308,
709 308, 308, 308, 308, 309, 309, 309, 309, 309, 309,
710 309, 309, 413, 413, 413, 413, 413, 414, 308, 308,
711 308, 308, 308, 172, 312, 313, 314, 312, 312, 312,
712 312, 312, 315, 538, 538, 316, 316, 316, 316, 316,
713 609, 424, 308, 308, 308, 308, 308, 308, 308, 308,
715 259, 172, 483, 483, 316, 316, 316, 316, 316, 325,
716 307, 326, 326, 326, 326, 326, 326, 326, 326, 325,
717 122, 327, 327, 327, 327, 327, 327, 327, 327, 325,
718 342, 328, 328, 328, 328, 328, 329, 326, 326, 336,
719 337, 338, 336, 336, 336, 336, 336, 290, 391, 291,
720 291, 291, 291, 291, 291, 291, 291, 290, 393, 291,
721 291, 291, 291, 291, 291, 291, 291, 86, 290, 122,
722 291, 291, 291, 291, 291, 291, 348, 86, 351, 351,
723 351, 351, 351, 352, 349, 349, 316, 316, 316, 316,
724 316, 316, 316, 316, 86, 453, 509, 547, 86, 343,
726 344, 345, 343, 343, 343, 343, 343, 346, 508, 453,
727 347, 347, 347, 347, 347, 259, 172, 355, 355, 355,
728 355, 355, 355, 373, 466, 307, 122, 86, 342, 347,
729 347, 347, 347, 347, 259, 172, 355, 355, 355, 355,
730 355, 355, 355, 355, 307, 374, 467, 354, 354, 354,
731 354, 354, 359, 359, 359, 359, 359, 359, 359, 359,
732 427, 427, 427, 427, 427, 428, 354, 354, 354, 354,
733 354, 259, 172, 356, 356, 356, 356, 356, 356, 356,
734 356, 357, 257, 430, 358, 358, 358, 358, 358, 609,
735 391, 358, 358, 358, 358, 358, 358, 358, 358, 124,
737 443, 429, 124, 358, 358, 358, 358, 358, 172, 362,
738 363, 364, 362, 362, 362, 362, 362, 365, 420, 419,
739 366, 366, 366, 366, 366, 378, 379, 380, 378, 378,
740 378, 378, 378, 348, 348, 259, 172, 348, 342, 366,
741 366, 366, 366, 366, 325, 357, 326, 326, 326, 326,
742 326, 326, 325, 122, 326, 326, 326, 326, 326, 326,
743 326, 326, 325, 609, 326, 326, 326, 326, 326, 326,
744 326, 326, 565, 443, 122, 384, 385, 385, 385, 385,
745 385, 385, 385, 385, 386, 386, 386, 386, 386, 386,
746 386, 386, 347, 347, 347, 347, 347, 347, 347, 347,
748 257, 454, 122, 454, 86, 391, 391, 392, 392, 392,
749 392, 392, 392, 392, 392, 393, 443, 214, 394, 394,
750 394, 394, 394, 395, 395, 395, 395, 395, 395, 395,
751 395, 446, 446, 446, 446, 446, 447, 394, 394, 394,
752 394, 394, 398, 399, 400, 398, 398, 398, 398, 398,
753 401, 382, 381, 402, 402, 402, 402, 402, 609, 172,
754 394, 394, 394, 394, 394, 394, 394, 394, 357, 455,
755 370, 455, 402, 402, 402, 402, 402, 403, 404, 405,
756 403, 403, 403, 403, 403, 348, 369, 349, 349, 349,
757 349, 349, 349, 366, 366, 366, 366, 366, 366, 366,
759 366, 609, 172, 412, 412, 412, 412, 412, 412, 412,
760 412, 357, 259, 172, 408, 408, 408, 408, 408, 408,
761 408, 408, 357, 348, 348, 407, 407, 407, 407, 407,
762 259, 172, 408, 408, 408, 408, 408, 408, 468, 466,
763 357, 484, 342, 484, 407, 407, 407, 407, 407, 259,
764 172, 409, 409, 409, 409, 409, 409, 409, 409, 410,
765 469, 467, 411, 411, 411, 411, 411, 609, 172, 411,
766 411, 411, 411, 411, 411, 411, 411, 410, 485, 257,
767 485, 411, 411, 411, 411, 411, 172, 415, 416, 417,
768 415, 415, 415, 415, 415, 553, 214, 553, 418, 418,
770 418, 418, 418, 426, 426, 426, 426, 426, 426, 426,
771 426, 464, 464, 464, 464, 464, 465, 418, 418, 418,
772 418, 418, 424, 425, 425, 425, 425, 425, 425, 425,
773 425, 432, 433, 434, 435, 432, 432, 432, 432, 437,
774 438, 439, 437, 437, 437, 437, 437, 259, 172, 214,
775 554, 122, 554, 334, 333, 332, 331, 357, 468, 86,
776 402, 402, 402, 402, 402, 402, 402, 402, 391, 466,
777 441, 441, 441, 441, 441, 441, 441, 441, 393, 391,
778 469, 441, 441, 441, 441, 441, 441, 330, 321, 393,
779 391, 467, 442, 442, 442, 442, 442, 442, 442, 442,
781 443, 320, 319, 444, 444, 444, 444, 444, 445, 445,
782 445, 445, 445, 445, 445, 445, 495, 495, 495, 495,
783 495, 496, 444, 444, 444, 444, 444, 448, 449, 450,
784 448, 448, 448, 448, 448, 451, 318, 317, 452, 452,
785 452, 452, 452, 609, 299, 444, 444, 444, 444, 444,
786 444, 444, 444, 259, 172, 257, 214, 452, 452, 452,
787 452, 452, 453, 410, 456, 456, 456, 456, 456, 457,
788 454, 454, 418, 418, 418, 418, 418, 418, 418, 418,
789 609, 172, 463, 463, 463, 463, 463, 463, 463, 463,
790 410, 259, 172, 460, 460, 460, 460, 460, 460, 460,
792 460, 410, 295, 214, 459, 459, 459, 459, 459, 259,
793 172, 460, 460, 460, 460, 460, 460, 468, 106, 410,
794 288, 287, 286, 459, 459, 459, 459, 459, 259, 172,
795 461, 461, 461, 461, 461, 461, 461, 461, 285, 469,
796 284, 462, 462, 462, 462, 462, 609, 391, 462, 462,
797 462, 462, 462, 462, 462, 462, 100, 492, 277, 582,
798 462, 462, 462, 462, 462, 472, 473, 474, 475, 472,
799 472, 472, 472, 478, 478, 478, 478, 478, 478, 478,
800 478, 479, 479, 479, 479, 479, 480, 481, 481, 86,
801 276, 275, 592, 122, 476, 609, 477, 477, 477, 477,
803 477, 477, 477, 477, 483, 492, 486, 486, 486, 486,
804 486, 487, 484, 484, 452, 452, 452, 452, 452, 452,
805 452, 452, 122, 274, 86, 391, 273, 490, 490, 490,
806 490, 490, 490, 490, 490, 443, 391, 100, 490, 490,
807 490, 490, 490, 490, 214, 257, 443, 391, 391, 491,
808 491, 491, 491, 491, 491, 491, 491, 492, 492, 214,
809 493, 493, 493, 493, 493, 494, 494, 494, 494, 494,
810 494, 494, 494, 531, 531, 531, 531, 531, 532, 493,
811 493, 493, 493, 493, 497, 498, 499, 497, 497, 497,
812 497, 497, 500, 106, 203, 501, 501, 501, 501, 501,
814 609, 172, 493, 493, 493, 493, 493, 493, 493, 493,
815 410, 246, 245, 244, 501, 501, 501, 501, 501, 502,
816 503, 504, 502, 502, 502, 502, 502, 453, 243, 454,
817 454, 454, 454, 454, 454, 259, 172, 259, 172, 507,
818 507, 507, 507, 507, 507, 410, 259, 172, 507, 507,
819 507, 507, 507, 507, 507, 507, 509, 242, 510, 510,
820 510, 510, 510, 510, 510, 510, 511, 511, 511, 511,
821 511, 511, 511, 511, 512, 512, 512, 512, 512, 513,
822 514, 514, 241, 520, 520, 520, 122, 516, 517, 518,
823 516, 516, 516, 516, 516, 481, 481, 481, 481, 481,
825 481, 481, 481, 481, 481, 481, 481, 481, 481, 481,
826 481, 86, 131, 189, 232, 86, 481, 481, 481, 481,
827 481, 481, 519, 519, 519, 519, 519, 519, 519, 519,
828 519, 519, 476, 229, 520, 520, 520, 521, 522, 523,
829 521, 521, 521, 521, 521, 483, 228, 484, 484, 484,
830 484, 484, 484, 501, 501, 501, 501, 501, 501, 501,
831 501, 227, 86, 391, 226, 526, 526, 526, 526, 526,
832 526, 526, 526, 492, 391, 225, 526, 526, 526, 526,
833 526, 526, 224, 106, 492, 391, 391, 527, 527, 527,
834 527, 527, 527, 527, 527, 528, 528, 98, 529, 529,
836 529, 529, 529, 530, 530, 530, 530, 530, 530, 530,
837 530, 563, 563, 563, 563, 563, 564, 529, 529, 529,
838 529, 529, 533, 534, 535, 533, 533, 533, 533, 533,
839 203, 159, 160, 536, 536, 536, 536, 536, 609, 609,
840 529, 529, 529, 529, 529, 529, 529, 529, 154, 528,
841 154, 147, 536, 536, 536, 536, 536, 172, 539, 539,
842 539, 539, 539, 540, 537, 537, 121, 145, 542, 543,
843 544, 542, 542, 542, 542, 542, 514, 514, 514, 514,
844 514, 514, 514, 514, 514, 514, 514, 514, 514, 514,
845 514, 514, 514, 514, 514, 514, 514, 514, 545, 545,
847 545, 545, 545, 545, 545, 545, 545, 545, 509, 201,
848 546, 546, 546, 547, 391, 548, 548, 548, 548, 548,
849 548, 548, 548, 547, 528, 549, 549, 549, 549, 549,
850 549, 549, 549, 200, 196, 121, 128, 547, 122, 550,
851 550, 550, 550, 550, 551, 548, 548, 85, 126, 519,
852 519, 519, 519, 519, 519, 519, 519, 552, 189, 555,
853 555, 555, 555, 555, 556, 553, 553, 536, 536, 536,
854 536, 536, 536, 536, 536, 391, 122, 559, 559, 559,
855 559, 559, 559, 559, 559, 528, 391, 181, 559, 559,
856 559, 559, 559, 559, 180, 176, 528, 391, 106, 560,
858 560, 560, 560, 560, 560, 560, 560, 546, 546, 546,
859 561, 561, 561, 561, 561, 562, 562, 562, 562, 562,
860 562, 562, 562, 587, 587, 587, 587, 587, 587, 561,
861 561, 561, 561, 561, 609, 122, 561, 561, 561, 561,
862 561, 561, 561, 561, 172, 537, 537, 537, 537, 537,
863 537, 565, 85, 566, 566, 566, 566, 566, 566, 566,
864 566, 565, 106, 567, 567, 567, 567, 567, 567, 567,
865 567, 565, 165, 568, 568, 568, 568, 568, 569, 566,
866 566, 121, 94, 545, 545, 545, 545, 545, 545, 545,
867 545, 570, 571, 572, 570, 570, 570, 570, 570, 547,
869 92, 548, 548, 548, 548, 548, 548, 548, 548, 547,
870 90, 548, 548, 548, 548, 548, 548, 548, 548, 86,
871 547, 88, 548, 548, 548, 548, 548, 548, 573, 574,
872 575, 573, 573, 573, 573, 573, 552, 87, 553, 553,
873 553, 553, 553, 553, 86, 160, 154, 147, 145, 391,
874 86, 578, 578, 578, 578, 578, 578, 578, 578, 579,
875 580, 581, 579, 579, 579, 579, 579, 565, 142, 566,
876 566, 566, 566, 566, 566, 566, 566, 565, 141, 566,
877 566, 566, 566, 566, 566, 566, 566, 122, 565, 140,
878 566, 566, 566, 566, 566, 566, 582, 139, 583, 583,
880 583, 583, 583, 583, 583, 583, 582, 128, 584, 584,
881 584, 584, 584, 584, 584, 584, 126, 582, 122, 585,
882 585, 585, 585, 585, 586, 583, 583, 587, 587, 587,
883 587, 587, 587, 587, 587, 588, 588, 588, 588, 588,
884 588, 588, 588, 589, 589, 589, 589, 589, 590, 587,
885 587, 592, 122, 593, 593, 593, 593, 593, 593, 593,
886 593, 592, 120, 594, 594, 594, 594, 594, 594, 594,
887 594, 592, 119, 595, 595, 595, 595, 595, 596, 593,
888 593, 85, 118, 597, 598, 599, 597, 597, 597, 597,
889 597, 582, 117, 583, 583, 583, 583, 583, 583, 583,
891 583, 582, 116, 583, 583, 583, 583, 583, 583, 583,
892 583, 582, 112, 583, 583, 583, 583, 583, 583, 587,
893 587, 587, 587, 587, 587, 587, 587, 587, 587, 587,
894 587, 587, 587, 587, 587, 111, 110, 109, 106, 94,
895 121, 86, 600, 601, 602, 600, 600, 600, 600, 600,
896 592, 92, 593, 593, 593, 593, 593, 593, 593, 593,
897 592, 90, 593, 593, 593, 593, 593, 593, 593, 593,
898 592, 88, 593, 593, 593, 593, 593, 593, 603, 603,
899 603, 603, 603, 603, 603, 603, 597, 597, 597, 597,
900 597, 597, 597, 597, 87, 86, 609, 609, 609, 609,
902 122, 609, 609, 609, 609, 609, 86, 609, 609, 609,
903 609, 609, 609, 609, 86, 604, 604, 604, 604, 604,
904 605, 603, 603, 606, 606, 606, 606, 606, 606, 606,
905 606, 600, 600, 600, 600, 600, 600, 600, 600, 609,
906 609, 609, 609, 86, 609, 609, 609, 609, 609, 609,
907 609, 122, 603, 603, 603, 603, 603, 603, 609, 122,
908 607, 607, 607, 607, 607, 608, 606, 606, 603, 603,
909 603, 603, 603, 603, 603, 603, 609, 609, 609, 609,
910 86, 606, 606, 606, 606, 606, 606, 609, 122, 609,
911 609, 609, 609, 609, 609, 609, 86, 606, 606, 606,
913 606, 606, 606, 606, 606, 609, 609, 609, 609, 122,
914 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
915 609, 609, 609, 609, 609, 122, 65, 65, 65, 65,
916 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
917 65, 23, 23, 23, 23, 23, 23, 23, 23, 23,
918 23, 23, 23, 23, 23, 23, 73, 73, 73, 73,
919 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
920 73, 80, 80, 80, 80, 80, 80, 80, 80, 80,
921 80, 80, 80, 80, 80, 80, 85, 609, 609, 609,
922 85, 609, 85, 85, 85, 85, 609, 85, 85, 85,
924 85, 89, 89, 89, 89, 89, 89, 89, 89, 89,
925 89, 89, 89, 89, 89, 89, 91, 609, 609, 609,
926 91, 609, 91, 91, 91, 91, 609, 91, 91, 91,
927 91, 93, 609, 609, 609, 93, 609, 93, 93, 93,
928 93, 609, 93, 93, 93, 93, 95, 609, 609, 95,
929 95, 609, 95, 95, 95, 95, 609, 95, 95, 95,
930 95, 105, 105, 105, 609, 609, 105, 121, 609, 609,
931 609, 121, 609, 121, 121, 121, 121, 609, 121, 121,
932 121, 121, 123, 123, 123, 123, 123, 123, 123, 123,
933 123, 123, 123, 123, 123, 123, 123, 125, 609, 609,
935 609, 125, 609, 125, 125, 125, 125, 609, 125, 125,
936 125, 125, 127, 609, 609, 609, 127, 609, 127, 127,
937 127, 127, 609, 127, 127, 127, 127, 129, 609, 609,
938 129, 129, 609, 129, 129, 129, 129, 609, 129, 129,
939 129, 129, 146, 609, 609, 146, 146, 146, 146, 146,
940 146, 146, 609, 146, 609, 146, 146, 153, 609, 609,
941 153, 153, 609, 153, 153, 153, 153, 153, 153, 153,
942 153, 153, 157, 157, 157, 157, 157, 157, 157, 157,
943 157, 157, 157, 157, 157, 157, 157, 159, 159, 609,
944 159, 609, 159, 159, 159, 159, 159, 159, 159, 159,
946 159, 159, 96, 609, 609, 96, 96, 609, 96, 96,
947 96, 96, 609, 96, 96, 96, 96, 171, 171, 171,
948 609, 609, 171, 173, 173, 173, 173, 609, 609, 173,
949 188, 188, 188, 188, 188, 188, 188, 188, 188, 188,
950 188, 188, 188, 188, 188, 210, 210, 210, 609, 609,
951 210, 216, 216, 216, 216, 609, 609, 216, 251, 251,
952 251, 609, 609, 251, 252, 252, 252, 609, 609, 252,
953 256, 256, 256, 609, 609, 256, 258, 258, 258, 258,
954 609, 609, 258, 295, 295, 295, 609, 609, 295, 297,
955 297, 297, 609, 609, 297, 298, 298, 298, 609, 609,
957 298, 300, 300, 300, 300, 609, 609, 300, 304, 304,
958 304, 304, 304, 609, 609, 304, 339, 339, 339, 609,
959 609, 339, 340, 340, 340, 609, 609, 340, 341, 341,
960 341, 609, 609, 341, 353, 353, 353, 353, 609, 609,
961 353, 354, 354, 354, 354, 354, 609, 609, 354, 389,
962 389, 389, 609, 609, 389, 390, 390, 390, 609, 609,
963 390, 406, 406, 406, 406, 609, 609, 406, 407, 407,
964 407, 407, 407, 609, 609, 407, 436, 436, 436, 609,
965 609, 436, 440, 609, 440, 440, 440, 609, 609, 440,
966 458, 458, 458, 458, 609, 609, 458, 459, 459, 459,
968 459, 459, 609, 609, 459, 488, 488, 488, 609, 609,
969 488, 489, 609, 489, 489, 489, 609, 609, 489, 505,
970 505, 505, 505, 609, 609, 505, 506, 506, 506, 609,
971 506, 609, 609, 506, 524, 524, 524, 609, 609, 524,
972 525, 609, 525, 525, 525, 609, 609, 525, 541, 541,
973 609, 541, 609, 609, 541, 557, 557, 557, 609, 609,
974 557, 558, 609, 558, 558, 558, 609, 609, 558, 576,
975 576, 576, 609, 609, 576, 577, 609, 577, 609, 577,
976 609, 609, 577, 591, 609, 591, 609, 609, 591, 15,
977 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
979 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
980 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
981 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
982 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
983 609, 609, 609, 609, 609, 609, 609, 609, 609, 609
986 static yyconst short int yy_chk[3851] =
988 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
989 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
990 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
991 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
992 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
993 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
994 2, 2, 322, 5, 2, 71, 71, 5, 2, 5,
995 322, 2, 3, 3, 3, 3, 3, 3, 3, 3,
996 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
997 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
999 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1000 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1001 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1002 3, 3, 6, 7, 7, 7, 6, 7, 6, 75,
1003 8, 8, 8, 7, 8, 40, 13, 13, 13, 13,
1004 8, 14, 14, 14, 14, 7, 7, 63, 75, 79,
1005 79, 40, 8, 8, 26, 106, 606, 115, 26, 26,
1006 77, 115, 81, 63, 106, 7, 29, 29, 29, 29,
1007 29, 29, 8, 9, 9, 9, 26, 9, 13, 77,
1008 186, 116, 186, 14, 28, 28, 28, 28, 28, 28,
1010 28, 28, 116, 39, 26, 39, 39, 39, 39, 39,
1011 39, 39, 39, 47, 81, 173, 47, 47, 47, 47,
1012 47, 47, 47, 47, 173, 9, 9, 9, 9, 9,
1013 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
1014 9, 9, 10, 10, 10, 117, 10, 53, 53, 53,
1015 53, 53, 53, 53, 53, 54, 54, 54, 54, 54,
1016 54, 62, 118, 62, 62, 62, 62, 62, 62, 62,
1017 62, 84, 84, 144, 84, 110, 118, 144, 82, 183,
1018 110, 117, 110, 183, 10, 10, 10, 10, 10, 10,
1019 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1021 10, 11, 11, 11, 11, 11, 148, 148, 182, 51,
1022 11, 11, 11, 51, 51, 70, 70, 70, 82, 70,
1023 182, 120, 140, 70, 11, 70, 120, 140, 95, 140,
1024 119, 51, 95, 95, 151, 151, 603, 70, 70, 113,
1025 113, 119, 162, 11, 12, 12, 12, 12, 12, 51,
1026 95, 163, 163, 12, 12, 12, 86, 70, 86, 578,
1027 86, 335, 86, 86, 208, 208, 86, 12, 95, 335,
1028 98, 98, 98, 98, 98, 98, 98, 98, 86, 86,
1029 86, 113, 162, 143, 143, 161, 12, 27, 205, 27,
1030 27, 27, 27, 27, 27, 27, 27, 27, 98, 185,
1032 27, 27, 27, 27, 27, 102, 102, 102, 102, 102,
1033 102, 102, 102, 187, 185, 209, 576, 27, 205, 27,
1034 27, 27, 27, 27, 32, 143, 187, 161, 32, 561,
1035 32, 231, 231, 32, 32, 209, 32, 32, 32, 32,
1036 32, 32, 32, 32, 32, 32, 32, 32, 238, 238,
1037 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1038 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1039 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1040 32, 32, 32, 32, 34, 34, 34, 34, 34, 34,
1041 34, 34, 34, 158, 158, 34, 34, 34, 34, 34,
1043 103, 103, 103, 103, 103, 103, 103, 103, 104, 104,
1044 104, 104, 104, 104, 34, 34, 34, 34, 34, 38,
1045 38, 38, 202, 38, 278, 38, 38, 216, 278, 38,
1046 213, 213, 213, 129, 202, 158, 216, 129, 129, 279,
1047 224, 38, 38, 38, 52, 235, 52, 52, 52, 52,
1048 52, 52, 52, 52, 52, 129, 279, 52, 52, 52,
1049 52, 52, 224, 560, 131, 131, 131, 131, 131, 131,
1050 131, 131, 233, 129, 52, 235, 52, 52, 52, 52,
1051 52, 55, 558, 230, 241, 55, 233, 55, 230, 557,
1052 55, 55, 131, 55, 55, 55, 55, 55, 55, 55,
1054 55, 55, 55, 55, 55, 555, 241, 55, 55, 55,
1055 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
1056 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
1057 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
1058 55, 57, 57, 57, 57, 57, 57, 57, 57, 57,
1059 385, 554, 57, 57, 57, 57, 57, 134, 134, 134,
1060 134, 134, 134, 134, 134, 136, 136, 136, 136, 136,
1061 136, 57, 57, 57, 57, 57, 61, 61, 61, 385,
1062 61, 258, 61, 61, 239, 92, 61, 92, 247, 92,
1063 258, 92, 92, 247, 280, 92, 260, 260, 61, 61,
1065 61, 154, 553, 280, 239, 154, 260, 92, 92, 92,
1066 94, 154, 94, 324, 94, 541, 94, 94, 289, 97,
1067 94, 97, 289, 97, 154, 97, 97, 539, 324, 97,
1068 271, 317, 94, 94, 94, 168, 168, 168, 168, 168,
1069 168, 97, 97, 97, 99, 99, 99, 99, 99, 99,
1070 99, 99, 271, 317, 538, 99, 99, 99, 99, 99,
1071 135, 135, 135, 135, 135, 135, 135, 135, 192, 192,
1072 192, 192, 192, 192, 99, 99, 99, 99, 99, 107,
1073 107, 107, 107, 107, 107, 107, 107, 232, 262, 262,
1074 107, 107, 107, 107, 107, 122, 537, 122, 262, 122,
1076 376, 122, 122, 525, 291, 122, 300, 232, 376, 107,
1077 107, 107, 107, 107, 377, 300, 304, 122, 122, 122,
1078 126, 524, 126, 232, 126, 304, 126, 126, 377, 128,
1079 126, 128, 326, 128, 291, 128, 128, 305, 305, 128,
1080 306, 306, 126, 126, 126, 165, 522, 305, 323, 165,
1081 306, 128, 128, 128, 130, 165, 130, 323, 130, 477,
1082 130, 130, 326, 521, 130, 308, 308, 165, 165, 220,
1083 220, 220, 220, 220, 220, 308, 130, 130, 130, 132,
1084 132, 132, 132, 132, 132, 132, 132, 388, 388, 477,
1085 132, 132, 132, 132, 132, 167, 167, 167, 167, 167,
1087 167, 167, 167, 268, 268, 268, 268, 268, 268, 132,
1088 132, 132, 132, 132, 137, 137, 137, 137, 137, 137,
1089 137, 137, 422, 508, 422, 137, 137, 137, 137, 137,
1090 191, 191, 191, 191, 191, 191, 191, 191, 314, 314,
1091 314, 314, 314, 314, 137, 137, 137, 137, 137, 166,
1092 392, 166, 166, 166, 166, 166, 166, 166, 166, 320,
1093 392, 506, 204, 204, 204, 204, 204, 204, 204, 204,
1094 212, 212, 212, 212, 212, 212, 212, 212, 212, 166,
1095 169, 320, 169, 169, 169, 169, 169, 169, 169, 169,
1096 204, 428, 428, 169, 169, 169, 169, 169, 217, 217,
1098 217, 217, 217, 217, 217, 217, 338, 338, 338, 338,
1099 338, 338, 169, 169, 169, 169, 169, 172, 172, 172,
1100 172, 172, 172, 172, 172, 172, 503, 375, 172, 172,
1101 172, 172, 172, 219, 219, 219, 219, 219, 219, 219,
1102 219, 321, 375, 435, 435, 435, 502, 172, 172, 172,
1103 172, 172, 174, 174, 174, 174, 174, 174, 174, 174,
1104 174, 174, 489, 321, 174, 174, 174, 174, 174, 222,
1105 353, 222, 222, 222, 222, 222, 222, 222, 222, 353,
1106 488, 383, 330, 174, 174, 174, 174, 174, 175, 175,
1107 175, 175, 175, 175, 175, 175, 383, 461, 461, 175,
1109 175, 175, 175, 175, 330, 234, 234, 234, 234, 234,
1110 234, 234, 234, 333, 486, 354, 462, 462, 175, 175,
1111 175, 175, 175, 190, 354, 190, 190, 190, 190, 190,
1112 190, 190, 190, 234, 248, 333, 248, 248, 248, 248,
1113 248, 248, 248, 248, 253, 253, 253, 253, 253, 253,
1114 253, 253, 253, 190, 193, 394, 193, 193, 193, 193,
1115 193, 193, 193, 193, 406, 394, 485, 193, 193, 193,
1116 193, 193, 249, 406, 249, 249, 249, 249, 249, 249,
1117 249, 249, 475, 475, 475, 484, 193, 193, 193, 193,
1118 193, 195, 195, 195, 195, 195, 195, 195, 195, 407,
1120 507, 507, 195, 195, 195, 195, 195, 250, 407, 250,
1121 250, 250, 250, 250, 250, 250, 250, 423, 649, 423,
1122 649, 195, 195, 195, 195, 195, 218, 218, 218, 218,
1123 218, 218, 218, 218, 218, 218, 218, 423, 456, 218,
1124 218, 218, 218, 218, 259, 259, 259, 259, 259, 259,
1125 259, 259, 334, 564, 564, 626, 626, 455, 218, 218,
1126 218, 218, 218, 221, 221, 221, 221, 221, 221, 221,
1127 221, 221, 221, 454, 334, 221, 221, 221, 221, 221,
1128 261, 261, 261, 261, 261, 261, 261, 261, 345, 345,
1129 345, 345, 345, 345, 221, 221, 221, 221, 221, 263,
1131 263, 263, 263, 263, 263, 263, 263, 263, 263, 263,
1132 671, 671, 263, 263, 263, 263, 263, 265, 265, 265,
1133 265, 265, 265, 265, 265, 367, 371, 265, 650, 440,
1134 650, 263, 263, 263, 263, 263, 266, 266, 266, 266,
1135 266, 266, 266, 266, 266, 266, 266, 367, 371, 266,
1136 266, 266, 266, 266, 267, 267, 267, 267, 267, 267,
1137 267, 267, 364, 364, 364, 364, 364, 364, 266, 266,
1138 266, 266, 266, 269, 269, 269, 269, 269, 269, 269,
1139 269, 269, 269, 672, 672, 269, 269, 269, 269, 269,
1140 270, 425, 270, 270, 270, 270, 270, 270, 270, 270,
1142 355, 355, 438, 437, 269, 269, 269, 269, 269, 281,
1143 355, 281, 281, 281, 281, 281, 281, 281, 281, 282,
1144 425, 282, 282, 282, 282, 282, 282, 282, 282, 283,
1145 436, 283, 283, 283, 283, 283, 283, 283, 283, 290,
1146 290, 290, 290, 290, 290, 290, 290, 292, 441, 292,
1147 292, 292, 292, 292, 292, 292, 292, 293, 441, 293,
1148 293, 293, 293, 293, 293, 293, 293, 290, 294, 431,
1149 294, 294, 294, 294, 294, 294, 303, 421, 303, 303,
1150 303, 303, 303, 303, 303, 303, 307, 307, 307, 307,
1151 307, 307, 307, 307, 470, 404, 510, 548, 294, 299,
1153 299, 299, 299, 299, 299, 299, 299, 299, 470, 403,
1154 299, 299, 299, 299, 299, 311, 311, 311, 311, 311,
1155 311, 311, 311, 373, 419, 311, 510, 548, 390, 299,
1156 299, 299, 299, 299, 309, 309, 309, 309, 309, 309,
1157 309, 309, 309, 309, 309, 373, 419, 309, 309, 309,
1158 309, 309, 313, 313, 313, 313, 313, 313, 313, 313,
1159 380, 380, 380, 380, 380, 380, 309, 309, 309, 309,
1160 309, 312, 312, 312, 312, 312, 312, 312, 312, 312,
1161 312, 312, 389, 382, 312, 312, 312, 312, 312, 316,
1162 442, 316, 316, 316, 316, 316, 316, 316, 316, 634,
1164 442, 381, 634, 312, 312, 312, 312, 312, 315, 315,
1165 315, 315, 315, 315, 315, 315, 315, 315, 370, 369,
1166 315, 315, 315, 315, 315, 325, 325, 325, 325, 325,
1167 325, 325, 325, 351, 350, 356, 356, 349, 341, 315,
1168 315, 315, 315, 315, 329, 356, 329, 329, 329, 329,
1169 329, 329, 327, 325, 327, 327, 327, 327, 327, 327,
1170 327, 327, 328, 444, 328, 328, 328, 328, 328, 328,
1171 328, 328, 566, 444, 329, 336, 336, 336, 336, 336,
1172 336, 336, 336, 336, 337, 337, 337, 337, 337, 337,
1173 337, 337, 342, 342, 342, 342, 342, 342, 342, 342,
1175 340, 659, 566, 659, 336, 343, 490, 343, 343, 343,
1176 343, 343, 343, 343, 343, 343, 490, 339, 343, 343,
1177 343, 343, 343, 344, 344, 344, 344, 344, 344, 344,
1178 344, 400, 400, 400, 400, 400, 400, 343, 343, 343,
1179 343, 343, 346, 346, 346, 346, 346, 346, 346, 346,
1180 346, 332, 331, 346, 346, 346, 346, 346, 347, 458,
1181 347, 347, 347, 347, 347, 347, 347, 347, 458, 660,
1182 319, 660, 346, 346, 346, 346, 346, 348, 348, 348,
1183 348, 348, 348, 348, 348, 352, 318, 352, 352, 352,
1184 352, 352, 352, 357, 357, 357, 357, 357, 357, 357,
1186 357, 358, 358, 363, 363, 363, 363, 363, 363, 363,
1187 363, 358, 359, 359, 359, 359, 359, 359, 359, 359,
1188 359, 359, 359, 302, 301, 359, 359, 359, 359, 359,
1189 361, 361, 361, 361, 361, 361, 361, 361, 420, 429,
1190 361, 663, 298, 663, 359, 359, 359, 359, 359, 362,
1191 362, 362, 362, 362, 362, 362, 362, 362, 362, 362,
1192 420, 429, 362, 362, 362, 362, 362, 366, 459, 366,
1193 366, 366, 366, 366, 366, 366, 366, 459, 664, 297,
1194 664, 362, 362, 362, 362, 362, 365, 365, 365, 365,
1195 365, 365, 365, 365, 365, 674, 296, 674, 365, 365,
1197 365, 365, 365, 379, 379, 379, 379, 379, 379, 379,
1198 379, 417, 417, 417, 417, 417, 417, 365, 365, 365,
1199 365, 365, 378, 378, 378, 378, 378, 378, 378, 378,
1200 378, 384, 384, 384, 384, 384, 384, 384, 384, 391,
1201 391, 391, 391, 391, 391, 391, 391, 408, 408, 295,
1202 675, 378, 675, 288, 287, 286, 285, 408, 430, 384,
1203 393, 393, 393, 393, 393, 393, 393, 393, 395, 466,
1204 395, 395, 395, 395, 395, 395, 395, 395, 395, 397,
1205 430, 397, 397, 397, 397, 397, 397, 284, 277, 397,
1206 398, 466, 398, 398, 398, 398, 398, 398, 398, 398,
1208 398, 276, 275, 398, 398, 398, 398, 398, 399, 399,
1209 399, 399, 399, 399, 399, 399, 450, 450, 450, 450,
1210 450, 450, 398, 398, 398, 398, 398, 401, 401, 401,
1211 401, 401, 401, 401, 401, 401, 274, 273, 401, 401,
1212 401, 401, 401, 402, 257, 402, 402, 402, 402, 402,
1213 402, 402, 402, 409, 409, 256, 255, 401, 401, 401,
1214 401, 401, 405, 409, 405, 405, 405, 405, 405, 405,
1215 405, 405, 410, 410, 410, 410, 410, 410, 410, 410,
1216 411, 411, 416, 416, 416, 416, 416, 416, 416, 416,
1217 411, 412, 412, 412, 412, 412, 412, 412, 412, 412,
1219 412, 412, 254, 252, 412, 412, 412, 412, 412, 414,
1220 414, 414, 414, 414, 414, 414, 414, 468, 251, 414,
1221 246, 245, 244, 412, 412, 412, 412, 412, 415, 415,
1222 415, 415, 415, 415, 415, 415, 415, 415, 243, 468,
1223 242, 415, 415, 415, 415, 415, 418, 491, 418, 418,
1224 418, 418, 418, 418, 418, 418, 240, 491, 229, 583,
1225 415, 415, 415, 415, 415, 424, 424, 424, 424, 424,
1226 424, 424, 424, 433, 433, 433, 433, 433, 433, 433,
1227 433, 434, 434, 434, 434, 434, 434, 434, 434, 583,
1228 228, 227, 593, 424, 432, 493, 432, 432, 432, 432,
1230 432, 432, 432, 432, 439, 493, 439, 439, 439, 439,
1231 439, 439, 439, 439, 443, 443, 443, 443, 443, 443,
1232 443, 443, 593, 226, 432, 445, 225, 445, 445, 445,
1233 445, 445, 445, 445, 445, 445, 447, 223, 447, 447,
1234 447, 447, 447, 447, 215, 214, 447, 448, 526, 448,
1235 448, 448, 448, 448, 448, 448, 448, 448, 526, 211,
1236 448, 448, 448, 448, 448, 449, 449, 449, 449, 449,
1237 449, 449, 449, 499, 499, 499, 499, 499, 499, 448,
1238 448, 448, 448, 448, 451, 451, 451, 451, 451, 451,
1239 451, 451, 451, 210, 203, 451, 451, 451, 451, 451,
1241 452, 505, 452, 452, 452, 452, 452, 452, 452, 452,
1242 505, 201, 200, 199, 451, 451, 451, 451, 451, 453,
1243 453, 453, 453, 453, 453, 453, 453, 457, 198, 457,
1244 457, 457, 457, 457, 457, 460, 460, 465, 465, 465,
1245 465, 465, 465, 465, 465, 460, 463, 463, 463, 463,
1246 463, 463, 463, 463, 463, 463, 472, 197, 472, 472,
1247 472, 472, 472, 472, 472, 472, 473, 473, 473, 473,
1248 473, 473, 473, 473, 474, 474, 474, 474, 474, 474,
1249 474, 474, 196, 520, 520, 520, 472, 476, 476, 476,
1250 476, 476, 476, 476, 476, 478, 478, 478, 478, 478,
1252 478, 478, 478, 479, 479, 479, 479, 479, 479, 479,
1253 479, 520, 194, 188, 184, 476, 480, 480, 480, 480,
1254 480, 480, 480, 480, 481, 481, 481, 481, 481, 481,
1255 481, 481, 482, 181, 482, 482, 482, 483, 483, 483,
1256 483, 483, 483, 483, 483, 487, 180, 487, 487, 487,
1257 487, 487, 487, 492, 492, 492, 492, 492, 492, 492,
1258 492, 179, 482, 494, 178, 494, 494, 494, 494, 494,
1259 494, 494, 494, 494, 496, 177, 496, 496, 496, 496,
1260 496, 496, 176, 171, 496, 497, 527, 497, 497, 497,
1261 497, 497, 497, 497, 497, 497, 527, 170, 497, 497,
1263 497, 497, 497, 498, 498, 498, 498, 498, 498, 498,
1264 498, 535, 535, 535, 535, 535, 535, 497, 497, 497,
1265 497, 497, 500, 500, 500, 500, 500, 500, 500, 500,
1266 164, 160, 159, 500, 500, 500, 500, 500, 501, 529,
1267 501, 501, 501, 501, 501, 501, 501, 501, 157, 529,
1268 153, 147, 500, 500, 500, 500, 500, 504, 504, 504,
1269 504, 504, 504, 504, 504, 504, 509, 145, 509, 509,
1270 509, 509, 509, 509, 509, 509, 511, 511, 511, 511,
1271 511, 511, 511, 511, 512, 512, 512, 512, 512, 512,
1272 512, 512, 513, 513, 513, 513, 513, 513, 513, 513,
1274 514, 514, 514, 514, 514, 514, 514, 514, 515, 142,
1275 515, 515, 515, 516, 559, 516, 516, 516, 516, 516,
1276 516, 516, 516, 517, 559, 517, 517, 517, 517, 517,
1277 517, 517, 517, 141, 139, 133, 127, 518, 515, 518,
1278 518, 518, 518, 518, 518, 518, 518, 519, 125, 519,
1279 519, 519, 519, 519, 519, 519, 519, 523, 123, 523,
1280 523, 523, 523, 523, 523, 523, 523, 528, 528, 528,
1281 528, 528, 528, 528, 528, 530, 121, 530, 530, 530,
1282 530, 530, 530, 530, 530, 530, 532, 112, 532, 532,
1283 532, 532, 532, 532, 111, 109, 532, 533, 105, 533,
1285 533, 533, 533, 533, 533, 533, 533, 546, 546, 546,
1286 533, 533, 533, 533, 533, 534, 534, 534, 534, 534,
1287 534, 534, 534, 590, 590, 590, 590, 590, 590, 533,
1288 533, 533, 533, 533, 536, 546, 536, 536, 536, 536,
1289 536, 536, 536, 536, 540, 540, 540, 540, 540, 540,
1290 540, 542, 101, 542, 542, 542, 542, 542, 542, 542,
1291 542, 543, 100, 543, 543, 543, 543, 543, 543, 543,
1292 543, 544, 96, 544, 544, 544, 544, 544, 544, 544,
1293 544, 545, 93, 545, 545, 545, 545, 545, 545, 545,
1294 545, 547, 547, 547, 547, 547, 547, 547, 547, 549,
1296 91, 549, 549, 549, 549, 549, 549, 549, 549, 550,
1297 89, 550, 550, 550, 550, 550, 550, 550, 550, 547,
1298 551, 88, 551, 551, 551, 551, 551, 551, 552, 552,
1299 552, 552, 552, 552, 552, 552, 556, 87, 556, 556,
1300 556, 556, 556, 556, 85, 80, 73, 67, 64, 562,
1301 551, 562, 562, 562, 562, 562, 562, 562, 562, 565,
1302 565, 565, 565, 565, 565, 565, 565, 567, 60, 567,
1303 567, 567, 567, 567, 567, 567, 567, 568, 59, 568,
1304 568, 568, 568, 568, 568, 568, 568, 565, 569, 58,
1305 569, 569, 569, 569, 569, 569, 570, 56, 570, 570,
1307 570, 570, 570, 570, 570, 570, 571, 50, 571, 571,
1308 571, 571, 571, 571, 571, 571, 48, 572, 569, 572,
1309 572, 572, 572, 572, 572, 572, 572, 573, 573, 573,
1310 573, 573, 573, 573, 573, 574, 574, 574, 574, 574,
1311 574, 574, 574, 575, 575, 575, 575, 575, 575, 575,
1312 575, 579, 46, 579, 579, 579, 579, 579, 579, 579,
1313 579, 580, 45, 580, 580, 580, 580, 580, 580, 580,
1314 580, 581, 44, 581, 581, 581, 581, 581, 581, 581,
1315 581, 582, 43, 582, 582, 582, 582, 582, 582, 582,
1316 582, 584, 42, 584, 584, 584, 584, 584, 584, 584,
1318 584, 585, 41, 585, 585, 585, 585, 585, 585, 585,
1319 585, 586, 37, 586, 586, 586, 586, 586, 586, 588,
1320 588, 588, 588, 588, 588, 588, 588, 589, 589, 589,
1321 589, 589, 589, 589, 589, 36, 35, 33, 30, 24,
1322 592, 586, 592, 592, 592, 592, 592, 592, 592, 592,
1323 594, 21, 594, 594, 594, 594, 594, 594, 594, 594,
1324 595, 20, 595, 595, 595, 595, 595, 595, 595, 595,
1325 596, 19, 596, 596, 596, 596, 596, 596, 597, 597,
1326 597, 597, 597, 597, 597, 597, 598, 598, 598, 598,
1327 598, 598, 598, 598, 17, 16, 15, 0, 0, 0,
1329 596, 0, 0, 0, 0, 0, 597, 0, 0, 0,
1330 0, 0, 0, 0, 598, 599, 599, 599, 599, 599,
1331 599, 599, 599, 600, 600, 600, 600, 600, 600, 600,
1332 600, 601, 601, 601, 601, 601, 601, 601, 601, 0,
1333 0, 0, 0, 599, 0, 0, 0, 0, 0, 0,
1334 0, 600, 605, 605, 605, 605, 605, 605, 0, 601,
1335 602, 602, 602, 602, 602, 602, 602, 602, 604, 604,
1336 604, 604, 604, 604, 604, 604, 0, 0, 0, 0,
1337 605, 608, 608, 608, 608, 608, 608, 0, 602, 0,
1338 0, 0, 0, 0, 0, 0, 604, 607, 607, 607,
1340 607, 607, 607, 607, 607, 0, 0, 0, 0, 608,
1341 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 607, 610, 610, 610, 610,
1343 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
1344 610, 611, 611, 611, 611, 611, 611, 611, 611, 611,
1345 611, 611, 611, 611, 611, 611, 612, 612, 612, 612,
1346 612, 612, 612, 612, 612, 612, 612, 612, 612, 612,
1347 612, 613, 613, 613, 613, 613, 613, 613, 613, 613,
1348 613, 613, 613, 613, 613, 613, 614, 0, 0, 0,
1349 614, 0, 614, 614, 614, 614, 0, 614, 614, 614,
1351 614, 615, 615, 615, 615, 615, 615, 615, 615, 615,
1352 615, 615, 615, 615, 615, 615, 616, 0, 0, 0,
1353 616, 0, 616, 616, 616, 616, 0, 616, 616, 616,
1354 616, 617, 0, 0, 0, 617, 0, 617, 617, 617,
1355 617, 0, 617, 617, 617, 617, 618, 0, 0, 618,
1356 618, 0, 618, 618, 618, 618, 0, 618, 618, 618,
1357 618, 619, 619, 619, 0, 0, 619, 620, 0, 0,
1358 0, 620, 0, 620, 620, 620, 620, 0, 620, 620,
1359 620, 620, 621, 621, 621, 621, 621, 621, 621, 621,
1360 621, 621, 621, 621, 621, 621, 621, 622, 0, 0,
1362 0, 622, 0, 622, 622, 622, 622, 0, 622, 622,
1363 622, 622, 623, 0, 0, 0, 623, 0, 623, 623,
1364 623, 623, 0, 623, 623, 623, 623, 624, 0, 0,
1365 624, 624, 0, 624, 624, 624, 624, 0, 624, 624,
1366 624, 624, 625, 0, 0, 625, 625, 625, 625, 625,
1367 625, 625, 0, 625, 0, 625, 625, 627, 0, 0,
1368 627, 627, 0, 627, 627, 627, 627, 627, 627, 627,
1369 627, 627, 628, 628, 628, 628, 628, 628, 628, 628,
1370 628, 628, 628, 628, 628, 628, 628, 629, 629, 0,
1371 629, 0, 629, 629, 629, 629, 629, 629, 629, 629,
1373 629, 629, 630, 0, 0, 630, 630, 0, 630, 630,
1374 630, 630, 0, 630, 630, 630, 630, 631, 631, 631,
1375 0, 0, 631, 632, 632, 632, 632, 0, 0, 632,
1376 633, 633, 633, 633, 633, 633, 633, 633, 633, 633,
1377 633, 633, 633, 633, 633, 635, 635, 635, 0, 0,
1378 635, 636, 636, 636, 636, 0, 0, 636, 637, 637,
1379 637, 0, 0, 637, 638, 638, 638, 0, 0, 638,
1380 639, 639, 639, 0, 0, 639, 640, 640, 640, 640,
1381 0, 0, 640, 641, 641, 641, 0, 0, 641, 642,
1382 642, 642, 0, 0, 642, 643, 643, 643, 0, 0,
1384 643, 644, 644, 644, 644, 0, 0, 644, 645, 645,
1385 645, 645, 645, 0, 0, 645, 646, 646, 646, 0,
1386 0, 646, 647, 647, 647, 0, 0, 647, 648, 648,
1387 648, 0, 0, 648, 651, 651, 651, 651, 0, 0,
1388 651, 652, 652, 652, 652, 652, 0, 0, 652, 653,
1389 653, 653, 0, 0, 653, 654, 654, 654, 0, 0,
1390 654, 655, 655, 655, 655, 0, 0, 655, 656, 656,
1391 656, 656, 656, 0, 0, 656, 657, 657, 657, 0,
1392 0, 657, 658, 0, 658, 658, 658, 0, 0, 658,
1393 661, 661, 661, 661, 0, 0, 661, 662, 662, 662,
1395 662, 662, 0, 0, 662, 665, 665, 665, 0, 0,
1396 665, 666, 0, 666, 666, 666, 0, 0, 666, 667,
1397 667, 667, 667, 0, 0, 667, 668, 668, 668, 0,
1398 668, 0, 0, 668, 669, 669, 669, 0, 0, 669,
1399 670, 0, 670, 670, 670, 0, 0, 670, 673, 673,
1400 0, 673, 0, 0, 673, 676, 676, 676, 0, 0,
1401 676, 677, 0, 677, 677, 677, 0, 0, 677, 678,
1402 678, 678, 0, 0, 678, 679, 0, 679, 0, 679,
1403 0, 0, 679, 680, 0, 680, 0, 0, 680, 609,
1404 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
1406 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
1407 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
1408 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
1409 609, 609, 609, 609, 609, 609, 609, 609, 609, 609,
1410 609, 609, 609, 609, 609, 609, 609, 609, 609, 609
1413 static yy_state_type yy_last_accepting_state;
1414 static char *yy_last_accepting_cpos;
1416 /* The intent behind this definition is that it'll catch
1417 * any uses of REJECT which flex missed.
1419 #define REJECT reject_used_but_not_detected
1420 #define yymore() yymore_used_but_not_detected
1421 #define YY_MORE_ADJ 0
1422 #define YY_RESTORE_YY_MORE_OFFSET
1428 * Copyright (c) 1996, 1998-2004, 2007
1429 * Todd C. Miller <Todd.Miller@courtesan.com>
1431 * Permission to use, copy, modify, and distribute this software for any
1432 * purpose with or without fee is hereby granted, provided that the above
1433 * copyright notice and this permission notice appear in all copies.
1435 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1436 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1437 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1438 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1439 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1440 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1441 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1442 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
1443 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
1444 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1446 * Sponsored in part by the Defense Advanced Research Projects
1447 * Agency (DARPA) and Air Force Research Laboratory, Air Force
1448 * Materiel Command, USAF, under agreement number F39502-99-1-0512.
1453 #include <sys/types.h>
1454 #include <sys/param.h>
1457 # include <stdlib.h>
1458 # include <stddef.h>
1460 # ifdef HAVE_STDLIB_H
1461 # include <stdlib.h>
1463 #endif /* STDC_HEADERS */
1464 #ifdef HAVE_STRING_H
1465 # include <string.h>
1467 # ifdef HAVE_STRINGS_H
1468 # include <strings.h>
1470 #endif /* HAVE_STRING_H */
1471 #ifdef HAVE_UNISTD_H
1472 # include <unistd.h>
1473 #endif /* HAVE_UNISTD_H */
1474 #if defined(HAVE_MALLOC_H) && !defined(STDC_HEADERS)
1475 # include <malloc.h>
1476 #endif /* HAVE_MALLOC_H && !STDC_HEADERS */
1480 #include <sudo.tab.h>
1483 __unused static const char rcsid[] = "$Sudo: lex.yy.c,v 1.46.2.11 2008/06/26 11:53:49 millert Exp $";
1486 #undef yywrap /* guard against a yywrap macro */
1488 extern YYSTYPE yylval;
1489 extern int clearaliases;
1491 static int sawspace = 0;
1492 static int arg_len = 0;
1493 static int arg_size = 0;
1495 static int ipv6_valid __P((const char *s));
1496 static void _fill __P((char *, int, int));
1497 static void append __P((char *, int));
1498 static void fill_cmnd __P((char *, int));
1499 static void fill_args __P((char *, int, int));
1500 extern void reset_aliases __P((void));
1501 extern void yyerror __P((char *));
1503 #define fill(a, b) _fill(a, b, 0)
1505 /* realloc() to size + COMMANDARGINC to make room for command args */
1506 #define COMMANDARGINC 64
1509 #define LEXTRACE(msg) fputs(msg, stderr)
1511 #define LEXTRACE(msg)
1513 /* XXX - convert GOTRUNAS to exclusive state (GOTDEFS cannot be) */
1526 #line 1527 "lex.yy.c"
1528 /* Macros after this point can all be overridden by user definitions in
1532 #ifndef YY_SKIP_YYWRAP
1534 extern "C" int yywrap YY_PROTO(( void ));
1536 extern int yywrap YY_PROTO(( void ));
1541 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1545 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1548 #ifdef YY_NEED_STRLEN
1549 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1554 static int yyinput YY_PROTO(( void ));
1556 static int input YY_PROTO(( void ));
1560 #if defined(YY_STACK_USED) && YY_STACK_USED
1561 static int yy_start_stack_ptr = 0;
1562 static int yy_start_stack_depth = 0;
1563 static int *yy_start_stack = 0;
1564 #ifndef YY_NO_PUSH_STATE
1565 static void yy_push_state YY_PROTO(( int new_state ));
1567 #ifndef YY_NO_POP_STATE
1568 static void yy_pop_state YY_PROTO(( void ));
1570 #ifndef YY_NO_TOP_STATE
1571 static int yy_top_state YY_PROTO(( void ));
1575 #define YY_NO_PUSH_STATE 1
1576 #define YY_NO_POP_STATE 1
1577 #define YY_NO_TOP_STATE 1
1580 #ifdef YY_MALLOC_DECL
1588 /* Just try to get by without declaring the routines. This will fail
1589 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1590 * or sizeof(void*) != sizeof(int).
1595 /* Amount of stuff to slurp up with each read. */
1596 #ifndef YY_READ_BUF_SIZE
1597 #define YY_READ_BUF_SIZE 8192
1600 /* Copy whatever the last rule matched to the standard output. */
1603 /* This used to be an fputs(), but since the string might contain NUL's,
1604 * we now use fwrite().
1606 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1609 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1610 * is returned in "result".
1613 #define YY_INPUT(buf,result,max_size) \
1614 if ( yy_current_buffer->yy_is_interactive ) \
1617 for ( n = 0; n < max_size && \
1618 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1619 buf[n] = (char) c; \
1621 buf[n++] = (char) c; \
1622 if ( c == EOF && ferror( yyin ) ) \
1623 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1626 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1627 && ferror( yyin ) ) \
1628 YY_FATAL_ERROR( "input in flex scanner failed" );
1631 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1632 * we don't want an extra ';' after the "return" because that will cause
1633 * some compilers to complain about unreachable statements.
1636 #define yyterminate() return YY_NULL
1639 /* Number of entries by which start-condition stack grows. */
1640 #ifndef YY_START_STACK_INCR
1641 #define YY_START_STACK_INCR 25
1644 /* Report a fatal error. */
1645 #ifndef YY_FATAL_ERROR
1646 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1649 /* Default declaration of generated scanner - a define so the user can
1650 * easily add parameters.
1653 #define YY_DECL int yylex YY_PROTO(( void ))
1656 /* Code executed at the beginning of each rule, after yytext and yyleng
1659 #ifndef YY_USER_ACTION
1660 #define YY_USER_ACTION
1663 /* Code executed at the end of each rule. */
1665 #define YY_BREAK break;
1668 #define YY_RULE_SETUP \
1670 yy_current_buffer->yy_at_bol = \
1671 (yytext[yyleng - 1] == '\n'); \
1676 register yy_state_type yy_current_state;
1677 register char *yy_cp, *yy_bp;
1678 register int yy_act;
1680 #line 108 "parse.lex"
1682 #line 1683 "lex.yy.c"
1693 yy_start = 1; /* first start state */
1701 if ( ! yy_current_buffer )
1703 yy_create_buffer( yyin, YY_BUF_SIZE );
1705 yy_load_buffer_state();
1708 while ( 1 ) /* loops until end-of-file is reached */
1712 /* Support of yytext. */
1713 *yy_cp = yy_hold_char;
1715 /* yy_bp points to the position in yy_ch_buf of the start of
1720 yy_current_state = yy_start;
1721 yy_current_state += YY_AT_BOL();
1725 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1726 if ( yy_accept[yy_current_state] )
1728 yy_last_accepting_state = yy_current_state;
1729 yy_last_accepting_cpos = yy_cp;
1731 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1733 yy_current_state = (int) yy_def[yy_current_state];
1734 if ( yy_current_state >= 610 )
1735 yy_c = yy_meta[(unsigned int) yy_c];
1737 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1740 while ( yy_base[yy_current_state] != 3790 );
1743 yy_act = yy_accept[yy_current_state];
1745 { /* have to back up */
1746 yy_cp = yy_last_accepting_cpos;
1747 yy_current_state = yy_last_accepting_state;
1748 yy_act = yy_accept[yy_current_state];
1751 YY_DO_BEFORE_ACTION;
1754 do_action: /* This label is used only to access EOF actions. */
1758 { /* beginning of action switch */
1759 case 0: /* must back up */
1760 /* undo the effects of YY_DO_BEFORE_ACTION */
1761 *yy_cp = yy_hold_char;
1762 yy_cp = yy_last_accepting_cpos;
1763 yy_current_state = yy_last_accepting_state;
1764 goto yy_find_action;
1768 #line 109 "parse.lex"
1773 #line 111 "parse.lex"
1776 LEXTRACE("DEFVAR ");
1777 fill(yytext, yyleng);
1784 #line 119 "parse.lex"
1793 #line 125 "parse.lex"
1801 #line 130 "parse.lex"
1809 #line 135 "parse.lex"
1817 #line 140 "parse.lex"
1819 LEXTRACE("BEGINSTR ");
1820 yylval.string = NULL;
1826 #line 146 "parse.lex"
1828 LEXTRACE("WORD(2) ");
1829 fill(yytext, yyleng);
1837 #line 154 "parse.lex"
1839 /* Line continuation char followed by newline. */
1846 #line 160 "parse.lex"
1848 LEXTRACE("ENDSTR ");
1855 #line 166 "parse.lex"
1857 LEXTRACE("BACKSLASH ");
1858 append(yytext, yyleng);
1863 #line 171 "parse.lex"
1865 LEXTRACE("STRBODY ");
1866 append(yytext, yyleng);
1873 #line 178 "parse.lex"
1875 /* quoted fnmatch glob char, pass verbatim */
1876 LEXTRACE("QUOTEDCHAR ");
1877 fill_args(yytext, 2, sawspace);
1883 #line 185 "parse.lex"
1885 /* quoted sudoers special char, strip backslash */
1886 LEXTRACE("QUOTEDCHAR ");
1887 fill_args(yytext + 1, 1, sawspace);
1893 #line 192 "parse.lex"
1898 } /* end of command line args */
1902 #line 198 "parse.lex"
1905 fill_args(yytext, yyleng, sawspace);
1907 } /* a command line arg */
1912 #line 205 "parse.lex"
1915 switch (yytext[8]) {
1917 LEXTRACE("DEFAULTS_USER ");
1918 return(DEFAULTS_USER);
1920 LEXTRACE("DEFAULTS_RUNAS ");
1921 return(DEFAULTS_RUNAS);
1923 LEXTRACE("DEFAULTS_HOST ");
1924 return(DEFAULTS_HOST);
1926 LEXTRACE("DEFAULTS ");
1933 #line 223 "parse.lex"
1935 fill(yytext, yyleng);
1938 LEXTRACE("HOSTALIAS ");
1941 LEXTRACE("CMNDALIAS ");
1944 LEXTRACE("USERALIAS ");
1947 LEXTRACE("RUNASALIAS ");
1955 #line 242 "parse.lex"
1957 /* cmnd does not require passwd for this user */
1958 LEXTRACE("NOPASSWD ");
1964 #line 248 "parse.lex"
1966 /* cmnd requires passwd for this user */
1967 LEXTRACE("PASSWD ");
1973 #line 254 "parse.lex"
1975 LEXTRACE("NOEXEC ");
1981 #line 259 "parse.lex"
1989 #line 264 "parse.lex"
1991 LEXTRACE("SETENV ");
1997 #line 269 "parse.lex"
1999 LEXTRACE("NOSETENV ");
2005 #line 274 "parse.lex"
2008 fill(yytext, yyleng);
2009 LEXTRACE("NETGROUP ");
2015 #line 281 "parse.lex"
2018 fill(yytext, yyleng);
2025 #line 288 "parse.lex"
2027 fill(yytext, yyleng);
2028 LEXTRACE("NTWKADDR ");
2034 #line 294 "parse.lex"
2036 fill(yytext, yyleng);
2037 LEXTRACE("NTWKADDR ");
2043 #line 300 "parse.lex"
2045 if (!ipv6_valid(yytext)) {
2049 fill(yytext, yyleng);
2050 LEXTRACE("NTWKADDR ");
2056 #line 310 "parse.lex"
2058 if (!ipv6_valid(yytext)) {
2062 fill(yytext, yyleng);
2063 LEXTRACE("NTWKADDR ");
2069 #line 320 "parse.lex"
2078 #line 326 "parse.lex"
2080 if (strcmp(yytext, "ALL") == 0) {
2085 /* XXX - restrict type/role to initial state */
2086 if (strcmp(yytext, "TYPE") == 0) {
2090 if (strcmp(yytext, "ROLE") == 0) {
2094 #endif /* HAVE_SELINUX */
2095 fill(yytext, yyleng);
2102 #line 347 "parse.lex"
2104 /* username/uid that user can run command as */
2105 fill(yytext, yyleng);
2106 LEXTRACE("WORD(3) ");
2112 #line 354 "parse.lex"
2122 #line 361 "parse.lex"
2129 #line 365 "parse.lex"
2132 LEXTRACE("COMMAND ");
2133 fill_cmnd(yytext, yyleng);
2138 #line 371 "parse.lex"
2140 /* directories can't have args... */
2141 if (yytext[yyleng - 1] == '/') {
2142 LEXTRACE("COMMAND ");
2143 fill_cmnd(yytext, yyleng);
2147 LEXTRACE("COMMAND ");
2148 fill_cmnd(yytext, yyleng);
2154 #line 384 "parse.lex"
2157 fill(yytext, yyleng);
2158 LEXTRACE("WORD(4) ");
2164 #line 391 "parse.lex"
2172 #line 396 "parse.lex"
2180 #line 401 "parse.lex"
2188 #line 406 "parse.lex"
2190 if (yyleng % 2 == 1)
2191 return('!'); /* return '!' */
2196 #line 411 "parse.lex"
2202 } /* return newline */
2206 #line 418 "parse.lex"
2207 { /* throw away space/tabs */
2208 sawspace = TRUE; /* but remember for fill_args */
2213 #line 422 "parse.lex"
2215 sawspace = TRUE; /* remember for fill_args */
2218 } /* throw away EOL after \ */
2222 #line 428 "parse.lex"
2228 } /* return comments */
2232 #line 435 "parse.lex"
2238 case YY_STATE_EOF(INITIAL):
2239 case YY_STATE_EOF(GOTRUNAS):
2240 case YY_STATE_EOF(GOTDEFS):
2241 case YY_STATE_EOF(GOTCMND):
2242 case YY_STATE_EOF(STARTDEFS):
2243 case YY_STATE_EOF(INDEFS):
2244 case YY_STATE_EOF(INSTR):
2245 #line 440 "parse.lex"
2247 if (YY_START != INITIAL) {
2257 #line 449 "parse.lex"
2260 #line 2261 "lex.yy.c"
2262 case YY_END_OF_BUFFER:
2264 /* Amount of text matched not including the EOB char. */
2265 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2267 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2268 *yy_cp = yy_hold_char;
2269 YY_RESTORE_YY_MORE_OFFSET
2271 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2273 /* We're scanning a new file or input source. It's
2274 * possible that this happened because the user
2275 * just pointed yyin at a new source and called
2276 * yylex(). If so, then we have to assure
2277 * consistency between yy_current_buffer and our
2278 * globals. Here is the right place to do so, because
2279 * this is the first action (other than possibly a
2280 * back-up) that will match for the new input source.
2282 yy_n_chars = yy_current_buffer->yy_n_chars;
2283 yy_current_buffer->yy_input_file = yyin;
2284 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2287 /* Note that here we test for yy_c_buf_p "<=" to the position
2288 * of the first EOB in the buffer, since yy_c_buf_p will
2289 * already have been incremented past the NUL character
2290 * (since all states make transitions on EOB to the
2291 * end-of-buffer state). Contrast this with the test
2294 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2295 { /* This was really a NUL. */
2296 yy_state_type yy_next_state;
2298 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2300 yy_current_state = yy_get_previous_state();
2302 /* Okay, we're now positioned to make the NUL
2303 * transition. We couldn't have
2304 * yy_get_previous_state() go ahead and do it
2305 * for us because it doesn't know how to deal
2306 * with the possibility of jamming (and we don't
2307 * want to build jamming into it because then it
2308 * will run more slowly).
2311 yy_next_state = yy_try_NUL_trans( yy_current_state );
2313 yy_bp = yytext_ptr + YY_MORE_ADJ;
2315 if ( yy_next_state )
2317 /* Consume the NUL. */
2318 yy_cp = ++yy_c_buf_p;
2319 yy_current_state = yy_next_state;
2326 goto yy_find_action;
2330 else switch ( yy_get_next_buffer() )
2332 case EOB_ACT_END_OF_FILE:
2334 yy_did_buffer_switch_on_eof = 0;
2338 /* Note: because we've taken care in
2339 * yy_get_next_buffer() to have set up
2340 * yytext, we can now set up
2341 * yy_c_buf_p so that if some total
2342 * hoser (like flex itself) wants to
2343 * call the scanner after we return the
2344 * YY_NULL, it'll still work - another
2345 * YY_NULL will get returned.
2347 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2349 yy_act = YY_STATE_EOF(YY_START);
2355 if ( ! yy_did_buffer_switch_on_eof )
2361 case EOB_ACT_CONTINUE_SCAN:
2363 yytext_ptr + yy_amount_of_matched_text;
2365 yy_current_state = yy_get_previous_state();
2368 yy_bp = yytext_ptr + YY_MORE_ADJ;
2371 case EOB_ACT_LAST_MATCH:
2373 &yy_current_buffer->yy_ch_buf[yy_n_chars];
2375 yy_current_state = yy_get_previous_state();
2378 yy_bp = yytext_ptr + YY_MORE_ADJ;
2379 goto yy_find_action;
2386 "fatal flex scanner internal error--no action found" );
2387 } /* end of action switch */
2388 } /* end of scanning one token */
2389 } /* end of yylex */
2392 /* yy_get_next_buffer - try to read in a new buffer
2394 * Returns a code representing an action:
2395 * EOB_ACT_LAST_MATCH -
2396 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2397 * EOB_ACT_END_OF_FILE - end of file
2400 static int yy_get_next_buffer()
2402 register char *dest = yy_current_buffer->yy_ch_buf;
2403 register char *source = yytext_ptr;
2404 register int number_to_move, i;
2407 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
2409 "fatal flex scanner internal error--end of buffer missed" );
2411 if ( yy_current_buffer->yy_fill_buffer == 0 )
2412 { /* Don't try to fill the buffer, so this is an EOF. */
2413 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
2415 /* We matched a single character, the EOB, so
2416 * treat this as a final EOF.
2418 return EOB_ACT_END_OF_FILE;
2423 /* We matched some text prior to the EOB, first
2426 return EOB_ACT_LAST_MATCH;
2430 /* Try to read more data. */
2432 /* First move last chars to start of buffer. */
2433 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
2435 for ( i = 0; i < number_to_move; ++i )
2436 *(dest++) = *(source++);
2438 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2439 /* don't do the read, it's not guaranteed to return an EOF,
2442 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
2447 yy_current_buffer->yy_buf_size - number_to_move - 1;
2449 while ( num_to_read <= 0 )
2450 { /* Not enough room in the buffer - grow it. */
2451 #ifdef YY_USES_REJECT
2453 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2456 /* just a shorter name for the current buffer */
2457 YY_BUFFER_STATE b = yy_current_buffer;
2459 int yy_c_buf_p_offset =
2460 (int) (yy_c_buf_p - b->yy_ch_buf);
2462 if ( b->yy_is_our_buffer )
2464 int new_size = b->yy_buf_size * 2;
2466 if ( new_size <= 0 )
2467 b->yy_buf_size += b->yy_buf_size / 8;
2469 b->yy_buf_size *= 2;
2471 b->yy_ch_buf = (char *)
2472 /* Include room in for 2 EOB chars. */
2473 yy_flex_realloc( (void *) b->yy_ch_buf,
2474 b->yy_buf_size + 2 );
2477 /* Can't grow it, we don't own it. */
2480 if ( ! b->yy_ch_buf )
2482 "fatal error - scanner input buffer overflow" );
2484 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2486 num_to_read = yy_current_buffer->yy_buf_size -
2491 if ( num_to_read > YY_READ_BUF_SIZE )
2492 num_to_read = YY_READ_BUF_SIZE;
2494 /* Read in more data. */
2495 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
2496 yy_n_chars, num_to_read );
2498 yy_current_buffer->yy_n_chars = yy_n_chars;
2501 if ( yy_n_chars == 0 )
2503 if ( number_to_move == YY_MORE_ADJ )
2505 ret_val = EOB_ACT_END_OF_FILE;
2511 ret_val = EOB_ACT_LAST_MATCH;
2512 yy_current_buffer->yy_buffer_status =
2513 YY_BUFFER_EOF_PENDING;
2518 ret_val = EOB_ACT_CONTINUE_SCAN;
2520 yy_n_chars += number_to_move;
2521 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2522 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2524 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
2530 /* yy_get_previous_state - get the state just before the EOB char was reached */
2532 static yy_state_type yy_get_previous_state()
2534 register yy_state_type yy_current_state;
2535 register char *yy_cp;
2537 yy_current_state = yy_start;
2538 yy_current_state += YY_AT_BOL();
2540 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
2542 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2543 if ( yy_accept[yy_current_state] )
2545 yy_last_accepting_state = yy_current_state;
2546 yy_last_accepting_cpos = yy_cp;
2548 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2550 yy_current_state = (int) yy_def[yy_current_state];
2551 if ( yy_current_state >= 610 )
2552 yy_c = yy_meta[(unsigned int) yy_c];
2554 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2557 return yy_current_state;
2561 /* yy_try_NUL_trans - try to make a transition on the NUL character
2564 * next_state = yy_try_NUL_trans( current_state );
2567 #ifdef YY_USE_PROTOS
2568 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
2570 static yy_state_type yy_try_NUL_trans( yy_current_state )
2571 yy_state_type yy_current_state;
2574 register int yy_is_jam;
2575 register char *yy_cp = yy_c_buf_p;
2577 register YY_CHAR yy_c = 1;
2578 if ( yy_accept[yy_current_state] )
2580 yy_last_accepting_state = yy_current_state;
2581 yy_last_accepting_cpos = yy_cp;
2583 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2585 yy_current_state = (int) yy_def[yy_current_state];
2586 if ( yy_current_state >= 610 )
2587 yy_c = yy_meta[(unsigned int) yy_c];
2589 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2590 yy_is_jam = (yy_current_state == 609);
2592 return yy_is_jam ? 0 : yy_current_state;
2597 #ifdef YY_USE_PROTOS
2598 static void yyunput( int c, register char *yy_bp )
2600 static void yyunput( c, yy_bp )
2602 register char *yy_bp;
2605 register char *yy_cp = yy_c_buf_p;
2607 /* undo effects of setting up yytext */
2608 *yy_cp = yy_hold_char;
2610 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2611 { /* need to shift things up to make room */
2612 /* +2 for EOB chars. */
2613 register int number_to_move = yy_n_chars + 2;
2614 register char *dest = &yy_current_buffer->yy_ch_buf[
2615 yy_current_buffer->yy_buf_size + 2];
2616 register char *source =
2617 &yy_current_buffer->yy_ch_buf[number_to_move];
2619 while ( source > yy_current_buffer->yy_ch_buf )
2620 *--dest = *--source;
2622 yy_cp += (int) (dest - source);
2623 yy_bp += (int) (dest - source);
2624 yy_current_buffer->yy_n_chars =
2625 yy_n_chars = yy_current_buffer->yy_buf_size;
2627 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
2628 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2631 *--yy_cp = (char) c;
2635 yy_hold_char = *yy_cp;
2638 #endif /* ifndef YY_NO_UNPUT */
2642 static int yyinput()
2649 *yy_c_buf_p = yy_hold_char;
2651 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2653 /* yy_c_buf_p now points to the character we want to return.
2654 * If this occurs *before* the EOB characters, then it's a
2655 * valid NUL; if not, then we've hit the end of the buffer.
2657 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2658 /* This was really a NUL. */
2662 { /* need more input */
2663 int offset = yy_c_buf_p - yytext_ptr;
2666 switch ( yy_get_next_buffer() )
2668 case EOB_ACT_LAST_MATCH:
2669 /* This happens because yy_g_n_b()
2670 * sees that we've accumulated a
2671 * token and flags that we need to
2672 * try matching the token before
2673 * proceeding. But for input(),
2674 * there's no matching to consider.
2675 * So convert the EOB_ACT_LAST_MATCH
2676 * to EOB_ACT_END_OF_FILE.
2679 /* Reset buffer status. */
2684 case EOB_ACT_END_OF_FILE:
2689 if ( ! yy_did_buffer_switch_on_eof )
2698 case EOB_ACT_CONTINUE_SCAN:
2699 yy_c_buf_p = yytext_ptr + offset;
2705 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
2706 *yy_c_buf_p = '\0'; /* preserve yytext */
2707 yy_hold_char = *++yy_c_buf_p;
2709 yy_current_buffer->yy_at_bol = (c == '\n');
2715 #ifdef YY_USE_PROTOS
2716 void yyrestart( FILE *input_file )
2718 void yyrestart( input_file )
2722 if ( ! yy_current_buffer )
2723 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
2725 yy_init_buffer( yy_current_buffer, input_file );
2726 yy_load_buffer_state();
2730 #ifdef YY_USE_PROTOS
2731 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
2733 void yy_switch_to_buffer( new_buffer )
2734 YY_BUFFER_STATE new_buffer;
2737 if ( yy_current_buffer == new_buffer )
2740 if ( yy_current_buffer )
2742 /* Flush out information for old buffer. */
2743 *yy_c_buf_p = yy_hold_char;
2744 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
2745 yy_current_buffer->yy_n_chars = yy_n_chars;
2748 yy_current_buffer = new_buffer;
2749 yy_load_buffer_state();
2751 /* We don't actually know whether we did this switch during
2752 * EOF (yywrap()) processing, but the only time this flag
2753 * is looked at is after yywrap() is called, so it's safe
2754 * to go ahead and always set it.
2756 yy_did_buffer_switch_on_eof = 1;
2760 #ifdef YY_USE_PROTOS
2761 void yy_load_buffer_state( void )
2763 void yy_load_buffer_state()
2766 yy_n_chars = yy_current_buffer->yy_n_chars;
2767 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
2768 yyin = yy_current_buffer->yy_input_file;
2769 yy_hold_char = *yy_c_buf_p;
2773 #ifdef YY_USE_PROTOS
2774 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
2776 YY_BUFFER_STATE yy_create_buffer( file, size )
2783 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2785 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2787 b->yy_buf_size = size;
2789 /* yy_ch_buf has to be 2 characters longer than the size given because
2790 * we need to put in 2 end-of-buffer characters.
2792 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
2793 if ( ! b->yy_ch_buf )
2794 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2796 b->yy_is_our_buffer = 1;
2798 yy_init_buffer( b, file );
2804 #ifdef YY_USE_PROTOS
2805 void yy_delete_buffer( YY_BUFFER_STATE b )
2807 void yy_delete_buffer( b )
2814 if ( b == yy_current_buffer )
2815 yy_current_buffer = (YY_BUFFER_STATE) 0;
2817 if ( b->yy_is_our_buffer )
2818 yy_flex_free( (void *) b->yy_ch_buf );
2820 yy_flex_free( (void *) b );
2824 #ifndef YY_ALWAYS_INTERACTIVE
2825 #ifndef YY_NEVER_INTERACTIVE
2830 #ifdef YY_USE_PROTOS
2831 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
2833 void yy_init_buffer( b, file )
2842 yy_flush_buffer( b );
2844 b->yy_input_file = file;
2845 b->yy_fill_buffer = 1;
2847 #if defined(YY_ALWAYS_INTERACTIVE) && YY_ALWAYS_INTERACTIVE
2848 b->yy_is_interactive = 1;
2850 #if defined(YY_NEVER_INTERACTIVE) && YY_NEVER_INTERACTIVE
2851 b->yy_is_interactive = 0;
2853 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2860 #ifdef YY_USE_PROTOS
2861 void yy_flush_buffer( YY_BUFFER_STATE b )
2863 void yy_flush_buffer( b )
2873 /* We always need two end-of-buffer characters. The first causes
2874 * a transition to the end-of-buffer state. The second causes
2875 * a jam in that state.
2877 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2878 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2880 b->yy_buf_pos = &b->yy_ch_buf[0];
2883 b->yy_buffer_status = YY_BUFFER_NEW;
2885 if ( b == yy_current_buffer )
2886 yy_load_buffer_state();
2890 #ifndef YY_NO_SCAN_BUFFER
2891 #ifdef YY_USE_PROTOS
2892 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
2894 YY_BUFFER_STATE yy_scan_buffer( base, size )
2902 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2903 base[size-1] != YY_END_OF_BUFFER_CHAR )
2904 /* They forgot to leave room for the EOB's. */
2907 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
2909 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2911 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2912 b->yy_buf_pos = b->yy_ch_buf = base;
2913 b->yy_is_our_buffer = 0;
2914 b->yy_input_file = 0;
2915 b->yy_n_chars = b->yy_buf_size;
2916 b->yy_is_interactive = 0;
2918 b->yy_fill_buffer = 0;
2919 b->yy_buffer_status = YY_BUFFER_NEW;
2921 yy_switch_to_buffer( b );
2928 #ifndef YY_NO_SCAN_STRING
2929 #ifdef YY_USE_PROTOS
2930 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
2932 YY_BUFFER_STATE yy_scan_string( yy_str )
2933 yyconst char *yy_str;
2937 for ( len = 0; yy_str[len]; ++len )
2940 return yy_scan_bytes( yy_str, len );
2945 #ifndef YY_NO_SCAN_BYTES
2946 #ifdef YY_USE_PROTOS
2947 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
2949 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
2950 yyconst char *bytes;
2959 /* Get memory for full buffer, including space for trailing EOB's. */
2961 buf = (char *) yy_flex_alloc( n );
2963 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2965 for ( i = 0; i < len; ++i )
2968 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
2970 b = yy_scan_buffer( buf, n );
2972 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2974 /* It's okay to grow etc. this buffer, and we should throw it
2975 * away when we're done.
2977 b->yy_is_our_buffer = 1;
2984 #ifndef YY_NO_PUSH_STATE
2985 #ifdef YY_USE_PROTOS
2986 static void yy_push_state( int new_state )
2988 static void yy_push_state( new_state )
2992 if ( yy_start_stack_ptr >= yy_start_stack_depth )
2996 yy_start_stack_depth += YY_START_STACK_INCR;
2997 new_size = yy_start_stack_depth * sizeof( int );
2999 if ( ! yy_start_stack )
3000 yy_start_stack = (int *) yy_flex_alloc( new_size );
3003 yy_start_stack = (int *) yy_flex_realloc(
3004 (void *) yy_start_stack, new_size );
3006 if ( ! yy_start_stack )
3008 "out of memory expanding start-condition stack" );
3011 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3018 #ifndef YY_NO_POP_STATE
3019 static void yy_pop_state()
3021 if ( --yy_start_stack_ptr < 0 )
3022 YY_FATAL_ERROR( "start-condition stack underflow" );
3024 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3029 #ifndef YY_NO_TOP_STATE
3030 static int yy_top_state()
3032 return yy_start_stack[yy_start_stack_ptr - 1];
3036 #ifndef YY_EXIT_FAILURE
3037 #define YY_EXIT_FAILURE 2
3040 #ifdef YY_USE_PROTOS
3041 static void yy_fatal_error( yyconst char msg[] )
3043 static void yy_fatal_error( msg )
3047 (void) fprintf( stderr, "%s\n", msg );
3048 exit( YY_EXIT_FAILURE );
3053 /* Redefine yyless() so it works in section 3 code. */
3059 /* Undo effects of setting up yytext. */ \
3060 yytext[yyleng] = yy_hold_char; \
3061 yy_c_buf_p = yytext + n; \
3062 yy_hold_char = *yy_c_buf_p; \
3063 *yy_c_buf_p = '\0'; \
3069 /* Internal utility routines. */
3072 #ifdef YY_USE_PROTOS
3073 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3075 static void yy_flex_strncpy( s1, s2, n )
3082 for ( i = 0; i < n; ++i )
3087 #ifdef YY_NEED_STRLEN
3088 #ifdef YY_USE_PROTOS
3089 static int yy_flex_strlen( yyconst char *s )
3091 static int yy_flex_strlen( s )
3096 for ( n = 0; s[n]; ++n )
3104 #ifdef YY_USE_PROTOS
3105 static void *yy_flex_alloc( yy_size_t size )
3107 static void *yy_flex_alloc( size )
3111 return (void *) malloc( size );
3114 #ifdef YY_USE_PROTOS
3115 static void *yy_flex_realloc( void *ptr, yy_size_t size )
3117 static void *yy_flex_realloc( ptr, size )
3122 /* The cast to (char *) in the following accommodates both
3123 * implementations that use char* generic pointers, and those
3124 * that use void* generic pointers. It works with the latter
3125 * because both ANSI C and C++ allow castless assignment from
3126 * any pointer type to void*, and deal with argument conversions
3127 * as though doing an assignment.
3129 return (void *) realloc( (char *) ptr, size );
3132 #ifdef YY_USE_PROTOS
3133 static void yy_flex_free( void *ptr )
3135 static void yy_flex_free( ptr )
3142 #if defined(YY_MAIN) && YY_MAIN
3149 #line 449 "parse.lex"
3152 _fill(src, len, olen)
3159 dst = olen ? realloc(yylval.string, olen + len + 1) : malloc(len + 1);
3161 yyerror("unable to allocate memory");
3164 yylval.string = dst;
3166 /* Copy the string and collapse any escaped characters. */
3168 for (i = 0, j = 0; i < len; i++, j++) {
3169 if (src[i] == '\\' && i != len - 1)
3184 if (yylval.string != NULL)
3185 olen = strlen(yylval.string);
3187 _fill(src, len, olen);
3195 arg_len = arg_size = 0;
3197 yylval.command.cmnd = (char *) malloc(++len);
3198 if (yylval.command.cmnd == NULL) {
3199 yyerror("unable to allocate memory");
3203 /* copy the string and NULL-terminate it (escapes handled by fnmatch) */
3204 (void) strlcpy(yylval.command.cmnd, s, len);
3206 yylval.command.args = NULL;
3210 fill_args(s, len, addspace)
3218 if (yylval.command.args == NULL) {
3222 new_len = arg_len + len + addspace;
3224 if (new_len >= arg_size) {
3225 /* Allocate more space than we need for subsequent args */
3226 while (new_len >= (arg_size += COMMANDARGINC))
3229 p = yylval.command.args ?
3230 (char *) realloc(yylval.command.args, arg_size) :
3231 (char *) malloc(arg_size);
3233 efree(yylval.command.args);
3234 yyerror("unable to allocate memory");
3237 yylval.command.args = p;
3240 /* Efficiently append the arg (with a leading space if needed). */
3241 p = yylval.command.args + arg_len;
3244 if (strlcpy(p, s, arg_size - (p - yylval.command.args)) != len)
3245 yyerror("fill_args: buffer overflow"); /* paranoia */
3250 * Check to make sure an IPv6 address does not contain multiple instances
3251 * of the string "::". Assumes strlen(s) >= 1.
3252 * Returns TRUE if address is valid else FALSE.
3260 for (; *s != '\0'; s++) {
3261 if (s[0] == ':' && s[1] == ':') {
3266 nmatch = 0; /* reset if we hit netmask */
3269 return (nmatch <= 1);
3276 /* Free space used by the aliases unless called by testsudoers. */