blob: 6cc0cb9ff59bd3a57c49199d646ca0768518454b [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
Lev Walkinf59d0752004-08-18 04:59:12 +000019#line 20 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +000020/* A lexical scanner generated by flex */
21
22/* Scanner skeleton version:
23 * $Header$
24 */
25
26#define FLEX_SCANNER
27#define YY_FLEX_MAJOR_VERSION 2
28#define YY_FLEX_MINOR_VERSION 5
29
30#include <stdio.h>
31
32
33/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
34#ifdef c_plusplus
35#ifndef __cplusplus
36#define __cplusplus
37#endif
38#endif
39
40
41#ifdef __cplusplus
42
43#include <stdlib.h>
44#include <unistd.h>
45
46/* Use prototypes in function declarations. */
47#define YY_USE_PROTOS
48
49/* The "const" storage-class-modifier is valid. */
50#define YY_USE_CONST
51
52#else /* ! __cplusplus */
53
54#if __STDC__
55
56#define YY_USE_PROTOS
57#define YY_USE_CONST
58
59#endif /* __STDC__ */
60#endif /* ! __cplusplus */
61
62#ifdef __TURBOC__
63 #pragma warn -rch
64 #pragma warn -use
65#include <io.h>
66#include <stdlib.h>
67#define YY_USE_CONST
68#define YY_USE_PROTOS
69#endif
70
71#ifdef YY_USE_CONST
72#define yyconst const
73#else
74#define yyconst
75#endif
76
77
78#ifdef YY_USE_PROTOS
79#define YY_PROTO(proto) proto
80#else
81#define YY_PROTO(proto) ()
82#endif
83
84/* Returned upon end-of-file. */
85#define YY_NULL 0
86
87/* Promotes a possibly negative, possibly signed char to an unsigned
88 * integer for use as an array index. If the signed char is negative,
89 * we want to instead treat it as an 8-bit unsigned char, hence the
90 * double cast.
91 */
92#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
93
94/* Enter a start condition. This macro really ought to take a parameter,
95 * but we do it the disgusting crufty way forced on us by the ()-less
96 * definition of BEGIN.
97 */
98#define BEGIN yy_start = 1 + 2 *
99
100/* Translate the current start state into a value that can be later handed
101 * to BEGIN to return to the state. The YYSTATE alias is for lex
102 * compatibility.
103 */
104#define YY_START ((yy_start - 1) / 2)
105#define YYSTATE YY_START
106
107/* Action number for EOF rule of a given start state. */
108#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
109
110/* Special action meaning "start processing a new file". */
111#define YY_NEW_FILE yyrestart( yyin )
112
113#define YY_END_OF_BUFFER_CHAR 0
114
115/* Size of default input buffer. */
116#define YY_BUF_SIZE 16384
117
118typedef struct yy_buffer_state *YY_BUFFER_STATE;
119
120extern int yyleng;
121extern FILE *yyin, *yyout;
122
123#define EOB_ACT_CONTINUE_SCAN 0
124#define EOB_ACT_END_OF_FILE 1
125#define EOB_ACT_LAST_MATCH 2
126
127/* The funky do-while in the following #define is used to turn the definition
128 * int a single C statement (which needs a semi-colon terminator). This
129 * avoids problems with code like:
130 *
131 * if ( condition_holds )
132 * yyless( 5 );
133 * else
134 * do_something_else();
135 *
136 * Prior to using the do-while the compiler would get upset at the
137 * "else" because it interpreted the "if" statement as being all
138 * done when it reached the ';' after the yyless() call.
139 */
140
141/* Return all but the first 'n' matched characters back to the input stream. */
142
143#define yyless(n) \
144 do \
145 { \
146 /* Undo effects of setting up yytext. */ \
147 *yy_cp = yy_hold_char; \
148 YY_RESTORE_YY_MORE_OFFSET \
149 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
150 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
151 } \
152 while ( 0 )
153
154#define unput(c) yyunput( c, yytext_ptr )
155
156/* The following is because we cannot portably get our hands on size_t
157 * (without autoconf's help, which isn't available because we want
158 * flex-generated scanners to compile on their own).
159 */
160typedef unsigned int yy_size_t;
161
162
163struct yy_buffer_state
164 {
165 FILE *yy_input_file;
166
167 char *yy_ch_buf; /* input buffer */
168 char *yy_buf_pos; /* current position in input buffer */
169
170 /* Size of input buffer in bytes, not including room for EOB
171 * characters.
172 */
173 yy_size_t yy_buf_size;
174
175 /* Number of characters read into yy_ch_buf, not including EOB
176 * characters.
177 */
178 int yy_n_chars;
179
180 /* Whether we "own" the buffer - i.e., we know we created it,
181 * and can realloc() it to grow it, and should free() it to
182 * delete it.
183 */
184 int yy_is_our_buffer;
185
186 /* Whether this is an "interactive" input source; if so, and
187 * if we're using stdio for input, then we want to use getc()
188 * instead of fread(), to make sure we stop fetching input after
189 * each newline.
190 */
191 int yy_is_interactive;
192
193 /* Whether we're considered to be at the beginning of a line.
194 * If so, '^' rules will be active on the next match, otherwise
195 * not.
196 */
197 int yy_at_bol;
198
199 /* Whether to try to fill the input buffer when we reach the
200 * end of it.
201 */
202 int yy_fill_buffer;
203
204 int yy_buffer_status;
205#define YY_BUFFER_NEW 0
206#define YY_BUFFER_NORMAL 1
207 /* When an EOF's been seen but there's still some text to process
208 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
209 * shouldn't try reading from the input source any more. We might
210 * still have a bunch of tokens to match, though, because of
211 * possible backing-up.
212 *
213 * When we actually see the EOF, we change the status to "new"
214 * (via yyrestart()), so that the user can continue scanning by
215 * just pointing yyin at a new input file.
216 */
217#define YY_BUFFER_EOF_PENDING 2
218 };
219
220static YY_BUFFER_STATE yy_current_buffer = 0;
221
222/* We provide macros for accessing buffer states in case in the
223 * future we want to put the buffer states in a more general
224 * "scanner state".
225 */
226#define YY_CURRENT_BUFFER yy_current_buffer
227
228
229/* yy_hold_char holds the character lost when yytext is formed. */
230static char yy_hold_char;
231
232static int yy_n_chars; /* number of characters read into yy_ch_buf */
233
234
235int yyleng;
236
237/* Points to current character in buffer. */
238static char *yy_c_buf_p = (char *) 0;
239static int yy_init = 1; /* whether we need to initialize */
240static int yy_start = 0; /* start state number */
241
242/* Flag which is used to allow yywrap()'s to do buffer switches
243 * instead of setting up a fresh yyin. A bit of a hack ...
244 */
245static int yy_did_buffer_switch_on_eof;
246
247void yyrestart YY_PROTO(( FILE *input_file ));
248
249void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
250void yy_load_buffer_state YY_PROTO(( void ));
251YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
252void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
253void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
254void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
255#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
256
257YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
258YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
259YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
260
261static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
262static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
263static void yy_flex_free YY_PROTO(( void * ));
264
265#define yy_new_buffer yy_create_buffer
266
267#define yy_set_interactive(is_interactive) \
268 { \
269 if ( ! yy_current_buffer ) \
270 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
271 yy_current_buffer->yy_is_interactive = is_interactive; \
272 }
273
274#define yy_set_bol(at_bol) \
275 { \
276 if ( ! yy_current_buffer ) \
277 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
278 yy_current_buffer->yy_at_bol = at_bol; \
279 }
280
281#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
282
283
284#define YY_USES_REJECT
285
286#define yywrap() 1
287#define YY_SKIP_YYWRAP
288
289#define FLEX_DEBUG
290typedef unsigned char YY_CHAR;
291FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
292typedef int yy_state_type;
293
294#define FLEX_DEBUG
295extern int yylineno;
296int yylineno = 1;
297extern char *yytext;
298#define yytext_ptr yytext
299
300static yy_state_type yy_get_previous_state YY_PROTO(( void ));
301static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
302static int yy_get_next_buffer YY_PROTO(( void ));
303static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
304
305/* Done after the current pattern has been matched and before the
306 * corresponding action - sets up yytext.
307 */
308#define YY_DO_BEFORE_ACTION \
309 yytext_ptr = yy_bp; \
310 yyleng = (int) (yy_cp - yy_bp); \
311 yy_hold_char = *yy_cp; \
312 *yy_cp = '\0'; \
313 yy_c_buf_p = yy_cp;
314
Lev Walkin2535a692005-07-02 21:42:40 +0000315#define YY_NUM_RULES 133
316#define YY_END_OF_BUFFER 134
317static yyconst short int yy_acclist[1263] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000318 { 0,
Lev Walkin2535a692005-07-02 21:42:40 +0000319 134, 132, 133, 127, 132, 133, 127, 133, 130, 132,
320 133, 18, 132, 133, 130, 132, 133, 132, 133, 130,
321 132, 133, 132, 133, 130, 132, 133, 132, 133, 32,
322 132, 133, 31, 132, 133, 130, 132, 133, 132, 133,
323 119, 120, 132, 133, 119, 120, 132, 133, 119, 120,
324 132, 133, 119, 120, 132, 133, 119, 120, 132, 133,
325 119, 120, 132, 133, 119, 120, 132, 133, 119, 120,
326 132, 133, 119, 120, 132, 133, 119, 120, 132, 133,
327 119, 120, 132, 133, 119, 120, 132, 133, 119, 120,
328 132, 133, 119, 120, 132, 133, 119, 120, 132, 133,
Lev Walkinf15320b2004-06-03 03:38:44 +0000329
Lev Walkin2535a692005-07-02 21:42:40 +0000330 119, 120, 132, 133, 119, 120, 132, 133, 119, 120,
331 132, 133, 119, 120, 132, 133, 118, 132, 133, 130,
332 132, 133, 8, 132, 133, 5, 133, 5, 132, 133,
333 7, 132, 133, 7, 132, 133, 10, 12, 132, 133,
334 10, 133, 12, 132, 133, 12, 132, 133, 20, 132,
335 133, 20, 133, 21, 132, 133, 15, 132, 133, 15,
336 133, 17, 132, 133, 17, 132, 133, 13, 132, 133,
337 14, 132, 133, 24, 26, 132, 133, 26, 132, 133,
338 27, 133, 24, 25, 26, 132, 133, 24, 25, 26,
339 132, 133, 124, 132, 133, 125, 132, 133, 125, 133,
Lev Walkinf15320b2004-06-03 03:38:44 +0000340
Lev Walkin2535a692005-07-02 21:42:40 +0000341 132, 133, 126, 132, 133, 127, 18, 18, 116, 117,
342 4, 30, 123, 9, 31, 119, 120, 119, 120, 119,
343 120, 119, 120, 119, 120, 119, 120, 120, 119, 120,
344 119, 120, 119, 120, 119, 120, 42, 119, 120, 119,
345 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
346 120, 119, 120, 119, 120, 119, 120, 120, 120, 119,
347 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
348 120, 119, 120, 119, 120, 120, 119, 120, 119, 120,
349 87, 119, 120, 119, 120, 120, 119, 120, 119, 120,
350 119, 120, 119, 120, 120, 119, 120, 119, 120, 119,
Lev Walkinf15320b2004-06-03 03:38:44 +0000351
Lev Walkin2535a692005-07-02 21:42:40 +0000352 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
353 120, 119, 120, 120, 119, 120, 119, 120, 120, 120,
354 119, 120, 118, 8, 6, 6, 11, 20, 19, 15,
355 24, 24, 25, 24, 25, 124, 125, 131, 116, 117,
356 30, 122, 121, 119, 120, 120, 119, 120, 34, 119,
357 120, 35, 119, 120, 119, 120, 119, 120, 119, 120,
358 39, 119, 120, 119, 120, 119, 120, 119, 120, 119,
359 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
360 120, 119, 120, 56, 119, 120, 119, 120, 119, 120,
361 119, 120, 119, 120, 119, 120, 119, 120, 120, 120,
Lev Walkinf15320b2004-06-03 03:38:44 +0000362
Lev Walkin2535a692005-07-02 21:42:40 +0000363 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
364 119, 120, 119, 120, 79, 119, 120, 80, 119, 120,
365 119, 120, 120, 119, 120, 119, 120, 119, 120, 120,
366 119, 120, 90, 119, 120, 119, 120, 119, 120, 119,
367 120, 120, 119, 120, 119, 120, 119, 120, 98, 119,
368 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
369 120, 119, 120, 119, 120, 120, 119, 120, 119, 120,
370 119, 120, 120, 120, 120, 119, 120, 118, 3, 16,
371 24, 25, 23, 24, 25, 116, 117, 29, 28, 2,
372 1, 119, 120, 119, 120, 119, 120, 119, 120, 119,
Lev Walkinf15320b2004-06-03 03:38:44 +0000373
Lev Walkin2535a692005-07-02 21:42:40 +0000374 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
375 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
376 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
377 120, 119, 120, 119, 120, 64, 119, 120, 120, 120,
378 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
379 119, 120, 119, 120, 119, 120, 119, 120, 82, 119,
380 120, 120, 119, 120, 119, 120, 119, 120, 120, 119,
381 120, 119, 120, 119, 120, 119, 120, 120, 95, 119,
382 120, 119, 120, 119, 120, 99, 119, 120, 119, 120,
383 119, 120, 119, 120, 103, 119, 120, 105, 119, 120,
Lev Walkinf15320b2004-06-03 03:38:44 +0000384
Lev Walkin2535a692005-07-02 21:42:40 +0000385 119, 120, 120, 119, 120, 119, 120, 119, 120, 119,
386 120, 119, 120, 120, 120, 120, 115, 119, 120, 3,
387 24, 25, 119, 120, 119, 120, 119, 120, 38, 119,
388 120, 120, 119, 120, 119, 120, 119, 120, 45, 119,
389 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
390 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
391 120, 119, 120, 119, 120, 119, 120, 63, 119, 120,
392 120, 120, 120, 119, 120, 119, 120, 119, 120, 119,
393 120, 119, 120, 119, 120, 119, 120, 119, 120, 119,
394 120, 119, 120, 120, 119, 120, 86, 119, 120, 119,
Lev Walkind9574ae2005-03-24 16:22:35 +0000395
Lev Walkin2535a692005-07-02 21:42:40 +0000396 120, 120, 119, 120, 119, 120, 119, 120, 120, 119,
397 120, 119, 120, 119, 120, 119, 120, 120, 120, 107,
398 119, 120, 119, 120, 119, 120, 120, 119, 120, 120,
399 120, 120, 128, 24, 25, 33, 119, 120, 119, 120,
400 119, 120, 120, 119, 120, 119, 120, 44, 119, 120,
401 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
402 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
403 58, 119, 120, 119, 120, 119, 120, 119, 120, 119,
404 120, 120, 120, 120, 119, 120, 119, 120, 119, 120,
405 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
Lev Walkind9574ae2005-03-24 16:22:35 +0000406
Lev Walkin2535a692005-07-02 21:42:40 +0000407 119, 120, 119, 120, 120, 84, 119, 120, 119, 120,
408 120, 119, 120, 119, 120, 119, 120, 119, 120, 120,
409 119, 120, 119, 120, 100, 119, 120, 101, 119, 120,
410 120, 119, 120, 120, 108, 119, 120, 119, 120, 120,
411 120, 120, 120, 120, 24, 25, 119, 120, 119, 120,
412 120, 41, 119, 120, 119, 120, 119, 120, 119, 120,
413 119, 120, 50, 119, 120, 51, 119, 120, 119, 120,
414 119, 120, 54, 119, 120, 119, 120, 119, 120, 119,
415 120, 60, 119, 120, 119, 120, 119, 120, 120, 120,
416 120, 119, 120, 119, 120, 71, 119, 120, 72, 119,
Lev Walkind9574ae2005-03-24 16:22:35 +0000417
Lev Walkin2535a692005-07-02 21:42:40 +0000418 120, 119, 120, 119, 120, 119, 120, 76, 119, 120,
419 119, 120, 119, 120, 119, 120, 120, 119, 120, 120,
420 89, 119, 120, 119, 120, 92, 119, 120, 94, 119,
421 120, 120, 119, 120, 119, 120, 120, 119, 120, 120,
422 119, 120, 111, 120, 120, 120, 120, 120, 24, 25,
423 119, 120, 119, 120, 120, 119, 120, 119, 120, 119,
424 120, 119, 120, 119, 120, 53, 119, 120, 119, 120,
425 119, 120, 59, 119, 120, 119, 120, 62, 119, 120,
426 120, 120, 120, 120, 119, 120, 70, 119, 120, 73,
427 119, 120, 74, 119, 120, 119, 120, 119, 120, 120,
Lev Walkind9574ae2005-03-24 16:22:35 +0000428
Lev Walkin2535a692005-07-02 21:42:40 +0000429 119, 120, 120, 88, 119, 120, 120, 119, 120, 120,
430 119, 120, 97, 119, 120, 120, 119, 120, 120, 119,
431 120, 120, 120, 120, 120, 24, 25, 119, 120, 37,
432 119, 120, 40, 120, 43, 119, 120, 46, 119, 120,
433 119, 120, 119, 120, 119, 120, 119, 120, 119, 120,
434 120, 120, 120, 68, 120, 119, 120, 119, 120, 119,
435 120, 120, 119, 120, 120, 120, 119, 120, 120, 102,
436 120, 119, 120, 120, 109, 119, 120, 120, 120, 120,
437 120, 129, 24, 119, 120, 47, 119, 120, 119, 120,
438 49, 119, 120, 119, 120, 119, 120, 57, 119, 120,
Lev Walkind9574ae2005-03-24 16:22:35 +0000439
Lev Walkin2535a692005-07-02 21:42:40 +0000440 119, 120, 120, 120, 120, 69, 119, 120, 119, 120,
441 119, 120, 120, 119, 120, 120, 120, 119, 120, 120,
442 119, 120, 119, 120, 120, 112, 120, 120, 120, 120,
443 24, 36, 119, 120, 48, 119, 120, 52, 119, 120,
444 119, 120, 119, 120, 120, 120, 120, 119, 120, 119,
445 120, 120, 119, 120, 120, 120, 119, 120, 120, 119,
446 120, 119, 120, 120, 120, 120, 120, 24, 119, 120,
447 119, 120, 120, 120, 120, 75, 119, 120, 77, 119,
448 120, 78, 120, 119, 120, 120, 120, 119, 120, 120,
449 96, 119, 120, 119, 120, 120, 120, 120, 120, 24,
Lev Walkind9574ae2005-03-24 16:22:35 +0000450
Lev Walkin2535a692005-07-02 21:42:40 +0000451 119, 120, 61, 119, 120, 66, 120, 120, 67, 120,
452 119, 120, 83, 120, 120, 91, 119, 120, 120, 119,
453 120, 104, 120, 120, 120, 114, 120, 24, 119, 120,
454 120, 81, 119, 120, 120, 120, 119, 120, 120, 113,
455 120, 24, 119, 120, 65, 120, 120, 93, 120, 106,
456 119, 120, 110, 120, 24, 55, 119, 120, 85, 120,
457 22, 24
Lev Walkinf15320b2004-06-03 03:38:44 +0000458 } ;
459
Lev Walkin2535a692005-07-02 21:42:40 +0000460static yyconst short int yy_accept[710] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000461 { 0,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Lev Walkin2535a692005-07-02 21:42:40 +0000463 1, 1, 1, 1, 1, 1, 1, 2, 4, 7,
464 9, 12, 15, 18, 20, 23, 25, 28, 30, 33,
465 36, 39, 41, 45, 49, 53, 57, 61, 65, 69,
466 73, 77, 81, 85, 89, 93, 97, 101, 105, 109,
467 113, 117, 120, 123, 126, 128, 131, 134, 137, 141,
468 143, 146, 149, 152, 154, 157, 160, 162, 165, 168,
469 171, 174, 178, 181, 183, 188, 193, 196, 199, 201,
470 203, 206, 206, 207, 208, 209, 209, 210, 210, 211,
471 211, 211, 212, 213, 214, 215, 216, 216, 216, 218,
Lev Walkinf15320b2004-06-03 03:38:44 +0000472
Lev Walkin2535a692005-07-02 21:42:40 +0000473 220, 222, 224, 226, 228, 229, 231, 233, 235, 237,
474 240, 242, 244, 246, 248, 250, 252, 254, 256, 258,
475 259, 260, 262, 264, 266, 268, 270, 272, 274, 276,
476 277, 279, 281, 284, 286, 287, 289, 291, 293, 295,
477 296, 298, 300, 302, 304, 306, 308, 310, 312, 314,
478 315, 317, 319, 320, 321, 323, 323, 324, 324, 324,
479 324, 325, 326, 327, 328, 329, 330, 331, 331, 332,
480 334, 336, 337, 338, 339, 339, 339, 340, 340, 341,
481 341, 341, 341, 342, 343, 344, 346, 347, 349, 352,
482 355, 357, 359, 359, 361, 364, 366, 368, 370, 372,
Lev Walkinf15320b2004-06-03 03:38:44 +0000483
Lev Walkin2535a692005-07-02 21:42:40 +0000484 374, 376, 378, 380, 382, 384, 387, 389, 391, 393,
485 395, 397, 399, 400, 401, 403, 405, 407, 409, 411,
486 413, 415, 418, 421, 423, 424, 426, 428, 430, 431,
487 433, 436, 438, 440, 442, 443, 445, 447, 449, 452,
488 454, 456, 458, 460, 462, 464, 466, 467, 469, 471,
489 473, 474, 475, 476, 478, 479, 479, 479, 480, 481,
490 483, 486, 486, 487, 488, 489, 490, 491, 492, 492,
491 494, 496, 498, 500, 502, 504, 506, 508, 510, 512,
492 514, 516, 518, 520, 522, 524, 526, 528, 530, 532,
493 534, 536, 539, 540, 541, 543, 545, 547, 549, 551,
Lev Walkinf15320b2004-06-03 03:38:44 +0000494
Lev Walkin2535a692005-07-02 21:42:40 +0000495 553, 555, 557, 559, 562, 563, 565, 567, 569, 570,
496 572, 574, 576, 578, 579, 582, 584, 586, 589, 591,
497 593, 595, 598, 601, 603, 604, 606, 608, 610, 612,
498 614, 615, 616, 617, 620, 620, 620, 620, 620, 621,
499 623, 625, 627, 629, 632, 633, 635, 637, 639, 642,
500 644, 646, 648, 650, 652, 654, 656, 658, 660, 662,
501 664, 666, 668, 671, 672, 673, 674, 676, 678, 680,
502 682, 684, 686, 688, 690, 692, 694, 695, 697, 700,
503 702, 703, 705, 705, 707, 709, 710, 712, 714, 716,
504 718, 719, 719, 720, 723, 725, 727, 728, 730, 731,
Lev Walkinf15320b2004-06-03 03:38:44 +0000505
Lev Walkin2535a692005-07-02 21:42:40 +0000506 732, 733, 733, 733, 734, 736, 739, 741, 743, 744,
507 746, 748, 751, 753, 755, 757, 759, 761, 763, 765,
508 767, 769, 771, 774, 776, 778, 780, 782, 783, 784,
509 785, 787, 789, 791, 793, 795, 797, 799, 801, 803,
510 805, 805, 806, 809, 811, 812, 814, 816, 818, 820,
511 821, 823, 825, 828, 831, 832, 834, 835, 838, 840,
512 841, 842, 843, 844, 845, 845, 845, 847, 849, 851,
513 852, 855, 857, 859, 861, 863, 866, 869, 871, 873,
514 876, 878, 880, 882, 885, 887, 889, 890, 891, 892,
515 894, 896, 899, 902, 904, 906, 908, 911, 913, 915,
Lev Walkinf15320b2004-06-03 03:38:44 +0000516
Lev Walkin2535a692005-07-02 21:42:40 +0000517 917, 918, 920, 921, 924, 926, 929, 932, 933, 935,
518 937, 938, 940, 941, 943, 945, 946, 947, 948, 949,
519 949, 951, 953, 955, 956, 958, 960, 962, 964, 966,
520 969, 971, 973, 976, 978, 981, 982, 983, 984, 985,
521 987, 990, 993, 996, 998, 1000, 1001, 1003, 1004, 1007,
522 1008, 1010, 1011, 1013, 1016, 1017, 1019, 1020, 1022, 1023,
523 1024, 1025, 1026, 1026, 1026, 1028, 1030, 1033, 1035, 1038,
524 1041, 1043, 1045, 1047, 1047, 1049, 1051, 1052, 1053, 1054,
525 1056, 1058, 1060, 1062, 1063, 1065, 1066, 1067, 1069, 1070,
526 1070, 1072, 1074, 1075, 1078, 1079, 1080, 1081, 1082, 1082,
Lev Walkinf15320b2004-06-03 03:38:44 +0000527
Lev Walkin2535a692005-07-02 21:42:40 +0000528 1083, 1084, 1086, 1089, 1091, 1094, 1096, 1098, 1101, 1103,
529 1104, 1105, 1106, 1109, 1111, 1113, 1114, 1116, 1117, 1118,
530 1120, 1121, 1123, 1125, 1126, 1128, 1129, 1130, 1131, 1132,
531 1135, 1138, 1141, 1143, 1145, 1146, 1147, 1148, 1150, 1152,
532 1153, 1155, 1156, 1157, 1159, 1160, 1162, 1164, 1165, 1166,
533 1167, 1168, 1169, 1171, 1173, 1174, 1175, 1176, 1179, 1182,
534 1184, 1186, 1187, 1188, 1190, 1191, 1194, 1196, 1197, 1198,
535 1199, 1200, 1201, 1203, 1206, 1208, 1209, 1211, 1213, 1215,
536 1216, 1219, 1220, 1222, 1224, 1225, 1226, 1228, 1229, 1231,
537 1232, 1235, 1236, 1237, 1239, 1240, 1242, 1243, 1245, 1247,
538
539 1248, 1250, 1253, 1255, 1256, 1259, 1261, 1263, 1263
Lev Walkinf15320b2004-06-03 03:38:44 +0000540 } ;
541
542static yyconst int yy_ec[256] =
543 { 0,
544 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
Lev Walkin2535a692005-07-02 21:42:40 +0000545 4, 4, 5, 1, 1, 1, 1, 1, 1, 1,
Lev Walkinf15320b2004-06-03 03:38:44 +0000546 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
Lev Walkin2535a692005-07-02 21:42:40 +0000547 1, 2, 6, 7, 1, 1, 1, 8, 9, 10,
548 10, 11, 1, 12, 13, 14, 15, 16, 17, 18,
549 18, 19, 20, 21, 18, 22, 23, 24, 25, 26,
550 27, 1, 1, 10, 28, 29, 30, 31, 32, 33,
551 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
552 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
553 10, 1, 54, 55, 1, 1, 56, 57, 58, 59,
Lev Walkinf15320b2004-06-03 03:38:44 +0000554
Lev Walkin2535a692005-07-02 21:42:40 +0000555 60, 61, 62, 63, 64, 65, 61, 66, 67, 68,
556 69, 70, 61, 71, 72, 73, 74, 75, 61, 76,
557 61, 77, 78, 79, 80, 1, 1, 1, 1, 1,
Lev Walkinf15320b2004-06-03 03:38:44 +0000558 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, 1, 1, 1, 1, 1,
562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565
566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1
572 } ;
573
Lev Walkin2535a692005-07-02 21:42:40 +0000574static yyconst int yy_meta[81] =
Lev Walkinf15320b2004-06-03 03:38:44 +0000575 { 0,
Lev Walkin2535a692005-07-02 21:42:40 +0000576 1, 2, 3, 3, 3, 1, 4, 5, 6, 1,
577 1, 1, 7, 1, 1, 8, 8, 8, 8, 8,
578 8, 8, 8, 9, 1, 1, 9, 10, 10, 10,
579 10, 10, 10, 11, 11, 11, 11, 11, 11, 11,
Lev Walkinc603f102005-01-23 09:51:44 +0000580 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
Lev Walkin2535a692005-07-02 21:42:40 +0000581 11, 11, 11, 1, 1, 11, 11, 11, 11, 11,
582 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
583 11, 11, 11, 11, 11, 11, 11, 12, 1, 12
584 } ;
Lev Walkinf15320b2004-06-03 03:38:44 +0000585
Lev Walkin2535a692005-07-02 21:42:40 +0000586static yyconst short int yy_base[737] =
587 { 0,
588 0, 0, 78, 81, 84, 95, 90, 92, 89, 99,
589 87, 101, 181, 261, 119, 131, 1569, 1559, 138, 146,
590 1557, 1553, 333, 154, 4166, 155, 1546, 101, 4166, 198,
591 1535, 4166, 398, 198, 255, 263, 204, 279, 447, 183,
592 304, 453, 280, 469, 491, 492, 509, 525, 540, 543,
593 561, 1545, 608, 0, 4166, 4166, 1544, 1538, 4166, 4166,
594 1532, 1534, 0, 0, 1537, 0, 0, 1519, 4166, 4166,
595 4166, 0, 4166, 4166, 631, 710, 0, 113, 127, 223,
596 4166, 1534, 198, 0, 1531, 1528, 1516, 155, 1514, 645,
597 1517, 1512, 598, 1509, 4166, 647, 1493, 734, 648, 649,
Lev Walkinf15320b2004-06-03 03:38:44 +0000598
Lev Walkin2535a692005-07-02 21:42:40 +0000599 664, 700, 665, 699, 1495, 715, 728, 731, 739, 783,
600 786, 804, 801, 817, 825, 840, 846, 843, 861, 185,
601 96, 872, 878, 889, 895, 906, 917, 923, 934, 156,
602 947, 950, 963, 971, 191, 974, 987, 998, 1011, 215,
603 1027, 1033, 1044, 1050, 1061, 1067, 1078, 1084, 1095, 100,
604 1101, 1117, 216, 241, 1116, 0, 1493, 0, 1150, 1162,
605 0, 4166, 1492, 4166, 0, 4166, 0, 1477, 0, 1461,
606 295, 0, 420, 4166, 1488, 0, 1486, 0, 1485, 91,
607 1461, 141, 1170, 4166, 4166, 1181, 1480, 1166, 1167, 1182,
608 1183, 1230, 1467, 1238, 1241, 1254, 1262, 1270, 1278, 1291,
Lev Walkinf15320b2004-06-03 03:38:44 +0000609
Lev Walkin2535a692005-07-02 21:42:40 +0000610 1299, 1302, 1323, 1324, 1339, 1345, 1356, 1362, 1373, 1379,
611 1390, 1401, 229, 212, 1414, 1422, 1425, 1440, 1443, 1446,
612 1471, 1468, 1474, 1489, 245, 1492, 1507, 1513, 270, 1524,
613 1535, 1541, 1552, 1563, 244, 1574, 1580, 1591, 1597, 1612,
614 1613, 1628, 1639, 1645, 1660, 1666, 278, 1677, 1688, 1701,
615 338, 286, 439, 1704, 1463, 475, 511, 1461, 4166, 96,
616 1430, 1405, 1445, 1443, 4166, 4166, 4166, 4166, 480, 1712,
617 1725, 1736, 1742, 1753, 1759, 1775, 1776, 1791, 1799, 1807,
618 1823, 1820, 1831, 1844, 1847, 1862, 1868, 1879, 1885, 1896,
619 1911, 1917, 288, 268, 1928, 1934, 1949, 1950, 1965, 1971,
Lev Walkinf15320b2004-06-03 03:38:44 +0000620
Lev Walkin2535a692005-07-02 21:42:40 +0000621 1986, 1999, 2007, 2015, 316, 2030, 2033, 2046, 297, 2054,
622 2069, 2072, 2090, 264, 2087, 2093, 2110, 2116, 2127, 2133,
623 2144, 2150, 2161, 2167, 471, 2182, 2183, 2200, 2199, 2216,
624 440, 343, 492, 2217, 590, 670, 631, 2254, 1439, 456,
625 2239, 2254, 2260, 2271, 496, 2277, 2292, 2295, 2303, 2316,
626 2324, 2332, 2345, 2353, 2366, 2374, 2382, 2390, 2405, 2411,
627 2422, 2428, 2443, 106, 478, 530, 2444, 2464, 2461, 2482,
628 2481, 2497, 2503, 2514, 2520, 2535, 491, 2538, 2541, 2558,
629 498, 2559, 321, 2574, 2580, 304, 2595, 2596, 2611, 2612,
630 534, 493, 514, 2627, 2633, 2644, 585, 2655, 552, 586,
Lev Walkinf15320b2004-06-03 03:38:44 +0000631
Lev Walkin2535a692005-07-02 21:42:40 +0000632 510, 697, 728, 4166, 312, 2661, 2677, 2683, 663, 2694,
633 2700, 2711, 2717, 2733, 2734, 2749, 2760, 2766, 2783, 2789,
634 2800, 2806, 2817, 2823, 2834, 2840, 2856, 512, 538, 702,
635 2857, 2872, 2878, 2889, 2895, 2910, 2916, 2927, 2942, 2948,
636 524, 545, 2959, 2975, 640, 2972, 1407, 2983, 2996, 696,
637 3004, 3019, 3022, 3025, 749, 1414, 238, 3040, 3043, 515,
638 609, 701, 546, 638, 781, 3078, 1398, 3063, 3076, 748,
639 3079, 3094, 3100, 3111, 3117, 3128, 3134, 3145, 3156, 3162,
640 3173, 3179, 3190, 3201, 3207, 3218, 775, 713, 806, 3224,
641 3235, 3246, 3252, 3263, 3269, 3284, 3285, 3300, 3306, 1396,
Lev Walkinf15320b2004-06-03 03:38:44 +0000642
Lev Walkin2535a692005-07-02 21:42:40 +0000643 805, 3317, 807, 3323, 1402, 3334, 3345, 840, 3351, 3366,
644 810, 1394, 849, 3372, 1410, 835, 824, 822, 850, 1029,
645 119, 3383, 3398, 846, 3404, 3415, 3426, 3432, 3443, 3449,
646 3464, 3467, 3475, 3488, 3491, 804, 668, 884, 899, 3506,
647 3512, 3523, 3529, 3540, 3546, 901, 1380, 910, 3557, 844,
648 1370, 909, 3577, 3574, 916, 1348, 914, 3580, 926, 942,
649 961, 972, 1149, 1214, 892, 3595, 3601, 1370, 3612, 3618,
650 3633, 3634, 3649, 550, 3655, 3666, 938, 988, 954, 1362,
651 3672, 3683, 3694, 1007, 1333, 967, 986, 1305, 983, 1011,
652 1331, 1286, 992, 3700, 1052, 1036, 1038, 1045, 1320, 4166,
Lev Walkinf15320b2004-06-03 03:38:44 +0000653
Lev Walkin2535a692005-07-02 21:42:40 +0000654 1299, 3711, 3717, 3732, 3733, 3748, 1254, 3749, 3764, 1054,
655 1010, 1065, 3770, 3781, 3792, 1073, 1251, 1075, 1051, 1230,
656 1047, 1228, 1193, 1135, 1215, 1088, 1162, 1163, 1159, 3798,
657 3809, 3815, 1159, 3826, 1164, 1081, 1200, 3837, 3843, 1223,
658 1161, 1207, 1248, 1088, 1189, 1102, 1098, 1222, 1191, 1252,
659 1293, 1064, 1056, 3858, 1274, 1263, 1295, 3859, 3874, 1048,
660 1010, 1345, 1029, 929, 1291, 0, 934, 1347, 1360, 1322,
661 1363, 912, 908, 3875, 937, 1221, 931, 888, 918, 1190,
662 0, 1364, 829, 842, 1366, 1385, 825, 791, 713, 1357,
663 0, 1285, 1415, 639, 1433, 670, 637, 621, 576, 1379,
Lev Walkinf15320b2004-06-03 03:38:44 +0000664
Lev Walkin2535a692005-07-02 21:42:40 +0000665 336, 0, 236, 122, 0, 132, 0, 4166, 3923, 3935,
666 3947, 3959, 3971, 3983, 3995, 4006, 4010, 4021, 4033, 4045,
667 4056, 4067, 4078, 4083, 4088, 4092, 4097, 4101, 4105, 4109,
668 4120, 4126, 4136, 4143, 4150, 4157
669 } ;
Lev Walkinf15320b2004-06-03 03:38:44 +0000670
Lev Walkin2535a692005-07-02 21:42:40 +0000671static yyconst short int yy_def[737] =
672 { 0,
673 708, 1, 709, 709, 709, 709, 710, 710, 711, 711,
674 712, 712, 713, 713, 714, 714, 708, 708, 708, 708,
675 708, 715, 708, 716, 708, 708, 708, 708, 708, 708,
676 708, 708, 708, 33, 33, 33, 33, 33, 33, 33,
677 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
678 33, 717, 708, 718, 708, 708, 708, 708, 708, 708,
679 708, 708, 719, 719, 708, 720, 720, 708, 708, 708,
680 708, 721, 708, 708, 722, 722, 723, 708, 708, 23,
681 708, 708, 708, 715, 715, 708, 724, 708, 725, 716,
682 716, 708, 708, 708, 708, 708, 708, 726, 33, 33,
Lev Walkinf15320b2004-06-03 03:38:44 +0000683
Lev Walkin2535a692005-07-02 21:42:40 +0000684 33, 33, 33, 33, 727, 33, 33, 33, 33, 33,
685 33, 33, 33, 33, 33, 33, 33, 33, 33, 727,
686 727, 33, 33, 33, 33, 33, 33, 33, 33, 727,
687 33, 33, 33, 33, 727, 33, 33, 33, 33, 727,
688 33, 33, 33, 33, 33, 33, 33, 33, 33, 727,
689 33, 33, 727, 727, 33, 728, 717, 53, 708, 708,
690 718, 708, 708, 708, 719, 708, 720, 708, 721, 76,
691 76, 723, 708, 708, 708, 729, 724, 730, 725, 708,
692 708, 731, 708, 708, 708, 726, 732, 33, 33, 33,
693 33, 33, 732, 33, 33, 33, 33, 33, 33, 33,
Lev Walkinf15320b2004-06-03 03:38:44 +0000694
Lev Walkin2535a692005-07-02 21:42:40 +0000695 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
696 33, 33, 727, 727, 33, 33, 33, 33, 33, 33,
697 33, 33, 33, 33, 727, 33, 33, 33, 727, 33,
698 33, 33, 33, 33, 727, 33, 33, 33, 33, 33,
699 33, 33, 33, 33, 33, 33, 727, 33, 33, 33,
700 727, 727, 727, 33, 728, 733, 734, 708, 708, 76,
701 76, 708, 729, 730, 708, 708, 708, 708, 731, 33,
702 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
703 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
704 33, 33, 727, 727, 33, 33, 33, 33, 33, 33,
Lev Walkinf15320b2004-06-03 03:38:44 +0000705
Lev Walkin2535a692005-07-02 21:42:40 +0000706 33, 33, 33, 33, 727, 33, 33, 33, 727, 33,
707 33, 33, 33, 727, 33, 33, 33, 33, 33, 33,
708 33, 33, 33, 33, 727, 33, 33, 33, 33, 33,
709 727, 727, 727, 33, 733, 733, 734, 708, 708, 76,
710 33, 33, 33, 33, 727, 33, 33, 33, 33, 33,
711 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
712 33, 33, 33, 727, 727, 727, 33, 33, 33, 33,
713 33, 33, 33, 33, 33, 33, 727, 33, 33, 33,
714 727, 33, 186, 33, 33, 727, 33, 33, 33, 33,
715 727, 186, 727, 33, 33, 33, 727, 33, 727, 727,
Lev Walkinf15320b2004-06-03 03:38:44 +0000716
Lev Walkin2535a692005-07-02 21:42:40 +0000717 727, 708, 735, 708, 76, 33, 33, 33, 727, 33,
718 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
719 33, 33, 33, 33, 33, 33, 33, 727, 727, 727,
720 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
721 186, 727, 33, 33, 727, 33, 186, 33, 33, 727,
722 33, 33, 33, 33, 727, 186, 727, 33, 33, 727,
723 727, 727, 727, 727, 735, 708, 76, 33, 33, 727,
724 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
725 33, 33, 33, 33, 33, 33, 727, 727, 727, 33,
726 33, 33, 33, 33, 33, 33, 33, 33, 33, 186,
Lev Walkinf15320b2004-06-03 03:38:44 +0000727
Lev Walkin2535a692005-07-02 21:42:40 +0000728 727, 33, 727, 33, 186, 33, 33, 727, 33, 33,
729 727, 186, 727, 33, 727, 727, 727, 727, 727, 736,
730 76, 33, 33, 727, 33, 33, 33, 33, 33, 33,
731 33, 33, 33, 33, 33, 727, 727, 727, 727, 33,
732 33, 33, 33, 33, 33, 727, 186, 727, 33, 727,
733 186, 727, 33, 33, 727, 186, 727, 33, 727, 727,
734 727, 727, 736, 736, 76, 33, 33, 727, 33, 33,
735 33, 33, 33, 186, 33, 33, 727, 727, 727, 727,
736 33, 33, 33, 727, 186, 727, 727, 186, 727, 186,
737 727, 186, 727, 33, 727, 727, 727, 727, 708, 708,
Lev Walkinf15320b2004-06-03 03:38:44 +0000738
Lev Walkin2535a692005-07-02 21:42:40 +0000739 721, 33, 33, 33, 33, 33, 186, 33, 33, 727,
740 727, 727, 33, 33, 33, 727, 186, 727, 727, 186,
741 727, 186, 186, 727, 727, 727, 727, 727, 721, 33,
742 33, 33, 186, 33, 727, 727, 727, 33, 33, 727,
743 186, 727, 727, 186, 727, 186, 186, 727, 727, 727,
744 727, 721, 186, 33, 727, 727, 727, 33, 33, 727,
745 186, 727, 727, 186, 727, 186, 186, 727, 727, 727,
746 727, 721, 186, 33, 727, 727, 727, 186, 727, 727,
747 186, 727, 186, 727, 727, 727, 727, 721, 186, 727,
748 186, 727, 727, 186, 727, 727, 721, 186, 727, 727,
Lev Walkinf15320b2004-06-03 03:38:44 +0000749
Lev Walkin2535a692005-07-02 21:42:40 +0000750 727, 186, 727, 721, 186, 727, 721, 0, 708, 708,
751 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
752 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
753 708, 708, 708, 708, 708, 708
754 } ;
Lev Walkinf15320b2004-06-03 03:38:44 +0000755
Lev Walkin2535a692005-07-02 21:42:40 +0000756static yyconst short int yy_nxt[4247] =
757 { 0,
758 18, 19, 20, 19, 19, 21, 22, 23, 24, 25,
759 18, 25, 26, 27, 28, 29, 30, 30, 30, 30,
760 30, 30, 30, 31, 21, 32, 32, 33, 34, 35,
761 36, 37, 38, 39, 40, 41, 40, 40, 40, 42,
762 43, 44, 45, 40, 46, 47, 48, 49, 50, 51,
763 40, 40, 40, 21, 21, 52, 52, 52, 52, 52,
764 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
765 52, 52, 52, 52, 52, 52, 52, 53, 21, 25,
766 55, 56, 56, 55, 56, 56, 55, 56, 56, 67,
767 57, 64, 60, 57, 60, 65, 58, 55, 56, 56,
Lev Walkinf15320b2004-06-03 03:38:44 +0000768
Lev Walkin2535a692005-07-02 21:42:40 +0000769 61, 64, 61, 67, 62, 65, 62, 58, 193, 82,
770 68, 95, 193, 69, 173, 173, 173, 173, 193, 265,
771 78, 79, 78, 78, 68, 266, 80, 69, 173, 173,
772 173, 173, 78, 79, 78, 78, 170, 340, 80, 83,
773 83, 83, 83, 268, 193, 268, 82, 83, 83, 83,
774 83, 214, 565, 269, 82, 90, 90, 90, 90, 170,
775 707, 428, 82, 82, 70, 247, 71, 92, 193, 90,
776 90, 93, 93, 93, 93, 93, 93, 93, 70, 86,
777 71, 72, 73, 74, 73, 73, 72, 72, 72, 72,
778 72, 72, 72, 72, 72, 72, 32, 193, 81, 83,
Lev Walkinf15320b2004-06-03 03:38:44 +0000779
Lev Walkin2535a692005-07-02 21:42:40 +0000780 83, 83, 83, 193, 72, 72, 72, 72, 32, 88,
781 81, 99, 76, 96, 96, 96, 96, 96, 96, 96,
782 96, 99, 225, 99, 193, 99, 99, 193, 193, 106,
783 99, 708, 99, 107, 72, 72, 99, 108, 99, 109,
784 99, 193, 99, 115, 116, 99, 99, 708, 193, 110,
785 193, 99, 213, 193, 117, 229, 193, 193, 73, 72,
786 73, 72, 73, 74, 73, 73, 72, 72, 72, 72,
787 72, 72, 72, 72, 72, 72, 193, 708, 235, 251,
788 193, 294, 193, 99, 72, 72, 72, 72, 293, 111,
789 193, 99, 76, 112, 114, 99, 113, 99, 193, 252,
Lev Walkinf15320b2004-06-03 03:38:44 +0000790
Lev Walkin2535a692005-07-02 21:42:40 +0000791 193, 99, 99, 99, 305, 99, 118, 99, 99, 193,
792 99, 314, 253, 513, 72, 72, 193, 99, 99, 99,
793 99, 99, 99, 119, 260, 261, 99, 129, 193, 309,
794 365, 122, 99, 708, 123, 170, 386, 325, 73, 72,
795 73, 82, 99, 124, 125, 332, 99, 467, 193, 126,
796 193, 99, 170, 130, 381, 193, 447, 86, 364, 450,
797 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
798 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
799 87, 87, 87, 87, 87, 87, 377, 88, 89, 89,
800 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
Lev Walkinf15320b2004-06-03 03:38:44 +0000801
Lev Walkin2535a692005-07-02 21:42:40 +0000802 89, 89, 89, 89, 89, 89, 89, 89, 89, 89,
803 98, 400, 331, 99, 99, 99, 99, 99, 99, 99,
804 99, 173, 173, 173, 173, 99, 100, 99, 99, 99,
805 99, 99, 99, 99, 99, 99, 101, 99, 102, 99,
806 103, 99, 99, 99, 99, 104, 99, 99, 99, 99,
807 99, 193, 193, 105, 105, 105, 105, 105, 105, 105,
808 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
809 105, 105, 105, 105, 105, 99, 335, 335, 335, 335,
810 127, 99, 268, 193, 268, 99, 405, 99, 128, 99,
811 193, 99, 269, 99, 99, 99, 170, 131, 132, 399,
Lev Walkinf15320b2004-06-03 03:38:44 +0000812
Lev Walkin2535a692005-07-02 21:42:40 +0000813 99, 133, 333, 193, 193, 708, 120, 99, 193, 99,
814 193, 134, 337, 337, 337, 337, 99, 121, 136, 99,
815 99, 137, 193, 141, 193, 135, 193, 193, 456, 138,
816 99, 99, 99, 99, 99, 139, 708, 99, 99, 99,
817 142, 429, 193, 393, 143, 146, 193, 99, 401, 99,
818 193, 99, 147, 99, 442, 144, 99, 193, 193, 500,
819 145, 140, 708, 99, 193, 99, 409, 99, 99, 148,
820 445, 99, 99, 457, 515, 464, 149, 487, 99, 607,
821 151, 99, 99, 99, 150, 99, 152, 99, 193, 99,
822 99, 335, 335, 335, 335, 488, 155, 193, 193, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000823
Lev Walkin2535a692005-07-02 21:42:40 +0000824 430, 99, 501, 99, 455, 518, 154, 153, 99, 158,
825 158, 158, 158, 183, 183, 183, 183, 183, 183, 183,
826 183, 193, 462, 159, 159, 159, 159, 159, 159, 160,
827 160, 169, 337, 337, 337, 337, 169, 169, 169, 169,
828 169, 169, 169, 169, 169, 169, 90, 90, 90, 90,
829 193, 460, 193, 180, 169, 169, 169, 169, 463, 705,
830 90, 90, 96, 96, 96, 96, 96, 96, 96, 96,
831 503, 402, 402, 402, 402, 193, 99, 99, 704, 516,
832 193, 403, 193, 702, 169, 169, 99, 99, 99, 99,
833 99, 99, 99, 99, 188, 99, 99, 519, 402, 402,
Lev Walkinf15320b2004-06-03 03:38:44 +0000834
Lev Walkin2535a692005-07-02 21:42:40 +0000835 402, 402, 189, 99, 99, 99, 99, 191, 193, 169,
836 169, 99, 99, 193, 193, 169, 169, 169, 169, 169,
837 169, 169, 169, 169, 169, 193, 470, 99, 99, 465,
838 465, 465, 465, 169, 169, 169, 169, 99, 99, 99,
839 99, 99, 99, 99, 578, 192, 99, 99, 194, 404,
840 171, 190, 508, 99, 698, 99, 99, 99, 538, 99,
841 193, 193, 99, 169, 169, 489, 99, 99, 99, 99,
842 99, 99, 517, 196, 195, 99, 404, 99, 99, 99,
843 197, 99, 465, 465, 465, 465, 99, 193, 169, 187,
844 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
Lev Walkinf15320b2004-06-03 03:38:44 +0000845
Lev Walkin2535a692005-07-02 21:42:40 +0000846 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
847 187, 99, 511, 198, 99, 524, 193, 193, 193, 193,
848 536, 99, 193, 99, 99, 99, 99, 199, 99, 99,
849 99, 200, 99, 99, 193, 697, 193, 193, 537, 99,
850 201, 202, 99, 99, 99, 99, 99, 193, 99, 203,
851 548, 99, 193, 204, 193, 99, 193, 99, 193, 99,
852 694, 193, 193, 99, 99, 99, 550, 99, 99, 205,
853 206, 99, 99, 539, 99, 208, 577, 555, 99, 560,
854 99, 211, 99, 99, 99, 99, 99, 207, 209, 99,
855 99, 215, 210, 99, 557, 562, 193, 561, 559, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000856
Lev Walkin2535a692005-07-02 21:42:40 +0000857 99, 99, 212, 99, 601, 552, 99, 568, 99, 216,
858 99, 193, 99, 193, 99, 587, 99, 99, 99, 99,
859 99, 193, 193, 99, 218, 99, 193, 99, 193, 99,
860 193, 217, 170, 99, 99, 99, 99, 99, 193, 691,
861 219, 220, 99, 193, 99, 99, 99, 221, 99, 193,
862 193, 99, 689, 99, 193, 99, 579, 99, 688, 99,
863 580, 99, 99, 223, 99, 99, 193, 222, 589, 683,
864 99, 584, 224, 193, 99, 99, 99, 591, 99, 193,
865 681, 99, 586, 226, 193, 99, 593, 99, 99, 99,
866 99, 99, 99, 595, 99, 193, 227, 99, 193, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000867
Lev Walkin2535a692005-07-02 21:42:40 +0000868 193, 99, 99, 99, 193, 99, 597, 596, 610, 99,
869 99, 99, 99, 99, 99, 99, 99, 228, 99, 193,
870 230, 99, 193, 708, 612, 99, 99, 99, 621, 99,
871 563, 563, 563, 563, 99, 231, 99, 618, 99, 99,
872 99, 193, 233, 619, 598, 232, 234, 611, 193, 99,
873 193, 99, 622, 99, 236, 99, 678, 193, 99, 193,
874 193, 99, 624, 193, 193, 237, 193, 99, 636, 99,
875 616, 99, 99, 99, 99, 99, 238, 193, 99, 239,
876 99, 626, 99, 243, 99, 193, 99, 193, 99, 99,
877 99, 99, 99, 193, 241, 99, 240, 99, 680, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000878
Lev Walkin2535a692005-07-02 21:42:40 +0000879 193, 242, 673, 99, 672, 99, 99, 99, 99, 99,
880 627, 244, 99, 625, 99, 628, 99, 635, 99, 645,
881 99, 643, 99, 99, 99, 99, 99, 656, 637, 99,
882 667, 245, 666, 99, 664, 99, 248, 246, 642, 99,
883 640, 99, 99, 99, 99, 99, 249, 193, 99, 250,
884 563, 563, 563, 563, 99, 99, 99, 99, 99, 99,
885 649, 256, 254, 99, 99, 160, 160, 160, 160, 160,
886 160, 160, 160, 257, 193, 193, 193, 160, 160, 160,
887 160, 160, 160, 160, 160, 183, 183, 183, 183, 183,
888 183, 183, 183, 98, 99, 99, 661, 270, 648, 653,
Lev Walkinf15320b2004-06-03 03:38:44 +0000889
Lev Walkin2535a692005-07-02 21:42:40 +0000890 652, 193, 193, 193, 99, 99, 99, 99, 99, 99,
891 99, 99, 193, 99, 99, 599, 599, 599, 599, 193,
892 99, 271, 99, 99, 99, 99, 651, 193, 647, 99,
893 99, 655, 650, 193, 193, 193, 187, 187, 187, 187,
894 187, 187, 187, 187, 187, 187, 187, 187, 187, 187,
895 187, 187, 187, 187, 187, 187, 187, 187, 99, 665,
896 193, 669, 692, 646, 193, 644, 99, 657, 99, 99,
897 99, 272, 99, 273, 662, 193, 99, 99, 99, 99,
898 99, 99, 99, 99, 660, 99, 193, 690, 99, 668,
899 99, 641, 99, 600, 99, 633, 99, 193, 99, 274,
Lev Walkinf15320b2004-06-03 03:38:44 +0000900
Lev Walkin2535a692005-07-02 21:42:40 +0000901 275, 99, 99, 193, 99, 193, 99, 193, 99, 99,
902 99, 663, 99, 277, 276, 670, 99, 99, 99, 99,
903 99, 599, 599, 599, 599, 99, 676, 99, 629, 99,
904 99, 99, 623, 99, 193, 675, 278, 99, 99, 99,
905 99, 279, 99, 193, 99, 620, 99, 280, 281, 99,
906 282, 99, 99, 700, 682, 284, 677, 193, 283, 193,
907 671, 99, 99, 99, 99, 99, 99, 99, 617, 193,
908 99, 99, 193, 99, 193, 193, 193, 99, 193, 99,
909 285, 99, 193, 99, 99, 99, 99, 99, 592, 686,
910 99, 193, 99, 287, 99, 286, 99, 193, 99, 600,
Lev Walkinf15320b2004-06-03 03:38:44 +0000911
Lev Walkin2535a692005-07-02 21:42:40 +0000912 99, 99, 99, 99, 99, 588, 679, 99, 684, 99,
913 290, 288, 585, 99, 289, 99, 699, 99, 99, 99,
914 99, 99, 193, 685, 687, 556, 99, 193, 99, 99,
915 99, 693, 99, 695, 551, 291, 547, 99, 521, 99,
916 292, 99, 99, 99, 512, 193, 696, 505, 99, 706,
917 99, 339, 99, 99, 99, 178, 99, 176, 174, 295,
918 99, 99, 296, 297, 99, 99, 298, 99, 99, 99,
919 170, 99, 99, 339, 99, 156, 701, 301, 299, 708,
920 99, 99, 99, 99, 99, 99, 99, 99, 99, 300,
921 99, 302, 193, 99, 703, 266, 99, 178, 176, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000922
Lev Walkin2535a692005-07-02 21:42:40 +0000923 262, 170, 99, 259, 258, 156, 99, 193, 99, 99,
924 99, 99, 99, 99, 99, 99, 99, 99, 99, 185,
925 99, 303, 184, 306, 182, 181, 178, 304, 176, 99,
926 99, 99, 99, 175, 99, 99, 99, 174, 307, 99,
927 174, 99, 168, 166, 95, 99, 164, 99, 308, 99,
928 163, 99, 99, 99, 99, 99, 162, 156, 97, 94,
929 99, 85, 99, 99, 99, 82, 99, 82, 708, 99,
930 310, 99, 708, 99, 708, 99, 708, 99, 708, 99,
931 99, 99, 99, 99, 708, 708, 311, 708, 99, 708,
932 99, 99, 99, 708, 99, 708, 708, 312, 708, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000933
Lev Walkin2535a692005-07-02 21:42:40 +0000934 708, 99, 99, 99, 708, 99, 708, 316, 99, 708,
935 99, 313, 315, 708, 99, 708, 99, 708, 99, 99,
936 99, 99, 99, 708, 708, 99, 708, 99, 708, 99,
937 708, 99, 708, 99, 708, 99, 708, 99, 317, 99,
938 99, 99, 708, 318, 99, 708, 708, 708, 319, 708,
939 99, 99, 99, 99, 99, 99, 99, 708, 708, 99,
940 99, 708, 708, 708, 708, 708, 99, 99, 99, 708,
941 99, 708, 708, 99, 320, 99, 708, 99, 708, 99,
942 708, 99, 708, 99, 321, 99, 99, 99, 99, 708,
943 322, 323, 99, 708, 99, 708, 708, 324, 99, 708,
Lev Walkinf15320b2004-06-03 03:38:44 +0000944
Lev Walkin2535a692005-07-02 21:42:40 +0000945 99, 708, 99, 708, 99, 99, 99, 99, 99, 708,
946 708, 708, 708, 99, 708, 99, 99, 99, 326, 99,
947 327, 708, 330, 708, 99, 328, 99, 708, 99, 99,
948 99, 708, 99, 708, 329, 99, 708, 708, 334, 99,
949 99, 99, 99, 99, 99, 708, 99, 708, 99, 708,
950 99, 99, 341, 99, 99, 708, 708, 708, 708, 99,
951 342, 708, 708, 99, 99, 99, 708, 99, 708, 708,
952 99, 708, 99, 708, 99, 343, 99, 708, 99, 708,
953 99, 99, 344, 99, 99, 708, 708, 99, 708, 99,
954 346, 99, 708, 99, 708, 99, 708, 99, 708, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000955
Lev Walkin2535a692005-07-02 21:42:40 +0000956 99, 99, 347, 99, 99, 348, 99, 708, 708, 708,
957 708, 708, 708, 99, 99, 99, 99, 99, 99, 99,
958 708, 708, 99, 99, 708, 345, 708, 99, 708, 99,
959 708, 99, 708, 99, 708, 99, 349, 99, 99, 99,
960 350, 99, 708, 708, 708, 99, 99, 99, 99, 99,
961 352, 99, 708, 351, 99, 708, 708, 708, 99, 99,
962 99, 99, 99, 99, 708, 99, 708, 353, 708, 99,
963 99, 354, 99, 99, 355, 99, 708, 356, 99, 708,
964 708, 708, 99, 708, 99, 99, 99, 99, 708, 99,
965 99, 99, 708, 357, 99, 708, 99, 708, 708, 708,
Lev Walkinf15320b2004-06-03 03:38:44 +0000966
Lev Walkin2535a692005-07-02 21:42:40 +0000967 99, 708, 99, 708, 99, 708, 99, 99, 99, 99,
968 358, 708, 708, 99, 359, 99, 708, 99, 708, 99,
969 708, 99, 708, 99, 99, 99, 99, 99, 708, 360,
970 708, 708, 99, 708, 99, 708, 361, 708, 99, 99,
971 362, 708, 363, 99, 708, 99, 708, 708, 708, 99,
972 708, 99, 708, 99, 708, 99, 99, 99, 99, 99,
973 708, 708, 99, 708, 99, 708, 99, 708, 99, 708,
974 99, 708, 99, 708, 99, 99, 99, 99, 99, 708,
975 367, 99, 708, 708, 368, 708, 708, 99, 99, 99,
976 99, 99, 99, 99, 369, 708, 99, 99, 371, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000977
Lev Walkin2535a692005-07-02 21:42:40 +0000978 366, 708, 708, 99, 708, 99, 708, 99, 708, 99,
979 708, 99, 370, 99, 99, 372, 708, 375, 99, 373,
980 708, 708, 708, 708, 99, 708, 99, 99, 99, 708,
981 374, 708, 708, 99, 708, 99, 708, 99, 708, 99,
982 708, 99, 708, 99, 708, 99, 99, 99, 708, 99,
983 708, 708, 376, 99, 99, 99, 708, 99, 99, 378,
984 708, 99, 99, 708, 708, 708, 708, 708, 99, 708,
985 99, 99, 99, 99, 99, 99, 708, 99, 708, 379,
986 99, 383, 99, 708, 99, 382, 99, 380, 99, 708,
987 708, 708, 99, 99, 99, 708, 99, 99, 708, 708,
Lev Walkinf15320b2004-06-03 03:38:44 +0000988
Lev Walkin2535a692005-07-02 21:42:40 +0000989 99, 99, 708, 384, 708, 708, 708, 99, 708, 99,
990 99, 99, 99, 708, 99, 99, 99, 385, 99, 99,
991 708, 99, 708, 708, 708, 99, 708, 99, 99, 99,
992 99, 99, 99, 99, 99, 99, 708, 99, 99, 387,
993 99, 388, 708, 708, 99, 708, 708, 708, 99, 708,
994 99, 708, 99, 708, 99, 99, 99, 99, 99, 708,
995 390, 99, 708, 99, 708, 99, 708, 389, 708, 99,
996 708, 99, 99, 99, 99, 99, 708, 708, 99, 392,
997 99, 708, 99, 708, 99, 708, 99, 708, 99, 99,
998 99, 99, 99, 708, 708, 99, 708, 99, 708, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +0000999
Lev Walkin2535a692005-07-02 21:42:40 +00001000 708, 99, 708, 99, 708, 99, 708, 99, 99, 99,
1001 99, 99, 708, 708, 99, 708, 391, 708, 708, 708,
1002 99, 99, 394, 99, 99, 99, 708, 99, 99, 99,
1003 395, 396, 708, 708, 708, 708, 708, 99, 99, 99,
1004 99, 99, 99, 708, 99, 99, 99, 99, 708, 708,
1005 708, 708, 708, 708, 99, 99, 99, 99, 99, 99,
1006 708, 398, 397, 99, 99, 403, 708, 99, 708, 338,
1007 338, 338, 338, 338, 338, 338, 338, 99, 708, 99,
1008 708, 99, 99, 407, 708, 406, 99, 408, 99, 708,
1009 708, 708, 99, 708, 99, 708, 99, 708, 99, 99,
Lev Walkinf15320b2004-06-03 03:38:44 +00001010
Lev Walkin2535a692005-07-02 21:42:40 +00001011 99, 99, 99, 708, 410, 99, 708, 99, 708, 99,
1012 708, 99, 708, 99, 708, 99, 708, 99, 99, 99,
1013 99, 411, 708, 99, 99, 708, 412, 708, 708, 708,
1014 99, 99, 99, 99, 99, 99, 708, 99, 708, 99,
1015 708, 99, 99, 99, 99, 99, 708, 708, 708, 708,
1016 99, 708, 99, 708, 99, 708, 413, 708, 99, 708,
1017 99, 708, 99, 99, 99, 708, 99, 415, 414, 708,
1018 99, 99, 99, 99, 99, 708, 708, 708, 708, 99,
1019 708, 99, 708, 416, 417, 99, 708, 99, 418, 708,
1020 708, 99, 99, 99, 99, 99, 419, 708, 708, 708,
Lev Walkinf15320b2004-06-03 03:38:44 +00001021
Lev Walkin2535a692005-07-02 21:42:40 +00001022 99, 708, 99, 708, 99, 420, 99, 708, 99, 421,
1023 99, 708, 99, 99, 99, 708, 99, 708, 99, 708,
1024 99, 99, 99, 708, 99, 708, 422, 708, 99, 99,
1025 99, 708, 99, 99, 424, 708, 423, 99, 708, 99,
1026 708, 708, 708, 99, 708, 99, 708, 99, 708, 99,
1027 99, 99, 99, 99, 708, 708, 99, 425, 99, 708,
1028 99, 708, 99, 708, 99, 708, 99, 426, 427, 99,
1029 99, 99, 99, 708, 708, 99, 708, 708, 708, 431,
1030 708, 99, 99, 99, 99, 99, 99, 708, 708, 99,
1031 99, 99, 99, 432, 708, 433, 708, 708, 708, 99,
Lev Walkinf59d0752004-08-18 04:59:12 +00001032
Lev Walkin2535a692005-07-02 21:42:40 +00001033 708, 99, 99, 99, 99, 708, 99, 434, 99, 99,
1034 99, 99, 435, 708, 708, 708, 708, 708, 708, 99,
1035 99, 436, 99, 99, 99, 99, 708, 708, 99, 99,
1036 708, 99, 708, 708, 438, 99, 708, 99, 708, 99,
1037 440, 99, 99, 99, 437, 99, 708, 441, 99, 708,
1038 99, 708, 99, 708, 99, 708, 99, 708, 99, 439,
1039 99, 99, 99, 99, 708, 708, 99, 99, 708, 99,
1040 708, 708, 708, 99, 708, 99, 99, 99, 99, 99,
1041 99, 99, 99, 99, 443, 99, 99, 99, 99, 708,
1042 708, 708, 708, 708, 708, 708, 99, 99, 444, 99,
Lev Walkind9574ae2005-03-24 16:22:35 +00001043
Lev Walkin2535a692005-07-02 21:42:40 +00001044 99, 99, 99, 446, 708, 99, 99, 708, 99, 708,
1045 708, 708, 99, 708, 448, 708, 99, 708, 99, 708,
1046 99, 99, 99, 99, 99, 708, 449, 99, 708, 708,
1047 451, 708, 708, 99, 99, 99, 452, 99, 99, 99,
1048 99, 708, 99, 99, 453, 708, 708, 708, 708, 99,
1049 99, 99, 99, 99, 99, 99, 708, 708, 99, 99,
1050 708, 99, 454, 708, 458, 99, 708, 99, 708, 99,
1051 708, 99, 99, 99, 99, 99, 708, 708, 708, 708,
1052 99, 708, 99, 99, 99, 708, 99, 708, 459, 99,
1053 708, 99, 708, 99, 708, 99, 708, 99, 708, 99,
Lev Walkind9574ae2005-03-24 16:22:35 +00001054
Lev Walkin2535a692005-07-02 21:42:40 +00001055 708, 99, 99, 99, 468, 99, 708, 708, 99, 708,
1056 708, 99, 708, 708, 708, 99, 708, 99, 708, 99,
1057 708, 99, 99, 99, 99, 99, 708, 461, 99, 469,
1058 99, 708, 99, 708, 471, 708, 99, 708, 99, 99,
1059 99, 99, 99, 708, 708, 99, 472, 99, 473, 99,
1060 708, 99, 708, 99, 708, 99, 708, 99, 99, 99,
1061 474, 99, 99, 708, 99, 708, 708, 708, 708, 708,
1062 708, 99, 99, 99, 475, 99, 99, 99, 708, 708,
1063 99, 99, 708, 708, 708, 708, 708, 99, 99, 99,
1064 477, 99, 708, 708, 99, 476, 99, 708, 99, 708,
Lev Walkind9574ae2005-03-24 16:22:35 +00001065
Lev Walkin2535a692005-07-02 21:42:40 +00001066 99, 708, 99, 708, 99, 708, 99, 99, 99, 708,
1067 708, 99, 478, 99, 479, 708, 708, 99, 708, 480,
1068 708, 99, 708, 99, 708, 99, 708, 99, 99, 99,
1069 99, 99, 708, 482, 99, 708, 99, 708, 99, 708,
1070 481, 708, 99, 708, 99, 99, 99, 99, 99, 708,
1071 708, 99, 708, 99, 708, 99, 708, 99, 483, 99,
1072 708, 99, 99, 99, 99, 99, 708, 708, 99, 708,
1073 99, 708, 99, 708, 99, 485, 99, 708, 99, 484,
1074 99, 99, 99, 486, 99, 99, 708, 99, 708, 490,
1075 708, 708, 708, 708, 99, 99, 99, 99, 99, 99,
1076
1077 99, 708, 708, 99, 99, 708, 99, 491, 492, 708,
1078 99, 708, 99, 708, 99, 708, 99, 99, 99, 99,
1079 99, 708, 708, 99, 708, 99, 494, 99, 708, 99,
1080 708, 99, 708, 99, 493, 99, 99, 99, 99, 495,
1081 708, 708, 99, 708, 99, 496, 708, 708, 99, 708,
1082 99, 708, 99, 708, 99, 99, 99, 99, 99, 708,
1083 708, 708, 708, 99, 708, 99, 708, 99, 708, 99,
1084 99, 497, 708, 498, 99, 708, 99, 708, 708, 708,
1085 99, 708, 99, 708, 99, 708, 99, 99, 99, 99,
1086 99, 708, 708, 499, 708, 99, 708, 99, 708, 99,
1087
1088 99, 99, 502, 99, 708, 708, 99, 708, 708, 708,
1089 99, 99, 504, 99, 99, 99, 708, 99, 708, 99,
1090 708, 99, 99, 99, 99, 99, 708, 507, 708, 506,
1091 99, 708, 99, 708, 99, 708, 99, 708, 99, 708,
1092 708, 708, 99, 99, 99, 708, 99, 99, 510, 708,
1093 99, 99, 509, 99, 708, 708, 708, 99, 708, 99,
1094 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1095 708, 99, 99, 708, 708, 708, 708, 708, 99, 708,
1096 99, 99, 99, 99, 708, 99, 708, 99, 514, 520,
1097 99, 99, 708, 466, 466, 466, 466, 466, 466, 466,
1098
1099 466, 99, 708, 99, 99, 99, 708, 99, 708, 522,
1100 99, 523, 708, 708, 99, 708, 99, 99, 99, 99,
1101 708, 99, 99, 99, 708, 525, 99, 708, 99, 708,
1102 708, 708, 99, 708, 99, 708, 99, 708, 99, 99,
1103 526, 99, 99, 708, 708, 99, 527, 99, 708, 99,
1104 708, 99, 528, 99, 708, 99, 99, 99, 99, 99,
1105 708, 708, 99, 708, 99, 708, 99, 708, 99, 708,
1106 99, 708, 99, 99, 99, 99, 99, 708, 708, 708,
1107 529, 99, 708, 99, 99, 99, 530, 99, 708, 708,
1108 99, 708, 99, 708, 99, 708, 99, 708, 99, 708,
1109
1110 99, 99, 99, 99, 99, 708, 531, 99, 708, 99,
1111 708, 99, 708, 99, 708, 99, 708, 99, 99, 99,
1112 99, 99, 708, 708, 708, 532, 99, 708, 99, 99,
1113 99, 708, 99, 708, 708, 534, 533, 99, 708, 99,
1114 708, 99, 708, 99, 708, 99, 99, 99, 99, 99,
1115 708, 708, 99, 708, 99, 708, 535, 708, 99, 540,
1116 99, 708, 99, 99, 99, 99, 99, 708, 708, 708,
1117 708, 99, 708, 99, 99, 99, 708, 99, 708, 708,
1118 99, 541, 99, 708, 99, 708, 99, 708, 99, 708,
1119 99, 99, 99, 99, 99, 708, 708, 99, 708, 99,
1120
1121 543, 99, 708, 99, 708, 99, 708, 99, 542, 99,
1122 99, 99, 99, 99, 708, 708, 99, 708, 708, 708,
1123 708, 708, 99, 99, 99, 99, 99, 99, 99, 545,
1124 544, 99, 99, 708, 99, 708, 708, 708, 99, 708,
1125 99, 708, 99, 708, 99, 99, 99, 99, 99, 708,
1126 708, 99, 708, 99, 708, 549, 708, 99, 708, 99,
1127 708, 99, 99, 99, 99, 99, 708, 708, 708, 708,
1128 99, 708, 99, 99, 99, 708, 99, 708, 546, 99,
1129 708, 99, 553, 99, 708, 99, 708, 99, 708, 99,
1130 708, 99, 99, 99, 99, 708, 708, 554, 99, 558,
1131
1132 99, 708, 708, 708, 99, 708, 99, 708, 99, 708,
1133 99, 99, 99, 99, 99, 708, 708, 708, 566, 99,
1134 708, 99, 708, 99, 708, 99, 99, 567, 708, 708,
1135 99, 708, 99, 708, 708, 708, 99, 708, 99, 708,
1136 99, 708, 99, 99, 99, 99, 99, 708, 569, 708,
1137 708, 99, 708, 99, 99, 99, 708, 99, 708, 708,
1138 99, 570, 99, 708, 99, 708, 571, 708, 99, 708,
1139 99, 99, 572, 99, 99, 708, 574, 99, 708, 99,
1140 708, 99, 708, 99, 573, 99, 708, 99, 708, 99,
1141 99, 99, 99, 708, 708, 99, 99, 708, 575, 708,
1142
1143 708, 708, 99, 99, 99, 99, 99, 99, 708, 99,
1144 708, 99, 708, 99, 99, 99, 99, 99, 708, 99,
1145 708, 708, 99, 576, 708, 708, 99, 708, 99, 99,
1146 99, 99, 708, 99, 99, 99, 708, 581, 99, 708,
1147 99, 708, 708, 708, 99, 708, 99, 708, 99, 708,
1148 99, 99, 99, 99, 99, 708, 708, 99, 708, 99,
1149 708, 99, 708, 99, 708, 99, 708, 99, 99, 99,
1150 99, 99, 708, 708, 99, 582, 99, 708, 99, 708,
1151 99, 708, 99, 708, 99, 99, 99, 99, 99, 590,
1152 708, 708, 583, 99, 708, 99, 708, 99, 708, 99,
1153
1154 708, 708, 99, 708, 99, 99, 708, 708, 99, 708,
1155 708, 708, 99, 708, 99, 99, 99, 99, 594, 99,
1156 99, 99, 99, 99, 99, 708, 708, 99, 708, 99,
1157 708, 708, 708, 99, 708, 99, 602, 99, 708, 99,
1158 99, 99, 99, 99, 708, 708, 99, 708, 99, 708,
1159 99, 708, 99, 708, 99, 708, 99, 708, 99, 99,
1160 99, 99, 99, 603, 604, 99, 708, 605, 708, 708,
1161 708, 99, 99, 99, 99, 99, 99, 99, 708, 708,
1162 99, 99, 708, 99, 708, 608, 708, 99, 708, 606,
1163 708, 99, 708, 99, 99, 99, 99, 99, 708, 708,
1164
1165 99, 708, 99, 708, 609, 708, 99, 708, 99, 708,
1166 99, 99, 99, 99, 99, 708, 613, 708, 708, 99,
1167 708, 99, 99, 99, 614, 99, 708, 708, 99, 615,
1168 99, 708, 99, 708, 99, 708, 99, 708, 99, 99,
1169 99, 99, 99, 708, 708, 99, 708, 99, 708, 99,
1170 708, 630, 708, 99, 708, 99, 708, 99, 99, 99,
1171 99, 99, 631, 708, 99, 708, 708, 708, 708, 708,
1172 99, 99, 99, 99, 99, 99, 99, 99, 708, 99,
1173 99, 708, 708, 708, 708, 708, 99, 99, 99, 99,
1174 99, 99, 99, 632, 708, 99, 99, 708, 99, 634,
1175
1176 708, 708, 99, 708, 99, 708, 99, 708, 99, 99,
1177 99, 99, 99, 708, 708, 708, 708, 99, 708, 99,
1178 99, 638, 708, 99, 708, 708, 99, 708, 99, 708,
1179 99, 708, 99, 639, 99, 708, 99, 99, 99, 99,
1180 99, 708, 708, 99, 708, 99, 708, 99, 708, 99,
1181 708, 99, 708, 99, 99, 99, 99, 99, 708, 708,
1182 708, 708, 99, 708, 99, 99, 99, 708, 99, 708,
1183 708, 99, 654, 99, 708, 99, 708, 99, 708, 99,
1184 708, 99, 658, 659, 99, 99, 99, 99, 708, 708,
1185 99, 708, 708, 708, 708, 708, 99, 99, 99, 99,
1186
1187 99, 99, 99, 99, 708, 99, 99, 708, 708, 674,
1188 708, 708, 99, 99, 99, 99, 99, 99, 708, 708,
1189 708, 99, 99, 54, 54, 54, 54, 54, 54, 54,
1190 54, 54, 54, 54, 54, 59, 59, 59, 59, 59,
1191 59, 59, 59, 59, 59, 59, 59, 63, 63, 63,
1192 63, 63, 63, 63, 63, 63, 63, 63, 63, 66,
1193 66, 66, 66, 66, 66, 66, 66, 66, 66, 66,
1194 66, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1195 75, 75, 75, 77, 77, 77, 77, 77, 77, 77,
1196 77, 77, 77, 77, 77, 84, 84, 84, 708, 84,
1197
1198 84, 84, 84, 84, 84, 84, 84, 91, 91, 708,
1199 708, 91, 708, 91, 708, 91, 157, 157, 708, 157,
1200 157, 161, 161, 708, 161, 161, 161, 708, 161, 161,
1201 161, 161, 161, 165, 165, 165, 708, 165, 165, 165,
1202 165, 165, 165, 165, 165, 167, 167, 167, 167, 167,
1203 167, 167, 167, 708, 167, 167, 169, 708, 708, 169,
1204 169, 169, 169, 169, 169, 169, 169, 170, 708, 708,
1205 170, 170, 170, 170, 170, 170, 170, 170, 172, 708,
1206 708, 172, 708, 172, 172, 172, 172, 172, 172, 177,
1207 177, 708, 177, 177, 179, 179, 708, 179, 179, 186,
1208
1209 708, 186, 186, 105, 105, 708, 105, 105, 255, 708,
1210 255, 255, 263, 708, 263, 263, 264, 708, 264, 264,
1211 267, 267, 267, 267, 267, 267, 267, 267, 267, 267,
1212 267, 267, 187, 187, 708, 187, 187, 336, 336, 708,
1213 708, 708, 708, 336, 338, 338, 708, 708, 708, 708,
1214 338, 466, 466, 708, 708, 708, 708, 466, 564, 564,
1215 708, 708, 708, 708, 564, 17, 708, 708, 708, 708,
1216 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1217 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1218 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1219
1220 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1221 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1222 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1223 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1224 708, 708, 708, 708, 708, 708
1225 } ;
1226
1227static yyconst short int yy_chk[4247] =
1228 { 0,
1229 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1230 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1231 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1232 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1233 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1234 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1235 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1236 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1237 3, 3, 3, 4, 4, 4, 5, 5, 5, 11,
1238 3, 9, 7, 4, 8, 9, 5, 6, 6, 6,
1239
1240 7, 10, 8, 12, 7, 10, 8, 6, 121, 28,
1241 11, 28, 150, 11, 78, 78, 78, 78, 364, 180,
1242 15, 15, 15, 15, 12, 180, 15, 12, 79, 79,
1243 79, 79, 16, 16, 16, 16, 260, 260, 16, 19,
1244 19, 19, 19, 182, 706, 182, 19, 20, 20, 20,
1245 20, 121, 521, 182, 20, 24, 24, 24, 24, 521,
1246 704, 364, 24, 26, 11, 150, 11, 26, 130, 24,
1247 24, 26, 26, 26, 26, 26, 26, 26, 12, 88,
1248 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1249 13, 13, 13, 13, 13, 13, 15, 120, 15, 83,
1250
1251 83, 83, 83, 135, 13, 13, 13, 13, 16, 88,
1252 16, 40, 13, 30, 30, 30, 30, 30, 30, 30,
1253 30, 40, 130, 40, 214, 40, 34, 140, 153, 34,
1254 40, 80, 37, 34, 13, 13, 34, 34, 34, 34,
1255 34, 213, 37, 37, 37, 34, 37, 80, 703, 34,
1256 457, 37, 120, 154, 37, 135, 235, 225, 13, 13,
1257 13, 14, 14, 14, 14, 14, 14, 14, 14, 14,
1258 14, 14, 14, 14, 14, 14, 314, 80, 140, 153,
1259 294, 214, 229, 35, 14, 14, 14, 14, 213, 35,
1260 247, 36, 14, 35, 36, 35, 35, 35, 252, 154,
1261
1262 293, 36, 35, 36, 225, 36, 38, 38, 43, 309,
1263 36, 235, 154, 457, 14, 14, 386, 38, 43, 38,
1264 43, 38, 43, 38, 171, 171, 38, 43, 305, 229,
1265 294, 41, 41, 383, 41, 171, 314, 247, 14, 14,
1266 14, 23, 41, 41, 41, 252, 41, 405, 701, 41,
1267 251, 41, 405, 43, 309, 332, 383, 23, 293, 386,
1268 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1269 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1270 23, 23, 23, 23, 23, 23, 305, 23, 23, 23,
1271 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1272
1273 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
1274 33, 332, 251, 33, 33, 33, 33, 33, 33, 33,
1275 33, 173, 173, 173, 173, 33, 33, 33, 33, 33,
1276 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
1277 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
1278 33, 253, 331, 33, 33, 33, 33, 33, 33, 33,
1279 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
1280 33, 33, 33, 33, 33, 39, 256, 256, 256, 256,
1281 42, 42, 269, 325, 269, 39, 340, 39, 42, 39,
1282 365, 42, 269, 42, 39, 42, 340, 44, 44, 331,
1283
1284 42, 44, 253, 377, 333, 392, 39, 44, 345, 44,
1285 381, 44, 257, 257, 257, 257, 44, 39, 45, 45,
1286 46, 45, 401, 46, 428, 44, 393, 460, 392, 45,
1287 46, 45, 46, 45, 46, 45, 441, 47, 45, 46,
1288 47, 365, 366, 325, 47, 48, 391, 47, 333, 47,
1289 429, 47, 48, 48, 377, 47, 47, 442, 463, 441,
1290 47, 45, 574, 48, 399, 48, 345, 48, 49, 48,
1291 381, 50, 48, 393, 460, 401, 48, 428, 49, 574,
1292 49, 50, 49, 50, 48, 50, 49, 49, 699, 51,
1293 50, 335, 335, 335, 335, 429, 51, 397, 400, 51,
1294
1295 366, 51, 442, 51, 391, 463, 50, 49, 51, 53,
1296 53, 53, 53, 93, 93, 93, 93, 93, 93, 93,
1297 93, 461, 399, 53, 53, 53, 53, 53, 53, 53,
1298 53, 75, 337, 337, 337, 337, 75, 75, 75, 75,
1299 75, 75, 75, 75, 75, 75, 90, 90, 90, 90,
1300 464, 397, 445, 90, 75, 75, 75, 75, 400, 698,
1301 90, 90, 96, 96, 96, 96, 96, 96, 96, 96,
1302 445, 336, 336, 336, 336, 409, 99, 100, 697, 461,
1303 537, 336, 696, 694, 75, 75, 99, 100, 99, 100,
1304 99, 100, 101, 103, 100, 99, 100, 464, 402, 402,
1305
1306 402, 402, 101, 103, 101, 103, 101, 103, 450, 75,
1307 76, 101, 103, 462, 430, 76, 76, 76, 76, 76,
1308 76, 76, 76, 76, 76, 488, 409, 104, 102, 403,
1309 403, 403, 403, 76, 76, 76, 76, 104, 102, 104,
1310 102, 104, 102, 106, 537, 104, 104, 102, 106, 336,
1311 76, 102, 450, 106, 689, 106, 107, 106, 488, 108,
1312 470, 455, 106, 76, 76, 430, 107, 109, 107, 108,
1313 107, 108, 462, 108, 107, 107, 402, 109, 108, 109,
1314 109, 109, 465, 465, 465, 465, 109, 487, 76, 98,
1315 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1316
1317 98, 98, 98, 98, 98, 98, 98, 98, 98, 98,
1318 98, 110, 455, 111, 111, 470, 536, 501, 489, 503,
1319 487, 110, 511, 110, 111, 110, 111, 111, 111, 113,
1320 110, 112, 112, 111, 518, 688, 517, 687, 487, 113,
1321 113, 113, 112, 113, 112, 114, 112, 516, 113, 114,
1322 501, 112, 508, 115, 684, 114, 550, 114, 524, 114,
1323 683, 513, 519, 115, 114, 115, 503, 115, 116, 116,
1324 116, 118, 115, 489, 117, 117, 536, 511, 116, 517,
1325 116, 118, 116, 118, 117, 118, 117, 116, 117, 119,
1326 118, 122, 117, 117, 513, 519, 538, 518, 516, 119,
1327
1328 122, 119, 119, 119, 565, 508, 123, 524, 119, 123,
1329 122, 539, 122, 546, 122, 550, 123, 124, 123, 122,
1330 123, 552, 548, 125, 125, 123, 557, 124, 555, 124,
1331 679, 124, 565, 125, 126, 125, 124, 125, 559, 678,
1332 125, 125, 125, 677, 126, 127, 126, 126, 126, 675,
1333 577, 128, 673, 126, 560, 127, 538, 127, 672, 127,
1334 539, 128, 129, 128, 127, 128, 579, 127, 552, 667,
1335 128, 546, 129, 561, 129, 131, 129, 555, 132, 586,
1336 664, 129, 548, 131, 562, 131, 557, 131, 132, 131,
1337 132, 133, 132, 559, 131, 589, 132, 132, 587, 134,
1338
1339 578, 133, 136, 133, 593, 133, 561, 560, 577, 134,
1340 133, 134, 136, 134, 136, 137, 136, 134, 134, 584,
1341 136, 136, 611, 590, 579, 137, 138, 137, 589, 137,
1342 520, 520, 520, 520, 137, 137, 138, 586, 138, 139,
1343 138, 663, 139, 587, 562, 138, 139, 578, 596, 139,
1344 597, 139, 590, 139, 141, 141, 661, 598, 139, 621,
1345 660, 142, 593, 619, 595, 141, 610, 141, 611, 141,
1346 584, 142, 143, 142, 141, 142, 142, 612, 144, 142,
1347 142, 596, 143, 146, 143, 616, 143, 618, 144, 145,
1348 144, 143, 144, 636, 144, 146, 143, 144, 663, 145,
1349
1350 626, 145, 653, 145, 652, 146, 147, 146, 145, 146,
1351 597, 147, 148, 595, 146, 598, 147, 610, 147, 621,
1352 147, 619, 148, 149, 148, 147, 148, 636, 612, 151,
1353 647, 148, 646, 149, 644, 149, 151, 149, 618, 151,
1354 616, 151, 149, 151, 155, 152, 152, 624, 151, 152,
1355 563, 563, 563, 563, 155, 152, 155, 152, 155, 152,
1356 626, 159, 155, 155, 152, 159, 159, 159, 159, 159,
1357 159, 159, 159, 160, 627, 628, 635, 160, 160, 160,
1358 160, 160, 160, 160, 160, 183, 183, 183, 183, 183,
1359 183, 183, 183, 186, 188, 189, 641, 188, 624, 633,
1360
1361 629, 645, 680, 649, 188, 189, 188, 189, 188, 189,
1362 190, 191, 637, 188, 189, 564, 564, 564, 564, 642,
1363 190, 191, 190, 191, 190, 191, 628, 625, 623, 190,
1364 191, 635, 627, 676, 648, 640, 186, 186, 186, 186,
1365 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
1366 186, 186, 186, 186, 186, 186, 186, 186, 192, 645,
1367 643, 649, 680, 622, 650, 620, 194, 637, 192, 195,
1368 192, 192, 192, 194, 642, 656, 194, 192, 194, 195,
1369 194, 195, 196, 195, 640, 194, 655, 676, 195, 648,
1370 197, 617, 196, 564, 196, 607, 196, 692, 198, 196,
1371
1372 197, 196, 197, 665, 197, 651, 199, 657, 198, 197,
1373 198, 643, 198, 199, 198, 650, 199, 198, 199, 200,
1374 199, 599, 599, 599, 599, 199, 656, 201, 601, 200,
1375 202, 200, 592, 200, 670, 655, 200, 201, 200, 201,
1376 202, 201, 202, 591, 202, 588, 201, 202, 202, 202,
1377 203, 203, 204, 692, 665, 204, 657, 662, 203, 668,
1378 651, 203, 204, 203, 204, 203, 204, 205, 585, 690,
1379 203, 204, 669, 206, 580, 671, 682, 205, 685, 205,
1380 205, 205, 568, 206, 207, 206, 205, 206, 556, 670,
1381 208, 700, 206, 208, 207, 207, 207, 686, 207, 599,
1382
1383 208, 209, 208, 207, 208, 551, 662, 210, 668, 208,
1384 210, 209, 547, 209, 209, 209, 690, 210, 211, 210,
1385 209, 210, 515, 669, 671, 512, 210, 693, 211, 212,
1386 211, 682, 211, 685, 505, 211, 500, 211, 467, 212,
1387 212, 212, 215, 212, 456, 695, 686, 447, 212, 700,
1388 216, 339, 215, 217, 215, 264, 215, 263, 262, 215,
1389 216, 215, 216, 217, 216, 217, 217, 217, 218, 216,
1390 261, 219, 217, 258, 220, 255, 693, 220, 218, 193,
1391 218, 219, 218, 219, 220, 219, 220, 218, 220, 219,
1392 219, 221, 187, 220, 695, 181, 222, 179, 177, 221,
1393
1394 175, 170, 223, 168, 163, 157, 222, 105, 222, 221,
1395 222, 221, 223, 221, 223, 222, 223, 224, 221, 97,
1396 226, 223, 94, 226, 92, 91, 89, 224, 87, 224,
1397 226, 224, 226, 86, 226, 227, 224, 85, 227, 226,
1398 82, 228, 68, 65, 62, 227, 61, 227, 228, 227,
1399 58, 228, 230, 228, 227, 228, 57, 52, 31, 27,
1400 228, 22, 230, 231, 230, 21, 230, 18, 17, 232,
1401 230, 230, 0, 231, 0, 231, 0, 231, 0, 232,
1402 233, 232, 231, 232, 0, 0, 232, 0, 232, 0,
1403 233, 234, 233, 0, 233, 0, 0, 233, 0, 233,
1404
1405 0, 234, 236, 234, 0, 234, 0, 237, 237, 0,
1406 234, 234, 236, 0, 236, 0, 236, 0, 237, 238,
1407 237, 236, 237, 0, 0, 239, 0, 237, 0, 238,
1408 0, 238, 0, 238, 0, 239, 0, 239, 238, 239,
1409 240, 241, 0, 240, 239, 0, 0, 0, 241, 0,
1410 240, 241, 240, 241, 240, 241, 242, 0, 0, 240,
1411 241, 0, 0, 0, 0, 0, 242, 243, 242, 0,
1412 242, 0, 0, 244, 242, 242, 0, 243, 0, 243,
1413 0, 243, 0, 244, 243, 244, 243, 244, 245, 0,
1414 244, 245, 244, 0, 246, 0, 0, 246, 245, 0,
1415
1416 245, 0, 245, 0, 246, 248, 246, 245, 246, 0,
1417 0, 0, 0, 246, 0, 248, 249, 248, 248, 248,
1418 248, 0, 250, 0, 248, 248, 249, 0, 249, 250,
1419 249, 0, 254, 0, 249, 249, 0, 0, 254, 250,
1420 270, 250, 254, 250, 254, 0, 254, 0, 250, 0,
1421 270, 254, 270, 271, 270, 0, 0, 0, 0, 270,
1422 271, 0, 0, 271, 272, 271, 0, 271, 0, 0,
1423 273, 0, 271, 0, 272, 272, 272, 0, 272, 0,
1424 273, 274, 273, 272, 273, 0, 0, 275, 0, 273,
1425 275, 274, 0, 274, 0, 274, 0, 275, 0, 275,
1426
1427 274, 275, 276, 276, 277, 277, 275, 0, 0, 0,
1428 0, 0, 0, 276, 277, 276, 277, 276, 277, 278,
1429 0, 0, 276, 277, 0, 274, 0, 279, 0, 278,
1430 0, 278, 0, 278, 0, 280, 278, 279, 278, 279,
1431 279, 279, 0, 0, 0, 280, 279, 280, 282, 280,
1432 281, 281, 0, 280, 280, 0, 0, 0, 282, 283,
1433 282, 281, 282, 281, 0, 281, 0, 282, 0, 283,
1434 281, 283, 284, 283, 284, 285, 0, 285, 283, 0,
1435 0, 0, 284, 0, 284, 285, 284, 285, 0, 285,
1436 286, 284, 0, 286, 285, 0, 287, 0, 0, 0,
1437
1438 286, 0, 286, 0, 286, 0, 287, 288, 287, 286,
1439 287, 0, 0, 289, 288, 287, 0, 288, 0, 288,
1440 0, 288, 0, 289, 290, 289, 288, 289, 0, 289,
1441 0, 0, 289, 0, 290, 0, 290, 0, 290, 291,
1442 290, 0, 291, 290, 0, 292, 0, 0, 0, 291,
1443 0, 291, 0, 291, 0, 292, 295, 292, 291, 292,
1444 0, 0, 296, 0, 292, 0, 295, 0, 295, 0,
1445 295, 0, 296, 0, 296, 295, 296, 297, 298, 0,
1446 296, 296, 0, 0, 297, 0, 0, 297, 298, 297,
1447 298, 297, 298, 299, 298, 0, 297, 298, 300, 300,
1448
1449 295, 0, 0, 299, 0, 299, 0, 299, 0, 300,
1450 0, 300, 299, 300, 301, 300, 0, 302, 300, 301,
1451 0, 0, 0, 0, 301, 0, 301, 302, 301, 0,
1452 301, 0, 0, 301, 0, 303, 0, 302, 0, 302,
1453 0, 302, 0, 304, 0, 303, 302, 303, 0, 303,
1454 0, 0, 303, 304, 303, 304, 0, 304, 306, 306,
1455 0, 307, 304, 0, 0, 0, 0, 0, 306, 0,
1456 306, 307, 306, 307, 308, 307, 0, 306, 0, 307,
1457 307, 311, 310, 0, 308, 310, 308, 308, 308, 0,
1458 0, 0, 310, 308, 310, 0, 310, 311, 0, 0,
1459
1460 312, 310, 0, 312, 0, 0, 0, 311, 0, 311,
1461 312, 311, 312, 0, 312, 315, 311, 313, 313, 312,
1462 0, 316, 0, 0, 0, 315, 0, 315, 313, 315,
1463 313, 316, 313, 316, 315, 316, 0, 313, 317, 316,
1464 316, 317, 0, 0, 318, 0, 0, 0, 317, 0,
1465 317, 0, 317, 0, 318, 319, 318, 317, 318, 0,
1466 320, 320, 0, 318, 0, 319, 0, 319, 0, 319,
1467 0, 320, 321, 320, 319, 320, 0, 0, 322, 324,
1468 320, 0, 321, 0, 321, 0, 321, 0, 322, 323,
1469 322, 321, 322, 0, 0, 324, 0, 322, 0, 323,
1470
1471 0, 323, 0, 323, 0, 324, 0, 324, 323, 324,
1472 326, 327, 0, 0, 324, 0, 321, 0, 0, 0,
1473 326, 327, 326, 327, 326, 327, 0, 329, 328, 326,
1474 327, 328, 0, 0, 0, 0, 0, 329, 328, 329,
1475 328, 329, 328, 0, 330, 334, 329, 328, 0, 0,
1476 0, 0, 0, 0, 330, 334, 330, 334, 330, 334,
1477 0, 330, 329, 330, 334, 338, 0, 341, 0, 338,
1478 338, 338, 338, 338, 338, 338, 338, 341, 0, 341,
1479 0, 341, 342, 342, 0, 341, 341, 343, 343, 0,
1480 0, 0, 342, 0, 342, 0, 342, 0, 343, 344,
1481
1482 343, 342, 343, 0, 346, 346, 0, 343, 0, 344,
1483 0, 344, 0, 344, 0, 346, 0, 346, 344, 346,
1484 347, 347, 0, 348, 346, 0, 348, 0, 0, 0,
1485 347, 349, 347, 348, 347, 348, 0, 348, 0, 347,
1486 0, 349, 348, 349, 350, 349, 0, 0, 0, 0,
1487 349, 0, 351, 0, 350, 0, 350, 0, 350, 0,
1488 352, 0, 351, 350, 351, 0, 351, 352, 351, 0,
1489 352, 351, 352, 353, 352, 0, 0, 0, 0, 352,
1490 0, 354, 0, 353, 354, 353, 0, 353, 354, 0,
1491 0, 354, 353, 354, 355, 354, 355, 0, 0, 0,
1492
1493 354, 0, 356, 0, 355, 356, 355, 0, 355, 356,
1494 357, 0, 356, 355, 356, 0, 356, 0, 358, 0,
1495 357, 356, 357, 0, 357, 0, 357, 0, 358, 357,
1496 358, 0, 358, 359, 359, 0, 358, 358, 0, 360,
1497 0, 0, 0, 359, 0, 359, 0, 359, 0, 360,
1498 361, 360, 359, 360, 0, 0, 362, 360, 360, 0,
1499 361, 0, 361, 0, 361, 0, 362, 361, 362, 361,
1500 362, 363, 367, 0, 0, 362, 0, 0, 0, 367,
1501 0, 363, 367, 363, 367, 363, 367, 0, 0, 369,
1502 363, 367, 368, 368, 0, 368, 0, 0, 0, 369,
1503
1504 0, 369, 368, 369, 368, 0, 368, 369, 369, 371,
1505 370, 368, 370, 0, 0, 0, 0, 0, 0, 371,
1506 370, 371, 370, 371, 370, 372, 0, 0, 371, 370,
1507 0, 373, 0, 0, 373, 372, 0, 372, 0, 372,
1508 375, 373, 374, 373, 372, 373, 0, 376, 375, 0,
1509 373, 0, 374, 0, 374, 0, 374, 0, 375, 374,
1510 375, 374, 375, 376, 0, 0, 378, 375, 0, 379,
1511 0, 0, 0, 376, 0, 376, 378, 376, 378, 379,
1512 378, 379, 376, 379, 378, 378, 380, 382, 379, 0,
1513 0, 0, 0, 0, 0, 0, 380, 382, 380, 382,
1514
1515 380, 382, 384, 382, 0, 380, 382, 0, 385, 0,
1516 0, 0, 384, 0, 384, 0, 384, 0, 385, 0,
1517 385, 384, 385, 387, 388, 0, 385, 385, 0, 0,
1518 387, 0, 0, 387, 388, 387, 388, 387, 388, 389,
1519 390, 0, 387, 388, 389, 0, 0, 0, 0, 389,
1520 390, 389, 390, 389, 390, 394, 0, 0, 389, 390,
1521 0, 395, 390, 0, 395, 394, 0, 394, 0, 394,
1522 0, 395, 396, 395, 394, 395, 0, 0, 0, 0,
1523 395, 0, 396, 398, 396, 0, 396, 0, 396, 406,
1524 0, 396, 0, 398, 0, 398, 0, 398, 0, 406,
1525
1526 0, 406, 398, 406, 407, 407, 0, 0, 406, 0,
1527 0, 408, 0, 0, 0, 407, 0, 407, 0, 407,
1528 0, 408, 410, 408, 407, 408, 0, 398, 411, 408,
1529 408, 0, 410, 0, 410, 0, 410, 0, 411, 412,
1530 411, 410, 411, 0, 0, 413, 411, 411, 413, 412,
1531 0, 412, 0, 412, 0, 413, 0, 413, 412, 413,
1532 414, 414, 415, 0, 413, 0, 0, 0, 0, 0,
1533 0, 414, 415, 414, 415, 414, 415, 416, 0, 0,
1534 414, 415, 0, 0, 0, 0, 0, 416, 417, 416,
1535 417, 416, 0, 0, 418, 416, 416, 0, 417, 0,
1536
1537 417, 0, 417, 0, 418, 0, 418, 417, 418, 0,
1538 0, 419, 418, 418, 419, 0, 0, 420, 0, 420,
1539 0, 419, 0, 419, 0, 419, 0, 420, 421, 420,
1540 419, 420, 0, 422, 422, 0, 420, 0, 421, 0,
1541 421, 0, 421, 0, 422, 423, 422, 421, 422, 0,
1542 0, 424, 0, 422, 0, 423, 0, 423, 424, 423,
1543 0, 424, 425, 424, 423, 424, 0, 0, 426, 0,
1544 424, 0, 425, 0, 425, 426, 425, 0, 426, 425,
1545 426, 425, 426, 427, 427, 431, 0, 426, 0, 431,
1546 0, 0, 0, 0, 427, 431, 427, 431, 427, 431,
1547
1548 432, 0, 0, 427, 431, 0, 433, 432, 433, 0,
1549 432, 0, 432, 0, 432, 0, 433, 434, 433, 432,
1550 433, 0, 0, 435, 0, 433, 435, 434, 0, 434,
1551 0, 434, 0, 435, 434, 435, 434, 435, 436, 436,
1552 0, 0, 435, 0, 437, 437, 0, 0, 436, 0,
1553 436, 0, 436, 0, 437, 438, 437, 436, 437, 0,
1554 0, 0, 0, 437, 0, 438, 0, 438, 0, 438,
1555 439, 438, 0, 439, 438, 0, 440, 0, 0, 0,
1556 439, 0, 439, 0, 439, 0, 440, 443, 440, 439,
1557 440, 0, 0, 440, 0, 440, 0, 443, 0, 443,
1558
1559 446, 443, 444, 444, 0, 0, 443, 0, 0, 0,
1560 446, 448, 446, 444, 446, 444, 0, 444, 0, 446,
1561 0, 448, 444, 448, 449, 448, 0, 449, 0, 448,
1562 448, 0, 451, 0, 449, 0, 449, 0, 449, 0,
1563 0, 0, 451, 449, 451, 0, 451, 452, 452, 0,
1564 453, 451, 451, 454, 0, 0, 0, 452, 0, 452,
1565 453, 452, 453, 454, 453, 454, 452, 454, 458, 453,
1566 0, 459, 454, 0, 0, 0, 0, 0, 458, 0,
1567 458, 459, 458, 459, 0, 459, 0, 458, 459, 466,
1568 459, 468, 0, 466, 466, 466, 466, 466, 466, 466,
1569
1570 466, 468, 0, 468, 469, 468, 0, 471, 0, 468,
1571 468, 469, 0, 0, 469, 0, 469, 471, 469, 471,
1572 0, 471, 472, 469, 0, 472, 471, 0, 473, 0,
1573 0, 0, 472, 0, 472, 0, 472, 0, 473, 474,
1574 473, 472, 473, 0, 0, 475, 474, 473, 0, 474,
1575 0, 474, 475, 474, 0, 475, 476, 475, 474, 475,
1576 0, 0, 477, 0, 475, 0, 476, 0, 476, 0,
1577 476, 0, 477, 478, 477, 476, 477, 0, 0, 0,
1578 478, 477, 0, 478, 479, 478, 479, 478, 0, 0,
1579 480, 0, 478, 0, 479, 0, 479, 0, 479, 0,
1580
1581 480, 481, 480, 479, 480, 0, 481, 482, 0, 480,
1582 0, 481, 0, 481, 0, 481, 0, 482, 483, 482,
1583 481, 482, 0, 0, 0, 482, 482, 0, 483, 484,
1584 483, 0, 483, 0, 0, 485, 483, 483, 0, 484,
1585 0, 484, 0, 484, 0, 485, 486, 485, 484, 485,
1586 0, 0, 490, 0, 485, 0, 486, 0, 486, 490,
1587 486, 0, 490, 491, 490, 486, 490, 0, 0, 0,
1588 0, 490, 0, 491, 492, 491, 0, 491, 0, 0,
1589 493, 491, 491, 0, 492, 0, 492, 0, 492, 0,
1590 493, 494, 493, 492, 493, 0, 0, 495, 0, 493,
1591
1592 495, 494, 0, 494, 0, 494, 0, 495, 494, 495,
1593 494, 495, 496, 497, 0, 0, 495, 0, 0, 0,
1594 0, 0, 496, 497, 496, 497, 496, 497, 498, 498,
1595 496, 496, 497, 0, 499, 0, 0, 0, 498, 0,
1596 498, 0, 498, 0, 499, 502, 499, 498, 499, 0,
1597 0, 504, 0, 499, 0, 502, 0, 502, 0, 502,
1598 0, 504, 506, 504, 502, 504, 0, 0, 0, 0,
1599 504, 0, 506, 507, 506, 0, 506, 0, 499, 509,
1600 0, 506, 509, 507, 0, 507, 0, 507, 0, 509,
1601 0, 509, 507, 509, 510, 0, 0, 510, 509, 514,
1602
1603 514, 0, 0, 0, 510, 0, 510, 0, 510, 0,
1604 514, 522, 514, 510, 514, 0, 0, 0, 522, 514,
1605 0, 522, 0, 522, 0, 522, 523, 523, 0, 0,
1606 522, 0, 525, 0, 0, 0, 523, 0, 523, 0,
1607 523, 0, 525, 526, 525, 523, 525, 0, 525, 0,
1608 0, 525, 0, 526, 527, 526, 0, 526, 0, 0,
1609 528, 526, 526, 0, 527, 0, 527, 0, 527, 0,
1610 528, 529, 528, 527, 528, 0, 531, 530, 0, 528,
1611 0, 529, 0, 529, 529, 529, 0, 530, 0, 530,
1612 529, 530, 531, 0, 0, 532, 530, 0, 532, 0,
1613
1614 0, 0, 531, 533, 531, 532, 531, 532, 0, 532,
1615 0, 531, 0, 533, 532, 533, 534, 533, 0, 535,
1616 0, 0, 533, 534, 0, 0, 534, 0, 534, 535,
1617 534, 535, 0, 535, 540, 534, 0, 540, 535, 0,
1618 541, 0, 0, 0, 540, 0, 540, 0, 540, 0,
1619 541, 542, 541, 540, 541, 0, 0, 543, 0, 541,
1620 0, 542, 0, 542, 0, 542, 0, 543, 544, 543,
1621 542, 543, 0, 0, 545, 544, 543, 0, 544, 0,
1622 544, 0, 544, 0, 545, 549, 545, 544, 545, 553,
1623 0, 0, 545, 545, 0, 549, 0, 549, 0, 549,
1624
1625 0, 0, 554, 0, 549, 553, 0, 0, 558, 0,
1626 0, 0, 554, 0, 554, 553, 554, 553, 558, 553,
1627 558, 554, 558, 566, 553, 0, 0, 558, 0, 567,
1628 0, 0, 0, 566, 0, 566, 566, 566, 0, 567,
1629 569, 567, 566, 567, 0, 0, 570, 0, 567, 0,
1630 569, 0, 569, 0, 569, 0, 570, 0, 570, 569,
1631 570, 571, 572, 570, 571, 570, 0, 572, 0, 0,
1632 0, 571, 572, 571, 572, 571, 572, 573, 0, 0,
1633 571, 572, 0, 575, 0, 575, 0, 573, 0, 573,
1634 0, 573, 0, 575, 576, 575, 573, 575, 0, 0,
1635
1636 581, 0, 575, 0, 576, 0, 576, 0, 576, 0,
1637 581, 582, 581, 576, 581, 0, 581, 0, 0, 581,
1638 0, 582, 583, 582, 582, 582, 0, 0, 594, 583,
1639 582, 0, 583, 0, 583, 0, 583, 0, 594, 602,
1640 594, 583, 594, 0, 0, 603, 0, 594, 0, 602,
1641 0, 602, 0, 602, 0, 603, 0, 603, 602, 603,
1642 604, 605, 604, 0, 603, 0, 0, 0, 0, 0,
1643 604, 605, 604, 605, 604, 605, 606, 608, 0, 604,
1644 605, 0, 0, 0, 0, 0, 606, 608, 606, 608,
1645 606, 608, 609, 606, 0, 606, 608, 0, 613, 609,
1646
1647 0, 0, 609, 0, 609, 0, 609, 0, 613, 614,
1648 613, 609, 613, 0, 0, 0, 0, 613, 0, 614,
1649 615, 614, 0, 614, 0, 0, 630, 0, 614, 0,
1650 615, 0, 615, 615, 615, 0, 630, 631, 630, 615,
1651 630, 0, 0, 632, 0, 630, 0, 631, 0, 631,
1652 0, 631, 0, 632, 634, 632, 631, 632, 0, 0,
1653 0, 0, 632, 0, 634, 638, 634, 0, 634, 0,
1654 0, 639, 634, 634, 0, 638, 0, 638, 0, 638,
1655 0, 639, 638, 639, 638, 639, 654, 658, 0, 0,
1656 639, 0, 0, 0, 0, 0, 654, 658, 654, 658,
1657
1658 654, 658, 659, 674, 0, 654, 658, 0, 0, 654,
1659 0, 0, 659, 674, 659, 674, 659, 674, 0, 0,
1660 0, 659, 674, 709, 709, 709, 709, 709, 709, 709,
1661 709, 709, 709, 709, 709, 710, 710, 710, 710, 710,
1662 710, 710, 710, 710, 710, 710, 710, 711, 711, 711,
1663 711, 711, 711, 711, 711, 711, 711, 711, 711, 712,
1664 712, 712, 712, 712, 712, 712, 712, 712, 712, 712,
1665 712, 713, 713, 713, 713, 713, 713, 713, 713, 713,
1666 713, 713, 713, 714, 714, 714, 714, 714, 714, 714,
1667 714, 714, 714, 714, 714, 715, 715, 715, 0, 715,
1668
1669 715, 715, 715, 715, 715, 715, 715, 716, 716, 0,
1670 0, 716, 0, 716, 0, 716, 717, 717, 0, 717,
1671 717, 718, 718, 0, 718, 718, 718, 0, 718, 718,
1672 718, 718, 718, 719, 719, 719, 0, 719, 719, 719,
1673 719, 719, 719, 719, 719, 720, 720, 720, 720, 720,
1674 720, 720, 720, 0, 720, 720, 721, 0, 0, 721,
1675 721, 721, 721, 721, 721, 721, 721, 722, 0, 0,
1676 722, 722, 722, 722, 722, 722, 722, 722, 723, 0,
1677 0, 723, 0, 723, 723, 723, 723, 723, 723, 724,
1678 724, 0, 724, 724, 725, 725, 0, 725, 725, 726,
1679
1680 0, 726, 726, 727, 727, 0, 727, 727, 728, 0,
1681 728, 728, 729, 0, 729, 729, 730, 0, 730, 730,
1682 731, 731, 731, 731, 731, 731, 731, 731, 731, 731,
1683 731, 731, 732, 732, 0, 732, 732, 733, 733, 0,
1684 0, 0, 0, 733, 734, 734, 0, 0, 0, 0,
1685 734, 735, 735, 0, 0, 0, 0, 735, 736, 736,
1686 0, 0, 0, 0, 736, 708, 708, 708, 708, 708,
1687 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1688 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1689 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1690
1691 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1692 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1693 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1694 708, 708, 708, 708, 708, 708, 708, 708, 708, 708,
1695 708, 708, 708, 708, 708, 708
Lev Walkinf15320b2004-06-03 03:38:44 +00001696 } ;
1697
1698extern int yy_flex_debug;
1699int yy_flex_debug = 1;
1700
Lev Walkin2535a692005-07-02 21:42:40 +00001701static yyconst short int yy_rule_linenum[133] =
Lev Walkinf15320b2004-06-03 03:38:44 +00001702 { 0,
Lev Walkin2535a692005-07-02 21:42:40 +00001703 92, 93, 95, 98, 101, 103, 104, 105, 108, 110,
1704 111, 112, 124, 131, 138, 144, 153, 161, 169, 170,
1705 172, 191, 197, 198, 199, 200, 201, 204, 210, 217,
1706 224, 231, 238, 242, 243, 251, 252, 253, 254, 255,
1707 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1708 270, 279, 280, 281, 282, 283, 284, 285, 286, 287,
1709 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
1710 298, 299, 300, 301, 302, 303, 304, 305, 306, 307,
1711 308, 309, 310, 311, 312, 313, 314, 315, 316, 317,
1712 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
Lev Walkinf15320b2004-06-03 03:38:44 +00001713
Lev Walkin2535a692005-07-02 21:42:40 +00001714 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
1715 342, 343, 348, 349, 350, 353, 358, 364, 372, 382,
1716 387, 389, 390, 394, 400, 406, 414, 417, 442, 486,
1717 488, 499
Lev Walkinf15320b2004-06-03 03:38:44 +00001718 } ;
1719
1720static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
1721static char *yy_full_match;
1722static int yy_lp;
1723#define REJECT \
1724{ \
1725*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
1726yy_cp = yy_full_match; /* restore poss. backed-over text */ \
1727++yy_lp; \
1728goto find_rule; \
1729}
1730#define yymore() yymore_used_but_not_detected
1731#define YY_MORE_ADJ 0
1732#define YY_RESTORE_YY_MORE_OFFSET
1733char *yytext;
1734#line 1 "asn1p_l.l"
1735#define INITIAL 0
1736#line 2 "asn1p_l.l"
1737
1738#include <string.h>
1739#include <errno.h>
1740#include <assert.h>
1741
1742#include "asn1parser.h"
1743#include "asn1p_y.h"
1744
1745int asn1p_lex(void);
1746void asn1p_lexer_hack_push_opaque_state(void); /* Used in .y */
1747void asn1p_lexer_hack_enable_with_syntax(void); /* Used in .y */
Lev Walkinf59d0752004-08-18 04:59:12 +00001748void asn1p_lexer_hack_push_encoding_control(void); /* Used in .y */
Lev Walkinf15320b2004-06-03 03:38:44 +00001749
1750#define YY_FATAL_ERROR(msg) do { \
1751 fprintf(stderr, \
1752 "lexer error at line %d, " \
1753 "text \"%s\"\n", \
1754 yylineno, yytext); \
1755 exit(1); \
1756 } while(0)
1757
1758int asn1p_lexer_pedantic_1990 = 0;
1759int asn1p_lexer_types_year = 0;
1760int asn1p_lexer_constructs_year = 0;
Lev Walkind21c5052004-09-29 13:18:09 +00001761static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */
Lev Walkinf15320b2004-06-03 03:38:44 +00001762
1763/*
1764 * Check that the type is defined in the year of the standard choosen.
1765 */
1766#define TYPE_LIFETIME(fyr, lyr) \
1767 (!asn1p_lexer_types_year \
1768 || (fyr && fyr <= asn1p_lexer_types_year) \
1769 || (lyr && lyr > asn1p_lexer_types_year))
1770
1771/*
1772 * Check the the construction (or concept, i.e. CLASS) is defined in
1773 * a given year.
1774 */
1775#define CONSTRUCT_LIFETIME(fyr, lyr) \
1776 (!asn1p_lexer_constructs_year \
1777 || (fyr && fyr <= asn1p_lexer_constructs_year) \
1778 || (lyr && lyr > asn1p_lexer_constructs_year))
1779
1780/*
Lev Walkinf15320b2004-06-03 03:38:44 +00001781 * Append quoted string.
1782 */
1783#define QAPPEND(text, tlen) do { \
1784 char *prev_text = asn1p_lval.tv_opaque.buf; \
1785 int prev_len = asn1p_lval.tv_opaque.len; \
1786 char *p; \
1787 \
1788 p = malloc((tlen) + prev_len + 1); \
1789 if(p == NULL) return -1; \
1790 \
1791 if(prev_text) memcpy(p, prev_text, prev_len); \
1792 memcpy(p + prev_len, text, tlen); \
1793 p[prev_len + (tlen)] = '\0'; \
1794 \
1795 free(asn1p_lval.tv_opaque.buf); \
1796 asn1p_lval.tv_opaque.buf = p; \
1797 asn1p_lval.tv_opaque.len = (tlen) + prev_len; \
1798 } while(0)
1799
1800#define YY_NEVER_INTERACTIVE 1
1801#define YY_NO_INPUT 1
Lev Walkinf15320b2004-06-03 03:38:44 +00001802#define YY_STACK_USED 1
1803/* Performance penalty is OK */
1804/* Controlled from within application */
1805#define dash_comment 1
1806
Lev Walkin2535a692005-07-02 21:42:40 +00001807#define idash_comment 2
Lev Walkinf15320b2004-06-03 03:38:44 +00001808
Lev Walkin2535a692005-07-02 21:42:40 +00001809#define cpp_comment 3
Lev Walkinf15320b2004-06-03 03:38:44 +00001810
Lev Walkin2535a692005-07-02 21:42:40 +00001811#define quoted 4
Lev Walkinf15320b2004-06-03 03:38:44 +00001812
Lev Walkin2535a692005-07-02 21:42:40 +00001813#define opaque 5
Lev Walkinf59d0752004-08-18 04:59:12 +00001814
Lev Walkin2535a692005-07-02 21:42:40 +00001815#define encoding_control 6
1816
1817#define with_syntax 7
Lev Walkinf15320b2004-06-03 03:38:44 +00001818
1819/* Newline */
1820/* White-space */
Lev Walkin2535a692005-07-02 21:42:40 +00001821#line 1822 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00001822
1823/* Macros after this point can all be overridden by user definitions in
1824 * section 1.
1825 */
1826
1827#ifndef YY_SKIP_YYWRAP
1828#ifdef __cplusplus
1829extern "C" int yywrap YY_PROTO(( void ));
1830#else
1831extern int yywrap YY_PROTO(( void ));
1832#endif
1833#endif
1834
1835#ifndef YY_NO_UNPUT
1836static void yyunput YY_PROTO(( int c, char *buf_ptr ));
1837#endif
1838
1839#ifndef yytext_ptr
1840static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
1841#endif
1842
1843#ifdef YY_NEED_STRLEN
1844static int yy_flex_strlen YY_PROTO(( yyconst char * ));
1845#endif
1846
1847#ifndef YY_NO_INPUT
1848#ifdef __cplusplus
1849static int yyinput YY_PROTO(( void ));
1850#else
1851static int input YY_PROTO(( void ));
1852#endif
1853#endif
1854
1855#if YY_STACK_USED
1856static int yy_start_stack_ptr = 0;
1857static int yy_start_stack_depth = 0;
1858static int *yy_start_stack = 0;
1859#ifndef YY_NO_PUSH_STATE
1860static void yy_push_state YY_PROTO(( int new_state ));
1861#endif
1862#ifndef YY_NO_POP_STATE
1863static void yy_pop_state YY_PROTO(( void ));
1864#endif
1865#ifndef YY_NO_TOP_STATE
1866static int yy_top_state YY_PROTO(( void ));
1867#endif
1868
1869#else
1870#define YY_NO_PUSH_STATE 1
1871#define YY_NO_POP_STATE 1
1872#define YY_NO_TOP_STATE 1
1873#endif
1874
1875#ifdef YY_MALLOC_DECL
1876YY_MALLOC_DECL
1877#else
1878#if __STDC__
1879#ifndef __cplusplus
1880#include <stdlib.h>
1881#endif
1882#else
1883/* Just try to get by without declaring the routines. This will fail
1884 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
1885 * or sizeof(void*) != sizeof(int).
1886 */
1887#endif
1888#endif
1889
1890/* Amount of stuff to slurp up with each read. */
1891#ifndef YY_READ_BUF_SIZE
1892#define YY_READ_BUF_SIZE 8192
1893#endif
1894
1895/* Copy whatever the last rule matched to the standard output. */
1896
1897#ifndef ECHO
1898/* This used to be an fputs(), but since the string might contain NUL's,
1899 * we now use fwrite().
1900 */
1901#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1902#endif
1903
1904/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1905 * is returned in "result".
1906 */
1907#ifndef YY_INPUT
1908#define YY_INPUT(buf,result,max_size) \
1909 if ( yy_current_buffer->yy_is_interactive ) \
1910 { \
1911 int c = '*', n; \
1912 for ( n = 0; n < max_size && \
1913 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1914 buf[n] = (char) c; \
1915 if ( c == '\n' ) \
1916 buf[n++] = (char) c; \
1917 if ( c == EOF && ferror( yyin ) ) \
1918 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1919 result = n; \
1920 } \
1921 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
1922 && ferror( yyin ) ) \
1923 YY_FATAL_ERROR( "input in flex scanner failed" );
1924#endif
1925
1926/* No semi-colon after return; correct usage is to write "yyterminate();" -
1927 * we don't want an extra ';' after the "return" because that will cause
1928 * some compilers to complain about unreachable statements.
1929 */
1930#ifndef yyterminate
1931#define yyterminate() return YY_NULL
1932#endif
1933
1934/* Number of entries by which start-condition stack grows. */
1935#ifndef YY_START_STACK_INCR
1936#define YY_START_STACK_INCR 25
1937#endif
1938
1939/* Report a fatal error. */
1940#ifndef YY_FATAL_ERROR
1941#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1942#endif
1943
1944/* Default declaration of generated scanner - a define so the user can
1945 * easily add parameters.
1946 */
1947#ifndef YY_DECL
1948#define YY_DECL int yylex YY_PROTO(( void ))
1949#endif
1950
1951/* Code executed at the beginning of each rule, after yytext and yyleng
1952 * have been set up.
1953 */
1954#ifndef YY_USER_ACTION
1955#define YY_USER_ACTION
1956#endif
1957
1958/* Code executed at the end of each rule. */
1959#ifndef YY_BREAK
1960#define YY_BREAK break;
1961#endif
1962
1963#define YY_RULE_SETUP \
1964 YY_USER_ACTION
1965
1966YY_DECL
1967 {
1968 register yy_state_type yy_current_state;
1969 register char *yy_cp, *yy_bp;
1970 register int yy_act;
1971
Lev Walkin2535a692005-07-02 21:42:40 +00001972#line 90 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00001973
1974
Lev Walkin2535a692005-07-02 21:42:40 +00001975#line 1976 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00001976
1977 if ( yy_init )
1978 {
1979 yy_init = 0;
1980
1981#ifdef YY_USER_INIT
1982 YY_USER_INIT;
1983#endif
1984
1985 if ( ! yy_start )
1986 yy_start = 1; /* first start state */
1987
1988 if ( ! yyin )
1989 yyin = stdin;
1990
1991 if ( ! yyout )
1992 yyout = stdout;
1993
1994 if ( ! yy_current_buffer )
1995 yy_current_buffer =
1996 yy_create_buffer( yyin, YY_BUF_SIZE );
1997
1998 yy_load_buffer_state();
1999 }
2000
2001 while ( 1 ) /* loops until end-of-file is reached */
2002 {
2003 yy_cp = yy_c_buf_p;
2004
2005 /* Support of yytext. */
2006 *yy_cp = yy_hold_char;
2007
2008 /* yy_bp points to the position in yy_ch_buf of the start of
2009 * the current run.
2010 */
2011 yy_bp = yy_cp;
2012
2013 yy_current_state = yy_start;
2014 yy_state_ptr = yy_state_buf;
2015 *yy_state_ptr++ = yy_current_state;
2016yy_match:
2017 do
2018 {
2019 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2020 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2021 {
2022 yy_current_state = (int) yy_def[yy_current_state];
Lev Walkin2535a692005-07-02 21:42:40 +00002023 if ( yy_current_state >= 709 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002024 yy_c = yy_meta[(unsigned int) yy_c];
2025 }
2026 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2027 *yy_state_ptr++ = yy_current_state;
2028 ++yy_cp;
2029 }
Lev Walkin2535a692005-07-02 21:42:40 +00002030 while ( yy_base[yy_current_state] != 4166 );
Lev Walkinf15320b2004-06-03 03:38:44 +00002031
2032yy_find_action:
2033 yy_current_state = *--yy_state_ptr;
2034 yy_lp = yy_accept[yy_current_state];
2035find_rule: /* we branch to this label when backing up */
2036 for ( ; ; ) /* until we find what rule we matched */
2037 {
2038 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
2039 {
2040 yy_act = yy_acclist[yy_lp];
2041 {
2042 yy_full_match = yy_cp;
2043 break;
2044 }
2045 }
2046 --yy_cp;
2047 yy_current_state = *--yy_state_ptr;
2048 yy_lp = yy_accept[yy_current_state];
2049 }
2050
2051 YY_DO_BEFORE_ACTION;
2052
2053 if ( yy_act != YY_END_OF_BUFFER )
2054 {
2055 int yyl;
2056 for ( yyl = 0; yyl < yyleng; ++yyl )
2057 if ( yytext[yyl] == '\n' )
2058 ++yylineno;
2059 }
2060
2061do_action: /* This label is used only to access EOF actions. */
2062
2063 if ( yy_flex_debug )
2064 {
2065 if ( yy_act == 0 )
2066 fprintf( stderr, "--scanner backing up\n" );
Lev Walkin2535a692005-07-02 21:42:40 +00002067 else if ( yy_act < 133 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002068 fprintf( stderr, "--accepting rule at line %d (\"%s\")\n",
2069 yy_rule_linenum[yy_act], yytext );
Lev Walkin2535a692005-07-02 21:42:40 +00002070 else if ( yy_act == 133 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002071 fprintf( stderr, "--accepting default rule (\"%s\")\n",
2072 yytext );
Lev Walkin2535a692005-07-02 21:42:40 +00002073 else if ( yy_act == 134 )
Lev Walkinf15320b2004-06-03 03:38:44 +00002074 fprintf( stderr, "--(end of buffer or a NUL)\n" );
2075 else
2076 fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
2077 }
2078
2079 switch ( yy_act )
2080 { /* beginning of action switch */
2081case 1:
Lev Walkin2535a692005-07-02 21:42:40 +00002082*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2083yy_c_buf_p = yy_cp -= 1;
2084YY_DO_BEFORE_ACTION; /* set up yytext again */
Lev Walkinf15320b2004-06-03 03:38:44 +00002085YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002086#line 92 "asn1p_l.l"
2087/* Immediately terminated long comment */
2088 YY_BREAK
2089case 2:
2090*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
2091yy_c_buf_p = yy_cp -= 1;
2092YY_DO_BEFORE_ACTION; /* set up yytext again */
2093YY_RULE_SETUP
2094#line 93 "asn1p_l.l"
2095yy_push_state(idash_comment); /* Incorrect, but acceptable */
2096 YY_BREAK
2097
2098case 3:
2099YY_RULE_SETUP
2100#line 95 "asn1p_l.l"
2101yy_pop_state(); /* Acceptable end of comment */
2102 YY_BREAK
2103
2104case 4:
2105YY_RULE_SETUP
2106#line 98 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002107yy_push_state(dash_comment);
2108 YY_BREAK
2109
Lev Walkin2535a692005-07-02 21:42:40 +00002110case 5:
Lev Walkinf15320b2004-06-03 03:38:44 +00002111YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002112#line 101 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002113yy_pop_state();
2114 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002115case 6:
Lev Walkinf15320b2004-06-03 03:38:44 +00002116YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002117#line 103 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002118yy_pop_state(); /* End of comment */
2119 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002120case 7:
Lev Walkinf15320b2004-06-03 03:38:44 +00002121YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002122#line 104 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002123/* Eat single dash */
2124 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002125case 8:
2126YY_RULE_SETUP
2127#line 105 "asn1p_l.l"
2128/* Eat */
2129 YY_BREAK
2130
2131case 9:
2132YY_RULE_SETUP
2133#line 108 "asn1p_l.l"
2134yy_push_state(cpp_comment);
2135 YY_BREAK
2136
2137case 10:
Lev Walkinf15320b2004-06-03 03:38:44 +00002138YY_RULE_SETUP
Lev Walkinf59d0752004-08-18 04:59:12 +00002139#line 110 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002140/* Eat */
2141 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002142case 11:
Lev Walkinf15320b2004-06-03 03:38:44 +00002143YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002144#line 111 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002145yy_pop_state();
2146 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002147case 12:
Lev Walkinf15320b2004-06-03 03:38:44 +00002148YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002149#line 112 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002150/* Eat */
2151 YY_BREAK
2152
2153/*
2154 * This is state is being set from corresponding .y module when
2155 * higher-level data is necessary to make proper parsing of the
2156 * underlying data. Thus, we enter the <opaque> state and save
2157 * everything for later processing.
2158 */
2159
Lev Walkin2535a692005-07-02 21:42:40 +00002160case 13:
Lev Walkinf15320b2004-06-03 03:38:44 +00002161YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002162#line 124 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002163{
2164 yy_push_state(opaque);
2165 asn1p_lval.tv_opaque.buf = strdup(yytext);
2166 asn1p_lval.tv_opaque.len = yyleng;
2167 return TOK_opaque;
2168 }
2169 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002170case 14:
Lev Walkinf15320b2004-06-03 03:38:44 +00002171YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002172#line 131 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002173{
2174 yy_pop_state();
2175 asn1p_lval.tv_opaque.buf = strdup(yytext);
2176 asn1p_lval.tv_opaque.len = yyleng;
2177 return TOK_opaque;
2178 }
2179 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002180case 15:
Lev Walkinf15320b2004-06-03 03:38:44 +00002181YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002182#line 138 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002183{
2184 asn1p_lval.tv_opaque.buf = strdup(yytext);
2185 asn1p_lval.tv_opaque.len = yyleng;
2186 return TOK_opaque;
2187 }
2188 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002189case 16:
Lev Walkinf15320b2004-06-03 03:38:44 +00002190YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002191#line 144 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002192{
2193 fprintf(stderr,
2194 "ASN.1 Parser syncronization failure: "
2195 "\"%s\" at line %d must not appear "
2196 "inside value definition\n",
2197 yytext, yylineno);
2198 return -1;
2199 }
2200 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002201case 17:
Lev Walkinf15320b2004-06-03 03:38:44 +00002202YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002203#line 153 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002204{
2205 asn1p_lval.tv_opaque.buf = strdup(yytext);
2206 asn1p_lval.tv_opaque.len = yyleng;
2207 return TOK_opaque;
2208 }
2209 YY_BREAK
2210
Lev Walkin2535a692005-07-02 21:42:40 +00002211case 18:
Lev Walkinf15320b2004-06-03 03:38:44 +00002212YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002213#line 161 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002214{
2215 asn1p_lval.tv_opaque.buf = 0;
2216 asn1p_lval.tv_opaque.len = 0;
2217 QAPPEND(yytext+1, yyleng-1);
2218 yy_push_state(quoted);
2219 }
2220 YY_BREAK
2221
Lev Walkin2535a692005-07-02 21:42:40 +00002222case 19:
Lev Walkinf15320b2004-06-03 03:38:44 +00002223YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002224#line 169 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002225{ QAPPEND(yytext, yyleng-1); } /* Add a single quote */
2226 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002227case 20:
Lev Walkinf15320b2004-06-03 03:38:44 +00002228YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002229#line 170 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002230{ QAPPEND(yytext, yyleng); }
2231 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002232case 21:
Lev Walkinf15320b2004-06-03 03:38:44 +00002233YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002234#line 172 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002235{
2236 yy_pop_state();
2237 /* Do not append last quote:
2238 // QAPPEND(yytext, yyleng); */
2239
2240 if(asn1p_lexer_pedantic_1990
2241 && strchr(yytext, '\n')) {
2242 fprintf(stderr, "%s: "
2243 "Newlines are prohibited by ASN.1:1990\n",
2244 asn1p_lval.tv_opaque.buf);
2245 return -1;
2246 }
2247
2248 return TOK_cstring;
2249 }
2250 YY_BREAK
2251
Lev Walkinf59d0752004-08-18 04:59:12 +00002252
Lev Walkin2535a692005-07-02 21:42:40 +00002253case 22:
Lev Walkinf15320b2004-06-03 03:38:44 +00002254YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002255#line 191 "asn1p_l.l"
Lev Walkinf59d0752004-08-18 04:59:12 +00002256{
2257 const char *s = "ENCODING-CONTROL";
2258 const char *p = s + sizeof("ENCODING-CONTROL") - 2;
2259 for(; p >= s; p--) unput(*p);
2260 yy_pop_state();
2261 }
2262 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002263case 23:
2264YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002265#line 197 "asn1p_l.l"
2266unput('D'); unput('N'); unput('E'); yy_pop_state();
Lev Walkinf59d0752004-08-18 04:59:12 +00002267 YY_BREAK
2268case 24:
2269YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002270#line 198 "asn1p_l.l"
2271
2272 YY_BREAK
2273case 25:
2274YY_RULE_SETUP
2275#line 199 "asn1p_l.l"
2276
2277 YY_BREAK
2278case 26:
2279YY_RULE_SETUP
2280#line 200 "asn1p_l.l"
2281/* Eat everything else */
2282 YY_BREAK
2283case 27:
2284YY_RULE_SETUP
2285#line 201 "asn1p_l.l"
Lev Walkinf59d0752004-08-18 04:59:12 +00002286
2287 YY_BREAK
2288
Lev Walkin2535a692005-07-02 21:42:40 +00002289case 28:
Lev Walkinf59d0752004-08-18 04:59:12 +00002290YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002291#line 204 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002292{
2293 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2294 asn1p_lval.tv_str = yytext;
2295 return TOK_hstring;
2296 }
2297 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002298case 29:
Lev Walkinf15320b2004-06-03 03:38:44 +00002299YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002300#line 210 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002301{
2302 /* " \t\r\n" weren't allowed in ASN.1:1990. */
2303 asn1p_lval.tv_str = strdup(yytext);
2304 return TOK_bstring;
2305 }
2306 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002307case 30:
Lev Walkinf15320b2004-06-03 03:38:44 +00002308YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002309#line 217 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002310{
2311 asn1p_lval.a_int = asn1p_atoi(yytext);
2312 if(errno == ERANGE)
2313 return -1;
2314 return TOK_number_negative;
2315 }
2316 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002317case 31:
Lev Walkinf15320b2004-06-03 03:38:44 +00002318YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002319#line 224 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002320{
2321 asn1p_lval.a_int = asn1p_atoi(yytext);
2322 if(errno == ERANGE)
2323 return -1;
2324 return TOK_number;
2325 }
2326 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002327case 32:
Lev Walkinf15320b2004-06-03 03:38:44 +00002328YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002329#line 231 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002330{
2331 asn1p_lval.a_int = asn1p_atoi(yytext);
2332 if(errno == ERANGE)
2333 return -1;
2334 return TOK_number;
2335 }
2336 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002337case 33:
Lev Walkinf15320b2004-06-03 03:38:44 +00002338YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002339#line 238 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002340return TOK_ABSENT;
2341 YY_BREAK
Lev Walkin9c974182004-09-15 11:59:51 +00002342/*
2343ABSTRACT-SYNTAX return TOK_ABSTRACT_SYNTAX;
2344 */
Lev Walkin2535a692005-07-02 21:42:40 +00002345case 34:
Lev Walkinf15320b2004-06-03 03:38:44 +00002346YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002347#line 242 "asn1p_l.l"
Lev Walkin9c974182004-09-15 11:59:51 +00002348return TOK_ALL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002349 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002350case 35:
Lev Walkinf15320b2004-06-03 03:38:44 +00002351YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002352#line 243 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002353{
2354 /* Appeared in 1990, removed in 1997 */
2355 if(TYPE_LIFETIME(1990, 1997))
2356 return TOK_ANY;
2357 fprintf(stderr, "Keyword \"%s\" at line %d "
2358 "is obsolete\n", yytext, yylineno);
2359 REJECT;
2360 }
2361 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002362case 36:
Lev Walkinf15320b2004-06-03 03:38:44 +00002363YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002364#line 251 "asn1p_l.l"
2365return TOK_APPLICATION;
Lev Walkinf15320b2004-06-03 03:38:44 +00002366 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002367case 37:
Lev Walkinf15320b2004-06-03 03:38:44 +00002368YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002369#line 252 "asn1p_l.l"
2370return TOK_AUTOMATIC;
2371 YY_BREAK
2372case 38:
2373YY_RULE_SETUP
2374#line 253 "asn1p_l.l"
2375return TOK_BEGIN;
2376 YY_BREAK
2377case 39:
2378YY_RULE_SETUP
2379#line 254 "asn1p_l.l"
2380return TOK_BIT;
2381 YY_BREAK
2382case 40:
2383YY_RULE_SETUP
2384#line 255 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002385{
2386 if(TYPE_LIFETIME(1994, 0))
2387 return TOK_BMPString;
2388 REJECT;
2389 }
2390 YY_BREAK
Lev Walkinf15320b2004-06-03 03:38:44 +00002391case 41:
2392YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002393#line 260 "asn1p_l.l"
2394return TOK_BOOLEAN;
Lev Walkinf15320b2004-06-03 03:38:44 +00002395 YY_BREAK
2396case 42:
2397YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002398#line 261 "asn1p_l.l"
2399return TOK_BY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002400 YY_BREAK
2401case 43:
2402YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002403#line 262 "asn1p_l.l"
2404return TOK_CHARACTER;
Lev Walkinf15320b2004-06-03 03:38:44 +00002405 YY_BREAK
2406case 44:
2407YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002408#line 263 "asn1p_l.l"
2409return TOK_CHOICE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002410 YY_BREAK
2411case 45:
2412YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002413#line 264 "asn1p_l.l"
2414return TOK_CLASS;
Lev Walkinf59d0752004-08-18 04:59:12 +00002415 YY_BREAK
2416case 46:
2417YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002418#line 265 "asn1p_l.l"
2419return TOK_COMPONENT;
Lev Walkinf59d0752004-08-18 04:59:12 +00002420 YY_BREAK
2421case 47:
2422YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002423#line 266 "asn1p_l.l"
2424return TOK_COMPONENTS;
Lev Walkinf59d0752004-08-18 04:59:12 +00002425 YY_BREAK
2426case 48:
2427YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002428#line 267 "asn1p_l.l"
2429return TOK_CONSTRAINED;
2430 YY_BREAK
2431case 49:
2432YY_RULE_SETUP
2433#line 268 "asn1p_l.l"
2434return TOK_CONTAINING;
2435 YY_BREAK
2436case 50:
2437YY_RULE_SETUP
2438#line 269 "asn1p_l.l"
2439return TOK_DEFAULT;
2440 YY_BREAK
2441case 51:
2442YY_RULE_SETUP
2443#line 270 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002444{
2445 /* Appeared in 1990, removed in 1997 */
2446 if(TYPE_LIFETIME(1990, 1997))
2447 return TOK_DEFINED;
2448 fprintf(stderr, "Keyword \"%s\" at line %d "
2449 "is obsolete\n", yytext, yylineno);
2450 /* Deprecated since */
2451 REJECT;
2452 }
2453 YY_BREAK
Lev Walkinf15320b2004-06-03 03:38:44 +00002454case 52:
2455YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002456#line 279 "asn1p_l.l"
2457return TOK_DEFINITIONS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002458 YY_BREAK
2459case 53:
2460YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002461#line 280 "asn1p_l.l"
2462return TOK_EMBEDDED;
Lev Walkinf15320b2004-06-03 03:38:44 +00002463 YY_BREAK
2464case 54:
2465YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002466#line 281 "asn1p_l.l"
2467return TOK_ENCODED;
Lev Walkinf15320b2004-06-03 03:38:44 +00002468 YY_BREAK
2469case 55:
2470YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002471#line 282 "asn1p_l.l"
2472return TOK_ENCODING_CONTROL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002473 YY_BREAK
2474case 56:
2475YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002476#line 283 "asn1p_l.l"
2477return TOK_END;
Lev Walkinf15320b2004-06-03 03:38:44 +00002478 YY_BREAK
2479case 57:
2480YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002481#line 284 "asn1p_l.l"
2482return TOK_ENUMERATED;
Lev Walkinf15320b2004-06-03 03:38:44 +00002483 YY_BREAK
2484case 58:
2485YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002486#line 285 "asn1p_l.l"
2487return TOK_EXCEPT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002488 YY_BREAK
2489case 59:
2490YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002491#line 286 "asn1p_l.l"
2492return TOK_EXPLICIT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002493 YY_BREAK
2494case 60:
2495YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002496#line 287 "asn1p_l.l"
2497return TOK_EXPORTS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002498 YY_BREAK
2499case 61:
2500YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002501#line 288 "asn1p_l.l"
2502return TOK_EXTENSIBILITY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002503 YY_BREAK
2504case 62:
2505YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002506#line 289 "asn1p_l.l"
2507return TOK_EXTERNAL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002508 YY_BREAK
2509case 63:
2510YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002511#line 290 "asn1p_l.l"
2512return TOK_FALSE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002513 YY_BREAK
2514case 64:
2515YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002516#line 291 "asn1p_l.l"
2517return TOK_FROM;
Lev Walkinf15320b2004-06-03 03:38:44 +00002518 YY_BREAK
2519case 65:
2520YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002521#line 292 "asn1p_l.l"
2522return TOK_GeneralizedTime;
Lev Walkinf15320b2004-06-03 03:38:44 +00002523 YY_BREAK
2524case 66:
2525YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002526#line 293 "asn1p_l.l"
2527return TOK_GeneralString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002528 YY_BREAK
2529case 67:
2530YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002531#line 294 "asn1p_l.l"
2532return TOK_GraphicString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002533 YY_BREAK
2534case 68:
2535YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002536#line 295 "asn1p_l.l"
2537return TOK_IA5String;
Lev Walkinf15320b2004-06-03 03:38:44 +00002538 YY_BREAK
2539case 69:
2540YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002541#line 296 "asn1p_l.l"
2542return TOK_IDENTIFIER;
Lev Walkinf15320b2004-06-03 03:38:44 +00002543 YY_BREAK
2544case 70:
2545YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002546#line 297 "asn1p_l.l"
2547return TOK_IMPLICIT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002548 YY_BREAK
2549case 71:
2550YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002551#line 298 "asn1p_l.l"
2552return TOK_IMPLIED;
Lev Walkinf15320b2004-06-03 03:38:44 +00002553 YY_BREAK
2554case 72:
2555YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002556#line 299 "asn1p_l.l"
2557return TOK_IMPORTS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002558 YY_BREAK
2559case 73:
2560YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002561#line 300 "asn1p_l.l"
2562return TOK_INCLUDES;
Lev Walkinf15320b2004-06-03 03:38:44 +00002563 YY_BREAK
2564case 74:
2565YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002566#line 301 "asn1p_l.l"
2567return TOK_INSTANCE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002568 YY_BREAK
2569case 75:
2570YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002571#line 302 "asn1p_l.l"
2572return TOK_INSTRUCTIONS;
Lev Walkinf15320b2004-06-03 03:38:44 +00002573 YY_BREAK
2574case 76:
2575YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002576#line 303 "asn1p_l.l"
2577return TOK_INTEGER;
Lev Walkinf15320b2004-06-03 03:38:44 +00002578 YY_BREAK
2579case 77:
2580YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002581#line 304 "asn1p_l.l"
2582return TOK_INTERSECTION;
Lev Walkinf15320b2004-06-03 03:38:44 +00002583 YY_BREAK
2584case 78:
2585YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002586#line 305 "asn1p_l.l"
2587return TOK_ISO646String;
Lev Walkinf15320b2004-06-03 03:38:44 +00002588 YY_BREAK
2589case 79:
2590YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002591#line 306 "asn1p_l.l"
2592return TOK_MAX;
Lev Walkinf15320b2004-06-03 03:38:44 +00002593 YY_BREAK
2594case 80:
2595YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002596#line 307 "asn1p_l.l"
2597return TOK_MIN;
Lev Walkinf15320b2004-06-03 03:38:44 +00002598 YY_BREAK
2599case 81:
2600YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002601#line 308 "asn1p_l.l"
2602return TOK_MINUS_INFINITY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002603 YY_BREAK
2604case 82:
2605YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002606#line 309 "asn1p_l.l"
2607return TOK_NULL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002608 YY_BREAK
2609case 83:
2610YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002611#line 310 "asn1p_l.l"
2612return TOK_NumericString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002613 YY_BREAK
2614case 84:
2615YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002616#line 311 "asn1p_l.l"
2617return TOK_OBJECT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002618 YY_BREAK
2619case 85:
2620YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002621#line 312 "asn1p_l.l"
2622return TOK_ObjectDescriptor;
Lev Walkinf15320b2004-06-03 03:38:44 +00002623 YY_BREAK
2624case 86:
2625YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002626#line 313 "asn1p_l.l"
2627return TOK_OCTET;
Lev Walkinf15320b2004-06-03 03:38:44 +00002628 YY_BREAK
2629case 87:
2630YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002631#line 314 "asn1p_l.l"
2632return TOK_OF;
Lev Walkinf15320b2004-06-03 03:38:44 +00002633 YY_BREAK
2634case 88:
2635YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002636#line 315 "asn1p_l.l"
2637return TOK_OPTIONAL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002638 YY_BREAK
2639case 89:
2640YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002641#line 316 "asn1p_l.l"
2642return TOK_PATTERN;
Lev Walkinf15320b2004-06-03 03:38:44 +00002643 YY_BREAK
2644case 90:
2645YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002646#line 317 "asn1p_l.l"
2647return TOK_PDV;
Lev Walkinf15320b2004-06-03 03:38:44 +00002648 YY_BREAK
2649case 91:
2650YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002651#line 318 "asn1p_l.l"
2652return TOK_PLUS_INFINITY;
Lev Walkinf15320b2004-06-03 03:38:44 +00002653 YY_BREAK
2654case 92:
2655YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002656#line 319 "asn1p_l.l"
2657return TOK_PRESENT;
Lev Walkinf15320b2004-06-03 03:38:44 +00002658 YY_BREAK
2659case 93:
2660YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002661#line 320 "asn1p_l.l"
2662return TOK_PrintableString;
Lev Walkinf15320b2004-06-03 03:38:44 +00002663 YY_BREAK
2664case 94:
2665YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002666#line 321 "asn1p_l.l"
2667return TOK_PRIVATE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002668 YY_BREAK
2669case 95:
2670YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002671#line 322 "asn1p_l.l"
2672return TOK_REAL;
Lev Walkinf15320b2004-06-03 03:38:44 +00002673 YY_BREAK
2674case 96:
2675YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002676#line 323 "asn1p_l.l"
2677return TOK_RELATIVE_OID;
Lev Walkinf15320b2004-06-03 03:38:44 +00002678 YY_BREAK
2679case 97:
2680YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002681#line 324 "asn1p_l.l"
2682return TOK_SEQUENCE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002683 YY_BREAK
2684case 98:
2685YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002686#line 325 "asn1p_l.l"
2687return TOK_SET;
Lev Walkinf15320b2004-06-03 03:38:44 +00002688 YY_BREAK
2689case 99:
2690YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002691#line 326 "asn1p_l.l"
2692return TOK_SIZE;
Lev Walkinf15320b2004-06-03 03:38:44 +00002693 YY_BREAK
2694case 100:
2695YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002696#line 327 "asn1p_l.l"
2697return TOK_STRING;
Lev Walkinf15320b2004-06-03 03:38:44 +00002698 YY_BREAK
2699case 101:
2700YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002701#line 328 "asn1p_l.l"
2702return TOK_SYNTAX;
Lev Walkinf15320b2004-06-03 03:38:44 +00002703 YY_BREAK
2704case 102:
2705YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002706#line 329 "asn1p_l.l"
2707return TOK_T61String;
Lev Walkinf59d0752004-08-18 04:59:12 +00002708 YY_BREAK
2709case 103:
2710YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002711#line 330 "asn1p_l.l"
2712return TOK_TAGS;
Lev Walkinf59d0752004-08-18 04:59:12 +00002713 YY_BREAK
2714case 104:
2715YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002716#line 331 "asn1p_l.l"
2717return TOK_TeletexString;
Lev Walkinf59d0752004-08-18 04:59:12 +00002718 YY_BREAK
2719case 105:
2720YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002721#line 332 "asn1p_l.l"
2722return TOK_TRUE;
Lev Walkinf59d0752004-08-18 04:59:12 +00002723 YY_BREAK
2724case 106:
2725YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002726#line 333 "asn1p_l.l"
2727return TOK_TYPE_IDENTIFIER;
Lev Walkinf59d0752004-08-18 04:59:12 +00002728 YY_BREAK
2729case 107:
2730YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002731#line 334 "asn1p_l.l"
2732return TOK_UNION;
2733 YY_BREAK
2734case 108:
2735YY_RULE_SETUP
2736#line 335 "asn1p_l.l"
2737return TOK_UNIQUE;
2738 YY_BREAK
2739case 109:
2740YY_RULE_SETUP
2741#line 336 "asn1p_l.l"
2742return TOK_UNIVERSAL;
2743 YY_BREAK
2744case 110:
2745YY_RULE_SETUP
2746#line 337 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002747{
2748 if(TYPE_LIFETIME(1994, 0))
2749 return TOK_UniversalString;
2750 REJECT;
2751 }
2752 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002753case 111:
Lev Walkinf15320b2004-06-03 03:38:44 +00002754YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002755#line 342 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002756return TOK_UTCTime;
2757 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002758case 112:
Lev Walkinf15320b2004-06-03 03:38:44 +00002759YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002760#line 343 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002761{
2762 if(TYPE_LIFETIME(1994, 0))
2763 return TOK_UTF8String;
2764 REJECT;
2765 }
2766 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002767case 113:
Lev Walkinf15320b2004-06-03 03:38:44 +00002768YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002769#line 348 "asn1p_l.l"
2770return TOK_VideotexString;
2771 YY_BREAK
2772case 114:
2773YY_RULE_SETUP
2774#line 349 "asn1p_l.l"
2775return TOK_VisibleString;
2776 YY_BREAK
2777case 115:
2778YY_RULE_SETUP
2779#line 350 "asn1p_l.l"
2780return TOK_WITH;
2781 YY_BREAK
2782case 116:
2783YY_RULE_SETUP
2784#line 353 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002785{
Lev Walkinf15320b2004-06-03 03:38:44 +00002786 asn1p_lval.tv_str = strdup(yytext);
2787 return TOK_typefieldreference;
2788 }
2789 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002790case 117:
Lev Walkinf15320b2004-06-03 03:38:44 +00002791YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002792#line 358 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002793{
Lev Walkinf15320b2004-06-03 03:38:44 +00002794 asn1p_lval.tv_str = strdup(yytext);
2795 return TOK_valuefieldreference;
2796 }
2797 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002798case 118:
Lev Walkinf15320b2004-06-03 03:38:44 +00002799YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002800#line 364 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002801{
Lev Walkinf15320b2004-06-03 03:38:44 +00002802 asn1p_lval.tv_str = strdup(yytext);
2803 return TOK_identifier;
2804 }
2805 YY_BREAK
2806/*
2807 * objectclassreference
2808 */
Lev Walkin2535a692005-07-02 21:42:40 +00002809case 119:
Lev Walkinf15320b2004-06-03 03:38:44 +00002810YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002811#line 372 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002812{
Lev Walkinf15320b2004-06-03 03:38:44 +00002813 asn1p_lval.tv_str = strdup(yytext);
Lev Walkinf59d0752004-08-18 04:59:12 +00002814 return TOK_capitalreference;
Lev Walkinf15320b2004-06-03 03:38:44 +00002815 }
2816 YY_BREAK
2817/*
2818 * typereference, modulereference
2819 * NOTE: TOK_objectclassreference must be combined
2820 * with this token to produce true typereference.
2821 */
Lev Walkin2535a692005-07-02 21:42:40 +00002822case 120:
Lev Walkinf15320b2004-06-03 03:38:44 +00002823YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002824#line 382 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002825{
Lev Walkinf15320b2004-06-03 03:38:44 +00002826 asn1p_lval.tv_str = strdup(yytext);
2827 return TOK_typereference;
2828 }
2829 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002830case 121:
Lev Walkinf15320b2004-06-03 03:38:44 +00002831YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002832#line 387 "asn1p_l.l"
2833return TOK_PPEQ;
Lev Walkinf15320b2004-06-03 03:38:44 +00002834 YY_BREAK
Lev Walkinf59d0752004-08-18 04:59:12 +00002835case 122:
Lev Walkinf15320b2004-06-03 03:38:44 +00002836YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002837#line 389 "asn1p_l.l"
2838return TOK_ThreeDots;
2839 YY_BREAK
2840case 123:
2841YY_RULE_SETUP
2842#line 390 "asn1p_l.l"
2843return TOK_TwoDots;
2844 YY_BREAK
2845
2846case 124:
2847YY_RULE_SETUP
2848#line 394 "asn1p_l.l"
Lev Walkind9574ae2005-03-24 16:22:35 +00002849{
2850 asn1p_lval.tv_opaque.buf = strdup(yytext);
2851 asn1p_lval.tv_opaque.len = yyleng;
2852 return TOK_opaque;
2853 }
Lev Walkinf15320b2004-06-03 03:38:44 +00002854 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002855case 125:
Lev Walkinf15320b2004-06-03 03:38:44 +00002856YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002857#line 400 "asn1p_l.l"
2858{
2859 asn1p_lval.tv_opaque.buf = strdup(yytext);
2860 asn1p_lval.tv_opaque.len = yyleng;
2861 return TOK_opaque;
2862 }
2863 YY_BREAK
2864case 126:
2865YY_RULE_SETUP
2866#line 406 "asn1p_l.l"
Lev Walkind9574ae2005-03-24 16:22:35 +00002867{
2868 yy_pop_state();
2869 return '}';
2870 }
2871 YY_BREAK
2872
Lev Walkin2535a692005-07-02 21:42:40 +00002873case 127:
Lev Walkind9574ae2005-03-24 16:22:35 +00002874YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002875#line 414 "asn1p_l.l"
Lev Walkind9574ae2005-03-24 16:22:35 +00002876/* Ignore whitespace */
2877 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002878case 128:
Lev Walkind9574ae2005-03-24 16:22:35 +00002879YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002880#line 417 "asn1p_l.l"
Lev Walkind9574ae2005-03-24 16:22:35 +00002881{
2882 asn1c_integer_t v1 = -1, v2 = -1;
2883 char *p;
2884 for(p = yytext; *p; p++)
2885 if(*p >= '0' && *p <= '9')
2886 { v1 = asn1p_atoi(p); break; }
2887 while(*p >= '0' && *p <= '9') p++; /* Skip digits */
2888 for(; *p; p++) if(*p >= '0' && *p <= '9')
2889 { v2 = asn1p_atoi(p); break; }
2890 if(v1 < 0 || v1 > 7) {
2891 fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
2892 "mandates 0..7 range for Tuple's TableColumn\n",
2893 yytext, yylineno);
2894 return -1;
2895 }
2896 if(v2 < 0 || v2 > 15) {
2897 fprintf(stderr, "%s at line %d: X.680:2003, #37.14 "
2898 "mandates 0..15 range for Tuple's TableRow\n",
2899 yytext, yylineno);
2900 return -1;
2901 }
2902 asn1p_lval.a_int = (v1 << 4) + v2;
2903 return TOK_tuple;
2904 }
2905 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002906case 129:
Lev Walkind9574ae2005-03-24 16:22:35 +00002907YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002908#line 442 "asn1p_l.l"
Lev Walkind9574ae2005-03-24 16:22:35 +00002909{
2910 asn1c_integer_t v1 = -1, v2 = -1, v3 = -1, v4 = -1;
2911 char *p;
2912 for(p = yytext; *p; p++)
2913 if(*p >= '0' && *p <= '9')
2914 { v1 = asn1p_atoi(p); break; }
2915 while(*p >= '0' && *p <= '9') p++; /* Skip digits */
2916 for(; *p; p++) if(*p >= '0' && *p <= '9')
2917 { v2 = asn1p_atoi(p); break; }
2918 while(*p >= '0' && *p <= '9') p++;
2919 for(; *p; p++) if(*p >= '0' && *p <= '9')
2920 { v3 = asn1p_atoi(p); break; }
2921 while(*p >= '0' && *p <= '9') p++;
2922 for(; *p; p++) if(*p >= '0' && *p <= '9')
2923 { v4 = asn1p_atoi(p); break; }
2924 if(v1 < 0 || v1 > 127) {
2925 fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
2926 "mandates 0..127 range for Quadruple's Group\n",
2927 yytext, yylineno);
2928 return -1;
2929 }
2930 if(v2 < 0 || v2 > 255) {
2931 fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
2932 "mandates 0..255 range for Quadruple's Plane\n",
2933 yytext, yylineno);
2934 return -1;
2935 }
2936 if(v3 < 0 || v3 > 255) {
2937 fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
2938 "mandates 0..255 range for Quadruple's Row\n",
2939 yytext, yylineno);
2940 return -1;
2941 }
2942 if(v4 < 0 || v4 > 255) {
2943 fprintf(stderr, "%s at line %d: X.680:2003, #37.12 "
2944 "mandates 0..255 range for Quadruple's Cell\n",
2945 yytext, yylineno);
2946 return -1;
2947 }
2948 asn1p_lval.a_int = (v1 << 24) | (v2 << 16) | (v3 << 8) | v4;
2949 return TOK_quadruple;
2950 }
2951 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002952case 130:
Lev Walkind9574ae2005-03-24 16:22:35 +00002953YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002954#line 486 "asn1p_l.l"
Lev Walkind9574ae2005-03-24 16:22:35 +00002955return yytext[0];
2956 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002957case 131:
Lev Walkind9574ae2005-03-24 16:22:35 +00002958YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002959#line 488 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002960{
2961 if(TYPE_LIFETIME(1994, 0))
2962 fprintf(stderr, "ERROR: ");
2963 fprintf(stderr,
2964 "Symbol '%c' at line %d is prohibited "
2965 "by ASN.1:1994 and ASN.1:1997\n",
2966 yytext[0], yylineno);
2967 if(TYPE_LIFETIME(1994, 0))
2968 return -1;
2969 }
2970 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00002971case 132:
Lev Walkinc603f102005-01-23 09:51:44 +00002972YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00002973#line 499 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002974{
2975 fprintf(stderr,
2976 "Unexpected token at line %d: \"%s\"\n",
2977 yylineno, yytext);
2978 while(YYSTATE != INITIAL)
2979 yy_pop_state();
Lev Walkin9c974182004-09-15 11:59:51 +00002980 if(0) {
2981 yy_top_state(); /* Just to use this function. */
2982 yy_fatal_error("Parse error");
2983 }
Lev Walkinf15320b2004-06-03 03:38:44 +00002984 return -1;
2985}
2986 YY_BREAK
2987case YY_STATE_EOF(INITIAL):
2988case YY_STATE_EOF(dash_comment):
Lev Walkin2535a692005-07-02 21:42:40 +00002989case YY_STATE_EOF(idash_comment):
Lev Walkinf15320b2004-06-03 03:38:44 +00002990case YY_STATE_EOF(cpp_comment):
2991case YY_STATE_EOF(quoted):
2992case YY_STATE_EOF(opaque):
Lev Walkinf59d0752004-08-18 04:59:12 +00002993case YY_STATE_EOF(encoding_control):
Lev Walkinf15320b2004-06-03 03:38:44 +00002994case YY_STATE_EOF(with_syntax):
Lev Walkin2535a692005-07-02 21:42:40 +00002995#line 512 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00002996{
2997 while(YYSTATE != INITIAL)
2998 yy_pop_state();
2999 yyterminate();
3000 }
3001 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00003002case 133:
Lev Walkinf15320b2004-06-03 03:38:44 +00003003YY_RULE_SETUP
Lev Walkin2535a692005-07-02 21:42:40 +00003004#line 519 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00003005YY_FATAL_ERROR( "flex scanner jammed" );
3006 YY_BREAK
Lev Walkin2535a692005-07-02 21:42:40 +00003007#line 3008 "asn1p_l.c"
Lev Walkinf15320b2004-06-03 03:38:44 +00003008
3009 case YY_END_OF_BUFFER:
3010 {
3011 /* Amount of text matched not including the EOB char. */
3012 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
3013
3014 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3015 *yy_cp = yy_hold_char;
3016 YY_RESTORE_YY_MORE_OFFSET
3017
3018 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
3019 {
3020 /* We're scanning a new file or input source. It's
3021 * possible that this happened because the user
3022 * just pointed yyin at a new source and called
3023 * yylex(). If so, then we have to assure
3024 * consistency between yy_current_buffer and our
3025 * globals. Here is the right place to do so, because
3026 * this is the first action (other than possibly a
3027 * back-up) that will match for the new input source.
3028 */
3029 yy_n_chars = yy_current_buffer->yy_n_chars;
3030 yy_current_buffer->yy_input_file = yyin;
3031 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
3032 }
3033
3034 /* Note that here we test for yy_c_buf_p "<=" to the position
3035 * of the first EOB in the buffer, since yy_c_buf_p will
3036 * already have been incremented past the NUL character
3037 * (since all states make transitions on EOB to the
3038 * end-of-buffer state). Contrast this with the test
3039 * in input().
3040 */
3041 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3042 { /* This was really a NUL. */
3043 yy_state_type yy_next_state;
3044
3045 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
3046
3047 yy_current_state = yy_get_previous_state();
3048
3049 /* Okay, we're now positioned to make the NUL
3050 * transition. We couldn't have
3051 * yy_get_previous_state() go ahead and do it
3052 * for us because it doesn't know how to deal
3053 * with the possibility of jamming (and we don't
3054 * want to build jamming into it because then it
3055 * will run more slowly).
3056 */
3057
3058 yy_next_state = yy_try_NUL_trans( yy_current_state );
3059
3060 yy_bp = yytext_ptr + YY_MORE_ADJ;
3061
3062 if ( yy_next_state )
3063 {
3064 /* Consume the NUL. */
3065 yy_cp = ++yy_c_buf_p;
3066 yy_current_state = yy_next_state;
3067 goto yy_match;
3068 }
3069
3070 else
3071 {
3072 yy_cp = yy_c_buf_p;
3073 goto yy_find_action;
3074 }
3075 }
3076
3077 else switch ( yy_get_next_buffer() )
3078 {
3079 case EOB_ACT_END_OF_FILE:
3080 {
3081 yy_did_buffer_switch_on_eof = 0;
3082
3083 if ( yywrap() )
3084 {
3085 /* Note: because we've taken care in
3086 * yy_get_next_buffer() to have set up
3087 * yytext, we can now set up
3088 * yy_c_buf_p so that if some total
3089 * hoser (like flex itself) wants to
3090 * call the scanner after we return the
3091 * YY_NULL, it'll still work - another
3092 * YY_NULL will get returned.
3093 */
3094 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
3095
3096 yy_act = YY_STATE_EOF(YY_START);
3097 goto do_action;
3098 }
3099
3100 else
3101 {
3102 if ( ! yy_did_buffer_switch_on_eof )
3103 YY_NEW_FILE;
3104 }
3105 break;
3106 }
3107
3108 case EOB_ACT_CONTINUE_SCAN:
3109 yy_c_buf_p =
3110 yytext_ptr + yy_amount_of_matched_text;
3111
3112 yy_current_state = yy_get_previous_state();
3113
3114 yy_cp = yy_c_buf_p;
3115 yy_bp = yytext_ptr + YY_MORE_ADJ;
3116 goto yy_match;
3117
3118 case EOB_ACT_LAST_MATCH:
3119 yy_c_buf_p =
3120 &yy_current_buffer->yy_ch_buf[yy_n_chars];
3121
3122 yy_current_state = yy_get_previous_state();
3123
3124 yy_cp = yy_c_buf_p;
3125 yy_bp = yytext_ptr + YY_MORE_ADJ;
3126 goto yy_find_action;
3127 }
3128 break;
3129 }
3130
3131 default:
3132 YY_FATAL_ERROR(
3133 "fatal flex scanner internal error--no action found" );
3134 } /* end of action switch */
3135 } /* end of scanning one token */
3136 } /* end of yylex */
3137
3138
3139/* yy_get_next_buffer - try to read in a new buffer
3140 *
3141 * Returns a code representing an action:
3142 * EOB_ACT_LAST_MATCH -
3143 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3144 * EOB_ACT_END_OF_FILE - end of file
3145 */
3146
3147static int yy_get_next_buffer()
3148 {
3149 register char *dest = yy_current_buffer->yy_ch_buf;
3150 register char *source = yytext_ptr;
3151 register int number_to_move, i;
3152 int ret_val;
3153
3154 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
3155 YY_FATAL_ERROR(
3156 "fatal flex scanner internal error--end of buffer missed" );
3157
3158 if ( yy_current_buffer->yy_fill_buffer == 0 )
3159 { /* Don't try to fill the buffer, so this is an EOF. */
3160 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
3161 {
3162 /* We matched a single character, the EOB, so
3163 * treat this as a final EOF.
3164 */
3165 return EOB_ACT_END_OF_FILE;
3166 }
3167
3168 else
3169 {
3170 /* We matched some text prior to the EOB, first
3171 * process it.
3172 */
3173 return EOB_ACT_LAST_MATCH;
3174 }
3175 }
3176
3177 /* Try to read more data. */
3178
3179 /* First move last chars to start of buffer. */
3180 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
3181
3182 for ( i = 0; i < number_to_move; ++i )
3183 *(dest++) = *(source++);
3184
3185 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3186 /* don't do the read, it's not guaranteed to return an EOF,
3187 * just force an EOF
3188 */
3189 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
3190
3191 else
3192 {
3193 int num_to_read =
3194 yy_current_buffer->yy_buf_size - number_to_move - 1;
3195
3196 while ( num_to_read <= 0 )
3197 { /* Not enough room in the buffer - grow it. */
3198#ifdef YY_USES_REJECT
3199 YY_FATAL_ERROR(
3200"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
3201#else
3202
3203 /* just a shorter name for the current buffer */
3204 YY_BUFFER_STATE b = yy_current_buffer;
3205
3206 int yy_c_buf_p_offset =
3207 (int) (yy_c_buf_p - b->yy_ch_buf);
3208
3209 if ( b->yy_is_our_buffer )
3210 {
3211 int new_size = b->yy_buf_size * 2;
3212
3213 if ( new_size <= 0 )
3214 b->yy_buf_size += b->yy_buf_size / 8;
3215 else
3216 b->yy_buf_size *= 2;
3217
3218 b->yy_ch_buf = (char *)
3219 /* Include room in for 2 EOB chars. */
3220 yy_flex_realloc( (void *) b->yy_ch_buf,
3221 b->yy_buf_size + 2 );
3222 }
3223 else
3224 /* Can't grow it, we don't own it. */
3225 b->yy_ch_buf = 0;
3226
3227 if ( ! b->yy_ch_buf )
3228 YY_FATAL_ERROR(
3229 "fatal error - scanner input buffer overflow" );
3230
3231 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
3232
3233 num_to_read = yy_current_buffer->yy_buf_size -
3234 number_to_move - 1;
3235#endif
3236 }
3237
3238 if ( num_to_read > YY_READ_BUF_SIZE )
3239 num_to_read = YY_READ_BUF_SIZE;
3240
3241 /* Read in more data. */
3242 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
3243 yy_n_chars, num_to_read );
3244
3245 yy_current_buffer->yy_n_chars = yy_n_chars;
3246 }
3247
3248 if ( yy_n_chars == 0 )
3249 {
3250 if ( number_to_move == YY_MORE_ADJ )
3251 {
3252 ret_val = EOB_ACT_END_OF_FILE;
3253 yyrestart( yyin );
3254 }
3255
3256 else
3257 {
3258 ret_val = EOB_ACT_LAST_MATCH;
3259 yy_current_buffer->yy_buffer_status =
3260 YY_BUFFER_EOF_PENDING;
3261 }
3262 }
3263
3264 else
3265 ret_val = EOB_ACT_CONTINUE_SCAN;
3266
3267 yy_n_chars += number_to_move;
3268 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
3269 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
3270
3271 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
3272
3273 return ret_val;
3274 }
3275
3276
3277/* yy_get_previous_state - get the state just before the EOB char was reached */
3278
3279static yy_state_type yy_get_previous_state()
3280 {
3281 register yy_state_type yy_current_state;
3282 register char *yy_cp;
3283
3284 yy_current_state = yy_start;
3285 yy_state_ptr = yy_state_buf;
3286 *yy_state_ptr++ = yy_current_state;
3287
3288 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
3289 {
3290 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3291 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3292 {
3293 yy_current_state = (int) yy_def[yy_current_state];
Lev Walkin2535a692005-07-02 21:42:40 +00003294 if ( yy_current_state >= 709 )
Lev Walkinf15320b2004-06-03 03:38:44 +00003295 yy_c = yy_meta[(unsigned int) yy_c];
3296 }
3297 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3298 *yy_state_ptr++ = yy_current_state;
3299 }
3300
3301 return yy_current_state;
3302 }
3303
3304
3305/* yy_try_NUL_trans - try to make a transition on the NUL character
3306 *
3307 * synopsis
3308 * next_state = yy_try_NUL_trans( current_state );
3309 */
3310
3311#ifdef YY_USE_PROTOS
3312static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
3313#else
3314static yy_state_type yy_try_NUL_trans( yy_current_state )
3315yy_state_type yy_current_state;
3316#endif
3317 {
3318 register int yy_is_jam;
3319
3320 register YY_CHAR yy_c = 1;
3321 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3322 {
3323 yy_current_state = (int) yy_def[yy_current_state];
Lev Walkin2535a692005-07-02 21:42:40 +00003324 if ( yy_current_state >= 709 )
Lev Walkinf15320b2004-06-03 03:38:44 +00003325 yy_c = yy_meta[(unsigned int) yy_c];
3326 }
3327 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
Lev Walkin2535a692005-07-02 21:42:40 +00003328 yy_is_jam = (yy_current_state == 708);
Lev Walkinf15320b2004-06-03 03:38:44 +00003329 if ( ! yy_is_jam )
3330 *yy_state_ptr++ = yy_current_state;
3331
3332 return yy_is_jam ? 0 : yy_current_state;
3333 }
3334
3335
3336#ifndef YY_NO_UNPUT
3337#ifdef YY_USE_PROTOS
3338static void yyunput( int c, register char *yy_bp )
3339#else
3340static void yyunput( c, yy_bp )
3341int c;
3342register char *yy_bp;
3343#endif
3344 {
3345 register char *yy_cp = yy_c_buf_p;
3346
3347 /* undo effects of setting up yytext */
3348 *yy_cp = yy_hold_char;
3349
3350 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3351 { /* need to shift things up to make room */
3352 /* +2 for EOB chars. */
3353 register int number_to_move = yy_n_chars + 2;
3354 register char *dest = &yy_current_buffer->yy_ch_buf[
3355 yy_current_buffer->yy_buf_size + 2];
3356 register char *source =
3357 &yy_current_buffer->yy_ch_buf[number_to_move];
3358
3359 while ( source > yy_current_buffer->yy_ch_buf )
3360 *--dest = *--source;
3361
3362 yy_cp += (int) (dest - source);
3363 yy_bp += (int) (dest - source);
3364 yy_current_buffer->yy_n_chars =
3365 yy_n_chars = yy_current_buffer->yy_buf_size;
3366
3367 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
3368 YY_FATAL_ERROR( "flex scanner push-back overflow" );
3369 }
3370
3371 *--yy_cp = (char) c;
3372
3373 if ( c == '\n' )
3374 --yylineno;
3375
3376 yytext_ptr = yy_bp;
3377 yy_hold_char = *yy_cp;
3378 yy_c_buf_p = yy_cp;
3379 }
3380#endif /* ifndef YY_NO_UNPUT */
3381
3382
3383#ifdef __cplusplus
3384static int yyinput()
3385#else
3386static int input()
3387#endif
3388 {
3389 int c;
3390
3391 *yy_c_buf_p = yy_hold_char;
3392
3393 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
3394 {
3395 /* yy_c_buf_p now points to the character we want to return.
3396 * If this occurs *before* the EOB characters, then it's a
3397 * valid NUL; if not, then we've hit the end of the buffer.
3398 */
3399 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
3400 /* This was really a NUL. */
3401 *yy_c_buf_p = '\0';
3402
3403 else
3404 { /* need more input */
3405 int offset = yy_c_buf_p - yytext_ptr;
3406 ++yy_c_buf_p;
3407
3408 switch ( yy_get_next_buffer() )
3409 {
3410 case EOB_ACT_LAST_MATCH:
3411 /* This happens because yy_g_n_b()
3412 * sees that we've accumulated a
3413 * token and flags that we need to
3414 * try matching the token before
3415 * proceeding. But for input(),
3416 * there's no matching to consider.
3417 * So convert the EOB_ACT_LAST_MATCH
3418 * to EOB_ACT_END_OF_FILE.
3419 */
3420
3421 /* Reset buffer status. */
3422 yyrestart( yyin );
3423
3424 /* fall through */
3425
3426 case EOB_ACT_END_OF_FILE:
3427 {
3428 if ( yywrap() )
3429 return EOF;
3430
3431 if ( ! yy_did_buffer_switch_on_eof )
3432 YY_NEW_FILE;
3433#ifdef __cplusplus
3434 return yyinput();
3435#else
3436 return input();
3437#endif
3438 }
3439
3440 case EOB_ACT_CONTINUE_SCAN:
3441 yy_c_buf_p = yytext_ptr + offset;
3442 break;
3443 }
3444 }
3445 }
3446
3447 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */
3448 *yy_c_buf_p = '\0'; /* preserve yytext */
3449 yy_hold_char = *++yy_c_buf_p;
3450
3451 if ( c == '\n' )
3452 ++yylineno;
3453
3454 return c;
3455 }
3456
3457
3458#ifdef YY_USE_PROTOS
3459void yyrestart( FILE *input_file )
3460#else
3461void yyrestart( input_file )
3462FILE *input_file;
3463#endif
3464 {
3465 if ( ! yy_current_buffer )
3466 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
3467
3468 yy_init_buffer( yy_current_buffer, input_file );
3469 yy_load_buffer_state();
3470 }
3471
3472
3473#ifdef YY_USE_PROTOS
3474void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
3475#else
3476void yy_switch_to_buffer( new_buffer )
3477YY_BUFFER_STATE new_buffer;
3478#endif
3479 {
3480 if ( yy_current_buffer == new_buffer )
3481 return;
3482
3483 if ( yy_current_buffer )
3484 {
3485 /* Flush out information for old buffer. */
3486 *yy_c_buf_p = yy_hold_char;
3487 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
3488 yy_current_buffer->yy_n_chars = yy_n_chars;
3489 }
3490
3491 yy_current_buffer = new_buffer;
3492 yy_load_buffer_state();
3493
3494 /* We don't actually know whether we did this switch during
3495 * EOF (yywrap()) processing, but the only time this flag
3496 * is looked at is after yywrap() is called, so it's safe
3497 * to go ahead and always set it.
3498 */
3499 yy_did_buffer_switch_on_eof = 1;
3500 }
3501
3502
3503#ifdef YY_USE_PROTOS
3504void yy_load_buffer_state( void )
3505#else
3506void yy_load_buffer_state()
3507#endif
3508 {
3509 yy_n_chars = yy_current_buffer->yy_n_chars;
3510 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
3511 yyin = yy_current_buffer->yy_input_file;
3512 yy_hold_char = *yy_c_buf_p;
3513 }
3514
3515
3516#ifdef YY_USE_PROTOS
3517YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
3518#else
3519YY_BUFFER_STATE yy_create_buffer( file, size )
3520FILE *file;
3521int size;
3522#endif
3523 {
3524 YY_BUFFER_STATE b;
3525
3526 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3527 if ( ! b )
3528 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3529
3530 b->yy_buf_size = size;
3531
3532 /* yy_ch_buf has to be 2 characters longer than the size given because
3533 * we need to put in 2 end-of-buffer characters.
3534 */
3535 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
3536 if ( ! b->yy_ch_buf )
3537 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3538
3539 b->yy_is_our_buffer = 1;
3540
3541 yy_init_buffer( b, file );
3542
3543 return b;
3544 }
3545
3546
3547#ifdef YY_USE_PROTOS
3548void yy_delete_buffer( YY_BUFFER_STATE b )
3549#else
3550void yy_delete_buffer( b )
3551YY_BUFFER_STATE b;
3552#endif
3553 {
3554 if ( ! b )
3555 return;
3556
3557 if ( b == yy_current_buffer )
3558 yy_current_buffer = (YY_BUFFER_STATE) 0;
3559
3560 if ( b->yy_is_our_buffer )
3561 yy_flex_free( (void *) b->yy_ch_buf );
3562
3563 yy_flex_free( (void *) b );
3564 }
3565
3566
3567#ifndef YY_ALWAYS_INTERACTIVE
3568#ifndef YY_NEVER_INTERACTIVE
3569extern int isatty YY_PROTO(( int ));
3570#endif
3571#endif
3572
3573#ifdef YY_USE_PROTOS
3574void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
3575#else
3576void yy_init_buffer( b, file )
3577YY_BUFFER_STATE b;
3578FILE *file;
3579#endif
3580
3581
3582 {
3583 yy_flush_buffer( b );
3584
3585 b->yy_input_file = file;
3586 b->yy_fill_buffer = 1;
3587
3588#if YY_ALWAYS_INTERACTIVE
3589 b->yy_is_interactive = 1;
3590#else
3591#if YY_NEVER_INTERACTIVE
3592 b->yy_is_interactive = 0;
3593#else
3594 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3595#endif
3596#endif
3597 }
3598
3599
3600#ifdef YY_USE_PROTOS
3601void yy_flush_buffer( YY_BUFFER_STATE b )
3602#else
3603void yy_flush_buffer( b )
3604YY_BUFFER_STATE b;
3605#endif
3606
3607 {
3608 if ( ! b )
3609 return;
3610
3611 b->yy_n_chars = 0;
3612
3613 /* We always need two end-of-buffer characters. The first causes
3614 * a transition to the end-of-buffer state. The second causes
3615 * a jam in that state.
3616 */
3617 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3618 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3619
3620 b->yy_buf_pos = &b->yy_ch_buf[0];
3621
3622 b->yy_at_bol = 1;
3623 b->yy_buffer_status = YY_BUFFER_NEW;
3624
3625 if ( b == yy_current_buffer )
3626 yy_load_buffer_state();
3627 }
3628
3629
3630#ifndef YY_NO_SCAN_BUFFER
3631#ifdef YY_USE_PROTOS
3632YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
3633#else
3634YY_BUFFER_STATE yy_scan_buffer( base, size )
3635char *base;
3636yy_size_t size;
3637#endif
3638 {
3639 YY_BUFFER_STATE b;
3640
3641 if ( size < 2 ||
3642 base[size-2] != YY_END_OF_BUFFER_CHAR ||
3643 base[size-1] != YY_END_OF_BUFFER_CHAR )
3644 /* They forgot to leave room for the EOB's. */
3645 return 0;
3646
3647 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
3648 if ( ! b )
3649 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3650
3651 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
3652 b->yy_buf_pos = b->yy_ch_buf = base;
3653 b->yy_is_our_buffer = 0;
3654 b->yy_input_file = 0;
3655 b->yy_n_chars = b->yy_buf_size;
3656 b->yy_is_interactive = 0;
3657 b->yy_at_bol = 1;
3658 b->yy_fill_buffer = 0;
3659 b->yy_buffer_status = YY_BUFFER_NEW;
3660
3661 yy_switch_to_buffer( b );
3662
3663 return b;
3664 }
3665#endif
3666
3667
3668#ifndef YY_NO_SCAN_STRING
3669#ifdef YY_USE_PROTOS
3670YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
3671#else
3672YY_BUFFER_STATE yy_scan_string( yy_str )
3673yyconst char *yy_str;
3674#endif
3675 {
3676 int len;
3677 for ( len = 0; yy_str[len]; ++len )
3678 ;
3679
3680 return yy_scan_bytes( yy_str, len );
3681 }
3682#endif
3683
3684
3685#ifndef YY_NO_SCAN_BYTES
3686#ifdef YY_USE_PROTOS
3687YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
3688#else
3689YY_BUFFER_STATE yy_scan_bytes( bytes, len )
3690yyconst char *bytes;
3691int len;
3692#endif
3693 {
3694 YY_BUFFER_STATE b;
3695 char *buf;
3696 yy_size_t n;
3697 int i;
3698
3699 /* Get memory for full buffer, including space for trailing EOB's. */
3700 n = len + 2;
3701 buf = (char *) yy_flex_alloc( n );
3702 if ( ! buf )
3703 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3704
3705 for ( i = 0; i < len; ++i )
3706 buf[i] = bytes[i];
3707
3708 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3709
3710 b = yy_scan_buffer( buf, n );
3711 if ( ! b )
3712 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3713
3714 /* It's okay to grow etc. this buffer, and we should throw it
3715 * away when we're done.
3716 */
3717 b->yy_is_our_buffer = 1;
3718
3719 return b;
3720 }
3721#endif
3722
3723
3724#ifndef YY_NO_PUSH_STATE
3725#ifdef YY_USE_PROTOS
3726static void yy_push_state( int new_state )
3727#else
3728static void yy_push_state( new_state )
3729int new_state;
3730#endif
3731 {
3732 if ( yy_start_stack_ptr >= yy_start_stack_depth )
3733 {
3734 yy_size_t new_size;
3735
3736 yy_start_stack_depth += YY_START_STACK_INCR;
3737 new_size = yy_start_stack_depth * sizeof( int );
3738
3739 if ( ! yy_start_stack )
3740 yy_start_stack = (int *) yy_flex_alloc( new_size );
3741
3742 else
3743 yy_start_stack = (int *) yy_flex_realloc(
3744 (void *) yy_start_stack, new_size );
3745
3746 if ( ! yy_start_stack )
3747 YY_FATAL_ERROR(
3748 "out of memory expanding start-condition stack" );
3749 }
3750
3751 yy_start_stack[yy_start_stack_ptr++] = YY_START;
3752
3753 BEGIN(new_state);
3754 }
3755#endif
3756
3757
3758#ifndef YY_NO_POP_STATE
3759static void yy_pop_state()
3760 {
3761 if ( --yy_start_stack_ptr < 0 )
3762 YY_FATAL_ERROR( "start-condition stack underflow" );
3763
3764 BEGIN(yy_start_stack[yy_start_stack_ptr]);
3765 }
3766#endif
3767
3768
3769#ifndef YY_NO_TOP_STATE
3770static int yy_top_state()
3771 {
3772 return yy_start_stack[yy_start_stack_ptr - 1];
3773 }
3774#endif
3775
3776#ifndef YY_EXIT_FAILURE
3777#define YY_EXIT_FAILURE 2
3778#endif
3779
3780#ifdef YY_USE_PROTOS
3781static void yy_fatal_error( yyconst char msg[] )
3782#else
3783static void yy_fatal_error( msg )
3784char msg[];
3785#endif
3786 {
3787 (void) fprintf( stderr, "%s\n", msg );
3788 exit( YY_EXIT_FAILURE );
3789 }
3790
3791
3792
3793/* Redefine yyless() so it works in section 3 code. */
3794
3795#undef yyless
3796#define yyless(n) \
3797 do \
3798 { \
3799 /* Undo effects of setting up yytext. */ \
3800 yytext[yyleng] = yy_hold_char; \
3801 yy_c_buf_p = yytext + n; \
3802 yy_hold_char = *yy_c_buf_p; \
3803 *yy_c_buf_p = '\0'; \
3804 yyleng = n; \
3805 } \
3806 while ( 0 )
3807
3808
3809/* Internal utility routines. */
3810
3811#ifndef yytext_ptr
3812#ifdef YY_USE_PROTOS
3813static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
3814#else
3815static void yy_flex_strncpy( s1, s2, n )
3816char *s1;
3817yyconst char *s2;
3818int n;
3819#endif
3820 {
3821 register int i;
3822 for ( i = 0; i < n; ++i )
3823 s1[i] = s2[i];
3824 }
3825#endif
3826
3827#ifdef YY_NEED_STRLEN
3828#ifdef YY_USE_PROTOS
3829static int yy_flex_strlen( yyconst char *s )
3830#else
3831static int yy_flex_strlen( s )
3832yyconst char *s;
3833#endif
3834 {
3835 register int n;
3836 for ( n = 0; s[n]; ++n )
3837 ;
3838
3839 return n;
3840 }
3841#endif
3842
3843
3844#ifdef YY_USE_PROTOS
3845static void *yy_flex_alloc( yy_size_t size )
3846#else
3847static void *yy_flex_alloc( size )
3848yy_size_t size;
3849#endif
3850 {
3851 return (void *) malloc( size );
3852 }
3853
3854#ifdef YY_USE_PROTOS
3855static void *yy_flex_realloc( void *ptr, yy_size_t size )
3856#else
3857static void *yy_flex_realloc( ptr, size )
3858void *ptr;
3859yy_size_t size;
3860#endif
3861 {
3862 /* The cast to (char *) in the following accommodates both
3863 * implementations that use char* generic pointers, and those
3864 * that use void* generic pointers. It works with the latter
3865 * because both ANSI C and C++ allow castless assignment from
3866 * any pointer type to void*, and deal with argument conversions
3867 * as though doing an assignment.
3868 */
3869 return (void *) realloc( (char *) ptr, size );
3870 }
3871
3872#ifdef YY_USE_PROTOS
3873static void yy_flex_free( void *ptr )
3874#else
3875static void yy_flex_free( ptr )
3876void *ptr;
3877#endif
3878 {
3879 free( ptr );
3880 }
3881
3882#if YY_MAIN
3883int main()
3884 {
3885 yylex();
3886 return 0;
3887 }
3888#endif
Lev Walkin2535a692005-07-02 21:42:40 +00003889#line 519 "asn1p_l.l"
Lev Walkinf15320b2004-06-03 03:38:44 +00003890
3891
3892/*
3893 * Very dirty but wonderful hack allowing to rule states from within .y file.
3894 */
Lev Walkinf59d0752004-08-18 04:59:12 +00003895void asn1p_lexer_hack_push_opaque_state() { yy_push_state(opaque); }
Lev Walkinf15320b2004-06-03 03:38:44 +00003896
3897/*
3898 * Another hack which disables recognizing some tokens when inside WITH SYNTAX.
3899 */
Lev Walkinf59d0752004-08-18 04:59:12 +00003900void asn1p_lexer_hack_enable_with_syntax() { yy_push_state(with_syntax); }
3901
3902/* Yet another */
3903void asn1p_lexer_hack_push_encoding_control() {
3904 yy_push_state(encoding_control);
Lev Walkinf15320b2004-06-03 03:38:44 +00003905}
3906
Lev Walkind21c5052004-09-29 13:18:09 +00003907static asn1c_integer_t
Lev Walkinf15320b2004-06-03 03:38:44 +00003908asn1p_atoi(char *ptr) {
Lev Walkind21c5052004-09-29 13:18:09 +00003909 asn1c_integer_t value;
Lev Walkinf15320b2004-06-03 03:38:44 +00003910 errno = 0; /* Clear the error code */
3911
3912 if(sizeof(value) <= sizeof(int)) {
3913 value = strtol(ptr, 0, 10);
3914 } else {
3915#ifdef HAVE_STRTOIMAX
3916 value = strtoimax(ptr, 0, 10);
3917#elif HAVE_STRTOLL
3918 value = strtoll(ptr, 0, 10);
3919#else
3920 value = strtol(ptr, 0, 10);
3921#endif
3922 }
3923
3924 if(errno == ERANGE) {
3925 fprintf(stderr,
3926 "Value \"%s\" at line %d is too large "
Lev Walkin129a79e2005-04-05 08:46:22 +00003927 "for this compiler! Please contact the asn1c author.\n",
Lev Walkinf15320b2004-06-03 03:38:44 +00003928 ptr, yylineno);
3929 errno = ERANGE; /* Restore potentially clobbered errno */
3930 }
3931
3932 return value;
3933}
3934