blob: bbddbcc031b62fa2960d037f8002f55a3661b9bb [file] [log] [blame]
Lev Walkinf15320b2004-06-03 03:38:44 +00001#define yy_create_buffer asn1p__create_buffer
2#define yy_delete_buffer asn1p__delete_buffer
3#define yy_scan_buffer asn1p__scan_buffer
4#define yy_scan_string asn1p__scan_string
5#define yy_scan_bytes asn1p__scan_bytes
6#define yy_flex_debug asn1p__flex_debug
7#define yy_init_buffer asn1p__init_buffer
8#define yy_flush_buffer asn1p__flush_buffer
9#define yy_load_buffer_state asn1p__load_buffer_state
10#define yy_switch_to_buffer asn1p__switch_to_buffer
11#define yyin asn1p_in
12#define yyleng asn1p_leng
13#define yylex asn1p_lex
14#define yyout asn1p_out
15#define yyrestart asn1p_restart
16#define yytext asn1p_text
17#define yylineno asn1p_lineno
18
19#line 20 "lex.yy.c"
20/* A lexical scanner generated by flex */
21
22/* Scanner skeleton version:
23 * $Header$
Lev Walkinc3b72e92004-06-03 05:07:41 +000024 * $FreeBSD: src/usr.bin/lex/flex.skl,v 1.4 1999/10/27 07:56:44 obrien Exp $
Lev Walkinf15320b2004-06-03 03:38:44 +000025 */
26
27#define FLEX_SCANNER
28#define YY_FLEX_MAJOR_VERSION 2
29#define YY_FLEX_MINOR_VERSION 5
30
31#include <stdio.h>
32
33
34/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
35#ifdef c_plusplus
36#ifndef __cplusplus
37#define __cplusplus
38#endif
39#endif
40
41
42#ifdef __cplusplus
43
44#include <stdlib.h>
45#include <unistd.h>
46
47/* Use prototypes in function declarations. */
48#define YY_USE_PROTOS
49
50/* The "const" storage-class-modifier is valid. */
51#define YY_USE_CONST
52
53#else /* ! __cplusplus */
54
55#if __STDC__
56
57#define YY_USE_PROTOS
58#define YY_USE_CONST
59
60#endif /* __STDC__ */
61#endif /* ! __cplusplus */
62
63#ifdef __TURBOC__
64 #pragma warn -rch
65 #pragma warn -use
66#include <io.h>
67#include <stdlib.h>
68#define YY_USE_CONST
69#define YY_USE_PROTOS
70#endif
71
72#ifdef YY_USE_CONST
73#define yyconst const
74#else
75#define yyconst
76#endif
77
78
79#ifdef YY_USE_PROTOS
80#define YY_PROTO(proto) proto
81#else
82#define YY_PROTO(proto) ()
83#endif
84
85/* Returned upon end-of-file. */
86#define YY_NULL 0
87
88/* Promotes a possibly negative, possibly signed char to an unsigned
89 * integer for use as an array index. If the signed char is negative,
90 * we want to instead treat it as an 8-bit unsigned char, hence the
91 * double cast.
92 */
93#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
94
95/* Enter a start condition. This macro really ought to take a parameter,
96 * but we do it the disgusting crufty way forced on us by the ()-less
97 * definition of BEGIN.
98 */
99#define BEGIN yy_start = 1 + 2 *
100
101/* Translate the current start state into a value that can be later handed
102 * to BEGIN to return to the state. The YYSTATE alias is for lex
103 * compatibility.
104 */
105#define YY_START ((yy_start - 1) / 2)
106#define YYSTATE YY_START
107
108/* Action number for EOF rule of a given start state. */
109#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
110
111/* Special action meaning "start processing a new file". */
112#define YY_NEW_FILE yyrestart( yyin )
113
114#define YY_END_OF_BUFFER_CHAR 0
115
116/* Size of default input buffer. */
117#define YY_BUF_SIZE 16384
118
119typedef struct yy_buffer_state *YY_BUFFER_STATE;
120
121extern int yyleng;
122extern FILE *yyin, *yyout;
123
124#define EOB_ACT_CONTINUE_SCAN 0
125#define EOB_ACT_END_OF_FILE 1
126#define EOB_ACT_LAST_MATCH 2
127
128/* The funky do-while in the following #define is used to turn the definition
129 * int a single C statement (which needs a semi-colon terminator). This
130 * avoids problems with code like:
131 *
132 * if ( condition_holds )
133 * yyless( 5 );
134 * else
135 * do_something_else();
136 *
137 * Prior to using the do-while the compiler would get upset at the
138 * "else" because it interpreted the "if" statement as being all
139 * done when it reached the ';' after the yyless() call.
140 */
141
142/* Return all but the first 'n' matched characters back to the input stream. */
143
144#define yyless(n) \
145 do \
146 { \
147 /* Undo effects of setting up yytext. */ \
148 *yy_cp = yy_hold_char; \
149 YY_RESTORE_YY_MORE_OFFSET \
150 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
151 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
152 } \
153 while ( 0 )
154
155#define unput(c) yyunput( c, yytext_ptr )
156
157/* The following is because we cannot portably get our hands on size_t
158 * (without autoconf's help, which isn't available because we want
159 * flex-generated scanners to compile on their own).
160 */
161typedef unsigned int yy_size_t;
162
163
164struct yy_buffer_state
165 {
166 FILE *yy_input_file;
167
168 char *yy_ch_buf; /* input buffer */
169 char *yy_buf_pos; /* current position in input buffer */
170
171 /* Size of input buffer in bytes, not including room for EOB
172 * characters.
173 */
174 yy_size_t yy_buf_size;
175
176 /* Number of characters read into yy_ch_buf, not including EOB
177 * characters.
178 */
179 int yy_n_chars;
180
181 /* Whether we "own" the buffer - i.e., we know we created it,
182 * and can realloc() it to grow it, and should free() it to
183 * delete it.
184 */
185 int yy_is_our_buffer;
186
187 /* Whether this is an "interactive" input source; if so, and
188 * if we're using stdio for input, then we want to use getc()
189 * instead of fread(), to make sure we stop fetching input after
190 * each newline.
191 */
192 int yy_is_interactive;
193
194 /* Whether we're considered to be at the beginning of a line.
195 * If so, '^' rules will be active on the next match, otherwise
196 * not.
197 */
198 int yy_at_bol;
199
200 /* Whether to try to fill the input buffer when we reach the
201 * end of it.
202 */
203 int yy_fill_buffer;
204
205 int yy_buffer_status;
206#define YY_BUFFER_NEW 0
207#define YY_BUFFER_NORMAL 1
208 /* When an EOF's been seen but there's still some text to process
209 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
210 * shouldn't try reading from the input source any more. We might
211 * still have a bunch of tokens to match, though, because of
212 * possible backing-up.
213 *
214 * When we actually see the EOF, we change the status to "new"
215 * (via yyrestart()), so that the user can continue scanning by
216 * just pointing yyin at a new input file.
217 */
218#define YY_BUFFER_EOF_PENDING 2
219 };
220
221static YY_BUFFER_STATE yy_current_buffer = 0;
222
223/* We provide macros for accessing buffer states in case in the
224 * future we want to put the buffer states in a more general
225 * "scanner state".
226 */
227#define YY_CURRENT_BUFFER yy_current_buffer
228
229
230/* yy_hold_char holds the character lost when yytext is formed. */
231static char yy_hold_char;
232
233static int yy_n_chars; /* number of characters read into yy_ch_buf */
234
235
236int yyleng;
237
238/* Points to current character in buffer. */
239static char *yy_c_buf_p = (char *) 0;
240static int yy_init = 1; /* whether we need to initialize */
241static int yy_start = 0; /* start state number */
242
243/* Flag which is used to allow yywrap()'s to do buffer switches
244 * instead of setting up a fresh yyin. A bit of a hack ...
245 */
246static int yy_did_buffer_switch_on_eof;
247
248void yyrestart YY_PROTO(( FILE *input_file ));
249
250void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
251void yy_load_buffer_state YY_PROTO(( void ));
252YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
253void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
254void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
255void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
256#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
257
258YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
259YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
260YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
261
262static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
263static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
264static void yy_flex_free YY_PROTO(( void * ));
265
266#define yy_new_buffer yy_create_buffer
267
268#define yy_set_interactive(is_interactive) \
269 { \
270 if ( ! yy_current_buffer ) \
271 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
272 yy_current_buffer->yy_is_interactive = is_interactive; \
273 }
274
275#define yy_set_bol(at_bol) \
276 { \
277 if ( ! yy_current_buffer ) \
278 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
279 yy_current_buffer->yy_at_bol = at_bol; \
280 }
281
282#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
283
284
285#define YY_USES_REJECT
286
287#define yywrap() 1
288#define YY_SKIP_YYWRAP
289
290#define FLEX_DEBUG
291typedef unsigned char YY_CHAR;
292FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
293typedef int yy_state_type;
294
295#define FLEX_DEBUG
296extern int yylineno;
297int yylineno = 1;
298extern char *yytext;
299#define yytext_ptr yytext
300
301static yy_state_type yy_get_previous_state YY_PROTO(( void ));
302static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
303static int yy_get_next_buffer YY_PROTO(( void ));
304static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
305
306/* Done after the current pattern has been matched and before the
307 * corresponding action - sets up yytext.
308 */
309#define YY_DO_BEFORE_ACTION \
310 yytext_ptr = yy_bp; \
311 yyleng = (int) (yy_cp - yy_bp); \
312 yy_hold_char = *yy_cp; \
313 *yy_cp = '\0'; \
314 yy_c_buf_p = yy_cp;
315
316#define YY_NUM_RULES 123
317#define YY_END_OF_BUFFER 124
318static yyconst short int yy_acclist[1196] =
319 { 0,
320 124, 122, 123, 117, 122, 123, 117, 123, 116, 122,
321 123, 15, 122, 123, 116, 122, 123, 122, 123, 116,
322 122, 123, 122, 123, 116, 122, 123, 122, 123, 23,
323 122, 123, 22, 122, 123, 116, 122, 123, 122, 123,
324 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
325 122, 123, 111, 112, 122, 123, 111, 112, 122, 123,
326 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
327 122, 123, 111, 112, 122, 123, 111, 112, 122, 123,
328 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
329 122, 123, 111, 112, 122, 123, 111, 112, 122, 123,
330
331 111, 112, 122, 123, 111, 112, 122, 123, 111, 112,
332 122, 123, 111, 112, 122, 123, 116, 122, 123, 110,
333 122, 123, 5, 122, 123, 2, 123, 2, 122, 123,
334 4, 122, 123, 7, 9, 122, 123, 7, 123, 9,
335 122, 123, 9, 122, 123, 17, 122, 123, 17, 123,
336 18, 122, 123, 12, 122, 123, 12, 123, 14, 122,
337 123, 14, 122, 123, 10, 122, 123, 11, 122, 123,
338 119, 122, 123, 120, 122, 123, 120, 123, 122, 123,
339 121, 122, 123, 117, 15, 15, 108, 109, 1, 21,
340 115, 6, 22, 111, 112, 111, 112, 111, 112, 111,
341
342 112, 111, 112, 111, 112, 112, 111, 112, 111, 112,
343 111, 112, 111, 112, 36, 111, 112, 111, 112, 111,
344 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
345 112, 111, 112, 111, 112, 112, 112, 111, 112, 111,
346 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
347 112, 111, 112, 112, 111, 112, 111, 112, 79, 111,
348 112, 111, 112, 112, 111, 112, 111, 112, 111, 112,
349 111, 112, 112, 111, 112, 111, 112, 111, 112, 111,
350 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
351 112, 112, 111, 112, 111, 112, 112, 112, 111, 112,
352
353 110, 5, 3, 8, 17, 16, 12, 119, 120, 118,
354 108, 109, 21, 114, 113, 111, 112, 28, 111, 112,
355 29, 111, 112, 111, 112, 111, 112, 111, 112, 33,
356 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
357 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
358 111, 112, 49, 111, 112, 111, 112, 111, 112, 111,
359 112, 111, 112, 111, 112, 111, 112, 112, 112, 111,
360 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
361 112, 111, 112, 71, 111, 112, 72, 111, 112, 111,
362 112, 112, 111, 112, 111, 112, 111, 112, 112, 111,
363
364 112, 82, 111, 112, 111, 112, 111, 112, 111, 112,
365 112, 111, 112, 111, 112, 111, 112, 90, 111, 112,
366 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
367 111, 112, 111, 112, 112, 111, 112, 111, 112, 111,
368 112, 112, 112, 112, 111, 112, 24, 13, 20, 19,
369 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
370 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
371 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
372 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
373 111, 112, 111, 112, 111, 112, 57, 111, 112, 112,
374
375 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
376 112, 111, 112, 111, 112, 111, 112, 111, 112, 74,
377 111, 112, 112, 111, 112, 111, 112, 111, 112, 112,
378 111, 112, 111, 112, 111, 112, 111, 112, 112, 87,
379 111, 112, 111, 112, 111, 112, 91, 111, 112, 111,
380 112, 111, 112, 111, 112, 95, 111, 112, 97, 111,
381 112, 111, 112, 112, 111, 112, 111, 112, 111, 112,
382 111, 112, 111, 112, 112, 112, 112, 107, 111, 112,
383 111, 112, 111, 112, 111, 112, 111, 112, 32, 111,
384 112, 112, 111, 112, 111, 112, 111, 112, 39, 111,
385
386 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
387 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
388 112, 111, 112, 111, 112, 111, 112, 56, 111, 112,
389 112, 112, 112, 111, 112, 111, 112, 111, 112, 111,
390 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
391 112, 112, 111, 112, 78, 111, 112, 111, 112, 112,
392 111, 112, 111, 112, 111, 112, 111, 112, 112, 111,
393 112, 111, 112, 111, 112, 111, 112, 112, 111, 112,
394 112, 99, 111, 112, 111, 112, 111, 112, 112, 111,
395 112, 112, 112, 112, 25, 26, 111, 112, 111, 112,
396
397 111, 112, 111, 112, 112, 111, 112, 111, 112, 38,
398 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
399 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
400 51, 111, 112, 111, 112, 111, 112, 111, 112, 111,
401 112, 112, 112, 112, 111, 112, 111, 112, 111, 112,
402 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
403 111, 112, 111, 112, 112, 76, 111, 112, 111, 112,
404 112, 111, 112, 111, 112, 111, 112, 111, 112, 112,
405 111, 112, 111, 112, 92, 111, 112, 93, 111, 112,
406 112, 111, 112, 112, 100, 111, 112, 111, 112, 112,
407
408 112, 112, 112, 112, 111, 112, 111, 112, 111, 112,
409 112, 35, 111, 112, 111, 112, 111, 112, 111, 112,
410 111, 112, 44, 111, 112, 45, 111, 112, 111, 112,
411 111, 112, 48, 111, 112, 111, 112, 111, 112, 53,
412 111, 112, 111, 112, 111, 112, 112, 112, 112, 111,
413 112, 111, 112, 64, 111, 112, 65, 111, 112, 111,
414 112, 111, 112, 68, 111, 112, 111, 112, 111, 112,
415 111, 112, 112, 111, 112, 112, 81, 111, 112, 111,
416 112, 84, 111, 112, 86, 111, 112, 112, 111, 112,
417 111, 112, 112, 111, 112, 112, 111, 112, 103, 112,
418
419 112, 112, 112, 112, 111, 112, 111, 112, 111, 112,
420 112, 111, 112, 111, 112, 111, 112, 111, 112, 111,
421 112, 47, 111, 112, 111, 112, 52, 111, 112, 111,
422 112, 55, 111, 112, 112, 112, 112, 112, 111, 112,
423 63, 111, 112, 66, 111, 112, 67, 111, 112, 111,
424 112, 112, 111, 112, 112, 80, 111, 112, 112, 111,
425 112, 112, 111, 112, 89, 111, 112, 112, 111, 112,
426 112, 111, 112, 112, 112, 112, 112, 111, 112, 111,
427 112, 31, 111, 112, 34, 112, 37, 111, 112, 40,
428 111, 112, 111, 112, 111, 112, 111, 112, 111, 112,
429
430 111, 112, 112, 112, 112, 61, 112, 111, 112, 111,
431 112, 112, 111, 112, 112, 112, 111, 112, 112, 111,
432 112, 94, 112, 111, 112, 112, 101, 111, 112, 112,
433 112, 112, 112, 111, 112, 111, 112, 41, 111, 112,
434 42, 111, 112, 43, 111, 112, 111, 112, 50, 111,
435 112, 111, 112, 112, 112, 112, 62, 111, 112, 111,
436 112, 112, 111, 112, 112, 112, 111, 112, 112, 111,
437 112, 111, 112, 112, 104, 112, 112, 112, 112, 111,
438 112, 30, 111, 112, 46, 111, 112, 111, 112, 112,
439 112, 112, 111, 112, 112, 111, 112, 112, 112, 111,
440
441 112, 112, 111, 112, 111, 112, 112, 112, 112, 112,
442 24, 25, 111, 112, 111, 112, 112, 112, 112, 69,
443 111, 112, 70, 112, 111, 112, 112, 112, 111, 112,
444 112, 88, 111, 112, 111, 112, 112, 112, 112, 112,
445 111, 112, 54, 111, 112, 59, 112, 112, 60, 112,
446 111, 112, 75, 112, 112, 83, 111, 112, 112, 111,
447 112, 96, 112, 112, 112, 106, 112, 111, 112, 112,
448 73, 111, 112, 112, 112, 111, 112, 112, 105, 112,
449 27, 111, 112, 58, 112, 112, 85, 112, 98, 111,
450 112, 102, 112, 77, 112
451
452 } ;
453
454static yyconst short int yy_accept[676] =
455 { 0,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 1, 1, 2, 4, 7, 9, 12, 15, 18,
458 20, 23, 25, 28, 30, 33, 36, 39, 41, 45,
459 49, 53, 57, 61, 65, 69, 73, 77, 81, 85,
460 89, 93, 97, 101, 105, 109, 113, 117, 120, 123,
461 126, 128, 131, 134, 138, 140, 143, 146, 149, 151,
462 154, 157, 159, 162, 165, 168, 171, 174, 177, 179,
463 181, 184, 184, 185, 186, 187, 187, 188, 188, 189,
464 189, 189, 190, 191, 192, 193, 194, 194, 196, 198,
465 200, 202, 204, 206, 207, 209, 211, 213, 215, 218,
466
467 220, 222, 224, 226, 228, 230, 232, 234, 236, 237,
468 238, 240, 242, 244, 246, 248, 250, 252, 254, 255,
469 257, 259, 262, 264, 265, 267, 269, 271, 273, 274,
470 276, 278, 280, 282, 284, 286, 288, 290, 292, 293,
471 295, 297, 298, 299, 301, 301, 301, 301, 301, 301,
472 302, 303, 304, 305, 306, 307, 308, 308, 309, 310,
473 311, 311, 312, 313, 313, 313, 314, 315, 316, 318,
474 321, 324, 326, 328, 330, 333, 335, 337, 339, 341,
475 343, 345, 347, 349, 351, 353, 356, 358, 360, 362,
476 364, 366, 368, 369, 370, 372, 374, 376, 378, 380,
477
478 382, 384, 387, 390, 392, 393, 395, 397, 399, 400,
479 402, 405, 407, 409, 411, 412, 414, 416, 418, 421,
480 423, 425, 427, 429, 431, 433, 435, 436, 438, 440,
481 442, 443, 444, 445, 447, 448, 448, 448, 448, 448,
482 449, 449, 450, 451, 453, 455, 457, 459, 461, 463,
483 465, 467, 469, 471, 473, 475, 477, 479, 481, 483,
484 485, 487, 489, 491, 493, 495, 497, 500, 501, 502,
485 504, 506, 508, 510, 512, 514, 516, 518, 520, 523,
486 524, 526, 528, 530, 531, 533, 535, 537, 539, 540,
487 543, 545, 547, 550, 552, 554, 556, 559, 562, 564,
488
489 565, 567, 569, 571, 573, 575, 576, 577, 578, 581,
490 581, 581, 581, 581, 583, 585, 587, 589, 592, 593,
491 595, 597, 599, 602, 604, 606, 608, 610, 612, 614,
492 616, 618, 620, 622, 624, 626, 628, 631, 632, 633,
493 634, 636, 638, 640, 642, 644, 646, 648, 650, 652,
494 653, 655, 658, 660, 661, 663, 665, 667, 669, 670,
495 672, 674, 676, 678, 679, 681, 682, 685, 687, 689,
496 690, 692, 693, 694, 695, 696, 696, 696, 696, 699,
497 701, 703, 705, 706, 708, 710, 713, 715, 717, 719,
498 721, 723, 725, 727, 729, 731, 734, 736, 738, 740,
499
500 742, 743, 744, 745, 747, 749, 751, 753, 755, 757,
501 759, 761, 763, 765, 766, 769, 771, 772, 774, 776,
502 778, 780, 781, 783, 785, 788, 791, 792, 794, 795,
503 798, 800, 801, 802, 803, 804, 805, 805, 805, 805,
504 807, 809, 811, 812, 815, 817, 819, 821, 823, 826,
505 829, 831, 833, 836, 838, 840, 843, 845, 847, 848,
506 849, 850, 852, 854, 857, 860, 862, 864, 867, 869,
507 871, 873, 874, 876, 877, 880, 882, 885, 888, 889,
508 891, 893, 894, 896, 897, 899, 901, 902, 903, 904,
509 905, 905, 905, 905, 907, 909, 911, 912, 914, 916,
510
511 918, 920, 922, 925, 927, 930, 932, 935, 936, 937,
512 938, 939, 941, 944, 947, 950, 952, 953, 955, 956,
513 959, 960, 962, 963, 965, 968, 969, 971, 972, 974,
514 975, 976, 977, 978, 978, 978, 978, 980, 982, 985,
515 987, 990, 993, 995, 997, 999, 1001, 1003, 1004, 1005,
516 1006, 1008, 1010, 1012, 1013, 1015, 1016, 1017, 1019, 1020,
517 1022, 1024, 1026, 1027, 1030, 1031, 1032, 1033, 1034, 1034,
518 1034, 1034, 1036, 1038, 1041, 1044, 1047, 1049, 1052, 1054,
519 1055, 1056, 1057, 1060, 1062, 1063, 1065, 1066, 1067, 1069,
520 1070, 1072, 1074, 1075, 1077, 1078, 1079, 1080, 1080, 1080,
521
522 1080, 1082, 1085, 1088, 1090, 1091, 1092, 1093, 1095, 1096,
523 1098, 1099, 1100, 1102, 1103, 1105, 1107, 1108, 1109, 1110,
524 1111, 1111, 1113, 1113, 1115, 1117, 1118, 1119, 1120, 1123,
525 1125, 1127, 1128, 1129, 1131, 1132, 1135, 1137, 1138, 1139,
526 1140, 1141, 1141, 1143, 1146, 1148, 1149, 1151, 1153, 1155,
527 1156, 1159, 1160, 1162, 1164, 1165, 1166, 1168, 1168, 1170,
528 1171, 1174, 1175, 1176, 1178, 1179, 1181, 1184, 1186, 1187,
529 1189, 1192, 1194, 1196, 1196
530 } ;
531
532static yyconst int yy_ec[256] =
533 { 0,
534 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
535 4, 4, 4, 1, 1, 1, 1, 1, 1, 1,
536 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
537 1, 2, 5, 6, 1, 1, 1, 7, 8, 9,
538 9, 10, 1, 9, 11, 12, 13, 14, 15, 16,
539 16, 17, 18, 19, 16, 20, 16, 21, 22, 23,
540 24, 1, 1, 9, 25, 26, 27, 28, 29, 30,
541 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
542 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
543 51, 1, 52, 53, 1, 1, 54, 55, 56, 57,
544
545 58, 59, 60, 61, 62, 63, 59, 64, 65, 66,
546 67, 68, 59, 69, 70, 71, 72, 73, 59, 74,
547 59, 75, 76, 77, 78, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555
556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561 1, 1, 1, 1, 1
562 } ;
563
564static yyconst int yy_meta[79] =
565 { 0,
566 1, 2, 3, 3, 1, 4, 5, 6, 1, 1,
567 7, 1, 1, 8, 8, 8, 8, 8, 8, 8,
568 9, 1, 1, 9, 8, 8, 8, 8, 8, 8,
569 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
570 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
571 1, 1, 1, 11, 11, 11, 11, 11, 11, 11,
572 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
573 11, 11, 11, 11, 11, 12, 1, 12
574 } ;
575
576static yyconst short int yy_base[691] =
577 { 0,
578 0, 0, 76, 78, 80, 81, 82, 89, 83, 93,
579 96, 106, 844, 833, 116, 119, 822, 821, 177, 126,
580 4166, 127, 816, 123, 4166, 134, 805, 4166, 242, 292,
581 141, 298, 152, 314, 322, 130, 338, 359, 360, 376,
582 382, 397, 410, 437, 440, 462, 463, 495, 0, 0,
583 4166, 4166, 811, 4166, 4166, 807, 807, 0, 0, 809,
584 0, 0, 787, 4166, 4166, 4166, 0, 160, 191, 104,
585 4166, 800, 261, 0, 798, 797, 0, 79, 0, 426,
586 793, 4166, 511, 787, 4166, 527, 771, 512, 513, 528,
587 529, 544, 550, 0, 561, 567, 578, 589, 595, 611,
588
589 617, 628, 641, 644, 664, 661, 672, 685, 727, 737,
590 696, 702, 713, 719, 730, 741, 747, 758, 725, 771,
591 774, 787, 795, 725, 798, 811, 822, 835, 720, 851,
592 857, 868, 874, 885, 900, 901, 916, 917, 716, 932,
593 933, 716, 45, 948, 980, 987, 736, 97, 120, 0,
594 0, 4166, 4166, 0, 4166, 0, 750, 0, 291, 4166,
595 761, 0, 0, 79, 739, 994, 4166, 4166, 990, 1003,
596 1011, 1014, 1027, 1035, 1038, 1051, 1059, 1067, 1075, 1088,
597 1096, 1099, 1120, 1121, 1136, 1142, 1153, 1159, 1170, 1176,
598 1187, 1198, 707, 693, 1211, 1219, 1222, 1237, 1240, 1243,
599
600 1267, 1261, 1264, 1282, 702, 1285, 1300, 1306, 696, 1317,
601 1328, 1334, 1345, 1356, 686, 1367, 1373, 1384, 1390, 1405,
602 1406, 1421, 1432, 1438, 1453, 1459, 692, 1470, 1481, 1492,
603 675, 686, 681, 1503, 4166, 1542, 697, 143, 158, 4166,
604 683, 4166, 4166, 1527, 1528, 1543, 1549, 1564, 1565, 1582,
605 1581, 1597, 1603, 1614, 1625, 1643, 1640, 1646, 1661, 1664,
606 1667, 1682, 1688, 1699, 1710, 1725, 1731, 664, 668, 1742,
607 1748, 1763, 1764, 1779, 1785, 1796, 1809, 1817, 1825, 658,
608 1840, 1843, 1856, 670, 1864, 1880, 1879, 1896, 649, 1897,
609 1912, 1925, 1933, 1936, 1954, 1951, 1957, 1972, 1975, 648,
610
611 1978, 1993, 1999, 2010, 2016, 660, 649, 660, 2031, 2063,
612 283, 280, 305, 2048, 2064, 2072, 2080, 2088, 644, 2096,
613 2104, 2117, 2125, 2128, 2146, 2143, 2149, 2164, 2170, 2185,
614 2186, 2201, 2216, 2222, 2233, 2239, 2254, 653, 641, 627,
615 2255, 2275, 2272, 2293, 2292, 2310, 2309, 2325, 2331, 633,
616 2342, 2353, 2359, 623, 2370, 2381, 2387, 2398, 639, 2411,
617 2414, 2422, 2435, 616, 2446, 625, 2452, 2467, 2468, 613,
618 2483, 607, 604, 610, 4166, 302, 321, 96, 2489, 2504,
619 2507, 2515, 610, 2530, 2536, 2547, 2553, 2564, 2570, 2581,
620 2592, 2598, 2615, 2621, 2637, 2638, 2653, 2654, 2669, 2675,
621
622 605, 607, 599, 2686, 2692, 2707, 2708, 2728, 2729, 2744,
623 2752, 2765, 2773, 604, 2776, 2794, 631, 2791, 2797, 2812,
624 2815, 603, 2823, 2838, 2841, 2844, 590, 2859, 574, 2862,
625 2865, 588, 576, 574, 583, 581, 317, 309, 328, 2880,
626 2883, 2896, 572, 2904, 2917, 2925, 2928, 2941, 2949, 2952,
627 2965, 2976, 2973, 2989, 3000, 3011, 3017, 3028, 54, 589,
628 564, 3034, 3045, 3056, 3062, 3073, 3079, 3094, 3095, 3110,
629 3111, 583, 3126, 566, 3127, 3144, 3147, 3150, 558, 3165,
630 3171, 554, 3186, 576, 3192, 0, 555, 559, 536, 566,
631 347, 226, 339, 3203, 3209, 3224, 548, 3230, 3241, 3254,
632
633 3262, 3265, 3280, 3283, 3291, 3304, 3307, 531, 525, 525,
634 531, 3322, 3328, 3339, 3345, 3356, 516, 3367, 512, 3373,
635 511, 3384, 521, 3395, 3401, 517, 3412, 504, 3418, 506,
636 507, 520, 466, 325, 465, 348, 3429, 3440, 3451, 0,
637 3457, 3468, 3479, 3490, 3496, 3511, 3512, 467, 476, 464,
638 0, 3527, 3528, 470, 3544, 450, 462, 3545, 474, 3560,
639 0, 3566, 447, 3577, 444, 454, 423, 424, 361, 3616,
640 353, 3601, 3602, 3617, 3618, 3633, 3634, 3649, 3650, 430,
641 434, 428, 3665, 3673, 421, 3681, 421, 412, 3689, 403,
642 3697, 3705, 410, 0, 400, 401, 403, 189, 3737, 519,
643
644 3722, 3723, 3738, 3746, 398, 417, 394, 3759, 398, 3767,
645 391, 391, 3770, 383, 3783, 3794, 383, 378, 383, 378,
646 371, 4166, 3833, 3818, 3819, 378, 363, 359, 3834, 0,
647 3840, 357, 347, 3851, 351, 3857, 3868, 330, 315, 305,
648 295, 558, 3884, 3881, 0, 282, 0, 3892, 0, 262,
649 3907, 256, 3910, 0, 188, 141, 0, 3954, 3939, 138,
650 3940, 120, 105, 3955, 95, 0, 3956, 0, 37, 0,
651 3972, 0, 0, 4166, 4017, 4029, 4041, 4053, 4065, 4077,
652 4088, 4089, 4093, 4104, 4116, 4128, 4139, 4144, 4149, 4154
653 } ;
654
655static yyconst short int yy_def[691] =
656 { 0,
657 674, 1, 675, 675, 676, 676, 677, 677, 678, 678,
658 679, 679, 674, 674, 674, 674, 674, 680, 674, 681,
659 674, 674, 674, 674, 674, 674, 674, 674, 674, 29,
660 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
661 29, 29, 29, 29, 29, 29, 29, 682, 683, 684,
662 674, 674, 674, 674, 674, 674, 674, 685, 685, 674,
663 686, 686, 674, 674, 674, 674, 687, 674, 674, 19,
664 674, 674, 674, 680, 680, 674, 688, 674, 689, 681,
665 681, 674, 674, 674, 674, 674, 674, 29, 29, 29,
666 29, 29, 29, 690, 29, 29, 29, 29, 29, 29,
667
668 29, 29, 29, 29, 29, 29, 29, 29, 690, 690,
669 29, 29, 29, 29, 29, 29, 29, 29, 690, 29,
670 29, 29, 29, 690, 29, 29, 29, 29, 690, 29,
671 29, 29, 29, 29, 29, 29, 29, 29, 690, 29,
672 29, 690, 690, 29, 674, 682, 146, 146, 146, 683,
673 684, 674, 674, 685, 674, 686, 674, 687, 674, 674,
674 674, 688, 689, 674, 674, 674, 674, 674, 29, 29,
675 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
676 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
677 29, 29, 690, 690, 29, 29, 29, 29, 29, 29,
678
679 29, 29, 29, 29, 690, 29, 29, 29, 690, 29,
680 29, 29, 29, 29, 690, 29, 29, 29, 29, 29,
681 29, 29, 29, 29, 29, 29, 690, 29, 29, 29,
682 690, 690, 690, 29, 674, 674, 146, 146, 146, 674,
683 674, 674, 674, 29, 29, 29, 29, 29, 29, 29,
684 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
685 29, 29, 29, 29, 29, 29, 29, 690, 690, 29,
686 29, 29, 29, 29, 29, 29, 29, 29, 29, 690,
687 29, 29, 29, 690, 29, 29, 29, 29, 690, 29,
688 29, 29, 29, 29, 29, 29, 29, 29, 29, 690,
689
690 29, 29, 29, 29, 29, 690, 690, 690, 29, 674,
691 146, 146, 146, 29, 29, 29, 29, 29, 690, 29,
692 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
693 29, 29, 29, 29, 29, 29, 29, 690, 690, 690,
694 29, 29, 29, 29, 29, 29, 29, 29, 29, 690,
695 29, 29, 29, 690, 29, 29, 29, 29, 690, 29,
696 29, 29, 29, 690, 29, 690, 29, 29, 29, 690,
697 29, 690, 690, 690, 674, 146, 146, 146, 29, 29,
698 29, 29, 690, 29, 29, 29, 29, 29, 29, 29,
699 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
700
701 690, 690, 690, 29, 29, 29, 29, 29, 29, 29,
702 29, 29, 29, 690, 29, 29, 690, 29, 29, 29,
703 29, 690, 29, 29, 29, 29, 690, 29, 690, 29,
704 29, 690, 690, 690, 690, 690, 146, 146, 146, 29,
705 29, 29, 690, 29, 29, 29, 29, 29, 29, 29,
706 29, 29, 29, 29, 29, 29, 29, 29, 690, 690,
707 690, 29, 29, 29, 29, 29, 29, 29, 29, 29,
708 29, 690, 29, 690, 29, 29, 29, 29, 690, 29,
709 29, 690, 29, 690, 29, 690, 690, 690, 690, 690,
710 146, 146, 146, 29, 29, 29, 690, 29, 29, 29,
711
712 29, 29, 29, 29, 29, 29, 29, 690, 690, 690,
713 690, 29, 29, 29, 29, 29, 690, 29, 690, 29,
714 690, 29, 690, 29, 29, 690, 29, 690, 29, 690,
715 690, 690, 690, 146, 146, 146, 29, 29, 29, 690,
716 29, 29, 29, 29, 29, 29, 29, 690, 690, 690,
717 690, 29, 29, 690, 29, 690, 690, 29, 690, 29,
718 690, 29, 690, 29, 690, 690, 690, 690, 146, 674,
719 146, 29, 29, 29, 29, 29, 29, 29, 29, 690,
720 690, 690, 29, 29, 690, 29, 690, 690, 29, 690,
721 29, 29, 690, 690, 690, 690, 690, 146, 674, 146,
722
723 29, 29, 29, 29, 690, 690, 690, 29, 690, 29,
724 690, 690, 29, 690, 29, 29, 690, 690, 690, 690,
725 146, 674, 674, 29, 29, 690, 690, 690, 29, 690,
726 29, 690, 690, 29, 690, 29, 29, 690, 690, 690,
727 690, 146, 29, 29, 690, 690, 690, 29, 690, 690,
728 29, 690, 29, 690, 690, 690, 690, 674, 29, 690,
729 29, 690, 690, 29, 690, 690, 29, 690, 690, 690,
730 29, 690, 690, 0, 674, 674, 674, 674, 674, 674,
731 674, 674, 674, 674, 674, 674, 674, 674, 674, 674
732 } ;
733
734static yyconst short int yy_nxt[4245] =
735 { 0,
736 14, 15, 16, 15, 17, 18, 19, 20, 21, 14,
737 22, 23, 24, 25, 26, 26, 26, 26, 26, 26,
738 27, 17, 28, 28, 29, 30, 31, 32, 33, 34,
739 35, 36, 37, 36, 36, 36, 38, 39, 40, 41,
740 36, 42, 43, 44, 45, 46, 47, 36, 36, 36,
741 48, 17, 14, 49, 49, 49, 49, 49, 49, 49,
742 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
743 49, 49, 49, 49, 49, 21, 17, 21, 51, 52,
744 51, 52, 55, 55, 59, 62, 53, 60, 53, 56,
745 56, 59, 57, 57, 60, 62, 508, 68, 69, 68,
746
747 76, 232, 70, 63, 242, 673, 64, 68, 69, 68,
748 243, 674, 70, 63, 233, 509, 64, 73, 73, 73,
749 73, 73, 73, 72, 439, 674, 72, 80, 80, 80,
750 72, 78, 85, 72, 72, 147, 147, 82, 238, 80,
751 80, 83, 83, 83, 83, 83, 83, 86, 86, 86,
752 86, 86, 86, 86, 672, 88, 674, 239, 65, 147,
753 66, 159, 159, 159, 670, 88, 88, 88, 65, 88,
754 66, 28, 100, 71, 88, 312, 101, 88, 88, 102,
755 88, 28, 147, 71, 72, 88, 669, 88, 104, 105,
756 313, 88, 159, 159, 159, 668, 88, 147, 76, 106,
757
758 666, 77, 77, 77, 77, 77, 77, 77, 77, 77,
759 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
760 77, 77, 77, 77, 77, 77, 77, 621, 147, 78,
761 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
762 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
763 79, 79, 88, 665, 535, 88, 88, 88, 88, 88,
764 88, 88, 73, 73, 73, 147, 88, 89, 88, 88,
765 88, 88, 88, 88, 88, 88, 88, 90, 88, 91,
766 88, 92, 88, 88, 88, 88, 93, 88, 88, 88,
767 88, 88, 159, 159, 159, 94, 94, 94, 94, 94,
768
769 94, 94, 94, 94, 94, 94, 94, 94, 94, 94,
770 94, 94, 94, 94, 94, 94, 94, 88, 376, 147,
771 95, 663, 147, 88, 96, 377, 103, 88, 97, 88,
772 98, 88, 662, 88, 437, 88, 88, 88, 107, 88,
773 99, 147, 88, 491, 147, 438, 660, 88, 147, 88,
774 378, 88, 492, 88, 657, 108, 147, 88, 88, 88,
775 147, 88, 111, 88, 147, 112, 88, 147, 569, 493,
776 656, 534, 571, 88, 113, 114, 655, 88, 147, 109,
777 115, 536, 88, 116, 88, 88, 147, 147, 600, 654,
778 110, 117, 147, 598, 88, 88, 88, 88, 88, 88,
779
780 147, 120, 121, 88, 118, 122, 125, 88, 642, 126,
781 147, 88, 652, 88, 650, 123, 649, 127, 647, 88,
782 88, 88, 88, 128, 646, 130, 88, 80, 80, 80,
783 124, 119, 88, 164, 88, 88, 88, 645, 131, 80,
784 80, 88, 132, 641, 640, 88, 639, 88, 638, 88,
785 129, 635, 633, 133, 88, 135, 632, 630, 134, 628,
786 627, 136, 88, 626, 620, 88, 570, 570, 570, 619,
787 618, 617, 88, 614, 88, 88, 88, 140, 137, 88,
788 612, 88, 611, 141, 88, 138, 609, 88, 88, 607,
789 606, 605, 597, 596, 139, 144, 595, 88, 88, 88,
790
791 88, 88, 88, 594, 147, 142, 88, 88, 145, 145,
792 145, 145, 145, 145, 145, 593, 590, 588, 587, 146,
793 623, 623, 623, 143, 166, 166, 166, 166, 166, 166,
794 166, 585, 582, 581, 148, 580, 568, 88, 88, 149,
795 86, 86, 86, 86, 86, 86, 86, 88, 88, 88,
796 88, 88, 88, 88, 88, 169, 88, 88, 147, 658,
797 658, 658, 567, 170, 88, 88, 88, 88, 88, 88,
798 566, 565, 88, 88, 563, 88, 561, 171, 559, 88,
799 557, 88, 556, 172, 554, 88, 88, 88, 88, 88,
800 551, 174, 88, 173, 88, 550, 88, 147, 88, 549,
801
802 88, 548, 88, 88, 88, 88, 88, 540, 533, 532,
803 175, 88, 531, 88, 88, 88, 530, 176, 528, 526,
804 88, 523, 88, 521, 88, 519, 88, 177, 88, 511,
805 88, 510, 88, 88, 88, 178, 88, 497, 490, 88,
806 489, 180, 88, 488, 487, 486, 88, 484, 88, 179,
807 88, 482, 88, 88, 88, 88, 88, 479, 474, 472,
808 461, 88, 460, 88, 181, 182, 88, 88, 459, 184,
809 183, 443, 88, 436, 435, 434, 88, 432, 88, 88,
810 88, 88, 429, 88, 427, 88, 88, 188, 88, 88,
811 185, 186, 422, 417, 414, 403, 88, 88, 88, 88,
812
813 189, 88, 402, 88, 190, 88, 401, 191, 187, 88,
814 88, 88, 383, 195, 374, 373, 88, 372, 366, 359,
815 88, 88, 88, 192, 88, 354, 350, 88, 339, 88,
816 196, 88, 338, 88, 160, 88, 311, 88, 88, 88,
817 88, 88, 308, 307, 88, 198, 88, 306, 88, 300,
818 88, 289, 197, 284, 88, 88, 88, 88, 88, 280,
819 269, 199, 200, 88, 268, 88, 88, 88, 201, 88,
820 243, 241, 88, 240, 88, 147, 88, 231, 88, 227,
821 88, 215, 88, 88, 203, 88, 88, 209, 202, 205,
822 194, 88, 193, 204, 168, 88, 88, 88, 167, 88,
823
824 165, 161, 88, 160, 206, 160, 88, 157, 88, 88,
825 88, 88, 88, 88, 155, 88, 85, 207, 88, 153,
826 88, 152, 88, 88, 88, 87, 88, 84, 75, 72,
827 88, 88, 88, 88, 88, 88, 88, 88, 208, 88,
828 72, 210, 88, 674, 674, 674, 88, 88, 88, 674,
829 88, 674, 674, 674, 674, 88, 211, 88, 674, 88,
830 88, 88, 674, 213, 674, 674, 212, 214, 674, 674,
831 88, 674, 88, 674, 88, 216, 88, 674, 674, 88,
832 674, 674, 88, 674, 674, 674, 217, 674, 88, 674,
833 88, 674, 88, 88, 88, 88, 88, 218, 674, 88,
834
835 219, 88, 674, 88, 674, 88, 674, 88, 674, 88,
836 88, 88, 88, 88, 223, 221, 674, 220, 88, 674,
837 88, 674, 222, 674, 88, 88, 88, 674, 674, 88,
838 674, 224, 674, 674, 674, 88, 88, 88, 88, 88,
839 88, 88, 88, 674, 88, 88, 674, 674, 674, 674,
840 674, 88, 88, 88, 88, 88, 226, 88, 88, 229,
841 225, 88, 230, 674, 228, 674, 674, 88, 88, 88,
842 88, 88, 88, 88, 674, 674, 88, 88, 674, 674,
843 674, 674, 674, 88, 674, 88, 674, 88, 236, 236,
844 236, 234, 88, 145, 145, 145, 145, 145, 145, 145,
845
846 674, 674, 674, 674, 674, 674, 674, 166, 166, 166,
847 166, 166, 166, 166, 674, 88, 674, 674, 244, 674,
848 674, 674, 674, 674, 674, 88, 237, 88, 88, 88,
849 674, 235, 674, 245, 88, 674, 88, 674, 88, 88,
850 88, 674, 88, 674, 674, 674, 88, 88, 88, 246,
851 88, 88, 88, 88, 674, 88, 674, 674, 88, 674,
852 88, 674, 88, 88, 88, 247, 88, 248, 674, 674,
853 88, 88, 88, 88, 88, 88, 88, 88, 674, 88,
854 674, 674, 88, 674, 88, 674, 88, 674, 88, 674,
855 88, 674, 88, 249, 250, 88, 88, 674, 88, 674,
856
857 88, 674, 88, 88, 88, 674, 88, 252, 251, 674,
858 88, 88, 88, 88, 88, 674, 674, 674, 674, 88,
859 674, 88, 674, 88, 88, 88, 674, 88, 674, 674,
860 253, 88, 88, 88, 88, 254, 88, 674, 88, 674,
861 88, 255, 256, 88, 257, 88, 88, 674, 674, 259,
862 674, 674, 258, 674, 674, 88, 88, 88, 88, 88,
863 88, 88, 674, 674, 88, 88, 674, 88, 674, 674,
864 674, 88, 674, 88, 260, 88, 674, 88, 88, 88,
865 88, 88, 674, 674, 88, 674, 88, 262, 88, 261,
866 88, 674, 88, 674, 88, 88, 88, 88, 88, 674,
867
868 674, 88, 674, 88, 265, 263, 674, 88, 264, 88,
869 674, 88, 88, 88, 88, 88, 674, 674, 674, 674,
870 88, 674, 88, 88, 88, 674, 88, 674, 674, 266,
871 674, 88, 674, 88, 267, 88, 88, 88, 674, 674,
872 674, 674, 88, 674, 88, 674, 88, 88, 88, 674,
873 88, 674, 674, 270, 88, 88, 271, 272, 88, 88,
874 273, 88, 88, 88, 674, 88, 88, 674, 88, 674,
875 674, 276, 274, 674, 88, 88, 88, 88, 88, 88,
876 88, 88, 88, 275, 88, 277, 88, 88, 674, 88,
877 674, 674, 88, 674, 674, 674, 88, 674, 88, 88,
878
879 88, 88, 88, 88, 88, 88, 88, 88, 278, 674,
880 88, 88, 674, 281, 674, 674, 674, 279, 674, 88,
881 88, 88, 88, 674, 88, 88, 88, 674, 282, 88,
882 674, 88, 674, 674, 674, 88, 674, 88, 283, 88,
883 674, 88, 88, 88, 88, 88, 674, 674, 674, 674,
884 88, 674, 88, 88, 88, 674, 88, 674, 674, 88,
885 285, 88, 674, 88, 674, 88, 674, 88, 674, 88,
886 88, 88, 88, 88, 674, 674, 286, 674, 88, 674,
887 88, 88, 88, 674, 88, 674, 674, 287, 674, 88,
888 674, 88, 88, 88, 674, 88, 674, 291, 88, 674,
889
890 88, 288, 290, 674, 88, 674, 88, 674, 88, 88,
891 88, 88, 88, 674, 674, 88, 674, 88, 674, 88,
892 674, 88, 674, 88, 674, 88, 674, 88, 292, 88,
893 88, 88, 674, 293, 88, 674, 674, 674, 294, 674,
894 88, 88, 88, 88, 88, 88, 88, 674, 674, 88,
895 88, 674, 674, 674, 674, 674, 88, 88, 88, 674,
896 88, 674, 674, 88, 295, 88, 674, 88, 674, 88,
897 674, 88, 674, 88, 296, 88, 88, 88, 88, 674,
898 297, 298, 88, 674, 88, 674, 674, 299, 88, 674,
899 88, 674, 88, 674, 88, 88, 88, 88, 88, 674,
900
901 674, 674, 674, 88, 674, 88, 88, 88, 301, 88,
902 302, 305, 674, 674, 88, 303, 88, 88, 88, 674,
903 88, 674, 674, 674, 304, 88, 674, 88, 88, 88,
904 674, 88, 674, 674, 309, 674, 88, 674, 88, 674,
905 88, 674, 88, 236, 236, 236, 674, 88, 674, 674,
906 674, 674, 88, 88, 674, 310, 310, 310, 310, 310,
907 310, 310, 88, 88, 314, 88, 88, 88, 88, 315,
908 674, 88, 88, 674, 88, 316, 674, 674, 88, 674,
909 88, 674, 88, 674, 88, 317, 88, 88, 88, 88,
910 88, 674, 674, 88, 674, 674, 674, 674, 674, 88,
911
912 88, 318, 88, 88, 88, 321, 88, 88, 88, 88,
913 320, 674, 674, 674, 674, 674, 88, 88, 88, 88,
914 88, 88, 88, 322, 674, 88, 88, 674, 88, 674,
915 674, 674, 88, 674, 88, 319, 88, 674, 88, 88,
916 88, 88, 88, 674, 674, 323, 674, 88, 674, 88,
917 88, 88, 324, 88, 674, 674, 674, 674, 88, 674,
918 88, 674, 88, 674, 88, 88, 325, 326, 88, 88,
919 674, 88, 674, 674, 674, 88, 674, 88, 88, 88,
920 88, 88, 88, 328, 327, 88, 88, 88, 329, 88,
921 88, 330, 88, 674, 674, 331, 88, 674, 88, 88,
922
923 88, 88, 88, 88, 88, 88, 88, 88, 88, 674,
924 674, 88, 674, 88, 674, 674, 674, 88, 674, 88,
925 333, 332, 674, 88, 88, 88, 88, 88, 674, 674,
926 674, 674, 88, 674, 88, 88, 88, 674, 88, 674,
927 334, 674, 674, 88, 674, 88, 674, 335, 674, 88,
928 88, 336, 674, 337, 88, 674, 88, 674, 674, 674,
929 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
930 88, 674, 674, 88, 674, 88, 674, 88, 674, 88,
931 674, 88, 674, 88, 674, 88, 88, 88, 88, 88,
932 674, 341, 88, 674, 674, 342, 674, 674, 88, 88,
933
934 88, 88, 88, 88, 88, 343, 674, 88, 88, 345,
935 88, 674, 340, 674, 88, 674, 88, 674, 88, 674,
936 88, 88, 88, 344, 88, 348, 346, 674, 674, 88,
937 674, 88, 674, 88, 88, 88, 674, 347, 674, 674,
938 88, 674, 88, 674, 88, 674, 88, 674, 88, 674,
939 88, 674, 88, 88, 88, 674, 88, 674, 674, 349,
940 88, 88, 88, 674, 88, 88, 351, 674, 88, 88,
941 674, 674, 674, 674, 674, 88, 674, 88, 88, 88,
942 88, 88, 88, 674, 88, 674, 352, 88, 674, 88,
943 356, 88, 355, 88, 353, 88, 674, 674, 674, 88,
944
945 88, 88, 674, 88, 88, 88, 674, 357, 88, 674,
946 674, 674, 674, 674, 88, 88, 88, 88, 88, 88,
947 358, 88, 88, 88, 88, 674, 674, 674, 674, 674,
948 674, 88, 88, 88, 88, 88, 88, 88, 674, 674,
949 88, 88, 674, 674, 674, 674, 674, 88, 674, 88,
950 88, 88, 674, 361, 674, 360, 88, 674, 88, 674,
951 88, 88, 88, 674, 88, 674, 674, 674, 88, 88,
952 88, 88, 88, 362, 674, 88, 88, 88, 363, 88,
953 88, 674, 88, 674, 674, 365, 88, 674, 88, 88,
954 88, 88, 88, 88, 88, 88, 88, 88, 88, 674,
955
956 88, 88, 674, 88, 674, 674, 674, 88, 674, 88,
957 88, 88, 88, 88, 88, 367, 88, 88, 88, 88,
958 674, 364, 88, 674, 88, 674, 674, 369, 88, 674,
959 88, 674, 88, 674, 88, 88, 88, 368, 88, 674,
960 674, 88, 674, 88, 674, 88, 674, 88, 674, 88,
961 674, 88, 674, 88, 88, 88, 88, 674, 371, 674,
962 88, 674, 674, 674, 674, 674, 88, 674, 88, 674,
963 88, 370, 674, 88, 674, 88, 310, 310, 310, 310,
964 310, 310, 310, 88, 674, 88, 674, 88, 380, 88,
965 674, 379, 88, 674, 674, 674, 674, 88, 381, 88,
966
967 674, 88, 674, 88, 382, 88, 674, 88, 88, 88,
968 674, 88, 674, 88, 375, 88, 88, 88, 674, 88,
969 384, 88, 674, 88, 88, 88, 674, 88, 674, 88,
970 385, 88, 88, 88, 674, 88, 674, 674, 674, 88,
971 88, 88, 88, 88, 674, 386, 674, 674, 88, 674,
972 88, 674, 88, 88, 88, 674, 88, 674, 674, 674,
973 88, 88, 88, 88, 88, 387, 674, 88, 88, 88,
974 388, 88, 88, 674, 88, 389, 674, 674, 88, 674,
975 88, 88, 88, 88, 390, 88, 88, 88, 88, 88,
976 88, 674, 391, 88, 674, 88, 392, 393, 674, 88,
977
978 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
979 88, 88, 674, 394, 88, 674, 674, 674, 674, 674,
980 88, 88, 88, 88, 88, 88, 88, 395, 674, 88,
981 88, 674, 674, 674, 674, 674, 88, 674, 88, 674,
982 88, 88, 397, 674, 396, 88, 674, 88, 674, 674,
983 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
984 88, 88, 674, 674, 88, 398, 88, 674, 88, 674,
985 88, 674, 88, 674, 88, 399, 400, 88, 88, 88,
986 88, 674, 674, 88, 674, 674, 674, 404, 674, 88,
987 88, 88, 88, 88, 88, 674, 674, 88, 88, 88,
988
989 88, 405, 674, 406, 674, 674, 674, 88, 674, 88,
990 88, 88, 88, 674, 88, 407, 88, 88, 88, 88,
991 408, 674, 674, 674, 674, 674, 674, 88, 88, 409,
992 88, 88, 88, 674, 88, 88, 88, 88, 410, 674,
993 674, 413, 674, 412, 88, 88, 88, 88, 88, 88,
994 88, 411, 674, 88, 88, 674, 88, 674, 674, 674,
995 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
996 88, 674, 674, 674, 674, 88, 674, 88, 88, 88,
997 674, 88, 674, 674, 88, 415, 88, 674, 88, 674,
998 88, 674, 88, 674, 88, 88, 416, 88, 88, 674,
999
1000 674, 674, 674, 88, 674, 88, 88, 88, 674, 88,
1001 674, 418, 88, 419, 88, 674, 88, 674, 88, 674,
1002 88, 674, 88, 88, 420, 88, 88, 674, 674, 674,
1003 674, 88, 674, 88, 674, 88, 88, 88, 674, 88,
1004 674, 421, 88, 423, 674, 674, 88, 88, 88, 88,
1005 88, 424, 425, 88, 674, 88, 674, 88, 88, 88,
1006 88, 88, 674, 674, 674, 674, 88, 674, 674, 674,
1007 88, 88, 88, 674, 88, 674, 674, 88, 428, 88,
1008 674, 88, 426, 88, 674, 88, 674, 88, 674, 88,
1009 88, 88, 88, 88, 674, 430, 88, 674, 674, 674,
1010
1011 674, 674, 88, 88, 88, 88, 88, 88, 88, 431,
1012 674, 88, 88, 674, 88, 674, 674, 674, 88, 674,
1013 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
1014 440, 441, 88, 88, 674, 674, 674, 674, 674, 88,
1015 88, 88, 88, 88, 88, 674, 88, 674, 88, 674,
1016 88, 88, 88, 433, 88, 88, 674, 674, 442, 88,
1017 674, 88, 674, 674, 674, 88, 674, 444, 674, 88,
1018 674, 88, 88, 88, 88, 88, 674, 674, 88, 445,
1019 88, 446, 88, 674, 88, 674, 88, 674, 88, 88,
1020 88, 88, 88, 674, 674, 88, 447, 88, 674, 88,
1021
1022 674, 88, 674, 88, 674, 88, 88, 448, 88, 88,
1023 674, 674, 674, 674, 88, 674, 88, 88, 88, 450,
1024 88, 674, 674, 88, 449, 88, 674, 88, 674, 88,
1025 674, 88, 674, 88, 674, 88, 88, 88, 674, 674,
1026 88, 451, 88, 452, 674, 674, 88, 674, 453, 674,
1027 88, 674, 88, 674, 88, 674, 88, 674, 88, 88,
1028 88, 454, 88, 88, 674, 88, 674, 674, 674, 674,
1029 674, 674, 88, 88, 88, 88, 88, 88, 88, 88,
1030 674, 88, 88, 674, 674, 455, 674, 674, 88, 88,
1031 88, 88, 88, 88, 88, 674, 456, 88, 88, 458,
1032
1033 88, 457, 674, 674, 88, 674, 88, 674, 88, 674,
1034 88, 88, 88, 88, 88, 462, 674, 88, 674, 88,
1035 674, 88, 674, 88, 463, 88, 674, 88, 674, 88,
1036 88, 88, 88, 88, 464, 674, 88, 674, 674, 674,
1037 674, 674, 88, 88, 88, 88, 88, 88, 674, 674,
1038 465, 88, 88, 88, 88, 467, 466, 674, 674, 674,
1039 674, 674, 674, 88, 88, 88, 88, 88, 88, 88,
1040 674, 674, 88, 88, 674, 674, 674, 88, 674, 88,
1041 469, 88, 674, 88, 674, 468, 674, 88, 88, 88,
1042 88, 88, 674, 674, 674, 674, 88, 674, 88, 674,
1043
1044 88, 88, 88, 674, 88, 471, 674, 470, 88, 88,
1045 88, 88, 88, 88, 674, 88, 88, 88, 473, 88,
1046 88, 674, 88, 674, 674, 674, 88, 674, 475, 88,
1047 88, 88, 88, 88, 476, 88, 88, 88, 88, 674,
1048 88, 88, 674, 478, 674, 674, 674, 88, 88, 88,
1049 88, 88, 88, 674, 88, 477, 88, 674, 88, 88,
1050 88, 674, 88, 88, 481, 674, 88, 88, 480, 88,
1051 674, 674, 674, 88, 674, 88, 88, 88, 88, 88,
1052 88, 88, 88, 88, 88, 88, 483, 88, 88, 674,
1053 88, 674, 674, 674, 88, 674, 88, 88, 88, 88,
1054
1055 88, 88, 88, 88, 88, 88, 88, 485, 88, 88,
1056 674, 674, 674, 674, 674, 88, 674, 88, 88, 88,
1057 88, 88, 88, 494, 88, 674, 495, 88, 496, 88,
1058 674, 88, 674, 88, 674, 88, 674, 674, 674, 88,
1059 88, 88, 88, 88, 674, 498, 674, 674, 88, 674,
1060 88, 674, 88, 88, 88, 674, 88, 674, 674, 674,
1061 88, 88, 499, 88, 88, 500, 88, 88, 674, 88,
1062 674, 674, 88, 501, 88, 674, 88, 88, 88, 674,
1063 88, 674, 674, 674, 88, 88, 88, 88, 88, 88,
1064 88, 88, 674, 88, 674, 674, 88, 502, 88, 674,
1065
1066 88, 88, 88, 503, 88, 674, 674, 674, 88, 88,
1067 88, 88, 88, 88, 88, 88, 674, 88, 674, 674,
1068 88, 674, 674, 674, 88, 88, 88, 674, 88, 674,
1069 674, 674, 504, 88, 674, 88, 88, 88, 674, 88,
1070 674, 674, 506, 505, 88, 674, 88, 674, 88, 674,
1071 88, 674, 88, 88, 88, 88, 88, 674, 674, 88,
1072 674, 88, 674, 507, 674, 88, 512, 88, 674, 88,
1073 88, 88, 88, 88, 674, 674, 674, 674, 88, 674,
1074 88, 88, 88, 674, 88, 674, 674, 88, 513, 88,
1075 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
1076
1077 88, 88, 674, 674, 88, 674, 88, 515, 88, 674,
1078 88, 674, 88, 674, 88, 514, 88, 88, 88, 88,
1079 88, 516, 674, 88, 674, 674, 674, 674, 674, 88,
1080 88, 88, 88, 88, 88, 88, 88, 674, 88, 88,
1081 674, 674, 674, 674, 674, 88, 88, 88, 518, 88,
1082 88, 88, 88, 674, 88, 88, 674, 674, 674, 674,
1083 674, 520, 88, 88, 88, 88, 88, 674, 674, 88,
1084 88, 88, 88, 522, 674, 88, 674, 674, 674, 88,
1085 517, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1086 88, 88, 674, 524, 88, 674, 88, 674, 674, 525,
1087
1088 88, 674, 88, 674, 88, 674, 88, 674, 88, 88,
1089 88, 88, 674, 537, 527, 88, 529, 88, 674, 674,
1090 674, 88, 674, 88, 674, 88, 674, 88, 88, 88,
1091 88, 88, 674, 674, 88, 674, 88, 674, 88, 674,
1092 88, 538, 88, 674, 88, 674, 88, 88, 88, 88,
1093 539, 674, 674, 88, 674, 88, 674, 674, 674, 88,
1094 674, 88, 674, 88, 674, 88, 88, 88, 88, 88,
1095 674, 541, 674, 674, 88, 674, 88, 674, 88, 88,
1096 88, 674, 543, 674, 542, 88, 674, 88, 674, 88,
1097 88, 88, 674, 88, 674, 674, 674, 88, 88, 544,
1098
1099 88, 88, 88, 545, 88, 88, 88, 674, 88, 88,
1100 674, 546, 674, 674, 674, 88, 88, 88, 88, 88,
1101 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
1102 88, 674, 88, 674, 674, 88, 547, 674, 674, 88,
1103 674, 88, 88, 88, 88, 674, 88, 88, 88, 674,
1104 552, 88, 674, 88, 674, 674, 674, 88, 674, 88,
1105 674, 88, 674, 88, 88, 88, 88, 88, 674, 674,
1106 88, 674, 88, 674, 88, 674, 88, 674, 88, 674,
1107 88, 88, 88, 88, 88, 674, 674, 674, 674, 88,
1108 674, 88, 88, 88, 674, 88, 555, 674, 88, 553,
1109
1110 88, 674, 88, 674, 88, 560, 88, 674, 88, 88,
1111 88, 88, 88, 674, 674, 674, 558, 88, 674, 88,
1112 88, 88, 674, 88, 674, 674, 88, 674, 88, 674,
1113 88, 674, 88, 674, 88, 674, 88, 88, 88, 88,
1114 88, 674, 674, 88, 674, 88, 674, 88, 674, 562,
1115 674, 88, 674, 564, 88, 88, 88, 88, 674, 674,
1116 674, 674, 88, 674, 88, 88, 88, 674, 88, 674,
1117 674, 572, 674, 88, 674, 88, 88, 88, 573, 88,
1118 674, 674, 88, 674, 88, 674, 88, 674, 88, 674,
1119 88, 674, 88, 88, 88, 88, 88, 674, 674, 674,
1120
1121 674, 88, 674, 88, 88, 88, 575, 88, 674, 674,
1122 574, 674, 88, 674, 88, 88, 88, 674, 88, 674,
1123 576, 88, 674, 88, 674, 88, 674, 88, 674, 88,
1124 674, 88, 674, 577, 88, 88, 88, 88, 578, 674,
1125 88, 674, 674, 674, 674, 674, 88, 579, 88, 88,
1126 88, 88, 88, 88, 674, 88, 88, 674, 674, 674,
1127 584, 674, 88, 88, 88, 88, 88, 88, 583, 88,
1128 88, 88, 88, 674, 674, 674, 586, 674, 674, 88,
1129 88, 88, 589, 88, 88, 88, 674, 674, 88, 88,
1130 674, 88, 674, 674, 674, 88, 674, 88, 591, 88,
1131
1132 674, 88, 88, 88, 88, 88, 674, 674, 674, 592,
1133 88, 674, 88, 674, 88, 674, 88, 570, 570, 570,
1134 674, 88, 674, 674, 674, 674, 88, 88, 674, 599,
1135 599, 599, 599, 599, 599, 599, 88, 88, 88, 602,
1136 88, 88, 88, 88, 674, 88, 88, 674, 674, 601,
1137 674, 674, 88, 88, 88, 88, 88, 88, 88, 88,
1138 674, 88, 88, 674, 674, 674, 674, 674, 88, 88,
1139 88, 88, 88, 88, 88, 88, 603, 88, 88, 674,
1140 674, 674, 604, 674, 88, 88, 88, 88, 88, 88,
1141 88, 674, 674, 88, 88, 674, 674, 674, 88, 674,
1142
1143 88, 674, 88, 674, 88, 674, 88, 674, 88, 88,
1144 88, 608, 88, 674, 88, 674, 88, 88, 610, 674,
1145 88, 613, 88, 674, 88, 88, 88, 674, 88, 615,
1146 88, 674, 88, 88, 88, 674, 88, 616, 674, 674,
1147 88, 88, 88, 674, 88, 674, 674, 88, 88, 88,
1148 599, 599, 599, 599, 599, 599, 599, 88, 88, 624,
1149 88, 88, 88, 88, 674, 674, 88, 88, 674, 674,
1150 674, 88, 674, 88, 674, 88, 674, 88, 674, 674,
1151 674, 88, 88, 88, 88, 88, 674, 674, 622, 625,
1152 88, 674, 88, 674, 88, 88, 629, 674, 88, 631,
1153
1154 674, 674, 88, 88, 88, 88, 88, 88, 88, 88,
1155 636, 88, 674, 634, 88, 674, 674, 674, 88, 88,
1156 88, 674, 88, 637, 674, 674, 674, 88, 674, 88,
1157 674, 88, 674, 88, 623, 623, 623, 674, 88, 674,
1158 674, 674, 674, 88, 88, 674, 599, 599, 599, 599,
1159 599, 599, 599, 88, 88, 88, 88, 88, 88, 88,
1160 674, 643, 88, 88, 674, 88, 674, 644, 674, 88,
1161 674, 88, 674, 88, 674, 88, 88, 88, 88, 88,
1162 674, 674, 88, 648, 88, 674, 88, 674, 88, 674,
1163 88, 674, 88, 88, 88, 88, 88, 674, 674, 651,
1164
1165 653, 88, 674, 88, 674, 88, 88, 88, 659, 88,
1166 674, 674, 88, 674, 674, 674, 88, 88, 88, 88,
1167 88, 88, 674, 88, 674, 88, 674, 88, 88, 88,
1168 674, 88, 88, 674, 674, 88, 88, 674, 664, 674,
1169 661, 674, 88, 674, 88, 88, 88, 88, 674, 88,
1170 674, 88, 674, 674, 88, 658, 658, 658, 674, 674,
1171 674, 674, 674, 674, 88, 88, 674, 599, 599, 599,
1172 599, 599, 599, 599, 88, 88, 88, 88, 88, 88,
1173 88, 88, 674, 88, 88, 674, 667, 674, 674, 674,
1174 88, 88, 88, 88, 88, 88, 671, 88, 674, 88,
1175
1176 88, 674, 674, 674, 674, 674, 674, 88, 674, 88,
1177 674, 88, 674, 674, 674, 674, 88, 50, 50, 50,
1178 50, 50, 50, 50, 50, 50, 50, 50, 50, 54,
1179 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,
1180 54, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1181 58, 58, 58, 61, 61, 61, 61, 61, 61, 61,
1182 61, 61, 61, 61, 61, 67, 67, 67, 67, 67,
1183 67, 67, 67, 67, 67, 67, 67, 74, 74, 74,
1184 674, 74, 74, 74, 74, 74, 74, 74, 74, 81,
1185 81, 674, 674, 81, 674, 81, 147, 674, 147, 150,
1186
1187 150, 674, 150, 150, 151, 151, 674, 151, 151, 151,
1188 674, 151, 151, 151, 151, 151, 154, 154, 154, 674,
1189 154, 154, 154, 154, 154, 154, 154, 154, 156, 156,
1190 156, 156, 156, 156, 156, 156, 674, 156, 156, 158,
1191 674, 674, 158, 674, 158, 158, 158, 158, 158, 158,
1192 162, 162, 674, 162, 162, 163, 163, 674, 163, 163,
1193 94, 94, 674, 94, 94, 13, 674, 674, 674, 674,
1194 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1195 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1196 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1197
1198 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1199 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1200 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1201 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1202 674, 674, 674, 674
1203 } ;
1204
1205static yyconst short int yy_chk[4245] =
1206 { 0,
1207 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1208 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1209 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1210 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1211 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1212 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1213 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1214 1, 1, 1, 1, 1, 1, 1, 1, 3, 3,
1215 4, 4, 5, 6, 7, 9, 3, 7, 4, 5,
1216 6, 8, 5, 6, 8, 10, 459, 11, 11, 11,
1217
1218 78, 143, 11, 9, 164, 669, 9, 12, 12, 12,
1219 164, 70, 12, 10, 143, 459, 10, 15, 15, 15,
1220 16, 16, 16, 15, 378, 70, 16, 20, 20, 20,
1221 24, 78, 24, 20, 22, 378, 148, 22, 148, 20,
1222 20, 22, 22, 22, 22, 22, 22, 26, 26, 26,
1223 26, 26, 26, 26, 665, 36, 70, 149, 9, 149,
1224 9, 68, 68, 68, 663, 36, 31, 36, 10, 36,
1225 10, 11, 31, 11, 36, 238, 31, 33, 31, 31,
1226 31, 12, 238, 12, 19, 31, 662, 33, 33, 33,
1227 239, 33, 69, 69, 69, 660, 33, 239, 19, 33,
1228
1229 656, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1230 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1231 19, 19, 19, 19, 19, 19, 19, 598, 598, 19,
1232 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1233 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
1234 19, 19, 29, 655, 492, 29, 29, 29, 29, 29,
1235 29, 29, 73, 73, 73, 492, 29, 29, 29, 29,
1236 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1237 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1238 29, 29, 159, 159, 159, 29, 29, 29, 29, 29,
1239
1240 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
1241 29, 29, 29, 29, 29, 29, 29, 30, 311, 312,
1242 30, 652, 311, 32, 30, 312, 32, 30, 30, 30,
1243 30, 30, 650, 32, 376, 32, 30, 32, 34, 34,
1244 30, 376, 32, 437, 313, 377, 646, 35, 438, 34,
1245 313, 34, 438, 34, 641, 34, 437, 35, 34, 35,
1246 377, 35, 37, 37, 534, 37, 35, 439, 534, 439,
1247 640, 491, 536, 37, 37, 37, 639, 37, 493, 35,
1248 37, 493, 37, 38, 38, 39, 491, 536, 571, 638,
1249 35, 38, 571, 569, 38, 39, 38, 39, 38, 39,
1250
1251 569, 40, 40, 38, 39, 40, 41, 41, 621, 41,
1252 621, 40, 635, 40, 633, 40, 632, 41, 628, 41,
1253 40, 41, 42, 41, 627, 42, 41, 80, 80, 80,
1254 40, 39, 42, 80, 42, 43, 42, 626, 43, 80,
1255 80, 42, 43, 620, 619, 43, 618, 43, 617, 43,
1256 41, 614, 612, 43, 43, 44, 611, 609, 43, 607,
1257 606, 44, 44, 605, 597, 45, 535, 535, 535, 596,
1258 595, 593, 44, 590, 44, 45, 44, 45, 44, 45,
1259 588, 44, 587, 45, 45, 44, 585, 46, 47, 582,
1260 581, 580, 568, 567, 44, 47, 566, 46, 47, 46,
1261
1262 47, 46, 47, 565, 535, 45, 46, 47, 48, 48,
1263 48, 48, 48, 48, 48, 563, 559, 557, 556, 48,
1264 600, 600, 600, 46, 83, 83, 83, 83, 83, 83,
1265 83, 554, 550, 549, 48, 548, 533, 88, 89, 48,
1266 86, 86, 86, 86, 86, 86, 86, 88, 89, 88,
1267 89, 88, 89, 90, 91, 89, 88, 89, 600, 642,
1268 642, 642, 532, 90, 91, 90, 91, 90, 91, 92,
1269 531, 530, 90, 91, 528, 93, 526, 91, 523, 92,
1270 521, 92, 519, 92, 517, 93, 95, 93, 92, 93,
1271 511, 95, 96, 93, 93, 510, 95, 642, 95, 509,
1272
1273 95, 508, 96, 97, 96, 95, 96, 497, 490, 489,
1274 96, 96, 488, 97, 98, 97, 487, 97, 484, 482,
1275 99, 479, 97, 474, 98, 472, 98, 98, 98, 461,
1276 99, 460, 99, 98, 99, 100, 100, 443, 436, 99,
1277 435, 101, 101, 434, 433, 432, 100, 429, 100, 100,
1278 100, 427, 101, 102, 101, 100, 101, 422, 417, 414,
1279 403, 101, 402, 102, 102, 102, 103, 102, 401, 104,
1280 103, 383, 102, 374, 373, 372, 103, 370, 103, 104,
1281 103, 104, 366, 104, 364, 103, 106, 106, 104, 105,
1282 105, 105, 359, 354, 350, 340, 106, 107, 106, 105,
1283
1284 106, 105, 339, 105, 106, 106, 338, 107, 105, 107,
1285 108, 107, 319, 111, 308, 307, 107, 306, 300, 289,
1286 108, 111, 108, 108, 108, 284, 280, 112, 269, 108,
1287 112, 111, 268, 111, 241, 111, 237, 112, 113, 112,
1288 111, 112, 233, 232, 114, 114, 112, 231, 113, 227,
1289 113, 215, 113, 209, 114, 115, 114, 113, 114, 205,
1290 194, 114, 114, 114, 193, 115, 116, 115, 115, 115,
1291 165, 161, 117, 157, 115, 147, 116, 142, 116, 139,
1292 116, 129, 117, 118, 117, 116, 117, 124, 116, 119,
1293 110, 117, 109, 118, 87, 118, 120, 118, 84, 121,
1294
1295 81, 76, 118, 75, 120, 72, 120, 63, 120, 121,
1296 120, 121, 122, 121, 60, 120, 57, 121, 121, 56,
1297 123, 53, 122, 125, 122, 27, 122, 23, 18, 17,
1298 123, 122, 123, 125, 123, 125, 126, 125, 123, 123,
1299 14, 125, 125, 13, 0, 0, 126, 127, 126, 0,
1300 126, 0, 0, 0, 0, 126, 126, 127, 0, 127,
1301 128, 127, 0, 128, 0, 0, 127, 128, 0, 0,
1302 128, 0, 128, 0, 128, 130, 130, 0, 0, 128,
1303 0, 0, 131, 0, 0, 0, 130, 0, 130, 0,
1304 130, 0, 131, 132, 131, 130, 131, 131, 0, 133,
1305
1306 131, 131, 0, 132, 0, 132, 0, 132, 0, 133,
1307 134, 133, 132, 133, 135, 133, 0, 132, 133, 0,
1308 134, 0, 134, 0, 134, 135, 136, 0, 0, 134,
1309 0, 136, 0, 0, 0, 135, 136, 135, 136, 135,
1310 136, 137, 138, 0, 135, 136, 0, 0, 0, 0,
1311 0, 137, 138, 137, 138, 137, 138, 140, 141, 141,
1312 137, 138, 141, 0, 140, 0, 0, 140, 141, 140,
1313 141, 140, 141, 144, 0, 0, 140, 141, 0, 0,
1314 0, 0, 0, 144, 0, 144, 0, 144, 146, 146,
1315 146, 144, 144, 145, 145, 145, 145, 145, 145, 145,
1316
1317 146, 146, 146, 146, 146, 146, 146, 166, 166, 166,
1318 166, 166, 166, 166, 0, 169, 0, 0, 169, 0,
1319 0, 0, 0, 0, 0, 169, 146, 169, 170, 169,
1320 0, 145, 0, 169, 169, 0, 171, 0, 170, 172,
1321 170, 0, 170, 0, 0, 0, 171, 170, 171, 172,
1322 171, 172, 173, 172, 0, 171, 0, 0, 172, 0,
1323 174, 0, 173, 175, 173, 173, 173, 174, 0, 0,
1324 174, 173, 174, 175, 174, 175, 176, 175, 0, 174,
1325 0, 0, 175, 0, 177, 0, 176, 0, 176, 0,
1326 176, 0, 178, 176, 177, 176, 177, 0, 177, 0,
1327
1328 179, 0, 178, 177, 178, 0, 178, 179, 178, 0,
1329 179, 178, 179, 180, 179, 0, 0, 0, 0, 179,
1330 0, 181, 0, 180, 182, 180, 0, 180, 0, 0,
1331 180, 181, 180, 181, 182, 181, 182, 0, 182, 0,
1332 181, 182, 182, 182, 183, 183, 184, 0, 0, 184,
1333 0, 0, 183, 0, 0, 183, 184, 183, 184, 183,
1334 184, 185, 0, 0, 183, 184, 0, 186, 0, 0,
1335 0, 185, 0, 185, 185, 185, 0, 186, 187, 186,
1336 185, 186, 0, 0, 188, 0, 186, 188, 187, 187,
1337 187, 0, 187, 0, 188, 189, 188, 187, 188, 0,
1338
1339 0, 190, 0, 188, 190, 189, 0, 189, 189, 189,
1340 0, 190, 191, 190, 189, 190, 0, 0, 0, 0,
1341 190, 0, 191, 192, 191, 0, 191, 0, 0, 191,
1342 0, 191, 0, 192, 192, 192, 195, 192, 0, 0,
1343 0, 0, 192, 0, 196, 0, 195, 197, 195, 0,
1344 195, 0, 0, 195, 196, 195, 196, 197, 196, 197,
1345 197, 197, 198, 196, 0, 199, 197, 0, 200, 0,
1346 0, 200, 198, 0, 198, 199, 198, 199, 200, 199,
1347 200, 198, 200, 199, 199, 201, 202, 200, 0, 203,
1348 0, 0, 201, 0, 0, 0, 202, 0, 202, 203,
1349
1350 202, 203, 201, 203, 201, 202, 201, 204, 203, 0,
1351 206, 201, 0, 206, 0, 0, 0, 204, 0, 204,
1352 206, 204, 206, 0, 206, 207, 204, 0, 207, 206,
1353 0, 208, 0, 0, 0, 207, 0, 207, 208, 207,
1354 0, 208, 210, 208, 207, 208, 0, 0, 0, 0,
1355 208, 0, 210, 211, 210, 0, 210, 0, 0, 212,
1356 210, 210, 0, 211, 0, 211, 0, 211, 0, 212,
1357 213, 212, 211, 212, 0, 0, 212, 0, 212, 0,
1358 213, 214, 213, 0, 213, 0, 0, 213, 0, 213,
1359 0, 214, 216, 214, 0, 214, 0, 217, 217, 0,
1360
1361 214, 214, 216, 0, 216, 0, 216, 0, 217, 218,
1362 217, 216, 217, 0, 0, 219, 0, 217, 0, 218,
1363 0, 218, 0, 218, 0, 219, 0, 219, 218, 219,
1364 220, 221, 0, 220, 219, 0, 0, 0, 221, 0,
1365 220, 221, 220, 221, 220, 221, 222, 0, 0, 220,
1366 221, 0, 0, 0, 0, 0, 222, 223, 222, 0,
1367 222, 0, 0, 224, 222, 222, 0, 223, 0, 223,
1368 0, 223, 0, 224, 223, 224, 223, 224, 225, 0,
1369 224, 225, 224, 0, 226, 0, 0, 226, 225, 0,
1370 225, 0, 225, 0, 226, 228, 226, 225, 226, 0,
1371
1372 0, 0, 0, 226, 0, 228, 229, 228, 228, 228,
1373 228, 230, 0, 0, 228, 228, 229, 230, 229, 0,
1374 229, 0, 0, 0, 229, 229, 0, 230, 234, 230,
1375 0, 230, 0, 0, 234, 0, 230, 0, 234, 0,
1376 234, 0, 234, 236, 236, 236, 0, 234, 0, 0,
1377 0, 0, 244, 245, 0, 236, 236, 236, 236, 236,
1378 236, 236, 244, 245, 244, 245, 244, 245, 246, 245,
1379 0, 244, 245, 0, 247, 246, 0, 0, 246, 0,
1380 246, 0, 246, 0, 247, 247, 247, 246, 247, 248,
1381 249, 0, 0, 247, 0, 0, 0, 0, 0, 248,
1382
1383 249, 248, 249, 248, 249, 251, 251, 250, 248, 249,
1384 250, 0, 0, 0, 0, 0, 251, 250, 251, 250,
1385 251, 250, 252, 252, 0, 251, 250, 0, 253, 0,
1386 0, 0, 252, 0, 252, 249, 252, 0, 253, 254,
1387 253, 252, 253, 0, 0, 253, 0, 253, 0, 254,
1388 255, 254, 254, 254, 0, 0, 0, 0, 254, 0,
1389 255, 0, 255, 0, 255, 257, 255, 256, 256, 255,
1390 0, 258, 0, 0, 0, 257, 0, 257, 256, 257,
1391 256, 258, 256, 258, 257, 258, 259, 256, 259, 260,
1392 258, 260, 261, 0, 0, 261, 259, 0, 259, 260,
1393
1394 259, 260, 261, 260, 261, 259, 261, 262, 260, 0,
1395 0, 261, 0, 263, 0, 0, 0, 262, 0, 262,
1396 263, 262, 0, 263, 264, 263, 262, 263, 0, 0,
1397 0, 0, 263, 0, 264, 265, 264, 0, 264, 0,
1398 264, 0, 0, 264, 0, 265, 0, 265, 0, 265,
1399 266, 265, 0, 266, 265, 0, 267, 0, 0, 0,
1400 266, 0, 266, 0, 266, 0, 267, 270, 267, 266,
1401 267, 0, 0, 271, 0, 267, 0, 270, 0, 270,
1402 0, 270, 0, 271, 0, 271, 270, 271, 272, 273,
1403 0, 271, 271, 0, 0, 272, 0, 0, 272, 273,
1404
1405 272, 273, 272, 273, 274, 273, 0, 272, 273, 275,
1406 275, 0, 270, 0, 274, 0, 274, 0, 274, 0,
1407 275, 276, 275, 274, 275, 277, 276, 0, 0, 275,
1408 0, 276, 0, 276, 277, 276, 0, 276, 0, 0,
1409 276, 0, 278, 0, 277, 0, 277, 0, 277, 0,
1410 279, 0, 278, 277, 278, 0, 278, 0, 0, 278,
1411 279, 278, 279, 0, 279, 281, 281, 0, 282, 279,
1412 0, 0, 0, 0, 0, 281, 0, 281, 282, 281,
1413 282, 283, 282, 0, 281, 0, 282, 282, 0, 285,
1414 286, 283, 285, 283, 283, 283, 0, 0, 0, 285,
1415
1416 283, 285, 0, 285, 287, 286, 0, 287, 285, 0,
1417 0, 0, 0, 0, 287, 286, 287, 286, 287, 286,
1418 288, 288, 290, 287, 286, 0, 0, 0, 0, 0,
1419 0, 288, 290, 288, 290, 288, 290, 291, 0, 0,
1420 288, 290, 0, 0, 0, 0, 0, 291, 0, 291,
1421 292, 291, 0, 292, 0, 291, 291, 0, 293, 0,
1422 292, 294, 292, 0, 292, 0, 0, 0, 293, 292,
1423 293, 294, 293, 294, 0, 294, 296, 293, 295, 295,
1424 294, 0, 297, 0, 0, 299, 296, 0, 296, 295,
1425 296, 295, 297, 295, 297, 296, 297, 298, 295, 0,
1426
1427 299, 297, 0, 301, 0, 0, 0, 298, 0, 298,
1428 299, 298, 299, 301, 299, 301, 298, 301, 302, 299,
1429 0, 296, 301, 0, 303, 0, 0, 303, 302, 0,
1430 302, 0, 302, 0, 303, 304, 303, 302, 303, 0,
1431 0, 305, 0, 303, 0, 304, 0, 304, 0, 304,
1432 0, 305, 0, 305, 304, 305, 309, 0, 305, 0,
1433 305, 0, 0, 0, 0, 0, 309, 0, 309, 0,
1434 309, 304, 0, 314, 0, 309, 310, 310, 310, 310,
1435 310, 310, 310, 314, 0, 314, 0, 314, 315, 315,
1436 0, 314, 314, 0, 0, 0, 0, 316, 316, 315,
1437
1438 0, 315, 0, 315, 317, 317, 0, 316, 315, 316,
1439 0, 316, 0, 318, 310, 317, 316, 317, 0, 317,
1440 320, 320, 0, 318, 317, 318, 0, 318, 0, 321,
1441 321, 320, 318, 320, 0, 320, 0, 0, 0, 321,
1442 320, 321, 322, 321, 0, 322, 0, 0, 321, 0,
1443 323, 0, 322, 324, 322, 0, 322, 0, 0, 0,
1444 323, 322, 323, 324, 323, 324, 0, 324, 326, 323,
1445 325, 325, 324, 0, 327, 326, 0, 0, 326, 0,
1446 326, 325, 326, 325, 327, 325, 327, 326, 327, 328,
1447 325, 0, 328, 327, 0, 329, 328, 329, 0, 328,
1448
1449 0, 328, 0, 328, 0, 329, 0, 329, 328, 329,
1450 330, 331, 0, 330, 329, 0, 0, 0, 0, 0,
1451 330, 331, 330, 331, 330, 331, 332, 331, 0, 330,
1452 331, 0, 0, 0, 0, 0, 332, 0, 332, 0,
1453 332, 333, 333, 0, 332, 332, 0, 334, 0, 0,
1454 0, 333, 0, 333, 0, 333, 0, 334, 335, 334,
1455 333, 334, 0, 0, 336, 334, 334, 0, 335, 0,
1456 335, 0, 335, 0, 336, 335, 336, 335, 336, 337,
1457 341, 0, 0, 336, 0, 0, 0, 341, 0, 337,
1458 341, 337, 341, 337, 341, 0, 0, 343, 337, 341,
1459
1460 342, 342, 0, 342, 0, 0, 0, 343, 0, 343,
1461 342, 343, 342, 0, 342, 343, 343, 345, 344, 342,
1462 344, 0, 0, 0, 0, 0, 0, 345, 344, 345,
1463 344, 345, 344, 0, 347, 346, 345, 344, 346, 0,
1464 0, 349, 0, 348, 347, 346, 347, 346, 347, 346,
1465 348, 347, 0, 347, 346, 0, 349, 0, 0, 0,
1466 348, 0, 348, 0, 348, 0, 349, 351, 349, 348,
1467 349, 0, 0, 0, 0, 349, 0, 351, 352, 351,
1468 0, 351, 0, 0, 353, 351, 351, 0, 352, 0,
1469 352, 0, 352, 0, 353, 355, 353, 352, 353, 0,
1470
1471 0, 0, 0, 353, 0, 355, 356, 355, 0, 355,
1472 0, 355, 357, 356, 355, 0, 356, 0, 356, 0,
1473 356, 0, 357, 358, 357, 356, 357, 0, 0, 0,
1474 0, 357, 0, 358, 0, 358, 360, 358, 0, 361,
1475 0, 358, 358, 360, 0, 0, 360, 362, 360, 361,
1476 360, 361, 362, 361, 0, 360, 0, 362, 361, 362,
1477 363, 362, 0, 0, 0, 0, 362, 0, 0, 0,
1478 363, 365, 363, 0, 363, 0, 0, 367, 365, 363,
1479 0, 365, 363, 365, 0, 365, 0, 367, 0, 367,
1480 365, 367, 368, 369, 0, 368, 367, 0, 0, 0,
1481
1482 0, 0, 368, 369, 368, 369, 368, 369, 371, 369,
1483 0, 368, 369, 0, 379, 0, 0, 0, 371, 0,
1484 371, 0, 371, 0, 379, 0, 379, 371, 379, 380,
1485 380, 381, 381, 379, 0, 0, 0, 0, 0, 380,
1486 382, 380, 381, 380, 381, 0, 381, 0, 380, 0,
1487 382, 381, 382, 371, 382, 384, 0, 0, 382, 382,
1488 0, 385, 0, 0, 0, 384, 0, 384, 0, 384,
1489 0, 385, 386, 385, 384, 385, 0, 0, 387, 385,
1490 385, 387, 386, 0, 386, 0, 386, 0, 387, 388,
1491 387, 386, 387, 0, 0, 389, 388, 387, 0, 388,
1492
1493 0, 388, 0, 388, 0, 389, 390, 389, 388, 389,
1494 0, 0, 0, 0, 389, 0, 390, 391, 390, 391,
1495 390, 0, 0, 392, 390, 390, 0, 391, 0, 391,
1496 0, 391, 0, 392, 0, 392, 391, 392, 0, 0,
1497 393, 392, 392, 393, 0, 0, 394, 0, 394, 0,
1498 393, 0, 393, 0, 393, 0, 394, 0, 394, 393,
1499 394, 395, 395, 396, 0, 394, 0, 0, 0, 0,
1500 0, 0, 395, 396, 395, 396, 395, 396, 397, 398,
1501 0, 395, 396, 0, 0, 397, 0, 0, 397, 398,
1502 397, 398, 397, 398, 399, 0, 398, 397, 398, 400,
1503
1504 400, 399, 0, 0, 399, 0, 399, 0, 399, 0,
1505 400, 404, 400, 399, 400, 404, 0, 405, 0, 400,
1506 0, 404, 0, 404, 405, 404, 0, 405, 0, 405,
1507 404, 405, 406, 407, 406, 0, 405, 0, 0, 0,
1508 0, 0, 406, 407, 406, 407, 406, 407, 0, 0,
1509 407, 406, 407, 408, 409, 409, 408, 0, 0, 0,
1510 0, 0, 0, 408, 409, 408, 409, 408, 409, 410,
1511 0, 0, 408, 409, 0, 0, 0, 411, 0, 410,
1512 411, 410, 0, 410, 0, 410, 0, 411, 410, 411,
1513 412, 411, 0, 0, 0, 0, 411, 0, 413, 0,
1514
1515 412, 415, 412, 0, 412, 413, 0, 412, 413, 412,
1516 413, 415, 413, 415, 0, 415, 418, 413, 416, 416,
1517 415, 0, 419, 0, 0, 0, 418, 0, 418, 416,
1518 418, 416, 419, 416, 419, 418, 419, 420, 416, 0,
1519 421, 419, 0, 421, 0, 0, 0, 420, 423, 420,
1520 421, 420, 421, 0, 421, 420, 420, 0, 423, 421,
1521 423, 0, 423, 424, 424, 0, 425, 423, 423, 426,
1522 0, 0, 0, 424, 0, 424, 425, 424, 425, 426,
1523 425, 426, 424, 426, 428, 425, 428, 430, 426, 0,
1524 431, 0, 0, 0, 428, 0, 428, 430, 428, 430,
1525
1526 431, 430, 431, 428, 431, 440, 430, 431, 441, 431,
1527 0, 0, 0, 0, 0, 440, 0, 440, 441, 440,
1528 441, 442, 441, 440, 440, 0, 441, 441, 442, 444,
1529 0, 442, 0, 442, 0, 442, 0, 0, 0, 444,
1530 442, 444, 445, 444, 0, 445, 0, 0, 444, 0,
1531 446, 0, 445, 447, 445, 0, 445, 0, 0, 0,
1532 446, 445, 446, 447, 446, 447, 448, 447, 0, 446,
1533 0, 0, 447, 448, 449, 0, 448, 450, 448, 0,
1534 448, 0, 0, 0, 449, 448, 449, 450, 449, 450,
1535 451, 450, 0, 449, 0, 0, 450, 451, 453, 0,
1536
1537 451, 452, 451, 452, 451, 0, 0, 0, 453, 451,
1538 453, 452, 453, 452, 454, 452, 0, 453, 0, 0,
1539 452, 0, 0, 0, 454, 455, 454, 0, 454, 0,
1540 0, 0, 454, 454, 0, 455, 456, 455, 0, 455,
1541 0, 0, 457, 455, 455, 0, 456, 0, 456, 0,
1542 456, 0, 457, 458, 457, 456, 457, 0, 0, 462,
1543 0, 457, 0, 458, 0, 458, 462, 458, 0, 462,
1544 463, 462, 458, 462, 0, 0, 0, 0, 462, 0,
1545 463, 464, 463, 0, 463, 0, 0, 465, 463, 463,
1546 0, 464, 0, 464, 0, 464, 0, 465, 466, 465,
1547
1548 464, 465, 0, 0, 467, 0, 465, 467, 466, 0,
1549 466, 0, 466, 0, 467, 466, 467, 466, 467, 468,
1550 469, 469, 0, 467, 0, 0, 0, 0, 0, 468,
1551 469, 468, 469, 468, 469, 470, 471, 0, 468, 469,
1552 0, 0, 0, 0, 0, 470, 471, 470, 471, 470,
1553 471, 473, 475, 0, 470, 471, 0, 0, 0, 0,
1554 0, 473, 475, 473, 475, 473, 475, 0, 0, 476,
1555 473, 475, 477, 476, 0, 478, 0, 0, 0, 476,
1556 470, 476, 477, 476, 477, 478, 477, 478, 476, 478,
1557 480, 477, 0, 480, 478, 0, 481, 0, 0, 481,
1558
1559 480, 0, 480, 0, 480, 0, 481, 0, 481, 480,
1560 481, 483, 0, 494, 483, 481, 485, 485, 0, 0,
1561 0, 483, 0, 483, 0, 483, 0, 485, 494, 485,
1562 483, 485, 0, 0, 495, 0, 485, 0, 494, 0,
1563 494, 495, 494, 0, 495, 0, 495, 494, 495, 496,
1564 496, 0, 0, 495, 0, 498, 0, 0, 0, 496,
1565 0, 496, 0, 496, 0, 498, 499, 498, 496, 498,
1566 0, 498, 0, 0, 498, 0, 499, 0, 499, 500,
1567 499, 0, 500, 0, 499, 499, 0, 501, 0, 500,
1568 502, 500, 0, 500, 0, 0, 0, 501, 500, 501,
1569
1570 502, 501, 502, 502, 502, 503, 501, 0, 504, 502,
1571 0, 504, 0, 0, 0, 503, 505, 503, 504, 503,
1572 504, 0, 504, 0, 503, 0, 505, 504, 505, 506,
1573 505, 0, 507, 0, 0, 505, 506, 0, 0, 506,
1574 0, 506, 507, 506, 507, 0, 507, 512, 506, 0,
1575 512, 507, 0, 513, 0, 0, 0, 512, 0, 512,
1576 0, 512, 0, 513, 514, 513, 512, 513, 0, 0,
1577 515, 0, 513, 0, 514, 0, 514, 0, 514, 0,
1578 515, 516, 515, 514, 515, 0, 0, 0, 0, 515,
1579 0, 516, 518, 516, 0, 516, 518, 0, 520, 516,
1580
1581 516, 0, 518, 0, 518, 524, 518, 0, 520, 522,
1582 520, 518, 520, 0, 0, 0, 522, 520, 0, 522,
1583 524, 522, 0, 522, 0, 0, 525, 0, 522, 0,
1584 524, 0, 524, 0, 524, 0, 525, 527, 525, 524,
1585 525, 0, 0, 529, 0, 525, 0, 527, 0, 527,
1586 0, 527, 0, 529, 537, 529, 527, 529, 0, 0,
1587 0, 0, 529, 0, 537, 538, 537, 0, 537, 0,
1588 0, 537, 0, 537, 0, 538, 539, 538, 538, 538,
1589 0, 0, 541, 0, 538, 0, 539, 0, 539, 0,
1590 539, 0, 541, 542, 541, 539, 541, 0, 0, 0,
1591
1592 0, 541, 0, 542, 543, 542, 543, 542, 0, 0,
1593 542, 0, 542, 0, 543, 544, 543, 0, 543, 0,
1594 544, 545, 0, 543, 0, 544, 0, 544, 0, 544,
1595 0, 545, 0, 545, 544, 545, 546, 547, 546, 0,
1596 545, 0, 0, 0, 0, 0, 546, 547, 546, 547,
1597 546, 547, 552, 553, 0, 546, 547, 0, 0, 0,
1598 553, 0, 552, 553, 552, 553, 552, 553, 552, 555,
1599 558, 552, 553, 0, 0, 0, 555, 0, 0, 555,
1600 558, 555, 558, 555, 558, 560, 0, 0, 555, 558,
1601 0, 562, 0, 0, 0, 560, 0, 560, 560, 560,
1602
1603 0, 562, 564, 562, 560, 562, 0, 0, 0, 562,
1604 562, 0, 564, 0, 564, 0, 564, 570, 570, 570,
1605 0, 564, 0, 0, 0, 0, 572, 573, 0, 570,
1606 570, 570, 570, 570, 570, 570, 572, 573, 572, 573,
1607 572, 573, 574, 575, 0, 572, 573, 0, 0, 572,
1608 0, 0, 574, 575, 574, 575, 574, 575, 576, 577,
1609 0, 574, 575, 0, 0, 0, 0, 0, 576, 577,
1610 576, 577, 576, 577, 578, 579, 577, 576, 577, 0,
1611 0, 0, 579, 0, 578, 579, 578, 579, 578, 579,
1612 583, 0, 0, 578, 579, 0, 0, 0, 584, 0,
1613
1614 583, 0, 583, 0, 583, 0, 586, 0, 584, 583,
1615 584, 584, 584, 0, 589, 0, 586, 584, 586, 0,
1616 586, 589, 591, 0, 589, 586, 589, 0, 589, 591,
1617 592, 0, 591, 589, 591, 0, 591, 592, 0, 0,
1618 592, 591, 592, 0, 592, 0, 0, 601, 602, 592,
1619 599, 599, 599, 599, 599, 599, 599, 601, 602, 601,
1620 602, 601, 602, 603, 0, 0, 601, 602, 0, 0,
1621 0, 604, 0, 603, 0, 603, 0, 603, 0, 0,
1622 0, 604, 603, 604, 608, 604, 0, 0, 599, 604,
1623 604, 0, 610, 0, 608, 613, 608, 0, 608, 610,
1624
1625 0, 0, 610, 608, 610, 613, 610, 613, 615, 613,
1626 615, 610, 0, 613, 613, 0, 0, 0, 615, 616,
1627 615, 0, 615, 616, 0, 0, 0, 615, 0, 616,
1628 0, 616, 0, 616, 623, 623, 623, 0, 616, 0,
1629 0, 0, 0, 624, 625, 0, 623, 623, 623, 623,
1630 623, 623, 623, 624, 625, 624, 625, 624, 625, 629,
1631 0, 624, 624, 625, 0, 631, 0, 625, 0, 629,
1632 0, 629, 0, 629, 0, 631, 634, 631, 629, 631,
1633 0, 0, 636, 631, 631, 0, 634, 0, 634, 0,
1634 634, 0, 636, 637, 636, 634, 636, 0, 0, 634,
1635
1636 637, 636, 0, 637, 0, 637, 644, 637, 643, 643,
1637 0, 0, 637, 0, 0, 0, 644, 648, 644, 643,
1638 644, 643, 0, 643, 0, 644, 0, 648, 643, 648,
1639 0, 648, 651, 0, 0, 653, 648, 0, 653, 0,
1640 648, 0, 651, 0, 651, 653, 651, 653, 0, 653,
1641 0, 651, 0, 0, 653, 658, 658, 658, 0, 0,
1642 0, 0, 0, 0, 659, 661, 0, 658, 658, 658,
1643 658, 658, 658, 658, 659, 661, 659, 661, 659, 661,
1644 664, 667, 0, 659, 661, 0, 659, 0, 0, 0,
1645 664, 667, 664, 667, 664, 667, 664, 671, 0, 664,
1646
1647 667, 0, 0, 0, 0, 0, 0, 671, 0, 671,
1648 0, 671, 0, 0, 0, 0, 671, 675, 675, 675,
1649 675, 675, 675, 675, 675, 675, 675, 675, 675, 676,
1650 676, 676, 676, 676, 676, 676, 676, 676, 676, 676,
1651 676, 677, 677, 677, 677, 677, 677, 677, 677, 677,
1652 677, 677, 677, 678, 678, 678, 678, 678, 678, 678,
1653 678, 678, 678, 678, 678, 679, 679, 679, 679, 679,
1654 679, 679, 679, 679, 679, 679, 679, 680, 680, 680,
1655 0, 680, 680, 680, 680, 680, 680, 680, 680, 681,
1656 681, 0, 0, 681, 0, 681, 682, 0, 682, 683,
1657
1658 683, 0, 683, 683, 684, 684, 0, 684, 684, 684,
1659 0, 684, 684, 684, 684, 684, 685, 685, 685, 0,
1660 685, 685, 685, 685, 685, 685, 685, 685, 686, 686,
1661 686, 686, 686, 686, 686, 686, 0, 686, 686, 687,
1662 0, 0, 687, 0, 687, 687, 687, 687, 687, 687,
1663 688, 688, 0, 688, 688, 689, 689, 0, 689, 689,
1664 690, 690, 0, 690, 690, 674, 674, 674, 674, 674,
1665 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1666 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1667 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1668
1669 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1670 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1671 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1672 674, 674, 674, 674, 674, 674, 674, 674, 674, 674,
1673 674, 674, 674, 674
1674 } ;
1675
1676extern int yy_flex_debug;
1677int yy_flex_debug = 1;
1678
1679static yyconst short int yy_rule_linenum[123] =
1680 { 0,
1681 101, 104, 106, 107, 108, 111, 113, 114, 115, 127,
1682 134, 141, 147, 156, 164, 172, 173, 175, 194, 200,
1683 207, 214, 221, 231, 265, 272, 273, 274, 275, 283,
1684 284, 285, 286, 287, 292, 293, 294, 295, 296, 297,
1685 298, 299, 300, 301, 302, 311, 312, 313, 314, 315,
1686 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
1687 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
1688 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
1689 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
1690 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
1691
1692 366, 367, 372, 373, 378, 379, 380, 383, 389, 396,
1693 405, 416, 422, 424, 425, 427, 429, 431, 444, 450,
1694 456, 464
1695 } ;
1696
1697static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
1698static char *yy_full_match;
1699static int yy_lp;
1700#define REJECT \
1701{ \
1702*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
1703yy_cp = yy_full_match; /* restore poss. backed-over text */ \
1704++yy_lp; \
1705goto find_rule; \
1706}
1707#define yymore() yymore_used_but_not_detected
1708#define YY_MORE_ADJ 0
1709#define YY_RESTORE_YY_MORE_OFFSET
1710char *yytext;
1711#line 1 "asn1p_l.l"
1712#define INITIAL 0
1713#line 2 "asn1p_l.l"
1714
1715#include <string.h>
1716#include <errno.h>
1717#include <assert.h>
1718
1719#include "asn1parser.h"
1720#include "asn1p_y.h"
1721
1722int asn1p_lex(void);
1723void asn1p_lexer_hack_push_opaque_state(void); /* Used in .y */
1724void asn1p_lexer_hack_enable_with_syntax(void); /* Used in .y */
1725
1726#define YY_FATAL_ERROR(msg) do { \
1727 fprintf(stderr, \
1728 "lexer error at line %d, " \
1729 "text \"%s\"\n", \
1730 yylineno, yytext); \
1731 exit(1); \
1732 } while(0)
1733
1734int asn1p_lexer_pedantic_1990 = 0;
1735int asn1p_lexer_types_year = 0;
1736int asn1p_lexer_constructs_year = 0;
1737static int _check_dashes(char *ptr);
1738static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
1739
1740/*
1741 * Check that the type is defined in the year of the standard choosen.
1742 */
1743#define TYPE_LIFETIME(fyr, lyr) \
1744 (!asn1p_lexer_types_year \
1745 || (fyr && fyr <= asn1p_lexer_types_year) \
1746 || (lyr && lyr > asn1p_lexer_types_year))
1747
1748/*
1749 * Check the the construction (or concept, i.e. CLASS) is defined in
1750 * a given year.
1751 */
1752#define CONSTRUCT_LIFETIME(fyr, lyr) \
1753 (!asn1p_lexer_constructs_year \
1754 || (fyr && fyr <= asn1p_lexer_constructs_year) \
1755 || (lyr && lyr > asn1p_lexer_constructs_year))
1756
1757/*
1758 * Make sure that the label is compliant with the naming rules.
1759 */
1760#define CHECK_DASHES do { \
1761 if(_check_dashes(yytext)) { \
1762 fprintf(stderr, \
1763 "%s: Identifier format invalid: " \
1764 "Improper dash location\n", yytext); \
1765 return -1; \
1766 } } while(0)
1767
1768/*
1769 * Append quoted string.
1770 */
1771#define QAPPEND(text, tlen) do { \
1772 char *prev_text = asn1p_lval.tv_opaque.buf; \
1773 int prev_len = asn1p_lval.tv_opaque.len; \
1774 char *p; \
1775 \
1776 p = malloc((tlen) + prev_len + 1); \
1777 if(p == NULL) return -1; \
1778 \
1779 if(prev_text) memcpy(p, prev_text, prev_len); \
1780 memcpy(p + prev_len, text, tlen); \
1781 p[prev_len + (tlen)] = '\0'; \
1782 \
1783 free(asn1p_lval.tv_opaque.buf); \
1784 asn1p_lval.tv_opaque.buf = p; \
1785 asn1p_lval.tv_opaque.len = (tlen) + prev_len; \
1786 } while(0)
1787
1788#define YY_NEVER_INTERACTIVE 1
1789#define YY_NO_INPUT 1
1790#define YY_NO_UNPUT 1
1791#define YY_STACK_USED 1
1792/* Performance penalty is OK */
1793/* Controlled from within application */
1794#define dash_comment 1
1795
1796#define cpp_comment 2
1797
1798#define quoted 3
1799
1800#define opaque 4
1801
1802#define with_syntax 5
1803
1804/* Newline */
1805/* White-space */
Lev Walkinc3b72e92004-06-03 05:07:41 +00001806#line 1807 "lex.yy.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00001807
1808/* Macros after this point can all be overridden by user definitions in
1809 * section 1.
1810 */
1811
1812#ifndef YY_SKIP_YYWRAP
1813#ifdef __cplusplus
1814extern "C" int yywrap YY_PROTO(( void ));
1815#else
1816extern int yywrap YY_PROTO(( void ));
1817#endif
1818#endif
1819
1820#ifndef YY_NO_UNPUT
1821static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1822#endif
1823
1824#ifndef yytext_ptr
1825static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1826#endif
1827
1828#ifdef YY_NEED_STRLEN
1829static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1830#endif
1831
1832#ifndef YY_NO_INPUT
1833#ifdef __cplusplus
1834static int yyinput YY_PROTO(( void ));
1835#else
1836static int input YY_PROTO(( void ));
1837#endif
1838#endif
1839
1840#if YY_STACK_USED
1841static int yy_start_stack_ptr = 0;
1842static int yy_start_stack_depth = 0;
1843static int *yy_start_stack = 0;
1844#ifndef YY_NO_PUSH_STATE
1845static void yy_push_state YY_PROTO(( int new_state ));
1846#endif
1847#ifndef YY_NO_POP_STATE
1848static void yy_pop_state YY_PROTO(( void ));
1849#endif
1850#ifndef YY_NO_TOP_STATE
1851static int yy_top_state YY_PROTO(( void ));
1852#endif
1853
1854#else
1855#define YY_NO_PUSH_STATE 1
1856#define YY_NO_POP_STATE 1
1857#define YY_NO_TOP_STATE 1
1858#endif
1859
1860#ifdef YY_MALLOC_DECL
1861YY_MALLOC_DECL
1862#else
1863#if __STDC__
1864#ifndef __cplusplus
1865#include <stdlib.h>
1866#endif
1867#else
1868/* Just try to get by without declaring the routines. This will fail
1869 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1870 * or sizeof(void*) != sizeof(int).
1871 */
1872#endif
1873#endif
1874
1875/* Amount of stuff to slurp up with each read. */
1876#ifndef YY_READ_BUF_SIZE
1877#define YY_READ_BUF_SIZE 8192
1878#endif
1879
1880/* Copy whatever the last rule matched to the standard output. */
1881
1882#ifndef ECHO
1883/* This used to be an fputs(), but since the string might contain NUL's,
1884 * we now use fwrite().
1885 */
1886#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1887#endif
1888
1889/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1890 * is returned in "result".
1891 */
1892#ifndef YY_INPUT
1893#define YY_INPUT(buf,result,max_size) \
1894 if ( yy_current_buffer->yy_is_interactive ) \
1895 { \
1896 int c = '*', n; \
1897 for ( n = 0; n < max_size && \
1898 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1899 buf[n] = (char) c; \
1900 if ( c == '\n' ) \
1901 buf[n++] = (char) c; \
1902 if ( c == EOF && ferror( yyin ) ) \
1903 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1904 result = n; \
1905 } \
1906 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1907 && ferror( yyin ) ) \
1908 YY_FATAL_ERROR( "input in flex scanner failed" );
1909#endif
1910
1911/* No semi-colon after return; correct usage is to write "yyterminate();" -
1912 * we don't want an extra ';' after the "return" because that will cause
1913 * some compilers to complain about unreachable statements.
1914 */
1915#ifndef yyterminate
1916#define yyterminate() return YY_NULL
1917#endif
1918
1919/* Number of entries by which start-condition stack grows. */
1920#ifndef YY_START_STACK_INCR
1921#define YY_START_STACK_INCR 25
1922#endif
1923
1924/* Report a fatal error. */
1925#ifndef YY_FATAL_ERROR
1926#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1927#endif
1928
1929/* Default declaration of generated scanner - a define so the user can
1930 * easily add parameters.
1931 */
1932#ifndef YY_DECL
1933#define YY_DECL int yylex YY_PROTO(( void ))
1934#endif
1935
1936/* Code executed at the beginning of each rule, after yytext and yyleng
1937 * have been set up.
1938 */
1939#ifndef YY_USER_ACTION
1940#define YY_USER_ACTION
1941#endif
1942
1943/* Code executed at the end of each rule. */
1944#ifndef YY_BREAK
1945#define YY_BREAK break;
1946#endif
1947
1948#define YY_RULE_SETUP \
1949 YY_USER_ACTION
1950
1951YY_DECL
1952 {
1953 register yy_state_type yy_current_state;
1954 register char *yy_cp, *yy_bp;
1955 register int yy_act;
1956
1957#line 99 "asn1p_l.l"
1958
1959
Lev Walkinc3b72e92004-06-03 05:07:41 +00001960#line 1961 "lex.yy.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00001961
1962 if ( yy_init )
1963 {
1964 yy_init = 0;
1965
1966#ifdef YY_USER_INIT
1967 YY_USER_INIT;
1968#endif
1969
1970 if ( ! yy_start )
1971 yy_start = 1; /* first start state */
1972
1973 if ( ! yyin )
1974 yyin = stdin;
1975
1976 if ( ! yyout )
1977 yyout = stdout;
1978
1979 if ( ! yy_current_buffer )
1980 yy_current_buffer =
1981 yy_create_buffer( yyin, YY_BUF_SIZE );
1982
1983 yy_load_buffer_state();
1984 }
1985
1986 while ( 1 ) /* loops until end-of-file is reached */
1987 {
1988 yy_cp = yy_c_buf_p;
1989
1990 /* Support of yytext. */
1991 *yy_cp = yy_hold_char;
1992
1993 /* yy_bp points to the position in yy_ch_buf of the start of
1994 * the current run.
1995 */
1996 yy_bp = yy_cp;
1997
1998 yy_current_state = yy_start;
1999 yy_state_ptr = yy_state_buf;
2000 *yy_state_ptr++ = yy_current_state;
2001yy_match:
2002 do
2003 {
2004 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2005 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2006 {
2007 yy_current_state = (int) yy_def[yy_current_state];
2008 if ( yy_current_state >= 675 )
2009 yy_c = yy_meta[(unsigned int) yy_c];
2010 }
2011 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2012 *yy_state_ptr++ = yy_current_state;
2013 ++yy_cp;
2014 }
2015 while ( yy_base[yy_current_state] != 4166 );
2016
2017yy_find_action:
2018 yy_current_state = *--yy_state_ptr;
2019 yy_lp = yy_accept[yy_current_state];
2020find_rule: /* we branch to this label when backing up */
2021 for ( ; ; ) /* until we find what rule we matched */
2022 {
2023 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
2024 {
2025 yy_act = yy_acclist[yy_lp];
2026 {
2027 yy_full_match = yy_cp;
2028 break;
2029 }
2030 }
2031 --yy_cp;
2032 yy_current_state = *--yy_state_ptr;
2033 yy_lp = yy_accept[yy_current_state];
2034 }
2035
2036 YY_DO_BEFORE_ACTION;
2037
2038 if ( yy_act != YY_END_OF_BUFFER )
2039 {
2040 int yyl;
2041 for ( yyl = 0; yyl < yyleng; ++yyl )
2042 if ( yytext[yyl] == '\n' )
2043 ++yylineno;
2044 }
2045
2046do_action: /* This label is used only to access EOF actions. */
2047
2048 if ( yy_flex_debug )
2049 {
2050 if ( yy_act == 0 )
2051 fprintf( stderr, "--scanner backing up\n" );
2052 else if ( yy_act < 123 )
2053 fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
2054 yy_rule_linenum[yy_act], yytext );
2055 else if ( yy_act == 123 )
2056 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2057 yytext );
2058 else if ( yy_act == 124 )
2059 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2060 else
2061 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2062 }
2063
2064 switch ( yy_act )
2065 { /* beginning of action switch */
2066case 1:
2067YY_RULE_SETUP
2068#line 101 "asn1p_l.l"
2069yy_push_state(dash_comment);
2070 YY_BREAK
2071
2072case 2:
2073YY_RULE_SETUP
2074#line 104 "asn1p_l.l"
2075yy_pop_state();
2076 YY_BREAK
2077case 3:
2078YY_RULE_SETUP
2079#line 106 "asn1p_l.l"
2080yy_pop_state(); /* End of comment */
2081 YY_BREAK
2082case 4:
2083YY_RULE_SETUP
2084#line 107 "asn1p_l.l"
2085/* Eat single dash */
2086 YY_BREAK
2087case 5:
2088YY_RULE_SETUP
2089#line 108 "asn1p_l.l"
2090/* Eat */
2091 YY_BREAK
2092
2093case 6:
2094YY_RULE_SETUP
2095#line 111 "asn1p_l.l"
2096yy_push_state(cpp_comment);
2097 YY_BREAK
2098
2099case 7:
2100YY_RULE_SETUP
2101#line 113 "asn1p_l.l"
2102/* Eat */
2103 YY_BREAK
2104case 8:
2105YY_RULE_SETUP
2106#line 114 "asn1p_l.l"
2107yy_pop_state();
2108 YY_BREAK
2109case 9:
2110YY_RULE_SETUP
2111#line 115 "asn1p_l.l"
2112/* Eat */
2113 YY_BREAK
2114
2115/*
2116 * This is state is being set from corresponding .y module when
2117 * higher-level data is necessary to make proper parsing of the
2118 * underlying data. Thus, we enter the <opaque> state and save
2119 * everything for later processing.
2120 */
2121
2122case 10:
2123YY_RULE_SETUP
2124#line 127 "asn1p_l.l"
2125{
2126 yy_push_state(opaque);
2127 asn1p_lval.tv_opaque.buf = strdup(yytext);
2128 asn1p_lval.tv_opaque.len = yyleng;
2129 return TOK_opaque;
2130 }
2131 YY_BREAK
2132case 11:
2133YY_RULE_SETUP
2134#line 134 "asn1p_l.l"
2135{
2136 yy_pop_state();
2137 asn1p_lval.tv_opaque.buf = strdup(yytext);
2138 asn1p_lval.tv_opaque.len = yyleng;
2139 return TOK_opaque;
2140 }
2141 YY_BREAK
2142case 12:
2143YY_RULE_SETUP
2144#line 141 "asn1p_l.l"
2145{
2146 asn1p_lval.tv_opaque.buf = strdup(yytext);
2147 asn1p_lval.tv_opaque.len = yyleng;
2148 return TOK_opaque;
2149 }
2150 YY_BREAK
2151case 13:
2152YY_RULE_SETUP
2153#line 147 "asn1p_l.l"
2154{
2155 fprintf(stderr,
2156 "ASN.1 Parser syncronization failure: "
2157 "\"%s\" at line %d must not appear "
2158 "inside value definition\n",
2159 yytext, yylineno);
2160 return -1;
2161 }
2162 YY_BREAK
2163case 14:
2164YY_RULE_SETUP
2165#line 156 "asn1p_l.l"
2166{
2167 asn1p_lval.tv_opaque.buf = strdup(yytext);
2168 asn1p_lval.tv_opaque.len = yyleng;
2169 return TOK_opaque;
2170 }
2171 YY_BREAK
2172
2173case 15:
2174YY_RULE_SETUP
2175#line 164 "asn1p_l.l"
2176{
2177 asn1p_lval.tv_opaque.buf = 0;
2178 asn1p_lval.tv_opaque.len = 0;
2179 QAPPEND(yytext+1, yyleng-1);
2180 yy_push_state(quoted);
2181 }
2182 YY_BREAK
2183
2184case 16:
2185YY_RULE_SETUP
2186#line 172 "asn1p_l.l"
2187{ QAPPEND(yytext, yyleng-1); } /* Add a single quote */
2188 YY_BREAK
2189case 17:
2190YY_RULE_SETUP
2191#line 173 "asn1p_l.l"
2192{ QAPPEND(yytext, yyleng); }
2193 YY_BREAK
2194case 18:
2195YY_RULE_SETUP
2196#line 175 "asn1p_l.l"
2197{
2198 yy_pop_state();
2199 /* Do not append last quote:
2200 // QAPPEND(yytext, yyleng); */
2201
2202 if(asn1p_lexer_pedantic_1990
2203 && strchr(yytext, '\n')) {
2204 fprintf(stderr, "%s: "
2205 "Newlines are prohibited by ASN.1:1990\n",
2206 asn1p_lval.tv_opaque.buf);
2207 return -1;
2208 }
2209
2210 return TOK_cstring;
2211 }
2212 YY_BREAK
2213
2214case 19:
2215YY_RULE_SETUP
2216#line 194 "asn1p_l.l"
2217{
2218 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2219 asn1p_lval.tv_str = yytext;
2220 return TOK_hstring;
2221 }
2222 YY_BREAK
2223case 20:
2224YY_RULE_SETUP
2225#line 200 "asn1p_l.l"
2226{
2227 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2228 asn1p_lval.tv_str = strdup(yytext);
2229 return TOK_bstring;
2230 }
2231 YY_BREAK
2232case 21:
2233YY_RULE_SETUP
2234#line 207 "asn1p_l.l"
2235{
2236 asn1p_lval.a_int = asn1p_atoi(yytext);
2237 if(errno == ERANGE)
2238 return -1;
2239 return TOK_number_negative;
2240 }
2241 YY_BREAK
2242case 22:
2243YY_RULE_SETUP
2244#line 214 "asn1p_l.l"
2245{
2246 asn1p_lval.a_int = asn1p_atoi(yytext);
2247 if(errno == ERANGE)
2248 return -1;
2249 return TOK_number;
2250 }
2251 YY_BREAK
2252case 23:
2253YY_RULE_SETUP
2254#line 221 "asn1p_l.l"
2255{
2256 asn1p_lval.a_int = asn1p_atoi(yytext);
2257 if(errno == ERANGE)
2258 return -1;
2259 return TOK_number;
2260 }
2261 YY_BREAK
2262/*
2263 * Tags
2264 */
2265case 24:
2266YY_RULE_SETUP
2267#line 231 "asn1p_l.l"
2268{
2269 char *p;
2270 memset(&asn1p_lval.a_tag, 0, sizeof(asn1p_lval.a_tag));
2271 switch(yytext[1]) {
2272 case 'U':
2273 asn1p_lval.a_tag.tag_class = TC_UNIVERSAL;
2274 p = yytext + sizeof("UNIVERSAL") + 1;
2275 break;
2276 case 'A':
2277 asn1p_lval.a_tag.tag_class = TC_APPLICATION;
2278 p = yytext + sizeof("APPLICATION") + 1;
2279 break;
2280 case 'P':
2281 asn1p_lval.a_tag.tag_class = TC_PRIVATE;
2282 p = yytext + sizeof("PRIVATE") + 1;
2283 break;
2284 default:
2285 assert(yytext[1] >= '0' && yytext[1] <= '9');
2286 asn1p_lval.a_tag.tag_class = TC_CONTEXT_SPECIFIC;
2287 p = yytext + 1;
2288 break;
2289 }
2290 asn1p_lval.a_tag.tag_value = asn1p_atoi(p);
2291 if(*p == '0' && asn1p_lval.a_tag.tag_value) {
2292 fprintf(stderr,
2293 "Tag value at line %d "
2294 "cannot start with zero "
2295 "and have multiple digits: \"%s\"\n",
2296 yylineno, yytext);
2297 return -1;
2298 }
2299 return TOK_tag;
2300 }
2301 YY_BREAK
2302case 25:
2303YY_RULE_SETUP
2304#line 265 "asn1p_l.l"
2305{
2306 fprintf(stderr,
2307 "Unsupported tag syntax at line %d: \"%s\"\n",
2308 yylineno, yytext);
2309 return -1;
2310 }
2311 YY_BREAK
2312case 26:
2313YY_RULE_SETUP
2314#line 272 "asn1p_l.l"
2315return TOK_ABSENT;
2316 YY_BREAK
2317case 27:
2318YY_RULE_SETUP
2319#line 273 "asn1p_l.l"
2320return TOK_ABSTRACT_SYNTAX;
2321 YY_BREAK
2322case 28:
2323YY_RULE_SETUP
2324#line 274 "asn1p_l.l"
2325return TOK_ALL;
2326 YY_BREAK
2327case 29:
2328YY_RULE_SETUP
2329#line 275 "asn1p_l.l"
2330{
2331 /* Appeared in 1990, removed in 1997 */
2332 if(TYPE_LIFETIME(1990, 1997))
2333 return TOK_ANY;
2334 fprintf(stderr, "Keyword \"%s\" at line %d "
2335 "is obsolete\n", yytext, yylineno);
2336 REJECT;
2337 }
2338 YY_BREAK
2339case 30:
2340YY_RULE_SETUP
2341#line 283 "asn1p_l.l"
2342return TOK_APPLICATION;
2343 YY_BREAK
2344case 31:
2345YY_RULE_SETUP
2346#line 284 "asn1p_l.l"
2347return TOK_AUTOMATIC;
2348 YY_BREAK
2349case 32:
2350YY_RULE_SETUP
2351#line 285 "asn1p_l.l"
2352return TOK_BEGIN;
2353 YY_BREAK
2354case 33:
2355YY_RULE_SETUP
2356#line 286 "asn1p_l.l"
2357return TOK_BIT;
2358 YY_BREAK
2359case 34:
2360YY_RULE_SETUP
2361#line 287 "asn1p_l.l"
2362{
2363 if(TYPE_LIFETIME(1994, 0))
2364 return TOK_BMPString;
2365 REJECT;
2366 }
2367 YY_BREAK
2368case 35:
2369YY_RULE_SETUP
2370#line 292 "asn1p_l.l"
2371return TOK_BOOLEAN;
2372 YY_BREAK
2373case 36:
2374YY_RULE_SETUP
2375#line 293 "asn1p_l.l"
2376return TOK_BY;
2377 YY_BREAK
2378case 37:
2379YY_RULE_SETUP
2380#line 294 "asn1p_l.l"
2381return TOK_CHARACTER;
2382 YY_BREAK
2383case 38:
2384YY_RULE_SETUP
2385#line 295 "asn1p_l.l"
2386return TOK_CHOICE;
2387 YY_BREAK
2388case 39:
2389YY_RULE_SETUP
2390#line 296 "asn1p_l.l"
2391return TOK_CLASS;
2392 YY_BREAK
2393case 40:
2394YY_RULE_SETUP
2395#line 297 "asn1p_l.l"
2396return TOK_COMPONENT;
2397 YY_BREAK
2398case 41:
2399YY_RULE_SETUP
2400#line 298 "asn1p_l.l"
2401return TOK_COMPONENTS;
2402 YY_BREAK
2403case 42:
2404YY_RULE_SETUP
2405#line 299 "asn1p_l.l"
2406return TOK_CONSTRAINED;
2407 YY_BREAK
2408case 43:
2409YY_RULE_SETUP
2410#line 300 "asn1p_l.l"
2411return TOK_CONTAINING;
2412 YY_BREAK
2413case 44:
2414YY_RULE_SETUP
2415#line 301 "asn1p_l.l"
2416return TOK_DEFAULT;
2417 YY_BREAK
2418case 45:
2419YY_RULE_SETUP
2420#line 302 "asn1p_l.l"
2421{
2422 /* Appeared in 1990, removed in 1997 */
2423 if(TYPE_LIFETIME(1990, 1997))
2424 return TOK_DEFINED;
2425 fprintf(stderr, "Keyword \"%s\" at line %d "
2426 "is obsolete\n", yytext, yylineno);
2427 /* Deprecated since */
2428 REJECT;
2429 }
2430 YY_BREAK
2431case 46:
2432YY_RULE_SETUP
2433#line 311 "asn1p_l.l"
2434return TOK_DEFINITIONS;
2435 YY_BREAK
2436case 47:
2437YY_RULE_SETUP
2438#line 312 "asn1p_l.l"
2439return TOK_EMBEDDED;
2440 YY_BREAK
2441case 48:
2442YY_RULE_SETUP
2443#line 313 "asn1p_l.l"
2444return TOK_ENCODED;
2445 YY_BREAK
2446case 49:
2447YY_RULE_SETUP
2448#line 314 "asn1p_l.l"
2449return TOK_END;
2450 YY_BREAK
2451case 50:
2452YY_RULE_SETUP
2453#line 315 "asn1p_l.l"
2454return TOK_ENUMERATED;
2455 YY_BREAK
2456case 51:
2457YY_RULE_SETUP
2458#line 316 "asn1p_l.l"
2459return TOK_EXCEPT;
2460 YY_BREAK
2461case 52:
2462YY_RULE_SETUP
2463#line 317 "asn1p_l.l"
2464return TOK_EXPLICIT;
2465 YY_BREAK
2466case 53:
2467YY_RULE_SETUP
2468#line 318 "asn1p_l.l"
2469return TOK_EXPORTS;
2470 YY_BREAK
2471case 54:
2472YY_RULE_SETUP
2473#line 319 "asn1p_l.l"
2474return TOK_EXTENSIBILITY;
2475 YY_BREAK
2476case 55:
2477YY_RULE_SETUP
2478#line 320 "asn1p_l.l"
2479return TOK_EXTERNAL;
2480 YY_BREAK
2481case 56:
2482YY_RULE_SETUP
2483#line 321 "asn1p_l.l"
2484return TOK_FALSE;
2485 YY_BREAK
2486case 57:
2487YY_RULE_SETUP
2488#line 322 "asn1p_l.l"
2489return TOK_FROM;
2490 YY_BREAK
2491case 58:
2492YY_RULE_SETUP
2493#line 323 "asn1p_l.l"
2494return TOK_GeneralizedTime;
2495 YY_BREAK
2496case 59:
2497YY_RULE_SETUP
2498#line 324 "asn1p_l.l"
2499return TOK_GeneralString;
2500 YY_BREAK
2501case 60:
2502YY_RULE_SETUP
2503#line 325 "asn1p_l.l"
2504return TOK_GraphicString;
2505 YY_BREAK
2506case 61:
2507YY_RULE_SETUP
2508#line 326 "asn1p_l.l"
2509return TOK_IA5String;
2510 YY_BREAK
2511case 62:
2512YY_RULE_SETUP
2513#line 327 "asn1p_l.l"
2514return TOK_IDENTIFIER;
2515 YY_BREAK
2516case 63:
2517YY_RULE_SETUP
2518#line 328 "asn1p_l.l"
2519return TOK_IMPLICIT;
2520 YY_BREAK
2521case 64:
2522YY_RULE_SETUP
2523#line 329 "asn1p_l.l"
2524return TOK_IMPLIED;
2525 YY_BREAK
2526case 65:
2527YY_RULE_SETUP
2528#line 330 "asn1p_l.l"
2529return TOK_IMPORTS;
2530 YY_BREAK
2531case 66:
2532YY_RULE_SETUP
2533#line 331 "asn1p_l.l"
2534return TOK_INCLUDES;
2535 YY_BREAK
2536case 67:
2537YY_RULE_SETUP
2538#line 332 "asn1p_l.l"
2539return TOK_INSTANCE;
2540 YY_BREAK
2541case 68:
2542YY_RULE_SETUP
2543#line 333 "asn1p_l.l"
2544return TOK_INTEGER;
2545 YY_BREAK
2546case 69:
2547YY_RULE_SETUP
2548#line 334 "asn1p_l.l"
2549return TOK_INTERSECTION;
2550 YY_BREAK
2551case 70:
2552YY_RULE_SETUP
2553#line 335 "asn1p_l.l"
2554return TOK_ISO646String;
2555 YY_BREAK
2556case 71:
2557YY_RULE_SETUP
2558#line 336 "asn1p_l.l"
2559return TOK_MAX;
2560 YY_BREAK
2561case 72:
2562YY_RULE_SETUP
2563#line 337 "asn1p_l.l"
2564return TOK_MIN;
2565 YY_BREAK
2566case 73:
2567YY_RULE_SETUP
2568#line 338 "asn1p_l.l"
2569return TOK_MINUS_INFINITY;
2570 YY_BREAK
2571case 74:
2572YY_RULE_SETUP
2573#line 339 "asn1p_l.l"
2574return TOK_NULL;
2575 YY_BREAK
2576case 75:
2577YY_RULE_SETUP
2578#line 340 "asn1p_l.l"
2579return TOK_NumericString;
2580 YY_BREAK
2581case 76:
2582YY_RULE_SETUP
2583#line 341 "asn1p_l.l"
2584return TOK_OBJECT;
2585 YY_BREAK
2586case 77:
2587YY_RULE_SETUP
2588#line 342 "asn1p_l.l"
2589return TOK_ObjectDescriptor;
2590 YY_BREAK
2591case 78:
2592YY_RULE_SETUP
2593#line 343 "asn1p_l.l"
2594return TOK_OCTET;
2595 YY_BREAK
2596case 79:
2597YY_RULE_SETUP
2598#line 344 "asn1p_l.l"
2599return TOK_OF;
2600 YY_BREAK
2601case 80:
2602YY_RULE_SETUP
2603#line 345 "asn1p_l.l"
2604return TOK_OPTIONAL;
2605 YY_BREAK
2606case 81:
2607YY_RULE_SETUP
2608#line 346 "asn1p_l.l"
2609return TOK_PATTERN;
2610 YY_BREAK
2611case 82:
2612YY_RULE_SETUP
2613#line 347 "asn1p_l.l"
2614return TOK_PDV;
2615 YY_BREAK
2616case 83:
2617YY_RULE_SETUP
2618#line 348 "asn1p_l.l"
2619return TOK_PLUS_INFINITY;
2620 YY_BREAK
2621case 84:
2622YY_RULE_SETUP
2623#line 349 "asn1p_l.l"
2624return TOK_PRESENT;
2625 YY_BREAK
2626case 85:
2627YY_RULE_SETUP
2628#line 350 "asn1p_l.l"
2629return TOK_PrintableString;
2630 YY_BREAK
2631case 86:
2632YY_RULE_SETUP
2633#line 351 "asn1p_l.l"
2634return TOK_PRIVATE;
2635 YY_BREAK
2636case 87:
2637YY_RULE_SETUP
2638#line 352 "asn1p_l.l"
2639return TOK_REAL;
2640 YY_BREAK
2641case 88:
2642YY_RULE_SETUP
2643#line 353 "asn1p_l.l"
2644return TOK_RELATIVE_OID;
2645 YY_BREAK
2646case 89:
2647YY_RULE_SETUP
2648#line 354 "asn1p_l.l"
2649return TOK_SEQUENCE;
2650 YY_BREAK
2651case 90:
2652YY_RULE_SETUP
2653#line 355 "asn1p_l.l"
2654return TOK_SET;
2655 YY_BREAK
2656case 91:
2657YY_RULE_SETUP
2658#line 356 "asn1p_l.l"
2659return TOK_SIZE;
2660 YY_BREAK
2661case 92:
2662YY_RULE_SETUP
2663#line 357 "asn1p_l.l"
2664return TOK_STRING;
2665 YY_BREAK
2666case 93:
2667YY_RULE_SETUP
2668#line 358 "asn1p_l.l"
2669return TOK_SYNTAX;
2670 YY_BREAK
2671case 94:
2672YY_RULE_SETUP
2673#line 359 "asn1p_l.l"
2674return TOK_T61String;
2675 YY_BREAK
2676case 95:
2677YY_RULE_SETUP
2678#line 360 "asn1p_l.l"
2679return TOK_TAGS;
2680 YY_BREAK
2681case 96:
2682YY_RULE_SETUP
2683#line 361 "asn1p_l.l"
2684return TOK_TeletexString;
2685 YY_BREAK
2686case 97:
2687YY_RULE_SETUP
2688#line 362 "asn1p_l.l"
2689return TOK_TRUE;
2690 YY_BREAK
2691case 98:
2692YY_RULE_SETUP
2693#line 363 "asn1p_l.l"
2694return TOK_TYPE_IDENTIFIER;
2695 YY_BREAK
2696case 99:
2697YY_RULE_SETUP
2698#line 364 "asn1p_l.l"
2699return TOK_UNION;
2700 YY_BREAK
2701case 100:
2702YY_RULE_SETUP
2703#line 365 "asn1p_l.l"
2704return TOK_UNIQUE;
2705 YY_BREAK
2706case 101:
2707YY_RULE_SETUP
2708#line 366 "asn1p_l.l"
2709return TOK_UNIVERSAL;
2710 YY_BREAK
2711case 102:
2712YY_RULE_SETUP
2713#line 367 "asn1p_l.l"
2714{
2715 if(TYPE_LIFETIME(1994, 0))
2716 return TOK_UniversalString;
2717 REJECT;
2718 }
2719 YY_BREAK
2720case 103:
2721YY_RULE_SETUP
2722#line 372 "asn1p_l.l"
2723return TOK_UTCTime;
2724 YY_BREAK
2725case 104:
2726YY_RULE_SETUP
2727#line 373 "asn1p_l.l"
2728{
2729 if(TYPE_LIFETIME(1994, 0))
2730 return TOK_UTF8String;
2731 REJECT;
2732 }
2733 YY_BREAK
2734case 105:
2735YY_RULE_SETUP
2736#line 378 "asn1p_l.l"
2737return TOK_VideotexString;
2738 YY_BREAK
2739case 106:
2740YY_RULE_SETUP
2741#line 379 "asn1p_l.l"
2742return TOK_VisibleString;
2743 YY_BREAK
2744case 107:
2745YY_RULE_SETUP
2746#line 380 "asn1p_l.l"
2747return TOK_WITH;
2748 YY_BREAK
2749case 108:
2750YY_RULE_SETUP
2751#line 383 "asn1p_l.l"
2752{
2753 CHECK_DASHES;
2754 asn1p_lval.tv_str = strdup(yytext);
2755 return TOK_typefieldreference;
2756 }
2757 YY_BREAK
2758case 109:
2759YY_RULE_SETUP
2760#line 389 "asn1p_l.l"
2761{
2762 CHECK_DASHES;
2763 asn1p_lval.tv_str = strdup(yytext);
2764 return TOK_valuefieldreference;
2765 }
2766 YY_BREAK
2767case 110:
2768YY_RULE_SETUP
2769#line 396 "asn1p_l.l"
2770{
2771 CHECK_DASHES;
2772 asn1p_lval.tv_str = strdup(yytext);
2773 return TOK_identifier;
2774 }
2775 YY_BREAK
2776/*
2777 * objectclassreference
2778 */
2779case 111:
2780YY_RULE_SETUP
2781#line 405 "asn1p_l.l"
2782{
2783 CHECK_DASHES;
2784 asn1p_lval.tv_str = strdup(yytext);
2785 return TOK_objectclassreference;
2786 }
2787 YY_BREAK
2788/*
2789 * typereference, modulereference
2790 * NOTE: TOK_objectclassreference must be combined
2791 * with this token to produce true typereference.
2792 */
2793case 112:
2794YY_RULE_SETUP
2795#line 416 "asn1p_l.l"
2796{
2797 CHECK_DASHES;
2798 asn1p_lval.tv_str = strdup(yytext);
2799 return TOK_typereference;
2800 }
2801 YY_BREAK
2802case 113:
2803YY_RULE_SETUP
2804#line 422 "asn1p_l.l"
2805return TOK_PPEQ;
2806 YY_BREAK
2807case 114:
2808YY_RULE_SETUP
2809#line 424 "asn1p_l.l"
2810return TOK_ThreeDots;
2811 YY_BREAK
2812case 115:
2813YY_RULE_SETUP
2814#line 425 "asn1p_l.l"
2815return TOK_TwoDots;
2816 YY_BREAK
2817case 116:
2818YY_RULE_SETUP
2819#line 427 "asn1p_l.l"
2820return yytext[0];
2821 YY_BREAK
2822case 117:
2823YY_RULE_SETUP
2824#line 429 "asn1p_l.l"
2825/* Ignore whitespace */
2826 YY_BREAK
2827case 118:
2828YY_RULE_SETUP
2829#line 431 "asn1p_l.l"
2830{
2831 if(TYPE_LIFETIME(1994, 0))
2832 fprintf(stderr, "ERROR: ");
2833 fprintf(stderr,
2834 "Symbol '%c' at line %d is prohibited "
2835 "by ASN.1:1994 and ASN.1:1997\n",
2836 yytext[0], yylineno);
2837 if(TYPE_LIFETIME(1994, 0))
2838 return -1;
2839 }
2840 YY_BREAK
2841
2842case 119:
2843YY_RULE_SETUP
2844#line 444 "asn1p_l.l"
2845{
2846 asn1p_lval.tv_opaque.buf = strdup(yytext);
2847 asn1p_lval.tv_opaque.len = yyleng;
2848 return TOK_opaque;
2849 }
2850 YY_BREAK
2851case 120:
2852YY_RULE_SETUP
2853#line 450 "asn1p_l.l"
2854{
2855 asn1p_lval.tv_opaque.buf = strdup(yytext);
2856 asn1p_lval.tv_opaque.len = yyleng;
2857 return TOK_opaque;
2858 }
2859 YY_BREAK
2860case 121:
2861YY_RULE_SETUP
2862#line 456 "asn1p_l.l"
2863{
2864 yy_pop_state();
2865 return '}';
2866 }
2867 YY_BREAK
2868
2869case 122:
2870YY_RULE_SETUP
2871#line 464 "asn1p_l.l"
2872{
2873 fprintf(stderr,
2874 "Unexpected token at line %d: \"%s\"\n",
2875 yylineno, yytext);
2876 while(YYSTATE != INITIAL)
2877 yy_pop_state();
2878 yy_top_state(); /* Just to use this function. */
2879 yyterminate();
2880 yy_fatal_error("Unexpected token");
2881 return -1;
2882}
2883 YY_BREAK
2884case YY_STATE_EOF(INITIAL):
2885case YY_STATE_EOF(dash_comment):
2886case YY_STATE_EOF(cpp_comment):
2887case YY_STATE_EOF(quoted):
2888case YY_STATE_EOF(opaque):
2889case YY_STATE_EOF(with_syntax):
2890#line 476 "asn1p_l.l"
2891{
2892 while(YYSTATE != INITIAL)
2893 yy_pop_state();
2894 yyterminate();
2895 }
2896 YY_BREAK
2897case 123:
2898YY_RULE_SETUP
2899#line 483 "asn1p_l.l"
2900YY_FATAL_ERROR( "flex scanner jammed" );
2901 YY_BREAK
Lev Walkinc3b72e92004-06-03 05:07:41 +00002902#line 2903 "lex.yy.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00002903
2904 case YY_END_OF_BUFFER:
2905 {
2906 /* Amount of text matched not including the EOB char. */
2907 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
2908
2909 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2910 *yy_cp = yy_hold_char;
2911 YY_RESTORE_YY_MORE_OFFSET
2912
2913 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
2914 {
2915 /* We're scanning a new file or input source. It's
2916 * possible that this happened because the user
2917 * just pointed yyin at a new source and called
2918 * yylex(). If so, then we have to assure
2919 * consistency between yy_current_buffer and our
2920 * globals. Here is the right place to do so, because
2921 * this is the first action (other than possibly a
2922 * back-up) that will match for the new input source.
2923 */
2924 yy_n_chars = yy_current_buffer->yy_n_chars;
2925 yy_current_buffer->yy_input_file = yyin;
2926 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
2927 }
2928
2929 /* Note that here we test for yy_c_buf_p "<=" to the position
2930 * of the first EOB in the buffer, since yy_c_buf_p will
2931 * already have been incremented past the NUL character
2932 * (since all states make transitions on EOB to the
2933 * end-of-buffer state). Contrast this with the test
2934 * in input().
2935 */
2936 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
2937 { /* This was really a NUL. */
2938 yy_state_type yy_next_state;
2939
2940 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
2941
2942 yy_current_state = yy_get_previous_state();
2943
2944 /* Okay, we're now positioned to make the NUL
2945 * transition. We couldn't have
2946 * yy_get_previous_state() go ahead and do it
2947 * for us because it doesn't know how to deal
2948 * with the possibility of jamming (and we don't
2949 * want to build jamming into it because then it
2950 * will run more slowly).
2951 */
2952
2953 yy_next_state = yy_try_NUL_trans( yy_current_state );
2954
2955 yy_bp = yytext_ptr + YY_MORE_ADJ;
2956
2957 if ( yy_next_state )
2958 {
2959 /* Consume the NUL. */
2960 yy_cp = ++yy_c_buf_p;
2961 yy_current_state = yy_next_state;
2962 goto yy_match;
2963 }
2964
2965 else
2966 {
2967 yy_cp = yy_c_buf_p;
2968 goto yy_find_action;
2969 }
2970 }
2971
2972 else switch ( yy_get_next_buffer() )
2973 {
2974 case EOB_ACT_END_OF_FILE:
2975 {
2976 yy_did_buffer_switch_on_eof = 0;
2977
2978 if ( yywrap() )
2979 {
2980 /* Note: because we've taken care in
2981 * yy_get_next_buffer() to have set up
2982 * yytext, we can now set up
2983 * yy_c_buf_p so that if some total
2984 * hoser (like flex itself) wants to
2985 * call the scanner after we return the
2986 * YY_NULL, it'll still work - another
2987 * YY_NULL will get returned.
2988 */
2989 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
2990
2991 yy_act = YY_STATE_EOF(YY_START);
2992 goto do_action;
2993 }
2994
2995 else
2996 {
2997 if ( ! yy_did_buffer_switch_on_eof )
2998 YY_NEW_FILE;
2999 }
3000 break;
3001 }
3002
3003 case EOB_ACT_CONTINUE_SCAN:
3004 yy_c_buf_p =
3005 yytext_ptr + yy_amount_of_matched_text;
3006
3007 yy_current_state = yy_get_previous_state();
3008
3009 yy_cp = yy_c_buf_p;
3010 yy_bp = yytext_ptr + YY_MORE_ADJ;
3011 goto yy_match;
3012
3013 case EOB_ACT_LAST_MATCH:
3014 yy_c_buf_p =
3015 &yy_current_buffer->yy_ch_buf[yy_n_chars];
3016
3017 yy_current_state = yy_get_previous_state();
3018
3019 yy_cp = yy_c_buf_p;
3020 yy_bp = yytext_ptr + YY_MORE_ADJ;
3021 goto yy_find_action;
3022 }
3023 break;
3024 }
3025
3026 default:
3027 YY_FATAL_ERROR(
3028 "fatal flex scanner internal error--no action found" );
3029 } /* end of action switch */
3030 } /* end of scanning one token */
3031 } /* end of yylex */
3032
3033
3034/* yy_get_next_buffer - try to read in a new buffer
3035 *
3036 * Returns a code representing an action:
3037 * EOB_ACT_LAST_MATCH -
3038 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3039 * EOB_ACT_END_OF_FILE - end of file
3040 */
3041
3042static int yy_get_next_buffer()
3043 {
3044 register char *dest = yy_current_buffer->yy_ch_buf;
3045 register char *source = yytext_ptr;
3046 register int number_to_move, i;
3047 int ret_val;
3048
3049 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
3050 YY_FATAL_ERROR(
3051 "fatal flex scanner internal error--end of buffer missed" );
3052
3053 if ( yy_current_buffer->yy_fill_buffer == 0 )
3054 { /* Don't try to fill the buffer, so this is an EOF. */
3055 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
3056 {
3057 /* We matched a single character, the EOB, so
3058 * treat this as a final EOF.
3059 */
3060 return EOB_ACT_END_OF_FILE;
3061 }
3062
3063 else
3064 {
3065 /* We matched some text prior to the EOB, first
3066 * process it.
3067 */
3068 return EOB_ACT_LAST_MATCH;
3069 }
3070 }
3071
3072 /* Try to read more data. */
3073
3074 /* First move last chars to start of buffer. */
3075 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
3076
3077 for ( i = 0; i < number_to_move; ++i )
3078 *(dest++) = *(source++);
3079
3080 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3081 /* don't do the read, it's not guaranteed to return an EOF,
3082 * just force an EOF
3083 */
3084 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
3085
3086 else
3087 {
3088 int num_to_read =
3089 yy_current_buffer->yy_buf_size - number_to_move - 1;
3090
3091 while ( num_to_read <= 0 )
3092 { /* Not enough room in the buffer - grow it. */
3093#ifdef YY_USES_REJECT
3094 YY_FATAL_ERROR(
3095"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3096#else
3097
3098 /* just a shorter name for the current buffer */
3099 YY_BUFFER_STATE b = yy_current_buffer;
3100
3101 int yy_c_buf_p_offset =
3102 (int) (yy_c_buf_p - b->yy_ch_buf);
3103
3104 if ( b->yy_is_our_buffer )
3105 {
3106 int new_size = b->yy_buf_size * 2;
3107
3108 if ( new_size <= 0 )
3109 b->yy_buf_size += b->yy_buf_size / 8;
3110 else
3111 b->yy_buf_size *= 2;
3112
3113 b->yy_ch_buf = (char *)
3114 /* Include room in for 2 EOB chars. */
3115 yy_flex_realloc( (void *) b->yy_ch_buf,
3116 b->yy_buf_size + 2 );
3117 }
3118 else
3119 /* Can't grow it, we don't own it. */
3120 b->yy_ch_buf = 0;
3121
3122 if ( ! b->yy_ch_buf )
3123 YY_FATAL_ERROR(
3124 "fatal error - scanner input buffer overflow" );
3125
3126 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
3127
3128 num_to_read = yy_current_buffer->yy_buf_size -
3129 number_to_move - 1;
3130#endif
3131 }
3132
3133 if ( num_to_read > YY_READ_BUF_SIZE )
3134 num_to_read = YY_READ_BUF_SIZE;
3135
3136 /* Read in more data. */
3137 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
3138 yy_n_chars, num_to_read );
3139
3140 yy_current_buffer->yy_n_chars = yy_n_chars;
3141 }
3142
3143 if ( yy_n_chars == 0 )
3144 {
3145 if ( number_to_move == YY_MORE_ADJ )
3146 {
3147 ret_val = EOB_ACT_END_OF_FILE;
3148 yyrestart( yyin );
3149 }
3150
3151 else
3152 {
3153 ret_val = EOB_ACT_LAST_MATCH;
3154 yy_current_buffer->yy_buffer_status =
3155 YY_BUFFER_EOF_PENDING;
3156 }
3157 }
3158
3159 else
3160 ret_val = EOB_ACT_CONTINUE_SCAN;
3161
3162 yy_n_chars += number_to_move;
3163 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3164 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3165
3166 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3167
3168 return ret_val;
3169 }
3170
3171
3172/* yy_get_previous_state - get the state just before the EOB char was reached */
3173
3174static yy_state_type yy_get_previous_state()
3175 {
3176 register yy_state_type yy_current_state;
3177 register char *yy_cp;
3178
3179 yy_current_state = yy_start;
3180 yy_state_ptr = yy_state_buf;
3181 *yy_state_ptr++ = yy_current_state;
3182
3183 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3184 {
3185 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3186 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3187 {
3188 yy_current_state = (int) yy_def[yy_current_state];
3189 if ( yy_current_state >= 675 )
3190 yy_c = yy_meta[(unsigned int) yy_c];
3191 }
3192 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3193 *yy_state_ptr++ = yy_current_state;
3194 }
3195
3196 return yy_current_state;
3197 }
3198
3199
3200/* yy_try_NUL_trans - try to make a transition on the NUL character
3201 *
3202 * synopsis
3203 * next_state = yy_try_NUL_trans( current_state );
3204 */
3205
3206#ifdef YY_USE_PROTOS
3207static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3208#else
3209static yy_state_type yy_try_NUL_trans( yy_current_state )
3210yy_state_type yy_current_state;
3211#endif
3212 {
3213 register int yy_is_jam;
3214
3215 register YY_CHAR yy_c = 1;
3216 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3217 {
3218 yy_current_state = (int) yy_def[yy_current_state];
3219 if ( yy_current_state >= 675 )
3220 yy_c = yy_meta[(unsigned int) yy_c];
3221 }
3222 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3223 yy_is_jam = (yy_current_state == 674);
3224 if ( ! yy_is_jam )
3225 *yy_state_ptr++ = yy_current_state;
3226
3227 return yy_is_jam ? 0 : yy_current_state;
3228 }
3229
3230
3231#ifndef YY_NO_UNPUT
3232#ifdef YY_USE_PROTOS
3233static void yyunput( int c, register char *yy_bp )
3234#else
3235static void yyunput( c, yy_bp )
3236int c;
3237register char *yy_bp;
3238#endif
3239 {
3240 register char *yy_cp = yy_c_buf_p;
3241
3242 /* undo effects of setting up yytext */
3243 *yy_cp = yy_hold_char;
3244
3245 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3246 { /* need to shift things up to make room */
3247 /* +2 for EOB chars. */
3248 register int number_to_move = yy_n_chars + 2;
3249 register char *dest = &yy_current_buffer->yy_ch_buf[
3250 yy_current_buffer->yy_buf_size + 2];
3251 register char *source =
3252 &yy_current_buffer->yy_ch_buf[number_to_move];
3253
3254 while ( source > yy_current_buffer->yy_ch_buf )
3255 *--dest = *--source;
3256
3257 yy_cp += (int) (dest - source);
3258 yy_bp += (int) (dest - source);
3259 yy_current_buffer->yy_n_chars =
3260 yy_n_chars = yy_current_buffer->yy_buf_size;
3261
3262 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3263 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3264 }
3265
3266 *--yy_cp = (char) c;
3267
3268 if ( c == '\n' )
3269 --yylineno;
3270
3271 yytext_ptr = yy_bp;
3272 yy_hold_char = *yy_cp;
3273 yy_c_buf_p = yy_cp;
3274 }
3275#endif /* ifndef YY_NO_UNPUT */
3276
3277
3278#ifdef __cplusplus
3279static int yyinput()
3280#else
3281static int input()
3282#endif
3283 {
3284 int c;
3285
3286 *yy_c_buf_p = yy_hold_char;
3287
3288 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3289 {
3290 /* yy_c_buf_p now points to the character we want to return.
3291 * If this occurs *before* the EOB characters, then it's a
3292 * valid NUL; if not, then we've hit the end of the buffer.
3293 */
3294 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3295 /* This was really a NUL. */
3296 *yy_c_buf_p = '\0';
3297
3298 else
3299 { /* need more input */
3300 int offset = yy_c_buf_p - yytext_ptr;
3301 ++yy_c_buf_p;
3302
3303 switch ( yy_get_next_buffer() )
3304 {
3305 case EOB_ACT_LAST_MATCH:
3306 /* This happens because yy_g_n_b()
3307 * sees that we've accumulated a
3308 * token and flags that we need to
3309 * try matching the token before
3310 * proceeding. But for input(),
3311 * there's no matching to consider.
3312 * So convert the EOB_ACT_LAST_MATCH
3313 * to EOB_ACT_END_OF_FILE.
3314 */
3315
3316 /* Reset buffer status. */
3317 yyrestart( yyin );
3318
3319 /* fall through */
3320
3321 case EOB_ACT_END_OF_FILE:
3322 {
3323 if ( yywrap() )
3324 return EOF;
3325
3326 if ( ! yy_did_buffer_switch_on_eof )
3327 YY_NEW_FILE;
3328#ifdef __cplusplus
3329 return yyinput();
3330#else
3331 return input();
3332#endif
3333 }
3334
3335 case EOB_ACT_CONTINUE_SCAN:
3336 yy_c_buf_p = yytext_ptr + offset;
3337 break;
3338 }
3339 }
3340 }
3341
3342 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3343 *yy_c_buf_p = '\0'; /* preserve yytext */
3344 yy_hold_char = *++yy_c_buf_p;
3345
3346 if ( c == '\n' )
3347 ++yylineno;
3348
3349 return c;
3350 }
3351
3352
3353#ifdef YY_USE_PROTOS
3354void yyrestart( FILE *input_file )
3355#else
3356void yyrestart( input_file )
3357FILE *input_file;
3358#endif
3359 {
3360 if ( ! yy_current_buffer )
3361 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3362
3363 yy_init_buffer( yy_current_buffer, input_file );
3364 yy_load_buffer_state();
3365 }
3366
3367
3368#ifdef YY_USE_PROTOS
3369void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3370#else
3371void yy_switch_to_buffer( new_buffer )
3372YY_BUFFER_STATE new_buffer;
3373#endif
3374 {
3375 if ( yy_current_buffer == new_buffer )
3376 return;
3377
3378 if ( yy_current_buffer )
3379 {
3380 /* Flush out information for old buffer. */
3381 *yy_c_buf_p = yy_hold_char;
3382 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3383 yy_current_buffer->yy_n_chars = yy_n_chars;
3384 }
3385
3386 yy_current_buffer = new_buffer;
3387 yy_load_buffer_state();
3388
3389 /* We don't actually know whether we did this switch during
3390 * EOF (yywrap()) processing, but the only time this flag
3391 * is looked at is after yywrap() is called, so it's safe
3392 * to go ahead and always set it.
3393 */
3394 yy_did_buffer_switch_on_eof = 1;
3395 }
3396
3397
3398#ifdef YY_USE_PROTOS
3399void yy_load_buffer_state( void )
3400#else
3401void yy_load_buffer_state()
3402#endif
3403 {
3404 yy_n_chars = yy_current_buffer->yy_n_chars;
3405 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3406 yyin = yy_current_buffer->yy_input_file;
3407 yy_hold_char = *yy_c_buf_p;
3408 }
3409
3410
3411#ifdef YY_USE_PROTOS
3412YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3413#else
3414YY_BUFFER_STATE yy_create_buffer( file, size )
3415FILE *file;
3416int size;
3417#endif
3418 {
3419 YY_BUFFER_STATE b;
3420
3421 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3422 if ( ! b )
3423 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3424
3425 b->yy_buf_size = size;
3426
3427 /* yy_ch_buf has to be 2 characters longer than the size given because
3428 * we need to put in 2 end-of-buffer characters.
3429 */
3430 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3431 if ( ! b->yy_ch_buf )
3432 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3433
3434 b->yy_is_our_buffer = 1;
3435
3436 yy_init_buffer( b, file );
3437
3438 return b;
3439 }
3440
3441
3442#ifdef YY_USE_PROTOS
3443void yy_delete_buffer( YY_BUFFER_STATE b )
3444#else
3445void yy_delete_buffer( b )
3446YY_BUFFER_STATE b;
3447#endif
3448 {
3449 if ( ! b )
3450 return;
3451
3452 if ( b == yy_current_buffer )
3453 yy_current_buffer = (YY_BUFFER_STATE) 0;
3454
3455 if ( b->yy_is_our_buffer )
3456 yy_flex_free( (void *) b->yy_ch_buf );
3457
3458 yy_flex_free( (void *) b );
3459 }
3460
3461
3462#ifndef YY_ALWAYS_INTERACTIVE
3463#ifndef YY_NEVER_INTERACTIVE
3464extern int isatty YY_PROTO(( int ));
3465#endif
3466#endif
3467
3468#ifdef YY_USE_PROTOS
3469void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3470#else
3471void yy_init_buffer( b, file )
3472YY_BUFFER_STATE b;
3473FILE *file;
3474#endif
3475
3476
3477 {
3478 yy_flush_buffer( b );
3479
3480 b->yy_input_file = file;
3481 b->yy_fill_buffer = 1;
3482
3483#if YY_ALWAYS_INTERACTIVE
3484 b->yy_is_interactive = 1;
3485#else
3486#if YY_NEVER_INTERACTIVE
3487 b->yy_is_interactive = 0;
3488#else
3489 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3490#endif
3491#endif
3492 }
3493
3494
3495#ifdef YY_USE_PROTOS
3496void yy_flush_buffer( YY_BUFFER_STATE b )
3497#else
3498void yy_flush_buffer( b )
3499YY_BUFFER_STATE b;
3500#endif
3501
3502 {
3503 if ( ! b )
3504 return;
3505
3506 b->yy_n_chars = 0;
3507
3508 /* We always need two end-of-buffer characters. The first causes
3509 * a transition to the end-of-buffer state. The second causes
3510 * a jam in that state.
3511 */
3512 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3513 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3514
3515 b->yy_buf_pos = &b->yy_ch_buf[0];
3516
3517 b->yy_at_bol = 1;
3518 b->yy_buffer_status = YY_BUFFER_NEW;
3519
3520 if ( b == yy_current_buffer )
3521 yy_load_buffer_state();
3522 }
3523
3524
3525#ifndef YY_NO_SCAN_BUFFER
3526#ifdef YY_USE_PROTOS
3527YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3528#else
3529YY_BUFFER_STATE yy_scan_buffer( base, size )
3530char *base;
3531yy_size_t size;
3532#endif
3533 {
3534 YY_BUFFER_STATE b;
3535
3536 if ( size < 2 ||
3537 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3538 base[size-1] != YY_END_OF_BUFFER_CHAR )
3539 /* They forgot to leave room for the EOB's. */
3540 return 0;
3541
3542 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3543 if ( ! b )
3544 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3545
3546 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3547 b->yy_buf_pos = b->yy_ch_buf = base;
3548 b->yy_is_our_buffer = 0;
3549 b->yy_input_file = 0;
3550 b->yy_n_chars = b->yy_buf_size;
3551 b->yy_is_interactive = 0;
3552 b->yy_at_bol = 1;
3553 b->yy_fill_buffer = 0;
3554 b->yy_buffer_status = YY_BUFFER_NEW;
3555
3556 yy_switch_to_buffer( b );
3557
3558 return b;
3559 }
3560#endif
3561
3562
3563#ifndef YY_NO_SCAN_STRING
3564#ifdef YY_USE_PROTOS
3565YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3566#else
3567YY_BUFFER_STATE yy_scan_string( yy_str )
3568yyconst char *yy_str;
3569#endif
3570 {
3571 int len;
3572 for ( len = 0; yy_str[len]; ++len )
3573 ;
3574
3575 return yy_scan_bytes( yy_str, len );
3576 }
3577#endif
3578
3579
3580#ifndef YY_NO_SCAN_BYTES
3581#ifdef YY_USE_PROTOS
3582YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3583#else
3584YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3585yyconst char *bytes;
3586int len;
3587#endif
3588 {
3589 YY_BUFFER_STATE b;
3590 char *buf;
3591 yy_size_t n;
3592 int i;
3593
3594 /* Get memory for full buffer, including space for trailing EOB's. */
3595 n = len + 2;
3596 buf = (char *) yy_flex_alloc( n );
3597 if ( ! buf )
3598 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3599
3600 for ( i = 0; i < len; ++i )
3601 buf[i] = bytes[i];
3602
3603 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3604
3605 b = yy_scan_buffer( buf, n );
3606 if ( ! b )
3607 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3608
3609 /* It's okay to grow etc. this buffer, and we should throw it
3610 * away when we're done.
3611 */
3612 b->yy_is_our_buffer = 1;
3613
3614 return b;
3615 }
3616#endif
3617
3618
3619#ifndef YY_NO_PUSH_STATE
3620#ifdef YY_USE_PROTOS
3621static void yy_push_state( int new_state )
3622#else
3623static void yy_push_state( new_state )
3624int new_state;
3625#endif
3626 {
3627 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3628 {
3629 yy_size_t new_size;
3630
3631 yy_start_stack_depth += YY_START_STACK_INCR;
3632 new_size = yy_start_stack_depth * sizeof( int );
3633
3634 if ( ! yy_start_stack )
3635 yy_start_stack = (int *) yy_flex_alloc( new_size );
3636
3637 else
3638 yy_start_stack = (int *) yy_flex_realloc(
3639 (void *) yy_start_stack, new_size );
3640
3641 if ( ! yy_start_stack )
3642 YY_FATAL_ERROR(
3643 "out of memory expanding start-condition stack" );
3644 }
3645
3646 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3647
3648 BEGIN(new_state);
3649 }
3650#endif
3651
3652
3653#ifndef YY_NO_POP_STATE
3654static void yy_pop_state()
3655 {
3656 if ( --yy_start_stack_ptr < 0 )
3657 YY_FATAL_ERROR( "start-condition stack underflow" );
3658
3659 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3660 }
3661#endif
3662
3663
3664#ifndef YY_NO_TOP_STATE
3665static int yy_top_state()
3666 {
3667 return yy_start_stack[yy_start_stack_ptr - 1];
3668 }
3669#endif
3670
3671#ifndef YY_EXIT_FAILURE
3672#define YY_EXIT_FAILURE 2
3673#endif
3674
3675#ifdef YY_USE_PROTOS
3676static void yy_fatal_error( yyconst char msg[] )
3677#else
3678static void yy_fatal_error( msg )
3679char msg[];
3680#endif
3681 {
3682 (void) fprintf( stderr, "%s\n", msg );
3683 exit( YY_EXIT_FAILURE );
3684 }
3685
3686
3687
3688/* Redefine yyless() so it works in section 3 code. */
3689
3690#undef yyless
3691#define yyless(n) \
3692 do \
3693 { \
3694 /* Undo effects of setting up yytext. */ \
3695 yytext[yyleng] = yy_hold_char; \
3696 yy_c_buf_p = yytext + n; \
3697 yy_hold_char = *yy_c_buf_p; \
3698 *yy_c_buf_p = '\0'; \
3699 yyleng = n; \
3700 } \
3701 while ( 0 )
3702
3703
3704/* Internal utility routines. */
3705
3706#ifndef yytext_ptr
3707#ifdef YY_USE_PROTOS
3708static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3709#else
3710static void yy_flex_strncpy( s1, s2, n )
3711char *s1;
3712yyconst char *s2;
3713int n;
3714#endif
3715 {
3716 register int i;
3717 for ( i = 0; i < n; ++i )
3718 s1[i] = s2[i];
3719 }
3720#endif
3721
3722#ifdef YY_NEED_STRLEN
3723#ifdef YY_USE_PROTOS
3724static int yy_flex_strlen( yyconst char *s )
3725#else
3726static int yy_flex_strlen( s )
3727yyconst char *s;
3728#endif
3729 {
3730 register int n;
3731 for ( n = 0; s[n]; ++n )
3732 ;
3733
3734 return n;
3735 }
3736#endif
3737
3738
3739#ifdef YY_USE_PROTOS
3740static void *yy_flex_alloc( yy_size_t size )
3741#else
3742static void *yy_flex_alloc( size )
3743yy_size_t size;
3744#endif
3745 {
3746 return (void *) malloc( size );
3747 }
3748
3749#ifdef YY_USE_PROTOS
3750static void *yy_flex_realloc( void *ptr, yy_size_t size )
3751#else
3752static void *yy_flex_realloc( ptr, size )
3753void *ptr;
3754yy_size_t size;
3755#endif
3756 {
3757 /* The cast to (char *) in the following accommodates both
3758 * implementations that use char* generic pointers, and those
3759 * that use void* generic pointers. It works with the latter
3760 * because both ANSI C and C++ allow castless assignment from
3761 * any pointer type to void*, and deal with argument conversions
3762 * as though doing an assignment.
3763 */
3764 return (void *) realloc( (char *) ptr, size );
3765 }
3766
3767#ifdef YY_USE_PROTOS
3768static void yy_flex_free( void *ptr )
3769#else
3770static void yy_flex_free( ptr )
3771void *ptr;
3772#endif
3773 {
3774 free( ptr );
3775 }
3776
3777#if YY_MAIN
3778int main()
3779 {
3780 yylex();
3781 return 0;
3782 }
3783#endif
3784#line 483 "asn1p_l.l"
3785
3786
3787/*
3788 * Very dirty but wonderful hack allowing to rule states from within .y file.
3789 */
3790void
3791asn1p_lexer_hack_push_opaque_state() {
3792 yy_push_state(opaque);
3793}
3794
3795/*
3796 * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
3797 */
3798void
3799asn1p_lexer_hack_enable_with_syntax() {
3800 yy_push_state(with_syntax);
3801}
3802
3803/*
3804 * Check that a token does not end with dash and does not contain
3805 * several dashes in succession.
3806 * "Name", "Type-Id", "T-y-p-e-i-d" are OK
3807 * "end-", "vustom--value" are INVALID
3808 */
3809static int
3810_check_dashes(char *ptr) {
3811 int prev_dash = 0;
3812
3813 assert(*ptr != '-');
3814
3815 for(;; ptr++) {
3816 switch(*ptr) {
3817 case '-':
3818 if(prev_dash++) /* No double dashes */
3819 return -1;
3820 continue;
3821 case '\0':
3822 if(prev_dash) /* No dashes at the end */
3823 return -1;
3824 break;
3825 default:
3826 prev_dash = 0;
3827 continue;
3828 }
3829 break;
3830 }
3831
3832 return 0;
3833}
3834
3835static asn1_integer_t
3836asn1p_atoi(char *ptr) {
3837 asn1_integer_t value;
3838 errno = 0; /* Clear the error code */
3839
3840 if(sizeof(value) <= sizeof(int)) {
3841 value = strtol(ptr, 0, 10);
3842 } else {
3843#ifdef HAVE_STRTOIMAX
3844 value = strtoimax(ptr, 0, 10);
3845#elif HAVE_STRTOLL
3846 value = strtoll(ptr, 0, 10);
3847#else
3848 value = strtol(ptr, 0, 10);
3849#endif
3850 }
3851
3852 if(errno == ERANGE) {
3853 fprintf(stderr,
3854 "Value \"%s\" at line %d is too large "
3855 "for this compiler! Please contact the vendor.",
3856 ptr, yylineno);
3857 errno = ERANGE; /* Restore potentially clobbered errno */
3858 }
3859
3860 return value;
3861}
3862