diff --git a/libasn1parser/asn1p_expr.c b/libasn1parser/asn1p_expr.c index 8760066d6db8e60ed7909bd235ab0273b6230112..71c1636d44198df65cdf0b016c64614ae2458fde 100644 --- a/libasn1parser/asn1p_expr.c +++ b/libasn1parser/asn1p_expr.c @@ -214,6 +214,18 @@ asn1p_expr_add(asn1p_expr_t *to, asn1p_expr_t *what) { what->parent_expr = to; } +/* + * Add inner expressions as members of another. + */ +void +asn1p_expr_add_many(asn1p_expr_t *to, asn1p_expr_t *from_what) { + asn1p_expr_t *expr; + TQ_FOR(expr, &(from_what->members), next) { + expr->parent_expr = to; + } + TQ_CONCAT(&(to->members), &(from_what->members), next); +} + /* * Destruct the types collection structure. diff --git a/libasn1parser/asn1p_expr.h b/libasn1parser/asn1p_expr.h index 4e12c898c225517aa080024526f86af50dc921c0..89d939a022e2d9982a00f1e4988e4abaeb4aaeaa 100644 --- a/libasn1parser/asn1p_expr.h +++ b/libasn1parser/asn1p_expr.h @@ -278,6 +278,7 @@ asn1p_expr_t *asn1p_expr_clone_with_resolver(asn1p_expr_t *, asn1p_expr_t *(*resolver)(asn1p_expr_t *to_resolve, void *resolver_arg), void *resolver_arg); void asn1p_expr_add(asn1p_expr_t *to, asn1p_expr_t *what); +void asn1p_expr_add_many(asn1p_expr_t *to, asn1p_expr_t *from_what); void asn1p_expr_free(asn1p_expr_t *expr); #define TAG2STRING_BUFFER_SIZE 64 /* buf should be at least this big */ diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c index abae52da616562f18340495bb841d627d51b17fe..cc4a6dd29b1b342f47e9068f928d1e37826d81c8 100644 --- a/libasn1parser/asn1p_l.c +++ b/libasn1parser/asn1p_l.c @@ -1,6 +1,6 @@ -#line 2 "asn1p_l.c" +#line 2 "lex.yy.c" -#line 4 "asn1p_l.c" +#line 4 "lex.yy.c" #define YY_INT_ALIGNED short int @@ -214,8 +214,13 @@ typedef unsigned int flex_uint32_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + /* %if-not-reentrant */ -extern int asn1p_leng; +extern yy_size_t asn1p_leng; /* %endif */ /* %if-c-only */ @@ -237,7 +242,7 @@ extern FILE *asn1p_in, *asn1p_out; */ #define YY_LESS_LINENO(n) \ do { \ - int yyl;\ + yy_size_t yyl;\ for ( yyl = n; yyl < asn1p_leng; ++yyl )\ if ( asn1p_text[yyl] == '\n' )\ --asn1p_lineno;\ @@ -259,11 +264,6 @@ extern FILE *asn1p_in, *asn1p_out; #define unput(c) yyunput( c, (yytext_ptr) ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -286,7 +286,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -370,8 +370,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ /* yy_hold_char holds the character lost when asn1p_text is formed. */ static char yy_hold_char; -static int yy_n_chars; /* number of characters read into yy_ch_buf */ -int asn1p_leng; +static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ +yy_size_t asn1p_leng; /* Points to current character in buffer. */ static char *yy_c_buf_p = (char *) 0; @@ -402,7 +402,7 @@ static void asn1p__init_buffer (YY_BUFFER_STATE b,FILE *file ); YY_BUFFER_STATE asn1p__scan_buffer (char *base,yy_size_t size ); YY_BUFFER_STATE asn1p__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE asn1p__scan_bytes (yyconst char *bytes,int len ); +YY_BUFFER_STATE asn1p__scan_bytes (yyconst char *bytes,yy_size_t len ); /* %endif */ @@ -470,15 +470,15 @@ static void yy_fatal_error (yyconst char msg[] ); #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ /* %% [2.0] code to fiddle asn1p_text and asn1p_leng for yymore() goes here \ */\ - asn1p_leng = (size_t) (yy_cp - yy_bp); \ + asn1p_leng = (yy_size_t) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ /* %% [3.0] code to copy yytext_ptr to asn1p_text[] goes here, if %array \ */\ (yy_c_buf_p) = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 138 -#define YY_END_OF_BUFFER 139 +#define YY_NUM_RULES 140 +#define YY_END_OF_BUFFER 141 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -486,233 +486,234 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_acclist[1264] = +static yyconst flex_int16_t yy_acclist[1272] = { 0, - 139, 137, 138, 132, 137, 138, 132, 138, 135, 137, - 138, 19, 137, 138, 135, 137, 138, 137, 138, 135, - 137, 138, 137, 138, 137, 138, 135, 137, 138, 137, - 138, 33, 137, 138, 32, 137, 138, 135, 137, 138, - 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, - 120, 121, 137, 138, 120, 121, 137, 138, 120, 121, - 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, - 120, 121, 137, 138, 120, 121, 137, 138, 120, 121, - 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, - 120, 121, 137, 138, 120, 121, 137, 138, 120, 121, - - 137, 138, 120, 121, 137, 138, 120, 121, 137, 138, - 120, 121, 137, 138, 120, 121, 137, 138, 119, 137, - 138, 135, 137, 138, 9, 137, 138, 6, 138, 6, - 137, 138, 8, 137, 138, 8, 137, 138, 11, 13, - 137, 138, 11, 138, 13, 137, 138, 13, 137, 138, - 13, 137, 138, 21, 137, 138, 21, 138, 22, 137, - 138, 16, 137, 138, 16, 138, 18, 137, 138, 18, - 137, 138, 14, 137, 138, 15, 137, 138, 25, 27, - 137, 138, 27, 137, 138, 28, 138, 25, 26, 27, - 137, 138, 25, 26, 27, 137, 138, 130, 137, 138, - - 130, 138, 137, 138, 126, 137, 138, 137, 138, 137, - 138, 125, 137, 138, 128, 137, 138, 129, 137, 138, - 127, 137, 138, 131, 137, 138, 132, 19, 19, 117, - 118, 5, 31, 124, 10, 34, 32, 34, 120, 121, - 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 121, 120, 121, 120, 121, 120, 121, 120, 121, 44, + 141, 139, 140, 132, 139, 140, 132, 140, 137, 139, + 140, 19, 139, 140, 137, 139, 140, 139, 140, 137, + 139, 140, 139, 140, 139, 140, 137, 139, 140, 139, + 140, 33, 139, 140, 32, 139, 140, 137, 139, 140, + 139, 140, 120, 121, 139, 140, 120, 121, 139, 140, + 120, 121, 139, 140, 120, 121, 139, 140, 120, 121, + 139, 140, 120, 121, 139, 140, 120, 121, 139, 140, + 120, 121, 139, 140, 120, 121, 139, 140, 120, 121, + 139, 140, 120, 121, 139, 140, 120, 121, 139, 140, + 120, 121, 139, 140, 120, 121, 139, 140, 120, 121, + + 139, 140, 120, 121, 139, 140, 120, 121, 139, 140, + 120, 121, 139, 140, 120, 121, 139, 140, 137, 139, + 140, 137, 139, 140, 119, 139, 140, 137, 139, 140, + 9, 139, 140, 6, 140, 6, 139, 140, 8, 139, + 140, 8, 139, 140, 11, 13, 139, 140, 11, 140, + 13, 139, 140, 13, 139, 140, 13, 139, 140, 21, + 139, 140, 21, 140, 22, 139, 140, 16, 139, 140, + 16, 140, 18, 139, 140, 18, 139, 140, 14, 139, + 140, 15, 139, 140, 25, 27, 139, 140, 27, 139, + 140, 28, 140, 25, 26, 27, 139, 140, 25, 26, + + 27, 139, 140, 130, 139, 140, 130, 140, 139, 140, + 126, 139, 140, 139, 140, 139, 140, 125, 139, 140, + 128, 139, 140, 129, 139, 140, 127, 139, 140, 131, + 139, 140, 132, 19, 19, 117, 118, 5, 31, 124, + 10, 34, 32, 34, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 44, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 120, 121, 120, 121, 121, 120, - 121, 120, 121, 89, 120, 121, 120, 121, 121, 120, - 121, 120, 121, 120, 121, 120, 121, 121, 120, 121, + 120, 121, 120, 121, 121, 120, 121, 120, 121, 89, + 120, 121, 120, 121, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 121, 120, 121, 120, 121, 121, - 121, 120, 121, 119, 9, 7, 7, 12, 21, 20, - 16, 25, 25, 26, 25, 26, 130, 5, 125, 136, - 117, 118, 31, 34, 123, 34, 122, 120, 121, 121, - 120, 121, 36, 120, 121, 37, 120, 121, 120, 121, - 120, 121, 120, 121, 41, 120, 121, 120, 121, 120, - 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 121, 121, 120, 121, 135, + 136, 119, 9, 7, 7, 12, 21, 20, 16, 25, + 25, 26, 25, 26, 130, 5, 125, 138, 117, 118, + 31, 34, 123, 34, 122, 120, 121, 121, 120, 121, + 36, 120, 121, 37, 120, 121, 120, 121, 120, 121, + 120, 121, 41, 120, 121, 120, 121, 120, 121, 120, - 121, 120, 121, 120, 121, 120, 121, 58, 120, 121, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 120, 121, 58, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 121, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 120, 121, 120, 121, 81, 120, - 121, 82, 120, 121, 120, 121, 121, 120, 121, 120, - 121, 120, 121, 121, 120, 121, 92, 120, 121, 120, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 81, 120, 121, 82, + 120, 121, 120, 121, 121, 120, 121, 120, 121, 120, + 121, 121, 120, 121, 92, 120, 121, 120, 121, 120, + 121, 120, 121, 121, 120, 121, 120, 121, 120, 121, + 100, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 121, 120, 121, 120, 121, - 120, 121, 100, 120, 121, 120, 121, 120, 121, 120, - 121, 120, 121, 120, 121, 120, 121, 121, 120, 121, - 120, 121, 120, 121, 121, 121, 121, 120, 121, 119, - 3, 17, 25, 26, 24, 25, 26, 125, 117, 118, - 30, 29, 2, 1, 120, 121, 120, 121, 120, 121, + 120, 121, 121, 121, 121, 120, 121, 119, 3, 17, + 25, 26, 24, 25, 26, 125, 117, 118, 30, 29, + 2, 1, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 120, 121, 120, 121, 66, 120, - 121, 121, 121, 120, 121, 120, 121, 120, 121, 120, + 120, 121, 120, 121, 120, 121, 66, 120, 121, 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, - 121, 84, 120, 121, 121, 120, 121, 120, 121, 120, - 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 84, + 120, 121, 121, 120, 121, 120, 121, 120, 121, 121, - 121, 97, 120, 121, 120, 121, 120, 121, 101, 120, - 121, 120, 121, 120, 121, 120, 121, 105, 120, 121, - 107, 120, 121, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 121, 121, 121, 116, 120, 121, - 3, 25, 26, 120, 121, 120, 121, 120, 121, 40, - 120, 121, 121, 120, 121, 120, 121, 120, 121, 47, + 120, 121, 120, 121, 120, 121, 120, 121, 121, 97, + 120, 121, 120, 121, 120, 121, 101, 120, 121, 120, + 121, 120, 121, 120, 121, 105, 120, 121, 107, 120, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 121, 121, 121, 116, 120, 121, 3, 25, + 26, 120, 121, 120, 121, 120, 121, 40, 120, 121, + 121, 120, 121, 120, 121, 120, 121, 47, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 120, 121, 120, 121, 65, 120, - 121, 121, 121, 121, 120, 121, 120, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 65, 120, 121, 121, + 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 120, 121, 121, 120, 121, 88, 120, 121, - 120, 121, 121, 120, 121, 120, 121, 120, 121, 121, - 120, 121, 120, 121, 120, 121, 120, 121, 121, 121, - 108, 120, 121, 120, 121, 120, 121, 121, 120, 121, - 121, 121, 121, 133, 25, 26, 35, 120, 121, 120, - 121, 120, 121, 121, 120, 121, 120, 121, 46, 120, - 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 120, 121, 121, 120, 121, 88, 120, 121, 120, 121, + 121, 120, 121, 120, 121, 120, 121, 121, 120, 121, + 120, 121, 120, 121, 120, 121, 121, 121, 108, 120, + 121, 120, 121, 120, 121, 121, 120, 121, 121, 121, + 121, 133, 25, 26, 35, 120, 121, 120, 121, 120, + 121, 121, 120, 121, 120, 121, 46, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, - 121, 60, 120, 121, 120, 121, 120, 121, 120, 121, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 60, - 120, 121, 121, 121, 121, 120, 121, 120, 121, 120, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 121, 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, 120, - 121, 120, 121, 120, 121, 121, 86, 120, 121, 120, - 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 121, 120, 121, 120, 121, 102, 120, 121, 103, 120, - 121, 121, 121, 109, 120, 121, 120, 121, 121, 121, - 121, 121, 121, 25, 26, 120, 121, 120, 121, 121, - 43, 120, 121, 120, 121, 120, 121, 120, 121, 120, - 121, 52, 120, 121, 53, 120, 121, 120, 121, 120, - 121, 56, 120, 121, 120, 121, 120, 121, 120, 121, - - 62, 120, 121, 120, 121, 120, 121, 121, 121, 121, - 120, 121, 120, 121, 73, 120, 121, 74, 120, 121, - 120, 121, 120, 121, 120, 121, 78, 120, 121, 120, - 121, 120, 121, 120, 121, 121, 120, 121, 121, 91, - 120, 121, 120, 121, 94, 120, 121, 96, 120, 121, - 121, 120, 121, 120, 121, 121, 121, 120, 121, 112, - 121, 121, 121, 121, 121, 25, 26, 120, 121, 120, - 121, 121, 120, 121, 120, 121, 120, 121, 120, 121, - 120, 121, 55, 120, 121, 120, 121, 120, 121, 61, - 120, 121, 120, 121, 64, 120, 121, 121, 121, 121, - - 121, 120, 121, 72, 120, 121, 75, 120, 121, 76, - 120, 121, 120, 121, 120, 121, 121, 120, 121, 121, - 90, 120, 121, 121, 120, 121, 121, 120, 121, 99, - 120, 121, 121, 121, 120, 121, 121, 121, 121, 121, - 25, 26, 120, 121, 39, 120, 121, 42, 121, 45, - 120, 121, 48, 120, 121, 120, 121, 120, 121, 120, - 121, 120, 121, 120, 121, 121, 121, 121, 70, 121, - 120, 121, 120, 121, 120, 121, 121, 120, 121, 121, - 121, 120, 121, 121, 104, 121, 121, 110, 120, 121, - 121, 121, 121, 121, 134, 25, 120, 121, 49, 120, - - 121, 120, 121, 51, 120, 121, 120, 121, 120, 121, - 59, 120, 121, 120, 121, 121, 121, 121, 71, 120, - 121, 120, 121, 120, 121, 121, 120, 121, 121, 121, - 120, 121, 121, 120, 121, 121, 113, 121, 121, 121, - 121, 25, 38, 120, 121, 50, 120, 121, 54, 120, + 121, 120, 121, 121, 86, 120, 121, 120, 121, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 121, 120, + 121, 120, 121, 102, 120, 121, 103, 120, 121, 121, + 121, 109, 120, 121, 120, 121, 121, 121, 121, 121, + 121, 25, 26, 120, 121, 120, 121, 121, 43, 120, + 121, 120, 121, 120, 121, 120, 121, 120, 121, 52, + 120, 121, 53, 120, 121, 120, 121, 120, 121, 56, + + 120, 121, 120, 121, 120, 121, 120, 121, 62, 120, 121, 120, 121, 120, 121, 121, 121, 121, 120, 121, - 120, 121, 121, 120, 121, 121, 121, 120, 121, 121, - 120, 121, 121, 121, 121, 121, 25, 120, 121, 120, - 121, 121, 121, 121, 77, 120, 121, 79, 120, 121, - 80, 121, 120, 121, 121, 121, 120, 121, 121, 98, - - 120, 121, 121, 121, 121, 121, 25, 120, 121, 63, - 120, 121, 68, 121, 121, 69, 121, 120, 121, 85, - 121, 121, 93, 120, 121, 121, 106, 121, 121, 121, - 115, 121, 25, 120, 121, 121, 83, 120, 121, 121, - 121, 121, 114, 121, 25, 120, 121, 67, 121, 121, - 95, 121, 111, 121, 25, 57, 120, 121, 87, 121, - 23, 25, 4 + 120, 121, 73, 120, 121, 74, 120, 121, 120, 121, + 120, 121, 120, 121, 78, 120, 121, 120, 121, 120, + 121, 120, 121, 121, 120, 121, 121, 91, 120, 121, + 120, 121, 94, 120, 121, 96, 120, 121, 121, 120, + 121, 120, 121, 121, 121, 120, 121, 112, 121, 121, + 121, 121, 121, 25, 26, 120, 121, 120, 121, 121, + 120, 121, 120, 121, 120, 121, 120, 121, 120, 121, + 55, 120, 121, 120, 121, 120, 121, 61, 120, 121, + + 120, 121, 64, 120, 121, 121, 121, 121, 121, 120, + 121, 72, 120, 121, 75, 120, 121, 76, 120, 121, + 120, 121, 120, 121, 121, 120, 121, 121, 90, 120, + 121, 121, 120, 121, 121, 120, 121, 99, 120, 121, + 121, 121, 120, 121, 121, 121, 121, 121, 25, 26, + 120, 121, 39, 120, 121, 42, 121, 45, 120, 121, + 48, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 121, 121, 121, 70, 121, 120, 121, + 120, 121, 120, 121, 121, 120, 121, 121, 121, 120, + 121, 121, 104, 121, 121, 110, 120, 121, 121, 121, + + 121, 121, 134, 25, 120, 121, 49, 120, 121, 120, + 121, 51, 120, 121, 120, 121, 120, 121, 59, 120, + 121, 120, 121, 121, 121, 121, 71, 120, 121, 120, + 121, 120, 121, 121, 120, 121, 121, 121, 120, 121, + 121, 120, 121, 121, 113, 121, 121, 121, 121, 25, + 38, 120, 121, 50, 120, 121, 54, 120, 121, 120, + 121, 120, 121, 121, 121, 121, 120, 121, 120, 121, + 121, 120, 121, 121, 121, 120, 121, 121, 120, 121, + 121, 121, 121, 121, 25, 120, 121, 120, 121, 121, + 121, 121, 77, 120, 121, 79, 120, 121, 80, 121, + + 120, 121, 121, 121, 120, 121, 121, 98, 120, 121, + 121, 121, 121, 121, 25, 120, 121, 63, 120, 121, + 68, 121, 121, 69, 121, 120, 121, 85, 121, 121, + 93, 120, 121, 121, 106, 121, 121, 121, 115, 121, + 25, 120, 121, 121, 83, 120, 121, 121, 121, 121, + 114, 121, 25, 120, 121, 67, 121, 121, 95, 121, + 111, 121, 25, 57, 120, 121, 87, 121, 23, 25, + 4 } ; -static yyconst flex_int16_t yy_accept[743] = +static yyconst flex_int16_t yy_accept[747] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 7, 9, 12, 15, 18, 20, 23, 25, 27, 30, 32, 35, 38, 41, 43, 47, 51, 55, 59, 63, 67, 71, 75, 79, 83, 87, 91, 95, 99, 103, 107, - 111, 115, 119, 122, 125, 128, 130, 133, 136, 139, - 143, 145, 148, 151, 154, 157, 159, 162, 165, 167, - 170, 173, 176, 179, 183, 186, 188, 193, 198, 201, - 203, 205, 208, 210, 212, 215, 218, 221, 224, 227, - 227, 228, 229, 230, 230, 231, 231, 232, 232, 232, - - 232, 233, 234, 235, 236, 236, 237, 237, 239, 239, - 239, 241, 243, 245, 247, 249, 251, 252, 254, 256, - 258, 260, 263, 265, 267, 269, 271, 273, 275, 277, - 279, 281, 282, 283, 285, 287, 289, 291, 293, 295, - 297, 299, 300, 302, 304, 307, 309, 310, 312, 314, - 316, 318, 319, 321, 323, 325, 327, 329, 331, 333, - 335, 336, 338, 340, 341, 342, 344, 344, 345, 345, - 345, 345, 346, 347, 348, 349, 350, 351, 352, 352, - 353, 355, 357, 358, 359, 359, 360, 361, 361, 361, - 362, 362, 363, 363, 363, 363, 363, 365, 366, 367, - - 367, 368, 370, 371, 373, 376, 379, 381, 383, 383, - 385, 388, 390, 392, 394, 396, 398, 400, 402, 404, - 406, 408, 411, 413, 415, 417, 419, 421, 423, 424, - 425, 427, 429, 431, 433, 435, 437, 439, 442, 445, - 447, 448, 450, 452, 454, 455, 457, 460, 462, 464, - 466, 467, 469, 471, 473, 476, 478, 480, 482, 484, - 486, 488, 489, 491, 493, 495, 496, 497, 498, 500, - 501, 501, 501, 502, 503, 505, 508, 509, 509, 510, - 511, 512, 513, 514, 515, 515, 515, 515, 517, 519, - 521, 523, 525, 527, 529, 531, 533, 535, 537, 539, + 111, 115, 119, 122, 125, 128, 131, 134, 136, 139, + 142, 145, 149, 151, 154, 157, 160, 163, 165, 168, + 171, 173, 176, 179, 182, 185, 189, 192, 194, 199, + 204, 207, 209, 211, 214, 216, 218, 221, 224, 227, + 230, 233, 233, 234, 235, 236, 236, 237, 237, 238, + + 238, 238, 238, 239, 240, 241, 242, 242, 243, 243, + 245, 245, 245, 247, 249, 251, 253, 255, 257, 258, + 260, 262, 264, 266, 269, 271, 273, 275, 277, 279, + 281, 283, 285, 287, 288, 289, 291, 293, 295, 297, + 299, 301, 303, 305, 306, 308, 310, 313, 315, 316, + 318, 320, 322, 324, 325, 327, 329, 331, 333, 335, + 337, 339, 341, 342, 344, 346, 347, 348, 350, 351, + 352, 352, 353, 353, 353, 353, 354, 355, 356, 357, + 358, 359, 360, 360, 361, 363, 365, 366, 367, 367, + 368, 369, 369, 369, 370, 370, 371, 371, 371, 371, + + 371, 373, 374, 375, 375, 376, 378, 379, 381, 384, + 387, 389, 391, 391, 393, 396, 398, 400, 402, 404, + 406, 408, 410, 412, 414, 416, 419, 421, 423, 425, + 427, 429, 431, 432, 433, 435, 437, 439, 441, 443, + 445, 447, 450, 453, 455, 456, 458, 460, 462, 463, + 465, 468, 470, 472, 474, 475, 477, 479, 481, 484, + 486, 488, 490, 492, 494, 496, 497, 499, 501, 503, + 504, 505, 506, 508, 509, 509, 509, 510, 511, 513, + 516, 517, 517, 518, 519, 520, 521, 522, 523, 523, + 523, 523, 525, 527, 529, 531, 533, 535, 537, 539, 541, 543, 545, 547, 549, 551, 553, 555, 557, 559, - 562, 563, 564, 566, 568, 570, 572, 574, 576, 578, - 580, 582, 585, 586, 588, 590, 592, 593, 595, 597, - 599, 601, 602, 605, 607, 609, 612, 614, 616, 618, - 621, 624, 625, 627, 629, 631, 633, 635, 636, 637, - 638, 641, 641, 641, 641, 641, 642, 644, 644, 646, - 648, 650, 653, 654, 656, 658, 660, 663, 665, 667, - 669, 671, 673, 675, 677, 679, 681, 683, 685, 687, - 689, 692, 693, 694, 695, 697, 699, 701, 703, 705, - 707, 709, 711, 713, 715, 716, 718, 721, 723, 724, - - 726, 726, 728, 730, 731, 733, 735, 737, 739, 740, - 741, 744, 746, 748, 749, 751, 752, 753, 754, 754, - 754, 755, 757, 757, 760, 762, 764, 765, 767, 769, - 772, 774, 776, 778, 780, 782, 784, 786, 788, 790, - 792, 795, 797, 799, 801, 803, 804, 805, 806, 808, - 810, 812, 814, 816, 818, 820, 822, 824, 826, 826, - 827, 830, 832, 833, 835, 837, 839, 841, 842, 844, - 846, 849, 852, 853, 854, 857, 859, 860, 861, 862, - 863, 864, 864, 864, 866, 866, 868, 870, 871, 874, - 876, 878, 880, 882, 885, 888, 890, 892, 895, 897, - - 899, 901, 904, 906, 908, 909, 910, 911, 913, 915, - 918, 921, 923, 925, 927, 930, 932, 934, 936, 937, - 939, 940, 943, 945, 948, 951, 952, 954, 956, 957, - 958, 960, 962, 963, 964, 965, 966, 966, 968, 968, - 970, 972, 973, 975, 977, 979, 981, 983, 986, 988, - 990, 993, 995, 998, 999, 1000, 1001, 1002, 1004, 1007, - 1010, 1013, 1015, 1017, 1018, 1020, 1021, 1024, 1025, 1027, - 1028, 1030, 1033, 1034, 1035, 1037, 1038, 1039, 1040, 1041, - 1041, 1041, 1043, 1043, 1045, 1048, 1050, 1053, 1056, 1058, - 1060, 1062, 1062, 1064, 1066, 1067, 1068, 1069, 1071, 1073, - - 1075, 1077, 1078, 1080, 1081, 1082, 1084, 1085, 1085, 1087, - 1088, 1091, 1092, 1093, 1094, 1095, 1095, 1096, 1097, 1097, - 1099, 1102, 1104, 1107, 1109, 1111, 1114, 1116, 1117, 1118, - 1119, 1122, 1124, 1126, 1127, 1129, 1130, 1131, 1133, 1134, - 1136, 1137, 1139, 1140, 1141, 1142, 1143, 1143, 1146, 1149, - 1152, 1154, 1156, 1157, 1158, 1159, 1161, 1163, 1164, 1166, - 1167, 1168, 1170, 1171, 1173, 1174, 1175, 1176, 1177, 1178, - 1178, 1180, 1182, 1183, 1184, 1185, 1188, 1191, 1193, 1195, - 1196, 1197, 1199, 1200, 1203, 1204, 1205, 1206, 1207, 1208, - 1208, 1210, 1213, 1215, 1216, 1218, 1220, 1222, 1223, 1226, - - 1227, 1229, 1230, 1231, 1233, 1234, 1234, 1236, 1237, 1240, - 1241, 1242, 1243, 1245, 1246, 1246, 1248, 1250, 1251, 1253, - 1255, 1256, 1256, 1259, 1261, 1263, 1263, 1263, 1263, 1263, - 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, - 1264, 1264 + 561, 563, 565, 567, 570, 571, 572, 574, 576, 578, + 580, 582, 584, 586, 588, 590, 593, 594, 596, 598, + 600, 601, 603, 605, 607, 609, 610, 613, 615, 617, + 620, 622, 624, 626, 629, 632, 633, 635, 637, 639, + 641, 643, 644, 645, 646, 649, 649, 649, 649, 649, + 650, 652, 652, 654, 656, 658, 661, 662, 664, 666, + 668, 671, 673, 675, 677, 679, 681, 683, 685, 687, + 689, 691, 693, 695, 697, 700, 701, 702, 703, 705, + 707, 709, 711, 713, 715, 717, 719, 721, 723, 724, + + 726, 729, 731, 732, 734, 734, 736, 738, 739, 741, + 743, 745, 747, 748, 749, 752, 754, 756, 757, 759, + 760, 761, 762, 762, 762, 763, 765, 765, 768, 770, + 772, 773, 775, 777, 780, 782, 784, 786, 788, 790, + 792, 794, 796, 798, 800, 803, 805, 807, 809, 811, + 812, 813, 814, 816, 818, 820, 822, 824, 826, 828, + 830, 832, 834, 834, 835, 838, 840, 841, 843, 845, + 847, 849, 850, 852, 854, 857, 860, 861, 862, 865, + 867, 868, 869, 870, 871, 872, 872, 872, 874, 874, + 876, 878, 879, 882, 884, 886, 888, 890, 893, 896, + + 898, 900, 903, 905, 907, 909, 912, 914, 916, 917, + 918, 919, 921, 923, 926, 929, 931, 933, 935, 938, + 940, 942, 944, 945, 947, 948, 951, 953, 956, 959, + 960, 962, 964, 965, 966, 968, 970, 971, 972, 973, + 974, 974, 976, 976, 978, 980, 981, 983, 985, 987, + 989, 991, 994, 996, 998, 1001, 1003, 1006, 1007, 1008, + 1009, 1010, 1012, 1015, 1018, 1021, 1023, 1025, 1026, 1028, + 1029, 1032, 1033, 1035, 1036, 1038, 1041, 1042, 1043, 1045, + 1046, 1047, 1048, 1049, 1049, 1049, 1051, 1051, 1053, 1056, + 1058, 1061, 1064, 1066, 1068, 1070, 1070, 1072, 1074, 1075, + + 1076, 1077, 1079, 1081, 1083, 1085, 1086, 1088, 1089, 1090, + 1092, 1093, 1093, 1095, 1096, 1099, 1100, 1101, 1102, 1103, + 1103, 1104, 1105, 1105, 1107, 1110, 1112, 1115, 1117, 1119, + 1122, 1124, 1125, 1126, 1127, 1130, 1132, 1134, 1135, 1137, + 1138, 1139, 1141, 1142, 1144, 1145, 1147, 1148, 1149, 1150, + 1151, 1151, 1154, 1157, 1160, 1162, 1164, 1165, 1166, 1167, + 1169, 1171, 1172, 1174, 1175, 1176, 1178, 1179, 1181, 1182, + 1183, 1184, 1185, 1186, 1186, 1188, 1190, 1191, 1192, 1193, + 1196, 1199, 1201, 1203, 1204, 1205, 1207, 1208, 1211, 1212, + 1213, 1214, 1215, 1216, 1216, 1218, 1221, 1223, 1224, 1226, + + 1228, 1230, 1231, 1234, 1235, 1237, 1238, 1239, 1241, 1242, + 1242, 1244, 1245, 1248, 1249, 1250, 1251, 1253, 1254, 1254, + 1256, 1258, 1259, 1261, 1263, 1264, 1264, 1267, 1269, 1271, + 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, + 1271, 1271, 1271, 1271, 1272, 1272 } ; static yyconst flex_int32_t yy_ec[256] = @@ -760,180 +761,182 @@ static yyconst flex_int32_t yy_meta[84] = 12, 1, 13 } ; -static yyconst flex_int16_t yy_base[768] = +static yyconst flex_int16_t yy_base[772] = { 0, 0, 0, 81, 84, 87, 99, 94, 96, 93, 108, - 91, 103, 186, 269, 352, 0, 1657, 1646, 130, 138, - 1645, 1643, 427, 146, 4507, 158, 207, 1633, 109, 230, - 493, 1621, 4507, 543, 268, 115, 274, 289, 488, 593, + 91, 103, 186, 269, 352, 0, 1666, 1656, 130, 138, + 1650, 1648, 427, 146, 4507, 158, 207, 1640, 109, 230, + 493, 1629, 4507, 543, 268, 115, 274, 289, 488, 593, 191, 599, 509, 215, 491, 621, 406, 638, 655, 658, - 678, 689, 1631, 733, 0, 4507, 4507, 1630, 1629, 4507, - 4507, 1621, 1622, 4507, 0, 0, 1622, 0, 0, 1602, - 4507, 4507, 4507, 0, 4507, 4507, 757, 839, 122, 166, - 127, 4507, 1612, 1609, 1604, 4507, 4507, 4507, 4507, 1605, - 201, 0, 1603, 1603, 1589, 96, 1585, 656, 1588, 772, - - 103, 807, 1580, 4507, 839, 857, 886, 907, 1565, 912, - 681, 757, 892, 903, 909, 962, 1578, 963, 978, 979, - 994, 1000, 1016, 1022, 1033, 1046, 1049, 1069, 1066, 1077, - 1090, 95, 79, 1105, 1108, 1116, 1131, 1142, 1153, 1159, - 1170, 147, 1183, 1186, 1199, 1207, 94, 1210, 1223, 1234, - 1247, 143, 1263, 1269, 1280, 1286, 1297, 1308, 1314, 1325, - 169, 1331, 1347, 194, 225, 1346, 0, 1572, 757, 943, - 1381, 0, 4507, 1570, 4507, 0, 4507, 0, 1554, 0, - 1536, 258, 333, 4507, 0, 1561, 4507, 1554, 0, 1552, - 0, 1550, 226, 1526, 204, 143, 1391, 4507, 866, 894, - - 4507, 1441, 1548, 1385, 1386, 1401, 1402, 1417, 1547, 1425, - 1428, 1441, 1449, 1491, 1492, 1508, 1509, 1524, 1540, 1546, - 1557, 1563, 1574, 1580, 1591, 1597, 1608, 1619, 223, 241, - 1632, 1640, 1643, 1658, 1661, 1664, 1690, 1682, 1693, 1706, - 226, 1714, 1727, 1735, 495, 1738, 1751, 1759, 1767, 1775, - 245, 1788, 1791, 1799, 1812, 1820, 1828, 1836, 1849, 1857, - 1870, 506, 1878, 1894, 1895, 470, 507, 221, 1910, 1546, - 1954, 1962, 1543, 4507, 285, 1505, 1533, 1489, 1531, 1530, - 4507, 4507, 4507, 4507, 436, 319, 1495, 1956, 1957, 1972, - 1978, 1989, 1995, 2011, 2012, 2027, 2035, 2043, 2059, 2056, - - 2067, 2080, 2083, 2098, 2104, 2115, 2121, 2132, 2147, 2153, - 469, 535, 2164, 2170, 2185, 2186, 2201, 2207, 2222, 2225, - 2233, 2246, 554, 2254, 2257, 2270, 205, 2278, 2291, 2299, - 2307, 523, 2315, 2323, 2336, 2344, 2347, 2365, 2362, 2368, - 2383, 557, 2386, 2389, 2406, 2412, 2423, 612, 528, 631, - 2439, 2473, 2496, 2519, 2531, 1517, 190, 1486, 2515, 2530, - 2546, 2543, 623, 2564, 2567, 2570, 2585, 2588, 2596, 2609, - 2617, 2630, 2641, 2647, 2658, 2669, 2684, 2690, 2701, 2707, - 2722, 248, 558, 632, 2723, 2743, 2740, 2761, 2760, 2776, - 2782, 2793, 2806, 2817, 613, 2814, 2830, 2838, 617, 2846, - - 309, 2854, 2867, 625, 2880, 2883, 2891, 2904, 636, 641, - 2915, 2921, 2932, 643, 2943, 668, 639, 621, 441, 2987, - 4507, 302, 1508, 2971, 2987, 2984, 649, 2995, 3008, 3011, - 3028, 3034, 3045, 3051, 3066, 3072, 3089, 3095, 3106, 3112, - 3123, 3129, 3140, 3146, 3162, 656, 680, 730, 3163, 3178, - 3184, 3195, 3201, 3216, 3222, 3233, 3248, 3254, 785, 878, - 3265, 3281, 511, 3278, 1482, 3289, 3302, 885, 3310, 3325, - 3328, 3331, 734, 664, 3346, 3349, 806, 735, 733, 830, - 880, 3398, 3410, 1481, 1461, 3364, 3404, 732, 3405, 3422, - 3421, 3437, 3438, 3453, 3454, 3469, 3475, 3486, 3492, 3503, - - 3514, 3525, 3531, 3542, 982, 790, 887, 3548, 3559, 3570, - 3576, 3587, 3593, 3608, 3609, 3624, 3630, 1445, 823, 3641, - 905, 3647, 1448, 3658, 3664, 933, 3679, 3685, 924, 984, - 3701, 1467, 987, 941, 918, 1000, 3735, 101, 0, 3729, - 3730, 1003, 3745, 3753, 3756, 3769, 3777, 3785, 3793, 3806, - 3814, 3822, 3830, 1012, 634, 1019, 1004, 3843, 3851, 3854, - 3867, 3875, 3878, 1056, 1444, 1028, 3891, 1042, 1427, 1022, - 3912, 3899, 1041, 1037, 3915, 1002, 1068, 1057, 1048, 3964, - 1381, 290, 1410, 3930, 3948, 1436, 3959, 3965, 3980, 3981, - 3996, 514, 4002, 4013, 1070, 1065, 1115, 1435, 4019, 4030, - - 4041, 1026, 1403, 1131, 1109, 1397, 1127, 798, 1425, 1138, - 4047, 1089, 1129, 1142, 1151, 1493, 4507, 1392, 1358, 4058, - 4064, 4079, 4080, 4095, 1374, 4096, 4111, 1111, 1146, 1124, - 4117, 4128, 4139, 1150, 1322, 1179, 1193, 1299, 1185, 1296, - 1196, 1318, 1220, 1202, 1205, 1254, 1218, 4145, 4156, 4162, - 1227, 4173, 1168, 1118, 1174, 4184, 4190, 1218, 1224, 1209, - 1255, 1148, 1229, 1138, 1272, 1233, 1257, 1273, 1126, 1012, - 1009, 4205, 1244, 1281, 1287, 4206, 4221, 1020, 966, 1302, - 1268, 915, 1306, 0, 1357, 1340, 1275, 1409, 902, 886, - 889, 4222, 822, 1291, 820, 779, 818, 1223, 0, 1349, - - 807, 1366, 1420, 805, 771, 742, 767, 1424, 0, 1288, - 1462, 1463, 796, 696, 670, 676, 697, 1379, 541, 539, - 504, 459, 0, 441, 0, 378, 422, 373, 397, 366, - 281, 275, 268, 280, 267, 814, 1166, 115, 100, 4507, - 4507, 4272, 4285, 4298, 4311, 4324, 4337, 4349, 4353, 4364, - 4377, 4390, 4401, 4412, 4417, 4422, 4427, 4431, 4436, 4440, - 4444, 4448, 4452, 4463, 4470, 4481, 4493 + 678, 689, 1596, 100, 1634, 733, 0, 4507, 4507, 1632, + 1631, 4507, 4507, 1628, 1632, 4507, 0, 0, 1630, 0, + 0, 1608, 4507, 4507, 4507, 0, 4507, 4507, 757, 839, + 122, 166, 127, 4507, 1615, 1616, 1612, 4507, 4507, 4507, + 4507, 1613, 201, 0, 1611, 1606, 1596, 96, 1595, 656, + + 1594, 772, 103, 807, 1584, 4507, 839, 857, 886, 907, + 1569, 912, 681, 757, 892, 903, 909, 962, 1581, 963, + 978, 979, 994, 1000, 1016, 1022, 1033, 1046, 1049, 1069, + 1066, 1077, 1090, 147, 79, 1105, 1108, 1116, 1131, 1142, + 1153, 1159, 1170, 169, 1183, 1186, 1199, 1207, 94, 1210, + 1223, 1234, 1247, 152, 1263, 1269, 1280, 1286, 1297, 1308, + 1314, 1325, 193, 1331, 1347, 194, 226, 1346, 4507, 4507, + 0, 1579, 757, 943, 1381, 0, 4507, 1578, 4507, 0, + 4507, 0, 1558, 0, 1541, 257, 333, 4507, 0, 1568, + 4507, 1565, 0, 1561, 0, 1554, 186, 1529, 252, 143, + + 1391, 4507, 866, 894, 4507, 1441, 1550, 1385, 1386, 1401, + 1402, 1417, 1549, 1425, 1428, 1441, 1449, 1491, 1492, 1508, + 1509, 1524, 1540, 1546, 1557, 1563, 1574, 1580, 1591, 1597, + 1608, 1619, 196, 272, 1632, 1640, 1643, 1658, 1661, 1664, + 1690, 1682, 1693, 1706, 224, 1714, 1727, 1735, 277, 1738, + 1751, 1759, 1767, 1775, 438, 1788, 1791, 1799, 1812, 1820, + 1828, 1836, 1849, 1857, 1870, 506, 1878, 1894, 1895, 470, + 507, 249, 1910, 1548, 1954, 1962, 1547, 4507, 285, 1517, + 1543, 1491, 1533, 1532, 4507, 4507, 4507, 4507, 436, 207, + 1497, 1956, 1957, 1972, 1978, 1989, 1995, 2011, 2012, 2027, + + 2035, 2043, 2059, 2056, 2067, 2080, 2083, 2098, 2104, 2115, + 2121, 2132, 2147, 2153, 469, 535, 2164, 2170, 2185, 2186, + 2201, 2207, 2222, 2225, 2233, 2246, 554, 2254, 2257, 2270, + 510, 2278, 2291, 2299, 2307, 523, 2315, 2323, 2336, 2344, + 2347, 2365, 2362, 2368, 2383, 617, 2386, 2389, 2406, 2412, + 2423, 612, 528, 631, 2439, 2473, 2496, 2519, 2531, 1530, + 271, 1500, 2515, 2530, 2546, 2543, 623, 2564, 2567, 2570, + 2585, 2588, 2596, 2609, 2617, 2630, 2641, 2647, 2658, 2669, + 2684, 2690, 2701, 2707, 2722, 611, 613, 632, 2723, 2743, + 2740, 2761, 2760, 2776, 2782, 2793, 2806, 2817, 643, 2814, + + 2830, 2838, 639, 2846, 309, 2854, 2867, 619, 2880, 2883, + 2891, 2904, 668, 621, 2915, 2921, 2932, 634, 2943, 727, + 641, 625, 816, 2987, 4507, 303, 1513, 2971, 2987, 2984, + 649, 2995, 3008, 3011, 3028, 3034, 3045, 3051, 3066, 3072, + 3089, 3095, 3106, 3112, 3123, 3129, 3140, 3146, 3162, 730, + 511, 676, 3163, 3178, 3184, 3195, 3201, 3216, 3222, 3233, + 3248, 3254, 711, 783, 3265, 3281, 700, 3278, 1486, 3289, + 3302, 809, 3310, 3325, 3328, 3331, 878, 732, 3346, 3349, + 880, 734, 636, 905, 933, 3398, 3410, 1485, 1494, 3364, + 3404, 733, 3405, 3422, 3421, 3437, 3438, 3453, 3454, 3469, + + 3475, 3486, 3492, 3503, 3514, 3525, 3531, 3542, 984, 789, + 822, 3548, 3559, 3570, 3576, 3587, 3593, 3608, 3609, 3624, + 3630, 1482, 795, 3641, 937, 3647, 1489, 3658, 3664, 802, + 3679, 3685, 887, 988, 3701, 1479, 981, 955, 918, 1001, + 3735, 101, 0, 3729, 3730, 1003, 3745, 3753, 3756, 3769, + 3777, 3785, 3793, 3806, 3814, 3822, 3830, 925, 1002, 1012, + 1004, 3843, 3851, 3854, 3867, 3875, 3878, 1019, 1453, 1028, + 3891, 1020, 1443, 1016, 3912, 3899, 1040, 1041, 3915, 1042, + 1056, 1089, 1048, 3964, 1381, 1109, 1432, 3930, 3948, 1463, + 3959, 3965, 3980, 3981, 3996, 514, 4002, 4013, 1070, 1114, + + 1071, 1443, 4019, 4030, 4041, 1115, 1415, 1142, 1127, 1406, + 1116, 798, 1427, 1151, 4047, 1124, 1157, 1092, 1193, 1493, + 4507, 1408, 1376, 4058, 4064, 4079, 4080, 4095, 1374, 4096, + 4111, 1156, 1129, 1179, 4117, 4128, 4139, 1161, 1309, 1194, + 1196, 1303, 1204, 1299, 1205, 1320, 1207, 1225, 1220, 1238, + 1126, 4145, 4156, 4162, 1154, 4173, 1198, 1118, 1231, 4184, + 4190, 1233, 1157, 1249, 1229, 1120, 1248, 1127, 1272, 1287, + 1257, 1275, 1111, 1012, 1024, 4205, 1244, 1277, 1289, 4206, + 4221, 1057, 1009, 1302, 1164, 986, 1281, 0, 1357, 1293, + 1349, 1359, 906, 886, 891, 4222, 922, 1262, 824, 780, + + 819, 1407, 0, 1366, 818, 1379, 1409, 803, 763, 483, + 511, 1424, 0, 1393, 1420, 1462, 539, 501, 481, 489, + 441, 1291, 440, 434, 405, 374, 0, 430, 0, 367, + 412, 363, 304, 272, 276, 262, 231, 172, 159, 319, + 711, 115, 100, 4507, 4507, 4272, 4285, 4298, 4311, 4324, + 4337, 4349, 4353, 4364, 4377, 4390, 4401, 4412, 4417, 4422, + 4427, 4431, 4436, 4440, 4444, 4448, 4452, 4463, 4470, 4481, + 4493 } ; -static yyconst flex_int16_t yy_def[768] = +static yyconst flex_int16_t yy_def[772] = { 0, - 741, 1, 742, 742, 742, 742, 743, 743, 744, 744, - 745, 745, 746, 746, 741, 15, 741, 741, 741, 741, - 741, 747, 741, 748, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 749, 741, 750, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 751, 751, 741, 752, 752, 741, - 741, 741, 741, 753, 741, 741, 754, 754, 741, 741, - 23, 741, 741, 741, 755, 741, 741, 741, 741, 741, - 741, 747, 747, 741, 756, 741, 757, 748, 748, 741, - - 741, 741, 741, 741, 741, 741, 741, 741, 741, 758, - 34, 34, 34, 34, 34, 34, 759, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 759, 759, 34, 34, 34, 34, 34, 34, 34, - 34, 759, 34, 34, 34, 34, 759, 34, 34, 34, - 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, - 759, 34, 34, 759, 759, 34, 760, 749, 741, 741, - 741, 750, 741, 741, 741, 751, 741, 752, 741, 753, - 78, 78, 741, 741, 761, 755, 741, 741, 762, 756, - 763, 757, 741, 741, 764, 741, 741, 741, 741, 741, - - 741, 758, 765, 34, 34, 34, 34, 34, 765, 34, + 745, 1, 746, 746, 746, 746, 747, 747, 748, 748, + 749, 749, 750, 750, 745, 15, 745, 745, 745, 745, + 745, 751, 745, 752, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 759, 759, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 759, 34, 34, 34, 759, 34, 34, 34, 34, 34, - 759, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 759, 34, 34, 34, 759, 759, 759, 34, 760, - 741, 741, 741, 741, 78, 78, 761, 741, 762, 763, - 741, 741, 741, 741, 764, 741, 741, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - + 34, 34, 745, 745, 753, 745, 754, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 755, 755, 745, 756, + 756, 745, 745, 745, 745, 757, 745, 745, 758, 758, + 745, 745, 23, 745, 745, 745, 759, 745, 745, 745, + 745, 745, 745, 751, 751, 745, 760, 745, 761, 752, + + 752, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 762, 34, 34, 34, 34, 34, 34, 763, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 759, 759, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 759, 34, 34, 34, 759, 34, 34, 34, - 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 759, 34, 34, 34, 34, 34, 759, 759, 759, - 34, 741, 741, 741, 741, 741, 78, 741, 34, 34, - 34, 34, 759, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 763, 763, 34, 34, 34, 34, 34, + 34, 34, 34, 763, 34, 34, 34, 34, 763, 34, + 34, 34, 34, 763, 34, 34, 34, 34, 34, 34, + 34, 34, 763, 34, 34, 763, 763, 34, 745, 745, + 764, 753, 745, 745, 745, 754, 745, 745, 745, 755, + 745, 756, 745, 757, 80, 80, 745, 745, 765, 759, + 745, 745, 766, 760, 767, 761, 745, 745, 768, 745, + + 745, 745, 745, 745, 745, 762, 769, 34, 34, 34, + 34, 34, 769, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 759, 759, 759, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 759, 34, 34, 34, 759, 34, + 34, 34, 763, 763, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 763, 34, 34, 34, 763, 34, + 34, 34, 34, 34, 763, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 763, 34, 34, 34, 763, + 763, 763, 34, 764, 745, 745, 745, 745, 80, 80, + 765, 745, 766, 767, 745, 745, 745, 745, 768, 745, + 745, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 202, 34, 34, 759, 34, 34, 34, 34, 759, 759, - 34, 34, 34, 759, 34, 759, 759, 759, 741, 741, - 741, 78, 741, 34, 34, 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 759, 759, 759, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 202, 759, - 34, 34, 759, 34, 202, 34, 34, 759, 34, 34, - 34, 34, 759, 759, 34, 34, 759, 759, 759, 759, - 759, 741, 741, 78, 741, 34, 34, 759, 34, 34, + 34, 34, 34, 34, 763, 763, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 763, 34, 34, 34, + 763, 34, 34, 34, 34, 763, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 763, 34, 34, 34, 34, + 34, 763, 763, 763, 34, 745, 745, 745, 745, 745, + 80, 745, 34, 34, 34, 34, 763, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - - 34, 34, 34, 34, 759, 759, 759, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 202, 759, 34, - 759, 34, 202, 34, 34, 759, 34, 34, 759, 759, - 34, 759, 759, 759, 759, 759, 741, 78, 766, 34, - 34, 759, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 759, 759, 759, 759, 34, 34, 34, - 34, 34, 34, 759, 202, 759, 34, 759, 202, 759, - 34, 34, 759, 759, 34, 759, 759, 759, 759, 741, - 767, 78, 741, 34, 34, 759, 34, 34, 34, 34, - 34, 202, 34, 34, 759, 759, 759, 759, 34, 34, - - 34, 759, 202, 759, 759, 202, 759, 202, 759, 759, - 34, 759, 759, 759, 759, 741, 741, 753, 741, 34, - 34, 34, 34, 34, 202, 34, 34, 759, 759, 759, - 34, 34, 34, 759, 202, 759, 759, 202, 759, 202, - 759, 759, 759, 759, 759, 753, 741, 34, 34, 34, - 202, 34, 759, 759, 759, 34, 34, 759, 202, 759, - 759, 202, 759, 202, 759, 759, 759, 759, 753, 741, - 202, 34, 759, 759, 759, 34, 34, 759, 202, 759, - 759, 202, 759, 202, 759, 759, 759, 759, 753, 741, - 202, 34, 759, 759, 759, 202, 759, 759, 202, 759, - - 759, 759, 759, 759, 753, 741, 202, 759, 202, 759, - 759, 759, 759, 753, 741, 202, 759, 759, 759, 759, - 753, 741, 202, 759, 753, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 0, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741 + 34, 34, 34, 34, 34, 763, 763, 763, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 763, 34, + + 34, 34, 763, 34, 206, 34, 34, 763, 34, 34, + 34, 34, 763, 763, 34, 34, 34, 763, 34, 763, + 763, 763, 745, 745, 745, 80, 745, 34, 34, 34, + 763, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 34, 34, 763, + 763, 763, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 34, 206, 763, 34, 34, 763, 34, 206, 34, + 34, 763, 34, 34, 34, 34, 763, 763, 34, 34, + 763, 763, 763, 763, 763, 745, 745, 80, 745, 34, + 34, 763, 34, 34, 34, 34, 34, 34, 34, 34, + + 34, 34, 34, 34, 34, 34, 34, 34, 763, 763, + 763, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 34, 206, 763, 34, 763, 34, 206, 34, 34, 763, + 34, 34, 763, 763, 34, 763, 763, 763, 763, 763, + 745, 80, 770, 34, 34, 763, 34, 34, 34, 34, + 34, 34, 34, 34, 34, 34, 34, 763, 763, 763, + 763, 34, 34, 34, 34, 34, 34, 763, 206, 763, + 34, 763, 206, 763, 34, 34, 763, 763, 34, 763, + 763, 763, 763, 745, 771, 80, 745, 34, 34, 763, + 34, 34, 34, 34, 34, 206, 34, 34, 763, 763, + + 763, 763, 34, 34, 34, 763, 206, 763, 763, 206, + 763, 206, 763, 763, 34, 763, 763, 763, 763, 745, + 745, 757, 745, 34, 34, 34, 34, 34, 206, 34, + 34, 763, 763, 763, 34, 34, 34, 763, 206, 763, + 763, 206, 763, 206, 763, 763, 763, 763, 763, 757, + 745, 34, 34, 34, 206, 34, 763, 763, 763, 34, + 34, 763, 206, 763, 763, 206, 763, 206, 763, 763, + 763, 763, 757, 745, 206, 34, 763, 763, 763, 34, + 34, 763, 206, 763, 763, 206, 763, 206, 763, 763, + 763, 763, 757, 745, 206, 34, 763, 763, 763, 206, + + 763, 763, 206, 763, 763, 763, 763, 763, 757, 745, + 206, 763, 206, 763, 763, 763, 763, 757, 745, 206, + 763, 763, 763, 763, 757, 745, 206, 763, 757, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 0, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745 } ; static yyconst flex_int16_t yy_nxt[4591] = @@ -943,505 +946,505 @@ static yyconst flex_int16_t yy_nxt[4591] = 31, 31, 31, 31, 32, 21, 33, 33, 18, 34, 35, 36, 37, 38, 39, 40, 41, 42, 41, 41, 41, 43, 44, 45, 46, 41, 47, 48, 49, 50, - 51, 52, 41, 41, 41, 25, 21, 21, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 54, 21, 25, 56, 57, 57, 56, 57, 57, 56, - 57, 57, 209, 69, 58, 66, 61, 58, 61, 67, - - 59, 56, 57, 57, 62, 69, 62, 209, 209, 63, - 66, 63, 59, 740, 67, 70, 195, 90, 71, 104, - 64, 94, 64, 183, 183, 183, 183, 70, 739, 196, - 71, 91, 91, 91, 91, 741, 582, 230, 90, 91, - 91, 91, 91, 181, 286, 111, 90, 98, 98, 98, - 98, 123, 741, 96, 90, 124, 209, 111, 125, 111, - 209, 245, 98, 98, 111, 229, 90, 183, 183, 183, - 183, 72, 287, 73, 100, 100, 100, 100, 100, 100, - 100, 100, 209, 72, 741, 73, 74, 75, 76, 75, - 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, - - 74, 74, 91, 91, 91, 91, 284, 209, 284, 251, - 74, 74, 74, 74, 74, 90, 241, 285, 209, 78, - 101, 111, 422, 100, 102, 102, 102, 102, 102, 102, - 102, 111, 181, 111, 209, 111, 209, 262, 209, 209, - 111, 74, 74, 74, 105, 111, 106, 106, 106, 106, - 106, 106, 106, 106, 209, 111, 281, 111, 209, 111, - 266, 209, 282, 107, 141, 399, 75, 74, 75, 74, - 75, 76, 75, 75, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 311, 267, 350, 323, 275, - 276, 142, 107, 74, 74, 74, 74, 74, 111, 268, - - 181, 118, 78, 618, 111, 119, 446, 126, 111, 120, - 111, 121, 111, 312, 111, 332, 111, 111, 111, 111, - 286, 122, 741, 111, 74, 74, 74, 181, 357, 111, - 127, 128, 181, 111, 183, 183, 183, 183, 111, 484, - 736, 129, 735, 734, 181, 733, 465, 732, 287, 75, - 74, 75, 33, 79, 80, 79, 79, 33, 33, 81, - 33, 33, 33, 33, 82, 83, 33, 84, 33, 33, + 51, 52, 41, 41, 41, 53, 54, 21, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, + 56, 21, 25, 58, 59, 59, 58, 59, 59, 58, + 59, 59, 213, 71, 60, 68, 63, 60, 63, 69, + + 61, 58, 59, 59, 64, 71, 64, 213, 92, 65, + 68, 65, 61, 744, 69, 72, 199, 92, 73, 106, + 66, 96, 66, 187, 187, 187, 187, 72, 743, 200, + 73, 93, 93, 93, 93, 745, 586, 234, 92, 93, + 93, 93, 93, 185, 290, 113, 92, 100, 100, 100, + 100, 125, 745, 98, 92, 126, 170, 113, 127, 113, + 213, 249, 100, 100, 113, 213, 92, 187, 187, 187, + 187, 74, 291, 75, 102, 102, 102, 102, 102, 102, + 102, 102, 213, 74, 745, 75, 76, 77, 78, 77, + 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, + + 76, 76, 93, 93, 93, 93, 213, 213, 290, 213, + 76, 76, 76, 76, 76, 92, 285, 233, 255, 80, + 103, 113, 286, 102, 104, 104, 104, 104, 104, 104, + 104, 113, 740, 113, 739, 113, 291, 213, 245, 213, + 113, 76, 76, 76, 107, 113, 108, 108, 108, 108, + 108, 108, 108, 108, 288, 113, 288, 113, 315, 113, + 270, 266, 213, 109, 143, 289, 77, 76, 77, 76, + 77, 78, 77, 77, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 213, 327, 271, 279, 280, + 213, 144, 109, 76, 76, 76, 76, 76, 113, 185, + + 272, 120, 80, 426, 113, 121, 738, 128, 113, 122, + 113, 123, 113, 185, 113, 354, 113, 113, 113, 113, + 741, 124, 745, 113, 76, 76, 76, 185, 361, 113, + 129, 130, 737, 113, 187, 187, 187, 187, 113, 331, + 488, 131, 736, 735, 316, 185, 469, 742, 734, 77, + 76, 77, 33, 81, 82, 81, 81, 33, 33, 83, + 33, 33, 33, 33, 84, 85, 33, 86, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 85, 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 33, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, - 85, 85, 85, 85, 85, 85, 85, 86, 87, 33, + 87, 87, 87, 87, 87, 87, 87, 88, 89, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, - 33, 33, 88, 33, 89, 90, 111, 731, 284, 153, - 284, 730, 419, 419, 419, 419, 111, 729, 111, 285, - 111, 728, 94, 727, 209, 111, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, - 95, 95, 209, 209, 96, 97, 97, 97, 97, 97, + 33, 33, 90, 33, 91, 92, 113, 733, 288, 155, + 288, 732, 731, 213, 730, 729, 113, 213, 113, 289, + 113, 213, 96, 213, 213, 113, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - - 97, 97, 97, 97, 97, 97, 97, 105, 209, 108, - 108, 108, 108, 108, 108, 108, 108, 130, 111, 209, - 209, 143, 144, 421, 209, 145, 107, 741, 111, 726, - 111, 111, 111, 111, 131, 146, 209, 111, 139, 111, - 111, 209, 382, 521, 725, 625, 140, 348, 209, 111, - 147, 111, 209, 111, 209, 107, 110, 327, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 209, 342, 349, - 209, 209, 111, 112, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 113, 111, 114, 111, 115, 111, 111, - 111, 111, 116, 111, 111, 111, 111, 111, 404, 417, - - 383, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 111, 447, 209, 209, 395, 134, 111, - 209, 135, 410, 111, 209, 111, 209, 111, 209, 111, - 136, 137, 111, 111, 209, 209, 138, 209, 111, 209, - 148, 111, 209, 149, 209, 132, 209, 98, 98, 98, - 98, 150, 209, 111, 193, 111, 133, 151, 111, 209, - 111, 154, 98, 98, 416, 155, 158, 209, 111, 460, - 111, 209, 111, 468, 159, 111, 156, 111, 111, 481, - 418, 157, 463, 209, 152, 111, 427, 111, 111, 111, - - 162, 160, 111, 474, 111, 448, 163, 111, 111, 473, - 209, 111, 477, 596, 480, 488, 723, 161, 111, 111, - 111, 111, 111, 111, 505, 111, 166, 111, 164, 111, - 111, 111, 722, 111, 169, 169, 169, 169, 111, 721, - 506, 479, 530, 209, 165, 209, 209, 209, 209, 170, - 170, 170, 170, 170, 170, 171, 171, 180, 169, 169, - 169, 169, 180, 180, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 170, 170, 170, 170, 170, 170, 171, - 171, 180, 180, 180, 180, 180, 105, 111, 106, 106, - 106, 106, 106, 106, 106, 106, 507, 111, 741, 111, - - 529, 111, 542, 209, 204, 107, 111, 534, 533, 209, - 716, 741, 180, 180, 180, 737, 715, 714, 209, 209, - 209, 105, 518, 197, 197, 197, 197, 197, 197, 197, - 197, 209, 709, 209, 107, 209, 209, 556, 180, 180, - 107, 640, 738, 209, 180, 180, 180, 180, 180, 180, - 180, 180, 180, 180, 180, 199, 199, 199, 199, 199, - 199, 199, 199, 180, 180, 180, 180, 180, 532, 107, - 566, 105, 107, 106, 106, 106, 106, 106, 106, 106, - 106, 182, 199, 199, 199, 199, 199, 199, 199, 199, - 107, 209, 535, 209, 180, 180, 180, 200, 209, 200, - - 209, 107, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 199, 199, 199, 199, 199, 209, 107, - 180, 105, 111, 108, 108, 108, 108, 108, 108, 108, - 108, 209, 205, 111, 111, 707, 111, 209, 519, 111, - 107, 111, 536, 111, 526, 111, 209, 111, 706, 111, - 705, 111, 111, 207, 209, 271, 206, 557, 111, 171, - 171, 171, 171, 171, 171, 171, 171, 568, 699, 107, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 111, 111, 573, 209, 578, 209, 210, 577, - - 209, 570, 111, 111, 111, 111, 111, 111, 111, 111, - 208, 111, 111, 209, 696, 209, 209, 209, 111, 111, - 111, 111, 111, 212, 111, 209, 211, 111, 111, 554, - 111, 574, 209, 209, 111, 209, 111, 213, 111, 209, - 111, 209, 111, 111, 111, 214, 111, 579, 555, 111, - 209, 216, 111, 576, 209, 209, 111, 691, 111, 215, - 111, 209, 111, 111, 111, 111, 111, 586, 598, 209, - 209, 111, 612, 111, 217, 218, 111, 111, 209, 220, - 219, 209, 111, 209, 607, 690, 111, 595, 111, 111, - 111, 111, 634, 111, 597, 111, 111, 224, 111, 111, - - 221, 222, 209, 604, 614, 609, 111, 111, 111, 111, - 225, 111, 610, 111, 226, 111, 605, 227, 223, 111, - 111, 111, 209, 615, 209, 231, 111, 629, 209, 602, - 111, 209, 111, 228, 111, 111, 613, 209, 111, 111, - 209, 232, 209, 628, 209, 111, 111, 111, 111, 111, - 111, 209, 111, 642, 111, 209, 111, 111, 111, 209, - 233, 111, 234, 209, 209, 111, 674, 737, 689, 637, - 684, 111, 111, 111, 639, 111, 643, 653, 235, 236, - 111, 209, 111, 111, 111, 237, 111, 209, 630, 111, - 655, 111, 209, 111, 738, 111, 682, 111, 209, 111, - - 111, 239, 111, 111, 636, 238, 209, 654, 111, 209, - 240, 641, 111, 111, 111, 209, 111, 644, 209, 111, - 658, 242, 209, 111, 645, 111, 111, 111, 111, 111, - 111, 209, 111, 209, 243, 111, 209, 111, 673, 111, - 111, 111, 209, 111, 675, 660, 209, 111, 111, 111, - 111, 111, 111, 111, 111, 244, 111, 209, 246, 111, - 663, 679, 665, 111, 111, 111, 661, 111, 209, 671, - 209, 668, 111, 247, 111, 667, 111, 111, 111, 680, - 249, 209, 678, 248, 250, 209, 209, 111, 209, 111, - 670, 111, 252, 111, 209, 666, 111, 669, 710, 111, - - 209, 209, 683, 253, 209, 111, 686, 111, 693, 111, - 111, 111, 111, 111, 254, 209, 111, 255, 111, 209, - 111, 681, 111, 687, 111, 259, 111, 111, 111, 111, - 111, 209, 257, 664, 256, 111, 662, 111, 111, 258, - 698, 111, 685, 688, 111, 703, 111, 694, 111, 260, - 111, 695, 111, 209, 111, 111, 111, 111, 111, 718, - 708, 111, 209, 111, 659, 111, 697, 111, 263, 111, - 209, 111, 700, 111, 261, 111, 111, 111, 264, 209, - 111, 265, 616, 616, 616, 616, 111, 111, 111, 111, - 111, 111, 209, 272, 269, 111, 111, 171, 171, 171, - - 171, 171, 171, 171, 171, 105, 702, 197, 197, 197, - 197, 197, 197, 197, 197, 111, 111, 651, 288, 711, - 647, 701, 209, 646, 107, 111, 111, 111, 111, 111, - 111, 111, 111, 209, 111, 111, 712, 209, 209, 638, - 635, 111, 289, 111, 111, 111, 111, 111, 209, 209, - 111, 111, 724, 107, 110, 111, 619, 111, 111, 111, - 290, 111, 291, 617, 606, 111, 111, 111, 111, 111, - 111, 111, 111, 704, 111, 209, 209, 111, 603, 111, - 209, 111, 569, 111, 713, 111, 717, 565, 292, 293, - 111, 111, 539, 111, 616, 616, 616, 616, 111, 203, - - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, - 203, 111, 111, 538, 523, 485, 719, 720, 423, 295, - 356, 111, 111, 111, 111, 111, 111, 294, 111, 111, - 111, 111, 358, 191, 189, 187, 185, 181, 111, 111, - 111, 111, 111, 297, 111, 296, 356, 111, 111, 167, - 741, 209, 282, 191, 111, 189, 111, 278, 111, 300, - 111, 298, 299, 111, 185, 617, 111, 301, 181, 302, - 111, 274, 111, 273, 111, 167, 111, 111, 111, 111, - 111, 209, 201, 111, 198, 111, 194, 111, 191, 111, - - 303, 111, 189, 111, 111, 111, 111, 111, 188, 187, - 111, 187, 111, 305, 111, 304, 111, 185, 111, 104, - 111, 111, 111, 111, 111, 184, 179, 111, 177, 111, - 308, 306, 104, 111, 307, 111, 175, 111, 111, 111, - 111, 111, 174, 173, 167, 109, 111, 103, 111, 111, - 111, 93, 111, 90, 90, 309, 741, 111, 741, 111, - 310, 111, 111, 111, 741, 741, 741, 741, 111, 741, - 111, 741, 111, 111, 111, 741, 111, 741, 741, 313, - 111, 111, 314, 315, 111, 111, 316, 111, 111, 111, - 741, 111, 111, 741, 111, 741, 741, 319, 317, 741, - - 111, 111, 111, 111, 111, 111, 111, 111, 111, 318, - 111, 320, 111, 111, 741, 741, 741, 741, 741, 741, - 111, 741, 111, 111, 111, 741, 111, 741, 741, 741, - 111, 111, 111, 111, 111, 111, 111, 111, 741, 111, - 741, 741, 321, 741, 111, 741, 322, 324, 111, 741, - 111, 741, 741, 741, 111, 111, 111, 111, 111, 741, - 325, 741, 741, 111, 741, 111, 741, 111, 111, 111, - 741, 111, 326, 741, 741, 111, 111, 111, 111, 111, - 111, 111, 111, 741, 111, 741, 328, 111, 741, 111, - 741, 111, 741, 111, 741, 111, 741, 111, 741, 111, - - 111, 111, 741, 111, 741, 111, 329, 111, 111, 111, - 741, 111, 741, 741, 330, 111, 111, 111, 111, 111, - 334, 111, 741, 741, 111, 331, 741, 741, 333, 111, - 111, 111, 111, 111, 741, 111, 741, 111, 741, 111, - 111, 111, 111, 111, 741, 741, 741, 741, 335, 741, - 111, 741, 111, 336, 111, 741, 111, 741, 111, 741, - 111, 111, 111, 741, 111, 337, 111, 741, 111, 111, - 111, 741, 111, 741, 741, 741, 111, 111, 111, 111, - 111, 741, 741, 741, 338, 111, 741, 111, 741, 111, - 741, 111, 741, 111, 741, 741, 339, 111, 111, 111, - - 111, 111, 741, 341, 340, 741, 111, 741, 111, 741, - 111, 741, 111, 741, 111, 741, 741, 347, 111, 111, - 111, 343, 111, 344, 111, 111, 741, 111, 345, 741, - 741, 741, 741, 741, 111, 111, 111, 111, 111, 111, - 111, 741, 346, 111, 111, 741, 351, 741, 741, 741, - 111, 741, 111, 741, 111, 352, 352, 352, 352, 111, - 741, 741, 741, 354, 354, 354, 354, 741, 741, 741, - 353, 353, 353, 353, 353, 353, 353, 353, 355, 355, - 355, 355, 355, 355, 355, 355, 111, 111, 741, 741, - 741, 741, 741, 741, 360, 741, 111, 111, 359, 111, - - 111, 111, 111, 741, 741, 111, 111, 741, 111, 741, - 741, 741, 111, 361, 111, 741, 111, 741, 111, 111, - 362, 111, 111, 741, 741, 111, 741, 111, 364, 111, - 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, - 365, 111, 111, 366, 111, 741, 741, 741, 741, 741, - 741, 111, 111, 111, 111, 111, 111, 111, 741, 741, - 111, 111, 741, 741, 363, 111, 741, 111, 741, 111, - 741, 111, 741, 111, 367, 111, 111, 111, 368, 111, - 741, 741, 741, 111, 111, 111, 111, 111, 370, 111, - 741, 369, 111, 741, 741, 741, 111, 111, 111, 111, - - 111, 111, 741, 111, 741, 371, 741, 111, 111, 372, - 111, 111, 373, 111, 741, 374, 111, 741, 741, 741, - 111, 741, 111, 111, 111, 111, 741, 111, 111, 111, - 741, 375, 111, 741, 111, 741, 741, 741, 111, 741, - 111, 741, 111, 741, 111, 111, 111, 111, 376, 741, - 741, 111, 377, 111, 741, 111, 741, 111, 741, 111, - 741, 111, 111, 111, 111, 111, 741, 378, 741, 741, - 111, 741, 111, 741, 379, 741, 111, 111, 380, 741, - 381, 111, 741, 111, 741, 741, 741, 111, 741, 111, - 741, 111, 741, 111, 111, 111, 111, 111, 741, 741, - - 111, 741, 111, 741, 111, 741, 111, 741, 111, 741, - 111, 741, 111, 111, 111, 111, 111, 741, 385, 111, - 741, 741, 386, 741, 741, 111, 111, 111, 111, 111, - 111, 111, 387, 741, 111, 111, 389, 111, 741, 384, - 741, 111, 741, 111, 393, 111, 741, 111, 741, 111, - 388, 111, 111, 390, 741, 111, 111, 391, 741, 741, - 741, 741, 111, 111, 111, 111, 111, 111, 392, 111, - 741, 111, 741, 111, 111, 111, 111, 111, 741, 741, - 394, 741, 111, 741, 111, 396, 111, 111, 111, 741, - 111, 741, 741, 741, 111, 111, 111, 111, 111, 111, - - 111, 111, 741, 111, 401, 397, 111, 741, 111, 741, - 111, 400, 111, 398, 111, 741, 741, 741, 111, 111, - 111, 111, 111, 741, 741, 741, 741, 111, 741, 111, - 741, 111, 402, 111, 741, 111, 403, 111, 741, 111, - 111, 111, 741, 111, 741, 111, 741, 111, 111, 111, - 741, 111, 741, 111, 741, 111, 111, 111, 741, 111, - 741, 741, 741, 111, 111, 111, 111, 111, 741, 406, - 741, 405, 111, 741, 111, 741, 111, 111, 111, 741, - 111, 741, 741, 741, 111, 111, 111, 111, 111, 407, - 741, 111, 111, 111, 408, 111, 111, 741, 111, 741, - - 741, 741, 111, 741, 111, 111, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 741, 111, 111, 741, 111, - 741, 741, 741, 111, 741, 111, 111, 111, 411, 111, - 111, 111, 111, 111, 741, 111, 111, 409, 412, 413, - 741, 741, 111, 741, 741, 741, 111, 741, 111, 741, - 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, - 741, 111, 741, 111, 741, 111, 741, 111, 741, 111, - 415, 741, 111, 741, 352, 352, 352, 352, 414, 111, - 741, 111, 741, 111, 741, 741, 741, 741, 111, 353, - 353, 353, 353, 353, 353, 353, 353, 419, 419, 419, - - 419, 741, 741, 741, 741, 741, 741, 741, 420, 741, - 741, 741, 353, 353, 353, 353, 353, 353, 353, 353, - 354, 354, 354, 354, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 355, 355, 355, 355, 355, - 355, 355, 355, 420, 741, 111, 741, 355, 355, 355, - 355, 355, 355, 355, 355, 111, 741, 111, 741, 111, - 111, 425, 741, 424, 111, 741, 741, 741, 741, 741, - 111, 741, 111, 111, 111, 426, 111, 741, 421, 111, - 741, 741, 741, 111, 741, 111, 111, 111, 111, 741, - 111, 741, 111, 428, 111, 111, 741, 111, 429, 741, - - 111, 741, 741, 430, 111, 741, 111, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 741, 111, 111, - 741, 741, 741, 741, 741, 111, 111, 111, 111, 111, - 431, 741, 111, 741, 111, 741, 111, 111, 111, 111, - 111, 741, 432, 741, 741, 111, 433, 111, 741, 111, - 741, 111, 741, 111, 741, 741, 741, 434, 111, 111, - 111, 111, 741, 435, 741, 741, 111, 436, 741, 741, - 111, 111, 111, 437, 111, 741, 741, 111, 741, 111, - 438, 111, 741, 111, 439, 111, 741, 111, 111, 111, - 111, 111, 741, 741, 741, 741, 111, 741, 111, 111, - - 111, 741, 111, 741, 440, 741, 741, 111, 741, 111, - 741, 111, 741, 111, 111, 442, 741, 441, 111, 741, - 111, 741, 741, 741, 111, 741, 111, 741, 111, 741, - 111, 111, 111, 111, 111, 741, 741, 111, 443, 111, - 741, 111, 741, 111, 741, 111, 741, 111, 444, 445, - 111, 111, 111, 111, 741, 741, 111, 741, 741, 741, - 449, 741, 111, 111, 111, 111, 111, 111, 741, 741, - 111, 111, 111, 111, 450, 741, 451, 741, 741, 741, - 111, 741, 111, 111, 111, 111, 741, 111, 452, 111, - 111, 111, 111, 453, 741, 741, 741, 741, 741, 741, - - 111, 111, 454, 111, 111, 111, 111, 741, 741, 111, - 111, 741, 111, 741, 741, 456, 111, 741, 111, 741, - 111, 741, 111, 111, 111, 455, 111, 458, 741, 741, - 459, 111, 741, 111, 741, 111, 111, 111, 741, 741, - 457, 741, 111, 741, 111, 741, 111, 111, 111, 741, - 111, 741, 741, 741, 111, 111, 111, 111, 111, 111, - 111, 111, 461, 111, 741, 741, 111, 741, 111, 741, - 111, 741, 111, 741, 111, 741, 111, 741, 111, 111, - 462, 741, 111, 741, 111, 741, 111, 111, 111, 741, - 111, 741, 464, 741, 111, 111, 466, 111, 111, 741, - - 741, 741, 741, 111, 741, 741, 741, 111, 741, 111, - 111, 111, 741, 111, 741, 467, 111, 469, 741, 741, - 111, 111, 111, 111, 111, 470, 471, 111, 741, 111, - 741, 111, 111, 111, 111, 111, 741, 741, 741, 741, - 111, 741, 741, 741, 111, 111, 111, 741, 111, 741, - 741, 111, 741, 111, 475, 111, 472, 111, 741, 111, - 741, 111, 111, 111, 111, 111, 741, 741, 741, 741, - 111, 741, 111, 111, 111, 741, 111, 741, 476, 741, - 741, 111, 741, 111, 741, 111, 741, 111, 482, 482, - 482, 482, 111, 741, 741, 741, 741, 741, 741, 741, - - 741, 111, 741, 483, 483, 483, 483, 483, 483, 483, - 483, 111, 741, 111, 111, 111, 486, 111, 478, 741, - 111, 741, 741, 741, 111, 111, 111, 111, 111, 111, - 741, 111, 487, 111, 741, 111, 111, 489, 111, 111, - 741, 111, 741, 741, 111, 741, 741, 741, 111, 741, - 111, 111, 111, 111, 741, 111, 490, 111, 111, 741, - 111, 491, 741, 492, 111, 741, 741, 741, 111, 741, - 111, 741, 111, 741, 111, 111, 111, 111, 111, 741, - 741, 111, 741, 111, 741, 111, 741, 493, 741, 111, - 741, 111, 741, 111, 111, 111, 111, 741, 495, 494, - - 111, 741, 111, 741, 741, 741, 111, 741, 111, 741, - 111, 741, 111, 741, 111, 111, 111, 741, 741, 111, - 496, 111, 497, 741, 741, 111, 741, 498, 741, 111, - 741, 111, 741, 111, 741, 111, 111, 111, 111, 111, - 741, 500, 111, 741, 111, 741, 111, 741, 499, 741, - 111, 741, 111, 111, 111, 111, 111, 741, 741, 111, - 741, 111, 741, 111, 741, 111, 501, 111, 741, 111, - 111, 111, 111, 111, 741, 741, 111, 741, 111, 741, - 111, 741, 111, 503, 111, 741, 111, 502, 111, 111, - 111, 504, 111, 111, 741, 111, 741, 508, 741, 741, - - 741, 741, 111, 111, 111, 111, 111, 111, 111, 741, - 741, 111, 111, 741, 111, 509, 510, 741, 111, 741, - 111, 741, 111, 741, 111, 111, 111, 111, 111, 741, - 741, 111, 741, 111, 512, 111, 741, 111, 741, 111, - 741, 111, 511, 111, 111, 111, 111, 513, 741, 741, - 111, 741, 111, 514, 741, 741, 111, 741, 111, 741, - 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, - 741, 111, 741, 111, 741, 111, 741, 111, 111, 515, - 741, 516, 111, 741, 111, 741, 741, 741, 111, 741, - 111, 741, 111, 741, 111, 111, 111, 111, 111, 741, - - 741, 517, 741, 111, 741, 111, 741, 111, 111, 111, - 520, 111, 741, 741, 111, 741, 741, 741, 111, 111, - 522, 111, 111, 111, 741, 111, 741, 111, 741, 111, - 111, 111, 111, 111, 741, 525, 741, 524, 111, 741, - 111, 741, 111, 741, 111, 741, 111, 741, 741, 741, - 111, 111, 111, 741, 111, 111, 528, 741, 111, 111, - 527, 111, 741, 741, 741, 111, 741, 111, 111, 111, - 111, 111, 111, 111, 111, 111, 111, 111, 741, 111, - 111, 741, 741, 741, 741, 741, 111, 741, 111, 111, - 111, 111, 741, 111, 111, 111, 531, 741, 111, 482, - - 482, 482, 482, 741, 111, 741, 111, 741, 111, 741, - 741, 741, 540, 111, 483, 483, 483, 483, 483, 483, - 483, 483, 537, 741, 741, 741, 483, 483, 483, 483, - 483, 483, 483, 483, 111, 111, 741, 741, 741, 741, - 741, 541, 741, 741, 111, 111, 111, 111, 111, 111, - 741, 111, 111, 111, 111, 543, 741, 741, 741, 741, - 741, 111, 111, 544, 111, 111, 111, 111, 111, 741, - 111, 111, 741, 741, 545, 546, 741, 111, 111, 111, - 111, 111, 111, 111, 111, 741, 111, 111, 741, 741, - 741, 741, 741, 111, 111, 111, 111, 111, 111, 111, - - 741, 741, 111, 111, 741, 111, 547, 548, 741, 111, - 741, 111, 741, 111, 741, 111, 111, 111, 111, 111, - 741, 741, 111, 741, 111, 741, 111, 549, 111, 741, - 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, - 741, 111, 741, 111, 111, 111, 741, 111, 741, 741, - 741, 550, 111, 741, 111, 111, 111, 741, 111, 741, - 741, 552, 551, 111, 741, 111, 741, 111, 741, 111, - 741, 111, 111, 111, 111, 111, 741, 741, 111, 741, - 111, 741, 553, 741, 111, 558, 111, 741, 111, 111, - 111, 111, 111, 741, 741, 741, 741, 111, 741, 111, - - 111, 111, 741, 111, 741, 741, 111, 559, 111, 741, - 111, 741, 111, 741, 111, 741, 111, 111, 111, 111, - 111, 741, 741, 111, 741, 111, 561, 111, 741, 111, - 741, 111, 741, 111, 560, 111, 111, 111, 111, 111, - 741, 741, 111, 741, 741, 741, 741, 741, 111, 111, - 111, 111, 111, 111, 111, 563, 562, 111, 111, 741, - 111, 741, 741, 741, 111, 741, 111, 741, 111, 741, - 111, 111, 111, 111, 111, 741, 741, 111, 741, 111, - 741, 567, 741, 111, 741, 111, 741, 111, 111, 111, - 111, 111, 741, 741, 111, 741, 111, 741, 111, 741, - - 111, 741, 111, 741, 111, 564, 111, 111, 111, 111, - 741, 741, 571, 111, 741, 111, 741, 741, 572, 111, - 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, - 575, 111, 741, 741, 111, 741, 580, 580, 580, 580, - 741, 111, 741, 111, 741, 111, 741, 741, 741, 741, - 111, 581, 581, 581, 581, 581, 581, 581, 581, 111, - 111, 585, 741, 741, 741, 741, 584, 741, 741, 111, - 111, 111, 111, 111, 111, 111, 741, 741, 111, 111, - 741, 741, 741, 111, 741, 111, 111, 111, 741, 111, - 741, 587, 741, 111, 111, 111, 111, 111, 589, 111, - - 111, 588, 111, 741, 741, 111, 592, 111, 741, 111, - 741, 590, 741, 111, 741, 111, 741, 111, 111, 111, - 591, 111, 741, 111, 741, 111, 111, 111, 741, 111, - 741, 741, 741, 111, 111, 111, 111, 111, 741, 593, - 741, 741, 111, 741, 111, 741, 111, 741, 111, 741, - 111, 741, 111, 741, 111, 111, 111, 741, 111, 594, - 111, 741, 111, 111, 111, 741, 111, 741, 741, 741, - 111, 111, 111, 111, 111, 741, 599, 741, 741, 111, - 741, 111, 741, 111, 111, 111, 741, 111, 741, 741, - 741, 111, 111, 111, 111, 111, 111, 111, 111, 741, - - 111, 741, 741, 111, 741, 111, 741, 111, 111, 111, - 741, 111, 600, 741, 741, 111, 111, 111, 111, 111, - 111, 111, 111, 741, 111, 608, 601, 111, 741, 111, - 741, 111, 741, 111, 741, 111, 741, 741, 741, 111, - 111, 111, 111, 111, 741, 111, 741, 741, 111, 741, - 741, 741, 111, 741, 111, 611, 111, 111, 741, 111, - 111, 111, 741, 741, 111, 580, 580, 580, 580, 741, - 111, 741, 111, 620, 111, 741, 741, 741, 111, 111, - 581, 581, 581, 581, 581, 581, 581, 581, 111, 111, - 111, 741, 111, 741, 741, 111, 741, 111, 741, 111, - - 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, - 111, 111, 621, 622, 111, 741, 623, 741, 741, 741, - 111, 111, 111, 111, 111, 111, 111, 741, 741, 111, - 111, 741, 111, 741, 626, 741, 111, 741, 624, 741, - 111, 741, 111, 111, 111, 111, 111, 741, 741, 111, - 741, 111, 741, 627, 741, 111, 741, 111, 741, 111, - 111, 111, 111, 111, 741, 631, 741, 741, 111, 741, - 111, 111, 111, 632, 111, 741, 741, 111, 633, 111, - 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, - 111, 111, 741, 741, 111, 741, 111, 741, 111, 741, - - 648, 741, 111, 741, 111, 741, 111, 111, 111, 111, - 111, 649, 741, 111, 741, 741, 741, 741, 741, 111, - 111, 111, 111, 111, 111, 111, 111, 741, 111, 111, - 741, 741, 741, 741, 741, 111, 111, 111, 111, 111, - 111, 111, 650, 741, 111, 111, 741, 111, 652, 741, - 741, 111, 741, 111, 741, 111, 741, 111, 111, 111, - 111, 111, 741, 741, 741, 741, 111, 741, 111, 111, - 656, 741, 111, 741, 741, 111, 741, 111, 741, 111, - 741, 111, 657, 111, 741, 111, 111, 111, 111, 111, - 741, 741, 111, 741, 111, 741, 111, 741, 111, 741, - - 111, 741, 111, 111, 111, 111, 111, 741, 741, 741, - 741, 111, 741, 111, 111, 111, 741, 111, 741, 741, - 111, 672, 111, 741, 111, 741, 111, 741, 111, 741, - 111, 676, 677, 111, 111, 111, 111, 741, 741, 111, - 741, 741, 741, 741, 741, 111, 111, 111, 111, 111, - 111, 111, 111, 741, 111, 111, 741, 741, 692, 741, - 741, 111, 111, 111, 111, 111, 111, 741, 741, 741, - 111, 111, 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, 65, 65, - - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 68, 68, 68, 68, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 92, 92, 92, - 92, 741, 92, 92, 92, 92, 92, 92, 92, 92, - 99, 99, 99, 741, 99, 741, 99, 741, 99, 168, - 168, 741, 168, 168, 172, 172, 741, 741, 172, 172, - 741, 172, 172, 172, 172, 172, 172, 176, 176, 176, - 176, 741, 176, 176, 176, 176, 176, 176, 176, 176, - 178, 178, 178, 178, 178, 178, 178, 178, 741, 178, - - 178, 180, 741, 741, 741, 180, 180, 180, 180, 180, - 180, 180, 181, 741, 741, 741, 181, 181, 181, 181, - 181, 181, 181, 186, 186, 741, 186, 186, 190, 190, - 741, 190, 190, 192, 192, 741, 192, 192, 202, 741, - 202, 202, 117, 117, 741, 117, 117, 270, 741, 270, - 270, 277, 741, 277, 277, 279, 741, 279, 279, 280, - 741, 280, 280, 283, 283, 283, 283, 283, 283, 283, - 283, 283, 283, 283, 283, 283, 203, 203, 741, 203, - 203, 583, 583, 741, 583, 583, 583, 583, 583, 583, - 583, 583, 583, 583, 581, 581, 581, 741, 741, 741, - - 581, 741, 741, 741, 741, 581, 17, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741 + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 213, 213, 98, 99, 99, 99, 99, 99, + 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, + + 99, 99, 99, 99, 99, 99, 99, 107, 336, 110, + 110, 110, 110, 110, 110, 110, 110, 132, 113, 213, + 213, 145, 146, 213, 213, 147, 109, 745, 113, 727, + 113, 113, 113, 113, 133, 148, 213, 113, 141, 113, + 113, 213, 386, 726, 725, 629, 142, 352, 213, 113, + 149, 113, 213, 113, 720, 109, 112, 719, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 213, 346, 353, + 403, 510, 113, 114, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 115, 113, 116, 113, 117, 113, 113, + 113, 113, 118, 113, 113, 113, 113, 113, 408, 421, + + 387, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, + 119, 119, 119, 113, 213, 213, 213, 399, 136, 113, + 213, 137, 213, 113, 213, 113, 213, 113, 213, 113, + 138, 139, 113, 113, 213, 213, 140, 213, 113, 213, + 150, 113, 213, 151, 213, 134, 213, 100, 100, 100, + 100, 152, 213, 113, 197, 113, 135, 153, 113, 450, + 113, 156, 100, 100, 420, 157, 160, 472, 113, 451, + 113, 213, 113, 478, 161, 113, 158, 113, 113, 213, + 422, 159, 414, 485, 154, 113, 431, 113, 113, 113, + + 164, 162, 113, 481, 113, 452, 165, 113, 113, 464, + 538, 113, 741, 213, 467, 492, 484, 163, 113, 113, + 113, 113, 113, 113, 745, 113, 168, 113, 166, 113, + 113, 113, 525, 113, 173, 173, 173, 173, 113, 742, + 213, 477, 511, 213, 167, 213, 213, 213, 522, 174, + 174, 174, 174, 174, 174, 175, 175, 184, 173, 173, + 173, 173, 184, 184, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 174, 174, 174, 174, 174, 174, 175, + 175, 184, 184, 184, 184, 184, 107, 113, 108, 108, + 108, 108, 108, 108, 108, 108, 213, 113, 509, 113, + + 483, 113, 213, 546, 208, 109, 113, 537, 213, 718, + 534, 745, 184, 184, 184, 213, 213, 423, 423, 423, + 423, 107, 213, 201, 201, 201, 201, 201, 201, 201, + 201, 213, 213, 713, 109, 213, 560, 213, 184, 184, + 109, 644, 570, 523, 184, 184, 184, 184, 184, 184, + 184, 184, 184, 184, 184, 203, 203, 203, 203, 203, + 203, 203, 203, 184, 184, 184, 184, 184, 530, 109, + 574, 107, 109, 108, 108, 108, 108, 108, 108, 108, + 108, 186, 203, 203, 203, 203, 203, 203, 203, 203, + 109, 213, 561, 213, 184, 184, 184, 204, 425, 204, + + 213, 109, 203, 203, 203, 203, 203, 203, 203, 203, + 203, 203, 203, 203, 203, 203, 203, 203, 213, 109, + 184, 107, 113, 110, 110, 110, 110, 110, 110, 110, + 110, 213, 209, 113, 113, 213, 113, 711, 213, 113, + 109, 113, 536, 113, 533, 113, 213, 113, 710, 113, + 213, 113, 113, 211, 709, 275, 210, 577, 113, 175, + 175, 175, 175, 175, 175, 175, 175, 539, 213, 109, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 113, 113, 213, 540, 582, 213, 214, 572, + + 599, 213, 113, 113, 113, 113, 113, 113, 113, 113, + 212, 113, 113, 581, 213, 213, 213, 213, 113, 113, + 113, 113, 113, 216, 113, 213, 215, 113, 113, 213, + 113, 558, 213, 213, 113, 578, 113, 217, 113, 703, + 113, 213, 113, 113, 113, 218, 113, 580, 583, 113, + 559, 220, 113, 213, 213, 213, 113, 700, 113, 219, + 113, 213, 113, 113, 113, 113, 113, 590, 602, 213, + 213, 113, 695, 113, 221, 222, 113, 113, 611, 224, + 223, 600, 113, 213, 213, 694, 113, 601, 113, 113, + 113, 113, 606, 113, 609, 113, 113, 228, 113, 113, + + 225, 226, 213, 608, 613, 213, 113, 113, 113, 113, + 229, 113, 616, 113, 230, 113, 614, 231, 227, 113, + 113, 113, 622, 619, 617, 235, 113, 213, 213, 213, + 113, 213, 113, 232, 113, 113, 618, 213, 113, 113, + 213, 236, 213, 632, 634, 113, 113, 113, 113, 113, + 113, 185, 113, 693, 113, 213, 113, 113, 113, 688, + 237, 113, 238, 643, 213, 113, 678, 648, 686, 213, + 213, 113, 113, 113, 213, 113, 633, 213, 239, 240, + 113, 638, 113, 113, 113, 241, 113, 641, 646, 113, + 658, 113, 213, 113, 683, 113, 675, 113, 674, 113, + + 113, 243, 113, 113, 647, 242, 213, 213, 113, 213, + 244, 213, 113, 113, 113, 640, 113, 213, 213, 113, + 213, 246, 657, 113, 645, 113, 113, 113, 113, 113, + 113, 662, 113, 213, 247, 113, 702, 113, 213, 113, + 113, 113, 213, 113, 213, 659, 213, 113, 113, 113, + 113, 113, 113, 113, 113, 248, 113, 213, 250, 113, + 664, 213, 213, 113, 113, 113, 649, 113, 677, 665, + 213, 669, 113, 251, 113, 213, 113, 113, 113, 667, + 253, 673, 670, 252, 254, 213, 672, 113, 213, 113, + 213, 113, 256, 113, 213, 685, 113, 682, 671, 113, + + 213, 679, 213, 257, 213, 113, 213, 113, 697, 113, + 113, 113, 113, 113, 258, 213, 113, 259, 113, 684, + 113, 687, 113, 691, 113, 263, 113, 113, 113, 113, + 113, 712, 261, 213, 260, 113, 668, 113, 113, 262, + 666, 113, 689, 698, 113, 692, 113, 704, 113, 264, + 113, 663, 113, 699, 113, 113, 113, 113, 113, 706, + 690, 113, 213, 113, 728, 113, 701, 113, 267, 113, + 213, 113, 213, 113, 265, 113, 113, 113, 268, 213, + 113, 269, 620, 620, 620, 620, 113, 113, 113, 113, + 113, 113, 213, 276, 273, 113, 113, 175, 175, 175, + + 175, 175, 175, 175, 175, 107, 213, 201, 201, 201, + 201, 201, 201, 201, 201, 113, 113, 655, 292, 707, + 213, 705, 213, 708, 109, 113, 113, 113, 113, 113, + 113, 113, 113, 213, 113, 113, 715, 213, 651, 650, + 213, 113, 293, 113, 113, 113, 113, 113, 642, 716, + 113, 113, 639, 109, 112, 113, 213, 113, 113, 113, + 294, 113, 295, 621, 722, 113, 113, 113, 113, 113, + 113, 113, 113, 717, 113, 213, 213, 113, 623, 113, + 610, 113, 714, 113, 723, 113, 721, 607, 296, 297, + 113, 113, 213, 113, 620, 620, 620, 620, 113, 207, + + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 113, 113, 573, 569, 543, 724, 542, 527, 299, + 489, 113, 113, 113, 113, 113, 113, 298, 113, 113, + 113, 113, 427, 360, 362, 195, 193, 191, 113, 113, + 113, 113, 113, 301, 113, 300, 189, 113, 113, 185, + 360, 171, 745, 213, 113, 286, 113, 195, 113, 304, + 113, 302, 303, 113, 193, 621, 113, 305, 282, 306, + 113, 189, 113, 185, 113, 278, 113, 113, 113, 113, + 113, 277, 171, 113, 213, 113, 205, 113, 202, 113, + + 307, 113, 198, 113, 113, 113, 113, 113, 195, 193, + 113, 192, 113, 309, 113, 308, 113, 191, 113, 191, + 113, 113, 113, 113, 113, 189, 106, 113, 188, 113, + 312, 310, 183, 113, 311, 113, 181, 113, 113, 113, + 113, 113, 106, 179, 178, 177, 113, 171, 113, 113, + 113, 169, 113, 111, 105, 313, 95, 113, 92, 113, + 314, 113, 113, 113, 92, 745, 745, 745, 113, 745, + 113, 745, 113, 113, 113, 745, 113, 745, 745, 317, + 113, 113, 318, 319, 113, 113, 320, 113, 113, 113, + 745, 113, 113, 745, 113, 745, 745, 323, 321, 745, + + 113, 113, 113, 113, 113, 113, 113, 113, 113, 322, + 113, 324, 113, 113, 745, 745, 745, 745, 745, 745, + 113, 745, 113, 113, 113, 745, 113, 745, 745, 745, + 113, 113, 113, 113, 113, 113, 113, 113, 745, 113, + 745, 745, 325, 745, 113, 745, 326, 328, 113, 745, + 113, 745, 745, 745, 113, 113, 113, 113, 113, 745, + 329, 745, 745, 113, 745, 113, 745, 113, 113, 113, + 745, 113, 330, 745, 745, 113, 113, 113, 113, 113, + 113, 113, 113, 745, 113, 745, 332, 113, 745, 113, + 745, 113, 745, 113, 745, 113, 745, 113, 745, 113, + + 113, 113, 745, 113, 745, 113, 333, 113, 113, 113, + 745, 113, 745, 745, 334, 113, 113, 113, 113, 113, + 338, 113, 745, 745, 113, 335, 745, 745, 337, 113, + 113, 113, 113, 113, 745, 113, 745, 113, 745, 113, + 113, 113, 113, 113, 745, 745, 745, 745, 339, 745, + 113, 745, 113, 340, 113, 745, 113, 745, 113, 745, + 113, 113, 113, 745, 113, 341, 113, 745, 113, 113, + 113, 745, 113, 745, 745, 745, 113, 113, 113, 113, + 113, 745, 745, 745, 342, 113, 745, 113, 745, 113, + 745, 113, 745, 113, 745, 745, 343, 113, 113, 113, + + 113, 113, 745, 345, 344, 745, 113, 745, 113, 745, + 113, 745, 113, 745, 113, 745, 745, 351, 113, 113, + 113, 347, 113, 348, 113, 113, 745, 113, 349, 745, + 745, 745, 745, 745, 113, 113, 113, 113, 113, 113, + 113, 745, 350, 113, 113, 745, 355, 745, 745, 745, + 113, 745, 113, 745, 113, 356, 356, 356, 356, 113, + 745, 745, 745, 358, 358, 358, 358, 745, 745, 745, + 357, 357, 357, 357, 357, 357, 357, 357, 359, 359, + 359, 359, 359, 359, 359, 359, 113, 113, 745, 745, + 745, 745, 745, 745, 364, 745, 113, 113, 363, 113, + + 113, 113, 113, 745, 745, 113, 113, 745, 113, 745, + 745, 745, 113, 365, 113, 745, 113, 745, 113, 113, + 366, 113, 113, 745, 745, 113, 745, 113, 368, 113, + 745, 113, 745, 113, 745, 113, 745, 113, 113, 113, + 369, 113, 113, 370, 113, 745, 745, 745, 745, 745, + 745, 113, 113, 113, 113, 113, 113, 113, 745, 745, + 113, 113, 745, 745, 367, 113, 745, 113, 745, 113, + 745, 113, 745, 113, 371, 113, 113, 113, 372, 113, + 745, 745, 745, 113, 113, 113, 113, 113, 374, 113, + 745, 373, 113, 745, 745, 745, 113, 113, 113, 113, + + 113, 113, 745, 113, 745, 375, 745, 113, 113, 376, + 113, 113, 377, 113, 745, 378, 113, 745, 745, 745, + 113, 745, 113, 113, 113, 113, 745, 113, 113, 113, + 745, 379, 113, 745, 113, 745, 745, 745, 113, 745, + 113, 745, 113, 745, 113, 113, 113, 113, 380, 745, + 745, 113, 381, 113, 745, 113, 745, 113, 745, 113, + 745, 113, 113, 113, 113, 113, 745, 382, 745, 745, + 113, 745, 113, 745, 383, 745, 113, 113, 384, 745, + 385, 113, 745, 113, 745, 745, 745, 113, 745, 113, + 745, 113, 745, 113, 113, 113, 113, 113, 745, 745, + + 113, 745, 113, 745, 113, 745, 113, 745, 113, 745, + 113, 745, 113, 113, 113, 113, 113, 745, 389, 113, + 745, 745, 390, 745, 745, 113, 113, 113, 113, 113, + 113, 113, 391, 745, 113, 113, 393, 113, 745, 388, + 745, 113, 745, 113, 397, 113, 745, 113, 745, 113, + 392, 113, 113, 394, 745, 113, 113, 395, 745, 745, + 745, 745, 113, 113, 113, 113, 113, 113, 396, 113, + 745, 113, 745, 113, 113, 113, 113, 113, 745, 745, + 398, 745, 113, 745, 113, 400, 113, 113, 113, 745, + 113, 745, 745, 745, 113, 113, 113, 113, 113, 113, + + 113, 113, 745, 113, 405, 401, 113, 745, 113, 745, + 113, 404, 113, 402, 113, 745, 745, 745, 113, 113, + 113, 113, 113, 745, 745, 745, 745, 113, 745, 113, + 745, 113, 406, 113, 745, 113, 407, 113, 745, 113, + 113, 113, 745, 113, 745, 113, 745, 113, 113, 113, + 745, 113, 745, 113, 745, 113, 113, 113, 745, 113, + 745, 745, 745, 113, 113, 113, 113, 113, 745, 410, + 745, 409, 113, 745, 113, 745, 113, 113, 113, 745, + 113, 745, 745, 745, 113, 113, 113, 113, 113, 411, + 745, 113, 113, 113, 412, 113, 113, 745, 113, 745, + + 745, 745, 113, 745, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 745, 113, 113, 745, 113, + 745, 745, 745, 113, 745, 113, 113, 113, 415, 113, + 113, 113, 113, 113, 745, 113, 113, 413, 416, 417, + 745, 745, 113, 745, 745, 745, 113, 745, 113, 745, + 113, 745, 113, 113, 113, 113, 113, 745, 745, 745, + 745, 113, 745, 113, 745, 113, 745, 113, 745, 113, + 419, 745, 113, 745, 356, 356, 356, 356, 418, 113, + 745, 113, 745, 113, 745, 745, 745, 745, 113, 357, + 357, 357, 357, 357, 357, 357, 357, 423, 423, 423, + + 423, 745, 745, 745, 745, 745, 745, 745, 424, 745, + 745, 745, 357, 357, 357, 357, 357, 357, 357, 357, + 358, 358, 358, 358, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 359, 359, 359, 359, 359, + 359, 359, 359, 424, 745, 113, 745, 359, 359, 359, + 359, 359, 359, 359, 359, 113, 745, 113, 745, 113, + 113, 429, 745, 428, 113, 745, 745, 745, 745, 745, + 113, 745, 113, 113, 113, 430, 113, 745, 425, 113, + 745, 745, 745, 113, 745, 113, 113, 113, 113, 745, + 113, 745, 113, 432, 113, 113, 745, 113, 433, 745, + + 113, 745, 745, 434, 113, 745, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 745, 113, 113, + 745, 745, 745, 745, 745, 113, 113, 113, 113, 113, + 435, 745, 113, 745, 113, 745, 113, 113, 113, 113, + 113, 745, 436, 745, 745, 113, 437, 113, 745, 113, + 745, 113, 745, 113, 745, 745, 745, 438, 113, 113, + 113, 113, 745, 439, 745, 745, 113, 440, 745, 745, + 113, 113, 113, 441, 113, 745, 745, 113, 745, 113, + 442, 113, 745, 113, 443, 113, 745, 113, 113, 113, + 113, 113, 745, 745, 745, 745, 113, 745, 113, 113, + + 113, 745, 113, 745, 444, 745, 745, 113, 745, 113, + 745, 113, 745, 113, 113, 446, 745, 445, 113, 745, + 113, 745, 745, 745, 113, 745, 113, 745, 113, 745, + 113, 113, 113, 113, 113, 745, 745, 113, 447, 113, + 745, 113, 745, 113, 745, 113, 745, 113, 448, 449, + 113, 113, 113, 113, 745, 745, 113, 745, 745, 745, + 453, 745, 113, 113, 113, 113, 113, 113, 745, 745, + 113, 113, 113, 113, 454, 745, 455, 745, 745, 745, + 113, 745, 113, 113, 113, 113, 745, 113, 456, 113, + 113, 113, 113, 457, 745, 745, 745, 745, 745, 745, + + 113, 113, 458, 113, 113, 113, 113, 745, 745, 113, + 113, 745, 113, 745, 745, 460, 113, 745, 113, 745, + 113, 745, 113, 113, 113, 459, 113, 462, 745, 745, + 463, 113, 745, 113, 745, 113, 113, 113, 745, 745, + 461, 745, 113, 745, 113, 745, 113, 113, 113, 745, + 113, 745, 745, 745, 113, 113, 113, 113, 113, 113, + 113, 113, 465, 113, 745, 745, 113, 745, 113, 745, + 113, 745, 113, 745, 113, 745, 113, 745, 113, 113, + 466, 745, 113, 745, 113, 745, 113, 113, 113, 745, + 113, 745, 468, 745, 113, 113, 470, 113, 113, 745, + + 745, 745, 745, 113, 745, 745, 745, 113, 745, 113, + 113, 113, 745, 113, 745, 471, 113, 473, 745, 745, + 113, 113, 113, 113, 113, 474, 475, 113, 745, 113, + 745, 113, 113, 113, 113, 113, 745, 745, 745, 745, + 113, 745, 745, 745, 113, 113, 113, 745, 113, 745, + 745, 113, 745, 113, 479, 113, 476, 113, 745, 113, + 745, 113, 113, 113, 113, 113, 745, 745, 745, 745, + 113, 745, 113, 113, 113, 745, 113, 745, 480, 745, + 745, 113, 745, 113, 745, 113, 745, 113, 486, 486, + 486, 486, 113, 745, 745, 745, 745, 745, 745, 745, + + 745, 113, 745, 487, 487, 487, 487, 487, 487, 487, + 487, 113, 745, 113, 113, 113, 490, 113, 482, 745, + 113, 745, 745, 745, 113, 113, 113, 113, 113, 113, + 745, 113, 491, 113, 745, 113, 113, 493, 113, 113, + 745, 113, 745, 745, 113, 745, 745, 745, 113, 745, + 113, 113, 113, 113, 745, 113, 494, 113, 113, 745, + 113, 495, 745, 496, 113, 745, 745, 745, 113, 745, + 113, 745, 113, 745, 113, 113, 113, 113, 113, 745, + 745, 113, 745, 113, 745, 113, 745, 497, 745, 113, + 745, 113, 745, 113, 113, 113, 113, 745, 499, 498, + + 113, 745, 113, 745, 745, 745, 113, 745, 113, 745, + 113, 745, 113, 745, 113, 113, 113, 745, 745, 113, + 500, 113, 501, 745, 745, 113, 745, 502, 745, 113, + 745, 113, 745, 113, 745, 113, 113, 113, 113, 113, + 745, 504, 113, 745, 113, 745, 113, 745, 503, 745, + 113, 745, 113, 113, 113, 113, 113, 745, 745, 113, + 745, 113, 745, 113, 745, 113, 505, 113, 745, 113, + 113, 113, 113, 113, 745, 745, 113, 745, 113, 745, + 113, 745, 113, 507, 113, 745, 113, 506, 113, 113, + 113, 508, 113, 113, 745, 113, 745, 512, 745, 745, + + 745, 745, 113, 113, 113, 113, 113, 113, 113, 745, + 745, 113, 113, 745, 113, 513, 514, 745, 113, 745, + 113, 745, 113, 745, 113, 113, 113, 113, 113, 745, + 745, 113, 745, 113, 516, 113, 745, 113, 745, 113, + 745, 113, 515, 113, 113, 113, 113, 517, 745, 745, + 113, 745, 113, 518, 745, 745, 113, 745, 113, 745, + 113, 745, 113, 113, 113, 113, 113, 745, 745, 745, + 745, 113, 745, 113, 745, 113, 745, 113, 113, 519, + 745, 520, 113, 745, 113, 745, 745, 745, 113, 745, + 113, 745, 113, 745, 113, 113, 113, 113, 113, 745, + + 745, 521, 745, 113, 745, 113, 745, 113, 113, 113, + 524, 113, 745, 745, 113, 745, 745, 745, 113, 113, + 526, 113, 113, 113, 745, 113, 745, 113, 745, 113, + 113, 113, 113, 113, 745, 529, 745, 528, 113, 745, + 113, 745, 113, 745, 113, 745, 113, 745, 745, 745, + 113, 113, 113, 745, 113, 113, 532, 745, 113, 113, + 531, 113, 745, 745, 745, 113, 745, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 745, 113, + 113, 745, 745, 745, 745, 745, 113, 745, 113, 113, + 113, 113, 745, 113, 113, 113, 535, 745, 113, 486, + + 486, 486, 486, 745, 113, 745, 113, 745, 113, 745, + 745, 745, 544, 113, 487, 487, 487, 487, 487, 487, + 487, 487, 541, 745, 745, 745, 487, 487, 487, 487, + 487, 487, 487, 487, 113, 113, 745, 745, 745, 745, + 745, 545, 745, 745, 113, 113, 113, 113, 113, 113, + 745, 113, 113, 113, 113, 547, 745, 745, 745, 745, + 745, 113, 113, 548, 113, 113, 113, 113, 113, 745, + 113, 113, 745, 745, 549, 550, 745, 113, 113, 113, + 113, 113, 113, 113, 113, 745, 113, 113, 745, 745, + 745, 745, 745, 113, 113, 113, 113, 113, 113, 113, + + 745, 745, 113, 113, 745, 113, 551, 552, 745, 113, + 745, 113, 745, 113, 745, 113, 113, 113, 113, 113, + 745, 745, 113, 745, 113, 745, 113, 553, 113, 745, + 113, 745, 113, 113, 113, 113, 113, 745, 745, 745, + 745, 113, 745, 113, 113, 113, 745, 113, 745, 745, + 745, 554, 113, 745, 113, 113, 113, 745, 113, 745, + 745, 556, 555, 113, 745, 113, 745, 113, 745, 113, + 745, 113, 113, 113, 113, 113, 745, 745, 113, 745, + 113, 745, 557, 745, 113, 562, 113, 745, 113, 113, + 113, 113, 113, 745, 745, 745, 745, 113, 745, 113, + + 113, 113, 745, 113, 745, 745, 113, 563, 113, 745, + 113, 745, 113, 745, 113, 745, 113, 113, 113, 113, + 113, 745, 745, 113, 745, 113, 565, 113, 745, 113, + 745, 113, 745, 113, 564, 113, 113, 113, 113, 113, + 745, 745, 113, 745, 745, 745, 745, 745, 113, 113, + 113, 113, 113, 113, 113, 567, 566, 113, 113, 745, + 113, 745, 745, 745, 113, 745, 113, 745, 113, 745, + 113, 113, 113, 113, 113, 745, 745, 113, 745, 113, + 745, 571, 745, 113, 745, 113, 745, 113, 113, 113, + 113, 113, 745, 745, 113, 745, 113, 745, 113, 745, + + 113, 745, 113, 745, 113, 568, 113, 113, 113, 113, + 745, 745, 575, 113, 745, 113, 745, 745, 576, 113, + 745, 113, 745, 113, 745, 113, 745, 113, 113, 113, + 579, 113, 745, 745, 113, 745, 584, 584, 584, 584, + 745, 113, 745, 113, 745, 113, 745, 745, 745, 745, + 113, 585, 585, 585, 585, 585, 585, 585, 585, 113, + 113, 589, 745, 745, 745, 745, 588, 745, 745, 113, + 113, 113, 113, 113, 113, 113, 745, 745, 113, 113, + 745, 745, 745, 113, 745, 113, 113, 113, 745, 113, + 745, 591, 745, 113, 113, 113, 113, 113, 593, 113, + + 113, 592, 113, 745, 745, 113, 596, 113, 745, 113, + 745, 594, 745, 113, 745, 113, 745, 113, 113, 113, + 595, 113, 745, 113, 745, 113, 113, 113, 745, 113, + 745, 745, 745, 113, 113, 113, 113, 113, 745, 597, + 745, 745, 113, 745, 113, 745, 113, 745, 113, 745, + 113, 745, 113, 745, 113, 113, 113, 745, 113, 598, + 113, 745, 113, 113, 113, 745, 113, 745, 745, 745, + 113, 113, 113, 113, 113, 745, 603, 745, 745, 113, + 745, 113, 745, 113, 113, 113, 745, 113, 745, 745, + 745, 113, 113, 113, 113, 113, 113, 113, 113, 745, + + 113, 745, 745, 113, 745, 113, 745, 113, 113, 113, + 745, 113, 604, 745, 745, 113, 113, 113, 113, 113, + 113, 113, 113, 745, 113, 612, 605, 113, 745, 113, + 745, 113, 745, 113, 745, 113, 745, 745, 745, 113, + 113, 113, 113, 113, 745, 113, 745, 745, 113, 745, + 745, 745, 113, 745, 113, 615, 113, 113, 745, 113, + 113, 113, 745, 745, 113, 584, 584, 584, 584, 745, + 113, 745, 113, 624, 113, 745, 745, 745, 113, 113, + 585, 585, 585, 585, 585, 585, 585, 585, 113, 113, + 113, 745, 113, 745, 745, 113, 745, 113, 745, 113, + + 745, 113, 745, 113, 745, 113, 745, 113, 113, 113, + 113, 113, 625, 626, 113, 745, 627, 745, 745, 745, + 113, 113, 113, 113, 113, 113, 113, 745, 745, 113, + 113, 745, 113, 745, 630, 745, 113, 745, 628, 745, + 113, 745, 113, 113, 113, 113, 113, 745, 745, 113, + 745, 113, 745, 631, 745, 113, 745, 113, 745, 113, + 113, 113, 113, 113, 745, 635, 745, 745, 113, 745, + 113, 113, 113, 636, 113, 745, 745, 113, 637, 113, + 745, 113, 745, 113, 745, 113, 745, 113, 113, 113, + 113, 113, 745, 745, 113, 745, 113, 745, 113, 745, + + 652, 745, 113, 745, 113, 745, 113, 113, 113, 113, + 113, 653, 745, 113, 745, 745, 745, 745, 745, 113, + 113, 113, 113, 113, 113, 113, 113, 745, 113, 113, + 745, 745, 745, 745, 745, 113, 113, 113, 113, 113, + 113, 113, 654, 745, 113, 113, 745, 113, 656, 745, + 745, 113, 745, 113, 745, 113, 745, 113, 113, 113, + 113, 113, 745, 745, 745, 745, 113, 745, 113, 113, + 660, 745, 113, 745, 745, 113, 745, 113, 745, 113, + 745, 113, 661, 113, 745, 113, 113, 113, 113, 113, + 745, 745, 113, 745, 113, 745, 113, 745, 113, 745, + + 113, 745, 113, 113, 113, 113, 113, 745, 745, 745, + 745, 113, 745, 113, 113, 113, 745, 113, 745, 745, + 113, 676, 113, 745, 113, 745, 113, 745, 113, 745, + 113, 680, 681, 113, 113, 113, 113, 745, 745, 113, + 745, 745, 745, 745, 745, 113, 113, 113, 113, 113, + 113, 113, 113, 745, 113, 113, 745, 745, 696, 745, + 745, 113, 113, 113, 113, 113, 113, 745, 745, 745, + 113, 113, 57, 57, 57, 57, 57, 57, 57, 57, + 57, 57, 57, 57, 57, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 67, 67, + + 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, + 67, 70, 70, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 94, 94, 94, + 94, 745, 94, 94, 94, 94, 94, 94, 94, 94, + 101, 101, 101, 745, 101, 745, 101, 745, 101, 172, + 172, 745, 172, 172, 176, 176, 745, 745, 176, 176, + 745, 176, 176, 176, 176, 176, 176, 180, 180, 180, + 180, 745, 180, 180, 180, 180, 180, 180, 180, 180, + 182, 182, 182, 182, 182, 182, 182, 182, 745, 182, + + 182, 184, 745, 745, 745, 184, 184, 184, 184, 184, + 184, 184, 185, 745, 745, 745, 185, 185, 185, 185, + 185, 185, 185, 190, 190, 745, 190, 190, 194, 194, + 745, 194, 194, 196, 196, 745, 196, 196, 206, 745, + 206, 206, 119, 119, 745, 119, 119, 274, 745, 274, + 274, 281, 745, 281, 281, 283, 745, 283, 283, 284, + 745, 284, 284, 287, 287, 287, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 207, 207, 745, 207, + 207, 587, 587, 745, 587, 587, 587, 587, 587, 587, + 587, 587, 587, 587, 585, 585, 585, 745, 745, 745, + + 585, 745, 745, 745, 745, 585, 17, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745 } ; static yyconst flex_int16_t yy_chk[4591] = @@ -1455,35 +1458,35 @@ static yyconst flex_int16_t yy_chk[4591] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 4, 4, 4, 5, - 5, 5, 133, 11, 3, 9, 7, 4, 8, 9, - - 5, 6, 6, 6, 7, 12, 8, 147, 132, 7, - 10, 8, 6, 739, 10, 11, 101, 29, 11, 29, - 7, 96, 8, 79, 79, 79, 79, 12, 738, 101, - 12, 19, 19, 19, 19, 81, 538, 133, 19, 20, - 20, 20, 20, 538, 196, 36, 20, 24, 24, 24, - 24, 36, 81, 96, 24, 36, 152, 36, 36, 36, - 142, 147, 24, 24, 36, 132, 26, 80, 80, 80, - 80, 11, 196, 11, 26, 26, 26, 26, 26, 26, - 26, 26, 161, 12, 81, 12, 13, 13, 13, 13, + 5, 5, 135, 11, 3, 9, 7, 4, 8, 9, + + 5, 6, 6, 6, 7, 12, 8, 149, 54, 7, + 10, 8, 6, 743, 10, 11, 103, 29, 11, 29, + 7, 98, 8, 81, 81, 81, 81, 12, 742, 103, + 12, 19, 19, 19, 19, 83, 542, 135, 19, 20, + 20, 20, 20, 542, 200, 36, 20, 24, 24, 24, + 24, 36, 83, 98, 24, 36, 54, 36, 36, 36, + 134, 149, 24, 24, 36, 154, 26, 82, 82, 82, + 82, 11, 200, 11, 26, 26, 26, 26, 26, 26, + 26, 26, 144, 12, 83, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 91, 91, 91, 91, 195, 164, 195, 152, - 13, 13, 13, 13, 13, 27, 142, 195, 327, 13, - 27, 41, 357, 27, 27, 27, 27, 27, 27, 27, - 27, 41, 357, 41, 268, 41, 229, 161, 165, 241, + 13, 13, 93, 93, 93, 93, 163, 166, 290, 233, + 13, 13, 13, 13, 13, 27, 197, 134, 154, 13, + 27, 41, 197, 27, 27, 27, 27, 27, 27, 27, + 27, 41, 739, 41, 738, 41, 290, 245, 144, 167, 41, 13, 13, 13, 30, 44, 30, 30, 30, 30, - 30, 30, 30, 30, 230, 44, 193, 44, 251, 44, - 164, 382, 193, 30, 44, 327, 13, 13, 13, 14, + 30, 30, 30, 30, 199, 44, 199, 44, 233, 44, + 166, 163, 272, 30, 44, 199, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 229, 165, 268, 241, 182, - 182, 44, 30, 14, 14, 14, 14, 14, 35, 165, - - 182, 35, 14, 582, 37, 35, 382, 37, 35, 35, - 35, 35, 35, 230, 37, 251, 37, 35, 37, 38, - 286, 35, 401, 37, 14, 14, 14, 275, 275, 38, - 38, 38, 582, 38, 183, 183, 183, 183, 38, 422, - 735, 38, 734, 733, 422, 732, 401, 731, 286, 14, + 14, 14, 14, 14, 14, 234, 245, 167, 186, 186, + 249, 44, 30, 14, 14, 14, 14, 14, 35, 186, + + 167, 35, 14, 361, 37, 35, 737, 37, 35, 35, + 35, 35, 35, 361, 37, 272, 37, 35, 37, 38, + 740, 35, 405, 37, 14, 14, 14, 279, 279, 38, + 38, 38, 736, 38, 187, 187, 187, 187, 38, 249, + 426, 38, 735, 734, 234, 426, 405, 740, 733, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, @@ -1493,467 +1496,467 @@ static yyconst flex_int16_t yy_chk[4591] = 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 23, 47, 730, 285, 47, - 285, 729, 419, 419, 419, 419, 47, 728, 47, 285, - 47, 727, 23, 726, 724, 47, 23, 23, 23, 23, + 15, 15, 15, 15, 15, 23, 47, 732, 289, 47, + 289, 731, 730, 728, 726, 725, 47, 724, 47, 289, + 47, 255, 23, 723, 721, 47, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 311, 266, 23, 23, 23, 23, 23, 23, + 23, 23, 315, 270, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 31, 245, 31, - 31, 31, 31, 31, 31, 31, 31, 39, 39, 262, - 267, 45, 45, 419, 463, 45, 31, 592, 39, 722, - 39, 45, 39, 45, 39, 45, 332, 39, 43, 43, - 45, 349, 311, 463, 721, 592, 43, 266, 312, 43, - 45, 43, 720, 43, 719, 31, 34, 245, 43, 34, - 34, 34, 34, 34, 34, 34, 34, 323, 262, 267, - 342, 383, 34, 34, 34, 34, 34, 34, 34, 34, + 23, 23, 23, 23, 23, 23, 23, 31, 255, 31, + 31, 31, 31, 31, 31, 31, 31, 39, 39, 266, + 271, 45, 45, 331, 451, 45, 31, 596, 39, 720, + 39, 45, 39, 45, 39, 45, 336, 39, 43, 43, + 45, 353, 315, 719, 718, 596, 43, 270, 316, 43, + 45, 43, 717, 43, 711, 31, 34, 710, 43, 34, + 34, 34, 34, 34, 34, 34, 34, 327, 266, 271, + 331, 451, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, 332, 349, + 34, 34, 34, 34, 34, 34, 34, 34, 336, 353, - 312, 34, 34, 34, 34, 34, 34, 34, 34, 34, + 316, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 40, 383, 348, 395, 323, 42, 42, - 399, 42, 342, 40, 418, 40, 363, 40, 404, 42, - 42, 42, 40, 42, 350, 384, 42, 555, 42, 409, - 46, 46, 417, 46, 410, 40, 414, 98, 98, 98, - 98, 46, 427, 46, 98, 46, 40, 46, 48, 446, - 46, 48, 98, 98, 348, 48, 49, 474, 48, 395, - 48, 416, 48, 404, 49, 49, 48, 48, 50, 418, - 350, 48, 399, 447, 46, 49, 363, 49, 50, 49, - - 50, 49, 50, 410, 49, 384, 50, 50, 51, 409, - 717, 111, 414, 555, 417, 427, 716, 49, 51, 52, - 51, 111, 51, 111, 446, 111, 52, 51, 50, 52, - 111, 52, 715, 52, 54, 54, 54, 54, 52, 714, - 447, 416, 474, 448, 51, 488, 479, 473, 478, 54, - 54, 54, 54, 54, 54, 54, 54, 77, 169, 169, - 169, 169, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 169, 169, 169, 169, 169, 169, 169, - 169, 77, 77, 77, 77, 77, 100, 112, 100, 100, - 100, 100, 100, 100, 100, 100, 448, 112, 459, 112, - - 473, 112, 488, 506, 112, 100, 112, 479, 478, 713, - 707, 608, 77, 77, 77, 736, 706, 705, 704, 477, - 701, 102, 459, 102, 102, 102, 102, 102, 102, 102, - 102, 697, 696, 695, 100, 693, 519, 506, 77, 78, - 102, 608, 736, 480, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 105, 105, 105, 105, 105, - 105, 105, 105, 78, 78, 78, 78, 78, 477, 102, - 519, 106, 105, 106, 106, 106, 106, 106, 106, 106, - 106, 78, 199, 199, 199, 199, 199, 199, 199, 199, - 106, 460, 480, 481, 78, 78, 78, 107, 468, 107, - - 507, 105, 107, 107, 107, 107, 107, 107, 107, 107, - 200, 200, 200, 200, 200, 200, 200, 200, 521, 106, - 78, 108, 113, 108, 108, 108, 108, 108, 108, 108, - 108, 535, 113, 114, 113, 691, 113, 529, 460, 115, - 108, 113, 481, 114, 468, 114, 526, 114, 690, 115, - 689, 115, 114, 115, 534, 170, 114, 507, 115, 170, - 170, 170, 170, 170, 170, 170, 170, 521, 682, 108, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 116, 118, 529, 505, 535, 530, 118, 534, - - 533, 526, 116, 118, 116, 118, 116, 118, 119, 120, - 116, 116, 118, 536, 679, 576, 542, 557, 119, 120, - 119, 120, 119, 120, 121, 554, 119, 119, 120, 505, - 122, 530, 556, 678, 121, 570, 121, 121, 121, 602, - 122, 566, 122, 121, 122, 123, 123, 536, 505, 122, - 574, 124, 124, 533, 573, 568, 123, 671, 123, 123, - 123, 579, 124, 125, 124, 123, 124, 542, 557, 564, - 578, 124, 576, 125, 125, 125, 126, 125, 596, 127, - 126, 577, 125, 595, 570, 670, 126, 554, 126, 127, - 126, 127, 602, 127, 556, 126, 129, 129, 127, 128, - - 128, 128, 612, 566, 578, 573, 129, 130, 129, 128, - 129, 128, 574, 128, 129, 129, 568, 130, 128, 130, - 131, 130, 605, 579, 628, 134, 130, 596, 597, 564, - 131, 654, 131, 131, 131, 134, 577, 630, 135, 131, - 607, 135, 613, 595, 604, 134, 136, 134, 135, 134, - 135, 610, 135, 612, 134, 614, 136, 135, 136, 629, - 136, 137, 137, 634, 615, 136, 654, 737, 669, 605, - 664, 137, 138, 137, 607, 137, 613, 628, 137, 137, - 137, 653, 138, 139, 138, 138, 138, 655, 597, 140, - 630, 138, 636, 139, 737, 139, 662, 139, 639, 140, - - 141, 140, 139, 140, 604, 139, 637, 629, 140, 641, - 141, 610, 141, 143, 141, 644, 144, 614, 645, 141, - 634, 143, 660, 143, 615, 143, 144, 143, 144, 145, - 144, 658, 143, 643, 144, 144, 698, 146, 653, 145, - 148, 145, 663, 145, 655, 636, 666, 146, 145, 146, - 148, 146, 148, 149, 148, 146, 146, 673, 148, 148, - 639, 659, 641, 149, 150, 149, 637, 149, 661, 651, - 667, 645, 149, 149, 150, 644, 150, 151, 150, 660, - 151, 681, 658, 150, 151, 665, 668, 151, 687, 151, - 647, 151, 153, 153, 674, 643, 151, 646, 698, 154, - - 675, 710, 663, 153, 694, 153, 666, 153, 673, 154, - 155, 154, 153, 154, 154, 680, 156, 154, 154, 683, - 155, 661, 155, 667, 155, 158, 156, 157, 156, 155, - 156, 642, 156, 640, 155, 156, 638, 157, 158, 157, - 681, 157, 665, 668, 159, 687, 157, 674, 158, 159, - 158, 675, 158, 686, 159, 160, 159, 158, 159, 710, - 694, 162, 700, 159, 635, 160, 680, 160, 162, 160, - 685, 162, 683, 162, 160, 162, 166, 163, 163, 702, - 162, 163, 581, 581, 581, 581, 166, 163, 166, 163, - 166, 163, 718, 171, 166, 166, 163, 171, 171, 171, - - 171, 171, 171, 171, 171, 197, 686, 197, 197, 197, - 197, 197, 197, 197, 197, 204, 205, 625, 204, 700, - 619, 685, 688, 618, 197, 204, 205, 204, 205, 204, - 205, 206, 207, 703, 204, 205, 702, 708, 609, 606, - 603, 206, 207, 206, 207, 206, 207, 208, 598, 586, - 206, 207, 718, 197, 202, 210, 583, 208, 211, 208, - 208, 208, 210, 581, 569, 210, 208, 210, 211, 210, - 211, 212, 211, 688, 210, 711, 712, 211, 565, 213, - 532, 212, 523, 212, 703, 212, 708, 518, 212, 213, - 212, 213, 485, 213, 616, 616, 616, 616, 213, 202, - - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, - 202, 214, 215, 484, 465, 423, 711, 712, 358, 215, - 356, 214, 215, 214, 215, 214, 215, 214, 216, 217, - 214, 215, 287, 280, 279, 278, 277, 276, 216, 217, - 216, 217, 216, 217, 218, 216, 273, 216, 217, 270, - 209, 203, 194, 192, 218, 190, 218, 188, 218, 219, - 219, 218, 218, 218, 186, 616, 220, 219, 181, 220, - 219, 179, 219, 174, 219, 168, 220, 221, 220, 219, - 220, 117, 109, 222, 103, 220, 99, 221, 97, 221, - - 221, 221, 95, 222, 223, 222, 221, 222, 94, 93, - 224, 90, 222, 224, 223, 223, 223, 85, 223, 84, - 224, 225, 224, 223, 224, 83, 70, 226, 67, 224, - 226, 225, 63, 225, 225, 225, 62, 226, 227, 226, - 225, 226, 59, 58, 53, 32, 226, 28, 227, 228, - 227, 22, 227, 21, 18, 227, 17, 227, 0, 228, - 228, 228, 231, 228, 0, 0, 0, 0, 228, 0, - 232, 0, 231, 233, 231, 0, 231, 0, 0, 231, - 232, 231, 232, 233, 232, 233, 233, 233, 234, 232, - 0, 235, 233, 0, 236, 0, 0, 236, 234, 0, - - 234, 235, 234, 235, 236, 235, 236, 234, 236, 235, - 235, 237, 238, 236, 0, 0, 0, 0, 0, 0, - 237, 0, 238, 239, 238, 0, 238, 0, 0, 0, - 237, 238, 237, 239, 237, 239, 240, 239, 0, 237, - 0, 0, 239, 0, 242, 0, 240, 242, 240, 0, - 240, 0, 0, 0, 242, 240, 242, 243, 242, 0, - 243, 0, 0, 242, 0, 244, 0, 243, 246, 243, - 0, 243, 244, 0, 0, 244, 243, 244, 246, 244, - 246, 247, 246, 0, 244, 0, 246, 246, 0, 248, - 0, 247, 0, 247, 0, 247, 0, 249, 0, 248, - - 247, 248, 0, 248, 0, 250, 248, 249, 248, 249, - 0, 249, 0, 0, 249, 250, 249, 250, 252, 250, - 253, 253, 0, 0, 250, 250, 0, 0, 252, 254, - 252, 253, 252, 253, 0, 253, 0, 252, 0, 254, - 253, 254, 255, 254, 0, 0, 0, 0, 254, 0, - 256, 0, 255, 256, 255, 0, 255, 0, 257, 0, - 256, 255, 256, 0, 256, 257, 258, 0, 257, 256, - 257, 0, 257, 0, 0, 0, 258, 257, 258, 259, - 258, 0, 0, 0, 258, 258, 0, 260, 0, 259, - 0, 259, 0, 259, 0, 0, 259, 260, 259, 260, - - 261, 260, 0, 261, 260, 0, 260, 0, 263, 0, - 261, 0, 261, 0, 261, 0, 0, 265, 263, 261, - 263, 263, 263, 263, 264, 265, 0, 263, 263, 0, - 0, 0, 0, 0, 264, 265, 264, 265, 264, 265, - 269, 0, 264, 264, 265, 0, 269, 0, 0, 0, - 269, 0, 269, 0, 269, 271, 271, 271, 271, 269, - 0, 0, 0, 272, 272, 272, 272, 0, 0, 0, - 271, 271, 271, 271, 271, 271, 271, 271, 272, 272, - 272, 272, 272, 272, 272, 272, 288, 289, 0, 0, - 0, 0, 0, 0, 289, 0, 288, 289, 288, 289, - - 288, 289, 290, 0, 0, 288, 289, 0, 291, 0, - 0, 0, 290, 290, 290, 0, 290, 0, 291, 292, - 291, 290, 291, 0, 0, 293, 0, 291, 293, 292, - 0, 292, 0, 292, 0, 293, 0, 293, 292, 293, - 294, 294, 295, 295, 293, 0, 0, 0, 0, 0, - 0, 294, 295, 294, 295, 294, 295, 296, 0, 0, - 294, 295, 0, 0, 292, 297, 0, 296, 0, 296, - 0, 296, 0, 298, 296, 297, 296, 297, 297, 297, - 0, 0, 0, 298, 297, 298, 300, 298, 299, 299, - 0, 298, 298, 0, 0, 0, 300, 301, 300, 299, - - 300, 299, 0, 299, 0, 300, 0, 301, 299, 301, - 302, 301, 302, 303, 0, 303, 301, 0, 0, 0, - 302, 0, 302, 303, 302, 303, 0, 303, 304, 302, - 0, 304, 303, 0, 305, 0, 0, 0, 304, 0, - 304, 0, 304, 0, 305, 306, 305, 304, 305, 0, - 0, 307, 306, 305, 0, 306, 0, 306, 0, 306, - 0, 307, 308, 307, 306, 307, 0, 307, 0, 0, - 307, 0, 308, 0, 308, 0, 308, 309, 308, 0, - 309, 308, 0, 310, 0, 0, 0, 309, 0, 309, - 0, 309, 0, 310, 313, 310, 309, 310, 0, 0, - - 314, 0, 310, 0, 313, 0, 313, 0, 313, 0, - 314, 0, 314, 313, 314, 315, 316, 0, 314, 314, - 0, 0, 315, 0, 0, 315, 316, 315, 316, 315, - 316, 317, 316, 0, 315, 316, 318, 318, 0, 313, - 0, 317, 0, 317, 320, 317, 0, 318, 0, 318, - 317, 318, 319, 318, 0, 320, 318, 319, 0, 0, - 0, 0, 319, 321, 319, 320, 319, 320, 319, 320, - 0, 319, 0, 321, 320, 321, 322, 321, 0, 0, - 321, 0, 321, 0, 324, 324, 322, 325, 322, 0, - 322, 0, 0, 0, 324, 322, 324, 325, 324, 325, - - 326, 325, 0, 324, 329, 325, 325, 0, 328, 0, - 326, 328, 326, 326, 326, 0, 0, 0, 328, 326, - 328, 329, 328, 0, 0, 0, 0, 328, 0, 330, - 0, 329, 330, 329, 0, 329, 331, 331, 0, 330, - 329, 330, 0, 330, 0, 333, 0, 331, 330, 331, - 0, 331, 0, 334, 0, 333, 331, 333, 0, 333, - 0, 0, 0, 334, 333, 334, 335, 334, 0, 335, - 0, 334, 334, 0, 336, 0, 335, 337, 335, 0, - 335, 0, 0, 0, 336, 335, 336, 337, 336, 337, - 0, 337, 339, 336, 338, 338, 337, 0, 340, 0, - - 0, 0, 339, 0, 339, 338, 339, 338, 340, 338, - 340, 339, 340, 341, 338, 0, 343, 340, 0, 344, - 0, 0, 0, 341, 0, 341, 343, 341, 343, 344, - 343, 344, 341, 344, 0, 343, 345, 339, 344, 345, - 0, 0, 346, 0, 0, 0, 345, 0, 345, 0, - 345, 0, 346, 347, 346, 345, 346, 0, 0, 0, - 0, 346, 0, 347, 0, 347, 0, 347, 0, 351, - 347, 0, 347, 0, 352, 352, 352, 352, 346, 351, - 0, 351, 0, 351, 0, 0, 0, 0, 351, 352, - 352, 352, 352, 352, 352, 352, 352, 353, 353, 353, - - 353, 0, 0, 0, 0, 0, 0, 0, 353, 0, - 0, 0, 353, 353, 353, 353, 353, 353, 353, 353, - 354, 354, 354, 354, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 354, 354, 354, 354, 354, - 354, 354, 354, 355, 0, 359, 0, 355, 355, 355, - 355, 355, 355, 355, 355, 359, 0, 359, 0, 359, - 360, 360, 0, 359, 359, 0, 0, 0, 0, 0, - 360, 0, 360, 362, 360, 361, 361, 0, 353, 360, - 0, 0, 0, 362, 0, 362, 361, 362, 361, 0, - 361, 0, 362, 364, 364, 361, 0, 365, 365, 0, - - 366, 0, 0, 366, 364, 0, 364, 365, 364, 365, - 366, 365, 366, 364, 366, 367, 365, 0, 368, 366, - 0, 0, 0, 0, 0, 367, 369, 367, 368, 367, - 368, 0, 368, 0, 367, 0, 369, 368, 369, 370, - 369, 0, 369, 0, 0, 369, 370, 371, 0, 370, - 0, 370, 0, 370, 0, 0, 0, 371, 370, 371, - 372, 371, 0, 372, 0, 0, 371, 372, 0, 0, - 372, 373, 372, 373, 372, 0, 0, 374, 0, 372, - 374, 373, 0, 373, 374, 373, 0, 374, 375, 374, - 373, 374, 0, 0, 0, 0, 374, 0, 375, 376, - - 375, 0, 375, 0, 375, 0, 0, 375, 0, 376, - 0, 376, 0, 376, 377, 377, 0, 376, 376, 0, - 378, 0, 0, 0, 377, 0, 377, 0, 377, 0, - 378, 379, 378, 377, 378, 0, 0, 380, 378, 378, - 0, 379, 0, 379, 0, 379, 0, 380, 379, 380, - 379, 380, 381, 385, 0, 0, 380, 0, 0, 0, - 385, 0, 381, 385, 381, 385, 381, 385, 0, 0, - 387, 381, 385, 386, 386, 0, 386, 0, 0, 0, - 387, 0, 387, 386, 387, 386, 0, 386, 387, 387, - 389, 388, 386, 388, 0, 0, 0, 0, 0, 0, - - 389, 388, 389, 388, 389, 388, 390, 0, 0, 389, - 388, 0, 391, 0, 0, 391, 390, 0, 390, 0, - 390, 0, 391, 392, 391, 390, 391, 393, 0, 0, - 394, 391, 0, 392, 0, 392, 393, 392, 0, 0, - 392, 0, 392, 0, 396, 0, 393, 394, 393, 0, - 393, 0, 0, 0, 396, 393, 396, 394, 396, 394, - 397, 394, 396, 396, 0, 0, 394, 0, 398, 0, - 397, 0, 397, 0, 397, 0, 400, 0, 398, 397, - 398, 0, 398, 0, 402, 0, 400, 398, 400, 0, - 400, 0, 400, 0, 402, 400, 402, 403, 402, 0, - - 0, 0, 0, 402, 0, 0, 0, 403, 0, 403, - 405, 403, 0, 406, 0, 403, 403, 405, 0, 0, - 405, 407, 405, 406, 405, 406, 407, 406, 0, 405, - 0, 407, 406, 407, 408, 407, 0, 0, 0, 0, - 407, 0, 0, 0, 408, 411, 408, 0, 408, 0, - 0, 412, 0, 408, 412, 411, 408, 411, 0, 411, - 0, 412, 413, 412, 411, 412, 0, 0, 0, 0, - 412, 0, 413, 415, 413, 0, 413, 0, 413, 0, - 0, 413, 0, 415, 0, 415, 0, 415, 420, 420, - 420, 420, 415, 0, 0, 0, 0, 0, 0, 0, - - 0, 424, 0, 420, 420, 420, 420, 420, 420, 420, - 420, 424, 0, 424, 426, 424, 425, 425, 415, 0, - 424, 0, 0, 0, 426, 428, 426, 425, 426, 425, - 0, 425, 426, 426, 0, 428, 425, 428, 429, 428, - 0, 430, 0, 0, 428, 0, 0, 0, 429, 0, - 429, 430, 429, 430, 0, 430, 429, 429, 431, 0, - 430, 431, 0, 432, 432, 0, 0, 0, 431, 0, - 431, 0, 431, 0, 432, 433, 432, 431, 432, 0, - 0, 434, 0, 432, 0, 433, 0, 433, 0, 433, - 0, 434, 0, 434, 433, 434, 435, 0, 435, 434, - - 434, 0, 436, 0, 0, 0, 435, 0, 435, 0, - 435, 0, 436, 0, 436, 435, 436, 0, 0, 437, - 436, 436, 437, 0, 0, 438, 0, 438, 0, 437, - 0, 437, 0, 437, 0, 438, 439, 438, 437, 438, - 0, 440, 440, 0, 438, 0, 439, 0, 439, 0, - 439, 0, 440, 441, 440, 439, 440, 0, 0, 442, - 0, 440, 0, 441, 0, 441, 442, 441, 0, 442, - 443, 442, 441, 442, 0, 0, 444, 0, 442, 0, - 443, 0, 443, 444, 443, 0, 444, 443, 444, 443, - 444, 445, 445, 449, 0, 444, 0, 449, 0, 0, - - 0, 0, 445, 449, 445, 449, 445, 449, 450, 0, - 0, 445, 449, 0, 451, 450, 451, 0, 450, 0, - 450, 0, 450, 0, 451, 452, 451, 450, 451, 0, - 0, 453, 0, 451, 453, 452, 0, 452, 0, 452, - 0, 453, 452, 453, 452, 453, 454, 454, 0, 0, - 453, 0, 455, 455, 0, 0, 454, 0, 454, 0, - 454, 0, 455, 456, 455, 454, 455, 0, 0, 0, - 0, 455, 0, 456, 0, 456, 0, 456, 457, 456, - 0, 457, 456, 0, 458, 0, 0, 0, 457, 0, - 457, 0, 457, 0, 458, 461, 458, 457, 458, 0, - - 0, 458, 0, 458, 0, 461, 0, 461, 464, 461, - 462, 462, 0, 0, 461, 0, 0, 0, 464, 466, - 464, 462, 464, 462, 0, 462, 0, 464, 0, 466, - 462, 466, 467, 466, 0, 467, 0, 466, 466, 0, - 469, 0, 467, 0, 467, 0, 467, 0, 0, 0, - 469, 467, 469, 0, 469, 470, 470, 0, 471, 469, - 469, 472, 0, 0, 0, 470, 0, 470, 471, 470, - 471, 472, 471, 472, 470, 472, 475, 471, 0, 476, - 472, 0, 0, 0, 0, 0, 475, 0, 475, 476, - 475, 476, 0, 476, 486, 475, 476, 0, 476, 482, - - 482, 482, 482, 0, 486, 0, 486, 0, 486, 0, - 0, 0, 486, 486, 482, 482, 482, 482, 482, 482, - 482, 482, 483, 0, 0, 0, 483, 483, 483, 483, - 483, 483, 483, 483, 487, 489, 0, 0, 0, 0, - 0, 487, 0, 0, 487, 489, 487, 489, 487, 489, - 0, 491, 490, 487, 489, 490, 0, 0, 0, 0, - 0, 491, 490, 491, 490, 491, 490, 492, 493, 0, - 491, 490, 0, 0, 492, 493, 0, 492, 493, 492, - 493, 492, 493, 494, 495, 0, 492, 493, 0, 0, - 0, 0, 0, 494, 495, 494, 495, 494, 495, 496, - - 0, 0, 494, 495, 0, 497, 496, 497, 0, 496, - 0, 496, 0, 496, 0, 497, 498, 497, 496, 497, - 0, 0, 499, 0, 497, 0, 498, 499, 498, 0, - 498, 0, 499, 500, 499, 498, 499, 0, 0, 0, - 0, 499, 0, 500, 501, 500, 0, 500, 0, 0, - 0, 500, 500, 0, 501, 502, 501, 0, 501, 0, - 0, 503, 501, 501, 0, 502, 0, 502, 0, 502, - 0, 503, 504, 503, 502, 503, 0, 0, 508, 0, - 503, 0, 504, 0, 504, 508, 504, 0, 508, 509, - 508, 504, 508, 0, 0, 0, 0, 508, 0, 509, - - 510, 509, 0, 509, 0, 0, 511, 509, 509, 0, - 510, 0, 510, 0, 510, 0, 511, 512, 511, 510, - 511, 0, 0, 513, 0, 511, 513, 512, 0, 512, - 0, 512, 0, 513, 512, 513, 512, 513, 514, 515, - 0, 0, 513, 0, 0, 0, 0, 0, 514, 515, - 514, 515, 514, 515, 516, 516, 514, 514, 515, 0, - 517, 0, 0, 0, 516, 0, 516, 0, 516, 0, - 517, 520, 517, 516, 517, 0, 0, 522, 0, 517, - 0, 520, 0, 520, 0, 520, 0, 522, 524, 522, - 520, 522, 0, 0, 525, 0, 522, 0, 524, 0, - - 524, 0, 524, 0, 525, 517, 525, 524, 525, 527, - 0, 0, 527, 525, 0, 528, 0, 0, 528, 527, - 0, 527, 0, 527, 0, 528, 0, 528, 527, 528, - 531, 531, 0, 0, 528, 0, 537, 537, 537, 537, - 0, 531, 0, 531, 0, 531, 0, 0, 0, 0, - 531, 537, 537, 537, 537, 537, 537, 537, 537, 540, - 541, 541, 0, 0, 0, 0, 540, 0, 0, 540, - 541, 540, 541, 540, 541, 543, 0, 0, 540, 541, - 0, 0, 0, 544, 0, 543, 545, 543, 0, 543, - 0, 543, 0, 544, 543, 544, 545, 544, 545, 546, - - 545, 544, 544, 0, 0, 545, 549, 547, 0, 546, - 0, 546, 0, 546, 0, 548, 0, 547, 546, 547, - 547, 547, 0, 549, 0, 548, 547, 548, 0, 548, - 0, 0, 0, 549, 548, 549, 550, 549, 0, 550, - 0, 0, 549, 0, 551, 0, 550, 0, 550, 0, - 550, 0, 552, 0, 551, 550, 551, 0, 551, 552, - 553, 0, 552, 551, 552, 0, 552, 0, 0, 0, - 553, 552, 553, 558, 553, 0, 558, 0, 0, 553, - 0, 559, 0, 558, 560, 558, 0, 558, 0, 0, - 0, 559, 558, 559, 560, 559, 560, 561, 560, 0, - - 559, 0, 0, 560, 0, 562, 0, 561, 563, 561, - 0, 561, 562, 0, 0, 562, 561, 562, 563, 562, - 563, 567, 563, 0, 562, 571, 563, 563, 0, 572, - 0, 567, 0, 567, 0, 567, 0, 0, 0, 572, - 567, 572, 571, 572, 0, 575, 0, 0, 572, 0, - 0, 0, 571, 0, 571, 575, 571, 575, 0, 575, - 584, 571, 0, 0, 575, 580, 580, 580, 580, 0, - 584, 0, 584, 584, 584, 0, 0, 0, 585, 584, - 580, 580, 580, 580, 580, 580, 580, 580, 585, 587, - 585, 0, 585, 0, 0, 588, 0, 585, 0, 587, - - 0, 587, 0, 587, 0, 588, 0, 588, 587, 588, - 589, 590, 588, 589, 588, 0, 590, 0, 0, 0, - 589, 590, 589, 590, 589, 590, 591, 0, 0, 589, - 590, 0, 593, 0, 593, 0, 591, 0, 591, 0, - 591, 0, 593, 594, 593, 591, 593, 0, 0, 599, - 0, 593, 0, 594, 0, 594, 0, 594, 0, 599, - 600, 599, 594, 599, 0, 599, 0, 0, 599, 0, - 600, 601, 600, 600, 600, 0, 0, 611, 601, 600, - 0, 601, 0, 601, 0, 601, 0, 611, 620, 611, - 601, 611, 0, 0, 621, 0, 611, 0, 620, 0, - - 620, 0, 620, 0, 621, 0, 621, 620, 621, 622, - 623, 622, 0, 621, 0, 0, 0, 0, 0, 622, - 623, 622, 623, 622, 623, 624, 626, 0, 622, 623, - 0, 0, 0, 0, 0, 624, 626, 624, 626, 624, - 626, 627, 624, 0, 624, 626, 0, 631, 627, 0, - 0, 627, 0, 627, 0, 627, 0, 631, 632, 631, - 627, 631, 0, 0, 0, 0, 631, 0, 632, 633, - 632, 0, 632, 0, 0, 648, 0, 632, 0, 633, - 0, 633, 633, 633, 0, 648, 649, 648, 633, 648, - 0, 0, 650, 0, 648, 0, 649, 0, 649, 0, - - 649, 0, 650, 652, 650, 649, 650, 0, 0, 0, - 0, 650, 0, 652, 656, 652, 0, 652, 0, 0, - 657, 652, 652, 0, 656, 0, 656, 0, 656, 0, - 657, 656, 657, 656, 657, 672, 676, 0, 0, 657, - 0, 0, 0, 0, 0, 672, 676, 672, 676, 672, - 676, 677, 692, 0, 672, 676, 0, 0, 672, 0, - 0, 677, 692, 677, 692, 677, 692, 0, 0, 0, - 677, 692, 742, 742, 742, 742, 742, 742, 742, 742, - 742, 742, 742, 742, 742, 743, 743, 743, 743, 743, - 743, 743, 743, 743, 743, 743, 743, 743, 744, 744, - - 744, 744, 744, 744, 744, 744, 744, 744, 744, 744, - 744, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 746, 746, 746, 746, 746, 746, - 746, 746, 746, 746, 746, 746, 746, 747, 747, 747, - 747, 0, 747, 747, 747, 747, 747, 747, 747, 747, - 748, 748, 748, 0, 748, 0, 748, 0, 748, 749, - 749, 0, 749, 749, 750, 750, 0, 0, 750, 750, - 0, 750, 750, 750, 750, 750, 750, 751, 751, 751, + 34, 34, 34, 40, 386, 352, 387, 327, 42, 42, + 346, 42, 408, 40, 414, 40, 367, 40, 422, 42, + 42, 42, 40, 42, 354, 388, 42, 418, 42, 483, + 46, 46, 403, 46, 421, 40, 399, 100, 100, 100, + 100, 46, 431, 46, 100, 46, 40, 46, 48, 386, + 46, 48, 100, 100, 352, 48, 49, 408, 48, 387, + 48, 413, 48, 414, 49, 49, 48, 48, 50, 452, + 354, 48, 346, 422, 46, 49, 367, 49, 50, 49, + + 50, 49, 50, 418, 49, 388, 50, 50, 51, 399, + 483, 113, 741, 467, 403, 431, 421, 49, 51, 52, + 51, 113, 51, 113, 463, 113, 52, 51, 50, 52, + 113, 52, 467, 52, 56, 56, 56, 56, 52, 741, + 420, 413, 452, 450, 51, 478, 492, 482, 463, 56, + 56, 56, 56, 56, 56, 56, 56, 79, 173, 173, + 173, 173, 79, 79, 79, 79, 79, 79, 79, 79, + 79, 79, 79, 173, 173, 173, 173, 173, 173, 173, + 173, 79, 79, 79, 79, 79, 102, 114, 102, 102, + 102, 102, 102, 102, 102, 102, 464, 114, 450, 114, + + 420, 114, 510, 492, 114, 102, 114, 482, 523, 709, + 478, 612, 79, 79, 79, 530, 708, 423, 423, 423, + 423, 104, 472, 104, 104, 104, 104, 104, 104, 104, + 104, 705, 701, 700, 102, 511, 510, 699, 79, 80, + 104, 612, 523, 464, 80, 80, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 107, 107, 107, 107, 107, + 107, 107, 107, 80, 80, 80, 80, 80, 472, 104, + 530, 108, 107, 108, 108, 108, 108, 108, 108, 108, + 108, 80, 203, 203, 203, 203, 203, 203, 203, 203, + 108, 477, 511, 481, 80, 80, 80, 109, 423, 109, + + 533, 107, 109, 109, 109, 109, 109, 109, 109, 109, + 204, 204, 204, 204, 204, 204, 204, 204, 484, 108, + 80, 110, 115, 110, 110, 110, 110, 110, 110, 110, + 110, 539, 115, 116, 115, 697, 115, 695, 558, 117, + 110, 115, 481, 116, 477, 116, 485, 116, 694, 117, + 525, 117, 116, 117, 693, 174, 116, 533, 117, 174, + 174, 174, 174, 174, 174, 174, 174, 484, 538, 110, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 118, 120, 537, 485, 539, 509, 120, 525, + + 558, 534, 118, 120, 118, 120, 118, 120, 121, 122, + 118, 118, 120, 538, 540, 559, 546, 561, 121, 122, + 121, 122, 121, 122, 123, 560, 121, 121, 122, 574, + 124, 509, 568, 572, 123, 534, 123, 123, 123, 686, + 124, 570, 124, 123, 124, 125, 125, 537, 540, 124, + 509, 126, 126, 577, 578, 580, 125, 683, 125, 125, + 125, 583, 126, 127, 126, 125, 126, 546, 561, 581, + 682, 126, 675, 127, 127, 127, 128, 127, 574, 129, + 128, 559, 127, 599, 601, 674, 128, 560, 128, 129, + 128, 129, 568, 129, 572, 128, 131, 131, 129, 130, + + 130, 130, 582, 570, 577, 618, 131, 132, 131, 130, + 131, 130, 580, 130, 131, 131, 578, 132, 130, 132, + 133, 132, 586, 583, 581, 136, 132, 600, 606, 611, + 133, 658, 133, 133, 133, 136, 582, 616, 137, 133, + 609, 137, 633, 599, 601, 136, 138, 136, 137, 136, + 137, 586, 137, 673, 136, 608, 138, 137, 138, 668, + 138, 139, 139, 611, 614, 138, 658, 618, 666, 632, + 617, 139, 140, 139, 638, 139, 600, 685, 139, 139, + 139, 606, 140, 141, 140, 140, 140, 609, 616, 142, + 633, 140, 634, 141, 663, 141, 655, 141, 651, 142, + + 143, 142, 141, 142, 617, 141, 619, 640, 142, 641, + 143, 657, 143, 145, 143, 608, 146, 643, 645, 143, + 647, 145, 632, 145, 614, 145, 146, 145, 146, 147, + 146, 638, 145, 649, 146, 146, 685, 148, 648, 147, + 150, 147, 665, 147, 659, 634, 662, 148, 147, 148, + 150, 148, 150, 151, 150, 148, 148, 677, 150, 150, + 640, 667, 664, 151, 152, 151, 619, 151, 657, 641, + 671, 645, 151, 151, 152, 698, 152, 153, 152, 643, + 153, 650, 647, 152, 153, 669, 649, 153, 672, 153, + 678, 153, 155, 155, 687, 665, 153, 662, 648, 156, + + 670, 659, 679, 155, 722, 155, 690, 155, 677, 156, + 157, 156, 155, 156, 156, 684, 158, 156, 156, 664, + 157, 667, 157, 671, 157, 160, 158, 159, 158, 157, + 158, 698, 158, 646, 157, 158, 644, 159, 160, 159, + 642, 159, 669, 678, 161, 672, 159, 687, 160, 161, + 160, 639, 160, 679, 161, 162, 161, 160, 161, 690, + 670, 164, 691, 161, 722, 162, 684, 162, 164, 162, + 689, 164, 692, 164, 162, 164, 168, 165, 165, 704, + 164, 165, 585, 585, 585, 585, 168, 165, 168, 165, + 168, 165, 706, 175, 168, 168, 165, 175, 175, 175, + + 175, 175, 175, 175, 175, 201, 714, 201, 201, 201, + 201, 201, 201, 201, 201, 208, 209, 629, 208, 691, + 702, 689, 707, 692, 201, 208, 209, 208, 209, 208, + 209, 210, 211, 715, 208, 209, 704, 712, 623, 622, + 613, 210, 211, 210, 211, 210, 211, 212, 610, 706, + 210, 211, 607, 201, 206, 214, 602, 212, 215, 212, + 212, 212, 214, 585, 714, 214, 212, 214, 215, 214, + 215, 216, 215, 707, 214, 716, 590, 215, 587, 217, + 573, 216, 702, 216, 715, 216, 712, 569, 216, 217, + 216, 217, 536, 217, 620, 620, 620, 620, 217, 206, + + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, + 206, 218, 219, 527, 522, 489, 716, 488, 469, 219, + 427, 218, 219, 218, 219, 218, 219, 218, 220, 221, + 218, 219, 362, 360, 291, 284, 283, 282, 220, 221, + 220, 221, 220, 221, 222, 220, 281, 220, 221, 280, + 277, 274, 213, 207, 222, 198, 222, 196, 222, 223, + 223, 222, 222, 222, 194, 620, 224, 223, 192, 224, + 223, 190, 223, 185, 223, 183, 224, 225, 224, 223, + 224, 178, 172, 226, 119, 224, 111, 225, 105, 225, + + 225, 225, 101, 226, 227, 226, 225, 226, 99, 97, + 228, 96, 226, 228, 227, 227, 227, 95, 227, 92, + 228, 229, 228, 227, 228, 87, 86, 230, 85, 228, + 230, 229, 72, 229, 229, 229, 69, 230, 231, 230, + 229, 230, 65, 64, 61, 60, 230, 55, 231, 232, + 231, 53, 231, 32, 28, 231, 22, 231, 21, 232, + 232, 232, 235, 232, 18, 17, 0, 0, 232, 0, + 236, 0, 235, 237, 235, 0, 235, 0, 0, 235, + 236, 235, 236, 237, 236, 237, 237, 237, 238, 236, + 0, 239, 237, 0, 240, 0, 0, 240, 238, 0, + + 238, 239, 238, 239, 240, 239, 240, 238, 240, 239, + 239, 241, 242, 240, 0, 0, 0, 0, 0, 0, + 241, 0, 242, 243, 242, 0, 242, 0, 0, 0, + 241, 242, 241, 243, 241, 243, 244, 243, 0, 241, + 0, 0, 243, 0, 246, 0, 244, 246, 244, 0, + 244, 0, 0, 0, 246, 244, 246, 247, 246, 0, + 247, 0, 0, 246, 0, 248, 0, 247, 250, 247, + 0, 247, 248, 0, 0, 248, 247, 248, 250, 248, + 250, 251, 250, 0, 248, 0, 250, 250, 0, 252, + 0, 251, 0, 251, 0, 251, 0, 253, 0, 252, + + 251, 252, 0, 252, 0, 254, 252, 253, 252, 253, + 0, 253, 0, 0, 253, 254, 253, 254, 256, 254, + 257, 257, 0, 0, 254, 254, 0, 0, 256, 258, + 256, 257, 256, 257, 0, 257, 0, 256, 0, 258, + 257, 258, 259, 258, 0, 0, 0, 0, 258, 0, + 260, 0, 259, 260, 259, 0, 259, 0, 261, 0, + 260, 259, 260, 0, 260, 261, 262, 0, 261, 260, + 261, 0, 261, 0, 0, 0, 262, 261, 262, 263, + 262, 0, 0, 0, 262, 262, 0, 264, 0, 263, + 0, 263, 0, 263, 0, 0, 263, 264, 263, 264, + + 265, 264, 0, 265, 264, 0, 264, 0, 267, 0, + 265, 0, 265, 0, 265, 0, 0, 269, 267, 265, + 267, 267, 267, 267, 268, 269, 0, 267, 267, 0, + 0, 0, 0, 0, 268, 269, 268, 269, 268, 269, + 273, 0, 268, 268, 269, 0, 273, 0, 0, 0, + 273, 0, 273, 0, 273, 275, 275, 275, 275, 273, + 0, 0, 0, 276, 276, 276, 276, 0, 0, 0, + 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, + 276, 276, 276, 276, 276, 276, 292, 293, 0, 0, + 0, 0, 0, 0, 293, 0, 292, 293, 292, 293, + + 292, 293, 294, 0, 0, 292, 293, 0, 295, 0, + 0, 0, 294, 294, 294, 0, 294, 0, 295, 296, + 295, 294, 295, 0, 0, 297, 0, 295, 297, 296, + 0, 296, 0, 296, 0, 297, 0, 297, 296, 297, + 298, 298, 299, 299, 297, 0, 0, 0, 0, 0, + 0, 298, 299, 298, 299, 298, 299, 300, 0, 0, + 298, 299, 0, 0, 296, 301, 0, 300, 0, 300, + 0, 300, 0, 302, 300, 301, 300, 301, 301, 301, + 0, 0, 0, 302, 301, 302, 304, 302, 303, 303, + 0, 302, 302, 0, 0, 0, 304, 305, 304, 303, + + 304, 303, 0, 303, 0, 304, 0, 305, 303, 305, + 306, 305, 306, 307, 0, 307, 305, 0, 0, 0, + 306, 0, 306, 307, 306, 307, 0, 307, 308, 306, + 0, 308, 307, 0, 309, 0, 0, 0, 308, 0, + 308, 0, 308, 0, 309, 310, 309, 308, 309, 0, + 0, 311, 310, 309, 0, 310, 0, 310, 0, 310, + 0, 311, 312, 311, 310, 311, 0, 311, 0, 0, + 311, 0, 312, 0, 312, 0, 312, 313, 312, 0, + 313, 312, 0, 314, 0, 0, 0, 313, 0, 313, + 0, 313, 0, 314, 317, 314, 313, 314, 0, 0, + + 318, 0, 314, 0, 317, 0, 317, 0, 317, 0, + 318, 0, 318, 317, 318, 319, 320, 0, 318, 318, + 0, 0, 319, 0, 0, 319, 320, 319, 320, 319, + 320, 321, 320, 0, 319, 320, 322, 322, 0, 317, + 0, 321, 0, 321, 324, 321, 0, 322, 0, 322, + 321, 322, 323, 322, 0, 324, 322, 323, 0, 0, + 0, 0, 323, 325, 323, 324, 323, 324, 323, 324, + 0, 323, 0, 325, 324, 325, 326, 325, 0, 0, + 325, 0, 325, 0, 328, 328, 326, 329, 326, 0, + 326, 0, 0, 0, 328, 326, 328, 329, 328, 329, + + 330, 329, 0, 328, 333, 329, 329, 0, 332, 0, + 330, 332, 330, 330, 330, 0, 0, 0, 332, 330, + 332, 333, 332, 0, 0, 0, 0, 332, 0, 334, + 0, 333, 334, 333, 0, 333, 335, 335, 0, 334, + 333, 334, 0, 334, 0, 337, 0, 335, 334, 335, + 0, 335, 0, 338, 0, 337, 335, 337, 0, 337, + 0, 0, 0, 338, 337, 338, 339, 338, 0, 339, + 0, 338, 338, 0, 340, 0, 339, 341, 339, 0, + 339, 0, 0, 0, 340, 339, 340, 341, 340, 341, + 0, 341, 343, 340, 342, 342, 341, 0, 344, 0, + + 0, 0, 343, 0, 343, 342, 343, 342, 344, 342, + 344, 343, 344, 345, 342, 0, 347, 344, 0, 348, + 0, 0, 0, 345, 0, 345, 347, 345, 347, 348, + 347, 348, 345, 348, 0, 347, 349, 343, 348, 349, + 0, 0, 350, 0, 0, 0, 349, 0, 349, 0, + 349, 0, 350, 351, 350, 349, 350, 0, 0, 0, + 0, 350, 0, 351, 0, 351, 0, 351, 0, 355, + 351, 0, 351, 0, 356, 356, 356, 356, 350, 355, + 0, 355, 0, 355, 0, 0, 0, 0, 355, 356, + 356, 356, 356, 356, 356, 356, 356, 357, 357, 357, + + 357, 0, 0, 0, 0, 0, 0, 0, 357, 0, + 0, 0, 357, 357, 357, 357, 357, 357, 357, 357, + 358, 358, 358, 358, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 358, 358, 358, 358, 358, + 358, 358, 358, 359, 0, 363, 0, 359, 359, 359, + 359, 359, 359, 359, 359, 363, 0, 363, 0, 363, + 364, 364, 0, 363, 363, 0, 0, 0, 0, 0, + 364, 0, 364, 366, 364, 365, 365, 0, 357, 364, + 0, 0, 0, 366, 0, 366, 365, 366, 365, 0, + 365, 0, 366, 368, 368, 365, 0, 369, 369, 0, + + 370, 0, 0, 370, 368, 0, 368, 369, 368, 369, + 370, 369, 370, 368, 370, 371, 369, 0, 372, 370, + 0, 0, 0, 0, 0, 371, 373, 371, 372, 371, + 372, 0, 372, 0, 371, 0, 373, 372, 373, 374, + 373, 0, 373, 0, 0, 373, 374, 375, 0, 374, + 0, 374, 0, 374, 0, 0, 0, 375, 374, 375, + 376, 375, 0, 376, 0, 0, 375, 376, 0, 0, + 376, 377, 376, 377, 376, 0, 0, 378, 0, 376, + 378, 377, 0, 377, 378, 377, 0, 378, 379, 378, + 377, 378, 0, 0, 0, 0, 378, 0, 379, 380, + + 379, 0, 379, 0, 379, 0, 0, 379, 0, 380, + 0, 380, 0, 380, 381, 381, 0, 380, 380, 0, + 382, 0, 0, 0, 381, 0, 381, 0, 381, 0, + 382, 383, 382, 381, 382, 0, 0, 384, 382, 382, + 0, 383, 0, 383, 0, 383, 0, 384, 383, 384, + 383, 384, 385, 389, 0, 0, 384, 0, 0, 0, + 389, 0, 385, 389, 385, 389, 385, 389, 0, 0, + 391, 385, 389, 390, 390, 0, 390, 0, 0, 0, + 391, 0, 391, 390, 391, 390, 0, 390, 391, 391, + 393, 392, 390, 392, 0, 0, 0, 0, 0, 0, + + 393, 392, 393, 392, 393, 392, 394, 0, 0, 393, + 392, 0, 395, 0, 0, 395, 394, 0, 394, 0, + 394, 0, 395, 396, 395, 394, 395, 397, 0, 0, + 398, 395, 0, 396, 0, 396, 397, 396, 0, 0, + 396, 0, 396, 0, 400, 0, 397, 398, 397, 0, + 397, 0, 0, 0, 400, 397, 400, 398, 400, 398, + 401, 398, 400, 400, 0, 0, 398, 0, 402, 0, + 401, 0, 401, 0, 401, 0, 404, 0, 402, 401, + 402, 0, 402, 0, 406, 0, 404, 402, 404, 0, + 404, 0, 404, 0, 406, 404, 406, 407, 406, 0, + + 0, 0, 0, 406, 0, 0, 0, 407, 0, 407, + 409, 407, 0, 410, 0, 407, 407, 409, 0, 0, + 409, 411, 409, 410, 409, 410, 411, 410, 0, 409, + 0, 411, 410, 411, 412, 411, 0, 0, 0, 0, + 411, 0, 0, 0, 412, 415, 412, 0, 412, 0, + 0, 416, 0, 412, 416, 415, 412, 415, 0, 415, + 0, 416, 417, 416, 415, 416, 0, 0, 0, 0, + 416, 0, 417, 419, 417, 0, 417, 0, 417, 0, + 0, 417, 0, 419, 0, 419, 0, 419, 424, 424, + 424, 424, 419, 0, 0, 0, 0, 0, 0, 0, + + 0, 428, 0, 424, 424, 424, 424, 424, 424, 424, + 424, 428, 0, 428, 430, 428, 429, 429, 419, 0, + 428, 0, 0, 0, 430, 432, 430, 429, 430, 429, + 0, 429, 430, 430, 0, 432, 429, 432, 433, 432, + 0, 434, 0, 0, 432, 0, 0, 0, 433, 0, + 433, 434, 433, 434, 0, 434, 433, 433, 435, 0, + 434, 435, 0, 436, 436, 0, 0, 0, 435, 0, + 435, 0, 435, 0, 436, 437, 436, 435, 436, 0, + 0, 438, 0, 436, 0, 437, 0, 437, 0, 437, + 0, 438, 0, 438, 437, 438, 439, 0, 439, 438, + + 438, 0, 440, 0, 0, 0, 439, 0, 439, 0, + 439, 0, 440, 0, 440, 439, 440, 0, 0, 441, + 440, 440, 441, 0, 0, 442, 0, 442, 0, 441, + 0, 441, 0, 441, 0, 442, 443, 442, 441, 442, + 0, 444, 444, 0, 442, 0, 443, 0, 443, 0, + 443, 0, 444, 445, 444, 443, 444, 0, 0, 446, + 0, 444, 0, 445, 0, 445, 446, 445, 0, 446, + 447, 446, 445, 446, 0, 0, 448, 0, 446, 0, + 447, 0, 447, 448, 447, 0, 448, 447, 448, 447, + 448, 449, 449, 453, 0, 448, 0, 453, 0, 0, + + 0, 0, 449, 453, 449, 453, 449, 453, 454, 0, + 0, 449, 453, 0, 455, 454, 455, 0, 454, 0, + 454, 0, 454, 0, 455, 456, 455, 454, 455, 0, + 0, 457, 0, 455, 457, 456, 0, 456, 0, 456, + 0, 457, 456, 457, 456, 457, 458, 458, 0, 0, + 457, 0, 459, 459, 0, 0, 458, 0, 458, 0, + 458, 0, 459, 460, 459, 458, 459, 0, 0, 0, + 0, 459, 0, 460, 0, 460, 0, 460, 461, 460, + 0, 461, 460, 0, 462, 0, 0, 0, 461, 0, + 461, 0, 461, 0, 462, 465, 462, 461, 462, 0, + + 0, 462, 0, 462, 0, 465, 0, 465, 468, 465, + 466, 466, 0, 0, 465, 0, 0, 0, 468, 470, + 468, 466, 468, 466, 0, 466, 0, 468, 0, 470, + 466, 470, 471, 470, 0, 471, 0, 470, 470, 0, + 473, 0, 471, 0, 471, 0, 471, 0, 0, 0, + 473, 471, 473, 0, 473, 474, 474, 0, 475, 473, + 473, 476, 0, 0, 0, 474, 0, 474, 475, 474, + 475, 476, 475, 476, 474, 476, 479, 475, 0, 480, + 476, 0, 0, 0, 0, 0, 479, 0, 479, 480, + 479, 480, 0, 480, 490, 479, 480, 0, 480, 486, + + 486, 486, 486, 0, 490, 0, 490, 0, 490, 0, + 0, 0, 490, 490, 486, 486, 486, 486, 486, 486, + 486, 486, 487, 0, 0, 0, 487, 487, 487, 487, + 487, 487, 487, 487, 491, 493, 0, 0, 0, 0, + 0, 491, 0, 0, 491, 493, 491, 493, 491, 493, + 0, 495, 494, 491, 493, 494, 0, 0, 0, 0, + 0, 495, 494, 495, 494, 495, 494, 496, 497, 0, + 495, 494, 0, 0, 496, 497, 0, 496, 497, 496, + 497, 496, 497, 498, 499, 0, 496, 497, 0, 0, + 0, 0, 0, 498, 499, 498, 499, 498, 499, 500, + + 0, 0, 498, 499, 0, 501, 500, 501, 0, 500, + 0, 500, 0, 500, 0, 501, 502, 501, 500, 501, + 0, 0, 503, 0, 501, 0, 502, 503, 502, 0, + 502, 0, 503, 504, 503, 502, 503, 0, 0, 0, + 0, 503, 0, 504, 505, 504, 0, 504, 0, 0, + 0, 504, 504, 0, 505, 506, 505, 0, 505, 0, + 0, 507, 505, 505, 0, 506, 0, 506, 0, 506, + 0, 507, 508, 507, 506, 507, 0, 0, 512, 0, + 507, 0, 508, 0, 508, 512, 508, 0, 512, 513, + 512, 508, 512, 0, 0, 0, 0, 512, 0, 513, + + 514, 513, 0, 513, 0, 0, 515, 513, 513, 0, + 514, 0, 514, 0, 514, 0, 515, 516, 515, 514, + 515, 0, 0, 517, 0, 515, 517, 516, 0, 516, + 0, 516, 0, 517, 516, 517, 516, 517, 518, 519, + 0, 0, 517, 0, 0, 0, 0, 0, 518, 519, + 518, 519, 518, 519, 520, 520, 518, 518, 519, 0, + 521, 0, 0, 0, 520, 0, 520, 0, 520, 0, + 521, 524, 521, 520, 521, 0, 0, 526, 0, 521, + 0, 524, 0, 524, 0, 524, 0, 526, 528, 526, + 524, 526, 0, 0, 529, 0, 526, 0, 528, 0, + + 528, 0, 528, 0, 529, 521, 529, 528, 529, 531, + 0, 0, 531, 529, 0, 532, 0, 0, 532, 531, + 0, 531, 0, 531, 0, 532, 0, 532, 531, 532, + 535, 535, 0, 0, 532, 0, 541, 541, 541, 541, + 0, 535, 0, 535, 0, 535, 0, 0, 0, 0, + 535, 541, 541, 541, 541, 541, 541, 541, 541, 544, + 545, 545, 0, 0, 0, 0, 544, 0, 0, 544, + 545, 544, 545, 544, 545, 547, 0, 0, 544, 545, + 0, 0, 0, 548, 0, 547, 549, 547, 0, 547, + 0, 547, 0, 548, 547, 548, 549, 548, 549, 550, + + 549, 548, 548, 0, 0, 549, 553, 551, 0, 550, + 0, 550, 0, 550, 0, 552, 0, 551, 550, 551, + 551, 551, 0, 553, 0, 552, 551, 552, 0, 552, + 0, 0, 0, 553, 552, 553, 554, 553, 0, 554, + 0, 0, 553, 0, 555, 0, 554, 0, 554, 0, + 554, 0, 556, 0, 555, 554, 555, 0, 555, 556, + 557, 0, 556, 555, 556, 0, 556, 0, 0, 0, + 557, 556, 557, 562, 557, 0, 562, 0, 0, 557, + 0, 563, 0, 562, 564, 562, 0, 562, 0, 0, + 0, 563, 562, 563, 564, 563, 564, 565, 564, 0, + + 563, 0, 0, 564, 0, 566, 0, 565, 567, 565, + 0, 565, 566, 0, 0, 566, 565, 566, 567, 566, + 567, 571, 567, 0, 566, 575, 567, 567, 0, 576, + 0, 571, 0, 571, 0, 571, 0, 0, 0, 576, + 571, 576, 575, 576, 0, 579, 0, 0, 576, 0, + 0, 0, 575, 0, 575, 579, 575, 579, 0, 579, + 588, 575, 0, 0, 579, 584, 584, 584, 584, 0, + 588, 0, 588, 588, 588, 0, 0, 0, 589, 588, + 584, 584, 584, 584, 584, 584, 584, 584, 589, 591, + 589, 0, 589, 0, 0, 592, 0, 589, 0, 591, + + 0, 591, 0, 591, 0, 592, 0, 592, 591, 592, + 593, 594, 592, 593, 592, 0, 594, 0, 0, 0, + 593, 594, 593, 594, 593, 594, 595, 0, 0, 593, + 594, 0, 597, 0, 597, 0, 595, 0, 595, 0, + 595, 0, 597, 598, 597, 595, 597, 0, 0, 603, + 0, 597, 0, 598, 0, 598, 0, 598, 0, 603, + 604, 603, 598, 603, 0, 603, 0, 0, 603, 0, + 604, 605, 604, 604, 604, 0, 0, 615, 605, 604, + 0, 605, 0, 605, 0, 605, 0, 615, 624, 615, + 605, 615, 0, 0, 625, 0, 615, 0, 624, 0, + + 624, 0, 624, 0, 625, 0, 625, 624, 625, 626, + 627, 626, 0, 625, 0, 0, 0, 0, 0, 626, + 627, 626, 627, 626, 627, 628, 630, 0, 626, 627, + 0, 0, 0, 0, 0, 628, 630, 628, 630, 628, + 630, 631, 628, 0, 628, 630, 0, 635, 631, 0, + 0, 631, 0, 631, 0, 631, 0, 635, 636, 635, + 631, 635, 0, 0, 0, 0, 635, 0, 636, 637, + 636, 0, 636, 0, 0, 652, 0, 636, 0, 637, + 0, 637, 637, 637, 0, 652, 653, 652, 637, 652, + 0, 0, 654, 0, 652, 0, 653, 0, 653, 0, + + 653, 0, 654, 656, 654, 653, 654, 0, 0, 0, + 0, 654, 0, 656, 660, 656, 0, 656, 0, 0, + 661, 656, 656, 0, 660, 0, 660, 0, 660, 0, + 661, 660, 661, 660, 661, 676, 680, 0, 0, 661, + 0, 0, 0, 0, 0, 676, 680, 676, 680, 676, + 680, 681, 696, 0, 676, 680, 0, 0, 676, 0, + 0, 681, 696, 681, 696, 681, 696, 0, 0, 0, + 681, 696, 746, 746, 746, 746, 746, 746, 746, 746, + 746, 746, 746, 746, 746, 747, 747, 747, 747, 747, + 747, 747, 747, 747, 747, 747, 747, 747, 748, 748, + + 748, 748, 748, 748, 748, 748, 748, 748, 748, 748, + 748, 749, 749, 749, 749, 749, 749, 749, 749, 749, + 749, 749, 749, 749, 750, 750, 750, 750, 750, 750, + 750, 750, 750, 750, 750, 750, 750, 751, 751, 751, 751, 0, 751, 751, 751, 751, 751, 751, 751, 751, - 752, 752, 752, 752, 752, 752, 752, 752, 0, 752, - - 752, 753, 0, 0, 0, 753, 753, 753, 753, 753, - 753, 753, 754, 0, 0, 0, 754, 754, 754, 754, - 754, 754, 754, 755, 755, 0, 755, 755, 756, 756, - 0, 756, 756, 757, 757, 0, 757, 757, 758, 0, - 758, 758, 759, 759, 0, 759, 759, 760, 0, 760, - 760, 761, 0, 761, 761, 762, 0, 762, 762, 763, - 0, 763, 763, 764, 764, 764, 764, 764, 764, 764, - 764, 764, 764, 764, 764, 764, 765, 765, 0, 765, - 765, 766, 766, 0, 766, 766, 766, 766, 766, 766, - 766, 766, 766, 766, 767, 767, 767, 0, 0, 0, - - 767, 0, 0, 0, 0, 767, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741, - 741, 741, 741, 741, 741, 741, 741, 741, 741, 741 + 752, 752, 752, 0, 752, 0, 752, 0, 752, 753, + 753, 0, 753, 753, 754, 754, 0, 0, 754, 754, + 0, 754, 754, 754, 754, 754, 754, 755, 755, 755, + 755, 0, 755, 755, 755, 755, 755, 755, 755, 755, + 756, 756, 756, 756, 756, 756, 756, 756, 0, 756, + + 756, 757, 0, 0, 0, 757, 757, 757, 757, 757, + 757, 757, 758, 0, 0, 0, 758, 758, 758, 758, + 758, 758, 758, 759, 759, 0, 759, 759, 760, 760, + 0, 760, 760, 761, 761, 0, 761, 761, 762, 0, + 762, 762, 763, 763, 0, 763, 763, 764, 0, 764, + 764, 765, 0, 765, 765, 766, 0, 766, 766, 767, + 0, 767, 767, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 768, 768, 768, 768, 769, 769, 0, 769, + 769, 770, 770, 0, 770, 770, 770, 770, 770, 770, + 770, 770, 770, 770, 771, 771, 771, 0, 0, 0, + + 771, 0, 0, 0, 0, 771, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, + 745, 745, 745, 745, 745, 745, 745, 745, 745, 745 } ; /* Table of booleans, true if rule could match eol. */ -static yyconst flex_int32_t yy_rule_can_match_eol[139] = +static yyconst flex_int32_t yy_rule_can_match_eol[141] = { 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1961,12 +1964,13 @@ static yyconst flex_int32_t yy_rule_can_match_eol[139] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, }; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, + 0, }; extern int asn1p__flex_debug; int asn1p__flex_debug = 1; -static yyconst flex_int16_t yy_rule_linenum[138] = +static yyconst flex_int16_t yy_rule_linenum[140] = { 0, 96, 97, 99, 102, 104, 107, 109, 110, 111, 114, 116, 117, 118, 130, 137, 144, 150, 159, 167, 175, @@ -1982,7 +1986,7 @@ static yyconst flex_int16_t yy_rule_linenum[138] = 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 351, 352, 357, 358, 359, 362, 367, 373, 381, 391, 396, 398, 399, 403, 408, 413, 419, 420, 422, - 428, 441, 444, 469, 513, 515, 526 + 428, 441, 444, 469, 513, 514, 516, 518, 529 } ; static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; @@ -2081,7 +2085,7 @@ static double _lex_atod(const char *ptr); /* Newline */ /* White-space */ -#line 2085 "asn1p_l.c" +#line 2090 "lex.yy.c" #define INITIAL 0 #define dash_comment 1 @@ -2140,7 +2144,7 @@ FILE *asn1p_get_out (void ); void asn1p_set_out (FILE * out_str ); -int asn1p_get_leng (void ); +yy_size_t asn1p_get_leng (void ); char *asn1p_get_text (void ); @@ -2233,7 +2237,7 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - int n; \ + yy_size_t n; \ for ( n = 0; n < max_size && \ (c = getc( asn1p_in )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -2343,7 +2347,7 @@ YY_DECL #line 94 "asn1p_l.l" -#line 2347 "asn1p_l.c" +#line 2352 "lex.yy.c" if ( !(yy_init) ) { @@ -2411,19 +2415,20 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 742 ) + if ( yy_current_state >= 746 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *(yy_state_ptr)++ = yy_current_state; ++yy_cp; } - while ( yy_current_state != 741 ); + while ( yy_current_state != 745 ); yy_find_action: /* %% [10.0] code to find the action number goes here */ yy_current_state = *--(yy_state_ptr); (yy_lp) = yy_accept[yy_current_state]; +goto find_rule; /* Shut up GCC warning -Wall */ find_rule: /* we branch to this label when backing up */ for ( ; ; ) /* until we find what rule we matched */ { @@ -2446,7 +2451,7 @@ find_rule: /* we branch to this label when backing up */ if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] ) { - int yyl; + yy_size_t yyl; for ( yyl = 0; yyl < asn1p_leng; ++yyl ) if ( asn1p_text[yyl] == '\n' ) @@ -2461,13 +2466,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 138 ) + else if ( yy_act < 140 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], asn1p_text ); - else if ( yy_act == 138 ) + else if ( yy_act == 140 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", asn1p_text ); - else if ( yy_act == 139 ) + else if ( yy_act == 141 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -3401,12 +3406,22 @@ YY_RULE_SETUP case 135: YY_RULE_SETUP #line 513 "asn1p_l.l" -return asn1p_text[0]; +return TOK_VBracketLeft; YY_BREAK case 136: -/* rule 136 can match eol */ YY_RULE_SETUP -#line 515 "asn1p_l.l" +#line 514 "asn1p_l.l" +return TOK_VBracketRight; + YY_BREAK +case 137: +YY_RULE_SETUP +#line 516 "asn1p_l.l" +return asn1p_text[0]; + YY_BREAK +case 138: +/* rule 138 can match eol */ +YY_RULE_SETUP +#line 518 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) fprintf(stderr, "ERROR: "); @@ -3418,9 +3433,9 @@ YY_RULE_SETUP return -1; } YY_BREAK -case 137: +case 139: YY_RULE_SETUP -#line 526 "asn1p_l.l" +#line 529 "asn1p_l.l" { fprintf(stderr, "Unexpected token at line %d: \"%s\"\n", @@ -3442,19 +3457,19 @@ case YY_STATE_EOF(quoted): case YY_STATE_EOF(opaque): case YY_STATE_EOF(encoding_control): case YY_STATE_EOF(with_syntax): -#line 539 "asn1p_l.l" +#line 542 "asn1p_l.l" { while(YYSTATE != INITIAL) yy_pop_state(); yyterminate(); } YY_BREAK -case 138: +case 140: YY_RULE_SETUP -#line 546 "asn1p_l.l" +#line 549 "asn1p_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 3458 "asn1p_l.c" +#line 3474 "lex.yy.c" case YY_END_OF_BUFFER: { @@ -3651,7 +3666,7 @@ static int yy_get_next_buffer (void) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -3667,7 +3682,7 @@ static int yy_get_next_buffer (void) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - (yy_n_chars), (size_t) num_to_read ); + (yy_n_chars), num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); } @@ -3734,7 +3749,7 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 742 ) + if ( yy_current_state >= 746 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3762,11 +3777,11 @@ static int yy_get_next_buffer (void) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 742 ) + if ( yy_current_state >= 746 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 741); + yy_is_jam = (yy_current_state == 745); if ( ! yy_is_jam ) *(yy_state_ptr)++ = yy_current_state; @@ -3790,7 +3805,7 @@ static int yy_get_next_buffer (void) if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) { /* need to shift things up to make room */ /* +2 for EOB chars. */ - register int number_to_move = (yy_n_chars) + 2; + register yy_size_t number_to_move = (yy_n_chars) + 2; register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; register char *source = @@ -3852,7 +3867,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - int offset = (yy_c_buf_p) - (yytext_ptr); + yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -3876,7 +3891,7 @@ static int yy_get_next_buffer (void) case EOB_ACT_END_OF_FILE: { if ( asn1p_wrap( ) ) - return EOF; + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -4189,7 +4204,7 @@ static void asn1p_ensure_buffer_stack (void) /* %if-c++-only */ /* %endif */ { - int num_to_alloc; + yy_size_t num_to_alloc; if (!(yy_buffer_stack)) { @@ -4292,12 +4307,11 @@ YY_BUFFER_STATE asn1p__scan_string (yyconst char * yystr ) * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE asn1p__scan_bytes (yyconst char * yybytes, int _yybytes_len ) +YY_BUFFER_STATE asn1p__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) { YY_BUFFER_STATE b; char *buf; - yy_size_t n; - int i; + yy_size_t n, i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -4437,7 +4451,7 @@ FILE *asn1p_get_out (void) /** Get the length of the current token. * */ -int asn1p_get_leng (void) +yy_size_t asn1p_get_leng (void) { return asn1p_leng; } @@ -4625,7 +4639,7 @@ void asn1p_free (void * ptr ) /* %ok-for-header */ -#line 546 "asn1p_l.l" +#line 549 "asn1p_l.l" diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l index 33d2a143f02d7a55a7b102e025ee3f3a51fc4f05..6deeca76cf3af7e0be755bab607dea4a9ae48ab9 100644 --- a/libasn1parser/asn1p_l.l +++ b/libasn1parser/asn1p_l.l @@ -510,6 +510,9 @@ WITH return TOK_WITH; } +"[[" return TOK_VBracketLeft; +"]]" return TOK_VBracketRight; + [(){},;:|!.&@\[\]^] return yytext[0]; [^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] { diff --git a/libasn1parser/asn1p_list.h b/libasn1parser/asn1p_list.h index d6a669ac4c64fae3b87ca062989b5a668d2e6f6f..858f24de4b93522b865b1eb0044525d720b990ad 100644 --- a/libasn1parser/asn1p_list.h +++ b/libasn1parser/asn1p_list.h @@ -45,6 +45,14 @@ (head)->tq_tail = &TQ_NEXT((__el), field); \ } while(0) +#define TQ_CONCAT(head1, head2, field) do { \ + if(TQ_FIRST(head2)) { \ + *(head1)->tq_tail = (head2)->tq_head; \ + (head1)->tq_tail = (head2)->tq_tail; \ + TQ_INIT(head2); \ + } \ + } while(0) + /* * Remove the first element and return it. */ diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index f1d4ad4eccf3bd8a2a338fe9c071f2581bb7e676..e15fc02d19be9b86ab564e96946fede41237f95c 100644 --- a/libasn1parser/asn1p_y.c +++ b/libasn1parser/asn1p_y.c @@ -1,7 +1,9 @@ -/* A Bison parser, made from asn1p_y.y, by GNU bison 1.75. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Skeleton implementation for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,16 +17,24 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ + +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ -/* Written by Richard Stallman by simplifying the original so called - ``semantic'' parser. */ +/* C LALR(1) parser skeleton written by Richard Stallman, by + simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local @@ -34,16 +44,21 @@ USER NAME SPACE" below. */ /* Identify Bison output. */ -#define YYBISON 1 +#define YYBISON 1 + +/* Bison version. */ +#define YYBISON_VERSION "2.3" + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ -#define YYPURE 0 +#define YYPURE 0 /* Using locations. */ #define YYLSP_NEEDED 0 -/* If NAME_PREFIX is specified substitute the variables and functions - names. */ +/* Substitute the variable and function names. */ #define yyparse asn1p_parse #define yylex asn1p_lex #define yyerror asn1p_error @@ -60,213 +75,218 @@ know about them. */ enum yytokentype { TOK_PPEQ = 258, - TOK_whitespace = 259, - TOK_opaque = 260, - TOK_bstring = 261, - TOK_cstring = 262, - TOK_hstring = 263, - TOK_identifier = 264, - TOK_number = 265, - TOK_number_negative = 266, - TOK_realnumber = 267, - TOK_tuple = 268, - TOK_quadruple = 269, - TOK_typereference = 270, - TOK_capitalreference = 271, - TOK_typefieldreference = 272, - TOK_valuefieldreference = 273, - TOK_Literal = 274, - TOK_ABSENT = 275, - TOK_ABSTRACT_SYNTAX = 276, - TOK_ALL = 277, - TOK_ANY = 278, - TOK_APPLICATION = 279, - TOK_AUTOMATIC = 280, - TOK_BEGIN = 281, - TOK_BIT = 282, - TOK_BMPString = 283, - TOK_BOOLEAN = 284, - TOK_BY = 285, - TOK_CHARACTER = 286, - TOK_CHOICE = 287, - TOK_CLASS = 288, - TOK_COMPONENT = 289, - TOK_COMPONENTS = 290, - TOK_CONSTRAINED = 291, - TOK_CONTAINING = 292, - TOK_DEFAULT = 293, - TOK_DEFINITIONS = 294, - TOK_DEFINED = 295, - TOK_EMBEDDED = 296, - TOK_ENCODED = 297, - TOK_ENCODING_CONTROL = 298, - TOK_END = 299, - TOK_ENUMERATED = 300, - TOK_EXPLICIT = 301, - TOK_EXPORTS = 302, - TOK_EXTENSIBILITY = 303, - TOK_EXTERNAL = 304, - TOK_FALSE = 305, - TOK_FROM = 306, - TOK_GeneralizedTime = 307, - TOK_GeneralString = 308, - TOK_GraphicString = 309, - TOK_IA5String = 310, - TOK_IDENTIFIER = 311, - TOK_IMPLICIT = 312, - TOK_IMPLIED = 313, - TOK_IMPORTS = 314, - TOK_INCLUDES = 315, - TOK_INSTANCE = 316, - TOK_INSTRUCTIONS = 317, - TOK_INTEGER = 318, - TOK_ISO646String = 319, - TOK_MAX = 320, - TOK_MIN = 321, - TOK_MINUS_INFINITY = 322, - TOK_NULL = 323, - TOK_NumericString = 324, - TOK_OBJECT = 325, - TOK_ObjectDescriptor = 326, - TOK_OCTET = 327, - TOK_OF = 328, - TOK_OPTIONAL = 329, - TOK_PATTERN = 330, - TOK_PDV = 331, - TOK_PLUS_INFINITY = 332, - TOK_PRESENT = 333, - TOK_PrintableString = 334, - TOK_PRIVATE = 335, - TOK_REAL = 336, - TOK_RELATIVE_OID = 337, - TOK_SEQUENCE = 338, - TOK_SET = 339, - TOK_SIZE = 340, - TOK_STRING = 341, - TOK_SYNTAX = 342, - TOK_T61String = 343, - TOK_TAGS = 344, - TOK_TeletexString = 345, - TOK_TRUE = 346, - TOK_TYPE_IDENTIFIER = 347, - TOK_UNIQUE = 348, - TOK_UNIVERSAL = 349, - TOK_UniversalString = 350, - TOK_UTCTime = 351, - TOK_UTF8String = 352, - TOK_VideotexString = 353, - TOK_VisibleString = 354, - TOK_WITH = 355, - TOK_EXCEPT = 356, - TOK_INTERSECTION = 357, - TOK_UNION = 358, - TOK_TwoDots = 359, - TOK_ThreeDots = 360 + TOK_VBracketLeft = 259, + TOK_VBracketRight = 260, + TOK_whitespace = 261, + TOK_opaque = 262, + TOK_bstring = 263, + TOK_cstring = 264, + TOK_hstring = 265, + TOK_identifier = 266, + TOK_number = 267, + TOK_number_negative = 268, + TOK_realnumber = 269, + TOK_tuple = 270, + TOK_quadruple = 271, + TOK_typereference = 272, + TOK_capitalreference = 273, + TOK_typefieldreference = 274, + TOK_valuefieldreference = 275, + TOK_Literal = 276, + TOK_ABSENT = 277, + TOK_ABSTRACT_SYNTAX = 278, + TOK_ALL = 279, + TOK_ANY = 280, + TOK_APPLICATION = 281, + TOK_AUTOMATIC = 282, + TOK_BEGIN = 283, + TOK_BIT = 284, + TOK_BMPString = 285, + TOK_BOOLEAN = 286, + TOK_BY = 287, + TOK_CHARACTER = 288, + TOK_CHOICE = 289, + TOK_CLASS = 290, + TOK_COMPONENT = 291, + TOK_COMPONENTS = 292, + TOK_CONSTRAINED = 293, + TOK_CONTAINING = 294, + TOK_DEFAULT = 295, + TOK_DEFINITIONS = 296, + TOK_DEFINED = 297, + TOK_EMBEDDED = 298, + TOK_ENCODED = 299, + TOK_ENCODING_CONTROL = 300, + TOK_END = 301, + TOK_ENUMERATED = 302, + TOK_EXPLICIT = 303, + TOK_EXPORTS = 304, + TOK_EXTENSIBILITY = 305, + TOK_EXTERNAL = 306, + TOK_FALSE = 307, + TOK_FROM = 308, + TOK_GeneralizedTime = 309, + TOK_GeneralString = 310, + TOK_GraphicString = 311, + TOK_IA5String = 312, + TOK_IDENTIFIER = 313, + TOK_IMPLICIT = 314, + TOK_IMPLIED = 315, + TOK_IMPORTS = 316, + TOK_INCLUDES = 317, + TOK_INSTANCE = 318, + TOK_INSTRUCTIONS = 319, + TOK_INTEGER = 320, + TOK_ISO646String = 321, + TOK_MAX = 322, + TOK_MIN = 323, + TOK_MINUS_INFINITY = 324, + TOK_NULL = 325, + TOK_NumericString = 326, + TOK_OBJECT = 327, + TOK_ObjectDescriptor = 328, + TOK_OCTET = 329, + TOK_OF = 330, + TOK_OPTIONAL = 331, + TOK_PATTERN = 332, + TOK_PDV = 333, + TOK_PLUS_INFINITY = 334, + TOK_PRESENT = 335, + TOK_PrintableString = 336, + TOK_PRIVATE = 337, + TOK_REAL = 338, + TOK_RELATIVE_OID = 339, + TOK_SEQUENCE = 340, + TOK_SET = 341, + TOK_SIZE = 342, + TOK_STRING = 343, + TOK_SYNTAX = 344, + TOK_T61String = 345, + TOK_TAGS = 346, + TOK_TeletexString = 347, + TOK_TRUE = 348, + TOK_TYPE_IDENTIFIER = 349, + TOK_UNIQUE = 350, + TOK_UNIVERSAL = 351, + TOK_UniversalString = 352, + TOK_UTCTime = 353, + TOK_UTF8String = 354, + TOK_VideotexString = 355, + TOK_VisibleString = 356, + TOK_WITH = 357, + TOK_EXCEPT = 358, + TOK_INTERSECTION = 359, + TOK_UNION = 360, + TOK_TwoDots = 361, + TOK_ThreeDots = 362 }; #endif +/* Tokens. */ #define TOK_PPEQ 258 -#define TOK_whitespace 259 -#define TOK_opaque 260 -#define TOK_bstring 261 -#define TOK_cstring 262 -#define TOK_hstring 263 -#define TOK_identifier 264 -#define TOK_number 265 -#define TOK_number_negative 266 -#define TOK_realnumber 267 -#define TOK_tuple 268 -#define TOK_quadruple 269 -#define TOK_typereference 270 -#define TOK_capitalreference 271 -#define TOK_typefieldreference 272 -#define TOK_valuefieldreference 273 -#define TOK_Literal 274 -#define TOK_ABSENT 275 -#define TOK_ABSTRACT_SYNTAX 276 -#define TOK_ALL 277 -#define TOK_ANY 278 -#define TOK_APPLICATION 279 -#define TOK_AUTOMATIC 280 -#define TOK_BEGIN 281 -#define TOK_BIT 282 -#define TOK_BMPString 283 -#define TOK_BOOLEAN 284 -#define TOK_BY 285 -#define TOK_CHARACTER 286 -#define TOK_CHOICE 287 -#define TOK_CLASS 288 -#define TOK_COMPONENT 289 -#define TOK_COMPONENTS 290 -#define TOK_CONSTRAINED 291 -#define TOK_CONTAINING 292 -#define TOK_DEFAULT 293 -#define TOK_DEFINITIONS 294 -#define TOK_DEFINED 295 -#define TOK_EMBEDDED 296 -#define TOK_ENCODED 297 -#define TOK_ENCODING_CONTROL 298 -#define TOK_END 299 -#define TOK_ENUMERATED 300 -#define TOK_EXPLICIT 301 -#define TOK_EXPORTS 302 -#define TOK_EXTENSIBILITY 303 -#define TOK_EXTERNAL 304 -#define TOK_FALSE 305 -#define TOK_FROM 306 -#define TOK_GeneralizedTime 307 -#define TOK_GeneralString 308 -#define TOK_GraphicString 309 -#define TOK_IA5String 310 -#define TOK_IDENTIFIER 311 -#define TOK_IMPLICIT 312 -#define TOK_IMPLIED 313 -#define TOK_IMPORTS 314 -#define TOK_INCLUDES 315 -#define TOK_INSTANCE 316 -#define TOK_INSTRUCTIONS 317 -#define TOK_INTEGER 318 -#define TOK_ISO646String 319 -#define TOK_MAX 320 -#define TOK_MIN 321 -#define TOK_MINUS_INFINITY 322 -#define TOK_NULL 323 -#define TOK_NumericString 324 -#define TOK_OBJECT 325 -#define TOK_ObjectDescriptor 326 -#define TOK_OCTET 327 -#define TOK_OF 328 -#define TOK_OPTIONAL 329 -#define TOK_PATTERN 330 -#define TOK_PDV 331 -#define TOK_PLUS_INFINITY 332 -#define TOK_PRESENT 333 -#define TOK_PrintableString 334 -#define TOK_PRIVATE 335 -#define TOK_REAL 336 -#define TOK_RELATIVE_OID 337 -#define TOK_SEQUENCE 338 -#define TOK_SET 339 -#define TOK_SIZE 340 -#define TOK_STRING 341 -#define TOK_SYNTAX 342 -#define TOK_T61String 343 -#define TOK_TAGS 344 -#define TOK_TeletexString 345 -#define TOK_TRUE 346 -#define TOK_TYPE_IDENTIFIER 347 -#define TOK_UNIQUE 348 -#define TOK_UNIVERSAL 349 -#define TOK_UniversalString 350 -#define TOK_UTCTime 351 -#define TOK_UTF8String 352 -#define TOK_VideotexString 353 -#define TOK_VisibleString 354 -#define TOK_WITH 355 -#define TOK_EXCEPT 356 -#define TOK_INTERSECTION 357 -#define TOK_UNION 358 -#define TOK_TwoDots 359 -#define TOK_ThreeDots 360 +#define TOK_VBracketLeft 259 +#define TOK_VBracketRight 260 +#define TOK_whitespace 261 +#define TOK_opaque 262 +#define TOK_bstring 263 +#define TOK_cstring 264 +#define TOK_hstring 265 +#define TOK_identifier 266 +#define TOK_number 267 +#define TOK_number_negative 268 +#define TOK_realnumber 269 +#define TOK_tuple 270 +#define TOK_quadruple 271 +#define TOK_typereference 272 +#define TOK_capitalreference 273 +#define TOK_typefieldreference 274 +#define TOK_valuefieldreference 275 +#define TOK_Literal 276 +#define TOK_ABSENT 277 +#define TOK_ABSTRACT_SYNTAX 278 +#define TOK_ALL 279 +#define TOK_ANY 280 +#define TOK_APPLICATION 281 +#define TOK_AUTOMATIC 282 +#define TOK_BEGIN 283 +#define TOK_BIT 284 +#define TOK_BMPString 285 +#define TOK_BOOLEAN 286 +#define TOK_BY 287 +#define TOK_CHARACTER 288 +#define TOK_CHOICE 289 +#define TOK_CLASS 290 +#define TOK_COMPONENT 291 +#define TOK_COMPONENTS 292 +#define TOK_CONSTRAINED 293 +#define TOK_CONTAINING 294 +#define TOK_DEFAULT 295 +#define TOK_DEFINITIONS 296 +#define TOK_DEFINED 297 +#define TOK_EMBEDDED 298 +#define TOK_ENCODED 299 +#define TOK_ENCODING_CONTROL 300 +#define TOK_END 301 +#define TOK_ENUMERATED 302 +#define TOK_EXPLICIT 303 +#define TOK_EXPORTS 304 +#define TOK_EXTENSIBILITY 305 +#define TOK_EXTERNAL 306 +#define TOK_FALSE 307 +#define TOK_FROM 308 +#define TOK_GeneralizedTime 309 +#define TOK_GeneralString 310 +#define TOK_GraphicString 311 +#define TOK_IA5String 312 +#define TOK_IDENTIFIER 313 +#define TOK_IMPLICIT 314 +#define TOK_IMPLIED 315 +#define TOK_IMPORTS 316 +#define TOK_INCLUDES 317 +#define TOK_INSTANCE 318 +#define TOK_INSTRUCTIONS 319 +#define TOK_INTEGER 320 +#define TOK_ISO646String 321 +#define TOK_MAX 322 +#define TOK_MIN 323 +#define TOK_MINUS_INFINITY 324 +#define TOK_NULL 325 +#define TOK_NumericString 326 +#define TOK_OBJECT 327 +#define TOK_ObjectDescriptor 328 +#define TOK_OCTET 329 +#define TOK_OF 330 +#define TOK_OPTIONAL 331 +#define TOK_PATTERN 332 +#define TOK_PDV 333 +#define TOK_PLUS_INFINITY 334 +#define TOK_PRESENT 335 +#define TOK_PrintableString 336 +#define TOK_PRIVATE 337 +#define TOK_REAL 338 +#define TOK_RELATIVE_OID 339 +#define TOK_SEQUENCE 340 +#define TOK_SET 341 +#define TOK_SIZE 342 +#define TOK_STRING 343 +#define TOK_SYNTAX 344 +#define TOK_T61String 345 +#define TOK_TAGS 346 +#define TOK_TeletexString 347 +#define TOK_TRUE 348 +#define TOK_TYPE_IDENTIFIER 349 +#define TOK_UNIQUE 350 +#define TOK_UNIVERSAL 351 +#define TOK_UniversalString 352 +#define TOK_UTCTime 353 +#define TOK_UTF8String 354 +#define TOK_VideotexString 355 +#define TOK_VisibleString 356 +#define TOK_WITH 357 +#define TOK_EXCEPT 358 +#define TOK_INTERSECTION 359 +#define TOK_UNION 360 +#define TOK_TwoDots 361 +#define TOK_ThreeDots 362 @@ -367,9 +387,15 @@ static asn1p_module_t *currentModule; # define YYERROR_VERBOSE 0 #endif -#ifndef YYSTYPE +/* Enabling the token table. */ +#ifndef YYTOKEN_TABLE +# define YYTOKEN_TABLE 0 +#endif + +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE #line 88 "asn1p_y.y" -typedef union { +{ asn1p_t *a_grammar; asn1p_module_flags_e a_module_flags; asn1p_module_t *a_module; @@ -402,98 +428,212 @@ typedef union { char *name; struct asn1p_type_tag_s tag; } tv_nametag; -} yystype; -/* Line 193 of /usr/local/share/bison/yacc.c. */ -#line 408 "asn1p_y.c" -# define YYSTYPE yystype +} +/* Line 193 of yacc.c. */ +#line 434 "y.tab.c" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 # define YYSTYPE_IS_TRIVIAL 1 #endif -#ifndef YYLTYPE -typedef struct yyltype -{ - int first_line; - int first_column; - int last_line; - int last_column; -} yyltype; -# define YYLTYPE yyltype -# define YYLTYPE_IS_TRIVIAL 1 -#endif + /* Copy the second part of user declarations. */ -/* Line 213 of /usr/local/share/bison/yacc.c. */ -#line 429 "asn1p_y.c" +/* Line 216 of yacc.c. */ +#line 447 "y.tab.c" -#if ! defined (yyoverflow) || YYERROR_VERBOSE +#ifdef short +# undef short +#endif -/* The parser invokes alloca or malloc; define the necessary symbols. */ +#ifdef YYTYPE_UINT8 +typedef YYTYPE_UINT8 yytype_uint8; +#else +typedef unsigned char yytype_uint8; +#endif -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca +#ifdef YYTYPE_INT8 +typedef YYTYPE_INT8 yytype_int8; +#elif (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +typedef signed char yytype_int8; +#else +typedef short int yytype_int8; +#endif + +#ifdef YYTYPE_UINT16 +typedef YYTYPE_UINT16 yytype_uint16; +#else +typedef unsigned short int yytype_uint16; +#endif + +#ifdef YYTYPE_INT16 +typedef YYTYPE_INT16 yytype_int16; +#else +typedef short int yytype_int16; +#endif + +#ifndef YYSIZE_T +# ifdef __SIZE_TYPE__ +# define YYSIZE_T __SIZE_TYPE__ +# elif defined size_t +# define YYSIZE_T size_t +# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t # else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca +# define YYSIZE_T unsigned int +# endif +#endif + +#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) + +#ifndef YY_ +# if defined YYENABLE_NLS && YYENABLE_NLS +# if ENABLE_NLS +# include <libintl.h> /* INFRINGES ON USER NAME SPACE */ +# define YY_(msgid) dgettext ("bison-runtime", msgid) +# endif +# endif +# ifndef YY_ +# define YY_(msgid) msgid +# endif +#endif + +/* Suppress unused-variable warnings by "using" E. */ +#if ! defined lint || defined __GNUC__ +# define YYUSE(e) ((void) (e)) +#else +# define YYUSE(e) /* empty */ +#endif + +/* Identity function, used to suppress warnings about constant conditions. */ +#ifndef lint +# define YYID(n) (n) +#else +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static int +YYID (int i) +#else +static int +YYID (i) + int i; +#endif +{ + return i; +} +#endif + +#if ! defined yyoverflow || YYERROR_VERBOSE + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# elif defined __BUILTIN_VA_ARG_INCR +# include <alloca.h> /* INFRINGES ON USER NAME SPACE */ +# elif defined _AIX +# define YYSTACK_ALLOC __alloca +# elif defined _MSC_VER +# include <malloc.h> /* INFRINGES ON USER NAME SPACE */ +# define alloca _alloca # else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca +# define YYSTACK_ALLOC alloca +# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC - /* Pacify GCC's `empty if-body' warning. */ -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) +# ifndef YYSTACK_ALLOC_MAXIMUM + /* The OS might guarantee only one guard page at the bottom of the stack, + and a page size can be as small as 4096 bytes. So we cannot safely + invoke alloca (N) if N exceeds 4096. Use a slightly smaller number + to allow for a few compiler-allocated temporary stack slots. */ +# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ +# endif # else -# if defined (__STDC__) || defined (__cplusplus) +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# ifndef YYSTACK_ALLOC_MAXIMUM +# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM +# endif +# if (defined __cplusplus && ! defined _STDLIB_H \ + && ! ((defined YYMALLOC || defined malloc) \ + && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t +# ifndef _STDLIB_H +# define _STDLIB_H 1 +# endif +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ +# endif +# endif +# ifndef YYFREE +# define YYFREE free +# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +void free (void *); /* INFRINGES ON USER NAME SPACE */ +# endif # endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free # endif -#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ +#endif /* ! defined yyoverflow || YYERROR_VERBOSE */ -#if (! defined (yyoverflow) \ - && (! defined (__cplusplus) \ - || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) +#if (! defined yyoverflow \ + && (! defined __cplusplus \ + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short yyss; + yytype_int16 yyss; YYSTYPE yyvs; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAX) + ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if 1 < __GNUC__ +# if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else # define YYCOPY(To, From, Count) \ do \ { \ - register YYSIZE_T yyi; \ + YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ + (To)[yyi] = (From)[yyi]; \ } \ - while (0) + while (YYID (0)) # endif # endif @@ -508,55 +648,50 @@ union yyalloc YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ - while (0) - -#endif + while (YYID (0)) -#if defined (__STDC__) || defined (__cplusplus) - typedef signed char yysigned_char; -#else - typedef short yysigned_char; #endif -/* YYFINAL -- State number of the termination state. */ +/* YYFINAL -- State number of the termination state. */ #define YYFINAL 7 -#define YYLAST 805 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 793 -/* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 121 -/* YYNNTS -- Number of nonterminals. */ +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 123 +/* YYNNTS -- Number of nonterminals. */ #define YYNNTS 122 -/* YYNRULES -- Number of rules. */ -#define YYNRULES 312 -/* YYNRULES -- Number of states. */ -#define YYNSTATES 470 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 313 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 473 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 360 +#define YYMAXUTOK 362 -#define YYTRANSLATE(X) \ - ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK) +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -static const unsigned char yytranslate[] = +static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 117, 2, 2, 2, 2, 2, 2, - 110, 111, 2, 2, 113, 2, 118, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 114, 112, - 119, 2, 2, 2, 120, 2, 2, 2, 2, 2, + 2, 2, 2, 119, 2, 2, 2, 2, 2, 2, + 112, 113, 2, 2, 115, 2, 120, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 116, 114, + 121, 2, 2, 2, 122, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 115, 2, 116, 102, 2, 2, 2, 2, 2, + 2, 117, 2, 118, 104, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 108, 104, 109, 2, 2, 2, 2, + 2, 2, 2, 110, 106, 111, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -579,14 +714,14 @@ static const unsigned char yytranslate[] = 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 103, 105, 106, - 107 + 95, 96, 97, 98, 99, 100, 101, 102, 103, 105, + 107, 108, 109 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const unsigned short yyprhs[] = +static const yytype_uint16 yyprhs[] = { 0, 0, 3, 5, 7, 10, 11, 21, 22, 24, 28, 31, 33, 36, 38, 43, 45, 46, 48, 50, @@ -596,229 +731,231 @@ static const unsigned short yyprhs[] = 127, 131, 133, 134, 136, 140, 144, 147, 149, 153, 155, 159, 161, 165, 170, 172, 174, 179, 183, 187, 194, 201, 203, 207, 209, 213, 217, 221, 225, 227, - 231, 233, 235, 237, 239, 240, 242, 244, 248, 252, - 255, 259, 261, 263, 267, 270, 272, 274, 280, 281, - 283, 285, 289, 292, 297, 301, 305, 309, 313, 317, - 318, 320, 321, 328, 330, 333, 335, 337, 339, 343, - 345, 349, 353, 357, 358, 361, 363, 368, 373, 378, - 385, 392, 394, 399, 403, 405, 409, 413, 417, 419, - 423, 425, 429, 431, 433, 435, 437, 441, 445, 447, - 452, 454, 456, 460, 461, 465, 467, 469, 471, 473, - 475, 477, 479, 481, 485, 487, 489, 491, 493, 496, - 498, 500, 502, 504, 507, 510, 512, 514, 517, 520, - 522, 524, 526, 528, 530, 533, 535, 538, 540, 542, - 544, 546, 548, 550, 552, 554, 556, 558, 560, 562, - 564, 566, 568, 570, 572, 574, 575, 577, 579, 581, - 586, 590, 595, 597, 599, 603, 609, 611, 613, 617, - 619, 623, 625, 629, 631, 635, 640, 644, 646, 648, - 652, 656, 660, 664, 666, 668, 671, 674, 676, 678, - 680, 682, 684, 686, 688, 690, 692, 694, 696, 700, - 706, 708, 712, 714, 718, 719, 721, 723, 725, 727, - 729, 731, 733, 734, 740, 743, 745, 748, 751, 755, - 757, 759, 763, 768, 770, 774, 777, 781, 783, 787, - 788, 790, 792, 795, 798, 802, 804, 808, 810, 815, - 820, 822, 824, 826, 828, 830, 832, 833, 835, 838, - 843, 844, 846, 848, 850, 851, 853, 855, 857, 859, - 861, 862, 864 + 231, 233, 235, 237, 239, 240, 242, 244, 248, 254, + 258, 261, 265, 267, 269, 273, 276, 278, 280, 286, + 287, 289, 291, 295, 298, 303, 307, 311, 315, 319, + 323, 324, 326, 327, 334, 336, 339, 341, 343, 345, + 349, 351, 355, 359, 363, 364, 367, 369, 374, 379, + 384, 391, 398, 400, 405, 409, 411, 415, 419, 423, + 425, 429, 431, 435, 437, 439, 441, 443, 447, 451, + 453, 458, 460, 462, 466, 467, 471, 473, 475, 477, + 479, 481, 483, 485, 487, 491, 493, 495, 497, 499, + 502, 504, 506, 508, 510, 513, 516, 518, 520, 523, + 526, 528, 530, 532, 534, 536, 539, 541, 544, 546, + 548, 550, 552, 554, 556, 558, 560, 562, 564, 566, + 568, 570, 572, 574, 576, 578, 580, 581, 583, 585, + 587, 592, 596, 601, 603, 605, 609, 615, 617, 619, + 623, 625, 629, 631, 635, 637, 641, 646, 650, 652, + 654, 658, 662, 666, 670, 672, 674, 677, 680, 682, + 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, + 706, 712, 714, 718, 720, 724, 725, 727, 729, 731, + 733, 735, 737, 739, 740, 746, 749, 751, 754, 757, + 761, 763, 765, 769, 774, 776, 780, 783, 787, 789, + 793, 794, 796, 798, 801, 804, 808, 810, 814, 816, + 821, 826, 828, 830, 832, 834, 836, 838, 839, 841, + 844, 849, 850, 852, 854, 856, 857, 859, 861, 863, + 865, 867, 868, 870 }; -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const short yyrhs[] = +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const yytype_int16 yyrhs[] = { - 122, 0, -1, 123, -1, 124, -1, 123, 124, -1, - -1, 239, 125, 126, 39, 130, 3, 26, 133, 44, - -1, -1, 127, -1, 108, 128, 109, -1, 108, 109, - -1, 129, -1, 128, 129, -1, 242, -1, 242, 110, - 10, 111, -1, 10, -1, -1, 131, -1, 132, -1, - 131, 132, -1, 46, 89, -1, 57, 89, -1, 25, - 89, -1, 48, 58, -1, 16, 62, -1, -1, 134, - -1, 146, 138, 135, -1, 136, -1, 135, 136, -1, - 153, -1, 183, -1, 151, -1, -1, 43, 16, 137, - -1, 193, -1, -1, 139, -1, 59, 140, 112, -1, - 59, 51, -1, -1, 141, -1, 143, -1, 141, 143, - -1, -1, 127, -1, 144, 51, 239, 142, -1, 145, - -1, 144, 113, 145, -1, 239, -1, 239, 108, 109, - -1, 242, -1, -1, 147, -1, 47, 148, 112, -1, - 47, 22, 112, -1, 47, 112, -1, 149, -1, 148, - 113, 149, -1, 239, -1, 239, 108, 109, -1, 242, - -1, 108, 200, 109, -1, 239, 152, 3, 150, -1, - 192, -1, 177, -1, 177, 108, 156, 109, -1, 239, - 3, 173, -1, 239, 3, 163, -1, 239, 108, 154, - 109, 3, 173, -1, 239, 108, 154, 109, 3, 163, - -1, 155, -1, 154, 113, 155, -1, 239, -1, 239, - 114, 242, -1, 239, 114, 239, -1, 190, 114, 242, - -1, 190, 114, 239, -1, 157, -1, 156, 113, 157, - -1, 173, -1, 186, -1, 242, -1, 150, -1, -1, - 159, -1, 160, -1, 159, 113, 160, -1, 242, 173, - 227, -1, 173, 227, -1, 35, 73, 173, -1, 172, - -1, 162, -1, 161, 113, 162, -1, 242, 173, -1, - 172, -1, 173, -1, 33, 108, 165, 109, 167, -1, - -1, 93, -1, 166, -1, 165, 113, 166, -1, 17, - 227, -1, 18, 173, 164, 227, -1, 18, 181, 227, - -1, 18, 182, 227, -1, 17, 181, 227, -1, 17, - 173, 227, -1, 17, 182, 227, -1, -1, 168, -1, - -1, 100, 87, 108, 169, 170, 109, -1, 171, -1, - 170, 171, -1, 4, -1, 19, -1, 180, -1, 115, - 170, 116, -1, 107, -1, 107, 117, 187, -1, 107, - 117, 232, -1, 234, 175, 196, -1, -1, 174, 176, - -1, 152, -1, 32, 108, 161, 109, -1, 83, 108, - 158, 109, -1, 84, 108, 158, 109, -1, 83, 196, - 73, 241, 234, 175, -1, 84, 196, 73, 241, 234, - 175, -1, 23, -1, 23, 40, 30, 242, -1, 61, - 73, 177, -1, 15, -1, 15, 118, 239, -1, 240, - 118, 239, -1, 15, 118, 242, -1, 240, -1, 240, - 118, 178, -1, 179, -1, 178, 118, 179, -1, 180, - -1, 17, -1, 18, -1, 17, -1, 181, 118, 17, - -1, 181, 118, 18, -1, 16, -1, 242, 173, 3, - 184, -1, 186, -1, 187, -1, 242, 114, 184, -1, - -1, 108, 185, 189, -1, 68, -1, 50, -1, 91, - -1, 6, -1, 8, -1, 188, -1, 232, -1, 242, - -1, 239, 118, 242, -1, 7, -1, 13, -1, 14, - -1, 5, -1, 189, 5, -1, 29, -1, 68, -1, - 81, -1, 191, -1, 72, 86, -1, 70, 56, -1, - 82, -1, 49, -1, 41, 76, -1, 31, 86, -1, - 96, -1, 52, -1, 193, -1, 63, -1, 45, -1, - 27, 86, -1, 190, -1, 191, 229, -1, 28, -1, - 53, -1, 54, -1, 55, -1, 64, -1, 69, -1, - 79, -1, 88, -1, 90, -1, 95, -1, 97, -1, - 98, -1, 99, -1, 71, -1, 104, -1, 105, -1, - 102, -1, 103, -1, -1, 197, -1, 198, -1, 199, - -1, 85, 110, 200, 111, -1, 110, 200, 111, -1, - 199, 110, 200, 111, -1, 107, -1, 201, -1, 201, - 113, 107, -1, 201, 113, 107, 113, 201, -1, 216, - -1, 202, -1, 22, 101, 205, -1, 203, -1, 202, - 194, 203, -1, 204, -1, 203, 195, 204, -1, 205, - -1, 205, 101, 205, -1, 207, 110, 200, 111, -1, - 110, 200, 111, -1, 208, -1, 210, -1, 208, 220, - 208, -1, 66, 220, 208, -1, 208, 220, 65, -1, - 66, 220, 65, -1, 211, -1, 206, -1, 75, 7, - -1, 75, 242, -1, 85, -1, 51, -1, 50, -1, - 91, -1, 233, -1, 188, -1, 209, -1, 242, -1, - 6, -1, 8, -1, 239, -1, 100, 34, 199, -1, - 100, 35, 108, 212, 109, -1, 213, -1, 212, 113, - 213, -1, 107, -1, 242, 196, 214, -1, -1, 215, - -1, 78, -1, 20, -1, 74, -1, 217, -1, 221, - -1, 219, -1, -1, 36, 30, 108, 218, 189, -1, - 37, 173, -1, 106, -1, 106, 119, -1, 119, 106, - -1, 119, 106, 119, -1, 222, -1, 223, -1, 108, - 239, 109, -1, 222, 108, 224, 109, -1, 225, -1, - 224, 113, 225, -1, 120, 226, -1, 120, 118, 226, - -1, 242, -1, 226, 118, 242, -1, -1, 228, -1, - 74, -1, 38, 184, -1, 108, 109, -1, 108, 230, - 109, -1, 231, -1, 230, 113, 231, -1, 242, -1, - 242, 110, 232, 111, -1, 242, 110, 187, 111, -1, - 232, -1, 107, -1, 10, -1, 11, -1, 232, -1, - 12, -1, -1, 235, -1, 236, 238, -1, 115, 237, - 10, 116, -1, -1, 94, -1, 24, -1, 80, -1, - -1, 57, -1, 46, -1, 15, -1, 16, -1, 16, - -1, -1, 242, -1, 9, -1 + 124, 0, -1, 125, -1, 126, -1, 125, 126, -1, + -1, 241, 127, 128, 41, 132, 3, 28, 135, 46, + -1, -1, 129, -1, 110, 130, 111, -1, 110, 111, + -1, 131, -1, 130, 131, -1, 244, -1, 244, 112, + 12, 113, -1, 12, -1, -1, 133, -1, 134, -1, + 133, 134, -1, 48, 91, -1, 59, 91, -1, 27, + 91, -1, 50, 60, -1, 18, 64, -1, -1, 136, + -1, 148, 140, 137, -1, 138, -1, 137, 138, -1, + 155, -1, 185, -1, 153, -1, -1, 45, 18, 139, + -1, 195, -1, -1, 141, -1, 61, 142, 114, -1, + 61, 53, -1, -1, 143, -1, 145, -1, 143, 145, + -1, -1, 129, -1, 146, 53, 241, 144, -1, 147, + -1, 146, 115, 147, -1, 241, -1, 241, 110, 111, + -1, 244, -1, -1, 149, -1, 49, 150, 114, -1, + 49, 24, 114, -1, 49, 114, -1, 151, -1, 150, + 115, 151, -1, 241, -1, 241, 110, 111, -1, 244, + -1, 110, 202, 111, -1, 241, 154, 3, 152, -1, + 194, -1, 179, -1, 179, 110, 158, 111, -1, 241, + 3, 175, -1, 241, 3, 165, -1, 241, 110, 156, + 111, 3, 175, -1, 241, 110, 156, 111, 3, 165, + -1, 157, -1, 156, 115, 157, -1, 241, -1, 241, + 116, 244, -1, 241, 116, 241, -1, 192, 116, 244, + -1, 192, 116, 241, -1, 159, -1, 158, 115, 159, + -1, 175, -1, 188, -1, 244, -1, 152, -1, -1, + 161, -1, 162, -1, 161, 115, 162, -1, 161, 115, + 4, 161, 5, -1, 244, 175, 229, -1, 175, 229, + -1, 37, 75, 175, -1, 174, -1, 164, -1, 163, + 115, 164, -1, 244, 175, -1, 174, -1, 175, -1, + 35, 110, 167, 111, 169, -1, -1, 95, -1, 168, + -1, 167, 115, 168, -1, 19, 229, -1, 20, 175, + 166, 229, -1, 20, 183, 229, -1, 20, 184, 229, + -1, 19, 183, 229, -1, 19, 175, 229, -1, 19, + 184, 229, -1, -1, 170, -1, -1, 102, 89, 110, + 171, 172, 111, -1, 173, -1, 172, 173, -1, 6, + -1, 21, -1, 182, -1, 117, 172, 118, -1, 109, + -1, 109, 119, 189, -1, 109, 119, 234, -1, 236, + 177, 198, -1, -1, 176, 178, -1, 154, -1, 34, + 110, 163, 111, -1, 85, 110, 160, 111, -1, 86, + 110, 160, 111, -1, 85, 198, 75, 243, 236, 177, + -1, 86, 198, 75, 243, 236, 177, -1, 25, -1, + 25, 42, 32, 244, -1, 63, 75, 179, -1, 17, + -1, 17, 120, 241, -1, 242, 120, 241, -1, 17, + 120, 244, -1, 242, -1, 242, 120, 180, -1, 181, + -1, 180, 120, 181, -1, 182, -1, 19, -1, 20, + -1, 19, -1, 183, 120, 19, -1, 183, 120, 20, + -1, 18, -1, 244, 175, 3, 186, -1, 188, -1, + 189, -1, 244, 116, 186, -1, -1, 110, 187, 191, + -1, 70, -1, 52, -1, 93, -1, 8, -1, 10, + -1, 190, -1, 234, -1, 244, -1, 241, 120, 244, + -1, 9, -1, 15, -1, 16, -1, 7, -1, 191, + 7, -1, 31, -1, 70, -1, 83, -1, 193, -1, + 74, 88, -1, 72, 58, -1, 84, -1, 51, -1, + 43, 78, -1, 33, 88, -1, 98, -1, 54, -1, + 195, -1, 65, -1, 47, -1, 29, 88, -1, 192, + -1, 193, 231, -1, 30, -1, 55, -1, 56, -1, + 57, -1, 66, -1, 71, -1, 81, -1, 90, -1, + 92, -1, 97, -1, 99, -1, 100, -1, 101, -1, + 73, -1, 106, -1, 107, -1, 104, -1, 105, -1, + -1, 199, -1, 200, -1, 201, -1, 87, 112, 202, + 113, -1, 112, 202, 113, -1, 201, 112, 202, 113, + -1, 109, -1, 203, -1, 203, 115, 109, -1, 203, + 115, 109, 115, 203, -1, 218, -1, 204, -1, 24, + 103, 207, -1, 205, -1, 204, 196, 205, -1, 206, + -1, 205, 197, 206, -1, 207, -1, 207, 103, 207, + -1, 209, 112, 202, 113, -1, 112, 202, 113, -1, + 210, -1, 212, -1, 210, 222, 210, -1, 68, 222, + 210, -1, 210, 222, 67, -1, 68, 222, 67, -1, + 213, -1, 208, -1, 77, 9, -1, 77, 244, -1, + 87, -1, 53, -1, 52, -1, 93, -1, 235, -1, + 190, -1, 211, -1, 244, -1, 8, -1, 10, -1, + 241, -1, 102, 36, 201, -1, 102, 37, 110, 214, + 111, -1, 215, -1, 214, 115, 215, -1, 109, -1, + 244, 198, 216, -1, -1, 217, -1, 80, -1, 22, + -1, 76, -1, 219, -1, 223, -1, 221, -1, -1, + 38, 32, 110, 220, 191, -1, 39, 175, -1, 108, + -1, 108, 121, -1, 121, 108, -1, 121, 108, 121, + -1, 224, -1, 225, -1, 110, 241, 111, -1, 224, + 110, 226, 111, -1, 227, -1, 226, 115, 227, -1, + 122, 228, -1, 122, 120, 228, -1, 244, -1, 228, + 120, 244, -1, -1, 230, -1, 76, -1, 40, 186, + -1, 110, 111, -1, 110, 232, 111, -1, 233, -1, + 232, 115, 233, -1, 244, -1, 244, 112, 234, 113, + -1, 244, 112, 189, 113, -1, 234, -1, 109, -1, + 12, -1, 13, -1, 234, -1, 14, -1, -1, 237, + -1, 238, 240, -1, 117, 239, 12, 118, -1, -1, + 96, -1, 26, -1, 82, -1, -1, 59, -1, 48, + -1, 17, -1, 18, -1, 18, -1, -1, 244, -1, + 11, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned short yyrline[] = +static const yytype_uint16 yyrline[] = { - 0, 355, 355, 361, 367, 384, 383, 412, 414, 417, - 421, 426, 433, 441, 446, 450, 459, 461, 469, 473, - 481, 485, 488, 491, 495, 515, 517, 525, 534, 538, - 553, 561, 574, 582, 581, 595, 607, 609, 611, 622, - 627, 629, 631, 637, 643, 645, 648, 659, 665, 671, - 678, 684, 693, 695, 706, 710, 713, 720, 726, 732, - 739, 745, 754, 756, 766, 780, 790, 806, 816, 832, - 838, 845, 855, 865, 870, 877, 884, 892, 902, 908, - 914, 918, 926, 937, 959, 961, 963, 969, 975, 983, - 989, 996, 1001, 1007, 1013, 1019, 1022, 1028, 1038, 1040, - 1043, 1051, 1058, 1071, 1082, 1092, 1103, 1113, 1124, 1135, - 1137, 1144, 1142, 1151, 1156, 1162, 1167, 1170, 1174, 1179, - 1188, 1197, 1208, 1230, 1237, 1256, 1260, 1266, 1272, 1278, - 1288, 1298, 1304, 1315, 1329, 1338, 1348, 1358, 1368, 1376, - 1397, 1406, 1415, 1417, 1424, 1431, 1437, 1441, 1447, 1467, - 1477, 1479, 1480, 1487, 1487, 1492, 1499, 1505, 1510, 1514, - 1518, 1521, 1526, 1538, 1555, 1560, 1565, 1572, 1582, 1596, - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, - 1608, 1609, 1615, 1617, 1618, 1621, 1628, 1640, 1642, 1646, - 1650, 1651, 1652, 1653, 1654, 1658, 1659, 1660, 1661, 1665, - 1666, 1673, 1673, 1674, 1674, 1676, 1678, 1683, 1687, 1691, - 1700, 1704, 1709, 1714, 1717, 1723, 1731, 1736, 1738, 1743, - 1745, 1750, 1752, 1758, 1760, 1765, 1774, 1782, 1788, 1794, - 1801, 1809, 1817, 1826, 1829, 1834, 1840, 1850, 1854, 1859, - 1865, 1870, 1871, 1872, 1873, 1886, 1891, 1897, 1911, 1915, - 1920, 1924, 1929, 1936, 1949, 1951, 1954, 1958, 1961, 1968, - 1970, 1971, 1976, 1974, 1986, 1994, 1996, 1997, 1998, 2000, - 2004, 2012, 2027, 2033, 2040, 2053, 2065, 2080, 2084, 2101, - 2106, 2109, 2114, 2136, 2141, 2146, 2152, 2158, 2166, 2174, - 2182, 2189, 2199, 2204, 2210, 2212, 2242, 2244, 2247, 2254, - 2260, 2262, 2263, 2264, 2267, 2269, 2270, 2273, 2278, 2285, - 2292, 2294, 2299 + 0, 357, 357, 363, 368, 385, 385, 414, 415, 419, + 422, 428, 434, 443, 447, 451, 461, 462, 471, 474, + 483, 486, 489, 492, 496, 517, 518, 527, 536, 539, + 555, 562, 575, 583, 582, 596, 609, 610, 613, 623, + 629, 630, 633, 638, 645, 646, 650, 661, 666, 673, + 679, 685, 695, 696, 708, 711, 714, 722, 727, 734, + 740, 746, 755, 758, 768, 781, 791, 811, 817, 833, + 839, 847, 856, 867, 871, 878, 885, 893, 904, 909, + 916, 919, 927, 938, 961, 962, 965, 970, 974, 981, + 988, 994, 1001, 1007, 1012, 1019, 1024, 1027, 1034, 1044, + 1045, 1049, 1056, 1066, 1076, 1087, 1097, 1108, 1118, 1129, + 1141, 1142, 1149, 1148, 1157, 1161, 1168, 1172, 1175, 1179, + 1185, 1193, 1202, 1214, 1236, 1243, 1262, 1265, 1271, 1277, + 1283, 1293, 1303, 1309, 1320, 1335, 1343, 1353, 1363, 1373, + 1381, 1403, 1411, 1420, 1424, 1429, 1438, 1442, 1446, 1453, + 1473, 1483, 1484, 1485, 1492, 1492, 1497, 1505, 1510, 1515, + 1519, 1523, 1526, 1532, 1543, 1561, 1565, 1570, 1578, 1587, + 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, + 1612, 1613, 1614, 1621, 1622, 1623, 1627, 1633, 1646, 1647, + 1651, 1655, 1656, 1657, 1658, 1659, 1663, 1664, 1665, 1666, + 1670, 1671, 1678, 1678, 1679, 1679, 1682, 1683, 1689, 1693, + 1696, 1706, 1709, 1715, 1719, 1722, 1728, 1736, 1742, 1743, + 1749, 1750, 1756, 1757, 1764, 1765, 1771, 1779, 1787, 1793, + 1799, 1806, 1814, 1822, 1831, 1834, 1840, 1845, 1856, 1859, + 1865, 1870, 1875, 1876, 1877, 1878, 1892, 1896, 1903, 1917, + 1920, 1926, 1929, 1935, 1941, 1955, 1956, 1960, 1963, 1966, + 1974, 1975, 1976, 1981, 1980, 1992, 2000, 2001, 2002, 2003, + 2006, 2009, 2018, 2033, 2039, 2045, 2059, 2070, 2086, 2089, + 2107, 2111, 2115, 2119, 2142, 2146, 2152, 2157, 2164, 2171, + 2179, 2187, 2194, 2205, 2209, 2216, 2217, 2248, 2249, 2253, + 2260, 2266, 2267, 2268, 2269, 2273, 2274, 2275, 2279, 2283, + 2291, 2298, 2299, 2305 }; #endif -#if YYDEBUG || YYERROR_VERBOSE -/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "TOK_PPEQ", "TOK_whitespace", "TOK_opaque", - "TOK_bstring", "TOK_cstring", "TOK_hstring", "TOK_identifier", - "TOK_number", "TOK_number_negative", "TOK_realnumber", "TOK_tuple", - "TOK_quadruple", "TOK_typereference", "TOK_capitalreference", - "TOK_typefieldreference", "TOK_valuefieldreference", "TOK_Literal", - "TOK_ABSENT", "TOK_ABSTRACT_SYNTAX", "TOK_ALL", "TOK_ANY", - "TOK_APPLICATION", "TOK_AUTOMATIC", "TOK_BEGIN", "TOK_BIT", - "TOK_BMPString", "TOK_BOOLEAN", "TOK_BY", "TOK_CHARACTER", "TOK_CHOICE", - "TOK_CLASS", "TOK_COMPONENT", "TOK_COMPONENTS", "TOK_CONSTRAINED", - "TOK_CONTAINING", "TOK_DEFAULT", "TOK_DEFINITIONS", "TOK_DEFINED", - "TOK_EMBEDDED", "TOK_ENCODED", "TOK_ENCODING_CONTROL", "TOK_END", - "TOK_ENUMERATED", "TOK_EXPLICIT", "TOK_EXPORTS", "TOK_EXTENSIBILITY", - "TOK_EXTERNAL", "TOK_FALSE", "TOK_FROM", "TOK_GeneralizedTime", - "TOK_GeneralString", "TOK_GraphicString", "TOK_IA5String", - "TOK_IDENTIFIER", "TOK_IMPLICIT", "TOK_IMPLIED", "TOK_IMPORTS", - "TOK_INCLUDES", "TOK_INSTANCE", "TOK_INSTRUCTIONS", "TOK_INTEGER", - "TOK_ISO646String", "TOK_MAX", "TOK_MIN", "TOK_MINUS_INFINITY", - "TOK_NULL", "TOK_NumericString", "TOK_OBJECT", "TOK_ObjectDescriptor", - "TOK_OCTET", "TOK_OF", "TOK_OPTIONAL", "TOK_PATTERN", "TOK_PDV", - "TOK_PLUS_INFINITY", "TOK_PRESENT", "TOK_PrintableString", - "TOK_PRIVATE", "TOK_REAL", "TOK_RELATIVE_OID", "TOK_SEQUENCE", - "TOK_SET", "TOK_SIZE", "TOK_STRING", "TOK_SYNTAX", "TOK_T61String", - "TOK_TAGS", "TOK_TeletexString", "TOK_TRUE", "TOK_TYPE_IDENTIFIER", - "TOK_UNIQUE", "TOK_UNIVERSAL", "TOK_UniversalString", "TOK_UTCTime", - "TOK_UTF8String", "TOK_VideotexString", "TOK_VisibleString", "TOK_WITH", - "TOK_EXCEPT", "'^'", "TOK_INTERSECTION", "'|'", "TOK_UNION", - "TOK_TwoDots", "TOK_ThreeDots", "'{'", "'}'", "'('", "')'", "';'", - "','", "':'", "'['", "']'", "'!'", "'.'", "'<'", "'@'", "$accept", - "ParsedGrammar", "ModuleList", "ModuleDefinition", "@1", - "optObjectIdentifier", "ObjectIdentifier", "ObjectIdentifierBody", - "ObjectIdentifierElement", "optModuleDefinitionFlags", - "ModuleDefinitionFlags", "ModuleDefinitionFlag", "optModuleBody", - "ModuleBody", "AssignmentList", "Assignment", "@2", "optImports", - "ImportsDefinition", "optImportsBundleSet", "ImportsBundleSet", - "AssignedIdentifier", "ImportsBundle", "ImportsList", "ImportsElement", - "optExports", "ExportsDefinition", "ExportsBody", "ExportsElement", - "ValueSet", "ValueSetTypeAssignment", "DefinedType", - "DataTypeReference", "ParameterArgumentList", "ParameterArgumentName", - "ActualParameterList", "ActualParameter", "optComponentTypeLists", - "ComponentTypeLists", "ComponentType", "AlternativeTypeLists", - "AlternativeType", "ObjectClass", "optUnique", "FieldSpec", - "ClassField", "optWithSyntax", "WithSyntax", "@3", "WithSyntaxList", - "WithSyntaxToken", "ExtensionAndException", "Type", - "NSTD_IndirectMarker", "TypeDeclaration", "TypeDeclarationSet", - "ComplexTypeReference", "ComplexTypeReferenceAmpList", - "ComplexTypeReferenceElement", "PrimitiveFieldReference", "FieldName", - "DefinedObjectClass", "ValueAssignment", "Value", "@4", "SimpleValue", - "DefinedValue", "RestrictedCharacterStringValue", "Opaque", - "BasicTypeId", "BasicTypeId_UniverationCompatible", "BasicType", - "BasicString", "UnionMark", "IntersectionMark", "optConstraints", - "Constraint", "SubtypeConstraint", "SetOfConstraints", - "ElementSetSpecs", "ElementSetSpec", "Unions", "Intersections", - "IntersectionElements", "ConstraintSubtypeElement", "PatternConstraint", - "ConstraintSpec", "SingleValue", "BitStringValue", "ContainedSubtype", - "InnerTypeConstraint", "WithComponentsList", "WithComponentsElement", - "optPresenceConstraint", "PresenceConstraint", "GeneralConstraint", - "UserDefinedConstraint", "@5", "ContentsConstraint", - "ConstraintRangeSpec", "TableConstraint", "SimpleTableConstraint", - "ComponentRelationConstraint", "AtNotationList", "AtNotationElement", - "ComponentIdList", "optMarker", "Marker", "UniverationDefinition", - "UniverationList", "UniverationElement", "SignedNumber", "RealValue", - "optTag", "Tag", "TagTypeValue", "TagClass", "TagPlicit", "TypeRefName", + "$end", "error", "$undefined", "TOK_PPEQ", "TOK_VBracketLeft", + "TOK_VBracketRight", "TOK_whitespace", "TOK_opaque", "TOK_bstring", + "TOK_cstring", "TOK_hstring", "TOK_identifier", "TOK_number", + "TOK_number_negative", "TOK_realnumber", "TOK_tuple", "TOK_quadruple", + "TOK_typereference", "TOK_capitalreference", "TOK_typefieldreference", + "TOK_valuefieldreference", "TOK_Literal", "TOK_ABSENT", + "TOK_ABSTRACT_SYNTAX", "TOK_ALL", "TOK_ANY", "TOK_APPLICATION", + "TOK_AUTOMATIC", "TOK_BEGIN", "TOK_BIT", "TOK_BMPString", "TOK_BOOLEAN", + "TOK_BY", "TOK_CHARACTER", "TOK_CHOICE", "TOK_CLASS", "TOK_COMPONENT", + "TOK_COMPONENTS", "TOK_CONSTRAINED", "TOK_CONTAINING", "TOK_DEFAULT", + "TOK_DEFINITIONS", "TOK_DEFINED", "TOK_EMBEDDED", "TOK_ENCODED", + "TOK_ENCODING_CONTROL", "TOK_END", "TOK_ENUMERATED", "TOK_EXPLICIT", + "TOK_EXPORTS", "TOK_EXTENSIBILITY", "TOK_EXTERNAL", "TOK_FALSE", + "TOK_FROM", "TOK_GeneralizedTime", "TOK_GeneralString", + "TOK_GraphicString", "TOK_IA5String", "TOK_IDENTIFIER", "TOK_IMPLICIT", + "TOK_IMPLIED", "TOK_IMPORTS", "TOK_INCLUDES", "TOK_INSTANCE", + "TOK_INSTRUCTIONS", "TOK_INTEGER", "TOK_ISO646String", "TOK_MAX", + "TOK_MIN", "TOK_MINUS_INFINITY", "TOK_NULL", "TOK_NumericString", + "TOK_OBJECT", "TOK_ObjectDescriptor", "TOK_OCTET", "TOK_OF", + "TOK_OPTIONAL", "TOK_PATTERN", "TOK_PDV", "TOK_PLUS_INFINITY", + "TOK_PRESENT", "TOK_PrintableString", "TOK_PRIVATE", "TOK_REAL", + "TOK_RELATIVE_OID", "TOK_SEQUENCE", "TOK_SET", "TOK_SIZE", "TOK_STRING", + "TOK_SYNTAX", "TOK_T61String", "TOK_TAGS", "TOK_TeletexString", + "TOK_TRUE", "TOK_TYPE_IDENTIFIER", "TOK_UNIQUE", "TOK_UNIVERSAL", + "TOK_UniversalString", "TOK_UTCTime", "TOK_UTF8String", + "TOK_VideotexString", "TOK_VisibleString", "TOK_WITH", "TOK_EXCEPT", + "'^'", "TOK_INTERSECTION", "'|'", "TOK_UNION", "TOK_TwoDots", + "TOK_ThreeDots", "'{'", "'}'", "'('", "')'", "';'", "','", "':'", "'['", + "']'", "'!'", "'.'", "'<'", "'@'", "$accept", "ParsedGrammar", + "ModuleList", "ModuleDefinition", "@1", "optObjectIdentifier", + "ObjectIdentifier", "ObjectIdentifierBody", "ObjectIdentifierElement", + "optModuleDefinitionFlags", "ModuleDefinitionFlags", + "ModuleDefinitionFlag", "optModuleBody", "ModuleBody", "AssignmentList", + "Assignment", "@2", "optImports", "ImportsDefinition", + "optImportsBundleSet", "ImportsBundleSet", "AssignedIdentifier", + "ImportsBundle", "ImportsList", "ImportsElement", "optExports", + "ExportsDefinition", "ExportsBody", "ExportsElement", "ValueSet", + "ValueSetTypeAssignment", "DefinedType", "DataTypeReference", + "ParameterArgumentList", "ParameterArgumentName", "ActualParameterList", + "ActualParameter", "optComponentTypeLists", "ComponentTypeLists", + "ComponentType", "AlternativeTypeLists", "AlternativeType", + "ObjectClass", "optUnique", "FieldSpec", "ClassField", "optWithSyntax", + "WithSyntax", "@3", "WithSyntaxList", "WithSyntaxToken", + "ExtensionAndException", "Type", "NSTD_IndirectMarker", + "TypeDeclaration", "TypeDeclarationSet", "ComplexTypeReference", + "ComplexTypeReferenceAmpList", "ComplexTypeReferenceElement", + "PrimitiveFieldReference", "FieldName", "DefinedObjectClass", + "ValueAssignment", "Value", "@4", "SimpleValue", "DefinedValue", + "RestrictedCharacterStringValue", "Opaque", "BasicTypeId", + "BasicTypeId_UniverationCompatible", "BasicType", "BasicString", + "UnionMark", "IntersectionMark", "optConstraints", "Constraint", + "SubtypeConstraint", "SetOfConstraints", "ElementSetSpecs", + "ElementSetSpec", "Unions", "Intersections", "IntersectionElements", + "ConstraintSubtypeElement", "PatternConstraint", "ConstraintSpec", + "SingleValue", "BitStringValue", "ContainedSubtype", + "InnerTypeConstraint", "WithComponentsList", "WithComponentsElement", + "optPresenceConstraint", "PresenceConstraint", "GeneralConstraint", + "UserDefinedConstraint", "@5", "ContentsConstraint", + "ConstraintRangeSpec", "TableConstraint", "SimpleTableConstraint", + "ComponentRelationConstraint", "AtNotationList", "AtNotationElement", + "ComponentIdList", "optMarker", "Marker", "UniverationDefinition", + "UniverationList", "UniverationElement", "SignedNumber", "RealValue", + "optTag", "Tag", "TagTypeValue", "TagClass", "TagPlicit", "TypeRefName", "ObjectClassReference", "optIdentifier", "Identifier", 0 }; #endif @@ -826,7 +963,7 @@ static const char *const yytname[] = # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ -static const unsigned short yytoknum[] = +static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -838,51 +975,51 @@ static const unsigned short yytoknum[] = 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 94, 357, 124, 358, 359, 360, 123, 125, - 40, 41, 59, 44, 58, 91, 93, 33, 46, 60, - 64 + 355, 356, 357, 358, 94, 359, 124, 360, 361, 362, + 123, 125, 40, 41, 59, 44, 58, 91, 93, 33, + 46, 60, 64 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const unsigned char yyr1[] = +static const yytype_uint8 yyr1[] = { - 0, 121, 122, 123, 123, 125, 124, 126, 126, 127, - 127, 128, 128, 129, 129, 129, 130, 130, 131, 131, - 132, 132, 132, 132, 132, 133, 133, 134, 135, 135, - 136, 136, 136, 137, 136, 136, 138, 138, 139, 139, - 140, 140, 141, 141, 142, 142, 143, 144, 144, 145, - 145, 145, 146, 146, 147, 147, 147, 148, 148, 149, - 149, 149, 150, 151, 152, 152, 152, 153, 153, 153, - 153, 154, 154, 155, 155, 155, 155, 155, 156, 156, - 157, 157, 157, 157, 158, 158, 159, 159, 160, 160, - 160, 160, 161, 161, 162, 162, 162, 163, 164, 164, - 165, 165, 166, 166, 166, 166, 166, 166, 166, 167, - 167, 169, 168, 170, 170, 171, 171, 171, 171, 172, - 172, 172, 173, 174, 175, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 177, 177, 177, 177, 177, 177, - 178, 178, 179, 180, 180, 181, 181, 181, 182, 183, - 184, 184, 184, 185, 184, 184, 186, 186, 186, 186, - 186, 186, 187, 187, 188, 188, 188, 189, 189, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 191, 191, 191, 192, 192, 193, 193, 193, - 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, - 193, 194, 194, 195, 195, 196, 196, 197, 198, 198, - 199, 199, 200, 200, 200, 200, 200, 201, 201, 202, - 202, 203, 203, 204, 204, 205, 205, 205, 205, 205, - 205, 205, 205, 205, 205, 206, 206, 207, 207, 208, - 208, 208, 208, 208, 208, 209, 209, 210, 211, 211, - 212, 212, 213, 213, 214, 214, 215, 215, 215, 216, - 216, 216, 218, 217, 219, 220, 220, 220, 220, 221, - 221, 222, 223, 224, 224, 225, 225, 226, 226, 227, - 227, 228, 228, 229, 229, 230, 230, 231, 231, 231, - 231, 231, 232, 232, 233, 233, 234, 234, 235, 236, - 237, 237, 237, 237, 238, 238, 238, 239, 239, 240, - 241, 241, 242 + 0, 123, 124, 125, 125, 127, 126, 128, 128, 129, + 129, 130, 130, 131, 131, 131, 132, 132, 133, 133, + 134, 134, 134, 134, 134, 135, 135, 136, 137, 137, + 138, 138, 138, 139, 138, 138, 140, 140, 141, 141, + 142, 142, 143, 143, 144, 144, 145, 146, 146, 147, + 147, 147, 148, 148, 149, 149, 149, 150, 150, 151, + 151, 151, 152, 153, 154, 154, 154, 155, 155, 155, + 155, 156, 156, 157, 157, 157, 157, 157, 158, 158, + 159, 159, 159, 159, 160, 160, 161, 161, 161, 162, + 162, 162, 162, 163, 163, 164, 164, 164, 165, 166, + 166, 167, 167, 168, 168, 168, 168, 168, 168, 168, + 169, 169, 171, 170, 172, 172, 173, 173, 173, 173, + 174, 174, 174, 175, 176, 177, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 179, 179, 179, 179, 179, + 179, 180, 180, 181, 182, 182, 183, 183, 183, 184, + 185, 186, 186, 186, 187, 186, 186, 188, 188, 188, + 188, 188, 188, 189, 189, 190, 190, 190, 191, 191, + 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, + 192, 192, 192, 193, 193, 193, 194, 194, 195, 195, + 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 195, 195, 196, 196, 197, 197, 198, 198, 199, 200, + 200, 201, 201, 202, 202, 202, 202, 202, 203, 203, + 204, 204, 205, 205, 206, 206, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 208, 208, 209, 209, + 210, 210, 210, 210, 210, 210, 211, 211, 212, 213, + 213, 214, 214, 215, 215, 216, 216, 217, 217, 217, + 218, 218, 218, 220, 219, 221, 222, 222, 222, 222, + 223, 223, 224, 225, 226, 226, 227, 227, 228, 228, + 229, 229, 230, 230, 231, 231, 232, 232, 233, 233, + 233, 233, 233, 234, 234, 235, 235, 236, 236, 237, + 238, 239, 239, 239, 239, 240, 240, 240, 241, 241, + 242, 243, 243, 244 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ -static const unsigned char yyr2[] = +static const yytype_uint8 yyr2[] = { 0, 2, 1, 1, 2, 0, 9, 0, 1, 3, 2, 1, 2, 1, 4, 1, 0, 1, 1, 2, @@ -892,99 +1029,100 @@ static const unsigned char yyr2[] = 3, 1, 0, 1, 3, 3, 2, 1, 3, 1, 3, 1, 3, 4, 1, 1, 4, 3, 3, 6, 6, 1, 3, 1, 3, 3, 3, 3, 1, 3, - 1, 1, 1, 1, 0, 1, 1, 3, 3, 2, - 3, 1, 1, 3, 2, 1, 1, 5, 0, 1, - 1, 3, 2, 4, 3, 3, 3, 3, 3, 0, - 1, 0, 6, 1, 2, 1, 1, 1, 3, 1, - 3, 3, 3, 0, 2, 1, 4, 4, 4, 6, - 6, 1, 4, 3, 1, 3, 3, 3, 1, 3, - 1, 3, 1, 1, 1, 1, 3, 3, 1, 4, - 1, 1, 3, 0, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 1, 1, 2, 1, - 1, 1, 1, 2, 2, 1, 1, 2, 2, 1, - 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 3, 5, 3, + 2, 3, 1, 1, 3, 2, 1, 1, 5, 0, + 1, 1, 3, 2, 4, 3, 3, 3, 3, 3, + 0, 1, 0, 6, 1, 2, 1, 1, 1, 3, + 1, 3, 3, 3, 0, 2, 1, 4, 4, 4, + 6, 6, 1, 4, 3, 1, 3, 3, 3, 1, + 3, 1, 3, 1, 1, 1, 1, 3, 3, 1, + 4, 1, 1, 3, 0, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 2, 2, 1, 1, 2, 2, + 1, 1, 1, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 1, 1, 4, - 3, 4, 1, 1, 3, 5, 1, 1, 3, 1, - 3, 1, 3, 1, 3, 4, 3, 1, 1, 3, - 3, 3, 3, 1, 1, 2, 2, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 5, - 1, 3, 1, 3, 0, 1, 1, 1, 1, 1, - 1, 1, 0, 5, 2, 1, 2, 2, 3, 1, - 1, 3, 4, 1, 3, 2, 3, 1, 3, 0, - 1, 1, 2, 2, 3, 1, 3, 1, 4, 4, - 1, 1, 1, 1, 1, 1, 0, 1, 2, 4, - 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, - 0, 1, 1 + 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, + 4, 3, 4, 1, 1, 3, 5, 1, 1, 3, + 1, 3, 1, 3, 1, 3, 4, 3, 1, 1, + 3, 3, 3, 3, 1, 1, 2, 2, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 5, 1, 3, 1, 3, 0, 1, 1, 1, 1, + 1, 1, 1, 0, 5, 2, 1, 2, 2, 3, + 1, 1, 3, 4, 1, 3, 2, 3, 1, 3, + 0, 1, 1, 2, 2, 3, 1, 3, 1, 4, + 4, 1, 1, 1, 1, 1, 1, 0, 1, 2, + 4, 0, 1, 1, 1, 0, 1, 1, 1, 1, + 1, 0, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state STATE-NUM when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ -static const unsigned short yydefact[] = +static const yytype_uint16 yydefact[] = { - 0, 307, 308, 0, 2, 3, 5, 1, 4, 7, - 0, 0, 8, 312, 15, 10, 0, 11, 13, 16, + 0, 308, 309, 0, 2, 3, 5, 1, 4, 7, + 0, 0, 8, 313, 15, 10, 0, 11, 13, 16, 9, 12, 0, 0, 0, 0, 0, 0, 0, 17, 18, 0, 24, 22, 20, 23, 21, 0, 19, 14, 52, 0, 0, 26, 36, 53, 0, 56, 0, 57, 59, 61, 6, 40, 0, 37, 55, 54, 0, 0, - 39, 0, 41, 42, 0, 47, 49, 51, 187, 0, - 188, 189, 190, 191, 192, 200, 193, 194, 195, 196, - 197, 198, 199, 27, 28, 32, 30, 31, 35, 0, - 296, 58, 60, 38, 43, 0, 0, 0, 33, 29, - 296, 134, 309, 0, 169, 0, 0, 183, 176, 180, - 182, 170, 0, 0, 171, 175, 179, 0, 0, 65, - 185, 172, 64, 181, 138, 300, 0, 123, 297, 304, - 44, 48, 50, 34, 0, 68, 67, 0, 184, 178, - 177, 174, 173, 0, 71, 0, 172, 73, 0, 296, - 0, 186, 0, 302, 303, 301, 0, 0, 0, 205, - 306, 305, 298, 45, 46, 0, 135, 137, 0, 0, - 0, 0, 0, 63, 158, 164, 159, 292, 293, 165, - 166, 156, 157, 83, 0, 78, 80, 81, 160, 161, - 82, 291, 283, 0, 285, 290, 287, 143, 144, 139, - 140, 142, 136, 0, 155, 153, 149, 150, 151, 0, - 162, 131, 0, 0, 205, 205, 125, 124, 0, 0, - 122, 206, 207, 208, 296, 296, 0, 100, 296, 72, - 77, 76, 75, 74, 245, 246, 295, 0, 0, 296, - 239, 238, 0, 0, 237, 240, 0, 212, 0, 0, - 242, 0, 213, 217, 219, 221, 223, 234, 0, 227, - 243, 228, 233, 216, 259, 261, 260, 269, 270, 294, - 241, 247, 244, 66, 296, 284, 0, 0, 0, 299, - 0, 0, 0, 0, 296, 0, 296, 0, 296, 0, - 0, 0, 0, 148, 145, 0, 281, 279, 279, 279, - 102, 280, 98, 279, 279, 109, 0, 70, 69, 0, - 0, 264, 265, 0, 0, 235, 236, 0, 0, 0, - 0, 62, 0, 201, 202, 0, 203, 204, 0, 0, - 0, 0, 0, 79, 286, 0, 0, 162, 141, 167, - 154, 163, 152, 0, 119, 0, 92, 95, 96, 296, - 133, 0, 0, 85, 86, 91, 279, 296, 310, 0, - 310, 0, 210, 0, 282, 107, 0, 106, 108, 99, - 279, 104, 105, 0, 97, 110, 101, 218, 262, 266, - 267, 232, 230, 248, 0, 271, 226, 214, 220, 222, - 224, 0, 231, 229, 0, 0, 273, 289, 288, 168, - 132, 0, 126, 296, 94, 296, 127, 296, 89, 279, - 296, 311, 128, 296, 209, 211, 146, 147, 103, 0, - 0, 268, 252, 0, 250, 205, 0, 225, 0, 275, - 277, 272, 0, 120, 121, 93, 90, 87, 88, 123, - 123, 111, 263, 249, 0, 254, 215, 276, 0, 274, - 129, 130, 0, 251, 257, 258, 256, 253, 255, 278, - 115, 116, 0, 0, 113, 117, 0, 112, 114, 118 + 39, 0, 41, 42, 0, 47, 49, 51, 188, 0, + 189, 190, 191, 192, 193, 201, 194, 195, 196, 197, + 198, 199, 200, 27, 28, 32, 30, 31, 35, 0, + 297, 58, 60, 38, 43, 0, 0, 0, 33, 29, + 297, 135, 310, 0, 170, 0, 0, 184, 177, 181, + 183, 171, 0, 0, 172, 176, 180, 0, 0, 65, + 186, 173, 64, 182, 139, 301, 0, 124, 298, 305, + 44, 48, 50, 34, 0, 68, 67, 0, 185, 179, + 178, 175, 174, 0, 71, 0, 173, 73, 0, 297, + 0, 187, 0, 303, 304, 302, 0, 0, 0, 206, + 307, 306, 299, 45, 46, 0, 136, 138, 0, 0, + 0, 0, 0, 63, 159, 165, 160, 293, 294, 166, + 167, 157, 158, 83, 0, 78, 80, 81, 161, 162, + 82, 292, 284, 0, 286, 291, 288, 144, 145, 140, + 141, 143, 137, 0, 156, 154, 150, 151, 152, 0, + 163, 132, 0, 0, 206, 206, 126, 125, 0, 0, + 123, 207, 208, 209, 297, 297, 0, 101, 297, 72, + 77, 76, 75, 74, 246, 247, 296, 0, 0, 297, + 240, 239, 0, 0, 238, 241, 0, 213, 0, 0, + 243, 0, 214, 218, 220, 222, 224, 235, 0, 228, + 244, 229, 234, 217, 260, 262, 261, 270, 271, 295, + 242, 248, 245, 66, 297, 285, 0, 0, 0, 300, + 0, 0, 0, 0, 297, 0, 297, 0, 297, 0, + 0, 0, 0, 149, 146, 0, 282, 280, 280, 280, + 103, 281, 99, 280, 280, 110, 0, 70, 69, 0, + 0, 265, 266, 0, 0, 236, 237, 0, 0, 0, + 0, 62, 0, 202, 203, 0, 204, 205, 0, 0, + 0, 0, 0, 79, 287, 0, 0, 163, 142, 168, + 155, 164, 153, 0, 120, 0, 93, 96, 97, 297, + 134, 0, 0, 85, 86, 92, 280, 297, 311, 0, + 311, 0, 211, 0, 283, 108, 0, 107, 109, 100, + 280, 105, 106, 0, 98, 111, 102, 219, 263, 267, + 268, 233, 231, 249, 0, 272, 227, 215, 221, 223, + 225, 0, 232, 230, 0, 0, 274, 290, 289, 169, + 133, 0, 127, 297, 95, 297, 128, 297, 90, 280, + 297, 312, 129, 297, 210, 212, 147, 148, 104, 0, + 0, 269, 253, 0, 251, 206, 0, 226, 0, 276, + 278, 273, 0, 121, 122, 94, 91, 297, 87, 89, + 124, 124, 112, 264, 250, 0, 255, 216, 277, 0, + 275, 0, 130, 131, 0, 252, 258, 259, 257, 254, + 256, 279, 88, 116, 117, 0, 0, 114, 118, 0, + 113, 115, 119 }; -/* YYDEFGOTO[NTERM-NUM]. */ -static const short yydefgoto[] = +/* YYDEFGOTO[NTERM-NUM]. */ +static const yytype_int16 yydefgoto[] = { -1, 3, 4, 5, 9, 11, 12, 16, 17, 28, 29, 30, 42, 43, 83, 84, 133, 54, 55, 61, 62, 164, 63, 64, 65, 44, 45, 48, 49, 183, 85, 118, 86, 143, 144, 184, 185, 352, 353, 354, - 345, 346, 135, 370, 226, 227, 374, 375, 452, 463, - 464, 355, 356, 158, 159, 217, 119, 199, 200, 465, + 345, 346, 135, 370, 226, 227, 374, 375, 454, 466, + 467, 355, 356, 158, 159, 217, 119, 199, 200, 468, 298, 299, 87, 206, 280, 207, 208, 250, 340, 120, 121, 122, 123, 325, 328, 220, 221, 222, 223, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 423, 424, 457, 458, 263, 264, 420, 265, 314, + 262, 423, 424, 459, 460, 263, 264, 420, 265, 314, 266, 267, 268, 395, 396, 429, 300, 301, 151, 193, 194, 269, 270, 127, 128, 129, 156, 162, 271, 124, 410, 272 @@ -992,328 +1130,313 @@ static const short yydefgoto[] = /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -287 -static const short yypact[] = +#define YYPACT_NINF -276 +static const yytype_int16 yypact[] = { - 80, -287, -287, 24, 80, -287, -287, -287, -287, -57, - 7, 17, -287, -287, -287, -287, 44, -287, -42, 240, - -287, -287, 77, 42, 61, 119, 107, 129, 168, 240, - -287, 114, -287, -287, -287, -287, -287, 205, -287, -287, - 82, 68, 190, -287, 178, -287, 140, -287, 98, -287, - 191, -287, -287, 198, 538, -287, -287, -287, 232, 184, - -287, 202, 232, -287, 69, -287, 209, -287, -287, 304, - -287, -287, -287, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, 538, -287, -287, -287, -287, -287, 274, - 207, -287, -287, -287, -287, 80, 232, 223, -287, -287, - 9, 218, -287, 255, -287, 261, 273, -287, -287, -287, - -287, -287, 295, 266, -287, -287, -287, 706, 351, 249, - -287, 250, -287, -287, 241, 79, 357, -287, -287, 186, - -57, -287, -287, -287, 253, -287, -287, 232, -287, -287, - -287, -287, -287, 145, -287, 251, -287, 252, 259, 101, - 16, -287, 291, -287, -287, -287, 353, 213, 630, -16, - -287, -287, -287, -287, -287, 243, -287, -287, 365, 706, - 232, 232, 413, -287, -287, -287, -287, -287, -287, -287, - -287, -287, -287, -287, 146, -287, -287, -287, -287, -287, - -287, -287, -287, 166, -287, -287, 265, -287, -287, 258, - -287, -287, -287, 262, -287, -287, -287, -287, -287, 263, - 269, 337, 271, 312, 85, 130, -287, -287, 270, 413, - -287, -287, -287, 276, 81, 48, 171, -287, 9, -287, - -287, -287, -287, -287, -287, -287, -287, 286, 358, 207, - -287, -287, -17, 23, -287, -287, 234, -287, 80, 413, - -287, 280, 277, 206, 210, -287, 293, -287, 282, -17, - -287, -287, -287, -287, -287, -287, -287, 287, -287, -287, - -287, -287, -287, -287, 101, -287, 71, 235, 307, -287, - 391, 389, 213, 369, 51, 315, 70, 327, 70, 328, - 413, 292, 413, -287, -287, 213, -287, -27, -19, -27, - -287, -287, 309, -19, -27, 305, 243, -287, -287, 564, - 296, -287, 288, 302, 192, -287, -287, 299, 303, 301, - 306, -287, 308, -287, -287, 564, -287, -287, 564, 564, - 413, 446, 294, -287, -287, 319, 320, -287, -287, -287, - 407, -287, -287, 389, 316, 182, -287, -287, -287, 207, - -287, 340, 323, 324, -287, -287, -27, 207, 389, 330, - 389, 325, -287, 329, -287, -287, 317, -287, -287, -287, - -27, -287, -287, 354, -287, -287, -287, -287, -287, -287, - 297, -287, -287, 276, 76, -287, -287, 331, 210, -287, - -287, 332, -287, -287, -1, 183, -287, -287, -287, -287, - -287, 235, -287, 51, -287, 207, -287, 6, -287, -27, - 207, -287, -287, 207, -287, -287, -287, -287, -287, 334, - 391, -287, -287, 185, -287, -16, 459, -287, 389, 333, - -287, -287, 294, -287, -287, -287, -287, -287, -287, -287, - -287, -287, 407, -287, 76, 161, -287, 333, 389, -287, - -287, -287, 57, -287, -287, -287, -287, -287, -287, -287, - -287, -287, 57, 19, -287, -287, 53, -287, -287, -287 + 223, -276, -276, 28, 223, -276, -276, -276, -276, -61, + 13, 25, -276, -276, -276, -276, 42, -276, -56, 229, + -276, -276, 90, 54, 32, 64, 129, 79, 193, 229, + -276, 104, -276, -276, -276, -276, -276, 197, -276, -276, + 133, 66, 185, -276, 191, -276, 144, -276, 154, -276, + 176, -276, -276, 196, 524, -276, -276, -276, 237, 149, + -276, 177, 237, -276, -26, -276, 189, -276, -276, 291, + -276, -276, -276, -276, -276, -276, -276, -276, -276, -276, + -276, -276, -276, 524, -276, -276, -276, -276, -276, 272, + 200, -276, -276, -276, -276, 223, 237, 209, -276, -276, + -18, 202, -276, 247, -276, 253, 269, -276, -276, -276, + -276, -276, 296, 261, -276, -276, -276, 692, 356, 255, + -276, 258, -276, -276, 243, 77, 372, -276, -276, 184, + -61, -276, -276, -276, 266, -276, -276, 237, -276, -276, + -276, -276, -276, -64, -276, 262, -276, 263, 267, 99, + 84, -276, 294, -276, -276, -276, 368, 211, 616, -57, + -276, -276, -276, -276, -276, 288, -276, -276, 378, 692, + 237, 237, 399, -276, -276, -276, -276, -276, -276, -276, + -276, -276, -276, -276, 150, -276, -276, -276, -276, -276, + -276, -276, -276, 169, -276, -276, 271, -276, -276, 265, + -276, -276, -276, 268, -276, -276, -276, -276, -276, 270, + 273, 345, 278, 317, 78, 124, -276, -276, 282, 399, + -276, -276, -276, 283, 219, 46, 181, -276, -18, -276, + -276, -276, -276, -276, -276, -276, -276, 293, 366, 200, + -276, -276, 63, 199, -276, -276, 295, -276, 223, 399, + -276, 289, 284, 218, 235, -276, 298, -276, 290, 63, + -276, -276, -276, -276, -276, -276, -276, 309, -276, -276, + -276, -276, -276, -276, 99, -276, 69, 233, 332, -276, + 396, 393, 211, 373, 49, 340, 8, 346, 8, 347, + 399, 307, 399, -276, -276, 211, -276, -8, 110, -8, + -276, -276, 329, 110, -8, 323, 288, -276, -276, 550, + 316, -276, 308, 320, 190, -276, -276, 318, 321, 322, + 319, -276, 325, -276, -276, 550, -276, -276, 550, 550, + 399, 432, 314, -276, -276, 336, 337, -276, -276, -276, + 457, -276, -276, 393, 349, 182, -276, -276, -276, 200, + -276, 390, 355, 357, -276, -276, -8, 200, 393, 359, + 393, 358, -276, 360, -276, -276, 341, -276, -276, -276, + -8, -276, -276, 385, -276, -276, -276, -276, -276, -276, + 354, -276, -276, 283, 74, -276, -276, 362, 235, -276, + -276, 365, -276, -276, 0, 183, -276, -276, -276, -276, + -276, 233, -276, 49, -276, 200, -276, 4, -276, -8, + 200, -276, -276, 200, -276, -276, -276, -276, -276, 369, + 396, -276, -276, 195, -276, -57, 445, -276, 393, 361, + -276, -276, 314, -276, -276, -276, -276, 68, -276, -276, + -276, -276, -276, 457, -276, 74, 159, -276, 361, 393, + -276, 11, -276, -276, 55, -276, -276, -276, -276, -276, + -276, -276, -276, -276, -276, 55, 17, -276, -276, 51, + -276, -276, -276 }; /* YYPGOTO[NTERM-NUM]. */ -static const short yypgoto[] = +static const yytype_int16 yypgoto[] = { - -287, -287, -287, 441, -287, -287, 318, -287, 430, -287, - -287, 418, -287, -287, -287, 378, -287, -287, -287, -287, - -287, -287, 400, -287, 380, -287, -287, -287, 419, 335, - -287, 322, -287, -287, 313, -287, 204, 196, -287, 78, - -287, 83, 264, -287, -287, 181, -287, -287, -287, 27, - -277, -270, -87, -287, -100, -287, 208, -287, 212, -148, - 272, 275, -287, -65, -287, -142, -265, -139, 74, -51, - 67, -287, -5, -287, -287, -213, -287, -287, 174, -199, - 73, -287, 170, 173, -165, -287, -287, -286, -287, -287, - -287, -287, 58, -287, -287, -287, -287, -287, -287, 244, - -287, -287, -287, -287, 75, 84, -264, -287, -287, -287, - 229, -128, -287, -222, -287, -287, -287, -287, 5, -287, - 148, -10 + -276, -276, -276, 476, -276, -276, 352, -276, 467, -276, + -276, 456, -276, -276, -276, 404, -276, -276, -276, -276, + -276, -276, 426, -276, 394, -276, -276, -276, 431, 343, + -276, 335, -276, -276, 326, -276, 220, 208, 65, 93, + -276, 100, 276, -276, -276, 201, -276, -276, -276, 40, + -275, -270, -87, -276, -74, -276, 221, -276, 232, -148, + 287, 292, -276, -166, -276, -142, -265, -139, 94, -91, + -75, -276, 15, -276, -276, -213, -276, -276, 198, -199, + 92, -276, 194, 188, -165, -276, -276, -227, -276, -276, + -276, -276, 75, -276, -276, -276, -276, -276, -276, 264, + -276, -276, -276, -276, 89, 96, -264, -276, -276, -276, + 250, -128, -276, -195, -276, -276, -276, -276, 5, -276, + 167, -10 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, parse error. */ -#define YYTABLE_NINF -280 -static const short yytable[] = + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -281 +static const yytype_int16 yytable[] = { - 18, 287, 289, 126, 201, 6, 18, 187, 13, 6, - 188, 295, 335, 136, 347, 13, 13, 14, 188, 295, - 291, 189, 195, 460, 7, 13, 177, 178, 382, 189, - 315, 51, 13, 365, 367, 368, 197, 198, 461, 371, - 372, 351, 134, 67, 90, 393, 50, 296, 51, 88, - 320, 10, 67, 13, 14, 296, 19, 460, 66, 89, - 13, 460, 186, 50, 293, 294, 145, 66, 22, 218, - 197, 198, 461, 90, 197, 198, 461, 13, 88, 13, - 13, 177, 178, 1, 2, 13, 67, 31, 89, 312, - 46, 361, 408, 363, 219, 1, 2, 293, 294, 366, - 130, 66, 313, 153, 32, 351, 418, 174, 175, 176, - 13, 177, 178, 344, 179, 180, 15, 428, 145, 295, - 95, 125, 147, 191, 125, 192, -25, 167, 467, 41, - 201, 391, 187, 347, 462, 188, 433, 297, 302, 190, - 196, 308, 166, 188, 377, 438, 189, 210, 195, 336, - 33, 181, 311, 20, 189, 296, 188, 202, 344, 154, - 231, 233, 209, 125, 390, 35, 125, 189, 462, 469, - 218, 37, 462, 155, 147, 230, 232, 344, 191, -84, - 47, 454, 96, 422, 146, 125, 468, 186, 439, 468, - -279, 440, 182, 286, -279, 219, 125, 348, 234, 175, - 235, 13, 177, 178, 236, 179, 180, 13, 34, 172, - 57, 58, 445, 1, 2, 218, 125, 342, 36, 174, - 175, 176, 13, 177, 178, 39, 179, 180, 1, 2, - 364, 40, 160, 316, 52, 455, 146, 53, 288, 456, - 219, 13, 240, 161, 13, 177, 178, 1, 2, 60, - 1, 2, 56, 319, 168, 273, 23, 381, 169, 274, - 224, 225, 404, 181, 190, 24, 196, 337, 317, 318, - 409, 341, 210, 434, 349, 275, 357, 100, 357, 276, - 305, 204, 209, 245, 306, 210, 25, 209, 26, 101, - 102, 402, 431, 92, 443, 403, 432, 27, 444, 59, - 209, 103, 68, 104, 182, 105, 1, 2, 197, 198, - 323, 324, 326, 327, 93, 106, 348, 97, 436, 107, - 98, 205, 125, 108, 197, 198, 109, 70, 71, 72, - 101, 102, 132, 400, 416, 417, 137, 110, 73, 450, - 451, 138, 111, 74, 112, 75, 113, 139, 411, 140, - 411, 141, 142, 76, 148, 114, 115, 149, 150, 152, - 157, 165, 77, 203, 78, 170, 171, 172, 228, 79, - 116, 80, 81, 82, 425, 277, 278, 283, 279, 284, - 290, 281, 117, 282, 430, 285, 292, 309, 310, 321, - 322, 337, 330, 349, 329, 332, 339, 357, 13, 343, - 358, 360, 369, 362, 378, 373, 209, 379, 380, 219, - 385, 384, 399, 405, 394, 387, 421, 386, 430, 234, - 175, 235, 13, 177, 178, 236, 179, 180, 1, 2, - 397, 398, 406, 401, 425, 237, 414, 407, 459, 412, - 415, 419, 441, 427, 426, 8, 21, 38, 163, 238, - 239, 448, 234, 175, 235, 13, 177, 178, 236, 179, - 180, 99, 94, 240, 241, 234, 175, 235, 13, 177, - 178, 236, 179, 180, 1, 2, 131, 91, 333, 242, - 216, 237, 229, 173, 359, 437, 435, 376, 243, 466, - 338, 383, 307, 350, 442, 388, 240, 303, 244, 446, - 304, 389, 453, 331, 245, 334, 0, 449, 413, 240, - 241, 392, 447, 246, 0, 0, 0, 0, 0, 0, - 247, 248, 0, 249, 0, 242, 0, 0, 0, 0, - 0, 0, 0, 0, 243, 0, 0, 245, 0, 0, - 0, 0, 0, 0, 244, 0, 0, 13, 0, 0, - 245, 0, 0, 1, 2, 0, 0, 0, 0, 246, - 0, 0, 0, 0, 0, 0, 68, 0, 0, 249, - 234, 175, 235, 13, 177, 178, 236, 179, 180, 1, - 2, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 70, 71, 72, 0, 0, 0, 0, 0, 0, - 0, 0, 73, 0, 0, 0, 0, 74, 0, 75, - 0, 0, 0, 0, 240, 241, 0, 76, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 78, 0, - 242, 0, 0, 79, 0, 80, 81, 82, 0, 243, - 0, 0, 0, 0, 0, 101, 102, 0, 0, 244, - 0, 0, 0, 211, 0, 245, 0, 103, 68, 104, - 0, 105, 212, 0, 246, 0, 0, 0, 0, 0, - 0, 106, 0, 0, 249, 107, 0, 0, 0, 108, - 0, 0, 109, 70, 71, 72, 0, 0, 0, 0, - 0, 213, 0, 110, 73, 0, 0, 0, 111, 74, - 112, 75, 113, 0, 0, 0, 0, 0, 0, 76, - 0, 114, 115, 214, 215, 0, 0, 0, 77, 0, - 78, 1, 2, 0, 0, 79, 116, 80, 81, 82, - 0, 0, 0, 103, 68, 104, 0, 105, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 106, 0, 0, - 0, 107, 0, 0, 0, 108, 0, 0, 109, 70, - 71, 72, 0, 0, 0, 0, 0, 0, 0, 110, - 73, 0, 0, 0, 111, 74, 112, 75, 113, 0, - 0, 0, 0, 0, 0, 76, 0, 114, 115, 0, - 0, 0, 0, 0, 77, 0, 78, 0, 0, 0, - 0, 79, 116, 80, 81, 82 + 18, 287, 289, 126, 201, 6, 18, 187, 437, 6, + 188, 13, 335, 136, 347, 13, 462, 134, 188, 13, + 291, 189, 195, 463, 13, 14, 145, 95, 7, 189, + 218, 51, 295, 365, 367, 368, 197, 198, 464, 371, + 372, 351, 146, 67, 90, 351, 50, 168, 51, 10, + 320, 169, 67, 13, 14, 219, 22, 463, 66, 89, + 13, 463, 186, 50, 293, 294, 19, 66, 296, 88, + 197, 198, 464, 90, 197, 198, 464, 13, 145, 13, + 13, 177, 178, 1, 2, 13, 67, 382, 89, 96, + 46, 361, 408, 363, 146, 13, 177, 178, 88, 125, + 130, 66, 31, 153, 393, 351, 418, 174, 175, 176, + 13, 177, 178, 344, 179, 180, 342, 344, 32, -84, + 428, 125, 147, 33, 15, 125, 407, 167, 470, 364, + 201, 391, 187, 347, 465, 188, 433, 297, 302, 190, + 196, 308, 166, 188, 377, 439, 189, 210, 195, 336, + 295, 181, 311, 20, 189, 34, 188, 202, 344, 154, + 231, 233, 209, 125, 390, 218, 125, 189, 465, 472, + 36, 312, 465, 155, 147, 230, 232, 344, 191, -25, + 47, 456, 41, 422, 313, 125, 296, 186, 286, 35, + 219, 471, 182, 191, 471, 192, 37, 348, 234, 175, + 235, 13, 177, 178, 236, 179, 180, 13, 315, 172, + 13, 218, 446, 1, 2, 440, 125, 39, 441, 174, + 175, 176, 13, 177, 178, 40, 179, 180, 1, 2, + 366, 52, 160, 316, 288, 457, 219, 293, 294, 458, + 1, 2, 240, 161, 13, 177, 178, 23, 13, 60, + 1, 2, 53, 319, 1, 2, 24, 381, 56, 295, + 92, 273, 404, 181, 190, 274, 196, 337, 57, 58, + 409, 341, 210, 434, 349, 100, 357, 25, 357, 26, + 275, 204, 209, 245, 276, 210, 59, 209, 27, 101, + 102, 93, 305, 402, 431, 296, 306, 403, 432, 97, + 209, 103, 68, 104, 182, 105, 444, 224, 225, 98, + 445, 1, 2, 197, 198, 106, 348, 125, 436, 107, + 132, 205, 137, 108, 323, 324, 109, 70, 71, 72, + -280, 317, 318, 400, -280, 138, 125, 110, 73, 326, + 327, 139, 111, 74, 112, 75, 113, 140, 411, 142, + 411, 197, 198, 76, 141, 114, 115, 101, 102, 148, + 416, 417, 77, 152, 78, 149, 452, 453, 150, 79, + 116, 80, 81, 82, 425, 157, 165, 172, 170, 171, + 203, 228, 117, 277, 430, 278, 279, 283, 284, 282, + 281, 337, 285, 349, 290, 292, 309, 357, 310, 322, + 321, 329, 330, 339, 13, 343, 209, 234, 175, 235, + 13, 177, 178, 236, 179, 180, 1, 2, 430, 332, + 362, 358, 360, 237, 369, 373, 378, 357, 380, 379, + 219, 384, 386, 385, 387, 425, 394, 238, 239, 461, + 234, 175, 235, 13, 177, 178, 236, 179, 180, 397, + 398, 240, 241, 234, 175, 235, 13, 177, 178, 236, + 179, 180, 1, 2, 399, 405, 406, 242, 401, 237, + 412, 414, 407, 415, 419, 421, 243, 426, 427, 442, + 8, 449, 163, 21, 240, 38, 244, 99, 94, 91, + 131, 173, 245, 216, 333, 229, 359, 240, 241, 392, + 438, 246, 451, 435, 307, 469, 350, 376, 247, 248, + 338, 249, 303, 242, 443, 383, 389, 304, 447, 388, + 455, 450, 243, 331, 448, 245, 334, 413, 0, 0, + 0, 0, 244, 0, 0, 13, 0, 0, 245, 0, + 0, 1, 2, 0, 0, 0, 0, 246, 0, 0, + 0, 0, 0, 0, 68, 0, 0, 249, 234, 175, + 235, 13, 177, 178, 236, 179, 180, 1, 2, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, + 71, 72, 0, 0, 0, 0, 0, 0, 0, 0, + 73, 0, 0, 0, 0, 74, 0, 75, 0, 0, + 0, 0, 240, 241, 0, 76, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 0, 78, 0, 242, 0, + 0, 79, 0, 80, 81, 82, 0, 243, 0, 0, + 0, 0, 0, 101, 102, 0, 0, 244, 0, 0, + 0, 211, 0, 245, 0, 103, 68, 104, 0, 105, + 212, 0, 246, 0, 0, 0, 0, 0, 0, 106, + 0, 0, 249, 107, 0, 0, 0, 108, 0, 0, + 109, 70, 71, 72, 0, 0, 0, 0, 0, 213, + 0, 110, 73, 0, 0, 0, 111, 74, 112, 75, + 113, 0, 0, 0, 0, 0, 0, 76, 0, 114, + 115, 214, 215, 0, 0, 0, 77, 0, 78, 1, + 2, 0, 0, 79, 116, 80, 81, 82, 0, 0, + 0, 103, 68, 104, 0, 105, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 106, 0, 0, 0, 107, + 0, 0, 0, 108, 0, 0, 109, 70, 71, 72, + 0, 0, 0, 0, 0, 0, 0, 110, 73, 0, + 0, 0, 111, 74, 112, 75, 113, 0, 0, 0, + 0, 0, 0, 76, 0, 114, 115, 0, 0, 0, + 0, 0, 77, 0, 78, 0, 0, 0, 0, 79, + 116, 80, 81, 82 }; -static const short yycheck[] = +static const yytype_int16 yycheck[] = { - 10, 214, 215, 90, 152, 0, 16, 149, 9, 4, - 149, 38, 277, 100, 284, 9, 9, 10, 157, 38, - 219, 149, 150, 4, 0, 9, 10, 11, 314, 157, - 7, 41, 9, 297, 298, 299, 17, 18, 19, 303, - 304, 35, 33, 53, 54, 331, 41, 74, 58, 54, - 249, 108, 62, 9, 10, 74, 39, 4, 53, 54, - 9, 4, 149, 58, 16, 17, 117, 62, 110, 85, - 17, 18, 19, 83, 17, 18, 19, 9, 83, 9, - 9, 10, 11, 15, 16, 9, 96, 10, 83, 106, - 22, 290, 356, 292, 110, 15, 16, 16, 17, 118, - 95, 96, 119, 24, 62, 35, 370, 6, 7, 8, - 9, 10, 11, 107, 13, 14, 109, 118, 169, 38, - 51, 115, 117, 107, 115, 109, 44, 137, 109, 47, - 278, 330, 274, 403, 115, 274, 401, 224, 225, 149, + 10, 214, 215, 90, 152, 0, 16, 149, 4, 4, + 149, 11, 277, 100, 284, 11, 5, 35, 157, 11, + 219, 149, 150, 6, 11, 12, 117, 53, 0, 157, + 87, 41, 40, 297, 298, 299, 19, 20, 21, 303, + 304, 37, 117, 53, 54, 37, 41, 111, 58, 110, + 249, 115, 62, 11, 12, 112, 112, 6, 53, 54, + 11, 6, 149, 58, 18, 19, 41, 62, 76, 54, + 19, 20, 21, 83, 19, 20, 21, 11, 169, 11, + 11, 12, 13, 17, 18, 11, 96, 314, 83, 115, + 24, 290, 356, 292, 169, 11, 12, 13, 83, 117, + 95, 96, 12, 26, 331, 37, 370, 8, 9, 10, + 11, 12, 13, 109, 15, 16, 282, 109, 64, 111, + 120, 117, 117, 91, 111, 117, 115, 137, 111, 295, + 278, 330, 274, 403, 117, 274, 401, 224, 225, 149, 150, 228, 137, 282, 309, 409, 274, 157, 276, 277, - 89, 50, 239, 109, 282, 74, 295, 152, 107, 80, - 170, 171, 157, 115, 329, 58, 115, 295, 115, 116, - 85, 3, 115, 94, 169, 170, 171, 107, 107, 109, - 112, 20, 113, 107, 117, 115, 463, 274, 410, 466, - 109, 413, 91, 108, 113, 110, 115, 284, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 9, 89, 108, - 112, 113, 425, 15, 16, 85, 115, 282, 89, 6, - 7, 8, 9, 10, 11, 111, 13, 14, 15, 16, - 295, 26, 46, 243, 44, 74, 169, 59, 108, 78, - 110, 9, 50, 57, 9, 10, 11, 15, 16, 51, - 15, 16, 112, 248, 109, 109, 16, 65, 113, 113, - 17, 18, 349, 50, 274, 25, 276, 277, 34, 35, - 357, 281, 282, 401, 284, 109, 286, 3, 288, 113, - 109, 68, 277, 91, 113, 295, 46, 282, 48, 15, - 16, 109, 109, 109, 109, 113, 113, 57, 113, 108, - 295, 27, 28, 29, 91, 31, 15, 16, 17, 18, - 104, 105, 102, 103, 112, 41, 403, 108, 405, 45, - 16, 108, 115, 49, 17, 18, 52, 53, 54, 55, - 15, 16, 109, 343, 17, 18, 118, 63, 64, 439, - 440, 86, 68, 69, 70, 71, 72, 86, 358, 76, - 360, 56, 86, 79, 3, 81, 82, 108, 108, 118, - 3, 108, 88, 10, 90, 114, 114, 108, 3, 95, - 96, 97, 98, 99, 384, 110, 118, 40, 116, 108, - 110, 118, 108, 114, 394, 73, 110, 101, 30, 109, - 113, 401, 110, 403, 101, 108, 5, 407, 9, 30, - 73, 73, 93, 111, 108, 100, 401, 119, 106, 110, - 109, 108, 5, 73, 120, 107, 119, 111, 428, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 111, 111, 109, 117, 444, 22, 111, 113, 448, 109, - 111, 87, 108, 111, 113, 4, 16, 29, 130, 36, - 37, 118, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 83, 62, 50, 51, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 96, 58, 274, 66, - 158, 22, 169, 148, 288, 407, 403, 306, 75, 462, - 278, 317, 228, 285, 420, 325, 50, 225, 85, 426, - 225, 328, 444, 259, 91, 276, -1, 432, 360, 50, - 51, 65, 428, 100, -1, -1, -1, -1, -1, -1, - 107, 108, -1, 110, -1, 66, -1, -1, -1, -1, - -1, -1, -1, -1, 75, -1, -1, 91, -1, -1, - -1, -1, -1, -1, 85, -1, -1, 9, -1, -1, - 91, -1, -1, 15, 16, -1, -1, -1, -1, 100, - -1, -1, -1, -1, -1, -1, 28, -1, -1, 110, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 43, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 53, 54, 55, -1, -1, -1, -1, -1, -1, - -1, -1, 64, -1, -1, -1, -1, 69, -1, 71, - -1, -1, -1, -1, 50, 51, -1, 79, -1, -1, - -1, -1, -1, -1, -1, -1, 88, -1, 90, -1, - 66, -1, -1, 95, -1, 97, 98, 99, -1, 75, - -1, -1, -1, -1, -1, 15, 16, -1, -1, 85, - -1, -1, -1, 23, -1, 91, -1, 27, 28, 29, - -1, 31, 32, -1, 100, -1, -1, -1, -1, -1, - -1, 41, -1, -1, 110, 45, -1, -1, -1, 49, - -1, -1, 52, 53, 54, 55, -1, -1, -1, -1, - -1, 61, -1, 63, 64, -1, -1, -1, 68, 69, - 70, 71, 72, -1, -1, -1, -1, -1, -1, 79, - -1, 81, 82, 83, 84, -1, -1, -1, 88, -1, - 90, 15, 16, -1, -1, 95, 96, 97, 98, 99, - -1, -1, -1, 27, 28, 29, -1, 31, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 41, -1, -1, - -1, 45, -1, -1, -1, 49, -1, -1, 52, 53, - 54, 55, -1, -1, -1, -1, -1, -1, -1, 63, - 64, -1, -1, -1, 68, 69, 70, 71, 72, -1, - -1, -1, -1, -1, -1, 79, -1, 81, 82, -1, - -1, -1, -1, -1, 88, -1, 90, -1, -1, -1, - -1, 95, 96, 97, 98, 99 + 40, 52, 239, 111, 282, 91, 295, 152, 109, 82, + 170, 171, 157, 117, 329, 87, 117, 295, 117, 118, + 91, 108, 117, 96, 169, 170, 171, 109, 109, 46, + 114, 22, 49, 109, 121, 117, 76, 274, 110, 60, + 112, 466, 93, 109, 469, 111, 3, 284, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 11, 9, 110, + 11, 87, 425, 17, 18, 410, 117, 113, 413, 8, + 9, 10, 11, 12, 13, 28, 15, 16, 17, 18, + 120, 46, 48, 243, 110, 76, 112, 18, 19, 80, + 17, 18, 52, 59, 11, 12, 13, 18, 11, 53, + 17, 18, 61, 248, 17, 18, 27, 67, 114, 40, + 111, 111, 349, 52, 274, 115, 276, 277, 114, 115, + 357, 281, 282, 401, 284, 3, 286, 48, 288, 50, + 111, 70, 277, 93, 115, 295, 110, 282, 59, 17, + 18, 114, 111, 111, 111, 76, 115, 115, 115, 110, + 295, 29, 30, 31, 93, 33, 111, 19, 20, 18, + 115, 17, 18, 19, 20, 43, 403, 117, 405, 47, + 111, 110, 120, 51, 106, 107, 54, 55, 56, 57, + 111, 36, 37, 343, 115, 88, 117, 65, 66, 104, + 105, 88, 70, 71, 72, 73, 74, 78, 358, 88, + 360, 19, 20, 81, 58, 83, 84, 17, 18, 3, + 19, 20, 90, 120, 92, 110, 440, 441, 110, 97, + 98, 99, 100, 101, 384, 3, 110, 110, 116, 116, + 12, 3, 110, 112, 394, 120, 118, 42, 110, 116, + 120, 401, 75, 403, 112, 112, 103, 407, 32, 115, + 111, 103, 112, 7, 11, 32, 401, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 428, 110, + 113, 75, 75, 24, 95, 102, 110, 437, 108, 121, + 112, 110, 113, 111, 109, 445, 122, 38, 39, 449, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 113, + 113, 52, 53, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 7, 75, 111, 68, 119, 24, + 111, 113, 115, 113, 89, 121, 77, 115, 113, 110, + 4, 120, 130, 16, 52, 29, 87, 83, 62, 58, + 96, 148, 93, 158, 274, 169, 288, 52, 53, 67, + 407, 102, 437, 403, 228, 465, 285, 306, 109, 110, + 278, 112, 225, 68, 420, 317, 328, 225, 426, 325, + 445, 432, 77, 259, 428, 93, 276, 360, -1, -1, + -1, -1, 87, -1, -1, 11, -1, -1, 93, -1, + -1, 17, 18, -1, -1, -1, -1, 102, -1, -1, + -1, -1, -1, -1, 30, -1, -1, 112, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 45, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 55, + 56, 57, -1, -1, -1, -1, -1, -1, -1, -1, + 66, -1, -1, -1, -1, 71, -1, 73, -1, -1, + -1, -1, 52, 53, -1, 81, -1, -1, -1, -1, + -1, -1, -1, -1, 90, -1, 92, -1, 68, -1, + -1, 97, -1, 99, 100, 101, -1, 77, -1, -1, + -1, -1, -1, 17, 18, -1, -1, 87, -1, -1, + -1, 25, -1, 93, -1, 29, 30, 31, -1, 33, + 34, -1, 102, -1, -1, -1, -1, -1, -1, 43, + -1, -1, 112, 47, -1, -1, -1, 51, -1, -1, + 54, 55, 56, 57, -1, -1, -1, -1, -1, 63, + -1, 65, 66, -1, -1, -1, 70, 71, 72, 73, + 74, -1, -1, -1, -1, -1, -1, 81, -1, 83, + 84, 85, 86, -1, -1, -1, 90, -1, 92, 17, + 18, -1, -1, 97, 98, 99, 100, 101, -1, -1, + -1, 29, 30, 31, -1, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, -1, -1, -1, 47, + -1, -1, -1, 51, -1, -1, 54, 55, 56, 57, + -1, -1, -1, -1, -1, -1, -1, 65, 66, -1, + -1, -1, 70, 71, 72, 73, 74, -1, -1, -1, + -1, -1, -1, 81, -1, 83, 84, -1, -1, -1, + -1, -1, 90, -1, 92, -1, -1, -1, -1, 97, + 98, 99, 100, 101 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const unsigned char yystos[] = +static const yytype_uint8 yystos[] = { - 0, 15, 16, 122, 123, 124, 239, 0, 124, 125, - 108, 126, 127, 9, 10, 109, 128, 129, 242, 39, - 109, 129, 110, 16, 25, 46, 48, 57, 130, 131, - 132, 10, 62, 89, 89, 58, 89, 3, 132, 111, - 26, 47, 133, 134, 146, 147, 22, 112, 148, 149, - 239, 242, 44, 59, 138, 139, 112, 112, 113, 108, - 51, 140, 141, 143, 144, 145, 239, 242, 28, 43, - 53, 54, 55, 64, 69, 71, 79, 88, 90, 95, - 97, 98, 99, 135, 136, 151, 153, 183, 193, 239, - 242, 149, 109, 112, 143, 51, 113, 108, 16, 136, - 3, 15, 16, 27, 29, 31, 41, 45, 49, 52, - 63, 68, 70, 72, 81, 82, 96, 108, 152, 177, - 190, 191, 192, 193, 240, 115, 173, 234, 235, 236, - 239, 145, 109, 137, 33, 163, 173, 118, 86, 86, - 76, 56, 86, 154, 155, 190, 191, 239, 3, 108, - 108, 229, 118, 24, 80, 94, 237, 3, 174, 175, - 46, 57, 238, 127, 142, 108, 239, 242, 109, 113, - 114, 114, 108, 150, 6, 7, 8, 10, 11, 13, - 14, 50, 91, 150, 156, 157, 173, 186, 188, 232, - 242, 107, 109, 230, 231, 232, 242, 17, 18, 178, - 179, 180, 239, 10, 68, 108, 184, 186, 187, 239, - 242, 23, 32, 61, 83, 84, 152, 176, 85, 110, - 196, 197, 198, 199, 17, 18, 165, 166, 3, 155, - 239, 242, 239, 242, 6, 8, 12, 22, 36, 37, - 50, 51, 66, 75, 85, 91, 100, 107, 108, 110, - 188, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 216, 217, 219, 221, 222, 223, 232, - 233, 239, 242, 109, 113, 109, 113, 110, 118, 116, - 185, 118, 114, 40, 108, 73, 108, 196, 108, 196, - 110, 200, 110, 16, 17, 38, 74, 173, 181, 182, - 227, 228, 173, 181, 182, 109, 113, 163, 173, 101, - 30, 173, 106, 119, 220, 7, 242, 34, 35, 239, - 200, 109, 113, 104, 105, 194, 102, 103, 195, 101, - 110, 220, 108, 157, 231, 187, 232, 242, 179, 5, - 189, 242, 184, 30, 107, 161, 162, 172, 173, 242, - 177, 35, 158, 159, 160, 172, 173, 242, 73, 158, - 73, 200, 111, 200, 184, 227, 118, 227, 227, 93, - 164, 227, 227, 100, 167, 168, 166, 205, 108, 119, - 106, 65, 208, 199, 108, 109, 111, 107, 203, 204, - 205, 200, 65, 208, 120, 224, 225, 111, 111, 5, - 242, 117, 109, 113, 173, 73, 109, 113, 227, 173, - 241, 242, 109, 241, 111, 111, 17, 18, 227, 87, - 218, 119, 107, 212, 213, 242, 113, 111, 118, 226, - 242, 109, 113, 187, 232, 162, 173, 160, 227, 234, - 234, 108, 189, 109, 113, 196, 201, 226, 118, 225, - 175, 175, 169, 213, 20, 74, 78, 214, 215, 242, - 4, 19, 115, 170, 171, 180, 170, 109, 171, 116 + 0, 17, 18, 124, 125, 126, 241, 0, 126, 127, + 110, 128, 129, 11, 12, 111, 130, 131, 244, 41, + 111, 131, 112, 18, 27, 48, 50, 59, 132, 133, + 134, 12, 64, 91, 91, 60, 91, 3, 134, 113, + 28, 49, 135, 136, 148, 149, 24, 114, 150, 151, + 241, 244, 46, 61, 140, 141, 114, 114, 115, 110, + 53, 142, 143, 145, 146, 147, 241, 244, 30, 45, + 55, 56, 57, 66, 71, 73, 81, 90, 92, 97, + 99, 100, 101, 137, 138, 153, 155, 185, 195, 241, + 244, 151, 111, 114, 145, 53, 115, 110, 18, 138, + 3, 17, 18, 29, 31, 33, 43, 47, 51, 54, + 65, 70, 72, 74, 83, 84, 98, 110, 154, 179, + 192, 193, 194, 195, 242, 117, 175, 236, 237, 238, + 241, 147, 111, 139, 35, 165, 175, 120, 88, 88, + 78, 58, 88, 156, 157, 192, 193, 241, 3, 110, + 110, 231, 120, 26, 82, 96, 239, 3, 176, 177, + 48, 59, 240, 129, 144, 110, 241, 244, 111, 115, + 116, 116, 110, 152, 8, 9, 10, 12, 13, 15, + 16, 52, 93, 152, 158, 159, 175, 188, 190, 234, + 244, 109, 111, 232, 233, 234, 244, 19, 20, 180, + 181, 182, 241, 12, 70, 110, 186, 188, 189, 241, + 244, 25, 34, 63, 85, 86, 154, 178, 87, 112, + 198, 199, 200, 201, 19, 20, 167, 168, 3, 157, + 241, 244, 241, 244, 8, 10, 14, 24, 38, 39, + 52, 53, 68, 77, 87, 93, 102, 109, 110, 112, + 190, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 218, 219, 221, 223, 224, 225, 234, + 235, 241, 244, 111, 115, 111, 115, 112, 120, 118, + 187, 120, 116, 42, 110, 75, 110, 198, 110, 198, + 112, 202, 112, 18, 19, 40, 76, 175, 183, 184, + 229, 230, 175, 183, 184, 111, 115, 165, 175, 103, + 32, 175, 108, 121, 222, 9, 244, 36, 37, 241, + 202, 111, 115, 106, 107, 196, 104, 105, 197, 103, + 112, 222, 110, 159, 233, 189, 234, 244, 181, 7, + 191, 244, 186, 32, 109, 163, 164, 174, 175, 244, + 179, 37, 160, 161, 162, 174, 175, 244, 75, 160, + 75, 202, 113, 202, 186, 229, 120, 229, 229, 95, + 166, 229, 229, 102, 169, 170, 168, 207, 110, 121, + 108, 67, 210, 201, 110, 111, 113, 109, 205, 206, + 207, 202, 67, 210, 122, 226, 227, 113, 113, 7, + 244, 119, 111, 115, 175, 75, 111, 115, 229, 175, + 243, 244, 111, 243, 113, 113, 19, 20, 229, 89, + 220, 121, 109, 214, 215, 244, 115, 113, 120, 228, + 244, 111, 115, 189, 234, 164, 175, 4, 162, 229, + 236, 236, 110, 191, 111, 115, 198, 203, 228, 120, + 227, 161, 177, 177, 171, 215, 22, 76, 80, 216, + 217, 244, 5, 6, 21, 117, 172, 173, 182, 172, + 111, 173, 118 }; -#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) -# define YYSIZE_T __SIZE_TYPE__ -#endif -#if ! defined (YYSIZE_T) && defined (size_t) -# define YYSIZE_T size_t -#endif -#if ! defined (YYSIZE_T) -# if defined (__STDC__) || defined (__cplusplus) -# include <stddef.h> /* INFRINGES ON USER NAME SPACE */ -# define YYSIZE_T size_t -# endif -#endif -#if ! defined (YYSIZE_T) -# define YYSIZE_T unsigned int -#endif - #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 +#define YYERROR goto yyerrorlab + /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. @@ -1329,34 +1452,71 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ + yytoken = YYTRANSLATE (yychar); \ + YYPOPSTACK (1); \ goto yybackup; \ } \ else \ - { \ - yyerror ("syntax error: cannot back up"); \ + { \ + yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ -while (0) +while (YYID (0)) + #define YYTERROR 1 #define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Compute the default location (before the actions - are run). */ +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) #ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - Current.first_line = Rhs[1].first_line; \ - Current.first_column = Rhs[1].first_column; \ - Current.last_line = Rhs[N].last_line; \ - Current.last_column = Rhs[N].last_column; +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (YYID (N)) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (YYID (0)) +#endif + + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif #endif + /* YYLEX -- calling `yylex' with the right arguments. */ -#define YYLEX yylex () +#ifdef YYLEX_PARAM +# define YYLEX yylex (YYLEX_PARAM) +#else +# define YYLEX yylex () +#endif /* Enable debugging if requested. */ #if YYDEBUG @@ -1370,20 +1530,155 @@ while (0) do { \ if (yydebug) \ YYFPRINTF Args; \ -} while (0) -# define YYDSYMPRINT(Args) \ -do { \ - if (yydebug) \ - yysymprint Args; \ -} while (0) +} while (YYID (0)) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yy_symbol_print (stderr, \ + Type, Value); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (YYID (0)) + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_value_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (!yyvaluep) + return; +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# else + YYUSE (yyoutput); +# endif + switch (yytype) + { + default: + break; + } +} + + +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +#else +static void +yy_symbol_print (yyoutput, yytype, yyvaluep) + FILE *yyoutput; + int yytype; + YYSTYPE const * const yyvaluep; +#endif +{ + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + yy_symbol_value_print (yyoutput, yytype, yyvaluep); + YYFPRINTF (yyoutput, ")"); +} + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) +#else +static void +yy_stack_print (bottom, top) + yytype_int16 *bottom; + yytype_int16 *top; +#endif +{ + YYFPRINTF (stderr, "Stack now"); + for (; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (YYID (0)) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +static void +yy_reduce_print (YYSTYPE *yyvsp, int yyrule) +#else +static void +yy_reduce_print (yyvsp, yyrule) + YYSTYPE *yyvsp; + int yyrule; +#endif +{ + int yynrhs = yyr2[yyrule]; + int yyi; + unsigned long int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + yyrule - 1, yylno); + /* The symbols being reduced. */ + for (yyi = 0; yyi < yynrhs; yyi++) + { + fprintf (stderr, " $%d = ", yyi + 1); + yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], + &(yyvsp[(yyi + 1) - (yynrhs)]) + ); + fprintf (stderr, "\n"); + } +} + +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (yyvsp, Rule); \ +} while (YYID (0)) + /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) -# define YYDSYMPRINT(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ + /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 @@ -1393,13 +1688,9 @@ int yydebug; if the built-in stack extension method is used). Do not make this value too large; the results are undefined if - SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) + YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if YYMAXDEPTH == 0 -# undef YYMAXDEPTH -#endif - #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif @@ -1409,45 +1700,47 @@ int yydebug; #if YYERROR_VERBOSE # ifndef yystrlen -# if defined (__GLIBC__) && defined (_STRING_H) +# if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static YYSIZE_T -# if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) -# else +#else +static YYSIZE_T yystrlen (yystr) - const char *yystr; -# endif + const char *yystr; +#endif { - register const char *yys = yystr; - - while (*yys++ != '\0') + YYSIZE_T yylen; + for (yylen = 0; yystr[yylen]; yylen++) continue; - - return yys - yystr - 1; + return yylen; } # endif # endif # ifndef yystpcpy -# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static char * -# if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) -# else +#else +static char * yystpcpy (yydest, yysrc) - char *yydest; - const char *yysrc; -# endif + char *yydest; + const char *yysrc; +#endif { - register char *yyd = yydest; - register const char *yys = yysrc; + char *yyd = yydest; + const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; @@ -1457,124 +1750,265 @@ yystpcpy (yydest, yysrc) # endif # endif -#endif /* !YYERROR_VERBOSE */ +# ifndef yytnamerr +/* Copy to YYRES the contents of YYSTR after stripping away unnecessary + quotes and backslashes, so that it's suitable for yyerror. The + heuristic is that double-quoting is unnecessary unless the string + contains an apostrophe, a comma, or backslash (other than + backslash-backslash). YYSTR is taken from yytname. If YYRES is + null, do not copy; instead, return the length of what the result + would have been. */ +static YYSIZE_T +yytnamerr (char *yyres, const char *yystr) +{ + if (*yystr == '"') + { + YYSIZE_T yyn = 0; + char const *yyp = yystr; + + for (;;) + switch (*++yyp) + { + case '\'': + case ',': + goto do_not_strip_quotes; + + case '\\': + if (*++yyp != '\\') + goto do_not_strip_quotes; + /* Fall through. */ + default: + if (yyres) + yyres[yyn] = *yyp; + yyn++; + break; + + case '"': + if (yyres) + yyres[yyn] = '\0'; + return yyn; + } + do_not_strip_quotes: ; + } - + if (! yyres) + return yystrlen (yystr); -#if YYDEBUG -/*-----------------------------. -| Print this symbol on YYOUT. | -`-----------------------------*/ + return yystpcpy (yyres, yystr) - yyres; +} +# endif -static void -#if defined (__STDC__) || defined (__cplusplus) -yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue) -#else -yysymprint (yyout, yytype, yyvalue) - FILE* yyout; - int yytype; - YYSTYPE yyvalue; -#endif +/* Copy into YYRESULT an error message about the unexpected token + YYCHAR while in state YYSTATE. Return the number of bytes copied, + including the terminating null byte. If YYRESULT is null, do not + copy anything; just return the number of bytes that would be + copied. As a special case, return 0 if an ordinary "syntax error" + message will do. Return YYSIZE_MAXIMUM if overflow occurs during + size calculation. */ +static YYSIZE_T +yysyntax_error (char *yyresult, int yystate, int yychar) { - /* Pacify ``unused variable'' warnings. */ - (void) yyvalue; + int yyn = yypact[yystate]; - if (yytype < YYNTOKENS) - { - YYFPRINTF (yyout, "token %s (", yytname[yytype]); -# ifdef YYPRINT - YYPRINT (yyout, yytoknum[yytype], yyvalue); -# endif - } + if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) + return 0; else - YYFPRINTF (yyout, "nterm %s (", yytname[yytype]); - - switch (yytype) { - default: - break; + int yytype = YYTRANSLATE (yychar); + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + int yysize_overflow = 0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + int yyx; + +# if 0 + /* This is so xgettext sees the translatable formats that are + constructed on the fly. */ + YY_("syntax error, unexpected %s"); + YY_("syntax error, unexpected %s, expecting %s"); + YY_("syntax error, unexpected %s, expecting %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s"); + YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); +# endif + char *yyfmt; + char const *yyf; + static char const yyunexpected[] = "syntax error, unexpected %s"; + static char const yyexpecting[] = ", expecting %s"; + static char const yyor[] = " or %s"; + char yyformat[sizeof yyunexpected + + sizeof yyexpecting - 1 + + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) + * (sizeof yyor - 1))]; + char const *yyprefix = yyexpecting; + + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 1; + + yyarg[0] = yytname[yytype]; + yyfmt = yystpcpy (yyformat, yyunexpected); + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + yyformat[sizeof yyunexpected - 1] = '\0'; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + yyfmt = yystpcpy (yyfmt, yyprefix); + yyprefix = yyor; + } + + yyf = YY_(yyformat); + yysize1 = yysize + yystrlen (yyf); + yysize_overflow |= (yysize1 < yysize); + yysize = yysize1; + + if (yysize_overflow) + return YYSIZE_MAXIMUM; + + if (yyresult) + { + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + char *yyp = yyresult; + int yyi = 0; + while ((*yyp = *yyf) != '\0') + { + if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyf += 2; + } + else + { + yyp++; + yyf++; + } + } + } + return yysize; } - YYFPRINTF (yyout, ")"); } -#endif /* YYDEBUG. */ - +#endif /* YYERROR_VERBOSE */ + /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ +/*ARGSUSED*/ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) static void -#if defined (__STDC__) || defined (__cplusplus) -yydestruct (int yytype, YYSTYPE yyvalue) +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) #else -yydestruct (yytype, yyvalue) +static void +yydestruct (yymsg, yytype, yyvaluep) + const char *yymsg; int yytype; - YYSTYPE yyvalue; + YYSTYPE *yyvaluep; #endif { - /* Pacify ``unused variable'' warnings. */ - (void) yyvalue; + YYUSE (yyvaluep); + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); switch (yytype) { + default: - break; + break; } } - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +/* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM -# if defined (__STDC__) || defined (__cplusplus) -# define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -# define YYPARSE_PARAM_DECL -# else -# define YYPARSE_PARAM_ARG YYPARSE_PARAM -# define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -# endif -#else /* !YYPARSE_PARAM */ -# define YYPARSE_PARAM_ARG -# define YYPARSE_PARAM_DECL -#endif /* !YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -# ifdef YYPARSE_PARAM -int yyparse (void *); -# else +#if defined __STDC__ || defined __cplusplus +int yyparse (void *YYPARSE_PARAM); +#else +int yyparse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus int yyparse (void); -# endif +#else +int yyparse (); #endif +#endif /* ! YYPARSE_PARAM */ -/* The lookahead symbol. */ + +/* The look-ahead symbol. */ int yychar; -/* The semantic value of the lookahead symbol. */ +/* The semantic value of the look-ahead symbol. */ YYSTYPE yylval; -/* Number of parse errors so far. */ +/* Number of syntax errors so far. */ int yynerrs; + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) int -yyparse (YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL +yyparse (void *YYPARSE_PARAM) +#else +int +yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +#endif +#else /* ! YYPARSE_PARAM */ +#if (defined __STDC__ || defined __C99__FUNC__ \ + || defined __cplusplus || defined _MSC_VER) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif { - register int yystate; - register int yyn; + int yystate; + int yyn; int yyresult; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; - /* Lookahead token as an internal (translated) token number. */ - int yychar1 = 0; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; +#if YYERROR_VERBOSE + /* Buffer for error messages, and its allocated size. */ + char yymsgbuf[128]; + char *yymsg = yymsgbuf; + YYSIZE_T yymsg_alloc = sizeof yymsgbuf; +#endif /* Three stacks and their tools: `yyss': related to states, @@ -1585,18 +2019,18 @@ yyparse (YYPARSE_PARAM_ARG) to reallocate them elsewhere. */ /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; + yytype_int16 yyssa[YYINITDEPTH]; + yytype_int16 *yyss = yyssa; + yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; - register YYSTYPE *yyvsp; + YYSTYPE *yyvsp; -#define YYPOPSTACK (yyvsp--, yyssp--) +#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) YYSIZE_T yystacksize = YYINITDEPTH; @@ -1605,9 +2039,9 @@ yyparse (YYPARSE_PARAM_ARG) YYSTYPE yyval; - /* When reducing, the number of symbols on the RHS of the reduced - rule. */ - int yylen; + /* The number of symbols on the RHS of the reduced rule. + Keep to zero when no symbol should be popped. */ + int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); @@ -1631,32 +2065,31 @@ yyparse (YYPARSE_PARAM_ARG) `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. - */ + have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { - /* Give user a chance to reallocate the stack. Use copies of + /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ - yyoverflow ("parser stack overflow", + yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), @@ -1667,21 +2100,21 @@ yyparse (YYPARSE_PARAM_ARG) } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE - goto yyoverflowlab; + goto yyexhaustedlab; # else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - goto yyoverflowlab; + if (YYMAXDEPTH <= yystacksize) + goto yyexhaustedlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { - short *yyss1 = yyss; + yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) - goto yyoverflowlab; + goto yyexhaustedlab; YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyvs); @@ -1699,7 +2132,7 @@ yyparse (YYPARSE_PARAM_ARG) YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } @@ -1712,51 +2145,38 @@ yyparse (YYPARSE_PARAM_ARG) `-----------*/ yybackup: -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ + /* Do appropriate processing given the current state. Read a + look-ahead token if we need one and don't already have one. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* Not known => get a look-ahead token if don't already have one. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with. */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more. */ - + yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE (yychar); - - /* We have to keep this `#if YYDEBUG', since we use variables - which are defined only if `YYDEBUG' is set. */ - YYDPRINTF ((stderr, "Next token is ")); - YYDSYMPRINT ((stderr, yychar1, yylval)); - YYDPRINTF ((stderr, "\n")); + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - /* If the proper action on seeing token YYCHAR1 is to reduce or to + /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ - yyn += yychar1; - if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1) + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) @@ -1770,23 +2190,21 @@ yybackup: if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ - YYDPRINTF ((stderr, "Shifting token %d (%s), ", - yychar, yytname[yychar1])); - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; - - /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); + + /* Discard the shifted token unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + yystate = yyn; + *++yyvsp = yylval; + goto yynewstate; @@ -1818,310 +2236,294 @@ yyreduce: yyval = yyvsp[1-yylen]; - -#if YYDEBUG - /* We have to keep this `#if YYDEBUG', since we use variables which - are defined only if `YYDEBUG' is set. */ - if (yydebug) - { - int yyi; - - YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", - yyn - 1, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++) - YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); - YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif + YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: -#line 356 "asn1p_y.y" +#line 357 "asn1p_y.y" { - *(void **)param = yyvsp[0].a_grammar; + *(void **)param = (yyvsp[(1) - (1)].a_grammar); } break; case 3: -#line 362 "asn1p_y.y" +#line 363 "asn1p_y.y" { - yyval.a_grammar = asn1p_new(); - checkmem(yyval.a_grammar); - TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); + (yyval.a_grammar) = asn1p_new(); + checkmem((yyval.a_grammar)); + TQ_ADD(&((yyval.a_grammar)->modules), (yyvsp[(1) - (1)].a_module), mod_next); } break; case 4: -#line 367 "asn1p_y.y" +#line 368 "asn1p_y.y" { - yyval.a_grammar = yyvsp[-1].a_grammar; - TQ_ADD(&(yyval.a_grammar->modules), yyvsp[0].a_module, mod_next); + (yyval.a_grammar) = (yyvsp[(1) - (2)].a_grammar); + TQ_ADD(&((yyval.a_grammar)->modules), (yyvsp[(2) - (2)].a_module), mod_next); } break; case 5: -#line 384 "asn1p_y.y" +#line 385 "asn1p_y.y" { currentModule = asn1p_module_new(); } break; case 6: -#line 389 "asn1p_y.y" +#line 390 "asn1p_y.y" { - yyval.a_module = currentModule; + (yyval.a_module) = currentModule; - if(yyvsp[-1].a_module) { - asn1p_module_t tmp = *(yyval.a_module); - *(yyval.a_module) = *(yyvsp[-1].a_module); - *(yyvsp[-1].a_module) = tmp; - asn1p_module_free(yyvsp[-1].a_module); + if((yyvsp[(8) - (9)].a_module)) { + asn1p_module_t tmp = *((yyval.a_module)); + *((yyval.a_module)) = *((yyvsp[(8) - (9)].a_module)); + *((yyvsp[(8) - (9)].a_module)) = tmp; + asn1p_module_free((yyvsp[(8) - (9)].a_module)); } else { /* There's a chance that a module is just plain empty */ } - yyval.a_module->ModuleName = yyvsp[-8].tv_str; - yyval.a_module->module_oid = yyvsp[-6].a_oid; - yyval.a_module->module_flags = yyvsp[-4].a_module_flags; + (yyval.a_module)->ModuleName = (yyvsp[(1) - (9)].tv_str); + (yyval.a_module)->module_oid = (yyvsp[(3) - (9)].a_oid); + (yyval.a_module)->module_flags = (yyvsp[(5) - (9)].a_module_flags); } break; case 7: -#line 413 "asn1p_y.y" - { yyval.a_oid = 0; } +#line 414 "asn1p_y.y" + { (yyval.a_oid) = 0; } break; case 8: -#line 414 "asn1p_y.y" - { yyval.a_oid = yyvsp[0].a_oid; } +#line 415 "asn1p_y.y" + { (yyval.a_oid) = (yyvsp[(1) - (1)].a_oid); } break; case 9: -#line 418 "asn1p_y.y" +#line 419 "asn1p_y.y" { - yyval.a_oid = yyvsp[-1].a_oid; + (yyval.a_oid) = (yyvsp[(2) - (3)].a_oid); } break; case 10: -#line 421 "asn1p_y.y" +#line 422 "asn1p_y.y" { - yyval.a_oid = 0; + (yyval.a_oid) = 0; } break; case 11: -#line 427 "asn1p_y.y" +#line 428 "asn1p_y.y" { - yyval.a_oid = asn1p_oid_new(); - asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); - if(yyvsp[0].a_oid_arc.name) - free(yyvsp[0].a_oid_arc.name); + (yyval.a_oid) = asn1p_oid_new(); + asn1p_oid_add_arc((yyval.a_oid), &(yyvsp[(1) - (1)].a_oid_arc)); + if((yyvsp[(1) - (1)].a_oid_arc).name) + free((yyvsp[(1) - (1)].a_oid_arc).name); } break; case 12: -#line 433 "asn1p_y.y" +#line 434 "asn1p_y.y" { - yyval.a_oid = yyvsp[-1].a_oid; - asn1p_oid_add_arc(yyval.a_oid, &yyvsp[0].a_oid_arc); - if(yyvsp[0].a_oid_arc.name) - free(yyvsp[0].a_oid_arc.name); + (yyval.a_oid) = (yyvsp[(1) - (2)].a_oid); + asn1p_oid_add_arc((yyval.a_oid), &(yyvsp[(2) - (2)].a_oid_arc)); + if((yyvsp[(2) - (2)].a_oid_arc).name) + free((yyvsp[(2) - (2)].a_oid_arc).name); } break; case 13: -#line 442 "asn1p_y.y" +#line 443 "asn1p_y.y" { /* iso */ - yyval.a_oid_arc.name = yyvsp[0].tv_str; - yyval.a_oid_arc.number = -1; + (yyval.a_oid_arc).name = (yyvsp[(1) - (1)].tv_str); + (yyval.a_oid_arc).number = -1; } break; case 14: -#line 446 "asn1p_y.y" +#line 447 "asn1p_y.y" { /* iso(1) */ - yyval.a_oid_arc.name = yyvsp[-3].tv_str; - yyval.a_oid_arc.number = yyvsp[-1].a_int; + (yyval.a_oid_arc).name = (yyvsp[(1) - (4)].tv_str); + (yyval.a_oid_arc).number = (yyvsp[(3) - (4)].a_int); } break; case 15: -#line 450 "asn1p_y.y" +#line 451 "asn1p_y.y" { /* 1 */ - yyval.a_oid_arc.name = 0; - yyval.a_oid_arc.number = yyvsp[0].a_int; + (yyval.a_oid_arc).name = 0; + (yyval.a_oid_arc).number = (yyvsp[(1) - (1)].a_int); } break; case 16: -#line 460 "asn1p_y.y" - { yyval.a_module_flags = MSF_NOFLAGS; } +#line 461 "asn1p_y.y" + { (yyval.a_module_flags) = MSF_NOFLAGS; } break; case 17: -#line 461 "asn1p_y.y" +#line 462 "asn1p_y.y" { - yyval.a_module_flags = yyvsp[0].a_module_flags; + (yyval.a_module_flags) = (yyvsp[(1) - (1)].a_module_flags); } break; case 18: -#line 470 "asn1p_y.y" +#line 471 "asn1p_y.y" { - yyval.a_module_flags = yyvsp[0].a_module_flags; + (yyval.a_module_flags) = (yyvsp[(1) - (1)].a_module_flags); } break; case 19: -#line 473 "asn1p_y.y" +#line 474 "asn1p_y.y" { - yyval.a_module_flags = yyvsp[-1].a_module_flags | yyvsp[0].a_module_flags; + (yyval.a_module_flags) = (yyvsp[(1) - (2)].a_module_flags) | (yyvsp[(2) - (2)].a_module_flags); } break; case 20: -#line 482 "asn1p_y.y" +#line 483 "asn1p_y.y" { - yyval.a_module_flags = MSF_EXPLICIT_TAGS; + (yyval.a_module_flags) = MSF_EXPLICIT_TAGS; } break; case 21: -#line 485 "asn1p_y.y" +#line 486 "asn1p_y.y" { - yyval.a_module_flags = MSF_IMPLICIT_TAGS; + (yyval.a_module_flags) = MSF_IMPLICIT_TAGS; } break; case 22: -#line 488 "asn1p_y.y" +#line 489 "asn1p_y.y" { - yyval.a_module_flags = MSF_AUTOMATIC_TAGS; + (yyval.a_module_flags) = MSF_AUTOMATIC_TAGS; } break; case 23: -#line 491 "asn1p_y.y" +#line 492 "asn1p_y.y" { - yyval.a_module_flags = MSF_EXTENSIBILITY_IMPLIED; + (yyval.a_module_flags) = MSF_EXTENSIBILITY_IMPLIED; } break; case 24: -#line 495 "asn1p_y.y" +#line 496 "asn1p_y.y" { /* X.680Amd1 specifies TAG and XER */ - if(strcmp(yyvsp[-1].tv_str, "TAG") == 0) { - yyval.a_module_flags = MSF_TAG_INSTRUCTIONS; - } else if(strcmp(yyvsp[-1].tv_str, "XER") == 0) { - yyval.a_module_flags = MSF_XER_INSTRUCTIONS; + if(strcmp((yyvsp[(1) - (2)].tv_str), "TAG") == 0) { + (yyval.a_module_flags) = MSF_TAG_INSTRUCTIONS; + } else if(strcmp((yyvsp[(1) - (2)].tv_str), "XER") == 0) { + (yyval.a_module_flags) = MSF_XER_INSTRUCTIONS; } else { fprintf(stderr, "WARNING: %s INSTRUCTIONS at line %d: " "Unrecognized encoding reference\n", - yyvsp[-1].tv_str, yylineno); - yyval.a_module_flags = MSF_unk_INSTRUCTIONS; + (yyvsp[(1) - (2)].tv_str), yylineno); + (yyval.a_module_flags) = MSF_unk_INSTRUCTIONS; } - free(yyvsp[-1].tv_str); + free((yyvsp[(1) - (2)].tv_str)); } break; case 25: -#line 516 "asn1p_y.y" - { yyval.a_module = 0; } +#line 517 "asn1p_y.y" + { (yyval.a_module) = 0; } break; case 26: -#line 517 "asn1p_y.y" +#line 518 "asn1p_y.y" { - yyval.a_module = yyvsp[0].a_module; + (yyval.a_module) = (yyvsp[(1) - (1)].a_module); } break; case 27: -#line 526 "asn1p_y.y" +#line 527 "asn1p_y.y" { - yyval.a_module = asn1p_module_new(); - AL_IMPORT(yyval.a_module, exports, yyvsp[-2].a_module, xp_next); - AL_IMPORT(yyval.a_module, imports, yyvsp[-1].a_module, xp_next); - AL_IMPORT(yyval.a_module, members, yyvsp[0].a_module, next); + (yyval.a_module) = asn1p_module_new(); + AL_IMPORT((yyval.a_module), exports, (yyvsp[(1) - (3)].a_module), xp_next); + AL_IMPORT((yyval.a_module), imports, (yyvsp[(2) - (3)].a_module), xp_next); + AL_IMPORT((yyval.a_module), members, (yyvsp[(3) - (3)].a_module), next); } break; case 28: -#line 535 "asn1p_y.y" +#line 536 "asn1p_y.y" { - yyval.a_module = yyvsp[0].a_module; + (yyval.a_module) = (yyvsp[(1) - (1)].a_module); } break; case 29: -#line 538 "asn1p_y.y" +#line 539 "asn1p_y.y" { - if(yyvsp[-1].a_module) { - yyval.a_module = yyvsp[-1].a_module; + if((yyvsp[(1) - (2)].a_module)) { + (yyval.a_module) = (yyvsp[(1) - (2)].a_module); } else { - yyval.a_module = yyvsp[0].a_module; + (yyval.a_module) = (yyvsp[(2) - (2)].a_module); break; } - AL_IMPORT(yyval.a_module, members, yyvsp[0].a_module, next); + AL_IMPORT((yyval.a_module), members, (yyvsp[(2) - (2)].a_module), next); } break; case 30: -#line 554 "asn1p_y.y" +#line 555 "asn1p_y.y" { - yyval.a_module = asn1p_module_new(); - checkmem(yyval.a_module); - assert(yyvsp[0].a_expr->expr_type != A1TC_INVALID); - assert(yyvsp[0].a_expr->meta_type != AMT_INVALID); - TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next); + (yyval.a_module) = asn1p_module_new(); + checkmem((yyval.a_module)); + assert((yyvsp[(1) - (1)].a_expr)->expr_type != A1TC_INVALID); + assert((yyvsp[(1) - (1)].a_expr)->meta_type != AMT_INVALID); + TQ_ADD(&((yyval.a_module)->members), (yyvsp[(1) - (1)].a_expr), next); } break; case 31: -#line 561 "asn1p_y.y" +#line 562 "asn1p_y.y" { - yyval.a_module = asn1p_module_new(); - checkmem(yyval.a_module); - assert(yyvsp[0].a_expr->expr_type != A1TC_INVALID); - assert(yyvsp[0].a_expr->meta_type != AMT_INVALID); - TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next); + (yyval.a_module) = asn1p_module_new(); + checkmem((yyval.a_module)); + assert((yyvsp[(1) - (1)].a_expr)->expr_type != A1TC_INVALID); + assert((yyvsp[(1) - (1)].a_expr)->meta_type != AMT_INVALID); + TQ_ADD(&((yyval.a_module)->members), (yyvsp[(1) - (1)].a_expr), next); } break; case 32: -#line 574 "asn1p_y.y" +#line 575 "asn1p_y.y" { - yyval.a_module = asn1p_module_new(); - checkmem(yyval.a_module); - assert(yyvsp[0].a_expr->expr_type != A1TC_INVALID); - assert(yyvsp[0].a_expr->meta_type != AMT_INVALID); - TQ_ADD(&(yyval.a_module->members), yyvsp[0].a_expr, next); + (yyval.a_module) = asn1p_module_new(); + checkmem((yyval.a_module)); + assert((yyvsp[(1) - (1)].a_expr)->expr_type != A1TC_INVALID); + assert((yyvsp[(1) - (1)].a_expr)->meta_type != AMT_INVALID); + TQ_ADD(&((yyval.a_module)->members), (yyvsp[(1) - (1)].a_expr), next); } break; case 33: -#line 582 "asn1p_y.y" +#line 583 "asn1p_y.y" { asn1p_lexer_hack_push_encoding_control(); } break; case 34: -#line 583 "asn1p_y.y" +#line 584 "asn1p_y.y" { fprintf(stderr, "WARNING: ENCODING-CONTROL %s " "specification at line %d ignored\n", - yyvsp[-1].tv_str, yylineno); - free(yyvsp[-1].tv_str); - yyval.a_module = 0; + (yyvsp[(2) - (3)].tv_str), yylineno); + free((yyvsp[(2) - (3)].tv_str)); + (yyval.a_module) = 0; } break; case 35: -#line 595 "asn1p_y.y" +#line 596 "asn1p_y.y" { return yyerror( "Attempt to redefine a standard basic string type, " @@ -2130,131 +2532,131 @@ yyreduce: break; case 36: -#line 608 "asn1p_y.y" - { yyval.a_module = 0; } +#line 609 "asn1p_y.y" + { (yyval.a_module) = 0; } break; case 38: -#line 612 "asn1p_y.y" +#line 613 "asn1p_y.y" { if(!saved_aid && 0) return yyerror("Unterminated IMPORTS FROM, " "expected semicolon ';'"); saved_aid = 0; - yyval.a_module = yyvsp[-1].a_module; + (yyval.a_module) = (yyvsp[(2) - (3)].a_module); } break; case 39: -#line 622 "asn1p_y.y" +#line 623 "asn1p_y.y" { return yyerror("Empty IMPORTS list"); } break; case 40: -#line 628 "asn1p_y.y" - { yyval.a_module = asn1p_module_new(); } +#line 629 "asn1p_y.y" + { (yyval.a_module) = asn1p_module_new(); } break; case 42: -#line 632 "asn1p_y.y" +#line 633 "asn1p_y.y" { - yyval.a_module = asn1p_module_new(); - checkmem(yyval.a_module); - TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); + (yyval.a_module) = asn1p_module_new(); + checkmem((yyval.a_module)); + TQ_ADD(&((yyval.a_module)->imports), (yyvsp[(1) - (1)].a_xports), xp_next); } break; case 43: -#line 637 "asn1p_y.y" +#line 638 "asn1p_y.y" { - yyval.a_module = yyvsp[-1].a_module; - TQ_ADD(&(yyval.a_module->imports), yyvsp[0].a_xports, xp_next); + (yyval.a_module) = (yyvsp[(1) - (2)].a_module); + TQ_ADD(&((yyval.a_module)->imports), (yyvsp[(2) - (2)].a_xports), xp_next); } break; case 44: -#line 644 "asn1p_y.y" - { memset(&yyval.a_aid, 0, sizeof(yyval.a_aid)); } +#line 645 "asn1p_y.y" + { memset(&(yyval.a_aid), 0, sizeof((yyval.a_aid))); } break; case 45: -#line 645 "asn1p_y.y" - { yyval.a_aid.oid = yyvsp[0].a_oid; } +#line 646 "asn1p_y.y" + { (yyval.a_aid).oid = (yyvsp[(1) - (1)].a_oid); } break; case 46: -#line 649 "asn1p_y.y" +#line 650 "asn1p_y.y" { - yyval.a_xports = yyvsp[-3].a_xports; - yyval.a_xports->fromModuleName = yyvsp[-1].tv_str; - yyval.a_xports->identifier = yyvsp[0].a_aid; + (yyval.a_xports) = (yyvsp[(1) - (4)].a_xports); + (yyval.a_xports)->fromModuleName = (yyvsp[(3) - (4)].tv_str); + (yyval.a_xports)->identifier = (yyvsp[(4) - (4)].a_aid); /* This stupid thing is used for look-back hack. */ - saved_aid = yyval.a_xports->identifier.oid ? 0 : &(yyval.a_xports->identifier); - checkmem(yyval.a_xports); + saved_aid = (yyval.a_xports)->identifier.oid ? 0 : &((yyval.a_xports)->identifier); + checkmem((yyval.a_xports)); } break; case 47: -#line 660 "asn1p_y.y" +#line 661 "asn1p_y.y" { - yyval.a_xports = asn1p_xports_new(); - checkmem(yyval.a_xports); - TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); + (yyval.a_xports) = asn1p_xports_new(); + checkmem((yyval.a_xports)); + TQ_ADD(&((yyval.a_xports)->members), (yyvsp[(1) - (1)].a_expr), next); } break; case 48: -#line 665 "asn1p_y.y" +#line 666 "asn1p_y.y" { - yyval.a_xports = yyvsp[-2].a_xports; - TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); + (yyval.a_xports) = (yyvsp[(1) - (3)].a_xports); + TQ_ADD(&((yyval.a_xports)->members), (yyvsp[(3) - (3)].a_expr), next); } break; case 49: -#line 672 "asn1p_y.y" +#line 673 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_REFERENCE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (1)].tv_str); + (yyval.a_expr)->expr_type = A1TC_REFERENCE; } break; case 50: -#line 678 "asn1p_y.y" +#line 679 "asn1p_y.y" { /* Completely equivalent to above */ - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->expr_type = A1TC_REFERENCE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->expr_type = A1TC_REFERENCE; } break; case 51: -#line 684 "asn1p_y.y" +#line 685 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_REFERENCE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (1)].tv_str); + (yyval.a_expr)->expr_type = A1TC_REFERENCE; } break; case 52: -#line 694 "asn1p_y.y" - { yyval.a_module = 0; } +#line 695 "asn1p_y.y" + { (yyval.a_module) = 0; } break; case 53: -#line 695 "asn1p_y.y" +#line 696 "asn1p_y.y" { - yyval.a_module = asn1p_module_new(); - checkmem(yyval.a_module); - if(yyvsp[0].a_xports) { - TQ_ADD(&(yyval.a_module->exports), yyvsp[0].a_xports, xp_next); + (yyval.a_module) = asn1p_module_new(); + checkmem((yyval.a_module)); + if((yyvsp[(1) - (1)].a_xports)) { + TQ_ADD(&((yyval.a_module)->exports), (yyvsp[(1) - (1)].a_xports), xp_next); } else { /* "EXPORTS ALL;" */ } @@ -2262,2147 +2664,2145 @@ yyreduce: break; case 54: -#line 707 "asn1p_y.y" +#line 708 "asn1p_y.y" { - yyval.a_xports = yyvsp[-1].a_xports; + (yyval.a_xports) = (yyvsp[(2) - (3)].a_xports); } break; case 55: -#line 710 "asn1p_y.y" +#line 711 "asn1p_y.y" { - yyval.a_xports = 0; + (yyval.a_xports) = 0; } break; case 56: -#line 713 "asn1p_y.y" +#line 714 "asn1p_y.y" { /* Empty EXPORTS clause effectively prohibits export. */ - yyval.a_xports = asn1p_xports_new(); - checkmem(yyval.a_xports); + (yyval.a_xports) = asn1p_xports_new(); + checkmem((yyval.a_xports)); } break; case 57: -#line 721 "asn1p_y.y" +#line 722 "asn1p_y.y" { - yyval.a_xports = asn1p_xports_new(); - assert(yyval.a_xports); - TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); + (yyval.a_xports) = asn1p_xports_new(); + assert((yyval.a_xports)); + TQ_ADD(&((yyval.a_xports)->members), (yyvsp[(1) - (1)].a_expr), next); } break; case 58: -#line 726 "asn1p_y.y" +#line 727 "asn1p_y.y" { - yyval.a_xports = yyvsp[-2].a_xports; - TQ_ADD(&(yyval.a_xports->members), yyvsp[0].a_expr, next); + (yyval.a_xports) = (yyvsp[(1) - (3)].a_xports); + TQ_ADD(&((yyval.a_xports)->members), (yyvsp[(3) - (3)].a_expr), next); } break; case 59: -#line 733 "asn1p_y.y" +#line 734 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_EXPORTVAR; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (1)].tv_str); + (yyval.a_expr)->expr_type = A1TC_EXPORTVAR; } break; case 60: -#line 739 "asn1p_y.y" +#line 740 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->expr_type = A1TC_EXPORTVAR; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->expr_type = A1TC_EXPORTVAR; } break; case 61: -#line 745 "asn1p_y.y" +#line 746 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_EXPORTVAR; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (1)].tv_str); + (yyval.a_expr)->expr_type = A1TC_EXPORTVAR; } break; case 62: -#line 754 "asn1p_y.y" - { yyval.a_constr = yyvsp[-1].a_constr; } +#line 755 "asn1p_y.y" + { (yyval.a_constr) = (yyvsp[(2) - (3)].a_constr); } break; case 63: -#line 757 "asn1p_y.y" +#line 758 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - assert(yyval.a_expr->Identifier == 0); - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->meta_type = AMT_VALUESET; - yyval.a_expr->constraints = yyvsp[0].a_constr; + (yyval.a_expr) = (yyvsp[(2) - (4)].a_expr); + assert((yyval.a_expr)->Identifier == 0); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (4)].tv_str); + (yyval.a_expr)->meta_type = AMT_VALUESET; + (yyval.a_expr)->constraints = (yyvsp[(4) - (4)].a_constr); } break; case 64: -#line 767 "asn1p_y.y" +#line 768 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; + (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); } break; case 65: -#line 780 "asn1p_y.y" +#line 781 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->reference = yyvsp[0].a_ref; - yyval.a_expr->expr_type = A1TC_REFERENCE; - yyval.a_expr->meta_type = AMT_TYPEREF; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->reference = (yyvsp[(1) - (1)].a_ref); + (yyval.a_expr)->expr_type = A1TC_REFERENCE; + (yyval.a_expr)->meta_type = AMT_TYPEREF; } break; case 66: -#line 790 "asn1p_y.y" +#line 791 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->reference = yyvsp[-3].a_ref; - yyval.a_expr->rhs_pspecs = yyvsp[-1].a_expr; - yyval.a_expr->expr_type = A1TC_REFERENCE; - yyval.a_expr->meta_type = AMT_TYPEREF; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->reference = (yyvsp[(1) - (4)].a_ref); + (yyval.a_expr)->rhs_pspecs = (yyvsp[(3) - (4)].a_expr); + (yyval.a_expr)->expr_type = A1TC_REFERENCE; + (yyval.a_expr)->meta_type = AMT_TYPEREF; } break; case 67: -#line 810 "asn1p_y.y" +#line 811 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - assert(yyval.a_expr->expr_type); - assert(yyval.a_expr->meta_type); + (yyval.a_expr) = (yyvsp[(3) - (3)].a_expr); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + assert((yyval.a_expr)->expr_type); + assert((yyval.a_expr)->meta_type); } break; case 68: -#line 816 "asn1p_y.y" +#line 817 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - assert(yyval.a_expr->expr_type == A1TC_CLASSDEF); - assert(yyval.a_expr->meta_type == AMT_OBJECTCLASS); + (yyval.a_expr) = (yyvsp[(3) - (3)].a_expr); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + assert((yyval.a_expr)->expr_type == A1TC_CLASSDEF); + assert((yyval.a_expr)->meta_type == AMT_OBJECTCLASS); } break; case 69: -#line 832 "asn1p_y.y" +#line 833 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->Identifier = yyvsp[-5].tv_str; - yyval.a_expr->lhs_params = yyvsp[-3].a_plist; + (yyval.a_expr) = (yyvsp[(6) - (6)].a_expr); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (6)].tv_str); + (yyval.a_expr)->lhs_params = (yyvsp[(3) - (6)].a_plist); } break; case 70: -#line 838 "asn1p_y.y" +#line 839 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->Identifier = yyvsp[-5].tv_str; - yyval.a_expr->lhs_params = yyvsp[-3].a_plist; + (yyval.a_expr) = (yyvsp[(6) - (6)].a_expr); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (6)].tv_str); + (yyval.a_expr)->lhs_params = (yyvsp[(3) - (6)].a_plist); } break; case 71: -#line 846 "asn1p_y.y" +#line 847 "asn1p_y.y" { int ret; - yyval.a_plist = asn1p_paramlist_new(yylineno); - checkmem(yyval.a_plist); - ret = asn1p_paramlist_add_param(yyval.a_plist, yyvsp[0].a_parg.governor, yyvsp[0].a_parg.argument); + (yyval.a_plist) = asn1p_paramlist_new(yylineno); + checkmem((yyval.a_plist)); + ret = asn1p_paramlist_add_param((yyval.a_plist), (yyvsp[(1) - (1)].a_parg).governor, (yyvsp[(1) - (1)].a_parg).argument); checkmem(ret == 0); - if(yyvsp[0].a_parg.governor) asn1p_ref_free(yyvsp[0].a_parg.governor); - if(yyvsp[0].a_parg.argument) free(yyvsp[0].a_parg.argument); + if((yyvsp[(1) - (1)].a_parg).governor) asn1p_ref_free((yyvsp[(1) - (1)].a_parg).governor); + if((yyvsp[(1) - (1)].a_parg).argument) free((yyvsp[(1) - (1)].a_parg).argument); } break; case 72: -#line 855 "asn1p_y.y" +#line 856 "asn1p_y.y" { int ret; - yyval.a_plist = yyvsp[-2].a_plist; - ret = asn1p_paramlist_add_param(yyval.a_plist, yyvsp[0].a_parg.governor, yyvsp[0].a_parg.argument); + (yyval.a_plist) = (yyvsp[(1) - (3)].a_plist); + ret = asn1p_paramlist_add_param((yyval.a_plist), (yyvsp[(3) - (3)].a_parg).governor, (yyvsp[(3) - (3)].a_parg).argument); checkmem(ret == 0); - if(yyvsp[0].a_parg.governor) asn1p_ref_free(yyvsp[0].a_parg.governor); - if(yyvsp[0].a_parg.argument) free(yyvsp[0].a_parg.argument); + if((yyvsp[(3) - (3)].a_parg).governor) asn1p_ref_free((yyvsp[(3) - (3)].a_parg).governor); + if((yyvsp[(3) - (3)].a_parg).argument) free((yyvsp[(3) - (3)].a_parg).argument); } break; case 73: -#line 866 "asn1p_y.y" +#line 867 "asn1p_y.y" { - yyval.a_parg.governor = NULL; - yyval.a_parg.argument = yyvsp[0].tv_str; + (yyval.a_parg).governor = NULL; + (yyval.a_parg).argument = (yyvsp[(1) - (1)].tv_str); } break; case 74: -#line 870 "asn1p_y.y" +#line 871 "asn1p_y.y" { int ret; - yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0); + (yyval.a_parg).governor = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_parg).governor, (yyvsp[(1) - (3)].tv_str), 0); checkmem(ret == 0); - yyval.a_parg.argument = yyvsp[0].tv_str; + (yyval.a_parg).argument = (yyvsp[(3) - (3)].tv_str); } break; case 75: -#line 877 "asn1p_y.y" +#line 878 "asn1p_y.y" { int ret; - yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, yyvsp[-2].tv_str, 0); + (yyval.a_parg).governor = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_parg).governor, (yyvsp[(1) - (3)].tv_str), 0); checkmem(ret == 0); - yyval.a_parg.argument = yyvsp[0].tv_str; + (yyval.a_parg).argument = (yyvsp[(3) - (3)].tv_str); } break; case 76: -#line 884 "asn1p_y.y" +#line 885 "asn1p_y.y" { int ret; - yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, - ASN_EXPR_TYPE2STR(yyvsp[-2].a_type), 1); + (yyval.a_parg).governor = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_parg).governor, + ASN_EXPR_TYPE2STR((yyvsp[(1) - (3)].a_type)), 1); checkmem(ret == 0); - yyval.a_parg.argument = yyvsp[0].tv_str; + (yyval.a_parg).argument = (yyvsp[(3) - (3)].tv_str); } break; case 77: -#line 892 "asn1p_y.y" +#line 893 "asn1p_y.y" { int ret; - yyval.a_parg.governor = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_parg.governor, - ASN_EXPR_TYPE2STR(yyvsp[-2].a_type), 1); + (yyval.a_parg).governor = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_parg).governor, + ASN_EXPR_TYPE2STR((yyvsp[(1) - (3)].a_type)), 1); checkmem(ret == 0); - yyval.a_parg.argument = yyvsp[0].tv_str; + (yyval.a_parg).argument = (yyvsp[(3) - (3)].tv_str); } break; case 78: -#line 903 "asn1p_y.y" +#line 904 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + asn1p_expr_add((yyval.a_expr), (yyvsp[(1) - (1)].a_expr)); } break; case 79: -#line 908 "asn1p_y.y" +#line 909 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = (yyvsp[(1) - (3)].a_expr); + asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr)); } break; case 80: -#line 915 "asn1p_y.y" +#line 916 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; + (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); } break; case 81: -#line 918 "asn1p_y.y" +#line 919 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = "?"; - yyval.a_expr->expr_type = A1TC_REFERENCE; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->value = yyvsp[0].a_value; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = "?"; + (yyval.a_expr)->expr_type = A1TC_REFERENCE; + (yyval.a_expr)->meta_type = AMT_VALUE; + (yyval.a_expr)->value = (yyvsp[(1) - (1)].a_value); } break; case 82: -#line 926 "asn1p_y.y" +#line 927 "asn1p_y.y" { asn1p_ref_t *ref; - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[0].tv_str; - yyval.a_expr->expr_type = A1TC_REFERENCE; - yyval.a_expr->meta_type = AMT_VALUE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (1)].tv_str); + (yyval.a_expr)->expr_type = A1TC_REFERENCE; + (yyval.a_expr)->meta_type = AMT_VALUE; ref = asn1p_ref_new(yylineno); - asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase); - yyval.a_expr->value = asn1p_value_fromref(ref, 0); + asn1p_ref_add_component(ref, (yyvsp[(1) - (1)].tv_str), RLT_lowercase); + (yyval.a_expr)->value = asn1p_value_fromref(ref, 0); } break; case 83: -#line 937 "asn1p_y.y" +#line 938 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - yyval.a_expr->expr_type = A1TC_VALUESET; - yyval.a_expr->meta_type = AMT_VALUESET; - yyval.a_expr->constraints = yyvsp[0].a_constr; + (yyval.a_expr) = NEW_EXPR(); + (yyval.a_expr)->expr_type = A1TC_VALUESET; + (yyval.a_expr)->meta_type = AMT_VALUESET; + (yyval.a_expr)->constraints = (yyvsp[(1) - (1)].a_constr); } break; case 84: -#line 960 "asn1p_y.y" - { yyval.a_expr = NEW_EXPR(); } +#line 961 "asn1p_y.y" + { (yyval.a_expr) = NEW_EXPR(); } break; case 85: -#line 961 "asn1p_y.y" - { yyval.a_expr = yyvsp[0].a_expr; } +#line 962 "asn1p_y.y" + { (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); } break; case 86: -#line 964 "asn1p_y.y" +#line 965 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + asn1p_expr_add((yyval.a_expr), (yyvsp[(1) - (1)].a_expr)); } break; case 87: -#line 969 "asn1p_y.y" +#line 970 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = (yyvsp[(1) - (3)].a_expr); + asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr)); } break; case 88: -#line 976 "asn1p_y.y" +#line 974 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; - assert(yyval.a_expr->Identifier == 0); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags; - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = (yyvsp[(1) - (5)].a_expr); + asn1p_expr_add_many((yyval.a_expr), (yyvsp[(4) - (5)].a_expr)); } break; case 89: -#line 983 "asn1p_y.y" +#line 981 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; - yyvsp[0].a_marker.flags |= yyval.a_expr->marker.flags; - yyval.a_expr->marker = yyvsp[0].a_marker; - _fixup_anonymous_identifier(yyval.a_expr); + (yyval.a_expr) = (yyvsp[(2) - (3)].a_expr); + assert((yyval.a_expr)->Identifier == 0); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyvsp[(3) - (3)].a_marker).flags |= (yyval.a_expr)->marker.flags; + (yyval.a_expr)->marker = (yyvsp[(3) - (3)].a_marker); } break; case 90: -#line 989 "asn1p_y.y" +#line 988 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->meta_type = yyvsp[0].a_expr->meta_type; - yyval.a_expr->expr_type = A1TC_COMPONENTS_OF; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = (yyvsp[(1) - (2)].a_expr); + (yyvsp[(2) - (2)].a_marker).flags |= (yyval.a_expr)->marker.flags; + (yyval.a_expr)->marker = (yyvsp[(2) - (2)].a_marker); + _fixup_anonymous_identifier((yyval.a_expr)); } break; case 91: -#line 996 "asn1p_y.y" +#line 994 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->meta_type = (yyvsp[(3) - (3)].a_expr)->meta_type; + (yyval.a_expr)->expr_type = A1TC_COMPONENTS_OF; + asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr)); } break; case 92: -#line 1002 "asn1p_y.y" +#line 1001 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); } break; case 93: #line 1007 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + asn1p_expr_add((yyval.a_expr), (yyvsp[(1) - (1)].a_expr)); } break; case 94: -#line 1014 "asn1p_y.y" +#line 1012 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - assert(yyval.a_expr->Identifier == 0); - yyval.a_expr->Identifier = yyvsp[-1].tv_str; + (yyval.a_expr) = (yyvsp[(1) - (3)].a_expr); + asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr)); } break; case 95: #line 1019 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; + (yyval.a_expr) = (yyvsp[(2) - (2)].a_expr); + assert((yyval.a_expr)->Identifier == 0); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (2)].tv_str); } break; case 96: -#line 1022 "asn1p_y.y" +#line 1024 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - _fixup_anonymous_identifier(yyval.a_expr); + (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); } break; case 97: -#line 1029 "asn1p_y.y" +#line 1027 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - checkmem(yyval.a_expr); - yyval.a_expr->with_syntax = yyvsp[0].a_wsynt; - assert(yyval.a_expr->expr_type == A1TC_CLASSDEF); - assert(yyval.a_expr->meta_type == AMT_OBJECTCLASS); + (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); + _fixup_anonymous_identifier((yyval.a_expr)); } break; case 98: -#line 1039 "asn1p_y.y" - { yyval.a_int = 0; } +#line 1034 "asn1p_y.y" + { + (yyval.a_expr) = (yyvsp[(3) - (5)].a_expr); + checkmem((yyval.a_expr)); + (yyval.a_expr)->with_syntax = (yyvsp[(5) - (5)].a_wsynt); + assert((yyval.a_expr)->expr_type == A1TC_CLASSDEF); + assert((yyval.a_expr)->meta_type == AMT_OBJECTCLASS); + } break; case 99: -#line 1040 "asn1p_y.y" - { yyval.a_int = 1; } +#line 1044 "asn1p_y.y" + { (yyval.a_int) = 0; } break; case 100: -#line 1044 "asn1p_y.y" - { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_CLASSDEF; - yyval.a_expr->meta_type = AMT_OBJECTCLASS; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); - } +#line 1045 "asn1p_y.y" + { (yyval.a_int) = 1; } break; case 101: -#line 1051 "asn1p_y.y" +#line 1049 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = A1TC_CLASSDEF; + (yyval.a_expr)->meta_type = AMT_OBJECTCLASS; + asn1p_expr_add((yyval.a_expr), (yyvsp[(1) - (1)].a_expr)); } break; case 102: -#line 1061 "asn1p_y.y" +#line 1056 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-1].tv_str; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_TFS; /* TypeFieldSpec */ - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = (yyvsp[(1) - (3)].a_expr); + asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr)); } break; case 103: -#line 1071 "asn1p_y.y" +#line 1066 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_FTVFS; /* FixedTypeValueFieldSpec */ - yyval.a_expr->unique = yyvsp[-1].a_int; - yyval.a_expr->marker = yyvsp[0].a_marker; - asn1p_expr_add(yyval.a_expr, yyvsp[-2].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (2)].tv_str); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_TFS; /* TypeFieldSpec */ + (yyval.a_expr)->marker = (yyvsp[(2) - (2)].a_marker); } break; case 104: -#line 1082 "asn1p_y.y" +#line 1076 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_VTVFS; - yyval.a_expr->reference = yyvsp[-1].a_ref; - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = NEW_EXPR(); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (4)].tv_str); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_FTVFS; /* FixedTypeValueFieldSpec */ + (yyval.a_expr)->unique = (yyvsp[(3) - (4)].a_int); + (yyval.a_expr)->marker = (yyvsp[(4) - (4)].a_marker); + asn1p_expr_add((yyval.a_expr), (yyvsp[(2) - (4)].a_expr)); } break; case 105: -#line 1092 "asn1p_y.y" +#line 1087 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->reference = yyvsp[-1].a_ref; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_OFS; - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = NEW_EXPR(); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_VTVFS; + (yyval.a_expr)->reference = (yyvsp[(2) - (3)].a_ref); + (yyval.a_expr)->marker = (yyvsp[(3) - (3)].a_marker); } break; case 106: -#line 1103 "asn1p_y.y" +#line 1097 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_VTVSFS; - yyval.a_expr->reference = yyvsp[-1].a_ref; - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->reference = (yyvsp[(2) - (3)].a_ref); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_OFS; + (yyval.a_expr)->marker = (yyvsp[(3) - (3)].a_marker); } break; case 107: -#line 1113 "asn1p_y.y" +#line 1108 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_FTVSFS; - asn1p_expr_add(yyval.a_expr, yyvsp[-1].a_expr); - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = NEW_EXPR(); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_VTVSFS; + (yyval.a_expr)->reference = (yyvsp[(2) - (3)].a_ref); + (yyval.a_expr)->marker = (yyvsp[(3) - (3)].a_marker); } break; case 108: -#line 1124 "asn1p_y.y" +#line 1118 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = yyvsp[-2].tv_str; - yyval.a_expr->reference = yyvsp[-1].a_ref; - yyval.a_expr->meta_type = AMT_OBJECTFIELD; - yyval.a_expr->expr_type = A1TC_CLASSFIELD_OSFS; - yyval.a_expr->marker = yyvsp[0].a_marker; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_FTVSFS; + asn1p_expr_add((yyval.a_expr), (yyvsp[(2) - (3)].a_expr)); + (yyval.a_expr)->marker = (yyvsp[(3) - (3)].a_marker); } break; case 109: -#line 1136 "asn1p_y.y" - { yyval.a_wsynt = 0; } +#line 1129 "asn1p_y.y" + { + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_expr)->reference = (yyvsp[(2) - (3)].a_ref); + (yyval.a_expr)->meta_type = AMT_OBJECTFIELD; + (yyval.a_expr)->expr_type = A1TC_CLASSFIELD_OSFS; + (yyval.a_expr)->marker = (yyvsp[(3) - (3)].a_marker); + } break; case 110: -#line 1137 "asn1p_y.y" - { - yyval.a_wsynt = yyvsp[0].a_wsynt; - } +#line 1141 "asn1p_y.y" + { (yyval.a_wsynt) = 0; } break; case 111: -#line 1144 "asn1p_y.y" - { asn1p_lexer_hack_enable_with_syntax(); } +#line 1142 "asn1p_y.y" + { + (yyval.a_wsynt) = (yyvsp[(1) - (1)].a_wsynt); + } break; case 112: -#line 1146 "asn1p_y.y" - { - yyval.a_wsynt = yyvsp[-1].a_wsynt; - } +#line 1149 "asn1p_y.y" + { asn1p_lexer_hack_enable_with_syntax(); } break; case 113: -#line 1152 "asn1p_y.y" +#line 1151 "asn1p_y.y" { - yyval.a_wsynt = asn1p_wsyntx_new(); - TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); + (yyval.a_wsynt) = (yyvsp[(5) - (6)].a_wsynt); } break; case 114: -#line 1156 "asn1p_y.y" +#line 1157 "asn1p_y.y" { - yyval.a_wsynt = yyvsp[-1].a_wsynt; - TQ_ADD(&(yyval.a_wsynt->chunks), yyvsp[0].a_wchunk, next); + (yyval.a_wsynt) = asn1p_wsyntx_new(); + TQ_ADD(&((yyval.a_wsynt)->chunks), (yyvsp[(1) - (1)].a_wchunk), next); } break; case 115: -#line 1163 "asn1p_y.y" +#line 1161 "asn1p_y.y" { - yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_opaque.buf, 0); - yyval.a_wchunk->type = WC_WHITESPACE; + (yyval.a_wsynt) = (yyvsp[(1) - (2)].a_wsynt); + TQ_ADD(&((yyval.a_wsynt)->chunks), (yyvsp[(2) - (2)].a_wchunk), next); } break; case 116: -#line 1167 "asn1p_y.y" +#line 1168 "asn1p_y.y" { - yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].tv_str, 0); + (yyval.a_wchunk) = asn1p_wsyntx_chunk_fromstring((yyvsp[(1) - (1)].tv_opaque).buf, 0); + (yyval.a_wchunk)->type = WC_WHITESPACE; } break; case 117: -#line 1170 "asn1p_y.y" +#line 1172 "asn1p_y.y" { - yyval.a_wchunk = asn1p_wsyntx_chunk_fromstring(yyvsp[0].a_refcomp.name, 0); - yyval.a_wchunk->type = WC_FIELD; + (yyval.a_wchunk) = asn1p_wsyntx_chunk_fromstring((yyvsp[(1) - (1)].tv_str), 0); } break; case 118: -#line 1174 "asn1p_y.y" +#line 1175 "asn1p_y.y" { - yyval.a_wchunk = asn1p_wsyntx_chunk_fromsyntax(yyvsp[-1].a_wsynt); + (yyval.a_wchunk) = asn1p_wsyntx_chunk_fromstring((yyvsp[(1) - (1)].a_refcomp).name, 0); + (yyval.a_wchunk)->type = WC_FIELD; } break; case 119: -#line 1180 "asn1p_y.y" +#line 1179 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = strdup("..."); - checkmem(yyval.a_expr->Identifier); - yyval.a_expr->expr_type = A1TC_EXTENSIBLE; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_wchunk) = asn1p_wsyntx_chunk_fromsyntax((yyvsp[(2) - (3)].a_wsynt)); } break; case 120: -#line 1188 "asn1p_y.y" +#line 1185 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = strdup("..."); - checkmem(yyval.a_expr->Identifier); - yyval.a_expr->value = yyvsp[0].a_value; - yyval.a_expr->expr_type = A1TC_EXTENSIBLE; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = strdup("..."); + checkmem((yyval.a_expr)->Identifier); + (yyval.a_expr)->expr_type = A1TC_EXTENSIBLE; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 121: -#line 1197 "asn1p_y.y" +#line 1193 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = strdup("..."); - yyval.a_expr->value = yyvsp[0].a_value; - checkmem(yyval.a_expr->Identifier); - yyval.a_expr->expr_type = A1TC_EXTENSIBLE; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = strdup("..."); + checkmem((yyval.a_expr)->Identifier); + (yyval.a_expr)->value = (yyvsp[(3) - (3)].a_value); + (yyval.a_expr)->expr_type = A1TC_EXTENSIBLE; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 122: -#line 1209 "asn1p_y.y" +#line 1202 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; - yyval.a_expr->tag = yyvsp[-2].a_tag; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = strdup("..."); + (yyval.a_expr)->value = (yyvsp[(3) - (3)].a_value); + checkmem((yyval.a_expr)->Identifier); + (yyval.a_expr)->expr_type = A1TC_EXTENSIBLE; + (yyval.a_expr)->meta_type = AMT_TYPE; + } + break; + + case 123: +#line 1214 "asn1p_y.y" + { + (yyval.a_expr) = (yyvsp[(2) - (3)].a_expr); + (yyval.a_expr)->tag = (yyvsp[(1) - (3)].a_tag); /* * Outer constraint for SEQUENCE OF and SET OF applies * to the inner type. */ - if(yyval.a_expr->expr_type == ASN_CONSTR_SEQUENCE_OF - || yyval.a_expr->expr_type == ASN_CONSTR_SET_OF) { - assert(!TQ_FIRST(&(yyval.a_expr->members))->constraints); - TQ_FIRST(&(yyval.a_expr->members))->constraints = yyvsp[0].a_constr; + if((yyval.a_expr)->expr_type == ASN_CONSTR_SEQUENCE_OF + || (yyval.a_expr)->expr_type == ASN_CONSTR_SET_OF) { + assert(!TQ_FIRST(&((yyval.a_expr)->members))->constraints); + TQ_FIRST(&((yyval.a_expr)->members))->constraints = (yyvsp[(3) - (3)].a_constr); } else { - if(yyval.a_expr->constraints) { - assert(!yyvsp[-1].a_expr); + if((yyval.a_expr)->constraints) { + assert(!(yyvsp[(2) - (3)].a_expr)); } else { - yyval.a_expr->constraints = yyvsp[0].a_constr; + (yyval.a_expr)->constraints = (yyvsp[(3) - (3)].a_constr); } } } break; - case 123: -#line 1231 "asn1p_y.y" + case 124: +#line 1236 "asn1p_y.y" { - yyval.a_int = asn1p_as_pointer ? EM_INDIRECT : 0; + (yyval.a_int) = asn1p_as_pointer ? EM_INDIRECT : 0; asn1p_as_pointer = 0; } break; - case 124: -#line 1238 "asn1p_y.y" + case 125: +#line 1243 "asn1p_y.y" { - yyval.a_expr = yyvsp[0].a_expr; - yyval.a_expr->marker.flags |= yyvsp[-1].a_int; + (yyval.a_expr) = (yyvsp[(2) - (2)].a_expr); + (yyval.a_expr)->marker.flags |= (yyvsp[(1) - (2)].a_int); - if((yyval.a_expr->marker.flags & EM_INDIRECT) - && (yyval.a_expr->marker.flags & EM_OPTIONAL) != EM_OPTIONAL) { + if(((yyval.a_expr)->marker.flags & EM_INDIRECT) + && ((yyval.a_expr)->marker.flags & EM_OPTIONAL) != EM_OPTIONAL) { fprintf(stderr, "INFO: Directive <ASN1C:RepresentAsPointer> " "applied to %s at line %d\n", - ASN_EXPR_TYPE2STR(yyval.a_expr->expr_type) - ? ASN_EXPR_TYPE2STR(yyval.a_expr->expr_type) + ASN_EXPR_TYPE2STR((yyval.a_expr)->expr_type) + ? ASN_EXPR_TYPE2STR((yyval.a_expr)->expr_type) : "member", - yyval.a_expr->_lineno + (yyval.a_expr)->_lineno ); } } break; - case 125: -#line 1257 "asn1p_y.y" - { - yyval.a_expr = yyvsp[0].a_expr; - } - break; - case 126: -#line 1260 "asn1p_y.y" +#line 1262 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; - assert(yyval.a_expr->expr_type == A1TC_INVALID); - yyval.a_expr->expr_type = ASN_CONSTR_CHOICE; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = (yyvsp[(1) - (1)].a_expr); } break; case 127: -#line 1266 "asn1p_y.y" +#line 1265 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; - assert(yyval.a_expr->expr_type == A1TC_INVALID); - yyval.a_expr->expr_type = ASN_CONSTR_SEQUENCE; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = (yyvsp[(3) - (4)].a_expr); + assert((yyval.a_expr)->expr_type == A1TC_INVALID); + (yyval.a_expr)->expr_type = ASN_CONSTR_CHOICE; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 128: -#line 1272 "asn1p_y.y" +#line 1271 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; - assert(yyval.a_expr->expr_type == A1TC_INVALID); - yyval.a_expr->expr_type = ASN_CONSTR_SET; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = (yyvsp[(3) - (4)].a_expr); + assert((yyval.a_expr)->expr_type == A1TC_INVALID); + (yyval.a_expr)->expr_type = ASN_CONSTR_SEQUENCE; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 129: -#line 1278 "asn1p_y.y" +#line 1277 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->constraints = yyvsp[-4].a_constr; - yyval.a_expr->expr_type = ASN_CONSTR_SEQUENCE_OF; - yyval.a_expr->meta_type = AMT_TYPE; - yyvsp[0].a_expr->Identifier = yyvsp[-2].tv_str; - yyvsp[0].a_expr->tag = yyvsp[-1].a_tag; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = (yyvsp[(3) - (4)].a_expr); + assert((yyval.a_expr)->expr_type == A1TC_INVALID); + (yyval.a_expr)->expr_type = ASN_CONSTR_SET; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 130: -#line 1288 "asn1p_y.y" +#line 1283 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->constraints = yyvsp[-4].a_constr; - yyval.a_expr->expr_type = ASN_CONSTR_SET_OF; - yyval.a_expr->meta_type = AMT_TYPE; - yyvsp[0].a_expr->Identifier = yyvsp[-2].tv_str; - yyvsp[0].a_expr->tag = yyvsp[-1].a_tag; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->constraints = (yyvsp[(2) - (6)].a_constr); + (yyval.a_expr)->expr_type = ASN_CONSTR_SEQUENCE_OF; + (yyval.a_expr)->meta_type = AMT_TYPE; + (yyvsp[(6) - (6)].a_expr)->Identifier = (yyvsp[(4) - (6)].tv_str); + (yyvsp[(6) - (6)].a_expr)->tag = (yyvsp[(5) - (6)].a_tag); + asn1p_expr_add((yyval.a_expr), (yyvsp[(6) - (6)].a_expr)); } break; case 131: -#line 1298 "asn1p_y.y" +#line 1293 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = ASN_TYPE_ANY; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->constraints = (yyvsp[(2) - (6)].a_constr); + (yyval.a_expr)->expr_type = ASN_CONSTR_SET_OF; + (yyval.a_expr)->meta_type = AMT_TYPE; + (yyvsp[(6) - (6)].a_expr)->Identifier = (yyvsp[(4) - (6)].tv_str); + (yyvsp[(6) - (6)].a_expr)->tag = (yyvsp[(5) - (6)].a_tag); + asn1p_expr_add((yyval.a_expr), (yyvsp[(6) - (6)].a_expr)); } break; case 132: -#line 1304 "asn1p_y.y" +#line 1303 "asn1p_y.y" { - int ret; - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->reference = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_expr->reference, - yyvsp[0].tv_str, RLT_lowercase); - checkmem(ret == 0); - yyval.a_expr->expr_type = ASN_TYPE_ANY; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = ASN_TYPE_ANY; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 133: -#line 1315 "asn1p_y.y" +#line 1309 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->reference = yyvsp[0].a_ref; - yyval.a_expr->expr_type = A1TC_INSTANCE; - yyval.a_expr->meta_type = AMT_TYPE; + int ret; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->reference = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_expr)->reference, + (yyvsp[(4) - (4)].tv_str), RLT_lowercase); + checkmem(ret == 0); + (yyval.a_expr)->expr_type = ASN_TYPE_ANY; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 134: -#line 1330 "asn1p_y.y" +#line 1320 "asn1p_y.y" { - int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - free(yyvsp[0].tv_str); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->reference = (yyvsp[(3) - (3)].a_ref); + (yyval.a_expr)->expr_type = A1TC_INSTANCE; + (yyval.a_expr)->meta_type = AMT_TYPE; } break; case 135: -#line 1338 "asn1p_y.y" +#line 1335 "asn1p_y.y" { int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); + (yyval.a_ref) = asn1p_ref_new(yylineno); + checkmem((yyval.a_ref)); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_UNKNOWN); checkmem(ret == 0); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - free(yyvsp[-2].tv_str); + free((yyvsp[(1) - (1)].tv_str)); } break; case 136: -#line 1348 "asn1p_y.y" +#line 1343 "asn1p_y.y" { int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); + (yyval.a_ref) = asn1p_ref_new(yylineno); + checkmem((yyval.a_ref)); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (3)].tv_str), RLT_UNKNOWN); checkmem(ret == 0); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_UNKNOWN); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_UNKNOWN); checkmem(ret == 0); - free(yyvsp[-2].tv_str); + free((yyvsp[(1) - (3)].tv_str)); } break; case 137: -#line 1358 "asn1p_y.y" +#line 1353 "asn1p_y.y" { int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_UNKNOWN); + (yyval.a_ref) = asn1p_ref_new(yylineno); + checkmem((yyval.a_ref)); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (3)].tv_str), RLT_UNKNOWN); checkmem(ret == 0); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_lowercase); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_UNKNOWN); checkmem(ret == 0); - free(yyvsp[-2].tv_str); + free((yyvsp[(1) - (3)].tv_str)); } break; case 138: -#line 1368 "asn1p_y.y" +#line 1363 "asn1p_y.y" { int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS); - free(yyvsp[0].tv_str); + (yyval.a_ref) = asn1p_ref_new(yylineno); + checkmem((yyval.a_ref)); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (3)].tv_str), RLT_UNKNOWN); + checkmem(ret == 0); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_lowercase); checkmem(ret == 0); + free((yyvsp[(1) - (3)].tv_str)); } break; case 139: -#line 1376 "asn1p_y.y" +#line 1373 "asn1p_y.y" { int ret; - yyval.a_ref = yyvsp[0].a_ref; - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[-2].tv_str, RLT_CAPITALS); - free(yyvsp[-2].tv_str); + (yyval.a_ref) = asn1p_ref_new(yylineno); + checkmem((yyval.a_ref)); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_CAPITALS); + free((yyvsp[(1) - (1)].tv_str)); checkmem(ret == 0); - /* - * Move the last element infront. - */ - { - struct asn1p_ref_component_s tmp_comp; - tmp_comp = yyval.a_ref->components[yyval.a_ref->comp_count-1]; - memmove(&yyval.a_ref->components[1], - &yyval.a_ref->components[0], - sizeof(yyval.a_ref->components[0]) - * (yyval.a_ref->comp_count - 1)); - yyval.a_ref->components[0] = tmp_comp; - } } break; case 140: -#line 1398 "asn1p_y.y" +#line 1381 "asn1p_y.y" { int ret; - yyval.a_ref = asn1p_ref_new(yylineno); - checkmem(yyval.a_ref); - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].a_refcomp.name, yyvsp[0].a_refcomp.lex_type); - free(yyvsp[0].a_refcomp.name); + (yyval.a_ref) = (yyvsp[(3) - (3)].a_ref); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (3)].tv_str), RLT_CAPITALS); + free((yyvsp[(1) - (3)].tv_str)); checkmem(ret == 0); + /* + * Move the last element infront. + */ + { + struct asn1p_ref_component_s tmp_comp; + tmp_comp = (yyval.a_ref)->components[(yyval.a_ref)->comp_count-1]; + memmove(&(yyval.a_ref)->components[1], + &(yyval.a_ref)->components[0], + sizeof((yyval.a_ref)->components[0]) + * ((yyval.a_ref)->comp_count - 1)); + (yyval.a_ref)->components[0] = tmp_comp; + } } break; case 141: -#line 1406 "asn1p_y.y" +#line 1403 "asn1p_y.y" { int ret; - yyval.a_ref = yyvsp[-2].a_ref; - ret = asn1p_ref_add_component(yyval.a_ref, yyvsp[0].a_refcomp.name, yyvsp[0].a_refcomp.lex_type); - free(yyvsp[0].a_refcomp.name); + (yyval.a_ref) = asn1p_ref_new(yylineno); + checkmem((yyval.a_ref)); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].a_refcomp).name, (yyvsp[(1) - (1)].a_refcomp).lex_type); + free((yyvsp[(1) - (1)].a_refcomp).name); checkmem(ret == 0); } break; - case 143: -#line 1419 "asn1p_y.y" + case 142: +#line 1411 "asn1p_y.y" { - yyval.a_refcomp.lex_type = RLT_AmpUppercase; - yyval.a_refcomp.name = yyvsp[0].tv_str; + int ret; + (yyval.a_ref) = (yyvsp[(1) - (3)].a_ref); + ret = asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].a_refcomp).name, (yyvsp[(3) - (3)].a_refcomp).lex_type); + free((yyvsp[(3) - (3)].a_refcomp).name); + checkmem(ret == 0); } break; case 144: #line 1424 "asn1p_y.y" { - yyval.a_refcomp.lex_type = RLT_Amplowercase; - yyval.a_refcomp.name = yyvsp[0].tv_str; + (yyval.a_refcomp).lex_type = RLT_AmpUppercase; + (yyval.a_refcomp).name = (yyvsp[(1) - (1)].tv_str); } break; case 145: -#line 1433 "asn1p_y.y" +#line 1429 "asn1p_y.y" { - yyval.a_ref = asn1p_ref_new(yylineno); - asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); + (yyval.a_refcomp).lex_type = RLT_Amplowercase; + (yyval.a_refcomp).name = (yyvsp[(1) - (1)].tv_str); } break; case 146: -#line 1437 "asn1p_y.y" +#line 1438 "asn1p_y.y" { - yyval.a_ref = yyval.a_ref; - asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_AmpUppercase); + (yyval.a_ref) = asn1p_ref_new(yylineno); + asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_AmpUppercase); } break; case 147: -#line 1441 "asn1p_y.y" +#line 1442 "asn1p_y.y" { - yyval.a_ref = yyval.a_ref; - asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_Amplowercase); + (yyval.a_ref) = (yyval.a_ref); + asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_AmpUppercase); } break; case 148: -#line 1448 "asn1p_y.y" +#line 1446 "asn1p_y.y" { - yyval.a_ref = asn1p_ref_new(yylineno); - asn1p_ref_add_component(yyval.a_ref, yyvsp[0].tv_str, RLT_CAPITALS); + (yyval.a_ref) = (yyval.a_ref); + asn1p_ref_add_component((yyval.a_ref), (yyvsp[(3) - (3)].tv_str), RLT_Amplowercase); } break; case 149: -#line 1468 "asn1p_y.y" +#line 1453 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - assert(yyval.a_expr->Identifier == NULL); - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->value = yyvsp[0].a_value; + (yyval.a_ref) = asn1p_ref_new(yylineno); + asn1p_ref_add_component((yyval.a_ref), (yyvsp[(1) - (1)].tv_str), RLT_CAPITALS); } break; - case 152: -#line 1480 "asn1p_y.y" + case 150: +#line 1473 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(0); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_CHOICE_IDENTIFIER; - yyval.a_value->value.choice_identifier.identifier = yyvsp[-2].tv_str; - yyval.a_value->value.choice_identifier.value = yyvsp[0].a_value; + (yyval.a_expr) = (yyvsp[(2) - (4)].a_expr); + assert((yyval.a_expr)->Identifier == NULL); + (yyval.a_expr)->Identifier = (yyvsp[(1) - (4)].tv_str); + (yyval.a_expr)->meta_type = AMT_VALUE; + (yyval.a_expr)->value = (yyvsp[(4) - (4)].a_value); } break; case 153: -#line 1487 "asn1p_y.y" - { asn1p_lexer_hack_push_opaque_state(); } +#line 1485 "asn1p_y.y" + { + (yyval.a_value) = asn1p_value_fromint(0); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_CHOICE_IDENTIFIER; + (yyval.a_value)->value.choice_identifier.identifier = (yyvsp[(1) - (3)].tv_str); + (yyval.a_value)->value.choice_identifier.value = (yyvsp[(3) - (3)].a_value); + } break; case 154: -#line 1487 "asn1p_y.y" - { - yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_UNPARSED; - } +#line 1492 "asn1p_y.y" + { asn1p_lexer_hack_push_opaque_state(); } break; case 155: #line 1492 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(0); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_NULL; + (yyval.a_value) = asn1p_value_frombuf((yyvsp[(3) - (3)].tv_opaque).buf, (yyvsp[(3) - (3)].tv_opaque).len, 0); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_UNPARSED; } break; case 156: -#line 1500 "asn1p_y.y" +#line 1497 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(0); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_FALSE; + (yyval.a_value) = asn1p_value_fromint(0); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_NULL; } break; case 157: #line 1505 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(0); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_TRUE; + (yyval.a_value) = asn1p_value_fromint(0); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_FALSE; } break; case 158: #line 1510 "asn1p_y.y" { - yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); - checkmem(yyval.a_value); + (yyval.a_value) = asn1p_value_fromint(0); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_TRUE; } break; case 159: -#line 1514 "asn1p_y.y" +#line 1515 "asn1p_y.y" { - yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); - checkmem(yyval.a_value); + (yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'B'); + checkmem((yyval.a_value)); } break; case 160: -#line 1518 "asn1p_y.y" +#line 1519 "asn1p_y.y" { - yyval.a_value = yyval.a_value; + (yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'H'); + checkmem((yyval.a_value)); } break; case 161: -#line 1521 "asn1p_y.y" +#line 1523 "asn1p_y.y" { - yyval.a_value = yyvsp[0].a_value; + (yyval.a_value) = (yyval.a_value); } break; case 162: -#line 1527 "asn1p_y.y" +#line 1526 "asn1p_y.y" { - asn1p_ref_t *ref; - int ret; - ref = asn1p_ref_new(yylineno); - checkmem(ref); - ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase); - checkmem(ret == 0); - yyval.a_value = asn1p_value_fromref(ref, 0); - checkmem(yyval.a_value); - free(yyvsp[0].tv_str); + (yyval.a_value) = (yyvsp[(1) - (1)].a_value); } break; case 163: -#line 1538 "asn1p_y.y" +#line 1532 "asn1p_y.y" { asn1p_ref_t *ref; int ret; ref = asn1p_ref_new(yylineno); checkmem(ref); - ret = asn1p_ref_add_component(ref, yyvsp[-2].tv_str, RLT_UNKNOWN); - checkmem(ret == 0); - ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase); + ret = asn1p_ref_add_component(ref, (yyvsp[(1) - (1)].tv_str), RLT_lowercase); checkmem(ret == 0); - yyval.a_value = asn1p_value_fromref(ref, 0); - checkmem(yyval.a_value); - free(yyvsp[-2].tv_str); - free(yyvsp[0].tv_str); + (yyval.a_value) = asn1p_value_fromref(ref, 0); + checkmem((yyval.a_value)); + free((yyvsp[(1) - (1)].tv_str)); } break; case 164: -#line 1556 "asn1p_y.y" +#line 1543 "asn1p_y.y" { - yyval.a_value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); - checkmem(yyval.a_value); + asn1p_ref_t *ref; + int ret; + ref = asn1p_ref_new(yylineno); + checkmem(ref); + ret = asn1p_ref_add_component(ref, (yyvsp[(1) - (3)].tv_str), RLT_UNKNOWN); + checkmem(ret == 0); + ret = asn1p_ref_add_component(ref, (yyvsp[(3) - (3)].tv_str), RLT_lowercase); + checkmem(ret == 0); + (yyval.a_value) = asn1p_value_fromref(ref, 0); + checkmem((yyval.a_value)); + free((yyvsp[(1) - (3)].tv_str)); + free((yyvsp[(3) - (3)].tv_str)); } break; case 165: -#line 1560 "asn1p_y.y" +#line 1561 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_TUPLE; + (yyval.a_value) = asn1p_value_frombuf((yyvsp[(1) - (1)].tv_opaque).buf, (yyvsp[(1) - (1)].tv_opaque).len, 0); + checkmem((yyval.a_value)); } break; case 166: #line 1565 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_QUADRUPLE; + (yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int)); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_TUPLE; } break; case 167: -#line 1573 "asn1p_y.y" +#line 1570 "asn1p_y.y" { - yyval.tv_opaque.len = yyvsp[0].tv_opaque.len + 1; - yyval.tv_opaque.buf = malloc(yyval.tv_opaque.len + 1); - checkmem(yyval.tv_opaque.buf); - yyval.tv_opaque.buf[0] = '{'; - memcpy(yyval.tv_opaque.buf + 1, yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len); - yyval.tv_opaque.buf[yyval.tv_opaque.len] = '\0'; - free(yyvsp[0].tv_opaque.buf); + (yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int)); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_QUADRUPLE; } break; case 168: -#line 1582 "asn1p_y.y" +#line 1578 "asn1p_y.y" { - int newsize = yyvsp[-1].tv_opaque.len + yyvsp[0].tv_opaque.len; - char *p = malloc(newsize + 1); - checkmem(p); - memcpy(p , yyvsp[-1].tv_opaque.buf, yyvsp[-1].tv_opaque.len); - memcpy(p + yyvsp[-1].tv_opaque.len, yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len); - p[newsize] = '\0'; - free(yyvsp[-1].tv_opaque.buf); - free(yyvsp[0].tv_opaque.buf); - yyval.tv_opaque.buf = p; - yyval.tv_opaque.len = newsize; + (yyval.tv_opaque).len = (yyvsp[(1) - (1)].tv_opaque).len + 1; + (yyval.tv_opaque).buf = malloc((yyval.tv_opaque).len + 1); + checkmem((yyval.tv_opaque).buf); + (yyval.tv_opaque).buf[0] = '{'; + memcpy((yyval.tv_opaque).buf + 1, (yyvsp[(1) - (1)].tv_opaque).buf, (yyvsp[(1) - (1)].tv_opaque).len); + (yyval.tv_opaque).buf[(yyval.tv_opaque).len] = '\0'; + free((yyvsp[(1) - (1)].tv_opaque).buf); } break; case 169: -#line 1597 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_BOOLEAN; } +#line 1587 "asn1p_y.y" + { + int newsize = (yyvsp[(1) - (2)].tv_opaque).len + (yyvsp[(2) - (2)].tv_opaque).len; + char *p = malloc(newsize + 1); + checkmem(p); + memcpy(p , (yyvsp[(1) - (2)].tv_opaque).buf, (yyvsp[(1) - (2)].tv_opaque).len); + memcpy(p + (yyvsp[(1) - (2)].tv_opaque).len, (yyvsp[(2) - (2)].tv_opaque).buf, (yyvsp[(2) - (2)].tv_opaque).len); + p[newsize] = '\0'; + free((yyvsp[(1) - (2)].tv_opaque).buf); + free((yyvsp[(2) - (2)].tv_opaque).buf); + (yyval.tv_opaque).buf = p; + (yyval.tv_opaque).len = newsize; + } break; case 170: -#line 1598 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_NULL; } +#line 1602 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_BOOLEAN; } break; case 171: -#line 1599 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_REAL; } +#line 1603 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_NULL; } break; case 172: -#line 1600 "asn1p_y.y" - { yyval.a_type = yyvsp[0].a_type; } +#line 1604 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_REAL; } break; case 173: -#line 1601 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_OCTET_STRING; } +#line 1605 "asn1p_y.y" + { (yyval.a_type) = (yyvsp[(1) - (1)].a_type); } break; case 174: -#line 1602 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_OBJECT_IDENTIFIER; } +#line 1606 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_OCTET_STRING; } break; case 175: -#line 1603 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_RELATIVE_OID; } +#line 1607 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_OBJECT_IDENTIFIER; } break; case 176: -#line 1604 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_EXTERNAL; } +#line 1608 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_RELATIVE_OID; } break; case 177: -#line 1605 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_EMBEDDED_PDV; } +#line 1609 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_EXTERNAL; } break; case 178: -#line 1606 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_CHARACTER_STRING; } +#line 1610 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_EMBEDDED_PDV; } break; case 179: -#line 1607 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_UTCTime; } +#line 1611 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_CHARACTER_STRING; } break; case 180: -#line 1608 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_GeneralizedTime; } +#line 1612 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_UTCTime; } break; case 181: -#line 1609 "asn1p_y.y" - { yyval.a_type = yyvsp[0].a_type; } +#line 1613 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_GeneralizedTime; } break; case 182: -#line 1616 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_INTEGER; } +#line 1614 "asn1p_y.y" + { (yyval.a_type) = (yyvsp[(1) - (1)].a_type); } break; case 183: -#line 1617 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_ENUMERATED; } +#line 1621 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_INTEGER; } break; case 184: -#line 1618 "asn1p_y.y" - { yyval.a_type = ASN_BASIC_BIT_STRING; } +#line 1622 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_ENUMERATED; } break; case 185: -#line 1622 "asn1p_y.y" +#line 1623 "asn1p_y.y" + { (yyval.a_type) = ASN_BASIC_BIT_STRING; } + break; + + case 186: +#line 1627 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = yyvsp[0].a_type; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = (yyvsp[(1) - (1)].a_type); + (yyval.a_expr)->meta_type = AMT_TYPE; } break; - case 186: -#line 1628 "asn1p_y.y" + case 187: +#line 1633 "asn1p_y.y" { - if(yyvsp[0].a_expr) { - yyval.a_expr = yyvsp[0].a_expr; + if((yyvsp[(2) - (2)].a_expr)) { + (yyval.a_expr) = (yyvsp[(2) - (2)].a_expr); } else { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); } - yyval.a_expr->expr_type = yyvsp[-1].a_type; - yyval.a_expr->meta_type = AMT_TYPE; + (yyval.a_expr)->expr_type = (yyvsp[(1) - (2)].a_type); + (yyval.a_expr)->meta_type = AMT_TYPE; } break; - case 187: -#line 1641 "asn1p_y.y" - { yyval.a_type = ASN_STRING_BMPString; } + case 188: +#line 1646 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_BMPString; } break; - case 188: -#line 1642 "asn1p_y.y" + case 189: +#line 1647 "asn1p_y.y" { - yyval.a_type = ASN_STRING_GeneralString; + (yyval.a_type) = ASN_STRING_GeneralString; fprintf(stderr, "WARNING: GeneralString is not fully supported\n"); } break; - case 189: -#line 1646 "asn1p_y.y" + case 190: +#line 1651 "asn1p_y.y" { - yyval.a_type = ASN_STRING_GraphicString; + (yyval.a_type) = ASN_STRING_GraphicString; fprintf(stderr, "WARNING: GraphicString is not fully supported\n"); } break; - case 190: -#line 1650 "asn1p_y.y" - { yyval.a_type = ASN_STRING_IA5String; } - break; - case 191: -#line 1651 "asn1p_y.y" - { yyval.a_type = ASN_STRING_ISO646String; } +#line 1655 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_IA5String; } break; case 192: -#line 1652 "asn1p_y.y" - { yyval.a_type = ASN_STRING_NumericString; } +#line 1656 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_ISO646String; } break; case 193: -#line 1653 "asn1p_y.y" - { yyval.a_type = ASN_STRING_PrintableString; } +#line 1657 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_NumericString; } break; case 194: -#line 1654 "asn1p_y.y" - { - yyval.a_type = ASN_STRING_T61String; - fprintf(stderr, "WARNING: T61String is not fully supported\n"); - } +#line 1658 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_PrintableString; } break; case 195: -#line 1658 "asn1p_y.y" - { yyval.a_type = ASN_STRING_TeletexString; } +#line 1659 "asn1p_y.y" + { + (yyval.a_type) = ASN_STRING_T61String; + fprintf(stderr, "WARNING: T61String is not fully supported\n"); + } break; case 196: -#line 1659 "asn1p_y.y" - { yyval.a_type = ASN_STRING_UniversalString; } +#line 1663 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_TeletexString; } break; case 197: -#line 1660 "asn1p_y.y" - { yyval.a_type = ASN_STRING_UTF8String; } +#line 1664 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_UniversalString; } break; case 198: -#line 1661 "asn1p_y.y" - { - yyval.a_type = ASN_STRING_VideotexString; - fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); - } +#line 1665 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_UTF8String; } break; case 199: -#line 1665 "asn1p_y.y" - { yyval.a_type = ASN_STRING_VisibleString; } +#line 1666 "asn1p_y.y" + { + (yyval.a_type) = ASN_STRING_VideotexString; + fprintf(stderr, "WARNING: VideotexString is not fully supported\n"); + } break; case 200: -#line 1666 "asn1p_y.y" - { yyval.a_type = ASN_STRING_ObjectDescriptor; } +#line 1670 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_VisibleString; } break; - case 205: -#line 1677 "asn1p_y.y" - { yyval.a_constr = 0; } + case 201: +#line 1671 "asn1p_y.y" + { (yyval.a_type) = ASN_STRING_ObjectDescriptor; } break; case 206: -#line 1678 "asn1p_y.y" - { - yyval.a_constr = yyvsp[0].a_constr; - } +#line 1682 "asn1p_y.y" + { (yyval.a_constr) = 0; } break; - case 208: -#line 1688 "asn1p_y.y" + case 207: +#line 1683 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[0].a_constr, 0); + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; case 209: -#line 1691 "asn1p_y.y" +#line 1693 "asn1p_y.y" { - /* - * This is a special case, for compatibility purposes. - * It goes without parentheses. - */ - CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_SIZE, yyvsp[-1].a_constr, 0); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_SET, (yyvsp[(1) - (1)].a_constr), 0); } break; case 210: -#line 1701 "asn1p_y.y" +#line 1696 "asn1p_y.y" { - yyval.a_constr = yyvsp[-1].a_constr; + /* + * This is a special case, for compatibility purposes. + * It goes without parentheses. + */ + CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_SIZE, (yyvsp[(3) - (4)].a_constr), 0); } break; case 211: -#line 1704 "asn1p_y.y" +#line 1706 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_SET, yyvsp[-3].a_constr, yyvsp[-1].a_constr); + (yyval.a_constr) = (yyvsp[(2) - (3)].a_constr); } break; case 212: -#line 1710 "asn1p_y.y" +#line 1709 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - yyval.a_constr->type = ACT_EL_EXT; + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_SET, (yyvsp[(1) - (4)].a_constr), (yyvsp[(3) - (4)].a_constr)); } break; case 213: -#line 1714 "asn1p_y.y" +#line 1715 "asn1p_y.y" { - yyval.a_constr = yyvsp[0].a_constr; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + (yyval.a_constr)->type = ACT_EL_EXT; } break; case 214: -#line 1717 "asn1p_y.y" +#line 1719 "asn1p_y.y" { - asn1p_constraint_t *ct; - ct = asn1p_constraint_new(yylineno); - ct->type = ACT_EL_EXT; - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct); + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; case 215: -#line 1723 "asn1p_y.y" +#line 1722 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); ct->type = ACT_EL_EXT; - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-4].a_constr, ct); - ct = yyval.a_constr; - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, ct, yyvsp[0].a_constr); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CSV, (yyvsp[(1) - (3)].a_constr), ct); } break; case 216: -#line 1731 "asn1p_y.y" +#line 1728 "asn1p_y.y" { - yyval.a_constr = yyvsp[0].a_constr; + asn1p_constraint_t *ct; + ct = asn1p_constraint_new(yylineno); + ct->type = ACT_EL_EXT; + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CSV, (yyvsp[(1) - (5)].a_constr), ct); + ct = (yyval.a_constr); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CSV, ct, (yyvsp[(5) - (5)].a_constr)); } break; - case 218: -#line 1738 "asn1p_y.y" + case 217: +#line 1736 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_AEX, yyvsp[0].a_constr, 0); + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; - case 220: -#line 1745 "asn1p_y.y" + case 219: +#line 1743 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_UNI, yyvsp[-2].a_constr, yyvsp[0].a_constr); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_AEX, (yyvsp[(3) - (3)].a_constr), 0); } break; - case 222: -#line 1752 "asn1p_y.y" + case 221: +#line 1750 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_INT, yyvsp[-2].a_constr, yyvsp[0].a_constr); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_UNI, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr)); } break; - case 224: -#line 1760 "asn1p_y.y" + case 223: +#line 1757 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_EXC, yyvsp[-2].a_constr, yyvsp[0].a_constr); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_INT, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr)); } break; case 225: -#line 1766 "asn1p_y.y" +#line 1765 "asn1p_y.y" { - int ret; - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-3].a_ctype; - ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr); - checkmem(ret == 0); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_EXC, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr)); } break; case 226: -#line 1774 "asn1p_y.y" +#line 1771 "asn1p_y.y" { int ret; - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_CA_SET; - ret = asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr); + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = (yyvsp[(1) - (4)].a_ctype); + ret = asn1p_constraint_insert((yyval.a_constr), (yyvsp[(3) - (4)].a_constr)); checkmem(ret == 0); } break; case 227: -#line 1782 "asn1p_y.y" +#line 1779 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_EL_VALUE; - yyval.a_constr->value = yyvsp[0].a_value; + int ret; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_CA_SET; + ret = asn1p_constraint_insert((yyval.a_constr), (yyvsp[(2) - (3)].a_constr)); + checkmem(ret == 0); } break; case 228: -#line 1788 "asn1p_y.y" +#line 1787 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_EL_TYPE; - yyval.a_constr->containedSubtype = yyvsp[0].a_value; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_EL_VALUE; + (yyval.a_constr)->value = (yyvsp[(1) - (1)].a_value); } break; case 229: -#line 1794 "asn1p_y.y" +#line 1793 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-1].a_ctype; - yyval.a_constr->range_start = yyvsp[-2].a_value; - yyval.a_constr->range_stop = yyvsp[0].a_value; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_EL_TYPE; + (yyval.a_constr)->containedSubtype = (yyvsp[(1) - (1)].a_value); } break; case 230: -#line 1801 "asn1p_y.y" +#line 1799 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-1].a_ctype; - yyval.a_constr->range_start = asn1p_value_fromint(-123); - yyval.a_constr->range_stop = yyvsp[0].a_value; - yyval.a_constr->range_start->type = ATV_MIN; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype); + (yyval.a_constr)->range_start = (yyvsp[(1) - (3)].a_value); + (yyval.a_constr)->range_stop = (yyvsp[(3) - (3)].a_value); } break; case 231: -#line 1809 "asn1p_y.y" +#line 1806 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-1].a_ctype; - yyval.a_constr->range_start = yyvsp[-2].a_value; - yyval.a_constr->range_stop = asn1p_value_fromint(321); - yyval.a_constr->range_stop->type = ATV_MAX; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype); + (yyval.a_constr)->range_start = asn1p_value_fromint(-123); + (yyval.a_constr)->range_stop = (yyvsp[(3) - (3)].a_value); + (yyval.a_constr)->range_start->type = ATV_MIN; } break; case 232: -#line 1817 "asn1p_y.y" +#line 1814 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = yyvsp[-1].a_ctype; - yyval.a_constr->range_start = asn1p_value_fromint(-123); - yyval.a_constr->range_stop = asn1p_value_fromint(321); - yyval.a_constr->range_start->type = ATV_MIN; - yyval.a_constr->range_stop->type = ATV_MAX; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype); + (yyval.a_constr)->range_start = (yyvsp[(1) - (3)].a_value); + (yyval.a_constr)->range_stop = asn1p_value_fromint(321); + (yyval.a_constr)->range_stop->type = ATV_MAX; } break; case 233: -#line 1826 "asn1p_y.y" +#line 1822 "asn1p_y.y" { - yyval.a_constr = yyvsp[0].a_constr; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = (yyvsp[(2) - (3)].a_ctype); + (yyval.a_constr)->range_start = asn1p_value_fromint(-123); + (yyval.a_constr)->range_stop = asn1p_value_fromint(321); + (yyval.a_constr)->range_start->type = ATV_MIN; + (yyval.a_constr)->range_stop->type = ATV_MAX; } break; case 234: -#line 1829 "asn1p_y.y" +#line 1831 "asn1p_y.y" { - yyval.a_constr = yyvsp[0].a_constr; + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; case 235: -#line 1835 "asn1p_y.y" +#line 1834 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - yyval.a_constr->type = ACT_CT_PATTERN; - yyval.a_constr->value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; case 236: #line 1840 "asn1p_y.y" { - asn1p_ref_t *ref; - yyval.a_constr = asn1p_constraint_new(yylineno); - yyval.a_constr->type = ACT_CT_PATTERN; - ref = asn1p_ref_new(yylineno); - asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase); - yyval.a_constr->value = asn1p_value_fromref(ref, 0); + (yyval.a_constr) = asn1p_constraint_new(yylineno); + (yyval.a_constr)->type = ACT_CT_PATTERN; + (yyval.a_constr)->value = asn1p_value_frombuf((yyvsp[(2) - (2)].tv_opaque).buf, (yyvsp[(2) - (2)].tv_opaque).len, 0); } break; case 237: -#line 1851 "asn1p_y.y" +#line 1845 "asn1p_y.y" { - yyval.a_ctype = ACT_CT_SIZE; + asn1p_ref_t *ref; + (yyval.a_constr) = asn1p_constraint_new(yylineno); + (yyval.a_constr)->type = ACT_CT_PATTERN; + ref = asn1p_ref_new(yylineno); + asn1p_ref_add_component(ref, (yyvsp[(2) - (2)].tv_str), RLT_lowercase); + (yyval.a_constr)->value = asn1p_value_fromref(ref, 0); } break; case 238: -#line 1854 "asn1p_y.y" +#line 1856 "asn1p_y.y" { - yyval.a_ctype = ACT_CT_FROM; + (yyval.a_ctype) = ACT_CT_SIZE; } break; case 239: -#line 1860 "asn1p_y.y" +#line 1859 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(0); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_FALSE; + (yyval.a_ctype) = ACT_CT_FROM; } break; case 240: #line 1865 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(1); - checkmem(yyval.a_value); - yyval.a_value->type = ATV_TRUE; + (yyval.a_value) = asn1p_value_fromint(0); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_FALSE; } break; - case 244: -#line 1873 "asn1p_y.y" + case 241: +#line 1870 "asn1p_y.y" + { + (yyval.a_value) = asn1p_value_fromint(1); + checkmem((yyval.a_value)); + (yyval.a_value)->type = ATV_TRUE; + } + break; + + case 245: +#line 1878 "asn1p_y.y" { asn1p_ref_t *ref; int ret; ref = asn1p_ref_new(yylineno); checkmem(ref); - ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_lowercase); + ret = asn1p_ref_add_component(ref, (yyvsp[(1) - (1)].tv_str), RLT_lowercase); checkmem(ret == 0); - yyval.a_value = asn1p_value_fromref(ref, 0); - checkmem(yyval.a_value); - free(yyvsp[0].tv_str); + (yyval.a_value) = asn1p_value_fromref(ref, 0); + checkmem((yyval.a_value)); + free((yyvsp[(1) - (1)].tv_str)); } break; - case 245: -#line 1887 "asn1p_y.y" + case 246: +#line 1892 "asn1p_y.y" { - yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'B'); - checkmem(yyval.a_value); + (yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'B'); + checkmem((yyval.a_value)); } break; - case 246: -#line 1891 "asn1p_y.y" + case 247: +#line 1896 "asn1p_y.y" { - yyval.a_value = _convert_bitstring2binary(yyvsp[0].tv_str, 'H'); - checkmem(yyval.a_value); + (yyval.a_value) = _convert_bitstring2binary((yyvsp[(1) - (1)].tv_str), 'H'); + checkmem((yyval.a_value)); } break; - case 247: -#line 1898 "asn1p_y.y" + case 248: +#line 1903 "asn1p_y.y" { asn1p_ref_t *ref; int ret; ref = asn1p_ref_new(yylineno); checkmem(ref); - ret = asn1p_ref_add_component(ref, yyvsp[0].tv_str, RLT_UNKNOWN); + ret = asn1p_ref_add_component(ref, (yyvsp[(1) - (1)].tv_str), RLT_UNKNOWN); checkmem(ret == 0); - yyval.a_value = asn1p_value_fromref(ref, 0); - checkmem(yyval.a_value); - free(yyvsp[0].tv_str); - } - break; - - case 248: -#line 1912 "asn1p_y.y" - { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMP, yyvsp[0].a_constr, 0); + (yyval.a_value) = asn1p_value_fromref(ref, 0); + checkmem((yyval.a_value)); + free((yyvsp[(1) - (1)].tv_str)); } break; case 249: -#line 1915 "asn1p_y.y" +#line 1917 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-1].a_constr, 0); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_WCOMP, (yyvsp[(3) - (3)].a_constr), 0); } break; case 250: -#line 1921 "asn1p_y.y" +#line 1920 "asn1p_y.y" { - yyval.a_constr = yyvsp[0].a_constr; + CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_WCOMPS, (yyvsp[(4) - (5)].a_constr), 0); } break; case 251: -#line 1924 "asn1p_y.y" +#line 1926 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CT_WCOMPS, yyvsp[-2].a_constr, yyvsp[0].a_constr); + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; case 252: -#line 1930 "asn1p_y.y" +#line 1929 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_EL_EXT; - yyval.a_constr->value = asn1p_value_frombuf("...", 3, 1); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CT_WCOMPS, (yyvsp[(1) - (3)].a_constr), (yyvsp[(3) - (3)].a_constr)); } break; case 253: -#line 1936 "asn1p_y.y" +#line 1935 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_EL_VALUE; - yyval.a_constr->value = asn1p_value_frombuf(yyvsp[-2].tv_str, strlen(yyvsp[-2].tv_str), 0); - yyval.a_constr->presence = yyvsp[0].a_pres; - if(yyvsp[-1].a_constr) asn1p_constraint_insert(yyval.a_constr, yyvsp[-1].a_constr); + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_EL_EXT; + (yyval.a_constr)->value = asn1p_value_frombuf("...", 3, 1); } break; case 254: -#line 1950 "asn1p_y.y" - { yyval.a_pres = ACPRES_DEFAULT; } +#line 1941 "asn1p_y.y" + { + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_EL_VALUE; + (yyval.a_constr)->value = asn1p_value_frombuf((yyvsp[(1) - (3)].tv_str), strlen((yyvsp[(1) - (3)].tv_str)), 0); + (yyval.a_constr)->presence = (yyvsp[(3) - (3)].a_pres); + if((yyvsp[(2) - (3)].a_constr)) asn1p_constraint_insert((yyval.a_constr), (yyvsp[(2) - (3)].a_constr)); + } break; case 255: -#line 1951 "asn1p_y.y" - { yyval.a_pres = yyvsp[0].a_pres; } +#line 1955 "asn1p_y.y" + { (yyval.a_pres) = ACPRES_DEFAULT; } break; case 256: -#line 1955 "asn1p_y.y" - { - yyval.a_pres = ACPRES_PRESENT; - } +#line 1956 "asn1p_y.y" + { (yyval.a_pres) = (yyvsp[(1) - (1)].a_pres); } break; case 257: -#line 1958 "asn1p_y.y" +#line 1960 "asn1p_y.y" { - yyval.a_pres = ACPRES_ABSENT; + (yyval.a_pres) = ACPRES_PRESENT; } break; case 258: -#line 1961 "asn1p_y.y" +#line 1963 "asn1p_y.y" { - yyval.a_pres = ACPRES_OPTIONAL; + (yyval.a_pres) = ACPRES_ABSENT; } break; - case 262: -#line 1976 "asn1p_y.y" - { asn1p_lexer_hack_push_opaque_state(); } + case 259: +#line 1966 "asn1p_y.y" + { + (yyval.a_pres) = ACPRES_OPTIONAL; + } break; case 263: -#line 1976 "asn1p_y.y" - { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_CT_CTDBY; - yyval.a_constr->value = asn1p_value_frombuf(yyvsp[0].tv_opaque.buf, yyvsp[0].tv_opaque.len, 0); - checkmem(yyval.a_constr->value); - yyval.a_constr->value->type = ATV_UNPARSED; - } +#line 1981 "asn1p_y.y" + { asn1p_lexer_hack_push_opaque_state(); } break; case 264: -#line 1987 "asn1p_y.y" +#line 1981 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - yyval.a_constr->type = ACT_CT_CTNG; - yyval.a_constr->value = asn1p_value_fromtype(yyvsp[0].a_expr); + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_CT_CTDBY; + (yyval.a_constr)->value = asn1p_value_frombuf((yyvsp[(5) - (5)].tv_opaque).buf, (yyvsp[(5) - (5)].tv_opaque).len, 0); + checkmem((yyval.a_constr)->value); + (yyval.a_constr)->value->type = ATV_UNPARSED; } break; case 265: -#line 1995 "asn1p_y.y" - { yyval.a_ctype = ACT_EL_RANGE; } +#line 1992 "asn1p_y.y" + { + (yyval.a_constr) = asn1p_constraint_new(yylineno); + (yyval.a_constr)->type = ACT_CT_CTNG; + (yyval.a_constr)->value = asn1p_value_fromtype((yyvsp[(2) - (2)].a_expr)); + } break; case 266: -#line 1996 "asn1p_y.y" - { yyval.a_ctype = ACT_EL_RLRANGE; } +#line 2000 "asn1p_y.y" + { (yyval.a_ctype) = ACT_EL_RANGE; } break; case 267: -#line 1997 "asn1p_y.y" - { yyval.a_ctype = ACT_EL_LLRANGE; } +#line 2001 "asn1p_y.y" + { (yyval.a_ctype) = ACT_EL_RLRANGE; } break; case 268: -#line 1998 "asn1p_y.y" - { yyval.a_ctype = ACT_EL_ULRANGE; } +#line 2002 "asn1p_y.y" + { (yyval.a_ctype) = ACT_EL_LLRANGE; } break; case 269: -#line 2001 "asn1p_y.y" - { - yyval.a_constr = yyvsp[0].a_constr; - } +#line 2003 "asn1p_y.y" + { (yyval.a_ctype) = ACT_EL_ULRANGE; } break; case 270: -#line 2004 "asn1p_y.y" +#line 2006 "asn1p_y.y" { - yyval.a_constr = yyvsp[0].a_constr; + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); } break; case 271: -#line 2013 "asn1p_y.y" +#line 2009 "asn1p_y.y" + { + (yyval.a_constr) = (yyvsp[(1) - (1)].a_constr); + } + break; + + case 272: +#line 2018 "asn1p_y.y" { asn1p_ref_t *ref = asn1p_ref_new(yylineno); asn1p_constraint_t *ct; int ret; - ret = asn1p_ref_add_component(ref, yyvsp[-1].tv_str, 0); + ret = asn1p_ref_add_component(ref, (yyvsp[(2) - (3)].tv_str), 0); checkmem(ret == 0); ct = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); + checkmem((yyval.a_constr)); ct->type = ACT_EL_VALUE; ct->value = asn1p_value_fromref(ref, 0); - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, ct, 0); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CRC, ct, 0); } break; - case 272: -#line 2028 "asn1p_y.y" + case 273: +#line 2033 "asn1p_y.y" { - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CRC, yyvsp[-3].a_constr, yyvsp[-1].a_constr); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CRC, (yyvsp[(1) - (4)].a_constr), (yyvsp[(3) - (4)].a_constr)); } break; - case 273: -#line 2034 "asn1p_y.y" + case 274: +#line 2039 "asn1p_y.y" { - yyval.a_constr = asn1p_constraint_new(yylineno); - checkmem(yyval.a_constr); - yyval.a_constr->type = ACT_EL_VALUE; - yyval.a_constr->value = asn1p_value_fromref(yyvsp[0].a_ref, 0); + (yyval.a_constr) = asn1p_constraint_new(yylineno); + checkmem((yyval.a_constr)); + (yyval.a_constr)->type = ACT_EL_VALUE; + (yyval.a_constr)->value = asn1p_value_fromref((yyvsp[(1) - (1)].a_ref), 0); } break; - case 274: -#line 2040 "asn1p_y.y" + case 275: +#line 2045 "asn1p_y.y" { asn1p_constraint_t *ct; ct = asn1p_constraint_new(yylineno); checkmem(ct); ct->type = ACT_EL_VALUE; - ct->value = asn1p_value_fromref(yyvsp[0].a_ref, 0); - CONSTRAINT_INSERT(yyval.a_constr, ACT_CA_CSV, yyvsp[-2].a_constr, ct); + ct->value = asn1p_value_fromref((yyvsp[(3) - (3)].a_ref), 0); + CONSTRAINT_INSERT((yyval.a_constr), ACT_CA_CSV, (yyvsp[(1) - (3)].a_constr), ct); } break; - case 275: -#line 2054 "asn1p_y.y" + case 276: +#line 2059 "asn1p_y.y" { - char *p = malloc(strlen(yyvsp[0].tv_str) + 2); + char *p = malloc(strlen((yyvsp[(2) - (2)].tv_str)) + 2); int ret; *p = '@'; - strcpy(p + 1, yyvsp[0].tv_str); - yyval.a_ref = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_ref, p, 0); + strcpy(p + 1, (yyvsp[(2) - (2)].tv_str)); + (yyval.a_ref) = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_ref), p, 0); checkmem(ret == 0); free(p); - free(yyvsp[0].tv_str); + free((yyvsp[(2) - (2)].tv_str)); } break; - case 276: -#line 2065 "asn1p_y.y" + case 277: +#line 2070 "asn1p_y.y" { - char *p = malloc(strlen(yyvsp[0].tv_str) + 3); + char *p = malloc(strlen((yyvsp[(3) - (3)].tv_str)) + 3); int ret; p[0] = '@'; p[1] = '.'; - strcpy(p + 2, yyvsp[0].tv_str); - yyval.a_ref = asn1p_ref_new(yylineno); - ret = asn1p_ref_add_component(yyval.a_ref, p, 0); + strcpy(p + 2, (yyvsp[(3) - (3)].tv_str)); + (yyval.a_ref) = asn1p_ref_new(yylineno); + ret = asn1p_ref_add_component((yyval.a_ref), p, 0); checkmem(ret == 0); free(p); - free(yyvsp[0].tv_str); - } - break; - - case 277: -#line 2081 "asn1p_y.y" - { - yyval.tv_str = yyvsp[0].tv_str; + free((yyvsp[(3) - (3)].tv_str)); } break; case 278: -#line 2084 "asn1p_y.y" +#line 2086 "asn1p_y.y" { - int l1 = strlen(yyvsp[-2].tv_str); - int l3 = strlen(yyvsp[0].tv_str); - yyval.tv_str = malloc(l1 + 1 + l3 + 1); - memcpy(yyval.tv_str, yyvsp[-2].tv_str, l1); - yyval.tv_str[l1] = '.'; - memcpy(yyval.tv_str + l1 + 1, yyvsp[0].tv_str, l3); - yyval.tv_str[l1 + 1 + l3] = '\0'; + (yyval.tv_str) = (yyvsp[(1) - (1)].tv_str); } break; case 279: -#line 2102 "asn1p_y.y" +#line 2089 "asn1p_y.y" { - yyval.a_marker.flags = EM_NOMARK; - yyval.a_marker.default_value = 0; + int l1 = strlen((yyvsp[(1) - (3)].tv_str)); + int l3 = strlen((yyvsp[(3) - (3)].tv_str)); + (yyval.tv_str) = malloc(l1 + 1 + l3 + 1); + memcpy((yyval.tv_str), (yyvsp[(1) - (3)].tv_str), l1); + (yyval.tv_str)[l1] = '.'; + memcpy((yyval.tv_str) + l1 + 1, (yyvsp[(3) - (3)].tv_str), l3); + (yyval.tv_str)[l1 + 1 + l3] = '\0'; } break; case 280: -#line 2106 "asn1p_y.y" - { yyval.a_marker = yyvsp[0].a_marker; } +#line 2107 "asn1p_y.y" + { + (yyval.a_marker).flags = EM_NOMARK; + (yyval.a_marker).default_value = 0; + } break; case 281: -#line 2110 "asn1p_y.y" - { - yyval.a_marker.flags = EM_OPTIONAL | EM_INDIRECT; - yyval.a_marker.default_value = 0; - } +#line 2111 "asn1p_y.y" + { (yyval.a_marker) = (yyvsp[(1) - (1)].a_marker); } break; case 282: -#line 2114 "asn1p_y.y" +#line 2115 "asn1p_y.y" { - yyval.a_marker.flags = EM_DEFAULT; - yyval.a_marker.default_value = yyvsp[0].a_value; + (yyval.a_marker).flags = EM_OPTIONAL | EM_INDIRECT; + (yyval.a_marker).default_value = 0; } break; case 283: -#line 2137 "asn1p_y.y" +#line 2119 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); + (yyval.a_marker).flags = EM_DEFAULT; + (yyval.a_marker).default_value = (yyvsp[(2) - (2)].a_value); } break; case 284: -#line 2141 "asn1p_y.y" +#line 2142 "asn1p_y.y" { - yyval.a_expr = yyvsp[-1].a_expr; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); } break; case 285: -#line 2147 "asn1p_y.y" +#line 2146 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = (yyvsp[(2) - (3)].a_expr); } break; case 286: #line 2152 "asn1p_y.y" { - yyval.a_expr = yyvsp[-2].a_expr; - asn1p_expr_add(yyval.a_expr, yyvsp[0].a_expr); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + asn1p_expr_add((yyval.a_expr), (yyvsp[(1) - (1)].a_expr)); } break; case 287: -#line 2159 "asn1p_y.y" +#line 2157 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_UNIVERVAL; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->Identifier = yyvsp[0].tv_str; + (yyval.a_expr) = (yyvsp[(1) - (3)].a_expr); + asn1p_expr_add((yyval.a_expr), (yyvsp[(3) - (3)].a_expr)); } break; case 288: -#line 2166 "asn1p_y.y" +#line 2164 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_UNIVERVAL; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->value = yyvsp[-1].a_value; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = A1TC_UNIVERVAL; + (yyval.a_expr)->meta_type = AMT_VALUE; + (yyval.a_expr)->Identifier = (yyvsp[(1) - (1)].tv_str); } break; case 289: -#line 2174 "asn1p_y.y" +#line 2171 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_UNIVERVAL; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->Identifier = yyvsp[-3].tv_str; - yyval.a_expr->value = yyvsp[-1].a_value; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = A1TC_UNIVERVAL; + (yyval.a_expr)->meta_type = AMT_VALUE; + (yyval.a_expr)->Identifier = (yyvsp[(1) - (4)].tv_str); + (yyval.a_expr)->value = (yyvsp[(3) - (4)].a_value); } break; case 290: -#line 2182 "asn1p_y.y" +#line 2179 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->expr_type = A1TC_UNIVERVAL; - yyval.a_expr->meta_type = AMT_VALUE; - yyval.a_expr->value = yyvsp[0].a_value; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = A1TC_UNIVERVAL; + (yyval.a_expr)->meta_type = AMT_VALUE; + (yyval.a_expr)->Identifier = (yyvsp[(1) - (4)].tv_str); + (yyval.a_expr)->value = (yyvsp[(3) - (4)].a_value); } break; case 291: -#line 2189 "asn1p_y.y" +#line 2187 "asn1p_y.y" { - yyval.a_expr = NEW_EXPR(); - checkmem(yyval.a_expr); - yyval.a_expr->Identifier = strdup("..."); - checkmem(yyval.a_expr->Identifier); - yyval.a_expr->expr_type = A1TC_EXTENSIBLE; - yyval.a_expr->meta_type = AMT_VALUE; + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->expr_type = A1TC_UNIVERVAL; + (yyval.a_expr)->meta_type = AMT_VALUE; + (yyval.a_expr)->value = (yyvsp[(1) - (1)].a_value); } break; case 292: -#line 2200 "asn1p_y.y" +#line 2194 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); - checkmem(yyval.a_value); + (yyval.a_expr) = NEW_EXPR(); + checkmem((yyval.a_expr)); + (yyval.a_expr)->Identifier = strdup("..."); + checkmem((yyval.a_expr)->Identifier); + (yyval.a_expr)->expr_type = A1TC_EXTENSIBLE; + (yyval.a_expr)->meta_type = AMT_VALUE; } break; case 293: -#line 2204 "asn1p_y.y" +#line 2205 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromint(yyvsp[0].a_int); - checkmem(yyval.a_value); + (yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int)); + checkmem((yyval.a_value)); } break; - case 295: -#line 2212 "asn1p_y.y" + case 294: +#line 2209 "asn1p_y.y" { - yyval.a_value = asn1p_value_fromdouble(yyvsp[0].a_dbl); - checkmem(yyval.a_value); + (yyval.a_value) = asn1p_value_fromint((yyvsp[(1) - (1)].a_int)); + checkmem((yyval.a_value)); } break; case 296: -#line 2243 "asn1p_y.y" - { memset(&yyval.a_tag, 0, sizeof(yyval.a_tag)); } +#line 2217 "asn1p_y.y" + { + (yyval.a_value) = asn1p_value_fromdouble((yyvsp[(1) - (1)].a_dbl)); + checkmem((yyval.a_value)); + } break; case 297: -#line 2244 "asn1p_y.y" - { yyval.a_tag = yyvsp[0].a_tag; } +#line 2248 "asn1p_y.y" + { memset(&(yyval.a_tag), 0, sizeof((yyval.a_tag))); } break; case 298: -#line 2248 "asn1p_y.y" - { - yyval.a_tag = yyvsp[-1].a_tag; - yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; - } +#line 2249 "asn1p_y.y" + { (yyval.a_tag) = (yyvsp[(1) - (1)].a_tag); } break; case 299: -#line 2255 "asn1p_y.y" +#line 2253 "asn1p_y.y" { - yyval.a_tag = yyvsp[-2].a_tag; - yyval.a_tag.tag_value = yyvsp[-1].a_int; + (yyval.a_tag) = (yyvsp[(1) - (2)].a_tag); + (yyval.a_tag).tag_mode = (yyvsp[(2) - (2)].a_tag).tag_mode; } break; case 300: -#line 2261 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; } +#line 2260 "asn1p_y.y" + { + (yyval.a_tag) = (yyvsp[(2) - (4)].a_tag); + (yyval.a_tag).tag_value = (yyvsp[(3) - (4)].a_int); + } break; case 301: -#line 2262 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_UNIVERSAL; } +#line 2266 "asn1p_y.y" + { (yyval.a_tag).tag_class = TC_CONTEXT_SPECIFIC; } break; case 302: -#line 2263 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_APPLICATION; } +#line 2267 "asn1p_y.y" + { (yyval.a_tag).tag_class = TC_UNIVERSAL; } break; case 303: -#line 2264 "asn1p_y.y" - { yyval.a_tag.tag_class = TC_PRIVATE; } +#line 2268 "asn1p_y.y" + { (yyval.a_tag).tag_class = TC_APPLICATION; } break; case 304: -#line 2268 "asn1p_y.y" - { yyval.a_tag.tag_mode = TM_DEFAULT; } +#line 2269 "asn1p_y.y" + { (yyval.a_tag).tag_class = TC_PRIVATE; } break; case 305: -#line 2269 "asn1p_y.y" - { yyval.a_tag.tag_mode = TM_IMPLICIT; } +#line 2273 "asn1p_y.y" + { (yyval.a_tag).tag_mode = TM_DEFAULT; } break; case 306: -#line 2270 "asn1p_y.y" - { yyval.a_tag.tag_mode = TM_EXPLICIT; } +#line 2274 "asn1p_y.y" + { (yyval.a_tag).tag_mode = TM_IMPLICIT; } break; case 307: -#line 2274 "asn1p_y.y" - { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - } +#line 2275 "asn1p_y.y" + { (yyval.a_tag).tag_mode = TM_EXPLICIT; } break; case 308: -#line 2278 "asn1p_y.y" +#line 2279 "asn1p_y.y" { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; + checkmem((yyvsp[(1) - (1)].tv_str)); + (yyval.tv_str) = (yyvsp[(1) - (1)].tv_str); } break; case 309: -#line 2286 "asn1p_y.y" +#line 2283 "asn1p_y.y" { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; + checkmem((yyvsp[(1) - (1)].tv_str)); + (yyval.tv_str) = (yyvsp[(1) - (1)].tv_str); } break; case 310: -#line 2293 "asn1p_y.y" - { yyval.tv_str = 0; } +#line 2291 "asn1p_y.y" + { + checkmem((yyvsp[(1) - (1)].tv_str)); + (yyval.tv_str) = (yyvsp[(1) - (1)].tv_str); + } break; case 311: -#line 2294 "asn1p_y.y" +#line 2298 "asn1p_y.y" + { (yyval.tv_str) = 0; } + break; + + case 312: +#line 2299 "asn1p_y.y" { - yyval.tv_str = yyvsp[0].tv_str; + (yyval.tv_str) = (yyvsp[(1) - (1)].tv_str); } break; - case 312: -#line 2300 "asn1p_y.y" + case 313: +#line 2305 "asn1p_y.y" { - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; + checkmem((yyvsp[(1) - (1)].tv_str)); + (yyval.tv_str) = (yyvsp[(1) - (1)].tv_str); } break; +/* Line 1267 of yacc.c. */ +#line 4799 "y.tab.c" + default: break; } + YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); -/* Line 1016 of /usr/local/share/bison/yacc.c. */ -#line 4391 "asn1p_y.c" - - yyvsp -= yylen; - yyssp -= yylen; - - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; @@ -4430,95 +4830,93 @@ yyerrlab: if (!yyerrstatus) { ++yynerrs; -#if YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (YYPACT_NINF < yyn && yyn < YYLAST) - { - YYSIZE_T yysize = 0; - int yytype = YYTRANSLATE (yychar); - char *yymsg; - int yyx, yycount; - - yycount = 0; - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - yysize += yystrlen (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("parse error, unexpected ") + 1; - yysize += yystrlen (yytname[yytype]); - yymsg = (char *) YYSTACK_ALLOC (yysize); - if (yymsg != 0) - { - char *yyp = yystpcpy (yymsg, "parse error, unexpected "); - yyp = yystpcpy (yyp, yytname[yytype]); - - if (yycount < 5) - { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); - yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; - } - } - yyerror (yymsg); +#if ! YYERROR_VERBOSE + yyerror (YY_("syntax error")); +#else + { + YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); + if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + { + YYSIZE_T yyalloc = 2 * yysize; + if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) + yyalloc = YYSTACK_ALLOC_MAXIMUM; + if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - } - else - yyerror ("parse error; also virtual memory exhausted"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror ("parse error"); + yymsg = (char *) YYSTACK_ALLOC (yyalloc); + if (yymsg) + yymsg_alloc = yyalloc; + else + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + } + } + + if (0 < yysize && yysize <= yymsg_alloc) + { + (void) yysyntax_error (yymsg, yystate, yychar); + yyerror (yymsg); + } + else + { + yyerror (YY_("syntax error")); + if (yysize != 0) + goto yyexhaustedlab; + } + } +#endif } - goto yyerrlab1; -/*----------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action. | -`----------------------------------------------------*/ -yyerrlab1: + if (yyerrstatus == 3) { - /* If just tried and failed to reuse lookahead token after an + /* If just tried and failed to reuse look-ahead token after an error, discard it. */ - /* Return failure if at end of input. */ - if (yychar == YYEOF) - { - /* Pop the error token. */ - YYPOPSTACK; - /* Pop the rest of the stack. */ - while (yyssp > yyss) - { - YYDPRINTF ((stderr, "Error: popping ")); - YYDSYMPRINT ((stderr, - yystos[*yyssp], - *yyvsp)); - YYDPRINTF ((stderr, "\n")); - yydestruct (yystos[*yyssp], *yyvsp); - YYPOPSTACK; - } - YYABORT; - } - - YYDPRINTF ((stderr, "Discarding token %d (%s).\n", - yychar, yytname[yychar1])); - yydestruct (yychar1, yylval); - yychar = YYEMPTY; + if (yychar <= YYEOF) + { + /* Return failure if at end of input. */ + if (yychar == YYEOF) + YYABORT; + } + else + { + yydestruct ("Error: discarding", + yytoken, &yylval); + yychar = YYEMPTY; + } } - /* Else will try to reuse lookahead token after shifting the error + /* Else will try to reuse look-ahead token after shifting the error token. */ + goto yyerrlab1; + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + + /* Pacify compilers like GCC when the user code never invokes + YYERROR and the label yyerrorlab therefore never appears in user + code. */ + if (/*CONSTCOND*/ 0) + goto yyerrorlab; + + /* Do not reclaim the symbols of the rule which action triggered + this YYERROR. */ + YYPOPSTACK (yylen); + yylen = 0; + YY_STACK_PRINT (yyss, yyssp); + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) @@ -4539,36 +4937,23 @@ yyerrlab1: if (yyssp == yyss) YYABORT; - YYDPRINTF ((stderr, "Error: popping ")); - YYDSYMPRINT ((stderr, - yystos[*yyssp], *yyvsp)); - YYDPRINTF ((stderr, "\n")); - - yydestruct (yystos[yystate], *yyvsp); - yyvsp--; - yystate = *--yyssp; - -#if YYDEBUG - if (yydebug) - { - short *yyssp1 = yyss - 1; - YYFPRINTF (stderr, "Error: state stack now"); - while (yyssp1 != yyssp) - YYFPRINTF (stderr, " %d", *++yyssp1); - YYFPRINTF (stderr, "\n"); - } -#endif + yydestruct ("Error: popping", + yystos[yystate], yyvsp); + YYPOPSTACK (1); + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } if (yyn == YYFINAL) YYACCEPT; - YYDPRINTF ((stderr, "Shifting error token, ")); - *++yyvsp = yylval; + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); + yystate = yyn; goto yynewstate; @@ -4588,25 +4973,43 @@ yyabortlab: goto yyreturn; #ifndef yyoverflow -/*----------------------------------------------. -| yyoverflowlab -- parser overflow comes here. | -`----------------------------------------------*/ -yyoverflowlab: - yyerror ("parser stack overflow"); +/*-------------------------------------------------. +| yyexhaustedlab -- memory exhaustion comes here. | +`-------------------------------------------------*/ +yyexhaustedlab: + yyerror (YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: + if (yychar != YYEOF && yychar != YYEMPTY) + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + /* Do not reclaim the symbols of the rule which action triggered + this YYABORT or YYACCEPT. */ + YYPOPSTACK (yylen); + YY_STACK_PRINT (yyss, yyssp); + while (yyssp != yyss) + { + yydestruct ("Cleanup: popping", + yystos[*yyssp], yyvsp); + YYPOPSTACK (1); + } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif - return yyresult; +#if YYERROR_VERBOSE + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); +#endif + /* Make sure YYID is used. */ + return YYID (yyresult); } -#line 2306 "asn1p_y.y" +#line 2311 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h index ee3af65b285d89ad3f386551ddf3ff990b1242a6..9963cdea45969347dce7e7961df2cead2f56d701 100644 --- a/libasn1parser/asn1p_y.h +++ b/libasn1parser/asn1p_y.h @@ -1,7 +1,9 @@ -/* A Bison parser, made from asn1p_y.y, by GNU bison 1.75. */ +/* A Bison parser, made by GNU Bison 2.3. */ -/* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc. +/* Skeleton interface for Bison's Yacc-like parsers in C + + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -15,16 +17,21 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ + Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ +/* As a special exception, you may create a larger work that contains + part or all of the Bison parser skeleton and distribute that work + under terms of your choice, so long as that work isn't itself a + parser generator using the skeleton or a modified version thereof + as a parser skeleton. Alternatively, if you modify or redistribute + the parser skeleton itself, you may (at your option) remove this + special exception, which will cause the skeleton and the resulting + Bison output files to be licensed under the GNU General Public + License without this special exception. -#ifndef BISON_ASN_P_Y_H -# define BISON_ASN_P_Y_H + This special exception was added by the Free Software Foundation in + version 2.2 of Bison. */ /* Tokens. */ #ifndef YYTOKENTYPE @@ -33,220 +40,226 @@ know about them. */ enum yytokentype { TOK_PPEQ = 258, - TOK_whitespace = 259, - TOK_opaque = 260, - TOK_bstring = 261, - TOK_cstring = 262, - TOK_hstring = 263, - TOK_identifier = 264, - TOK_number = 265, - TOK_number_negative = 266, - TOK_realnumber = 267, - TOK_tuple = 268, - TOK_quadruple = 269, - TOK_typereference = 270, - TOK_capitalreference = 271, - TOK_typefieldreference = 272, - TOK_valuefieldreference = 273, - TOK_Literal = 274, - TOK_ABSENT = 275, - TOK_ABSTRACT_SYNTAX = 276, - TOK_ALL = 277, - TOK_ANY = 278, - TOK_APPLICATION = 279, - TOK_AUTOMATIC = 280, - TOK_BEGIN = 281, - TOK_BIT = 282, - TOK_BMPString = 283, - TOK_BOOLEAN = 284, - TOK_BY = 285, - TOK_CHARACTER = 286, - TOK_CHOICE = 287, - TOK_CLASS = 288, - TOK_COMPONENT = 289, - TOK_COMPONENTS = 290, - TOK_CONSTRAINED = 291, - TOK_CONTAINING = 292, - TOK_DEFAULT = 293, - TOK_DEFINITIONS = 294, - TOK_DEFINED = 295, - TOK_EMBEDDED = 296, - TOK_ENCODED = 297, - TOK_ENCODING_CONTROL = 298, - TOK_END = 299, - TOK_ENUMERATED = 300, - TOK_EXPLICIT = 301, - TOK_EXPORTS = 302, - TOK_EXTENSIBILITY = 303, - TOK_EXTERNAL = 304, - TOK_FALSE = 305, - TOK_FROM = 306, - TOK_GeneralizedTime = 307, - TOK_GeneralString = 308, - TOK_GraphicString = 309, - TOK_IA5String = 310, - TOK_IDENTIFIER = 311, - TOK_IMPLICIT = 312, - TOK_IMPLIED = 313, - TOK_IMPORTS = 314, - TOK_INCLUDES = 315, - TOK_INSTANCE = 316, - TOK_INSTRUCTIONS = 317, - TOK_INTEGER = 318, - TOK_ISO646String = 319, - TOK_MAX = 320, - TOK_MIN = 321, - TOK_MINUS_INFINITY = 322, - TOK_NULL = 323, - TOK_NumericString = 324, - TOK_OBJECT = 325, - TOK_ObjectDescriptor = 326, - TOK_OCTET = 327, - TOK_OF = 328, - TOK_OPTIONAL = 329, - TOK_PATTERN = 330, - TOK_PDV = 331, - TOK_PLUS_INFINITY = 332, - TOK_PRESENT = 333, - TOK_PrintableString = 334, - TOK_PRIVATE = 335, - TOK_REAL = 336, - TOK_RELATIVE_OID = 337, - TOK_SEQUENCE = 338, - TOK_SET = 339, - TOK_SIZE = 340, - TOK_STRING = 341, - TOK_SYNTAX = 342, - TOK_T61String = 343, - TOK_TAGS = 344, - TOK_TeletexString = 345, - TOK_TRUE = 346, - TOK_TYPE_IDENTIFIER = 347, - TOK_UNIQUE = 348, - TOK_UNIVERSAL = 349, - TOK_UniversalString = 350, - TOK_UTCTime = 351, - TOK_UTF8String = 352, - TOK_VideotexString = 353, - TOK_VisibleString = 354, - TOK_WITH = 355, - TOK_EXCEPT = 356, - TOK_INTERSECTION = 357, - TOK_UNION = 358, - TOK_TwoDots = 359, - TOK_ThreeDots = 360 + TOK_VBracketLeft = 259, + TOK_VBracketRight = 260, + TOK_whitespace = 261, + TOK_opaque = 262, + TOK_bstring = 263, + TOK_cstring = 264, + TOK_hstring = 265, + TOK_identifier = 266, + TOK_number = 267, + TOK_number_negative = 268, + TOK_realnumber = 269, + TOK_tuple = 270, + TOK_quadruple = 271, + TOK_typereference = 272, + TOK_capitalreference = 273, + TOK_typefieldreference = 274, + TOK_valuefieldreference = 275, + TOK_Literal = 276, + TOK_ABSENT = 277, + TOK_ABSTRACT_SYNTAX = 278, + TOK_ALL = 279, + TOK_ANY = 280, + TOK_APPLICATION = 281, + TOK_AUTOMATIC = 282, + TOK_BEGIN = 283, + TOK_BIT = 284, + TOK_BMPString = 285, + TOK_BOOLEAN = 286, + TOK_BY = 287, + TOK_CHARACTER = 288, + TOK_CHOICE = 289, + TOK_CLASS = 290, + TOK_COMPONENT = 291, + TOK_COMPONENTS = 292, + TOK_CONSTRAINED = 293, + TOK_CONTAINING = 294, + TOK_DEFAULT = 295, + TOK_DEFINITIONS = 296, + TOK_DEFINED = 297, + TOK_EMBEDDED = 298, + TOK_ENCODED = 299, + TOK_ENCODING_CONTROL = 300, + TOK_END = 301, + TOK_ENUMERATED = 302, + TOK_EXPLICIT = 303, + TOK_EXPORTS = 304, + TOK_EXTENSIBILITY = 305, + TOK_EXTERNAL = 306, + TOK_FALSE = 307, + TOK_FROM = 308, + TOK_GeneralizedTime = 309, + TOK_GeneralString = 310, + TOK_GraphicString = 311, + TOK_IA5String = 312, + TOK_IDENTIFIER = 313, + TOK_IMPLICIT = 314, + TOK_IMPLIED = 315, + TOK_IMPORTS = 316, + TOK_INCLUDES = 317, + TOK_INSTANCE = 318, + TOK_INSTRUCTIONS = 319, + TOK_INTEGER = 320, + TOK_ISO646String = 321, + TOK_MAX = 322, + TOK_MIN = 323, + TOK_MINUS_INFINITY = 324, + TOK_NULL = 325, + TOK_NumericString = 326, + TOK_OBJECT = 327, + TOK_ObjectDescriptor = 328, + TOK_OCTET = 329, + TOK_OF = 330, + TOK_OPTIONAL = 331, + TOK_PATTERN = 332, + TOK_PDV = 333, + TOK_PLUS_INFINITY = 334, + TOK_PRESENT = 335, + TOK_PrintableString = 336, + TOK_PRIVATE = 337, + TOK_REAL = 338, + TOK_RELATIVE_OID = 339, + TOK_SEQUENCE = 340, + TOK_SET = 341, + TOK_SIZE = 342, + TOK_STRING = 343, + TOK_SYNTAX = 344, + TOK_T61String = 345, + TOK_TAGS = 346, + TOK_TeletexString = 347, + TOK_TRUE = 348, + TOK_TYPE_IDENTIFIER = 349, + TOK_UNIQUE = 350, + TOK_UNIVERSAL = 351, + TOK_UniversalString = 352, + TOK_UTCTime = 353, + TOK_UTF8String = 354, + TOK_VideotexString = 355, + TOK_VisibleString = 356, + TOK_WITH = 357, + TOK_EXCEPT = 358, + TOK_INTERSECTION = 359, + TOK_UNION = 360, + TOK_TwoDots = 361, + TOK_ThreeDots = 362 }; #endif +/* Tokens. */ #define TOK_PPEQ 258 -#define TOK_whitespace 259 -#define TOK_opaque 260 -#define TOK_bstring 261 -#define TOK_cstring 262 -#define TOK_hstring 263 -#define TOK_identifier 264 -#define TOK_number 265 -#define TOK_number_negative 266 -#define TOK_realnumber 267 -#define TOK_tuple 268 -#define TOK_quadruple 269 -#define TOK_typereference 270 -#define TOK_capitalreference 271 -#define TOK_typefieldreference 272 -#define TOK_valuefieldreference 273 -#define TOK_Literal 274 -#define TOK_ABSENT 275 -#define TOK_ABSTRACT_SYNTAX 276 -#define TOK_ALL 277 -#define TOK_ANY 278 -#define TOK_APPLICATION 279 -#define TOK_AUTOMATIC 280 -#define TOK_BEGIN 281 -#define TOK_BIT 282 -#define TOK_BMPString 283 -#define TOK_BOOLEAN 284 -#define TOK_BY 285 -#define TOK_CHARACTER 286 -#define TOK_CHOICE 287 -#define TOK_CLASS 288 -#define TOK_COMPONENT 289 -#define TOK_COMPONENTS 290 -#define TOK_CONSTRAINED 291 -#define TOK_CONTAINING 292 -#define TOK_DEFAULT 293 -#define TOK_DEFINITIONS 294 -#define TOK_DEFINED 295 -#define TOK_EMBEDDED 296 -#define TOK_ENCODED 297 -#define TOK_ENCODING_CONTROL 298 -#define TOK_END 299 -#define TOK_ENUMERATED 300 -#define TOK_EXPLICIT 301 -#define TOK_EXPORTS 302 -#define TOK_EXTENSIBILITY 303 -#define TOK_EXTERNAL 304 -#define TOK_FALSE 305 -#define TOK_FROM 306 -#define TOK_GeneralizedTime 307 -#define TOK_GeneralString 308 -#define TOK_GraphicString 309 -#define TOK_IA5String 310 -#define TOK_IDENTIFIER 311 -#define TOK_IMPLICIT 312 -#define TOK_IMPLIED 313 -#define TOK_IMPORTS 314 -#define TOK_INCLUDES 315 -#define TOK_INSTANCE 316 -#define TOK_INSTRUCTIONS 317 -#define TOK_INTEGER 318 -#define TOK_ISO646String 319 -#define TOK_MAX 320 -#define TOK_MIN 321 -#define TOK_MINUS_INFINITY 322 -#define TOK_NULL 323 -#define TOK_NumericString 324 -#define TOK_OBJECT 325 -#define TOK_ObjectDescriptor 326 -#define TOK_OCTET 327 -#define TOK_OF 328 -#define TOK_OPTIONAL 329 -#define TOK_PATTERN 330 -#define TOK_PDV 331 -#define TOK_PLUS_INFINITY 332 -#define TOK_PRESENT 333 -#define TOK_PrintableString 334 -#define TOK_PRIVATE 335 -#define TOK_REAL 336 -#define TOK_RELATIVE_OID 337 -#define TOK_SEQUENCE 338 -#define TOK_SET 339 -#define TOK_SIZE 340 -#define TOK_STRING 341 -#define TOK_SYNTAX 342 -#define TOK_T61String 343 -#define TOK_TAGS 344 -#define TOK_TeletexString 345 -#define TOK_TRUE 346 -#define TOK_TYPE_IDENTIFIER 347 -#define TOK_UNIQUE 348 -#define TOK_UNIVERSAL 349 -#define TOK_UniversalString 350 -#define TOK_UTCTime 351 -#define TOK_UTF8String 352 -#define TOK_VideotexString 353 -#define TOK_VisibleString 354 -#define TOK_WITH 355 -#define TOK_EXCEPT 356 -#define TOK_INTERSECTION 357 -#define TOK_UNION 358 -#define TOK_TwoDots 359 -#define TOK_ThreeDots 360 +#define TOK_VBracketLeft 259 +#define TOK_VBracketRight 260 +#define TOK_whitespace 261 +#define TOK_opaque 262 +#define TOK_bstring 263 +#define TOK_cstring 264 +#define TOK_hstring 265 +#define TOK_identifier 266 +#define TOK_number 267 +#define TOK_number_negative 268 +#define TOK_realnumber 269 +#define TOK_tuple 270 +#define TOK_quadruple 271 +#define TOK_typereference 272 +#define TOK_capitalreference 273 +#define TOK_typefieldreference 274 +#define TOK_valuefieldreference 275 +#define TOK_Literal 276 +#define TOK_ABSENT 277 +#define TOK_ABSTRACT_SYNTAX 278 +#define TOK_ALL 279 +#define TOK_ANY 280 +#define TOK_APPLICATION 281 +#define TOK_AUTOMATIC 282 +#define TOK_BEGIN 283 +#define TOK_BIT 284 +#define TOK_BMPString 285 +#define TOK_BOOLEAN 286 +#define TOK_BY 287 +#define TOK_CHARACTER 288 +#define TOK_CHOICE 289 +#define TOK_CLASS 290 +#define TOK_COMPONENT 291 +#define TOK_COMPONENTS 292 +#define TOK_CONSTRAINED 293 +#define TOK_CONTAINING 294 +#define TOK_DEFAULT 295 +#define TOK_DEFINITIONS 296 +#define TOK_DEFINED 297 +#define TOK_EMBEDDED 298 +#define TOK_ENCODED 299 +#define TOK_ENCODING_CONTROL 300 +#define TOK_END 301 +#define TOK_ENUMERATED 302 +#define TOK_EXPLICIT 303 +#define TOK_EXPORTS 304 +#define TOK_EXTENSIBILITY 305 +#define TOK_EXTERNAL 306 +#define TOK_FALSE 307 +#define TOK_FROM 308 +#define TOK_GeneralizedTime 309 +#define TOK_GeneralString 310 +#define TOK_GraphicString 311 +#define TOK_IA5String 312 +#define TOK_IDENTIFIER 313 +#define TOK_IMPLICIT 314 +#define TOK_IMPLIED 315 +#define TOK_IMPORTS 316 +#define TOK_INCLUDES 317 +#define TOK_INSTANCE 318 +#define TOK_INSTRUCTIONS 319 +#define TOK_INTEGER 320 +#define TOK_ISO646String 321 +#define TOK_MAX 322 +#define TOK_MIN 323 +#define TOK_MINUS_INFINITY 324 +#define TOK_NULL 325 +#define TOK_NumericString 326 +#define TOK_OBJECT 327 +#define TOK_ObjectDescriptor 328 +#define TOK_OCTET 329 +#define TOK_OF 330 +#define TOK_OPTIONAL 331 +#define TOK_PATTERN 332 +#define TOK_PDV 333 +#define TOK_PLUS_INFINITY 334 +#define TOK_PRESENT 335 +#define TOK_PrintableString 336 +#define TOK_PRIVATE 337 +#define TOK_REAL 338 +#define TOK_RELATIVE_OID 339 +#define TOK_SEQUENCE 340 +#define TOK_SET 341 +#define TOK_SIZE 342 +#define TOK_STRING 343 +#define TOK_SYNTAX 344 +#define TOK_T61String 345 +#define TOK_TAGS 346 +#define TOK_TeletexString 347 +#define TOK_TRUE 348 +#define TOK_TYPE_IDENTIFIER 349 +#define TOK_UNIQUE 350 +#define TOK_UNIVERSAL 351 +#define TOK_UniversalString 352 +#define TOK_UTCTime 353 +#define TOK_UTF8String 354 +#define TOK_VideotexString 355 +#define TOK_VisibleString 356 +#define TOK_WITH 357 +#define TOK_EXCEPT 358 +#define TOK_INTERSECTION 359 +#define TOK_UNION 360 +#define TOK_TwoDots 361 +#define TOK_ThreeDots 362 -#ifndef YYSTYPE +#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED +typedef union YYSTYPE #line 88 "asn1p_y.y" -typedef union { +{ asn1p_t *a_grammar; asn1p_module_flags_e a_module_flags; asn1p_module_t *a_module; @@ -279,14 +292,14 @@ typedef union { char *name; struct asn1p_type_tag_s tag; } tv_nametag; -} yystype; -/* Line 1281 of /usr/local/share/bison/yacc.c. */ -#line 285 "asn1p_y.h" -# define YYSTYPE yystype +} +/* Line 1529 of yacc.c. */ +#line 298 "y.tab.h" + YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif extern YYSTYPE asn1p_lval; - -#endif /* not BISON_ASN_P_Y_H */ - diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index 997be27ed77f3daf3c71bab3fd4af4cd39932d24..aae339bb205817145d0750208d6004e4a83b6f83 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -124,6 +124,7 @@ static asn1p_module_t *currentModule; * Token types returned by scanner. */ %token TOK_PPEQ /* "::=", Pseudo Pascal EQuality */ +%token TOK_VBracketLeft TOK_VBracketRight /* "[[", "]]" */ %token <tv_opaque> TOK_whitespace /* A span of whitespace */ %token <tv_opaque> TOK_opaque /* opaque data (driven from .y) */ %token <tv_str> TOK_bstring @@ -970,6 +971,10 @@ ComponentTypeLists: $$ = $1; asn1p_expr_add($$, $3); } + | ComponentTypeLists ',' TOK_VBracketLeft ComponentTypeLists TOK_VBracketRight { + $$ = $1; + asn1p_expr_add_many($$, $4); + } ; ComponentType: