1 
2 #line 3 "<stdout>"
3 
4 #define  YY_INT_ALIGNED short int
5 
6 /* A lexical scanner generated by flex */
7 
8 #define FLEX_SCANNER
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 6
11 #define YY_FLEX_SUBMINOR_VERSION 1
12 #if YY_FLEX_SUBMINOR_VERSION > 0
13 #define FLEX_BETA
14 #endif
15 
16 /* First, we deal with  platform-specific or compiler-specific issues. */
17 
18 /* begin standard C headers. */
19 #include <stdio.h>
20 #include <string.h>
21 #include <errno.h>
22 #include <stdlib.h>
23 
24 /* end standard C headers. */
25 
26 /* flex integer type definitions */
27 
28 #ifndef FLEXINT_H
29 #define FLEXINT_H
30 
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32 
33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34 
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36  * if you want the limit (max/min) macros for int types.
37  */
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
40 #endif
41 
42 #include <inttypes.h>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
56 
57 /* Limits of integral types. */
58 #ifndef INT8_MIN
59 #define INT8_MIN               (-128)
60 #endif
61 #ifndef INT16_MIN
62 #define INT16_MIN              (-32767-1)
63 #endif
64 #ifndef INT32_MIN
65 #define INT32_MIN              (-2147483647-1)
66 #endif
67 #ifndef INT8_MAX
68 #define INT8_MAX               (127)
69 #endif
70 #ifndef INT16_MAX
71 #define INT16_MAX              (32767)
72 #endif
73 #ifndef INT32_MAX
74 #define INT32_MAX              (2147483647)
75 #endif
76 #ifndef UINT8_MAX
77 #define UINT8_MAX              (255U)
78 #endif
79 #ifndef UINT16_MAX
80 #define UINT16_MAX             (65535U)
81 #endif
82 #ifndef UINT32_MAX
83 #define UINT32_MAX             (4294967295U)
84 #endif
85 
86 #endif /* ! C99 */
87 
88 #endif /* ! FLEXINT_H */
89 
90 /* TODO: this is always defined, so inline it */
91 #define yyconst const
92 
93 #if defined(__GNUC__) && __GNUC__ >= 3
94 #define yynoreturn __attribute__((__noreturn__))
95 #else
96 #define yynoreturn
97 #endif
98 
99 /* Returned upon end-of-file. */
100 #define YY_NULL 0
101 
102 /* Promotes a possibly negative, possibly signed char to an unsigned
103  * integer for use as an array index.  If the signed char is negative,
104  * we want to instead treat it as an 8-bit unsigned char, hence the
105  * double cast.
106  */
107 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
108 
109 /* Enter a start condition.  This macro really ought to take a parameter,
110  * but we do it the disgusting crufty way forced on us by the ()-less
111  * definition of BEGIN.
112  */
113 #define BEGIN (yy_start) = 1 + 2 *
114 
115 /* Translate the current start state into a value that can be later handed
116  * to BEGIN to return to the state.  The YYSTATE alias is for lex
117  * compatibility.
118  */
119 #define YY_START (((yy_start) - 1) / 2)
120 #define YYSTATE YY_START
121 
122 /* Action number for EOF rule of a given start state. */
123 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
124 
125 /* Special action meaning "start processing a new file". */
126 #define YY_NEW_FILE yyrestart(yyin  )
127 
128 #define YY_END_OF_BUFFER_CHAR 0
129 
130 /* Size of default input buffer. */
131 #ifndef YY_BUF_SIZE
132 #ifdef __ia64__
133 /* On IA-64, the buffer size is 16k, not 8k.
134  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
135  * Ditto for the __ia64__ case accordingly.
136  */
137 #define YY_BUF_SIZE 32768
138 #else
139 #define YY_BUF_SIZE 16384
140 #endif /* __ia64__ */
141 #endif
142 
143 /* The state buf must be large enough to hold one state per character in the main buffer.
144  */
145 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
146 
147 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
148 #define YY_TYPEDEF_YY_BUFFER_STATE
149 typedef struct yy_buffer_state *YY_BUFFER_STATE;
150 #endif
151 
152 #ifndef YY_TYPEDEF_YY_SIZE_T
153 #define YY_TYPEDEF_YY_SIZE_T
154 typedef size_t yy_size_t;
155 #endif
156 
157 extern int yyleng;
158 
159 extern FILE *yyin, *yyout;
160 
161 #define EOB_ACT_CONTINUE_SCAN 0
162 #define EOB_ACT_END_OF_FILE 1
163 #define EOB_ACT_LAST_MATCH 2
164 
165     #define YY_LESS_LINENO(n)
166     #define YY_LINENO_REWIND_TO(ptr)
167 
168 /* Return all but the first "n" matched characters back to the input stream. */
169 #define yyless(n) \
170 	do \
171 		{ \
172 		/* Undo effects of setting up yytext. */ \
173         int yyless_macro_arg = (n); \
174         YY_LESS_LINENO(yyless_macro_arg);\
175 		*yy_cp = (yy_hold_char); \
176 		YY_RESTORE_YY_MORE_OFFSET \
177 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
178 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
179 		} \
180 	while ( 0 )
181 
182 #define unput(c) yyunput( c, (yytext_ptr)  )
183 
184 #ifndef YY_STRUCT_YY_BUFFER_STATE
185 #define YY_STRUCT_YY_BUFFER_STATE
186 struct yy_buffer_state
187 	{
188 	FILE *yy_input_file;
189 
190 	char *yy_ch_buf;		/* input buffer */
191 	char *yy_buf_pos;		/* current position in input buffer */
192 
193 	/* Size of input buffer in bytes, not including room for EOB
194 	 * characters.
195 	 */
196 	int yy_buf_size;
197 
198 	/* Number of characters read into yy_ch_buf, not including EOB
199 	 * characters.
200 	 */
201 	int yy_n_chars;
202 
203 	/* Whether we "own" the buffer - i.e., we know we created it,
204 	 * and can realloc() it to grow it, and should free() it to
205 	 * delete it.
206 	 */
207 	int yy_is_our_buffer;
208 
209 	/* Whether this is an "interactive" input source; if so, and
210 	 * if we're using stdio for input, then we want to use getc()
211 	 * instead of fread(), to make sure we stop fetching input after
212 	 * each newline.
213 	 */
214 	int yy_is_interactive;
215 
216 	/* Whether we're considered to be at the beginning of a line.
217 	 * If so, '^' rules will be active on the next match, otherwise
218 	 * not.
219 	 */
220 	int yy_at_bol;
221 
222     int yy_bs_lineno; /**< The line count. */
223     int yy_bs_column; /**< The column count. */
224 
225 	/* Whether to try to fill the input buffer when we reach the
226 	 * end of it.
227 	 */
228 	int yy_fill_buffer;
229 
230 	int yy_buffer_status;
231 
232 #define YY_BUFFER_NEW 0
233 #define YY_BUFFER_NORMAL 1
234 	/* When an EOF's been seen but there's still some text to process
235 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
236 	 * shouldn't try reading from the input source any more.  We might
237 	 * still have a bunch of tokens to match, though, because of
238 	 * possible backing-up.
239 	 *
240 	 * When we actually see the EOF, we change the status to "new"
241 	 * (via yyrestart()), so that the user can continue scanning by
242 	 * just pointing yyin at a new input file.
243 	 */
244 #define YY_BUFFER_EOF_PENDING 2
245 
246 	};
247 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
248 
249 /* Stack of input buffers. */
250 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
251 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
252 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
253 
254 /* We provide macros for accessing buffer states in case in the
255  * future we want to put the buffer states in a more general
256  * "scanner state".
257  *
258  * Returns the top of the stack, or NULL.
259  */
260 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
261                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
262                           : NULL)
263 
264 /* Same as previous macro, but useful when we know that the buffer stack is not
265  * NULL or when we need an lvalue. For internal use only.
266  */
267 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
268 
269 /* yy_hold_char holds the character lost when yytext is formed. */
270 static char yy_hold_char;
271 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
272 int yyleng;
273 
274 /* Points to current character in buffer. */
275 static char *yy_c_buf_p = NULL;
276 static int yy_init = 0;		/* whether we need to initialize */
277 static int yy_start = 0;	/* start state number */
278 
279 /* Flag which is used to allow yywrap()'s to do buffer switches
280  * instead of setting up a fresh yyin.  A bit of a hack ...
281  */
282 static int yy_did_buffer_switch_on_eof;
283 
284 void yyrestart (FILE *input_file  );
285 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
286 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
287 void yy_delete_buffer (YY_BUFFER_STATE b  );
288 void yy_flush_buffer (YY_BUFFER_STATE b  );
289 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
290 void yypop_buffer_state (void );
291 
292 static void yyensure_buffer_stack (void );
293 static void yy_load_buffer_state (void );
294 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
295 
296 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
297 
298 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
299 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
300 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
301 
302 void *yyalloc (yy_size_t  );
303 void *yyrealloc (void *,yy_size_t  );
304 void yyfree (void *  );
305 
306 #define yy_new_buffer yy_create_buffer
307 
308 #define yy_set_interactive(is_interactive) \
309 	{ \
310 	if ( ! YY_CURRENT_BUFFER ){ \
311         yyensure_buffer_stack (); \
312 		YY_CURRENT_BUFFER_LVALUE =    \
313             yy_create_buffer(yyin,YY_BUF_SIZE ); \
314 	} \
315 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
316 	}
317 
318 #define yy_set_bol(at_bol) \
319 	{ \
320 	if ( ! YY_CURRENT_BUFFER ){\
321         yyensure_buffer_stack (); \
322 		YY_CURRENT_BUFFER_LVALUE =    \
323             yy_create_buffer(yyin,YY_BUF_SIZE ); \
324 	} \
325 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
326 	}
327 
328 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
329 
330 /* Begin user sect3 */
331 
332 typedef unsigned char YY_CHAR;
333 
334 FILE *yyin = NULL, *yyout = NULL;
335 
336 typedef int yy_state_type;
337 
338 extern int yylineno;
339 
340 int yylineno = 1;
341 
342 extern char *yytext;
343 #ifdef yytext_ptr
344 #undef yytext_ptr
345 #endif
346 #define yytext_ptr yytext
347 
348 static yy_state_type yy_get_previous_state (void );
349 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
350 static int yy_get_next_buffer (void );
351 static void yynoreturn yy_fatal_error (yyconst char* msg  );
352 
353 /* Done after the current pattern has been matched and before the
354  * corresponding action - sets up yytext.
355  */
356 #define YY_DO_BEFORE_ACTION \
357 	(yytext_ptr) = yy_bp; \
358 	yyleng = (int) (yy_cp - yy_bp); \
359 	(yy_hold_char) = *yy_cp; \
360 	*yy_cp = '\0'; \
361 	(yy_c_buf_p) = yy_cp;
362 
363 #define YY_NUM_RULES 35
364 #define YY_END_OF_BUFFER 36
365 /* This struct is not used in this scanner,
366    but its presence is necessary. */
367 struct yy_trans_info
368 	{
369 	flex_int32_t yy_verify;
370 	flex_int32_t yy_nxt;
371 	};
372 static yyconst flex_int16_t yy_accept[600] =
373     {   0,
374         0,    0,   36,   34,   34,   34,   34,   34,   34,   34,
375        34,   34,   34,   34,   34,   34,   34,   34,   34,    0,
376         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
377         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
378         0,    0,    0,    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,   19,    0,    0,    0,    0,
382         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
383         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
384 
385         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
386         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
387         0,    0,    0,    0,   31,   30,   24,   23,   22,   21,
388        20,   33,   32,   26,   25,   29,   28,   27,   15,    0,
389        16,    0,    0,    0,    0,    0,    0,    0,    0,    0,
390         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
391         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
392         0,    0,    0,    0,    0,    0,    0,    0,    0,   15,
393         0,   16,    0,    0,    0,    0,    0,    0,    0,    0,
394         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
395 
396         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
397         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
398         0,    0,    0,    0,    0,    0,    0,   17,   18,    0,
399         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
400         0,   12,   12,    0,    0,    0,    0,    0,    0,    0,
401         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
402         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
403         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
404         0,    0,    0,    0,    0,    0,    0,    0,    0,   12,
405         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
406 
407         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
408         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
409         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
410         0,    0,    0,    0,    0,   12,   10,    0,    7,    7,
411         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
412         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
413         0,    0,    0,    0,    0,    0,    0,    0,    0,   13,
414        14,    0,    0,    0,    0,    0,    0,    0,    0,    0,
415         0,    0,    0,    0,    0,    7,    0,    0,    0,    0,
416         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
417 
418         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
419         0,    0,    0,    0,    0,    0,    0,    9,    0,    0,
420         0,    0,    0,    7,    0,    0,    0,    0,    0,    0,
421         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
422         0,    0,    0,    0,    0,    0,    0,    0,    0,   11,
423         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
424         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
425         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
426         6,    6,    6,    6,    6,    6,    6,    0,    0,    0,
427         0,    0,    0,    0,    0,    0,    5,    0,    5,    0,
428 
429         0,    0,    0,    0,    0,    3,    0,    0,    0,    0,
430         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
431         0,    0,    0,    0,    0,    0,    0,    0,    5,    5,
432         5,    0,    0,   11,    0,    0,    0,    0,    0,    0,
433         0,    0,    0,    0,    0,    0,    0,    0,    0,    5,
434         0,    0,    8,    6,    6,    0,    6,    0,    0,    0,
435         0,    0,    0,    0,    0,    0,    0,    3,    0,    0,
436         0,    6,    0,    0,    0,    0,    0,    0,    0,    6,
437         6,    0,    2,    4,    1,    1,    0,    8,    6,    0,
438         0,    0,    1,    0,    0,    1,    2,    4,    0
439 
440     } ;
441 
442 static yyconst YY_CHAR yy_ec[256] =
443     {   0,
444         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
445         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
446         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
447         1,    4,    1,    1,    1,    1,    1,    1,    1,    5,
448         5,    1,    6,    7,    8,    1,    9,   10,   11,   10,
449        10,   10,   10,   10,   10,   10,   10,   12,    1,    1,
450         1,    1,    1,    1,   13,   14,   15,   16,   17,   18,
451        19,   20,   21,   22,    1,   23,   24,   25,   26,   27,
452         1,   28,   29,   30,   31,   32,   33,    1,   34,    1,
453        35,    1,   36,    1,    1,    1,   37,   14,   38,   39,
454 
455        40,   18,   41,   42,   21,   22,    1,   23,   43,   44,
456        26,   45,    1,   28,   46,   47,   48,   32,   33,    1,
457        34,    1,    1,    1,    1,    1,    1,    1,    1,    1,
458         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
459         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
460         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
461         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
462         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
463         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
464         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
465 
466         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
467         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
468         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
469         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
470         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
471         1,    1,    1,    1,    1
472     } ;
473 
474 static yyconst YY_CHAR yy_meta[49] =
475     {   0,
476         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
477         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
478         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
479         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
480         1,    1,    1,    1,    1,    1,    1,    1
481     } ;
482 
483 static yyconst flex_uint16_t yy_base[600] =
484     {   0,
485         0,    0, 1312, 1313,   36,   47,   54,   81,   23,   35,
486        42,   56,   73, 1285,   51,   81,   75,   71,   87,   80,
487        86,   87, 1286,   91,   97, 1280,  103, 1278,   62,   85,
488        88, 1264,   89,   91, 1260,   94, 1258,  128,  131,  141,
489       136,  184, 1276,  103,  110, 1289, 1281,  111,  127,  128,
490       124, 1269,  128,  130,  124,  128,  133,  156,  158, 1263,
491      1254, 1268, 1267, 1266, 1265, 1264, 1263, 1262, 1261, 1260,
492      1259, 1258, 1257, 1256, 1255, 1313, 1237, 1236, 1235, 1234,
493      1233, 1232, 1231, 1230, 1229, 1228, 1227, 1226, 1225, 1224,
494       179,  188,  174,  162,  166,  190,  191, 1244,  192,  191,
495 
496       200,  202,  204,  214,  221,  222,  230,  238,  239,  242,
497       246,  245,  249,  257,  263,  253,  264,  270,  286,  287,
498       297,  303, 1233, 1232, 1313, 1313, 1313, 1313, 1313, 1313,
499      1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313,  226,  271,
500       274,  287, 1239,  237,  291, 1252,  267,  291,  148, 1233,
501       283,  282,  308, 1255,  310, 1255,  329, 1239,  295,  299,
502       301,  348,  332,  309,  325,  349,  352,  325,  331,  333,
503      1247, 1232,  320,  342,  319,  347,  358, 1224, 1223, 1313,
504       370, 1313,  372,  367,  391,  395,  398,  399,  402,  403,
505       406,  407,  411,  412,  415,  379,  413, 1249,  421,  446,
506 
507       423,  399, 1242,  405,  450,  410,  423,  432,  446,  451,
508      1229,  451,  450, 1220, 1225,  466, 1218, 1237,  452,  457,
509       441, 1216,  458,  458,  447, 1225, 1224, 1313, 1313,  476,
510      1224,  452,  458,  454,  462,  501,  502,  471,  476, 1232,
511       490,  506,  510,  423,  512,  522,  507,  527,  523,  498,
512      1217,  537,  533, 1216,  499,  513, 1229,  520,  521,  350,
513      1210,  513,  509,  545, 1207,  565,  531, 1212,  545, 1225,
514       566,  562, 1204,  540, 1194, 1193,  567,  574,  584,  557,
515      1221,  576, 1206,  588, 1219,  574,  569,  592,  587,  605,
516       590, 1224,  595,  600, 1203, 1196,  590,  578,  591,  606,
517 
518       607, 1203,  607,  606,  626,  622,  623,  630,  637,  646,
519       647,  657,  653,  658,  663,  667, 1200,  672, 1193,  612,
520      1192,  675,  629, 1189, 1188,  682,  692,  679,  616, 1195,
521      1188,  661, 1193, 1206,  694,  686, 1313,  689,  705,  715,
522       706,  709, 1191,  699,  705, 1204,  698,  704,  696, 1185,
523       691,  646,  735, 1193,  703,  704,  702,  718,  732,  749,
524       715,  717, 1201,  727,  750,  754, 1186,  761, 1179, 1313,
525      1313,  760,  762,  772, 1184, 1177, 1182,  773,  749, 1197,
526       768,  770,  788,  782,  777,  789,  793,  799,  803,  800,
527       806,  807,  821,  811,  820,  825,  842,  846,  849,  853,
528 
529       786, 1194,  826, 1179,  860, 1192,  835,  834,  865,  876,
530       860,  877,  880,  883,  884, 1177,  863,  755, 1176, 1177,
531       876,  870,  874,  890,  894, 1179,  790,  876,  868,  889,
532       904,  907,  875,  879, 1187,  893,  919,  923,  930,  934,
533       903, 1172, 1165,  911, 1170, 1156, 1153,  929,  940, 1148,
534       935, 1090,  906,  905,  916,  916,  931,  933,  943,  945,
535       955,  928, 1091,  948, 1061,  961, 1056,  949,  938,  957,
536       966,  980, 1030,  991,  993,  984,  953,  963,  969,  984,
537       967,  971,  961,  981,  985,  969,  974, 1001, 1012,  998,
538       984,  887,  832,  987,  817,  826, 1024,  997, 1035, 1019,
539 
540      1022, 1015, 1036, 1039,  804,  786, 1038,  782, 1040, 1031,
541      1039,  741, 1040, 1025, 1039, 1039, 1055, 1050, 1070,  608,
542       523,  514, 1060, 1046, 1080, 1065, 1077, 1082, 1092, 1102,
543      1112, 1071, 1087, 1313, 1090,  445,  362, 1069,  274, 1079,
544      1070, 1081, 1114, 1113, 1126, 1127, 1130,  247, 1125, 1136,
545      1137, 1110,  221, 1313, 1313, 1120, 1313, 1129,  195, 1128,
546       208, 1135, 1146,  205, 1141, 1151, 1148, 1313, 1153,  127,
547        71, 1313, 1134, 1158, 1162, 1164, 1166, 1168, 1170, 1313,
548      1313,   63,   60,   50, 1172, 1174, 1152, 1313, 1313, 1176,
549      1178, 1180, 1182, 1184, 1186, 1313, 1313, 1313, 1313
550 
551     } ;
552 
553 static yyconst flex_int16_t yy_def[600] =
554     {   0,
555       599,    1,  599,  599,  599,  599,  599,  599,  599,  599,
556       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
557       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
558       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
559       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
560       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
561       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
562       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
563       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
564       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
565 
566       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
567       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
568       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
569       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
570       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
571       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
572       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
573       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
574       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
575       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
576 
577       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
578       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
579       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
580       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
581       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
582       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
583       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
584       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
585       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
586       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
587 
588       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
589       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
590       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
591       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
592       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
593       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
594       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
595       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
596       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
597       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
598 
599       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
600       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
601       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
602       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
603       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
604       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
605       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
606       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
607       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
608       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
609 
610       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
611       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
612       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
613       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
614       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
615       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
616       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
617       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
618       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
619       599,  599,  599,  599,  599,  599,  599,  599,    0
620 
621     } ;
622 
623 static yyconst flex_uint16_t yy_nxt[1362] =
624     {   0,
625         4,    5,    5,    5,    5,    6,    4,    7,    4,    8,
626         8,    4,    9,    4,    4,   10,    4,   11,    4,    4,
627         4,   12,    4,   13,   14,   15,    4,    4,   16,   17,
628         4,    4,   18,    4,   19,    4,    9,    4,   10,    4,
629         4,    4,   13,   14,    4,   16,   17,    4,   20,   43,
630        21,   45,   22,   44,   23,   24,   38,   38,   46,   25,
631        26,  591,   27,   39,   39,   53,   28,   43,   48,   47,
632        44,  590,   29,   30,   45,   31,   32,   33,   34,   35,
633        36,   46,   40,   37,   40,   50,   49,   59,   53,   41,
634        42,   42,   48,   54,   57,   62,  589,   55,   51,   60,
635 
636        77,   64,   66,   49,  581,   58,   69,   78,   63,   50,
637        59,   56,   71,   61,   65,   67,   57,   54,   74,   70,
638        55,  105,   58,   79,  106,   72,   81,   84,   56,   86,
639        80,   75,   89,   82,   85,  109,   87,   91,   91,   90,
640        92,   92,   40,  105,   40,  101,  101,  106,  114,  110,
641       118,  111,  119,   93,  109,  112,   94,  116,   95,  117,
642       580,  113,   96,  120,   97,   98,   99,  114,  118,  100,
643       111,  119,  121,  122,  116,  191,  117,   93,  145,   94,
644       120,  192,  146,   97,   98,   40,  100,   40,  139,  139,
645       140,  102,   41,  103,  103,  121,  122,  141,  141,  142,
646 
647       143,  145,  147,  149,  144,  146,  151,  152,  153,  154,
648       154,  155,  155,  156,  156,  157,  565,  157,  143,  562,
649       148,  144,  157,  157,  157,  157,  147,  149,  572,  151,
650       152,  157,  569,  157,  158,  180,  180,  148,  160,  162,
651       157,  162,  157,  157,  163,  157,  157,  157,  157,  157,
652       157,  159,  157,  164,  157,  185,  157,  161,  162,  168,
653       162,  160,  167,  163,  157,  162,  157,  162,  159,  165,
654       163,  157,  169,  157,  563,  166,  164,  185,  171,  170,
655       181,  181,  168,  182,  182,  167,  165,  162,  162,  162,
656       162,  188,  163,  163,  172,  169,  183,  183,  162,  173,
657 
658       162,  174,  170,  163,  162,  186,  162,  557,  195,  163,
659       188,  172,  194,  189,  175,  190,  173,  196,  197,  198,
660       198,  214,  203,  202,  174,  176,  195,  177,  186,  194,
661       157,  204,  157,  162,  190,  162,  221,  215,  200,  200,
662       202,  203,  176,  217,  216,  214,  177,  223,  204,  162,
663       157,  162,  157,  157,  222,  157,  218,  205,  205,  221,
664       206,  215,  224,  207,  223,  208,  216,  217,  230,  209,
665       230,  210,  211,  212,  225,  218,  213,  312,  222,  228,
666       228,  229,  229,  313,  206,  224,  207,  231,  242,  242,
667       210,  211,  230,  213,  230,  555,  230,  225,  230,  230,
668 
669       230,  230,  230,  230,  230,  230,  230,  230,  230,  230,
670       230,  233,  230,  230,  230,  230,  230,  251,  230,  237,
671       238,  232,  243,  243,  157,  234,  157,  239,  249,  235,
672       245,  245,  291,  291,  233,  236,  254,  240,  232,  256,
673       255,  251,  237,  238,  241,  249,  235,  246,  257,  246,
674       239,  252,  247,  252,  254,  248,  248,  255,  258,  253,
675       253,  241,  256,  260,  270,  262,  263,  157,  268,  157,
676       273,  257,  269,  272,  283,  274,  259,  230,  554,  230,
677       280,  281,  258,  270,  282,  277,  278,  260,  262,  263,
678       284,  268,  274,  259,  273,  269,  272,  280,  283,  285,
679 
680       281,  282,  230,  230,  230,  230,  287,  288,  246,  288,
681       246,  288,  284,  288,  295,  289,  289,  306,  285,  290,
682       290,  292,  292,  246,  157,  246,  157,  307,  246,  287,
683       246,  293,  294,  247,  252,  316,  252,  295,  252,  306,
684       252,  547,  315,  310,  309,  311,  162,  317,  162,  297,
685       307,  163,  298,  316,  299,  323,  546,  319,  300,  315,
686       301,  302,  303,  309,  311,  304,  162,  162,  162,  162,
687       317,  163,  163,  297,  321,  298,  326,  326,  323,  301,
688       302,  319,  304,  327,  327,  230,  328,  230,  330,  230,
689       333,  230,  334,  288,  345,  288,  336,  336,  321,  337,
690 
691       337,  335,  335,  328,  339,  339,  288,  346,  288,  340,
692       340,  334,  330,  333,  336,  336,  343,  345,  347,  349,
693       344,  351,  352,  353,  353,  353,  353,  353,  367,  353,
694       346,  353,  375,  353,  343,  545,  348,  344,  353,  356,
695       353,  369,  347,  349,  351,  352,  354,  353,  353,  353,
696       353,  367,  355,  348,  353,  375,  353,  357,  353,  353,
697       353,  353,  356,  360,  353,  369,  353,  358,  353,  355,
698       353,  361,  398,  157,  362,  157,  162,  377,  162,  359,
699       230,  163,  230,  372,  358,  372,  360,  288,  363,  288,
700       398,  373,  373,  372,  361,  372,  364,  362,  382,  382,
701 
702       377,  374,  374,  380,  380,  381,  383,  157,  383,  157,
703       157,  384,  157,  364,  385,  385,  383,  388,  383,  389,
704       397,  384,  391,  394,  386,  386,  392,  402,  393,  395,
705       404,  401,  403,  353,  405,  353,  353,  397,  353,  388,
706       406,  391,  389,  408,  399,  399,  402,  393,  401,  403,
707       353,  157,  353,  157,  404,  162,  405,  162,  451,  406,
708       163,  372,  162,  372,  162,  416,  408,  163,  538,  411,
709       411,  412,  412,  372,  230,  372,  230,  417,  417,  418,
710       418,  412,  412,  383,  451,  383,  424,  424,  416,  383,
711       383,  383,  383,  509,  425,  384,  425,  533,  424,  424,
712 
713       425,  425,  425,  425,  425,  419,  425,  425,  425,  425,
714       425,  420,  425,  426,  425,  440,  421,  422,  462,  428,
715       423,  425,  425,  425,  425,  433,  425,  429,  425,  427,
716       420,  532,  440,  421,  422,  462,  430,  432,  442,  524,
717       431,  434,  428,  425,  523,  425,  427,  425,  433,  425,
718       437,  445,  437,  430,  353,  438,  353,  446,  439,  439,
719       432,  353,  442,  353,  434,  395,  157,  435,  157,  447,
720       447,  448,  450,  450,  445,  436,  446,  162,  372,  162,
721       372,  230,  163,  230,  230,  230,  230,  230,  454,  456,
722       458,  383,  436,  383,  466,  425,  384,  425,  464,  463,
723 
724       457,  465,  467,  459,  460,  425,  455,  425,  425,  469,
725       425,  456,  454,  458,  521,  464,  466,  457,  463,  473,
726       437,  467,  437,  455,  472,  465,  472,  475,  470,  471,
727       482,  437,  469,  437,  483,  353,  438,  353,  478,  478,
728       484,  230,  473,  230,  480,  480,  485,  486,  487,  482,
729       475,  483,  488,  488,  489,  489,  425,  490,  425,  484,
730       492,  496,  425,  485,  425,  495,  497,  497,  498,  505,
731       486,  487,  506,  506,  490,  499,  499,  498,  507,  507,
732       496,  472,  510,  472,  492,  353,  511,  353,  495,  500,
733       501,  512,  505,  508,  508,  509,  513,  515,  516,  425,
734 
735       520,  425,  517,  522,  517,  510,  528,  528,  512,  511,
736       518,  518,  514,  517,  515,  517,  353,  516,  353,  513,
737       504,  519,  519,  520,  503,  525,  522,  525,  530,  530,
738       526,  531,  531,  527,  527,  498,  525,  353,  525,  353,
739       353,  526,  353,  536,  529,  529,  498,  534,  534,  535,
740       535,  537,  539,  540,  541,  542,  517,  502,  517,  544,
741       544,  425,  548,  425,  543,  543,  525,  536,  525,  494,
742       540,  517,  353,  517,  353,  537,  539,  541,  542,  544,
743       544,  525,  559,  525,  556,  548,  550,  550,  493,  549,
744       549,  551,  551,  525,  558,  525,  552,  552,  526,  553,
745 
746       553,  550,  550,  525,  491,  525,  559,  556,  526,  560,
747       481,  527,  527,  525,  517,  525,  517,  558,  526,  568,
748       568,  529,  529,  561,  561,  562,  560,  425,  425,  425,
749       425,  425,  570,  425,  564,  564,  565,  525,  566,  525,
750       566,  571,  526,  573,  574,  574,  582,  425,  567,  425,
751       575,  575,  566,  566,  566,  566,  570,  578,  578,  479,
752       576,  577,  579,  579,  448,  571,  573,  583,  583,  477,
753       582,  584,  584,  585,  585,  586,  586,  587,  587,  588,
754       588,  592,  592,  593,  593,  594,  594,  595,  595,  596,
755       596,  596,  596,  597,  597,  598,  598,  476,  313,  474,
756 
757       468,  461,  453,  452,  449,  444,  443,  441,  381,  415,
758       414,  413,  410,  409,  407,  400,  396,  390,  387,  379,
759       378,  192,  376,  371,  370,  368,  366,  365,  350,  342,
760       341,  338,  332,  331,  329,  325,  324,  322,  320,  318,
761       113,  314,  308,  305,  296,  286,  279,  276,  275,  271,
762       267,  266,  265,  264,  261,  250,  244,  227,  226,  220,
763       219,  201,  199,  153,  193,  187,  184,  179,  178,  150,
764       138,  137,  136,  135,  134,  133,  132,  131,  130,  129,
765       128,  127,  126,  125,  138,  137,  136,  135,  134,  133,
766       132,  131,  130,  129,  128,  127,  126,  125,  124,  123,
767 
768       115,  108,  107,  104,   76,   88,   83,   76,   73,   68,
769        52,  599,    3,  599,  599,  599,  599,  599,  599,  599,
770       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
771       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
772       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
773       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
774       599
775     } ;
776 
777 static yyconst flex_int16_t yy_chk[1362] =
778     {   0,
779         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
780         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
781         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
782         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
783         1,    1,    1,    1,    1,    1,    1,    1,    5,    9,
784         5,   10,    5,    9,    5,    5,    6,    6,   11,    5,
785         5,  584,    5,    7,    7,   15,    5,    9,   12,   11,
786         9,  583,    5,    5,   10,    5,    5,    5,    5,    5,
787         5,   11,    8,    5,    8,   13,   12,   18,   15,    8,
788         8,    8,   12,   16,   17,   20,  582,   16,   13,   19,
789 
790        29,   21,   22,   12,  571,   17,   24,   29,   20,   13,
791        18,   16,   25,   19,   21,   22,   17,   16,   27,   24,
792        16,   44,   17,   30,   45,   25,   31,   33,   16,   34,
793        30,   27,   36,   31,   33,   48,   34,   38,   38,   36,
794        39,   39,   40,   44,   40,   41,   41,   45,   51,   49,
795        55,   49,   56,   40,   48,   50,   40,   53,   40,   54,
796       570,   50,   40,   57,   40,   40,   40,   51,   55,   40,
797        49,   56,   58,   59,   53,  149,   54,   40,   94,   40,
798        57,  149,   95,   40,   40,   42,   40,   42,   91,   91,
799        91,   42,   42,   42,   42,   58,   59,   92,   92,   92,
800 
801        93,   94,   96,   97,   93,   95,   99,  100,  101,  101,
802       101,  102,  102,  103,  103,  104,  564,  104,   93,  561,
803        96,   93,  105,  106,  105,  106,   96,   97,  559,   99,
804       100,  107,  553,  107,  104,  139,  139,   96,  106,  108,
805       109,  108,  109,  110,  108,  110,  112,  111,  112,  111,
806       113,  105,  113,  108,  116,  144,  116,  107,  114,  112,
807       114,  106,  111,  114,  115,  117,  115,  117,  105,  109,
808       117,  118,  114,  118,  548,  110,  108,  144,  116,  115,
809       140,  140,  112,  141,  141,  111,  109,  119,  120,  119,
810       120,  147,  119,  120,  117,  114,  142,  142,  121,  118,
811 
812       121,  119,  115,  121,  122,  145,  122,  539,  152,  122,
813       147,  117,  151,  148,  120,  148,  118,  153,  153,  155,
814       155,  164,  160,  159,  119,  121,  152,  122,  145,  151,
815       157,  161,  157,  163,  148,  163,  173,  165,  157,  157,
816       159,  160,  121,  169,  168,  164,  122,  175,  161,  162,
817       166,  162,  166,  167,  174,  167,  170,  162,  162,  173,
818       162,  165,  176,  162,  175,  162,  168,  169,  184,  162,
819       184,  162,  162,  162,  177,  170,  162,  260,  174,  181,
820       181,  183,  183,  260,  162,  176,  162,  184,  196,  196,
821       162,  162,  185,  162,  185,  537,  186,  177,  186,  187,
822 
823       188,  187,  188,  189,  190,  189,  190,  191,  192,  191,
824       192,  186,  193,  194,  193,  194,  195,  204,  195,  190,
825       191,  185,  197,  197,  201,  187,  201,  193,  202,  188,
826       199,  199,  244,  244,  186,  189,  206,  194,  185,  207,
827       206,  204,  190,  191,  195,  202,  188,  200,  208,  200,
828       193,  205,  200,  205,  206,  200,  200,  206,  209,  205,
829       205,  195,  207,  210,  221,  212,  213,  216,  219,  216,
830       224,  208,  220,  223,  235,  225,  209,  230,  536,  230,
831       232,  233,  209,  221,  234,  230,  230,  210,  212,  213,
832       238,  219,  225,  209,  224,  220,  223,  232,  235,  239,
833 
834       233,  234,  236,  237,  236,  237,  241,  242,  247,  242,
835       247,  243,  238,  243,  250,  242,  242,  255,  239,  243,
836       243,  245,  245,  246,  249,  246,  249,  256,  248,  241,
837       248,  246,  246,  248,  253,  263,  253,  250,  252,  255,
838       252,  522,  262,  259,  258,  259,  264,  267,  264,  252,
839       256,  264,  252,  263,  252,  274,  521,  269,  252,  262,
840       252,  252,  252,  258,  259,  252,  266,  271,  266,  271,
841       267,  266,  271,  252,  272,  252,  277,  277,  274,  252,
842       252,  269,  252,  278,  278,  279,  280,  279,  282,  284,
843       286,  284,  287,  288,  298,  288,  289,  289,  272,  291,
844 
845       291,  288,  288,  280,  293,  293,  290,  299,  290,  294,
846       294,  287,  282,  286,  290,  290,  297,  298,  300,  301,
847       297,  303,  304,  306,  307,  306,  307,  305,  320,  305,
848       299,  308,  329,  308,  297,  520,  300,  297,  309,  307,
849       309,  323,  300,  301,  303,  304,  305,  310,  311,  310,
850       311,  320,  306,  300,  313,  329,  313,  308,  312,  314,
851       312,  314,  307,  311,  315,  323,  315,  309,  316,  306,
852       316,  312,  352,  318,  314,  318,  322,  332,  322,  310,
853       328,  322,  328,  326,  309,  326,  311,  336,  315,  336,
854       352,  326,  326,  327,  312,  327,  316,  314,  338,  338,
855 
856       332,  327,  327,  335,  335,  335,  339,  341,  339,  341,
857       342,  339,  342,  316,  339,  339,  340,  344,  340,  345,
858       351,  340,  347,  349,  340,  340,  348,  356,  348,  349,
859       358,  355,  357,  359,  361,  359,  353,  351,  353,  344,
860       362,  347,  345,  364,  353,  353,  356,  348,  355,  357,
861       360,  365,  360,  365,  358,  366,  361,  366,  418,  362,
862       366,  372,  368,  372,  368,  379,  364,  368,  512,  372,
863       372,  373,  373,  374,  378,  374,  378,  381,  381,  382,
864       382,  374,  374,  384,  418,  384,  385,  385,  379,  383,
865       386,  383,  386,  508,  387,  386,  387,  506,  386,  386,
866 
867       388,  390,  388,  390,  389,  383,  389,  391,  392,  391,
868       392,  383,  394,  387,  394,  401,  383,  383,  427,  389,
869       383,  395,  393,  395,  393,  394,  396,  390,  396,  388,
870       383,  505,  401,  383,  383,  427,  391,  393,  403,  496,
871       392,  396,  389,  397,  495,  397,  388,  398,  394,  398,
872       399,  407,  399,  391,  400,  399,  400,  408,  399,  399,
873       393,  405,  403,  405,  396,  493,  409,  397,  409,  411,
874       411,  411,  417,  417,  407,  398,  408,  410,  412,  410,
875       412,  413,  410,  413,  414,  415,  414,  415,  421,  422,
876       423,  424,  398,  424,  433,  425,  424,  425,  429,  428,
877 
878       422,  430,  434,  425,  425,  431,  421,  431,  432,  436,
879       432,  422,  421,  423,  492,  429,  433,  422,  428,  441,
880       437,  434,  437,  421,  438,  430,  438,  444,  437,  437,
881       453,  439,  436,  439,  454,  440,  439,  440,  448,  448,
882       455,  449,  441,  449,  451,  451,  456,  457,  458,  453,
883       444,  454,  459,  459,  460,  460,  461,  462,  461,  455,
884       464,  469,  466,  456,  466,  468,  470,  470,  470,  477,
885       457,  458,  478,  478,  462,  471,  471,  471,  479,  479,
886       469,  472,  481,  472,  464,  476,  482,  476,  468,  472,
887       472,  483,  477,  480,  480,  480,  484,  486,  487,  490,
888 
889       491,  490,  488,  494,  488,  481,  498,  498,  483,  482,
890       488,  488,  485,  489,  486,  489,  502,  487,  502,  484,
891       475,  489,  489,  491,  474,  497,  494,  497,  500,  500,
892       497,  501,  501,  497,  497,  497,  499,  503,  499,  503,
893       504,  499,  504,  510,  499,  499,  499,  507,  507,  509,
894       509,  511,  513,  514,  515,  516,  517,  473,  517,  518,
895       518,  523,  524,  523,  517,  517,  526,  510,  526,  467,
896       514,  519,  532,  519,  532,  511,  513,  515,  516,  519,
897       519,  525,  541,  525,  538,  524,  527,  527,  465,  525,
898       525,  528,  528,  529,  540,  529,  533,  533,  529,  535,
899 
900       535,  529,  529,  530,  463,  530,  541,  538,  530,  542,
901       452,  530,  530,  531,  544,  531,  544,  540,  531,  552,
902       552,  531,  531,  543,  543,  543,  542,  545,  546,  545,
903       546,  547,  556,  547,  549,  549,  549,  550,  551,  550,
904       551,  558,  550,  560,  562,  562,  573,  563,  551,  563,
905       565,  565,  566,  587,  566,  587,  556,  567,  567,  450,
906       566,  566,  569,  569,  447,  558,  560,  574,  574,  446,
907       573,  575,  575,  576,  576,  577,  577,  578,  578,  579,
908       579,  585,  585,  586,  586,  590,  590,  591,  591,  592,
909       592,  593,  593,  594,  594,  595,  595,  445,  443,  442,
910 
911       435,  426,  420,  419,  416,  406,  404,  402,  380,  377,
912       376,  375,  369,  367,  363,  354,  350,  346,  343,  334,
913       333,  331,  330,  325,  324,  321,  319,  317,  302,  296,
914       295,  292,  285,  283,  281,  276,  275,  273,  270,  268,
915       265,  261,  257,  254,  251,  240,  231,  227,  226,  222,
916       218,  217,  215,  214,  211,  203,  198,  179,  178,  172,
917       171,  158,  156,  154,  150,  146,  143,  124,  123,   98,
918        90,   89,   88,   87,   86,   85,   84,   83,   82,   81,
919        80,   79,   78,   77,   75,   74,   73,   72,   71,   70,
920        69,   68,   67,   66,   65,   64,   63,   62,   61,   60,
921 
922        52,   47,   46,   43,   37,   35,   32,   28,   26,   23,
923        14,    3,  599,  599,  599,  599,  599,  599,  599,  599,
924       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
925       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
926       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
927       599,  599,  599,  599,  599,  599,  599,  599,  599,  599,
928       599
929     } ;
930 
931 static yy_state_type yy_last_accepting_state;
932 static char *yy_last_accepting_cpos;
933 
934 extern int yy_flex_debug;
935 int yy_flex_debug = 0;
936 
937 /* The intent behind this definition is that it'll catch
938  * any uses of REJECT which flex missed.
939  */
940 #define REJECT reject_used_but_not_detected
941 #define yymore() yymore_used_but_not_detected
942 #define YY_MORE_ADJ 0
943 #define YY_RESTORE_YY_MORE_OFFSET
944 char *yytext;
945 #line 1 "./dtimep.lex"
946 /*
947 ** dtimep.lex exceeds the default table capacities for some old versions
948 ** of lex (and the minimum defaults as specified by POSIX).  The following
949 ** choices meet or exceed the lex defaults for older SunOS4.x, Solaris,
950 ** HPUX, and AIX.
951 */
952 #line 12 "./dtimep.lex"
953 #include <time.h>
954 #include <ctype.h>
955 #include <h/tws.h>
956 
957 /*
958 ** Since we're looking at a string at a time, don't worry about
959 ** wrapping to the next buffer.
960 */
961 #define yywrap() 1
962 #define YY_SKIP_YYWRAP
963 
964 #define YY_NO_INPUT
965 
966 /*
967 ** This is the tricky thing that makes this function cool.  We
968 ** replace the traditional int yylex(void) declaration with our
969 ** dparsetime() declaration, essentially piggy-backing off the
970 ** utility of the yylex() function and adding what we need to make
971 ** the parsing function useful to us.
972 */
973 #define YY_DECL struct tws *dparsetime(char *lexstr)
974 
975 /*
976 ** yyerminate() is called after the input string is matched to
977 ** completion (actually, when the lexer reaches an EOF).  The only
978 ** thing that really needs to be in this macro function is the
979 ** return call, which must be substituted inline into dparsetime.
980 */
981 
982 #define yyterminate() (void)yy_delete_buffer(lexhandle); \
983 	if(!(tw.tw_flags & TW_SUCC)) { \
984 		return (struct tws *)NULL; \
985 	} \
986 	if(tw.tw_year < 1970) \
987 		tw.tw_year += 1900; \
988 	if(tw.tw_year < 1970) \
989 		tw.tw_year += 100; \
990 	return(&tw)
991 
992 /*
993 ** Patchable flag that says how to interpret NN/NN/NN dates. When
994 ** true, we do it European style: DD/MM/YY. When false, we do it
995 ** American style: MM/DD/YY.  Of course, these are all non-RFC822
996 ** compliant.
997 */
998 int europeandate = 0;
999 
1000 static int
name2num(char * name,char * names[])1001 name2num(char *name, char *names[])
1002 {
1003 	int i;
1004 
1005 	for (i=0; names[i]; i++) {
1006 		if (strncasecmp(name, names[i], strlen(names[i]))==0) {
1007 			return i;
1008 		}
1009 	}
1010 	return 0;
1011 }
1012 
1013 /*
1014 ** The SET* macros will parse for the appropriate field, and leave the
1015 ** cp pointer at the first character after the desired field. Be
1016 ** careful with variable-length fields or alpha-num mixes.
1017 **
1018 ** The SKIP* macros skip over characters of a particular class and
1019 ** leave cp at the position of the first character that doesn't match
1020 ** that class. Correspondingly, SKIPTO* skips until it reaches a
1021 ** character of a particular class.
1022 */
1023 
1024 #define INIT() { cp = yytext;}
1025 #define SETWDAY()  { tw.tw_wday = name2num(cp, tw_dotw); \
1026 	tw.tw_flags &= ~TW_SDAY; tw.tw_flags |= TW_SEXP; SKIPA(); }
1027 #define SETMON()  { tw.tw_mon = name2num(cp, tw_moty); SKIPA(); }
1028 #define SETMON_NUM()  { tw.tw_mon = atoi(cp)-1; SKIPD(); }
1029 #define SETYEAR()  { tw.tw_year = atoi(cp); SKIPD(); }
1030 #define SETDAY()  { tw.tw_mday = atoi(cp); tw.tw_flags |= TW_YES; SKIPD(); }
1031 #define SETTIME()  { tw.tw_hour = atoi(cp); cp += 2; SKIPTOD(); \
1032 	tw.tw_min = atoi(cp); cp += 2; if(*cp == ':') { \
1033 	tw.tw_sec = atoi(++cp); SKIPD(); } }
1034 #define SETZONE(x)  { tw.tw_zone = ((x)/100)*60+(x)%100; \
1035 	tw.tw_flags |= TW_SZEXP; SKIPD(); }
1036 #define SETZONEC(h, m)  { tw.tw_zone = (h)*60+(m); \
1037 	tw.tw_flags |= TW_SZEXP; SKIPD(); }
1038 #define SETDST()  { tw.tw_flags |= TW_DST; }
1039 #define SKIPD()  { while ( isdigit(*cp++) ) ; --cp; }
1040 #define SKIPTOD()  { while ( !isdigit(*cp++) ) ; --cp; }
1041 #define SKIPA()  { while ( isalpha(*cp++) ) ; --cp; }
1042 #define SKIPTOA()  { while ( !isalpha(*cp++) ) ; --cp; }
1043 #define SKIPSP()  { while ( isspace(*cp++) ) ; --cp; }
1044 #define SKIPTOSP()  { while ( !isspace(*cp++) ) ; --cp; }
1045 
1046 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
1047 # ifdef HAVE_SYS_TIME_H
1048 #  include <sys/time.h>
1049 # endif
1050 #include <time.h>
1051 
1052 static void
zonehack(struct tws * tw)1053 zonehack (struct tws *tw)
1054 {
1055 	struct tm *tm;
1056 
1057 	if (dmktime (tw) == (time_t) -1)
1058 		return;
1059 
1060 	tm = localtime (&tw->tw_clock);
1061 	if (tm->tm_isdst) {
1062 		tw->tw_flags |= TW_DST;
1063 		tw->tw_zone -= 60;
1064 	}
1065 }
1066 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
1067 /*
1068 ** The year can either be 2 digits, or 4. However, after
1069 ** Y2K, we found that some MUA were reporting the year 100, hence
1070 ** the middle term here. yyterminate() resolves the actual
1071 ** issues with 2-digit years.
1072 */
1073 #line 1074 "<stdout>"
1074 
1075 #define INITIAL 0
1076 
1077 #ifndef YY_NO_UNISTD_H
1078 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1079  * down here because we want the user's section 1 to have been scanned first.
1080  * The user has a chance to override it with an option.
1081  */
1082 #include <unistd.h>
1083 #endif
1084 
1085 #ifndef YY_EXTRA_TYPE
1086 #define YY_EXTRA_TYPE void *
1087 #endif
1088 
1089 static int yy_init_globals (void );
1090 
1091 /* Accessor methods to globals.
1092    These are made visible to non-reentrant scanners for convenience. */
1093 
1094 int yylex_destroy (void );
1095 
1096 int yyget_debug (void );
1097 
1098 void yyset_debug (int debug_flag  );
1099 
1100 YY_EXTRA_TYPE yyget_extra (void );
1101 
1102 void yyset_extra (YY_EXTRA_TYPE user_defined  );
1103 
1104 FILE *yyget_in (void );
1105 
1106 void yyset_in  (FILE * _in_str  );
1107 
1108 FILE *yyget_out (void );
1109 
1110 void yyset_out  (FILE * _out_str  );
1111 
1112 			int yyget_leng (void );
1113 
1114 char *yyget_text (void );
1115 
1116 int yyget_lineno (void );
1117 
1118 void yyset_lineno (int _line_number  );
1119 
1120 /* Macros after this point can all be overridden by user definitions in
1121  * section 1.
1122  */
1123 
1124 #ifndef YY_SKIP_YYWRAP
1125 #ifdef __cplusplus
1126 extern "C" int yywrap (void );
1127 #else
1128 extern int yywrap (void );
1129 #endif
1130 #endif
1131 
1132 #ifndef YY_NO_UNPUT
1133 
1134     static void yyunput (int c,char *buf_ptr  );
1135 
1136 #endif
1137 
1138 #ifndef yytext_ptr
1139 static void yy_flex_strncpy (char *,yyconst char *,int );
1140 #endif
1141 
1142 #ifdef YY_NEED_STRLEN
1143 static int yy_flex_strlen (yyconst char * );
1144 #endif
1145 
1146 #ifndef YY_NO_INPUT
1147 
1148 #ifdef __cplusplus
1149 static int yyinput (void );
1150 #else
1151 static int input (void );
1152 #endif
1153 
1154 #endif
1155 
1156 /* Amount of stuff to slurp up with each read. */
1157 #ifndef YY_READ_BUF_SIZE
1158 #ifdef __ia64__
1159 /* On IA-64, the buffer size is 16k, not 8k */
1160 #define YY_READ_BUF_SIZE 16384
1161 #else
1162 #define YY_READ_BUF_SIZE 8192
1163 #endif /* __ia64__ */
1164 #endif
1165 
1166 /* Copy whatever the last rule matched to the standard output. */
1167 #ifndef ECHO
1168 /* This used to be an fputs(), but since the string might contain NUL's,
1169  * we now use fwrite().
1170  */
1171 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1172 #endif
1173 
1174 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1175  * is returned in "result".
1176  */
1177 #ifndef YY_INPUT
1178 #define YY_INPUT(buf,result,max_size) \
1179 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1180 		{ \
1181 		int c = '*'; \
1182 		size_t n; \
1183 		for ( n = 0; n < max_size && \
1184 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1185 			buf[n] = (char) c; \
1186 		if ( c == '\n' ) \
1187 			buf[n++] = (char) c; \
1188 		if ( c == EOF && ferror( yyin ) ) \
1189 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1190 		result = n; \
1191 		} \
1192 	else \
1193 		{ \
1194 		errno=0; \
1195 		while ( (result = (int) fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1196 			{ \
1197 			if( errno != EINTR) \
1198 				{ \
1199 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1200 				break; \
1201 				} \
1202 			errno=0; \
1203 			clearerr(yyin); \
1204 			} \
1205 		}\
1206 \
1207 
1208 #endif
1209 
1210 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1211  * we don't want an extra ';' after the "return" because that will cause
1212  * some compilers to complain about unreachable statements.
1213  */
1214 #ifndef yyterminate
1215 #define yyterminate() return YY_NULL
1216 #endif
1217 
1218 /* Number of entries by which start-condition stack grows. */
1219 #ifndef YY_START_STACK_INCR
1220 #define YY_START_STACK_INCR 25
1221 #endif
1222 
1223 /* Report a fatal error. */
1224 #ifndef YY_FATAL_ERROR
1225 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1226 #endif
1227 
1228 /* end tables serialization structures and prototypes */
1229 
1230 /* Default declaration of generated scanner - a define so the user can
1231  * easily add parameters.
1232  */
1233 #ifndef YY_DECL
1234 #define YY_DECL_IS_OURS 1
1235 
1236 extern int yylex (void);
1237 
1238 #define YY_DECL int yylex (void)
1239 #endif /* !YY_DECL */
1240 
1241 /* Code executed at the beginning of each rule, after yytext and yyleng
1242  * have been set up.
1243  */
1244 #ifndef YY_USER_ACTION
1245 #define YY_USER_ACTION
1246 #endif
1247 
1248 /* Code executed at the end of each rule. */
1249 #ifndef YY_BREAK
1250 #define YY_BREAK /*LINTED*/break;
1251 #endif
1252 
1253 #define YY_RULE_SETUP \
1254 	YY_USER_ACTION
1255 
1256 /** The main scanner function which does all the work.
1257  */
1258 YY_DECL
1259 {
1260 	yy_state_type yy_current_state;
1261 	char *yy_cp, *yy_bp;
1262 	int yy_act;
1263 
1264 	if ( !(yy_init) )
1265 		{
1266 		(yy_init) = 1;
1267 
1268 #ifdef YY_USER_INIT
1269 		YY_USER_INIT;
1270 #endif
1271 
1272 		if ( ! (yy_start) )
1273 			(yy_start) = 1;	/* first start state */
1274 
1275 		if ( ! yyin )
1276 			yyin = stdin;
1277 
1278 		if ( ! yyout )
1279 			yyout = stdout;
1280 
1281 		if ( ! YY_CURRENT_BUFFER ) {
1282 			yyensure_buffer_stack ();
1283 			YY_CURRENT_BUFFER_LVALUE =
1284 				yy_create_buffer(yyin,YY_BUF_SIZE );
1285 		}
1286 
1287 		yy_load_buffer_state( );
1288 		}
1289 
1290 	{
1291 #line 170 "./dtimep.lex"
1292 
1293 
1294 	/*
1295 	** This section begins the definition of dparsetime().
1296 	** Put here any local variable definitions and initializations
1297 	*/
1298 	YY_BUFFER_STATE lexhandle;
1299 
1300 	unsigned char *cp;
1301 	static struct tws tw;
1302 
1303 	memset(&tw,0,sizeof(struct tws));
1304 
1305 	lexhandle = yy_scan_string(lexstr);
1306 
1307 
1308 #line 1309 "<stdout>"
1309 
1310 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
1311 		{
1312 		yy_cp = (yy_c_buf_p);
1313 
1314 		/* Support of yytext. */
1315 		*yy_cp = (yy_hold_char);
1316 
1317 		/* yy_bp points to the position in yy_ch_buf of the start of
1318 		 * the current run.
1319 		 */
1320 		yy_bp = yy_cp;
1321 
1322 		yy_current_state = (yy_start);
1323 yy_match:
1324 		do
1325 			{
1326 			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1327 			if ( yy_accept[yy_current_state] )
1328 				{
1329 				(yy_last_accepting_state) = yy_current_state;
1330 				(yy_last_accepting_cpos) = yy_cp;
1331 				}
1332 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1333 				{
1334 				yy_current_state = (int) yy_def[yy_current_state];
1335 				if ( yy_current_state >= 600 )
1336 					yy_c = yy_meta[(unsigned int) yy_c];
1337 				}
1338 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1339 			++yy_cp;
1340 			}
1341 		while ( yy_base[yy_current_state] != 1313 );
1342 
1343 yy_find_action:
1344 		yy_act = yy_accept[yy_current_state];
1345 		if ( yy_act == 0 )
1346 			{ /* have to back up */
1347 			yy_cp = (yy_last_accepting_cpos);
1348 			yy_current_state = (yy_last_accepting_state);
1349 			yy_act = yy_accept[yy_current_state];
1350 			}
1351 
1352 		YY_DO_BEFORE_ACTION;
1353 
1354 do_action:	/* This label is used only to access EOF actions. */
1355 
1356 		switch ( yy_act )
1357 	{ /* beginning of action switch */
1358 			case 0: /* must back up */
1359 			/* undo the effects of YY_DO_BEFORE_ACTION */
1360 			*yy_cp = (yy_hold_char);
1361 			yy_cp = (yy_last_accepting_cpos);
1362 			yy_current_state = (yy_last_accepting_state);
1363 			goto yy_find_action;
1364 
1365 case 1:
1366 YY_RULE_SETUP
1367 #line 186 "./dtimep.lex"
1368 {
1369 	INIT();
1370 	SETWDAY();
1371 	SKIPTOA();
1372 	SETMON();
1373 	SKIPTOD();
1374 	SETDAY();
1375 	SKIPTOD();
1376 	SETTIME();
1377 	SKIPTOD();
1378 	SETYEAR();
1379 }
1380 	YY_BREAK
1381 case 2:
1382 YY_RULE_SETUP
1383 #line 199 "./dtimep.lex"
1384 {
1385 	INIT();
1386 	SETWDAY();
1387 	SKIPTOD();
1388 	SETDAY();
1389 	SKIPTOA();
1390 	SETMON();
1391 	SKIPTOD();
1392 	SETYEAR();
1393 	SKIPTOD();
1394 	SETTIME();
1395 }
1396 	YY_BREAK
1397 case 3:
1398 YY_RULE_SETUP
1399 #line 211 "./dtimep.lex"
1400 {
1401 	INIT();
1402 	SETDAY();
1403 	SKIPTOA();
1404 	SETMON();
1405 	SKIPTOD();
1406 	SETYEAR();
1407 	SKIPTOD();
1408 	SETTIME();
1409 }
1410 	YY_BREAK
1411 case 4:
1412 YY_RULE_SETUP
1413 #line 221 "./dtimep.lex"
1414 {
1415 	INIT();
1416 	SETWDAY();
1417 	SKIPTOA();
1418 	SETMON();
1419 	SKIPTOD();
1420 	SETDAY();
1421 	SKIPTOD();
1422 	SETYEAR();
1423 	SKIPTOD();
1424 	SETTIME();
1425 }
1426 	YY_BREAK
1427 case 5:
1428 YY_RULE_SETUP
1429 #line 233 "./dtimep.lex"
1430 {
1431 	INIT();
1432 	SETWDAY();
1433 	SKIPTOA();
1434 	SETMON();
1435 	SKIPTOD();
1436 	SETDAY();
1437 	SKIPTOD();
1438 	SETYEAR();
1439 }
1440 	YY_BREAK
1441 case 6:
1442 YY_RULE_SETUP
1443 #line 243 "./dtimep.lex"
1444 {
1445 	INIT();
1446 	SETMON();
1447 	SKIPTOD();
1448 	SETDAY();
1449 	SKIPTOD();
1450 	SETYEAR();
1451 	SKIPTOA();
1452 	SETWDAY();
1453 }
1454 	YY_BREAK
1455 case 7:
1456 YY_RULE_SETUP
1457 #line 253 "./dtimep.lex"
1458 {
1459 	INIT();
1460 	SETMON();
1461 	SKIPTOD();
1462 	SETDAY();
1463 	SKIPTOD();
1464 	SETYEAR();
1465 }
1466 	YY_BREAK
1467 case 8:
1468 YY_RULE_SETUP
1469 #line 261 "./dtimep.lex"
1470 {
1471 	INIT();
1472 	SETYEAR();
1473 	SKIPTOD();
1474 	SETMON_NUM();
1475 	SKIPTOD();
1476 	SETDAY();
1477 	SKIPTOD();
1478 	SETTIME();
1479 }
1480 	YY_BREAK
1481 case 9:
1482 YY_RULE_SETUP
1483 #line 271 "./dtimep.lex"
1484 {
1485 	INIT();
1486 	SETYEAR();
1487 	SKIPTOD();
1488 	SETMON_NUM();
1489 	SKIPTOD();
1490 	SETDAY();
1491 }
1492 	YY_BREAK
1493 case 10:
1494 YY_RULE_SETUP
1495 #line 279 "./dtimep.lex"
1496 {
1497 	fprintf(stderr, "the highly ambiguous date format XX-XX-XX..."
1498 			" is no longer supported\n");
1499 }
1500 	YY_BREAK
1501 case 11:
1502 YY_RULE_SETUP
1503 #line 283 "./dtimep.lex"
1504 {
1505 	INIT();
1506 	if(europeandate) {
1507 		/* DD/MM/YY */
1508 		SETDAY();
1509 		SKIPTOD();
1510 		SETMON_NUM();
1511 	} else {
1512 		/* MM/DD/YY */
1513 		SETMON_NUM();
1514 		SKIPTOD();
1515 		SETDAY();
1516 	}
1517 	SKIPTOD();
1518 	SETYEAR();
1519 	SKIPTOD();
1520 	SETTIME();
1521 }
1522 	YY_BREAK
1523 case 12:
1524 YY_RULE_SETUP
1525 #line 301 "./dtimep.lex"
1526 {
1527 	INIT();
1528 	if(europeandate) {
1529 		/* DD/MM/YY */
1530 		SETDAY();
1531 		SKIPTOD();
1532 		SETMON_NUM();
1533 	} else {
1534 		/* MM/DD/YY */
1535 		SETMON_NUM();
1536 		SKIPTOD();
1537 		SETDAY();
1538 	}
1539 	SKIPTOD();
1540 	SETYEAR();
1541 }
1542 	YY_BREAK
1543 case 13:
1544 YY_RULE_SETUP
1545 #line 318 "./dtimep.lex"
1546 
1547 	YY_BREAK
1548 case 14:
1549 YY_RULE_SETUP
1550 #line 319 "./dtimep.lex"
1551 tw.tw_hour += 12;
1552 	YY_BREAK
1553 case 15:
1554 YY_RULE_SETUP
1555 #line 321 "./dtimep.lex"
1556 {
1557 	INIT();
1558 	SKIPTOD();
1559 	SETZONE(atoi(cp));
1560 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
1561 	zonehack (&tw);
1562 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
1563 	yyterminate();
1564 }
1565 	YY_BREAK
1566 case 16:
1567 YY_RULE_SETUP
1568 #line 330 "./dtimep.lex"
1569 {
1570 	INIT();
1571 	SKIPTOD();
1572 	SETZONE(-atoi(cp));
1573 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
1574 	zonehack (&tw);
1575 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
1576 	yyterminate();
1577 
1578 }
1579 	YY_BREAK
1580 case 17:
1581 YY_RULE_SETUP
1582 #line 340 "./dtimep.lex"
1583 {
1584 	INIT();
1585 	SKIPTOD();
1586 	SETZONEC(atoi(cp), atoi(cp+3));
1587 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
1588 	zonehack (&tw);
1589 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
1590 	yyterminate();
1591 }
1592 	YY_BREAK
1593 case 18:
1594 YY_RULE_SETUP
1595 #line 349 "./dtimep.lex"
1596 {
1597 	INIT();
1598 	SKIPTOD();
1599 	SETZONEC(-atoi(cp), -atoi(cp+3));
1600 #ifdef ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST
1601 	zonehack (&tw);
1602 #endif /* ADJUST_NUMERIC_ONLY_TZ_OFFSETS_WRT_DST */
1603 	yyterminate();
1604 
1605 }
1606 	YY_BREAK
1607 case 19:
1608 /* rule 19 can match eol */
1609 YY_RULE_SETUP
1610 #line 359 "./dtimep.lex"
1611 INIT(); SETZONE(0); yyterminate();
1612 	YY_BREAK
1613 case 20:
1614 /* rule 20 can match eol */
1615 YY_RULE_SETUP
1616 #line 360 "./dtimep.lex"
1617 INIT(); SETZONE(0); yyterminate();
1618 	YY_BREAK
1619 case 21:
1620 /* rule 21 can match eol */
1621 YY_RULE_SETUP
1622 #line 361 "./dtimep.lex"
1623 INIT(); SETZONE(-500); yyterminate();
1624 	YY_BREAK
1625 case 22:
1626 /* rule 22 can match eol */
1627 YY_RULE_SETUP
1628 #line 362 "./dtimep.lex"
1629 { INIT(); SETDST(); SETZONE(-500); yyterminate(); }
1630 	YY_BREAK
1631 case 23:
1632 /* rule 23 can match eol */
1633 YY_RULE_SETUP
1634 #line 363 "./dtimep.lex"
1635 INIT(); SETZONE(-600); yyterminate();
1636 	YY_BREAK
1637 case 24:
1638 /* rule 24 can match eol */
1639 YY_RULE_SETUP
1640 #line 364 "./dtimep.lex"
1641 { INIT(); SETDST(); SETZONE(-600); yyterminate(); }
1642 	YY_BREAK
1643 case 25:
1644 /* rule 25 can match eol */
1645 YY_RULE_SETUP
1646 #line 365 "./dtimep.lex"
1647 INIT(); SETZONE(-700); yyterminate();
1648 	YY_BREAK
1649 case 26:
1650 /* rule 26 can match eol */
1651 YY_RULE_SETUP
1652 #line 366 "./dtimep.lex"
1653 { INIT(); SETDST(); SETZONE(-700); yyterminate(); }
1654 	YY_BREAK
1655 case 27:
1656 /* rule 27 can match eol */
1657 YY_RULE_SETUP
1658 #line 367 "./dtimep.lex"
1659 INIT(); SETZONE(-800); yyterminate();
1660 	YY_BREAK
1661 case 28:
1662 /* rule 28 can match eol */
1663 YY_RULE_SETUP
1664 #line 368 "./dtimep.lex"
1665 { INIT(); SETDST(); SETZONE(-800); yyterminate(); }
1666 	YY_BREAK
1667 case 29:
1668 /* rule 29 can match eol */
1669 YY_RULE_SETUP
1670 #line 369 "./dtimep.lex"
1671 INIT(); SETZONE(-330); yyterminate();
1672 	YY_BREAK
1673 case 30:
1674 /* rule 30 can match eol */
1675 YY_RULE_SETUP
1676 #line 370 "./dtimep.lex"
1677 INIT(); SETZONE(-400); yyterminate();
1678 	YY_BREAK
1679 case 31:
1680 /* rule 31 can match eol */
1681 YY_RULE_SETUP
1682 #line 371 "./dtimep.lex"
1683 { INIT(); SETDST(); SETZONE(-400); yyterminate(); }
1684 	YY_BREAK
1685 case 32:
1686 /* rule 32 can match eol */
1687 YY_RULE_SETUP
1688 #line 372 "./dtimep.lex"
1689 INIT(); SETZONE(-1000); yyterminate();
1690 	YY_BREAK
1691 case 33:
1692 /* rule 33 can match eol */
1693 YY_RULE_SETUP
1694 #line 373 "./dtimep.lex"
1695 { INIT(); SETDST(); SETZONE(-1000); yyterminate(); }
1696 	YY_BREAK
1697 case 34:
1698 /* rule 34 can match eol */
1699 YY_RULE_SETUP
1700 #line 374 "./dtimep.lex"
1701 
1702 	YY_BREAK
1703 case 35:
1704 YY_RULE_SETUP
1705 #line 376 "./dtimep.lex"
1706 ECHO;
1707 	YY_BREAK
1708 #line 1709 "<stdout>"
1709 case YY_STATE_EOF(INITIAL):
1710 	yyterminate();
1711 
1712 	case YY_END_OF_BUFFER:
1713 		{
1714 		/* Amount of text matched not including the EOB char. */
1715 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1716 
1717 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1718 		*yy_cp = (yy_hold_char);
1719 		YY_RESTORE_YY_MORE_OFFSET
1720 
1721 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1722 			{
1723 			/* We're scanning a new file or input source.  It's
1724 			 * possible that this happened because the user
1725 			 * just pointed yyin at a new source and called
1726 			 * yylex().  If so, then we have to assure
1727 			 * consistency between YY_CURRENT_BUFFER and our
1728 			 * globals.  Here is the right place to do so, because
1729 			 * this is the first action (other than possibly a
1730 			 * back-up) that will match for the new input source.
1731 			 */
1732 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1733 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1734 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1735 			}
1736 
1737 		/* Note that here we test for yy_c_buf_p "<=" to the position
1738 		 * of the first EOB in the buffer, since yy_c_buf_p will
1739 		 * already have been incremented past the NUL character
1740 		 * (since all states make transitions on EOB to the
1741 		 * end-of-buffer state).  Contrast this with the test
1742 		 * in input().
1743 		 */
1744 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1745 			{ /* This was really a NUL. */
1746 			yy_state_type yy_next_state;
1747 
1748 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1749 
1750 			yy_current_state = yy_get_previous_state(  );
1751 
1752 			/* Okay, we're now positioned to make the NUL
1753 			 * transition.  We couldn't have
1754 			 * yy_get_previous_state() go ahead and do it
1755 			 * for us because it doesn't know how to deal
1756 			 * with the possibility of jamming (and we don't
1757 			 * want to build jamming into it because then it
1758 			 * will run more slowly).
1759 			 */
1760 
1761 			yy_next_state = yy_try_NUL_trans( yy_current_state );
1762 
1763 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1764 
1765 			if ( yy_next_state )
1766 				{
1767 				/* Consume the NUL. */
1768 				yy_cp = ++(yy_c_buf_p);
1769 				yy_current_state = yy_next_state;
1770 				goto yy_match;
1771 				}
1772 
1773 			else
1774 				{
1775 				yy_cp = (yy_c_buf_p);
1776 				goto yy_find_action;
1777 				}
1778 			}
1779 
1780 		else switch ( yy_get_next_buffer(  ) )
1781 			{
1782 			case EOB_ACT_END_OF_FILE:
1783 				{
1784 				(yy_did_buffer_switch_on_eof) = 0;
1785 
1786 				if ( yywrap( ) )
1787 					{
1788 					/* Note: because we've taken care in
1789 					 * yy_get_next_buffer() to have set up
1790 					 * yytext, we can now set up
1791 					 * yy_c_buf_p so that if some total
1792 					 * hoser (like flex itself) wants to
1793 					 * call the scanner after we return the
1794 					 * YY_NULL, it'll still work - another
1795 					 * YY_NULL will get returned.
1796 					 */
1797 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1798 
1799 					yy_act = YY_STATE_EOF(YY_START);
1800 					goto do_action;
1801 					}
1802 
1803 				else
1804 					{
1805 					if ( ! (yy_did_buffer_switch_on_eof) )
1806 						YY_NEW_FILE;
1807 					}
1808 				break;
1809 				}
1810 
1811 			case EOB_ACT_CONTINUE_SCAN:
1812 				(yy_c_buf_p) =
1813 					(yytext_ptr) + yy_amount_of_matched_text;
1814 
1815 				yy_current_state = yy_get_previous_state(  );
1816 
1817 				yy_cp = (yy_c_buf_p);
1818 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1819 				goto yy_match;
1820 
1821 			case EOB_ACT_LAST_MATCH:
1822 				(yy_c_buf_p) =
1823 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1824 
1825 				yy_current_state = yy_get_previous_state(  );
1826 
1827 				yy_cp = (yy_c_buf_p);
1828 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1829 				goto yy_find_action;
1830 			}
1831 		break;
1832 		}
1833 
1834 	default:
1835 		YY_FATAL_ERROR(
1836 			"fatal flex scanner internal error--no action found" );
1837 	} /* end of action switch */
1838 		} /* end of scanning one token */
1839 	} /* end of user's declarations */
1840 } /* end of yylex */
1841 
1842 /* yy_get_next_buffer - try to read in a new buffer
1843  *
1844  * Returns a code representing an action:
1845  *	EOB_ACT_LAST_MATCH -
1846  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1847  *	EOB_ACT_END_OF_FILE - end of file
1848  */
yy_get_next_buffer(void)1849 static int yy_get_next_buffer (void)
1850 {
1851     	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1852 	char *source = (yytext_ptr);
1853 	int number_to_move, i;
1854 	int ret_val;
1855 
1856 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1857 		YY_FATAL_ERROR(
1858 		"fatal flex scanner internal error--end of buffer missed" );
1859 
1860 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1861 		{ /* Don't try to fill the buffer, so this is an EOF. */
1862 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1863 			{
1864 			/* We matched a single character, the EOB, so
1865 			 * treat this as a final EOF.
1866 			 */
1867 			return EOB_ACT_END_OF_FILE;
1868 			}
1869 
1870 		else
1871 			{
1872 			/* We matched some text prior to the EOB, first
1873 			 * process it.
1874 			 */
1875 			return EOB_ACT_LAST_MATCH;
1876 			}
1877 		}
1878 
1879 	/* Try to read more data. */
1880 
1881 	/* First move last chars to start of buffer. */
1882 	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1883 
1884 	for ( i = 0; i < number_to_move; ++i )
1885 		*(dest++) = *(source++);
1886 
1887 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1888 		/* don't do the read, it's not guaranteed to return an EOF,
1889 		 * just force an EOF
1890 		 */
1891 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1892 
1893 	else
1894 		{
1895 			int num_to_read =
1896 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1897 
1898 		while ( num_to_read <= 0 )
1899 			{ /* Not enough room in the buffer - grow it. */
1900 
1901 			/* just a shorter name for the current buffer */
1902 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1903 
1904 			int yy_c_buf_p_offset =
1905 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
1906 
1907 			if ( b->yy_is_our_buffer )
1908 				{
1909 				int new_size = b->yy_buf_size * 2;
1910 
1911 				if ( new_size <= 0 )
1912 					b->yy_buf_size += b->yy_buf_size / 8;
1913 				else
1914 					b->yy_buf_size *= 2;
1915 
1916 				b->yy_ch_buf = (char *)
1917 					/* Include room in for 2 EOB chars. */
1918 					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1919 				}
1920 			else
1921 				/* Can't grow it, we don't own it. */
1922 				b->yy_ch_buf = NULL;
1923 
1924 			if ( ! b->yy_ch_buf )
1925 				YY_FATAL_ERROR(
1926 				"fatal error - scanner input buffer overflow" );
1927 
1928 			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1929 
1930 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1931 						number_to_move - 1;
1932 
1933 			}
1934 
1935 		if ( num_to_read > YY_READ_BUF_SIZE )
1936 			num_to_read = YY_READ_BUF_SIZE;
1937 
1938 		/* Read in more data. */
1939 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1940 			(yy_n_chars), num_to_read );
1941 
1942 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1943 		}
1944 
1945 	if ( (yy_n_chars) == 0 )
1946 		{
1947 		if ( number_to_move == YY_MORE_ADJ )
1948 			{
1949 			ret_val = EOB_ACT_END_OF_FILE;
1950 			yyrestart(yyin  );
1951 			}
1952 
1953 		else
1954 			{
1955 			ret_val = EOB_ACT_LAST_MATCH;
1956 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1957 				YY_BUFFER_EOF_PENDING;
1958 			}
1959 		}
1960 
1961 	else
1962 		ret_val = EOB_ACT_CONTINUE_SCAN;
1963 
1964 	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1965 		/* Extend the array by 50%, plus the number we really need. */
1966 		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1967 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1968 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1969 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1970 	}
1971 
1972 	(yy_n_chars) += number_to_move;
1973 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1974 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1975 
1976 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1977 
1978 	return ret_val;
1979 }
1980 
1981 /* yy_get_previous_state - get the state just before the EOB char was reached */
1982 
yy_get_previous_state(void)1983     static yy_state_type yy_get_previous_state (void)
1984 {
1985 	yy_state_type yy_current_state;
1986 	char *yy_cp;
1987 
1988 	yy_current_state = (yy_start);
1989 
1990 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1991 		{
1992 		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1993 		if ( yy_accept[yy_current_state] )
1994 			{
1995 			(yy_last_accepting_state) = yy_current_state;
1996 			(yy_last_accepting_cpos) = yy_cp;
1997 			}
1998 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1999 			{
2000 			yy_current_state = (int) yy_def[yy_current_state];
2001 			if ( yy_current_state >= 600 )
2002 				yy_c = yy_meta[(unsigned int) yy_c];
2003 			}
2004 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2005 		}
2006 
2007 	return yy_current_state;
2008 }
2009 
2010 /* yy_try_NUL_trans - try to make a transition on the NUL character
2011  *
2012  * synopsis
2013  *	next_state = yy_try_NUL_trans( current_state );
2014  */
yy_try_NUL_trans(yy_state_type yy_current_state)2015     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2016 {
2017 	int yy_is_jam;
2018     	char *yy_cp = (yy_c_buf_p);
2019 
2020 	YY_CHAR yy_c = 1;
2021 	if ( yy_accept[yy_current_state] )
2022 		{
2023 		(yy_last_accepting_state) = yy_current_state;
2024 		(yy_last_accepting_cpos) = yy_cp;
2025 		}
2026 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2027 		{
2028 		yy_current_state = (int) yy_def[yy_current_state];
2029 		if ( yy_current_state >= 600 )
2030 			yy_c = yy_meta[(unsigned int) yy_c];
2031 		}
2032 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
2033 	yy_is_jam = (yy_current_state == 599);
2034 
2035 		return yy_is_jam ? 0 : yy_current_state;
2036 }
2037 
2038 #ifndef YY_NO_UNPUT
2039 
yyunput(int c,char * yy_bp)2040     static void yyunput (int c, char * yy_bp )
2041 {
2042 	char *yy_cp;
2043 
2044     yy_cp = (yy_c_buf_p);
2045 
2046 	/* undo effects of setting up yytext */
2047 	*yy_cp = (yy_hold_char);
2048 
2049 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2050 		{ /* need to shift things up to make room */
2051 		/* +2 for EOB chars. */
2052 		int number_to_move = (yy_n_chars) + 2;
2053 		char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2054 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2055 		char *source =
2056 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2057 
2058 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2059 			*--dest = *--source;
2060 
2061 		yy_cp += (int) (dest - source);
2062 		yy_bp += (int) (dest - source);
2063 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2064 			(yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2065 
2066 		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2067 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2068 		}
2069 
2070 	*--yy_cp = (char) c;
2071 
2072 	(yytext_ptr) = yy_bp;
2073 	(yy_hold_char) = *yy_cp;
2074 	(yy_c_buf_p) = yy_cp;
2075 }
2076 
2077 #endif
2078 
2079 #ifndef YY_NO_INPUT
2080 #ifdef __cplusplus
yyinput(void)2081     static int yyinput (void)
2082 #else
2083     static int input  (void)
2084 #endif
2085 
2086 {
2087 	int c;
2088 
2089 	*(yy_c_buf_p) = (yy_hold_char);
2090 
2091 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2092 		{
2093 		/* yy_c_buf_p now points to the character we want to return.
2094 		 * If this occurs *before* the EOB characters, then it's a
2095 		 * valid NUL; if not, then we've hit the end of the buffer.
2096 		 */
2097 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2098 			/* This was really a NUL. */
2099 			*(yy_c_buf_p) = '\0';
2100 
2101 		else
2102 			{ /* need more input */
2103 			int offset = (yy_c_buf_p) - (yytext_ptr);
2104 			++(yy_c_buf_p);
2105 
2106 			switch ( yy_get_next_buffer(  ) )
2107 				{
2108 				case EOB_ACT_LAST_MATCH:
2109 					/* This happens because yy_g_n_b()
2110 					 * sees that we've accumulated a
2111 					 * token and flags that we need to
2112 					 * try matching the token before
2113 					 * proceeding.  But for input(),
2114 					 * there's no matching to consider.
2115 					 * So convert the EOB_ACT_LAST_MATCH
2116 					 * to EOB_ACT_END_OF_FILE.
2117 					 */
2118 
2119 					/* Reset buffer status. */
2120 					yyrestart(yyin );
2121 
2122 					/*FALLTHROUGH*/
2123 
2124 				case EOB_ACT_END_OF_FILE:
2125 					{
2126 					if ( yywrap( ) )
2127 						return 0;
2128 
2129 					if ( ! (yy_did_buffer_switch_on_eof) )
2130 						YY_NEW_FILE;
2131 #ifdef __cplusplus
2132 					return yyinput();
2133 #else
2134 					return input();
2135 #endif
2136 					}
2137 
2138 				case EOB_ACT_CONTINUE_SCAN:
2139 					(yy_c_buf_p) = (yytext_ptr) + offset;
2140 					break;
2141 				}
2142 			}
2143 		}
2144 
2145 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
2146 	*(yy_c_buf_p) = '\0';	/* preserve yytext */
2147 	(yy_hold_char) = *++(yy_c_buf_p);
2148 
2149 	return c;
2150 }
2151 #endif	/* ifndef YY_NO_INPUT */
2152 
2153 /** Immediately switch to a different input stream.
2154  * @param input_file A readable stream.
2155  *
2156  * @note This function does not reset the start condition to @c INITIAL .
2157  */
yyrestart(FILE * input_file)2158     void yyrestart  (FILE * input_file )
2159 {
2160 
2161 	if ( ! YY_CURRENT_BUFFER ){
2162         yyensure_buffer_stack ();
2163 		YY_CURRENT_BUFFER_LVALUE =
2164             yy_create_buffer(yyin,YY_BUF_SIZE );
2165 	}
2166 
2167 	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2168 	yy_load_buffer_state( );
2169 }
2170 
2171 /** Switch to a different input buffer.
2172  * @param new_buffer The new input buffer.
2173  *
2174  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)2175     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
2176 {
2177 
2178 	/* TODO. We should be able to replace this entire function body
2179 	 * with
2180 	 *		yypop_buffer_state();
2181 	 *		yypush_buffer_state(new_buffer);
2182      */
2183 	yyensure_buffer_stack ();
2184 	if ( YY_CURRENT_BUFFER == new_buffer )
2185 		return;
2186 
2187 	if ( YY_CURRENT_BUFFER )
2188 		{
2189 		/* Flush out information for old buffer. */
2190 		*(yy_c_buf_p) = (yy_hold_char);
2191 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2192 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2193 		}
2194 
2195 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2196 	yy_load_buffer_state( );
2197 
2198 	/* We don't actually know whether we did this switch during
2199 	 * EOF (yywrap()) processing, but the only time this flag
2200 	 * is looked at is after yywrap() is called, so it's safe
2201 	 * to go ahead and always set it.
2202 	 */
2203 	(yy_did_buffer_switch_on_eof) = 1;
2204 }
2205 
yy_load_buffer_state(void)2206 static void yy_load_buffer_state  (void)
2207 {
2208     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2209 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2210 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2211 	(yy_hold_char) = *(yy_c_buf_p);
2212 }
2213 
2214 /** Allocate and initialize an input buffer state.
2215  * @param file A readable stream.
2216  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2217  *
2218  * @return the allocated buffer state.
2219  */
yy_create_buffer(FILE * file,int size)2220     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
2221 {
2222 	YY_BUFFER_STATE b;
2223 
2224 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2225 	if ( ! b )
2226 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2227 
2228 	b->yy_buf_size = (yy_size_t)size;
2229 
2230 	/* yy_ch_buf has to be 2 characters longer than the size given because
2231 	 * we need to put in 2 end-of-buffer characters.
2232 	 */
2233 	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
2234 	if ( ! b->yy_ch_buf )
2235 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2236 
2237 	b->yy_is_our_buffer = 1;
2238 
2239 	yy_init_buffer(b,file );
2240 
2241 	return b;
2242 }
2243 
2244 /** Destroy the buffer.
2245  * @param b a buffer created with yy_create_buffer()
2246  *
2247  */
yy_delete_buffer(YY_BUFFER_STATE b)2248     void yy_delete_buffer (YY_BUFFER_STATE  b )
2249 {
2250 
2251 	if ( ! b )
2252 		return;
2253 
2254 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2255 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2256 
2257 	if ( b->yy_is_our_buffer )
2258 		yyfree((void *) b->yy_ch_buf  );
2259 
2260 	yyfree((void *) b  );
2261 }
2262 
2263 /* Initializes or reinitializes a buffer.
2264  * This function is sometimes called more than once on the same buffer,
2265  * such as during a yyrestart() or at EOF.
2266  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)2267     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
2268 
2269 {
2270 	int oerrno = errno;
2271 
2272 	yy_flush_buffer(b );
2273 
2274 	b->yy_input_file = file;
2275 	b->yy_fill_buffer = 1;
2276 
2277     /* If b is the current buffer, then yy_init_buffer was _probably_
2278      * called from yyrestart() or through yy_get_next_buffer.
2279      * In that case, we don't want to reset the lineno or column.
2280      */
2281     if (b != YY_CURRENT_BUFFER){
2282         b->yy_bs_lineno = 1;
2283         b->yy_bs_column = 0;
2284     }
2285 
2286         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2287 
2288 	errno = oerrno;
2289 }
2290 
2291 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2292  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2293  *
2294  */
yy_flush_buffer(YY_BUFFER_STATE b)2295     void yy_flush_buffer (YY_BUFFER_STATE  b )
2296 {
2297     	if ( ! b )
2298 		return;
2299 
2300 	b->yy_n_chars = 0;
2301 
2302 	/* We always need two end-of-buffer characters.  The first causes
2303 	 * a transition to the end-of-buffer state.  The second causes
2304 	 * a jam in that state.
2305 	 */
2306 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2307 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2308 
2309 	b->yy_buf_pos = &b->yy_ch_buf[0];
2310 
2311 	b->yy_at_bol = 1;
2312 	b->yy_buffer_status = YY_BUFFER_NEW;
2313 
2314 	if ( b == YY_CURRENT_BUFFER )
2315 		yy_load_buffer_state( );
2316 }
2317 
2318 /** Pushes the new state onto the stack. The new state becomes
2319  *  the current state. This function will allocate the stack
2320  *  if necessary.
2321  *  @param new_buffer The new state.
2322  *
2323  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer)2324 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2325 {
2326     	if (new_buffer == NULL)
2327 		return;
2328 
2329 	yyensure_buffer_stack();
2330 
2331 	/* This block is copied from yy_switch_to_buffer. */
2332 	if ( YY_CURRENT_BUFFER )
2333 		{
2334 		/* Flush out information for old buffer. */
2335 		*(yy_c_buf_p) = (yy_hold_char);
2336 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2337 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2338 		}
2339 
2340 	/* Only push if top exists. Otherwise, replace top. */
2341 	if (YY_CURRENT_BUFFER)
2342 		(yy_buffer_stack_top)++;
2343 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2344 
2345 	/* copied from yy_switch_to_buffer. */
2346 	yy_load_buffer_state( );
2347 	(yy_did_buffer_switch_on_eof) = 1;
2348 }
2349 
2350 /** Removes and deletes the top of the stack, if present.
2351  *  The next element becomes the new top.
2352  *
2353  */
yypop_buffer_state(void)2354 void yypop_buffer_state (void)
2355 {
2356     	if (!YY_CURRENT_BUFFER)
2357 		return;
2358 
2359 	yy_delete_buffer(YY_CURRENT_BUFFER );
2360 	YY_CURRENT_BUFFER_LVALUE = NULL;
2361 	if ((yy_buffer_stack_top) > 0)
2362 		--(yy_buffer_stack_top);
2363 
2364 	if (YY_CURRENT_BUFFER) {
2365 		yy_load_buffer_state( );
2366 		(yy_did_buffer_switch_on_eof) = 1;
2367 	}
2368 }
2369 
2370 /* Allocates the stack if it does not exist.
2371  *  Guarantees space for at least one push.
2372  */
yyensure_buffer_stack(void)2373 static void yyensure_buffer_stack (void)
2374 {
2375 	int num_to_alloc;
2376 
2377 	if (!(yy_buffer_stack)) {
2378 
2379 		/* First allocation is just for 2 elements, since we don't know if this
2380 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2381 		 * immediate realloc on the next call.
2382          */
2383       num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
2384 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2385 								(num_to_alloc * sizeof(struct yy_buffer_state*)
2386 								);
2387 		if ( ! (yy_buffer_stack) )
2388 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2389 
2390 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2391 
2392 		(yy_buffer_stack_max) = num_to_alloc;
2393 		(yy_buffer_stack_top) = 0;
2394 		return;
2395 	}
2396 
2397 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2398 
2399 		/* Increase the buffer to prepare for a possible push. */
2400 		yy_size_t grow_size = 8 /* arbitrary grow size */;
2401 
2402 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
2403 		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2404 								((yy_buffer_stack),
2405 								num_to_alloc * sizeof(struct yy_buffer_state*)
2406 								);
2407 		if ( ! (yy_buffer_stack) )
2408 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2409 
2410 		/* zero only the new slots.*/
2411 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2412 		(yy_buffer_stack_max) = num_to_alloc;
2413 	}
2414 }
2415 
2416 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2417  * @param base the character buffer
2418  * @param size the size in bytes of the character buffer
2419  *
2420  * @return the newly allocated buffer state object.
2421  */
yy_scan_buffer(char * base,yy_size_t size)2422 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
2423 {
2424 	YY_BUFFER_STATE b;
2425 
2426 	if ( size < 2 ||
2427 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2428 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2429 		/* They forgot to leave room for the EOB's. */
2430 		return NULL;
2431 
2432 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2433 	if ( ! b )
2434 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2435 
2436 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2437 	b->yy_buf_pos = b->yy_ch_buf = base;
2438 	b->yy_is_our_buffer = 0;
2439 	b->yy_input_file = NULL;
2440 	b->yy_n_chars = b->yy_buf_size;
2441 	b->yy_is_interactive = 0;
2442 	b->yy_at_bol = 1;
2443 	b->yy_fill_buffer = 0;
2444 	b->yy_buffer_status = YY_BUFFER_NEW;
2445 
2446 	yy_switch_to_buffer(b  );
2447 
2448 	return b;
2449 }
2450 
2451 /** Setup the input buffer state to scan a string. The next call to yylex() will
2452  * scan from a @e copy of @a str.
2453  * @param yystr a NUL-terminated string to scan
2454  *
2455  * @return the newly allocated buffer state object.
2456  * @note If you want to scan bytes that may contain NUL values, then use
2457  *       yy_scan_bytes() instead.
2458  */
yy_scan_string(yyconst char * yystr)2459 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2460 {
2461 
2462 	return yy_scan_bytes(yystr,(int) strlen(yystr) );
2463 }
2464 
2465 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
2466  * scan from a @e copy of @a bytes.
2467  * @param yybytes the byte buffer to scan
2468  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2469  *
2470  * @return the newly allocated buffer state object.
2471  */
yy_scan_bytes(yyconst char * yybytes,int _yybytes_len)2472 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
2473 {
2474 	YY_BUFFER_STATE b;
2475 	char *buf;
2476 	yy_size_t n;
2477 	int i;
2478 
2479 	/* Get memory for full buffer, including space for trailing EOB's. */
2480 	n = (yy_size_t) (_yybytes_len + 2);
2481 	buf = (char *) yyalloc(n  );
2482 	if ( ! buf )
2483 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2484 
2485 	for ( i = 0; i < _yybytes_len; ++i )
2486 		buf[i] = yybytes[i];
2487 
2488 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2489 
2490 	b = yy_scan_buffer(buf,n );
2491 	if ( ! b )
2492 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2493 
2494 	/* It's okay to grow etc. this buffer, and we should throw it
2495 	 * away when we're done.
2496 	 */
2497 	b->yy_is_our_buffer = 1;
2498 
2499 	return b;
2500 }
2501 
2502 #ifndef YY_EXIT_FAILURE
2503 #define YY_EXIT_FAILURE 2
2504 #endif
2505 
yy_fatal_error(yyconst char * msg)2506 static void yynoreturn yy_fatal_error (yyconst char* msg )
2507 {
2508 			(void) fprintf( stderr, "%s\n", msg );
2509 	exit( YY_EXIT_FAILURE );
2510 }
2511 
2512 /* Redefine yyless() so it works in section 3 code. */
2513 
2514 #undef yyless
2515 #define yyless(n) \
2516 	do \
2517 		{ \
2518 		/* Undo effects of setting up yytext. */ \
2519         int yyless_macro_arg = (n); \
2520         YY_LESS_LINENO(yyless_macro_arg);\
2521 		yytext[yyleng] = (yy_hold_char); \
2522 		(yy_c_buf_p) = yytext + yyless_macro_arg; \
2523 		(yy_hold_char) = *(yy_c_buf_p); \
2524 		*(yy_c_buf_p) = '\0'; \
2525 		yyleng = yyless_macro_arg; \
2526 		} \
2527 	while ( 0 )
2528 
2529 /* Accessor  methods (get/set functions) to struct members. */
2530 
2531 /** Get the current line number.
2532  *
2533  */
yyget_lineno(void)2534 int yyget_lineno  (void)
2535 {
2536 
2537     return yylineno;
2538 }
2539 
2540 /** Get the input stream.
2541  *
2542  */
yyget_in(void)2543 FILE *yyget_in  (void)
2544 {
2545         return yyin;
2546 }
2547 
2548 /** Get the output stream.
2549  *
2550  */
yyget_out(void)2551 FILE *yyget_out  (void)
2552 {
2553         return yyout;
2554 }
2555 
2556 /** Get the length of the current token.
2557  *
2558  */
yyget_leng(void)2559 int yyget_leng  (void)
2560 {
2561         return yyleng;
2562 }
2563 
2564 /** Get the current token.
2565  *
2566  */
2567 
yyget_text(void)2568 char *yyget_text  (void)
2569 {
2570         return yytext;
2571 }
2572 
2573 /** Set the current line number.
2574  * @param _line_number line number
2575  *
2576  */
yyset_lineno(int _line_number)2577 void yyset_lineno (int  _line_number )
2578 {
2579 
2580     yylineno = _line_number;
2581 }
2582 
2583 /** Set the input stream. This does not discard the current
2584  * input buffer.
2585  * @param _in_str A readable stream.
2586  *
2587  * @see yy_switch_to_buffer
2588  */
yyset_in(FILE * _in_str)2589 void yyset_in (FILE *  _in_str )
2590 {
2591         yyin = _in_str ;
2592 }
2593 
yyset_out(FILE * _out_str)2594 void yyset_out (FILE *  _out_str )
2595 {
2596         yyout = _out_str ;
2597 }
2598 
yyget_debug(void)2599 int yyget_debug  (void)
2600 {
2601         return yy_flex_debug;
2602 }
2603 
yyset_debug(int _bdebug)2604 void yyset_debug (int  _bdebug )
2605 {
2606         yy_flex_debug = _bdebug ;
2607 }
2608 
yy_init_globals(void)2609 static int yy_init_globals (void)
2610 {
2611         /* Initialization is the same as for the non-reentrant scanner.
2612      * This function is called from yylex_destroy(), so don't allocate here.
2613      */
2614 
2615     (yy_buffer_stack) = NULL;
2616     (yy_buffer_stack_top) = 0;
2617     (yy_buffer_stack_max) = 0;
2618     (yy_c_buf_p) = NULL;
2619     (yy_init) = 0;
2620     (yy_start) = 0;
2621 
2622 /* Defined in main.c */
2623 #ifdef YY_STDINIT
2624     yyin = stdin;
2625     yyout = stdout;
2626 #else
2627     yyin = NULL;
2628     yyout = NULL;
2629 #endif
2630 
2631     /* For future reference: Set errno on error, since we are called by
2632      * yylex_init()
2633      */
2634     return 0;
2635 }
2636 
2637 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(void)2638 int yylex_destroy  (void)
2639 {
2640 
2641     /* Pop the buffer stack, destroying each element. */
2642 	while(YY_CURRENT_BUFFER){
2643 		yy_delete_buffer(YY_CURRENT_BUFFER  );
2644 		YY_CURRENT_BUFFER_LVALUE = NULL;
2645 		yypop_buffer_state();
2646 	}
2647 
2648 	/* Destroy the stack itself. */
2649 	yyfree((yy_buffer_stack) );
2650 	(yy_buffer_stack) = NULL;
2651 
2652     /* Reset the globals. This is important in a non-reentrant scanner so the next time
2653      * yylex() is called, initialization will occur. */
2654     yy_init_globals( );
2655 
2656     return 0;
2657 }
2658 
2659 /*
2660  * Internal utility routines.
2661  */
2662 
2663 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)2664 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2665 {
2666 
2667 	int i;
2668 	for ( i = 0; i < n; ++i )
2669 		s1[i] = s2[i];
2670 }
2671 #endif
2672 
2673 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)2674 static int yy_flex_strlen (yyconst char * s )
2675 {
2676 	int n;
2677 	for ( n = 0; s[n]; ++n )
2678 		;
2679 
2680 	return n;
2681 }
2682 #endif
2683 
yyalloc(yy_size_t size)2684 void *yyalloc (yy_size_t  size )
2685 {
2686 			return malloc(size);
2687 }
2688 
yyrealloc(void * ptr,yy_size_t size)2689 void *yyrealloc  (void * ptr, yy_size_t  size )
2690 {
2691 
2692 	/* The cast to (char *) in the following accommodates both
2693 	 * implementations that use char* generic pointers, and those
2694 	 * that use void* generic pointers.  It works with the latter
2695 	 * because both ANSI C and C++ allow castless assignment from
2696 	 * any pointer type to void*, and deal with argument conversions
2697 	 * as though doing an assignment.
2698 	 */
2699 	return realloc(ptr, size);
2700 }
2701 
yyfree(void * ptr)2702 void yyfree (void * ptr )
2703 {
2704 			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
2705 }
2706 
2707 #define YYTABLES_NAME "yytables"
2708 
2709 #line 376 "./dtimep.lex"
2710 
2711 
2712 /*
2713 ** This is a portable way to squash a warning about the yyunput()
2714 ** function being static but never used. It costs us a tiny amount
2715 ** of extra code in the binary but the other options are:
2716 ** "%option nounput" which is flex-specific
2717 ** makefile hackery just to compile dtimep.c with different flags
2718 */
dtimep_yyunput(int c)2719 void dtimep_yyunput(int c)
2720 {
2721 	unput(c);
2722 }
2723 
2724