Commit bc6efdcb authored by Kai Germaschewski's avatar Kai Germaschewski

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