diff options
| author | Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de> | 2003-02-19 05:01:13 -0600 |
|---|---|---|
| committer | Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de> | 2003-02-19 05:01:13 -0600 |
| commit | bc6efdcb09259202a2913923d788c8416723849c (patch) | |
| tree | bd0a658435fdec62cc3de7bf56e26b036ba2c2ad /scripts | |
| parent | 57146c8a3cd9fcc093965cf87d21bb3815f1e6a9 (diff) | |
kbuild: Fix genksyms __typeof__ handling
genksyms used to fail generating a checksum for a symbol which was
defined using __typeof__.
This minimal patch fixes it to recognize the case which occurs in the
kernel, it's not a complete correct typeof handling, but it serves our
needs.
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/genksyms/keywords.c_shipped | 99 | ||||
| -rw-r--r-- | scripts/genksyms/keywords.gperf | 2 | ||||
| -rw-r--r-- | scripts/genksyms/lex.c_shipped | 31 | ||||
| -rw-r--r-- | scripts/genksyms/parse.c_shipped | 732 | ||||
| -rw-r--r-- | scripts/genksyms/parse.h_shipped | 31 | ||||
| -rw-r--r-- | scripts/genksyms/parse.y | 2 |
6 files changed, 460 insertions, 437 deletions
diff --git a/scripts/genksyms/keywords.c_shipped b/scripts/genksyms/keywords.c_shipped index 4cd0dc918871..eabaf7401cd6 100644 --- a/scripts/genksyms/keywords.c_shipped +++ b/scripts/genksyms/keywords.c_shipped @@ -1,7 +1,7 @@ /* ANSI-C code produced by gperf version 2.7.2 */ /* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */ struct resword { const char *name; int token; }; -/* maximum key range = 101, duplicates = 0 */ +/* maximum key range = 109, duplicates = 0 */ #ifdef __GNUC__ __inline @@ -15,32 +15,32 @@ is_reserved_hash (register const char *str, register unsigned int len) { static const unsigned char asso_values[] = { - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 5, - 105, 105, 105, 105, 105, 105, 0, 105, 105, 105, - 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 0, 105, 0, 105, 20, - 25, 0, 35, 30, 105, 20, 105, 105, 40, 30, - 30, 0, 0, 105, 0, 0, 0, 15, 5, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105 + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 5, + 113, 113, 113, 113, 113, 113, 0, 113, 113, 113, + 0, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 0, 113, 0, 113, 20, + 25, 0, 35, 30, 113, 20, 113, 113, 40, 30, + 30, 0, 0, 113, 0, 51, 0, 15, 5, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113, 113, 113, 113, 113, + 113, 113, 113, 113, 113, 113 }; return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; } @@ -53,23 +53,22 @@ is_reserved_word (register const char *str, register unsigned int len) { enum { - TOTAL_KEYWORDS = 39, + TOTAL_KEYWORDS = 41, MIN_WORD_LENGTH = 3, MAX_WORD_LENGTH = 17, MIN_HASH_VALUE = 4, - MAX_HASH_VALUE = 104 + MAX_HASH_VALUE = 112 }; static const struct resword wordlist[] = { {""}, {""}, {""}, {""}, {"auto", AUTO_KEYW}, - {"short", SHORT_KEYW}, - {"struct", STRUCT_KEYW}, + {""}, {""}, {"__asm__", ASM_KEYW}, - {"restrict", RESTRICT_KEYW}, + {""}, {"_restrict", RESTRICT_KEYW}, - {"__signed__", SIGNED_KEYW}, + {"__typeof__", TYPEOF_KEYW}, {"__attribute", ATTRIBUTE_KEYW}, {"__restrict__", RESTRICT_KEYW}, {"__attribute__", ATTRIBUTE_KEYW}, @@ -82,46 +81,52 @@ is_reserved_word (register const char *str, register unsigned int len) {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, {"int", INT_KEYW}, {"char", CHAR_KEYW}, - {""}, - {"static", STATIC_KEYW}, + {""}, {""}, {"__const", CONST_KEYW}, {"__inline", INLINE_KEYW}, {"__const__", CONST_KEYW}, {"__inline__", INLINE_KEYW}, - {""}, {""}, - {"__signed", SIGNED_KEYW}, - {""}, + {""}, {""}, {""}, {""}, {"__asm", ASM_KEYW}, {"extern", EXTERN_KEYW}, {""}, {"register", REGISTER_KEYW}, {""}, {"float", FLOAT_KEYW}, - {""}, + {"typeof", TYPEOF_KEYW}, {"typedef", TYPEDEF_KEYW}, {""}, {""}, {"_Bool", BOOL_KEYW}, {"double", DOUBLE_KEYW}, - {""}, - {"unsigned", UNSIGNED_KEYW}, + {""}, {""}, {"enum", ENUM_KEYW}, {""}, {""}, {""}, {"volatile", VOLATILE_KEYW}, {"void", VOID_KEYW}, {"const", CONST_KEYW}, - {""}, {""}, {""}, {""}, {""}, - {"signed", SIGNED_KEYW}, + {"short", SHORT_KEYW}, + {"struct", STRUCT_KEYW}, + {""}, + {"restrict", RESTRICT_KEYW}, + {""}, + {"__signed__", SIGNED_KEYW}, {""}, {"asm", ASM_KEYW}, {""}, {""}, {"inline", INLINE_KEYW}, {""}, {""}, {""}, {"union", UNION_KEYW}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {"long", LONG_KEYW} + {"static", STATIC_KEYW}, + {""}, {""}, {""}, {""}, {""}, {""}, + {"__signed", SIGNED_KEYW}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, + {"unsigned", UNSIGNED_KEYW}, + {""}, {""}, {""}, {""}, + {"long", LONG_KEYW}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {"signed", SIGNED_KEYW} }; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) diff --git a/scripts/genksyms/keywords.gperf b/scripts/genksyms/keywords.gperf index db6aa29185be..b6bec765996e 100644 --- a/scripts/genksyms/keywords.gperf +++ b/scripts/genksyms/keywords.gperf @@ -46,3 +46,5 @@ union, UNION_KEYW unsigned, UNSIGNED_KEYW void, VOID_KEYW volatile, VOLATILE_KEYW +typeof, TYPEOF_KEYW +__typeof__, TYPEOF_KEYW diff --git a/scripts/genksyms/lex.c_shipped b/scripts/genksyms/lex.c_shipped index d2cecdd9bbe0..33e7e9e2e521 100644 --- a/scripts/genksyms/lex.c_shipped +++ b/scripts/genksyms/lex.c_shipped @@ -2061,21 +2061,22 @@ fini: #define UNSIGNED_KEYW 278 #define VOID_KEYW 279 #define VOLATILE_KEYW 280 -#define EXPORT_SYMBOL_KEYW 281 -#define ASM_PHRASE 282 -#define ATTRIBUTE_PHRASE 283 -#define BRACE_PHRASE 284 -#define BRACKET_PHRASE 285 -#define EXPRESSION_PHRASE 286 -#define CHAR 287 -#define DOTS 288 -#define IDENT 289 -#define INT 290 -#define REAL 291 -#define STRING 292 -#define TYPE 293 -#define OTHER 294 -#define FILENAME 295 +#define TYPEOF_KEYW 281 +#define EXPORT_SYMBOL_KEYW 282 +#define ASM_PHRASE 283 +#define ATTRIBUTE_PHRASE 284 +#define BRACE_PHRASE 285 +#define BRACKET_PHRASE 286 +#define EXPRESSION_PHRASE 287 +#define CHAR 288 +#define DOTS 289 +#define IDENT 290 +#define INT 291 +#define REAL 292 +#define STRING 293 +#define TYPE 294 +#define OTHER 295 +#define FILENAME 296 extern YYSTYPE yylval; diff --git a/scripts/genksyms/parse.c_shipped b/scripts/genksyms/parse.c_shipped index e8ecb822134e..c0f7ed4d1bfc 100644 --- a/scripts/genksyms/parse.c_shipped +++ b/scripts/genksyms/parse.c_shipped @@ -28,21 +28,22 @@ #define UNSIGNED_KEYW 278 #define VOID_KEYW 279 #define VOLATILE_KEYW 280 -#define EXPORT_SYMBOL_KEYW 281 -#define ASM_PHRASE 282 -#define ATTRIBUTE_PHRASE 283 -#define BRACE_PHRASE 284 -#define BRACKET_PHRASE 285 -#define EXPRESSION_PHRASE 286 -#define CHAR 287 -#define DOTS 288 -#define IDENT 289 -#define INT 290 -#define REAL 291 -#define STRING 292 -#define TYPE 293 -#define OTHER 294 -#define FILENAME 295 +#define TYPEOF_KEYW 281 +#define EXPORT_SYMBOL_KEYW 282 +#define ASM_PHRASE 283 +#define ATTRIBUTE_PHRASE 284 +#define BRACE_PHRASE 285 +#define BRACKET_PHRASE 286 +#define EXPRESSION_PHRASE 287 +#define CHAR 288 +#define DOTS 289 +#define IDENT 290 +#define INT 291 +#define REAL 292 +#define STRING 293 +#define TYPE 294 +#define OTHER 295 +#define FILENAME 296 #line 24 "scripts/genksyms/parse.y" @@ -91,26 +92,26 @@ remove_list(struct string_list **pb, struct string_list **pe) -#define YYFINAL 168 +#define YYFINAL 172 #define YYFLAG -32768 -#define YYNTBASE 51 +#define YYNTBASE 52 -#define YYTRANSLATE(x) ((unsigned)(x) <= 295 ? yytranslate[x] : 95) +#define YYTRANSLATE(x) ((unsigned)(x) <= 296 ? yytranslate[x] : 96) static const char 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, 2, 2, 2, 2, 2, 2, 2, 46, - 47, 45, 2, 44, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 50, 42, 2, - 48, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 47, 48, 2, 45, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 51, 43, 2, + 49, 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, 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, 49, 2, 43, 2, 2, 2, 2, 2, + 2, 2, 50, 2, 44, 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, 2, @@ -127,7 +128,7 @@ static const char yytranslate[] = { 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41 + 37, 38, 39, 40, 41, 42 }; #if YYDEBUG != 0 @@ -135,70 +136,71 @@ static const short yyprhs[] = { 0, 0, 2, 5, 6, 9, 10, 14, 16, 18, 20, 22, 25, 28, 32, 33, 35, 37, 41, 46, 47, 49, 51, 54, 56, 58, 60, 62, 64, 66, 68, - 70, 72, 75, 78, 81, 85, 89, 93, 96, 99, - 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, - 122, 124, 127, 128, 130, 132, 135, 137, 139, 141, - 143, 146, 148, 150, 155, 160, 163, 167, 171, 174, - 176, 178, 180, 185, 190, 193, 197, 201, 204, 206, - 210, 211, 213, 215, 219, 222, 225, 227, 228, 230, - 232, 237, 242, 245, 249, 253, 257, 258, 260, 263, - 267, 271, 272, 274, 276, 279, 283, 286, 287, 289, - 291, 295, 298, 301, 303, 306, 307, 309, 312, 313, - 315 + 70, 72, 77, 80, 83, 86, 90, 94, 98, 101, + 104, 107, 109, 111, 113, 115, 117, 119, 121, 123, + 125, 127, 129, 132, 133, 135, 137, 140, 142, 144, + 146, 148, 151, 153, 155, 160, 165, 168, 172, 176, + 179, 181, 183, 185, 190, 195, 198, 202, 206, 209, + 211, 215, 216, 218, 220, 224, 227, 230, 232, 233, + 235, 237, 242, 247, 250, 254, 258, 262, 263, 265, + 268, 272, 276, 277, 279, 281, 284, 288, 291, 292, + 294, 296, 300, 303, 306, 308, 311, 312, 314, 317, + 318, 320 }; -static const short yyrhs[] = { 52, - 0, 51, 52, 0, 0, 53, 54, 0, 0, 22, - 55, 56, 0, 56, 0, 80, 0, 92, 0, 94, - 0, 1, 42, 0, 1, 43, 0, 60, 57, 42, - 0, 0, 58, 0, 59, 0, 58, 44, 59, 0, - 70, 93, 91, 81, 0, 0, 61, 0, 62, 0, - 61, 62, 0, 63, 0, 64, 0, 5, 0, 16, - 0, 20, 0, 11, 0, 13, 0, 65, 0, 69, - 0, 21, 35, 0, 23, 35, 0, 10, 35, 0, - 21, 35, 83, 0, 23, 35, 83, 0, 10, 35, - 30, 0, 10, 30, 0, 21, 83, 0, 23, 83, - 0, 7, 0, 18, 0, 14, 0, 15, 0, 19, - 0, 24, 0, 12, 0, 9, 0, 25, 0, 6, - 0, 39, 0, 45, 67, 0, 0, 68, 0, 69, - 0, 68, 69, 0, 8, 0, 26, 0, 29, 0, - 17, 0, 66, 70, 0, 71, 0, 35, 0, 71, - 46, 74, 47, 0, 71, 46, 1, 47, 0, 71, - 31, 0, 46, 70, 47, 0, 46, 1, 47, 0, - 66, 72, 0, 73, 0, 35, 0, 39, 0, 73, - 46, 74, 47, 0, 73, 46, 1, 47, 0, 73, - 31, 0, 46, 72, 47, 0, 46, 1, 47, 0, - 75, 34, 0, 75, 0, 76, 44, 34, 0, 0, - 76, 0, 77, 0, 76, 44, 77, 0, 61, 78, - 0, 66, 78, 0, 79, 0, 0, 35, 0, 39, - 0, 79, 46, 74, 47, 0, 79, 46, 1, 47, - 0, 79, 31, 0, 46, 78, 47, 0, 46, 1, - 47, 0, 60, 70, 30, 0, 0, 82, 0, 48, - 32, 0, 49, 84, 43, 0, 49, 1, 43, 0, - 0, 85, 0, 86, 0, 85, 86, 0, 60, 87, - 42, 0, 1, 42, 0, 0, 88, 0, 89, 0, - 88, 44, 89, 0, 72, 91, 0, 35, 90, 0, - 90, 0, 50, 32, 0, 0, 29, 0, 28, 42, - 0, 0, 28, 0, 27, 46, 35, 47, 42, 0 +static const short yyrhs[] = { 53, + 0, 52, 53, 0, 0, 54, 55, 0, 0, 22, + 56, 57, 0, 57, 0, 81, 0, 93, 0, 95, + 0, 1, 43, 0, 1, 44, 0, 61, 58, 43, + 0, 0, 59, 0, 60, 0, 59, 45, 60, 0, + 71, 94, 92, 82, 0, 0, 62, 0, 63, 0, + 62, 63, 0, 64, 0, 65, 0, 5, 0, 16, + 0, 20, 0, 11, 0, 13, 0, 66, 0, 70, + 0, 27, 46, 65, 47, 0, 21, 36, 0, 23, + 36, 0, 10, 36, 0, 21, 36, 84, 0, 23, + 36, 84, 0, 10, 36, 31, 0, 10, 31, 0, + 21, 84, 0, 23, 84, 0, 7, 0, 18, 0, + 14, 0, 15, 0, 19, 0, 24, 0, 12, 0, + 9, 0, 25, 0, 6, 0, 40, 0, 48, 68, + 0, 0, 69, 0, 70, 0, 69, 70, 0, 8, + 0, 26, 0, 30, 0, 17, 0, 67, 71, 0, + 72, 0, 36, 0, 72, 46, 75, 47, 0, 72, + 46, 1, 47, 0, 72, 32, 0, 46, 71, 47, + 0, 46, 1, 47, 0, 67, 73, 0, 74, 0, + 36, 0, 40, 0, 74, 46, 75, 47, 0, 74, + 46, 1, 47, 0, 74, 32, 0, 46, 73, 47, + 0, 46, 1, 47, 0, 76, 35, 0, 76, 0, + 77, 45, 35, 0, 0, 77, 0, 78, 0, 77, + 45, 78, 0, 62, 79, 0, 67, 79, 0, 80, + 0, 0, 36, 0, 40, 0, 80, 46, 75, 47, + 0, 80, 46, 1, 47, 0, 80, 32, 0, 46, + 79, 47, 0, 46, 1, 47, 0, 61, 71, 31, + 0, 0, 83, 0, 49, 33, 0, 50, 85, 44, + 0, 50, 1, 44, 0, 0, 86, 0, 87, 0, + 86, 87, 0, 61, 88, 43, 0, 1, 43, 0, + 0, 89, 0, 90, 0, 89, 45, 90, 0, 73, + 92, 0, 36, 91, 0, 91, 0, 51, 33, 0, + 0, 30, 0, 29, 43, 0, 0, 29, 0, 28, + 46, 36, 47, 43, 0 }; #endif #if YYDEBUG != 0 static const short yyrline[] = { 0, - 100, 102, 105, 108, 111, 113, 114, 115, 116, 117, - 118, 119, 122, 136, 138, 141, 150, 162, 168, 170, - 173, 175, 178, 185, 188, 190, 191, 192, 193, 196, - 198, 202, 204, 206, 210, 217, 224, 233, 234, 235, - 238, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 252, 257, 259, 262, 264, 267, 268, 268, 269, - 276, 278, 281, 291, 293, 295, 297, 299, 305, 307, - 310, 312, 313, 315, 317, 319, 321, 325, 327, 328, - 331, 333, 336, 338, 342, 347, 350, 353, 355, 363, - 367, 369, 371, 373, 375, 379, 388, 390, 394, 399, - 401, 404, 406, 409, 411, 414, 417, 421, 423, 426, - 428, 431, 433, 434, 437, 441, 443, 446, 450, 452, - 455 + 101, 103, 106, 109, 112, 114, 115, 116, 117, 118, + 119, 120, 123, 137, 139, 142, 151, 163, 169, 171, + 174, 176, 179, 186, 189, 191, 192, 193, 194, 197, + 199, 200, 204, 206, 208, 212, 219, 226, 235, 236, + 237, 240, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 254, 259, 261, 264, 266, 269, 270, 270, + 271, 278, 280, 283, 293, 295, 297, 299, 301, 307, + 309, 312, 314, 315, 317, 319, 321, 323, 327, 329, + 330, 333, 335, 338, 340, 344, 349, 352, 355, 357, + 365, 369, 371, 373, 375, 377, 381, 390, 392, 396, + 401, 403, 406, 408, 411, 413, 416, 419, 423, 425, + 428, 430, 433, 435, 436, 439, 443, 445, 448, 452, + 454, 457 }; #endif @@ -209,212 +211,222 @@ static const char * const yytname[] = { "$","error","$undefined.","ASM_KEYW", "ATTRIBUTE_KEYW","AUTO_KEYW","BOOL_KEYW","CHAR_KEYW","CONST_KEYW","DOUBLE_KEYW", "ENUM_KEYW","EXTERN_KEYW","FLOAT_KEYW","INLINE_KEYW","INT_KEYW","LONG_KEYW", "REGISTER_KEYW","RESTRICT_KEYW","SHORT_KEYW","SIGNED_KEYW","STATIC_KEYW","STRUCT_KEYW", -"TYPEDEF_KEYW","UNION_KEYW","UNSIGNED_KEYW","VOID_KEYW","VOLATILE_KEYW","EXPORT_SYMBOL_KEYW", -"ASM_PHRASE","ATTRIBUTE_PHRASE","BRACE_PHRASE","BRACKET_PHRASE","EXPRESSION_PHRASE", -"CHAR","DOTS","IDENT","INT","REAL","STRING","TYPE","OTHER","FILENAME","';'", -"'}'","','","'*'","'('","')'","'='","'{'","':'","declaration_seq","declaration", -"@1","declaration1","@2","simple_declaration","init_declarator_list_opt","init_declarator_list", -"init_declarator","decl_specifier_seq_opt","decl_specifier_seq","decl_specifier", -"storage_class_specifier","type_specifier","simple_type_specifier","ptr_operator", -"cvar_qualifier_seq_opt","cvar_qualifier_seq","cvar_qualifier","declarator", -"direct_declarator","nested_declarator","direct_nested_declarator","parameter_declaration_clause", -"parameter_declaration_list_opt","parameter_declaration_list","parameter_declaration", -"m_abstract_declarator","direct_m_abstract_declarator","function_definition", -"initializer_opt","initializer","class_body","member_specification_opt","member_specification", -"member_declaration","member_declarator_list_opt","member_declarator_list","member_declarator", -"member_bitfield_declarator","attribute_opt","asm_definition","asm_phrase_opt", -"export_definition", NULL +"TYPEDEF_KEYW","UNION_KEYW","UNSIGNED_KEYW","VOID_KEYW","VOLATILE_KEYW","TYPEOF_KEYW", +"EXPORT_SYMBOL_KEYW","ASM_PHRASE","ATTRIBUTE_PHRASE","BRACE_PHRASE","BRACKET_PHRASE", +"EXPRESSION_PHRASE","CHAR","DOTS","IDENT","INT","REAL","STRING","TYPE","OTHER", +"FILENAME","';'","'}'","','","'('","')'","'*'","'='","'{'","':'","declaration_seq", +"declaration","@1","declaration1","@2","simple_declaration","init_declarator_list_opt", +"init_declarator_list","init_declarator","decl_specifier_seq_opt","decl_specifier_seq", +"decl_specifier","storage_class_specifier","type_specifier","simple_type_specifier", +"ptr_operator","cvar_qualifier_seq_opt","cvar_qualifier_seq","cvar_qualifier", +"declarator","direct_declarator","nested_declarator","direct_nested_declarator", +"parameter_declaration_clause","parameter_declaration_list_opt","parameter_declaration_list", +"parameter_declaration","m_abstract_declarator","direct_m_abstract_declarator", +"function_definition","initializer_opt","initializer","class_body","member_specification_opt", +"member_specification","member_declaration","member_declarator_list_opt","member_declarator_list", +"member_declarator","member_bitfield_declarator","attribute_opt","asm_definition", +"asm_phrase_opt","export_definition", NULL }; #endif static const short yyr1[] = { 0, - 51, 51, 53, 52, 55, 54, 54, 54, 54, 54, - 54, 54, 56, 57, 57, 58, 58, 59, 60, 60, - 61, 61, 62, 62, 63, 63, 63, 63, 63, 64, - 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 52, 52, 54, 53, 56, 55, 55, 55, 55, 55, + 55, 55, 57, 58, 58, 59, 59, 60, 61, 61, + 62, 62, 63, 63, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 65, 66, 67, 67, 68, 68, 69, 69, 69, 69, - 70, 70, 71, 71, 71, 71, 71, 71, 72, 72, - 73, 73, 73, 73, 73, 73, 73, 74, 74, 74, - 75, 75, 76, 76, 77, 78, 78, 79, 79, 79, - 79, 79, 79, 79, 79, 80, 81, 81, 82, 83, - 83, 84, 84, 85, 85, 86, 86, 87, 87, 88, - 88, 89, 89, 89, 90, 91, 91, 92, 93, 93, - 94 + 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, + 66, 66, 67, 68, 68, 69, 69, 70, 70, 70, + 70, 71, 71, 72, 72, 72, 72, 72, 72, 73, + 73, 74, 74, 74, 74, 74, 74, 74, 75, 75, + 75, 76, 76, 77, 77, 78, 79, 79, 80, 80, + 80, 80, 80, 80, 80, 80, 81, 82, 82, 83, + 84, 84, 85, 85, 86, 86, 87, 87, 88, 88, + 89, 89, 90, 90, 90, 91, 92, 92, 93, 94, + 94, 95 }; static const short yyr2[] = { 0, 1, 2, 0, 2, 0, 3, 1, 1, 1, 1, 2, 2, 3, 0, 1, 1, 3, 4, 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 3, 3, 3, 2, 2, 2, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 0, 1, 1, 2, 1, 1, 1, 1, - 2, 1, 1, 4, 4, 2, 3, 3, 2, 1, - 1, 1, 4, 4, 2, 3, 3, 2, 1, 3, - 0, 1, 1, 3, 2, 2, 1, 0, 1, 1, - 4, 4, 2, 3, 3, 3, 0, 1, 2, 3, - 3, 0, 1, 1, 2, 3, 2, 0, 1, 1, - 3, 2, 2, 1, 2, 0, 1, 2, 0, 1, - 5 + 1, 4, 2, 2, 2, 3, 3, 3, 2, 2, + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 0, 1, 1, 2, 1, 1, 1, + 1, 2, 1, 1, 4, 4, 2, 3, 3, 2, + 1, 1, 1, 4, 4, 2, 3, 3, 2, 1, + 3, 0, 1, 1, 3, 2, 2, 1, 0, 1, + 1, 4, 4, 2, 3, 3, 3, 0, 1, 2, + 3, 3, 0, 1, 1, 2, 3, 2, 0, 1, + 1, 3, 2, 2, 1, 2, 0, 1, 2, 0, + 1, 5 }; static const short yydefact[] = { 3, - 3, 1, 0, 2, 0, 25, 50, 41, 57, 48, - 0, 28, 47, 29, 43, 44, 26, 60, 42, 45, - 27, 0, 5, 0, 46, 49, 58, 0, 0, 59, - 51, 4, 7, 14, 20, 21, 23, 24, 30, 31, - 8, 9, 10, 11, 12, 38, 34, 32, 0, 39, - 19, 33, 40, 0, 118, 63, 53, 0, 0, 15, - 16, 0, 119, 62, 22, 37, 35, 0, 108, 0, - 0, 104, 6, 14, 36, 0, 52, 54, 55, 0, - 0, 13, 0, 61, 120, 96, 116, 66, 0, 107, - 101, 71, 72, 0, 0, 0, 116, 70, 0, 109, - 110, 114, 100, 0, 105, 119, 0, 56, 68, 67, - 17, 117, 97, 0, 88, 0, 79, 82, 83, 113, - 0, 71, 0, 115, 69, 112, 75, 0, 106, 0, - 121, 0, 18, 98, 65, 89, 51, 0, 88, 85, - 87, 64, 78, 0, 77, 76, 0, 0, 111, 99, - 0, 90, 0, 86, 93, 0, 80, 84, 74, 73, - 95, 94, 0, 0, 92, 91, 0, 0 + 3, 1, 0, 2, 0, 25, 51, 42, 58, 49, + 0, 28, 48, 29, 44, 45, 26, 61, 43, 46, + 27, 0, 5, 0, 47, 50, 59, 0, 0, 0, + 60, 52, 4, 7, 14, 20, 21, 23, 24, 30, + 31, 8, 9, 10, 11, 12, 39, 35, 33, 0, + 40, 19, 34, 41, 0, 0, 119, 64, 0, 54, + 0, 15, 16, 0, 120, 63, 22, 38, 36, 0, + 109, 0, 0, 105, 6, 14, 37, 0, 0, 0, + 0, 53, 55, 56, 13, 0, 62, 121, 97, 117, + 67, 0, 108, 102, 72, 73, 0, 0, 0, 117, + 71, 0, 110, 111, 115, 101, 0, 106, 120, 32, + 0, 69, 68, 57, 17, 118, 98, 0, 89, 0, + 80, 83, 84, 114, 0, 72, 0, 116, 70, 113, + 76, 0, 107, 0, 122, 0, 18, 99, 66, 90, + 52, 0, 89, 86, 88, 65, 79, 0, 78, 77, + 0, 0, 112, 100, 0, 91, 0, 87, 94, 0, + 81, 85, 75, 74, 96, 95, 0, 0, 93, 92, + 0, 0 }; static const short yydefgoto[] = { 1, - 2, 3, 32, 51, 33, 59, 60, 61, 69, 35, - 36, 37, 38, 39, 62, 77, 78, 40, 106, 64, - 97, 98, 116, 117, 118, 119, 140, 141, 41, 133, - 134, 50, 70, 71, 72, 99, 100, 101, 102, 113, - 42, 87, 43 + 2, 3, 33, 52, 34, 61, 62, 63, 71, 36, + 37, 38, 39, 40, 64, 82, 83, 41, 109, 66, + 100, 101, 120, 121, 122, 123, 144, 145, 42, 137, + 138, 51, 72, 73, 74, 102, 103, 104, 105, 117, + 43, 90, 44 }; static const short yypact[] = {-32768, - 40,-32768, 297,-32768, -30,-32768,-32768,-32768,-32768,-32768, - -16,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 4,-32768, 11,-32768,-32768,-32768, 6, 17,-32768, --32768,-32768,-32768, 63, 416,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 31, 23, 76,-32768, - 416, 23,-32768, 33,-32768,-32768, -2, 10, 24, 35, --32768, 63, -12, -21,-32768,-32768,-32768, 1, 28, 61, - 122,-32768,-32768, 63,-32768, 65,-32768, -2,-32768, 73, - 77,-32768, 63,-32768,-32768,-32768, 96,-32768, 168,-32768, --32768, 94,-32768, 19, 117, 68, 96, -14, 108, 109, --32768,-32768,-32768, 110,-32768, 126, 113,-32768,-32768,-32768, --32768,-32768, 111, 115, 339, 116, 124, 112,-32768,-32768, - 119,-32768, 123,-32768,-32768,-32768,-32768, 211,-32768, 28, --32768, 128,-32768,-32768,-32768,-32768,-32768, 3, 71,-32768, - -9,-32768,-32768, 381,-32768,-32768, 143, 148,-32768,-32768, - 149,-32768, 151,-32768,-32768, 254,-32768,-32768,-32768,-32768, --32768,-32768, 152, 153,-32768,-32768, 171,-32768 + 19,-32768, 175,-32768, 32,-32768,-32768,-32768,-32768,-32768, + -18,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, -30,-32768, -26,-32768,-32768,-32768, -32, -10, -2, +-32768,-32768,-32768,-32768, 2, 428,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 34, 12, 79, +-32768, 428, 12,-32768, 455, 33,-32768,-32768, 15, 14, + 35, 29,-32768, 2, -14, -21,-32768,-32768,-32768, 67, + 31, 37, 127,-32768,-32768, 2,-32768, 54, 60, 66, + 69,-32768, 14,-32768,-32768, 2,-32768,-32768,-32768, 84, +-32768, 219,-32768,-32768, 70,-32768, 20, 91, 72, 84, + -20, 74, 81,-32768,-32768,-32768, 86,-32768, 102,-32768, + 106,-32768,-32768,-32768,-32768,-32768, 109, 108, 348, 112, + 126, 117,-32768,-32768, 118,-32768, 122,-32768,-32768,-32768, +-32768, 262,-32768, 31,-32768, 131,-32768,-32768,-32768,-32768, +-32768, 7, 120,-32768, -9,-32768,-32768, 392,-32768,-32768, + 125, 130,-32768,-32768, 132,-32768, 159,-32768,-32768, 305, +-32768,-32768,-32768,-32768,-32768,-32768, 160, 161,-32768,-32768, + 174,-32768 }; static const short yypgoto[] = {-32768, - 200,-32768,-32768,-32768, 154,-32768,-32768, 120, 0, -87, - -35,-32768,-32768,-32768, -68,-32768,-32768, -48, -29,-32768, - -73,-32768, -120,-32768,-32768, 60, -63,-32768,-32768,-32768, --32768, -17,-32768,-32768, 135,-32768,-32768, 78, 118, 114, + 208,-32768,-32768,-32768, 158,-32768,-32768, 128, 0, -90, + -36,-32768, 157,-32768, -70,-32768,-32768, -51, -31,-32768, + -40,-32768, -125,-32768,-32768, 65, -97,-32768,-32768,-32768, +-32768, -19,-32768,-32768, 143,-32768,-32768, 83, 124, 141, -32768,-32768,-32768 }; -#define YYLAST 455 +#define YYLAST 495 -static const short yytable[] = { 65, - 96, 115, 34, 151, 63, 9, 53, 148, 79, 88, - 80, 44, 45, 46, 18, 85, 127, 86, 47, 121, - 123, 155, 125, 27, 89, 96, 30, 96, 81, 108, - 67, 128, 84, -88, 75, 164, 156, 136, 48, 167, - 115, 152, 90, 91, 56, 52, 139, 57, 138, -88, - 74, 54, 49, 122, 57, 58, 115, 93, 55, 49, - 66, 96, 92, 57, 94, 82, 93, 76, 115, 139, - 139, 49, 57, 94, 153, 154, 68, 95, 83, 65, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 56, 24, 25, - 26, 27, 122, 103, 30, 136, 93, 57, 58, 152, - -19, 107, 57, 94, 31, 57, 138, -19, -102, 109, - -19, -19, 104, 110, 112, -19, 6, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 95, 24, 25, 26, 27, 124, 129, - 30, 90, 130, 85, 131, 144, -19, 143, 132, 150, - 31, 135, 142, -19, -103, 145, -19, -19, 114, 146, - 168, -19, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 159, - 24, 25, 26, 27, 160, 161, 30, 162, 165, 166, - 4, -81, 111, 158, 73, 105, 31, 149, 0, 120, - 126, 147, 0, 0, -81, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 0, 24, 25, 26, 27, 0, 0, 30, - 0, 0, 0, 0, -81, 0, 0, 0, 0, 31, - 0, 0, 0, 0, 163, 0, 0, -81, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 0, 24, 25, 26, 27, - 0, 0, 30, 0, 0, 0, 0, -81, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 5, 0, 0, - -81, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 0, 0, 0, 0, - 0, -19, 0, 0, 0, 31, 0, 0, -19, 0, - 0, -19, -19, 6, 7, 8, 9, 10, 11, 12, +static const short yytable[] = { 67, + 99, 119, 35, 65, 54, 49, 152, 155, 84, 53, + 91, 131, 47, 55, 88, 80, 89, 48, 171, 50, + 125, 9, 159, 50, 92, 132, 99, 81, 99, 69, + 18, 114, 87, 77, 168, 56, 160, 58, -89, 27, + 57, 119, 140, 31, 157, 158, 156, 59, 143, 60, + 58, 76, 142, -89, 60, 126, 127, 119, 129, 96, + 59, 50, 60, 99, 68, 97, 95, 60, 79, 119, + 96, 143, 143, 86, 45, 46, 97, 85, 60, 70, + 106, 98, 67, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 0, 24, 25, 26, 27, 0, 0, 30, 0, 0, - 0, 0, 0, 136, 0, 0, 0, 137, 0, 0, - 0, 0, 0, 57, 138, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 0, 24, 25, 26, 27, 0, 0, 30, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 31, - 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 0, 24, 25, - 26, 27, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 31 -}; - -static const short yycheck[] = { 35, - 69, 89, 3, 1, 34, 8, 24, 128, 57, 31, - 1, 42, 43, 30, 17, 28, 31, 30, 35, 1, - 94, 31, 96, 26, 46, 94, 29, 96, 58, 78, - 48, 46, 62, 31, 52, 156, 46, 35, 35, 0, - 128, 39, 42, 43, 35, 35, 115, 45, 46, 47, - 51, 46, 49, 35, 45, 46, 144, 39, 42, 49, - 30, 130, 35, 45, 46, 42, 39, 35, 156, 138, - 139, 49, 45, 46, 138, 139, 1, 50, 44, 115, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 35, 23, 24, - 25, 26, 35, 43, 29, 35, 39, 45, 46, 39, - 35, 47, 45, 46, 39, 45, 46, 42, 43, 47, - 45, 46, 1, 47, 29, 50, 5, 6, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 50, 23, 24, 25, 26, 32, 42, - 29, 42, 44, 28, 42, 44, 35, 34, 48, 32, - 39, 47, 47, 42, 43, 47, 45, 46, 1, 47, - 0, 50, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 47, - 23, 24, 25, 26, 47, 47, 29, 47, 47, 47, - 1, 34, 83, 144, 51, 71, 39, 130, -1, 92, - 97, 1, -1, -1, 47, 5, 6, 7, 8, 9, + 110, 24, 25, 26, 27, 28, 111, 126, 31, 93, + 94, 96, 112, 116, -19, 113, 133, 97, 32, 60, + 98, -19, -103, 128, -19, 134, -19, 107, 93, -19, + 88, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 135, 24, + 25, 26, 27, 28, 139, 140, 31, 136, 146, 156, + 147, 148, -19, 154, 149, 142, 32, 60, 150, -19, + -104, 163, -19, 172, -19, 5, 164, -19, 165, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 166, 169, 170, 4, 75, + -19, 78, 162, 115, 32, 108, 153, -19, 124, 118, + -19, 0, -19, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 130, 24, 25, 26, 27, 28, 0, 0, 31, 0, + 0, 0, 0, -82, 0, 0, 0, 0, 32, 0, + 0, 0, 151, 0, 0, -82, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, -1, 23, 24, 25, 26, -1, -1, 29, - -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, - -1, -1, -1, -1, 1, -1, -1, 47, 5, 6, + 20, 21, 22, 0, 24, 25, 26, 27, 28, 0, + 0, 31, 0, 0, 0, 0, -82, 0, 0, 0, + 0, 32, 0, 0, 0, 167, 0, 0, -82, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, - -1, -1, 29, -1, -1, -1, -1, 34, -1, -1, - -1, -1, 39, -1, -1, -1, -1, 1, -1, -1, - 47, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, -1, -1, -1, -1, - -1, 35, -1, -1, -1, 39, -1, -1, 42, -1, - -1, 45, 46, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - -1, 23, 24, 25, 26, -1, -1, 29, -1, -1, - -1, -1, -1, 35, -1, -1, -1, 39, -1, -1, - -1, -1, -1, 45, 46, 5, 6, 7, 8, 9, + 17, 18, 19, 20, 21, 22, 0, 24, 25, 26, + 27, 28, 0, 0, 31, 0, 0, 0, 0, -82, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, -82, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 24, 25, 26, 27, 28, 0, 0, 31, 0, 0, + 0, 0, 0, 140, 0, 0, 0, 141, 0, 0, + 0, 0, 0, 142, 0, 60, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, -1, 23, 24, 25, 26, -1, -1, 29, - -1, -1, -1, -1, 34, -1, -1, -1, -1, 39, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, - 25, 26, -1, -1, 29, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 39 + 20, 21, 22, 0, 24, 25, 26, 27, 28, 0, + 0, 31, 0, 0, 0, 0, 161, 0, 0, 0, + 0, 32, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, + 24, 25, 26, 27, 28, 0, 0, 31, 0, 0, + 7, 8, 9, 10, 11, 0, 13, 32, 15, 16, + 0, 18, 19, 20, 0, 22, 0, 24, 25, 26, + 27, 28, 0, 0, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32 +}; + +static const short yycheck[] = { 36, + 71, 92, 3, 35, 24, 36, 132, 1, 60, 36, + 32, 32, 31, 46, 29, 1, 31, 36, 0, 50, + 1, 8, 32, 50, 46, 46, 97, 59, 99, 49, + 17, 83, 64, 53, 160, 46, 46, 36, 32, 26, + 43, 132, 36, 30, 142, 143, 40, 46, 119, 48, + 36, 52, 46, 47, 48, 36, 97, 148, 99, 40, + 46, 50, 48, 134, 31, 46, 36, 48, 36, 160, + 40, 142, 143, 45, 43, 44, 46, 43, 48, 1, + 44, 51, 119, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 47, 23, 24, 25, 26, 27, 47, 36, 30, 43, + 44, 40, 47, 30, 36, 47, 43, 46, 40, 48, + 51, 43, 44, 33, 46, 45, 48, 1, 43, 51, + 29, 5, 6, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, 43, 23, + 24, 25, 26, 27, 47, 36, 30, 49, 47, 40, + 35, 45, 36, 33, 47, 46, 40, 48, 47, 43, + 44, 47, 46, 0, 48, 1, 47, 51, 47, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 47, 47, 47, 1, 52, + 36, 55, 148, 86, 40, 73, 134, 43, 95, 1, + 46, -1, 48, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 100, 23, 24, 25, 26, 27, -1, -1, 30, -1, + -1, -1, -1, 35, -1, -1, -1, -1, 40, -1, + -1, -1, 1, -1, -1, 47, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, -1, 23, 24, 25, 26, 27, -1, + -1, 30, -1, -1, -1, -1, 35, -1, -1, -1, + -1, 40, -1, -1, -1, 1, -1, -1, 47, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, + 26, 27, -1, -1, 30, -1, -1, -1, -1, 35, + -1, -1, -1, -1, 40, -1, -1, -1, -1, -1, + -1, 47, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + 23, 24, 25, 26, 27, -1, -1, 30, -1, -1, + -1, -1, -1, 36, -1, -1, -1, 40, -1, -1, + -1, -1, -1, 46, -1, 48, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, -1, 23, 24, 25, 26, 27, -1, + -1, 30, -1, -1, -1, -1, 35, -1, -1, -1, + -1, 40, 5, 6, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, + 23, 24, 25, 26, 27, -1, -1, 30, -1, -1, + 6, 7, 8, 9, 10, -1, 12, 40, 14, 15, + -1, 17, 18, 19, -1, 21, -1, 23, 24, 25, + 26, 27, -1, -1, 30, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 40 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/lib/bison.simple" @@ -960,31 +972,31 @@ yyreduce: switch (yyn) { case 3: -#line 106 "scripts/genksyms/parse.y" +#line 107 "scripts/genksyms/parse.y" { is_typedef = 0; is_extern = 0; current_name = NULL; decl_spec = NULL; ; break;} case 4: -#line 108 "scripts/genksyms/parse.y" +#line 109 "scripts/genksyms/parse.y" { free_list(*yyvsp[0], NULL); *yyvsp[0] = NULL; ; break;} case 5: -#line 112 "scripts/genksyms/parse.y" +#line 113 "scripts/genksyms/parse.y" { is_typedef = 1; ; break;} case 6: -#line 113 "scripts/genksyms/parse.y" +#line 114 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 11: -#line 118 "scripts/genksyms/parse.y" +#line 119 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 12: -#line 119 "scripts/genksyms/parse.y" +#line 120 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 13: -#line 124 "scripts/genksyms/parse.y" +#line 125 "scripts/genksyms/parse.y" { if (current_name) { struct string_list *decl = (*yyvsp[0])->next; (*yyvsp[0])->next = NULL; @@ -997,11 +1009,11 @@ case 13: ; break;} case 14: -#line 137 "scripts/genksyms/parse.y" +#line 138 "scripts/genksyms/parse.y" { yyval = NULL; ; break;} case 16: -#line 143 "scripts/genksyms/parse.y" +#line 144 "scripts/genksyms/parse.y" { struct string_list *decl = *yyvsp[0]; *yyvsp[0] = NULL; add_symbol(current_name, @@ -1011,7 +1023,7 @@ case 16: ; break;} case 17: -#line 151 "scripts/genksyms/parse.y" +#line 152 "scripts/genksyms/parse.y" { struct string_list *decl = *yyvsp[0]; *yyvsp[0] = NULL; free_list(*yyvsp[-1], NULL); @@ -1023,23 +1035,23 @@ case 17: ; break;} case 18: -#line 164 "scripts/genksyms/parse.y" +#line 165 "scripts/genksyms/parse.y" { yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1] ? yyvsp[-1] : yyvsp[-2] ? yyvsp[-2] : yyvsp[-3]; ; break;} case 19: -#line 169 "scripts/genksyms/parse.y" +#line 170 "scripts/genksyms/parse.y" { decl_spec = NULL; ; break;} case 21: -#line 174 "scripts/genksyms/parse.y" +#line 175 "scripts/genksyms/parse.y" { decl_spec = *yyvsp[0]; ; break;} case 22: -#line 175 "scripts/genksyms/parse.y" +#line 176 "scripts/genksyms/parse.y" { decl_spec = *yyvsp[0]; ; break;} case 23: -#line 180 "scripts/genksyms/parse.y" +#line 181 "scripts/genksyms/parse.y" { /* Version 2 checksumming ignores storage class, as that is really irrelevant to the linkage. */ remove_node(yyvsp[0]); @@ -1047,27 +1059,27 @@ case 23: ; break;} case 28: -#line 192 "scripts/genksyms/parse.y" +#line 193 "scripts/genksyms/parse.y" { is_extern = 1; yyval = yyvsp[0]; ; break;} case 29: -#line 193 "scripts/genksyms/parse.y" +#line 194 "scripts/genksyms/parse.y" { is_extern = 0; yyval = yyvsp[0]; ; break;} -case 32: -#line 203 "scripts/genksyms/parse.y" -{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_STRUCT; yyval = yyvsp[0]; ; - break;} case 33: #line 205 "scripts/genksyms/parse.y" -{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_UNION; yyval = yyvsp[0]; ; +{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_STRUCT; yyval = yyvsp[0]; ; break;} case 34: #line 207 "scripts/genksyms/parse.y" -{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_ENUM; yyval = yyvsp[0]; ; +{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_UNION; yyval = yyvsp[0]; ; break;} case 35: -#line 211 "scripts/genksyms/parse.y" +#line 209 "scripts/genksyms/parse.y" +{ remove_node(yyvsp[-1]); (*yyvsp[0])->tag = SYM_ENUM; yyval = yyvsp[0]; ; + break;} +case 36: +#line 213 "scripts/genksyms/parse.y" { struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; r = copy_node(i); r->tag = SYM_STRUCT; r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; @@ -1075,8 +1087,8 @@ case 35: yyval = yyvsp[0]; ; break;} -case 36: -#line 218 "scripts/genksyms/parse.y" +case 37: +#line 220 "scripts/genksyms/parse.y" { struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; r = copy_node(i); r->tag = SYM_UNION; r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; @@ -1084,8 +1096,8 @@ case 36: yyval = yyvsp[0]; ; break;} -case 37: -#line 225 "scripts/genksyms/parse.y" +case 38: +#line 227 "scripts/genksyms/parse.y" { struct string_list *s = *yyvsp[0], *i = *yyvsp[-1], *r; r = copy_node(i); r->tag = SYM_ENUM; r->next = (*yyvsp[-2])->next; *yyvsp[0] = r; (*yyvsp[-2])->next = NULL; @@ -1093,47 +1105,47 @@ case 37: yyval = yyvsp[0]; ; break;} -case 38: -#line 233 "scripts/genksyms/parse.y" -{ yyval = yyvsp[0]; ; - break;} case 39: -#line 234 "scripts/genksyms/parse.y" +#line 235 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 40: -#line 235 "scripts/genksyms/parse.y" +#line 236 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 51: -#line 249 "scripts/genksyms/parse.y" -{ (*yyvsp[0])->tag = SYM_TYPEDEF; yyval = yyvsp[0]; ; +case 41: +#line 237 "scripts/genksyms/parse.y" +{ yyval = yyvsp[0]; ; break;} case 52: -#line 254 "scripts/genksyms/parse.y" -{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; +#line 251 "scripts/genksyms/parse.y" +{ (*yyvsp[0])->tag = SYM_TYPEDEF; yyval = yyvsp[0]; ; break;} case 53: -#line 258 "scripts/genksyms/parse.y" +#line 256 "scripts/genksyms/parse.y" +{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; + break;} +case 54: +#line 260 "scripts/genksyms/parse.y" { yyval = NULL; ; break;} -case 56: -#line 264 "scripts/genksyms/parse.y" +case 57: +#line 266 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 60: -#line 270 "scripts/genksyms/parse.y" +case 61: +#line 272 "scripts/genksyms/parse.y" { /* restrict has no effect in prototypes so ignore it */ remove_node(yyvsp[0]); yyval = yyvsp[0]; ; break;} -case 61: -#line 277 "scripts/genksyms/parse.y" +case 62: +#line 279 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 63: -#line 283 "scripts/genksyms/parse.y" +case 64: +#line 285 "scripts/genksyms/parse.y" { if (current_name != NULL) { error_with_pos("unexpected second declaration name"); YYERROR; @@ -1143,10 +1155,6 @@ case 63: } ; break;} -case 64: -#line 292 "scripts/genksyms/parse.y" -{ yyval = yyvsp[0]; ; - break;} case 65: #line 294 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; @@ -1164,11 +1172,11 @@ case 68: { yyval = yyvsp[0]; ; break;} case 69: -#line 306 "scripts/genksyms/parse.y" +#line 302 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 73: -#line 314 "scripts/genksyms/parse.y" +case 70: +#line 308 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 74: @@ -1188,51 +1196,51 @@ case 77: { yyval = yyvsp[0]; ; break;} case 78: -#line 326 "scripts/genksyms/parse.y" +#line 324 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 80: +case 79: #line 328 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 81: -#line 332 "scripts/genksyms/parse.y" -{ yyval = NULL; ; - break;} -case 84: -#line 339 "scripts/genksyms/parse.y" +#line 330 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} +case 82: +#line 334 "scripts/genksyms/parse.y" +{ yyval = NULL; ; + break;} case 85: -#line 344 "scripts/genksyms/parse.y" -{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; +#line 341 "scripts/genksyms/parse.y" +{ yyval = yyvsp[0]; ; break;} case 86: -#line 349 "scripts/genksyms/parse.y" +#line 346 "scripts/genksyms/parse.y" { yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; break;} -case 88: -#line 354 "scripts/genksyms/parse.y" -{ yyval = NULL; ; +case 87: +#line 351 "scripts/genksyms/parse.y" +{ yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; break;} case 89: #line 356 "scripts/genksyms/parse.y" +{ yyval = NULL; ; + break;} +case 90: +#line 358 "scripts/genksyms/parse.y" { /* For version 2 checksums, we don't want to remember private parameter names. */ remove_node(yyvsp[0]); yyval = yyvsp[0]; ; break;} -case 90: -#line 364 "scripts/genksyms/parse.y" +case 91: +#line 366 "scripts/genksyms/parse.y" { remove_node(yyvsp[0]); yyval = yyvsp[0]; ; break;} -case 91: -#line 368 "scripts/genksyms/parse.y" -{ yyval = yyvsp[0]; ; - break;} case 92: #line 370 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; @@ -1250,39 +1258,39 @@ case 95: { yyval = yyvsp[0]; ; break;} case 96: -#line 381 "scripts/genksyms/parse.y" +#line 378 "scripts/genksyms/parse.y" +{ yyval = yyvsp[0]; ; + break;} +case 97: +#line 383 "scripts/genksyms/parse.y" { struct string_list *decl = *yyvsp[-1]; *yyvsp[-1] = NULL; add_symbol(current_name, SYM_NORMAL, decl, is_extern); yyval = yyvsp[0]; ; break;} -case 97: -#line 389 "scripts/genksyms/parse.y" +case 98: +#line 391 "scripts/genksyms/parse.y" { yyval = NULL; ; break;} -case 99: -#line 396 "scripts/genksyms/parse.y" -{ remove_list(yyvsp[0], &(*yyvsp[-1])->next); yyval = yyvsp[0]; ; - break;} case 100: -#line 400 "scripts/genksyms/parse.y" -{ yyval = yyvsp[0]; ; +#line 398 "scripts/genksyms/parse.y" +{ remove_list(yyvsp[0], &(*yyvsp[-1])->next); yyval = yyvsp[0]; ; break;} case 101: -#line 401 "scripts/genksyms/parse.y" +#line 402 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 102: -#line 405 "scripts/genksyms/parse.y" -{ yyval = NULL; ; - break;} -case 105: -#line 411 "scripts/genksyms/parse.y" +#line 403 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} +case 103: +#line 407 "scripts/genksyms/parse.y" +{ yyval = NULL; ; + break;} case 106: -#line 416 "scripts/genksyms/parse.y" +#line 413 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} case 107: @@ -1290,39 +1298,43 @@ case 107: { yyval = yyvsp[0]; ; break;} case 108: -#line 422 "scripts/genksyms/parse.y" +#line 420 "scripts/genksyms/parse.y" +{ yyval = yyvsp[0]; ; + break;} +case 109: +#line 424 "scripts/genksyms/parse.y" { yyval = NULL; ; break;} -case 111: -#line 428 "scripts/genksyms/parse.y" +case 112: +#line 430 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 112: -#line 432 "scripts/genksyms/parse.y" +case 113: +#line 434 "scripts/genksyms/parse.y" { yyval = yyvsp[0] ? yyvsp[0] : yyvsp[-1]; ; break;} -case 113: -#line 433 "scripts/genksyms/parse.y" +case 114: +#line 435 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 115: -#line 438 "scripts/genksyms/parse.y" +case 116: +#line 440 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 116: -#line 442 "scripts/genksyms/parse.y" +case 117: +#line 444 "scripts/genksyms/parse.y" { yyval = NULL; ; break;} -case 118: -#line 447 "scripts/genksyms/parse.y" +case 119: +#line 449 "scripts/genksyms/parse.y" { yyval = yyvsp[0]; ; break;} -case 119: -#line 451 "scripts/genksyms/parse.y" +case 120: +#line 453 "scripts/genksyms/parse.y" { yyval = NULL; ; break;} -case 121: -#line 457 "scripts/genksyms/parse.y" +case 122: +#line 459 "scripts/genksyms/parse.y" { export_symbol((*yyvsp[-2])->string); yyval = yyvsp[0]; ; break;} } @@ -1547,7 +1559,7 @@ yyerrhandle: } return 1; } -#line 461 "scripts/genksyms/parse.y" +#line 463 "scripts/genksyms/parse.y" static void diff --git a/scripts/genksyms/parse.h_shipped b/scripts/genksyms/parse.h_shipped index a63f6b565f15..d5b27e3b20c4 100644 --- a/scripts/genksyms/parse.h_shipped +++ b/scripts/genksyms/parse.h_shipped @@ -25,21 +25,22 @@ #define UNSIGNED_KEYW 278 #define VOID_KEYW 279 #define VOLATILE_KEYW 280 -#define EXPORT_SYMBOL_KEYW 281 -#define ASM_PHRASE 282 -#define ATTRIBUTE_PHRASE 283 -#define BRACE_PHRASE 284 -#define BRACKET_PHRASE 285 -#define EXPRESSION_PHRASE 286 -#define CHAR 287 -#define DOTS 288 -#define IDENT 289 -#define INT 290 -#define REAL 291 -#define STRING 292 -#define TYPE 293 -#define OTHER 294 -#define FILENAME 295 +#define TYPEOF_KEYW 281 +#define EXPORT_SYMBOL_KEYW 282 +#define ASM_PHRASE 283 +#define ATTRIBUTE_PHRASE 284 +#define BRACE_PHRASE 285 +#define BRACKET_PHRASE 286 +#define EXPRESSION_PHRASE 287 +#define CHAR 288 +#define DOTS 289 +#define IDENT 290 +#define INT 291 +#define REAL 292 +#define STRING 293 +#define TYPE 294 +#define OTHER 295 +#define FILENAME 296 extern YYSTYPE yylval; diff --git a/scripts/genksyms/parse.y b/scripts/genksyms/parse.y index 6a2d5811245b..386189f4d108 100644 --- a/scripts/genksyms/parse.y +++ b/scripts/genksyms/parse.y @@ -76,6 +76,7 @@ remove_list(struct string_list **pb, struct string_list **pe) %token UNSIGNED_KEYW %token VOID_KEYW %token VOLATILE_KEYW +%token TYPEOF_KEYW %token EXPORT_SYMBOL_KEYW @@ -196,6 +197,7 @@ storage_class_specifier: type_specifier: simple_type_specifier | cvar_qualifier + | TYPEOF_KEYW '(' type_specifier ')' /* References to s/u/e's defined elsewhere. Rearrange things so that it is easier to expand the definition fully later. */ |
