Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

genksyms: fix typeof() handling

Recent increased use of typeof() throughout the tree resulted in a
number of symbols (25 in a typical distro config of ours) not getting a
proper CRC calculated for them anymore, due to the parser in genksyms
not coping with several of these uses (interestingly in the majority of
[if not all] cases the problem is due to the use of typeof() in code
preceding a certain export, not in the declaration/definition of the
exported function/object itself; I wasn't able to find a way to address
this more general parser shortcoming).

The use of parameter_declaration is a little more relaxed than would be
ideal (permitting not just a bare type specification, but also one with
identifier), but since the same code is being passed through an actual
compiler, there's no apparent risk of allowing through any broken code.

Otoh using parameter_declaration instead of the ad hoc
"decl_specifier_seq '*'" / "decl_specifier_seq" pair allows all types to
be handled rather than just plain ones and pointers to plain ones.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Cc: Michal Marek <mmarek@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Jan Beulich and committed by
Linus Torvalds
dc533240 d507816b

+501 -387
+3 -2
scripts/genksyms/keywords.gperf
··· 23 23 __inline__, INLINE_KEYW 24 24 __signed, SIGNED_KEYW 25 25 __signed__, SIGNED_KEYW 26 + __typeof, TYPEOF_KEYW 27 + __typeof__, TYPEOF_KEYW 26 28 __volatile, VOLATILE_KEYW 27 29 __volatile__, VOLATILE_KEYW 28 30 # According to rth, c99 defines _Bool, __restrict, __restrict__, restrict. KAO ··· 53 51 static, STATIC_KEYW 54 52 struct, STRUCT_KEYW 55 53 typedef, TYPEDEF_KEYW 54 + typeof, TYPEOF_KEYW 56 55 union, UNION_KEYW 57 56 unsigned, UNSIGNED_KEYW 58 57 void, VOID_KEYW 59 58 volatile, VOLATILE_KEYW 60 - typeof, TYPEOF_KEYW 61 - __typeof__, TYPEOF_KEYW
+74 -65
scripts/genksyms/keywords.hash.c_shipped
··· 34 34 static const struct resword *is_reserved_word(register const char *str, register unsigned int len); 35 35 #line 8 "scripts/genksyms/keywords.gperf" 36 36 struct resword { const char *name; int token; }; 37 - /* maximum key range = 64, duplicates = 0 */ 37 + /* maximum key range = 98, duplicates = 0 */ 38 38 39 39 #ifdef __GNUC__ 40 40 __inline ··· 48 48 { 49 49 static const unsigned char asso_values[] = 50 50 { 51 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 52 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 53 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 54 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 55 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 56 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 57 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 58 - 67, 67, 67, 67, 67, 67, 15, 67, 67, 67, 59 - 0, 67, 67, 67, 67, 67, 67, 67, 67, 67, 60 - 67, 67, 67, 67, 67, 0, 67, 0, 67, 5, 61 - 25, 20, 15, 30, 67, 15, 67, 67, 10, 0, 62 - 10, 40, 20, 67, 10, 5, 0, 10, 15, 67, 63 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 64 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 65 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 66 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 68 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 69 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 70 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 71 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 72 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 73 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 74 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 75 - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 76 - 67, 67, 67, 67, 67, 67 51 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 52 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 53 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 54 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 55 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 56 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 57 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 0, 58 + 101, 101, 101, 101, 101, 101, 15, 101, 101, 101, 59 + 0, 101, 101, 101, 101, 101, 101, 101, 101, 101, 60 + 101, 101, 101, 101, 101, 0, 101, 0, 101, 5, 61 + 25, 20, 55, 30, 101, 15, 101, 101, 10, 0, 62 + 10, 40, 10, 101, 10, 5, 0, 10, 15, 101, 63 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 64 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 65 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 66 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 67 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 68 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 69 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 70 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 71 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 72 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 73 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 74 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 75 + 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 76 + 101, 101, 101, 101, 101, 101 77 77 }; 78 78 return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]]; 79 79 } ··· 89 89 { 90 90 enum 91 91 { 92 - TOTAL_KEYWORDS = 45, 92 + TOTAL_KEYWORDS = 46, 93 93 MIN_WORD_LENGTH = 3, 94 94 MAX_WORD_LENGTH = 24, 95 95 MIN_HASH_VALUE = 3, 96 - MAX_HASH_VALUE = 66 96 + MAX_HASH_VALUE = 100 97 97 }; 98 98 99 99 static const struct resword wordlist[] = 100 100 { 101 101 {""}, {""}, {""}, 102 - #line 33 "scripts/genksyms/keywords.gperf" 102 + #line 35 "scripts/genksyms/keywords.gperf" 103 103 {"asm", ASM_KEYW}, 104 104 {""}, 105 105 #line 15 "scripts/genksyms/keywords.gperf" ··· 108 108 #line 16 "scripts/genksyms/keywords.gperf" 109 109 {"__asm__", ASM_KEYW}, 110 110 {""}, {""}, 111 - #line 59 "scripts/genksyms/keywords.gperf" 111 + #line 27 "scripts/genksyms/keywords.gperf" 112 112 {"__typeof__", TYPEOF_KEYW}, 113 113 {""}, 114 114 #line 19 "scripts/genksyms/keywords.gperf" ··· 119 119 {"__const__", CONST_KEYW}, 120 120 #line 25 "scripts/genksyms/keywords.gperf" 121 121 {"__signed__", SIGNED_KEYW}, 122 - #line 51 "scripts/genksyms/keywords.gperf" 122 + #line 53 "scripts/genksyms/keywords.gperf" 123 123 {"static", STATIC_KEYW}, 124 124 {""}, 125 - #line 46 "scripts/genksyms/keywords.gperf" 125 + #line 48 "scripts/genksyms/keywords.gperf" 126 126 {"int", INT_KEYW}, 127 - #line 39 "scripts/genksyms/keywords.gperf" 127 + #line 41 "scripts/genksyms/keywords.gperf" 128 128 {"char", CHAR_KEYW}, 129 - #line 40 "scripts/genksyms/keywords.gperf" 129 + #line 42 "scripts/genksyms/keywords.gperf" 130 130 {"const", CONST_KEYW}, 131 - #line 52 "scripts/genksyms/keywords.gperf" 131 + #line 54 "scripts/genksyms/keywords.gperf" 132 132 {"struct", STRUCT_KEYW}, 133 - #line 31 "scripts/genksyms/keywords.gperf" 133 + #line 33 "scripts/genksyms/keywords.gperf" 134 134 {"__restrict__", RESTRICT_KEYW}, 135 - #line 32 "scripts/genksyms/keywords.gperf" 135 + #line 34 "scripts/genksyms/keywords.gperf" 136 136 {"restrict", RESTRICT_KEYW}, 137 137 #line 12 "scripts/genksyms/keywords.gperf" 138 138 {"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW}, 139 139 #line 23 "scripts/genksyms/keywords.gperf" 140 140 {"__inline__", INLINE_KEYW}, 141 141 {""}, 142 - #line 27 "scripts/genksyms/keywords.gperf" 142 + #line 29 "scripts/genksyms/keywords.gperf" 143 143 {"__volatile__", VOLATILE_KEYW}, 144 144 #line 10 "scripts/genksyms/keywords.gperf" 145 145 {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW}, 146 - #line 30 "scripts/genksyms/keywords.gperf" 146 + #line 32 "scripts/genksyms/keywords.gperf" 147 147 {"_restrict", RESTRICT_KEYW}, 148 148 {""}, 149 149 #line 17 "scripts/genksyms/keywords.gperf" ··· 152 152 {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, 153 153 #line 21 "scripts/genksyms/keywords.gperf" 154 154 {"__extension__", EXTENSION_KEYW}, 155 - #line 42 "scripts/genksyms/keywords.gperf" 155 + #line 44 "scripts/genksyms/keywords.gperf" 156 156 {"enum", ENUM_KEYW}, 157 157 #line 13 "scripts/genksyms/keywords.gperf" 158 158 {"EXPORT_UNUSED_SYMBOL", EXPORT_SYMBOL_KEYW}, 159 - #line 43 "scripts/genksyms/keywords.gperf" 159 + #line 45 "scripts/genksyms/keywords.gperf" 160 160 {"extern", EXTERN_KEYW}, 161 161 {""}, 162 162 #line 24 "scripts/genksyms/keywords.gperf" 163 163 {"__signed", SIGNED_KEYW}, 164 164 #line 14 "scripts/genksyms/keywords.gperf" 165 165 {"EXPORT_UNUSED_SYMBOL_GPL", EXPORT_SYMBOL_KEYW}, 166 - #line 54 "scripts/genksyms/keywords.gperf" 166 + #line 57 "scripts/genksyms/keywords.gperf" 167 167 {"union", UNION_KEYW}, 168 - #line 58 "scripts/genksyms/keywords.gperf" 169 - {"typeof", TYPEOF_KEYW}, 170 - #line 53 "scripts/genksyms/keywords.gperf" 171 - {"typedef", TYPEDEF_KEYW}, 168 + {""}, {""}, 172 169 #line 22 "scripts/genksyms/keywords.gperf" 173 170 {"__inline", INLINE_KEYW}, 174 - #line 38 "scripts/genksyms/keywords.gperf" 171 + #line 40 "scripts/genksyms/keywords.gperf" 175 172 {"auto", AUTO_KEYW}, 176 - #line 26 "scripts/genksyms/keywords.gperf" 173 + #line 28 "scripts/genksyms/keywords.gperf" 177 174 {"__volatile", VOLATILE_KEYW}, 178 175 {""}, {""}, 179 - #line 55 "scripts/genksyms/keywords.gperf" 176 + #line 58 "scripts/genksyms/keywords.gperf" 180 177 {"unsigned", UNSIGNED_KEYW}, 181 178 {""}, 182 - #line 49 "scripts/genksyms/keywords.gperf" 179 + #line 51 "scripts/genksyms/keywords.gperf" 183 180 {"short", SHORT_KEYW}, 184 - #line 45 "scripts/genksyms/keywords.gperf" 181 + #line 47 "scripts/genksyms/keywords.gperf" 185 182 {"inline", INLINE_KEYW}, 186 183 {""}, 187 - #line 57 "scripts/genksyms/keywords.gperf" 184 + #line 60 "scripts/genksyms/keywords.gperf" 188 185 {"volatile", VOLATILE_KEYW}, 189 - #line 47 "scripts/genksyms/keywords.gperf" 186 + #line 49 "scripts/genksyms/keywords.gperf" 190 187 {"long", LONG_KEYW}, 191 - #line 29 "scripts/genksyms/keywords.gperf" 188 + #line 31 "scripts/genksyms/keywords.gperf" 192 189 {"_Bool", BOOL_KEYW}, 193 190 {""}, {""}, 194 - #line 48 "scripts/genksyms/keywords.gperf" 195 - {"register", REGISTER_KEYW}, 196 - #line 56 "scripts/genksyms/keywords.gperf" 197 - {"void", VOID_KEYW}, 198 - #line 44 "scripts/genksyms/keywords.gperf" 199 - {"float", FLOAT_KEYW}, 200 - #line 41 "scripts/genksyms/keywords.gperf" 201 - {"double", DOUBLE_KEYW}, 202 - {""}, {""}, {""}, {""}, 203 191 #line 50 "scripts/genksyms/keywords.gperf" 204 - {"signed", SIGNED_KEYW} 192 + {"register", REGISTER_KEYW}, 193 + #line 59 "scripts/genksyms/keywords.gperf" 194 + {"void", VOID_KEYW}, 195 + {""}, 196 + #line 43 "scripts/genksyms/keywords.gperf" 197 + {"double", DOUBLE_KEYW}, 198 + {""}, 199 + #line 26 "scripts/genksyms/keywords.gperf" 200 + {"__typeof", TYPEOF_KEYW}, 201 + {""}, {""}, 202 + #line 52 "scripts/genksyms/keywords.gperf" 203 + {"signed", SIGNED_KEYW}, 204 + {""}, {""}, {""}, {""}, 205 + #line 56 "scripts/genksyms/keywords.gperf" 206 + {"typeof", TYPEOF_KEYW}, 207 + #line 55 "scripts/genksyms/keywords.gperf" 208 + {"typedef", TYPEDEF_KEYW}, 209 + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, 210 + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, 211 + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, 212 + #line 46 "scripts/genksyms/keywords.gperf" 213 + {"float", FLOAT_KEYW} 205 214 }; 206 215 207 216 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+49 -2
scripts/genksyms/lex.l
··· 129 129 yylex(void) 130 130 { 131 131 static enum { 132 - ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_BRACKET, ST_BRACE, 133 - ST_EXPRESSION, ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4, 132 + ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_TYPEOF, ST_TYPEOF_1, 133 + ST_BRACKET, ST_BRACE, ST_EXPRESSION, 134 + ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4, 134 135 ST_TABLE_5, ST_TABLE_6 135 136 } lexstate = ST_NOTSTARTED; 136 137 ··· 197 196 goto repeat; 198 197 case ASM_KEYW: 199 198 lexstate = ST_ASM; 199 + count = 0; 200 + goto repeat; 201 + case TYPEOF_KEYW: 202 + lexstate = ST_TYPEOF; 200 203 count = 0; 201 204 goto repeat; 202 205 ··· 288 283 goto repeat; 289 284 } 290 285 break; 286 + 287 + case ST_TYPEOF: 288 + switch (token) 289 + { 290 + case '(': 291 + if ( ++count == 1 ) 292 + lexstate = ST_TYPEOF_1; 293 + else 294 + APP; 295 + goto repeat; 296 + case ')': 297 + APP; 298 + if (--count == 0) 299 + { 300 + lexstate = ST_NORMAL; 301 + token = TYPEOF_PHRASE; 302 + break; 303 + } 304 + goto repeat; 305 + default: 306 + APP; 307 + goto repeat; 308 + } 309 + break; 310 + 311 + case ST_TYPEOF_1: 312 + if (token == IDENT) 313 + { 314 + if (is_reserved_word(yytext, yyleng) 315 + || find_symbol(yytext, SYM_TYPEDEF, 1)) 316 + { 317 + yyless(0); 318 + unput('('); 319 + lexstate = ST_NORMAL; 320 + token = TYPEOF_KEYW; 321 + break; 322 + } 323 + _APP("(", 1); 324 + } 325 + APP; 326 + lexstate = ST_TYPEOF; 327 + goto repeat; 291 328 292 329 case ST_BRACKET: 293 330 APP;
+49 -2
scripts/genksyms/lex.lex.c_shipped
··· 1938 1938 yylex(void) 1939 1939 { 1940 1940 static enum { 1941 - ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_BRACKET, ST_BRACE, 1942 - ST_EXPRESSION, ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4, 1941 + ST_NOTSTARTED, ST_NORMAL, ST_ATTRIBUTE, ST_ASM, ST_TYPEOF, ST_TYPEOF_1, 1942 + ST_BRACKET, ST_BRACE, ST_EXPRESSION, 1943 + ST_TABLE_1, ST_TABLE_2, ST_TABLE_3, ST_TABLE_4, 1943 1944 ST_TABLE_5, ST_TABLE_6 1944 1945 } lexstate = ST_NOTSTARTED; 1945 1946 ··· 2006 2005 goto repeat; 2007 2006 case ASM_KEYW: 2008 2007 lexstate = ST_ASM; 2008 + count = 0; 2009 + goto repeat; 2010 + case TYPEOF_KEYW: 2011 + lexstate = ST_TYPEOF; 2009 2012 count = 0; 2010 2013 goto repeat; 2011 2014 ··· 2097 2092 goto repeat; 2098 2093 } 2099 2094 break; 2095 + 2096 + case ST_TYPEOF: 2097 + switch (token) 2098 + { 2099 + case '(': 2100 + if ( ++count == 1 ) 2101 + lexstate = ST_TYPEOF_1; 2102 + else 2103 + APP; 2104 + goto repeat; 2105 + case ')': 2106 + APP; 2107 + if (--count == 0) 2108 + { 2109 + lexstate = ST_NORMAL; 2110 + token = TYPEOF_PHRASE; 2111 + break; 2112 + } 2113 + goto repeat; 2114 + default: 2115 + APP; 2116 + goto repeat; 2117 + } 2118 + break; 2119 + 2120 + case ST_TYPEOF_1: 2121 + if (token == IDENT) 2122 + { 2123 + if (is_reserved_word(yytext, yyleng) 2124 + || find_symbol(yytext, SYM_TYPEDEF, 1)) 2125 + { 2126 + yyless(0); 2127 + unput('('); 2128 + lexstate = ST_NORMAL; 2129 + token = TYPEOF_KEYW; 2130 + break; 2131 + } 2132 + _APP("(", 1); 2133 + } 2134 + APP; 2135 + lexstate = ST_TYPEOF; 2136 + goto repeat; 2100 2137 2101 2138 case ST_BRACKET: 2102 2139 APP;
+308 -300
scripts/genksyms/parse.tab.c_shipped
··· 1 - /* A Bison parser, made by GNU Bison 2.5. */ 1 + /* A Bison parser, made by GNU Bison 2.5.1. */ 2 2 3 3 /* Bison implementation for Yacc-like parsers in C 4 4 5 - Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 5 + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 6 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by ··· 44 44 #define YYBISON 1 45 45 46 46 /* Bison version. */ 47 - #define YYBISON_VERSION "2.5" 47 + #define YYBISON_VERSION "2.5.1" 48 48 49 49 /* Skeleton name. */ 50 50 #define YYSKELETON_NAME "yacc.c" ··· 117 117 118 118 119 119 120 + # ifndef YY_NULL 121 + # if defined __cplusplus && 201103L <= __cplusplus 122 + # define YY_NULL nullptr 123 + # else 124 + # define YY_NULL 0 125 + # endif 126 + # endif 127 + 120 128 /* Enabling traces. */ 121 129 #ifndef YYDEBUG 122 130 # define YYDEBUG 1 ··· 179 171 EXPORT_SYMBOL_KEYW = 284, 180 172 ASM_PHRASE = 285, 181 173 ATTRIBUTE_PHRASE = 286, 182 - BRACE_PHRASE = 287, 183 - BRACKET_PHRASE = 288, 184 - EXPRESSION_PHRASE = 289, 185 - CHAR = 290, 186 - DOTS = 291, 187 - IDENT = 292, 188 - INT = 293, 189 - REAL = 294, 190 - STRING = 295, 191 - TYPE = 296, 192 - OTHER = 297, 193 - FILENAME = 298 174 + TYPEOF_PHRASE = 287, 175 + BRACE_PHRASE = 288, 176 + BRACKET_PHRASE = 289, 177 + EXPRESSION_PHRASE = 290, 178 + CHAR = 291, 179 + DOTS = 292, 180 + IDENT = 293, 181 + INT = 294, 182 + REAL = 295, 183 + STRING = 296, 184 + TYPE = 297, 185 + OTHER = 298, 186 + FILENAME = 299 194 187 }; 195 188 #endif 196 189 ··· 313 304 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ 314 305 || defined __cplusplus || defined _MSC_VER) 315 306 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ 307 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ 316 308 # ifndef EXIT_SUCCESS 317 309 # define EXIT_SUCCESS 0 318 310 # endif ··· 405 395 #endif 406 396 407 397 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED 408 - /* Copy COUNT objects from FROM to TO. The source and destination do 398 + /* Copy COUNT objects from SRC to DST. The source and destination do 409 399 not overlap. */ 410 400 # ifndef YYCOPY 411 401 # if defined __GNUC__ && 1 < __GNUC__ 412 - # define YYCOPY(To, From, Count) \ 413 - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 402 + # define YYCOPY(Dst, Src, Count) \ 403 + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) 414 404 # else 415 - # define YYCOPY(To, From, Count) \ 416 - do \ 417 - { \ 418 - YYSIZE_T yyi; \ 419 - for (yyi = 0; yyi < (Count); yyi++) \ 420 - (To)[yyi] = (From)[yyi]; \ 421 - } \ 405 + # define YYCOPY(Dst, Src, Count) \ 406 + do \ 407 + { \ 408 + YYSIZE_T yyi; \ 409 + for (yyi = 0; yyi < (Count); yyi++) \ 410 + (Dst)[yyi] = (Src)[yyi]; \ 411 + } \ 422 412 while (YYID (0)) 423 413 # endif 424 414 # endif ··· 427 417 /* YYFINAL -- State number of the termination state. */ 428 418 #define YYFINAL 4 429 419 /* YYLAST -- Last index in YYTABLE. */ 430 - #define YYLAST 532 420 + #define YYLAST 514 431 421 432 422 /* YYNTOKENS -- Number of terminals. */ 433 - #define YYNTOKENS 53 423 + #define YYNTOKENS 54 434 424 /* YYNNTS -- Number of nonterminals. */ 435 425 #define YYNNTS 49 436 426 /* YYNRULES -- Number of rules. */ 437 427 #define YYNRULES 132 438 428 /* YYNRULES -- Number of states. */ 439 - #define YYNSTATES 188 429 + #define YYNSTATES 187 440 430 441 431 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ 442 432 #define YYUNDEFTOK 2 443 - #define YYMAXUTOK 298 433 + #define YYMAXUTOK 299 444 434 445 435 #define YYTRANSLATE(YYX) \ 446 436 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) ··· 452 442 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 453 443 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 454 444 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 455 - 47, 49, 48, 2, 46, 2, 2, 2, 2, 2, 456 - 2, 2, 2, 2, 2, 2, 2, 2, 52, 44, 457 - 2, 50, 2, 2, 2, 2, 2, 2, 2, 2, 445 + 48, 49, 50, 2, 47, 2, 2, 2, 2, 2, 446 + 2, 2, 2, 2, 2, 2, 2, 2, 53, 45, 447 + 2, 51, 2, 2, 2, 2, 2, 2, 2, 2, 458 448 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 459 449 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 460 450 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 461 451 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 462 452 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 463 - 2, 2, 2, 51, 2, 45, 2, 2, 2, 2, 453 + 2, 2, 2, 52, 2, 46, 2, 2, 2, 2, 464 454 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 465 455 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 466 456 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ··· 477 467 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 478 468 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 479 469 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 480 - 35, 36, 37, 38, 39, 40, 41, 42, 43 470 + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 481 471 }; 482 472 483 473 #if YYDEBUG ··· 488 478 0, 0, 3, 5, 8, 9, 12, 13, 18, 19, 489 479 23, 25, 27, 29, 31, 34, 37, 41, 42, 44, 490 480 46, 50, 55, 56, 58, 60, 63, 65, 67, 69, 491 - 71, 73, 75, 77, 79, 81, 87, 92, 95, 98, 492 - 101, 105, 109, 113, 116, 119, 122, 124, 126, 128, 493 - 130, 132, 134, 136, 138, 140, 142, 144, 147, 148, 494 - 150, 152, 155, 157, 159, 161, 163, 166, 168, 170, 495 - 175, 180, 183, 187, 191, 194, 196, 198, 200, 205, 496 - 210, 213, 217, 221, 224, 226, 230, 231, 233, 235, 497 - 239, 242, 245, 247, 248, 250, 252, 257, 262, 265, 498 - 269, 273, 277, 278, 280, 283, 287, 291, 292, 294, 499 - 296, 299, 303, 306, 307, 309, 311, 315, 318, 321, 500 - 323, 326, 327, 330, 334, 339, 341, 345, 347, 351, 501 - 354, 355, 357 481 + 71, 73, 75, 77, 79, 81, 86, 88, 91, 94, 482 + 97, 101, 105, 109, 112, 115, 118, 120, 122, 124, 483 + 126, 128, 130, 132, 134, 136, 138, 140, 143, 144, 484 + 146, 148, 151, 153, 155, 157, 159, 162, 164, 166, 485 + 171, 176, 179, 183, 187, 190, 192, 194, 196, 201, 486 + 206, 209, 213, 217, 220, 222, 226, 227, 229, 231, 487 + 235, 238, 241, 243, 244, 246, 248, 253, 258, 261, 488 + 265, 269, 273, 274, 276, 279, 283, 287, 288, 290, 489 + 292, 295, 299, 302, 303, 305, 307, 311, 314, 317, 490 + 319, 322, 323, 326, 330, 335, 337, 341, 343, 347, 491 + 350, 351, 353 502 492 }; 503 493 504 494 /* YYRHS -- A `-1'-separated list of the rules' RHS. */ 505 495 static const yytype_int8 yyrhs[] = 506 496 { 507 - 54, 0, -1, 55, -1, 54, 55, -1, -1, 56, 508 - 57, -1, -1, 12, 23, 58, 60, -1, -1, 23, 509 - 59, 60, -1, 60, -1, 84, -1, 99, -1, 101, 510 - -1, 1, 44, -1, 1, 45, -1, 64, 61, 44, 511 - -1, -1, 62, -1, 63, -1, 62, 46, 63, -1, 512 - 74, 100, 95, 85, -1, -1, 65, -1, 66, -1, 513 - 65, 66, -1, 67, -1, 68, -1, 5, -1, 17, 514 - -1, 21, -1, 11, -1, 14, -1, 69, -1, 73, 515 - -1, 28, 47, 65, 48, 49, -1, 28, 47, 65, 516 - 49, -1, 22, 37, -1, 24, 37, -1, 10, 37, 517 - -1, 22, 37, 87, -1, 24, 37, 87, -1, 10, 518 - 37, 96, -1, 10, 96, -1, 22, 87, -1, 24, 519 - 87, -1, 7, -1, 19, -1, 15, -1, 16, -1, 520 - 20, -1, 25, -1, 13, -1, 9, -1, 26, -1, 521 - 6, -1, 41, -1, 48, 71, -1, -1, 72, -1, 522 - 73, -1, 72, 73, -1, 8, -1, 27, -1, 31, 523 - -1, 18, -1, 70, 74, -1, 75, -1, 37, -1, 524 - 75, 47, 78, 49, -1, 75, 47, 1, 49, -1, 525 - 75, 33, -1, 47, 74, 49, -1, 47, 1, 49, 526 - -1, 70, 76, -1, 77, -1, 37, -1, 41, -1, 527 - 77, 47, 78, 49, -1, 77, 47, 1, 49, -1, 528 - 77, 33, -1, 47, 76, 49, -1, 47, 1, 49, 529 - -1, 79, 36, -1, 79, -1, 80, 46, 36, -1, 530 - -1, 80, -1, 81, -1, 80, 46, 81, -1, 65, 531 - 82, -1, 70, 82, -1, 83, -1, -1, 37, -1, 532 - 41, -1, 83, 47, 78, 49, -1, 83, 47, 1, 533 - 49, -1, 83, 33, -1, 47, 82, 49, -1, 47, 534 - 1, 49, -1, 64, 74, 32, -1, -1, 86, -1, 535 - 50, 34, -1, 51, 88, 45, -1, 51, 1, 45, 536 - -1, -1, 89, -1, 90, -1, 89, 90, -1, 64, 537 - 91, 44, -1, 1, 44, -1, -1, 92, -1, 93, 538 - -1, 92, 46, 93, -1, 76, 95, -1, 37, 94, 539 - -1, 94, -1, 52, 34, -1, -1, 95, 31, -1, 540 - 51, 97, 45, -1, 51, 97, 46, 45, -1, 98, 541 - -1, 97, 46, 98, -1, 37, -1, 37, 50, 34, 542 - -1, 30, 44, -1, -1, 30, -1, 29, 47, 37, 543 - 49, 44, -1 497 + 55, 0, -1, 56, -1, 55, 56, -1, -1, 57, 498 + 58, -1, -1, 12, 23, 59, 61, -1, -1, 23, 499 + 60, 61, -1, 61, -1, 85, -1, 100, -1, 102, 500 + -1, 1, 45, -1, 1, 46, -1, 65, 62, 45, 501 + -1, -1, 63, -1, 64, -1, 63, 47, 64, -1, 502 + 75, 101, 96, 86, -1, -1, 66, -1, 67, -1, 503 + 66, 67, -1, 68, -1, 69, -1, 5, -1, 17, 504 + -1, 21, -1, 11, -1, 14, -1, 70, -1, 74, 505 + -1, 28, 48, 82, 49, -1, 32, -1, 22, 38, 506 + -1, 24, 38, -1, 10, 38, -1, 22, 38, 88, 507 + -1, 24, 38, 88, -1, 10, 38, 97, -1, 10, 508 + 97, -1, 22, 88, -1, 24, 88, -1, 7, -1, 509 + 19, -1, 15, -1, 16, -1, 20, -1, 25, -1, 510 + 13, -1, 9, -1, 26, -1, 6, -1, 42, -1, 511 + 50, 72, -1, -1, 73, -1, 74, -1, 73, 74, 512 + -1, 8, -1, 27, -1, 31, -1, 18, -1, 71, 513 + 75, -1, 76, -1, 38, -1, 76, 48, 79, 49, 514 + -1, 76, 48, 1, 49, -1, 76, 34, -1, 48, 515 + 75, 49, -1, 48, 1, 49, -1, 71, 77, -1, 516 + 78, -1, 38, -1, 42, -1, 78, 48, 79, 49, 517 + -1, 78, 48, 1, 49, -1, 78, 34, -1, 48, 518 + 77, 49, -1, 48, 1, 49, -1, 80, 37, -1, 519 + 80, -1, 81, 47, 37, -1, -1, 81, -1, 82, 520 + -1, 81, 47, 82, -1, 66, 83, -1, 71, 83, 521 + -1, 84, -1, -1, 38, -1, 42, -1, 84, 48, 522 + 79, 49, -1, 84, 48, 1, 49, -1, 84, 34, 523 + -1, 48, 83, 49, -1, 48, 1, 49, -1, 65, 524 + 75, 33, -1, -1, 87, -1, 51, 35, -1, 52, 525 + 89, 46, -1, 52, 1, 46, -1, -1, 90, -1, 526 + 91, -1, 90, 91, -1, 65, 92, 45, -1, 1, 527 + 45, -1, -1, 93, -1, 94, -1, 93, 47, 94, 528 + -1, 77, 96, -1, 38, 95, -1, 95, -1, 53, 529 + 35, -1, -1, 96, 31, -1, 52, 98, 46, -1, 530 + 52, 98, 47, 46, -1, 99, -1, 98, 47, 99, 531 + -1, 38, -1, 38, 51, 35, -1, 30, 45, -1, 532 + -1, 30, -1, 29, 48, 38, 49, 45, -1 544 533 }; 545 534 546 535 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ 547 536 static const yytype_uint16 yyrline[] = 548 537 { 549 - 0, 123, 123, 124, 128, 128, 134, 134, 136, 136, 550 - 138, 139, 140, 141, 142, 143, 147, 161, 162, 166, 551 - 174, 187, 193, 194, 198, 199, 203, 209, 213, 214, 552 - 215, 216, 217, 221, 222, 223, 224, 228, 230, 232, 553 - 236, 238, 240, 245, 248, 249, 253, 254, 255, 256, 554 - 257, 258, 259, 260, 261, 262, 263, 267, 272, 273, 555 - 277, 278, 282, 282, 282, 283, 291, 292, 296, 305, 556 - 307, 309, 311, 313, 320, 321, 325, 326, 327, 329, 557 - 331, 333, 335, 340, 341, 342, 346, 347, 351, 352, 558 - 357, 362, 364, 368, 369, 377, 381, 383, 385, 387, 559 - 389, 394, 403, 404, 409, 414, 415, 419, 420, 424, 560 - 425, 429, 431, 436, 437, 441, 442, 446, 447, 448, 561 - 452, 456, 457, 461, 462, 466, 467, 470, 475, 483, 562 - 487, 488, 492 538 + 0, 124, 124, 125, 129, 129, 135, 135, 137, 137, 539 + 139, 140, 141, 142, 143, 144, 148, 162, 163, 167, 540 + 175, 188, 194, 195, 199, 200, 204, 210, 214, 215, 541 + 216, 217, 218, 222, 223, 224, 225, 229, 231, 233, 542 + 237, 239, 241, 246, 249, 250, 254, 255, 256, 257, 543 + 258, 259, 260, 261, 262, 263, 264, 268, 273, 274, 544 + 278, 279, 283, 283, 283, 284, 292, 293, 297, 306, 545 + 308, 310, 312, 314, 321, 322, 326, 327, 328, 330, 546 + 332, 334, 336, 341, 342, 343, 347, 348, 352, 353, 547 + 358, 363, 365, 369, 370, 378, 382, 384, 386, 388, 548 + 390, 395, 404, 405, 410, 415, 416, 420, 421, 425, 549 + 426, 430, 432, 437, 438, 442, 443, 447, 448, 449, 550 + 453, 457, 458, 462, 463, 467, 468, 471, 476, 484, 551 + 488, 489, 493 563 552 }; 564 553 #endif 565 554 ··· 574 565 "SHORT_KEYW", "SIGNED_KEYW", "STATIC_KEYW", "STRUCT_KEYW", 575 566 "TYPEDEF_KEYW", "UNION_KEYW", "UNSIGNED_KEYW", "VOID_KEYW", 576 567 "VOLATILE_KEYW", "TYPEOF_KEYW", "EXPORT_SYMBOL_KEYW", "ASM_PHRASE", 577 - "ATTRIBUTE_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE", 568 + "ATTRIBUTE_PHRASE", "TYPEOF_PHRASE", "BRACE_PHRASE", "BRACKET_PHRASE", 578 569 "EXPRESSION_PHRASE", "CHAR", "DOTS", "IDENT", "INT", "REAL", "STRING", 579 - "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "'*'", "')'", 570 + "TYPE", "OTHER", "FILENAME", "';'", "'}'", "','", "'('", "')'", "'*'", 580 571 "'='", "'{'", "':'", "$accept", "declaration_seq", "declaration", "$@1", 581 572 "declaration1", "$@2", "$@3", "simple_declaration", 582 573 "init_declarator_list_opt", "init_declarator_list", "init_declarator", ··· 593 584 "member_declarator_list_opt", "member_declarator_list", 594 585 "member_declarator", "member_bitfield_declarator", "attribute_opt", 595 586 "enum_body", "enumerator_list", "enumerator", "asm_definition", 596 - "asm_phrase_opt", "export_definition", 0 587 + "asm_phrase_opt", "export_definition", YY_NULL 597 588 }; 598 589 #endif 599 590 ··· 606 597 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 607 598 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 608 599 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 609 - 295, 296, 297, 298, 59, 125, 44, 40, 42, 41, 610 - 61, 123, 58 600 + 295, 296, 297, 298, 299, 59, 125, 44, 40, 41, 601 + 42, 61, 123, 58 611 602 }; 612 603 # endif 613 604 614 605 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ 615 606 static const yytype_uint8 yyr1[] = 616 607 { 617 - 0, 53, 54, 54, 56, 55, 58, 57, 59, 57, 618 - 57, 57, 57, 57, 57, 57, 60, 61, 61, 62, 619 - 62, 63, 64, 64, 65, 65, 66, 66, 67, 67, 620 - 67, 67, 67, 68, 68, 68, 68, 68, 68, 68, 621 - 68, 68, 68, 68, 68, 68, 69, 69, 69, 69, 622 - 69, 69, 69, 69, 69, 69, 69, 70, 71, 71, 623 - 72, 72, 73, 73, 73, 73, 74, 74, 75, 75, 624 - 75, 75, 75, 75, 76, 76, 77, 77, 77, 77, 625 - 77, 77, 77, 78, 78, 78, 79, 79, 80, 80, 626 - 81, 82, 82, 83, 83, 83, 83, 83, 83, 83, 627 - 83, 84, 85, 85, 86, 87, 87, 88, 88, 89, 628 - 89, 90, 90, 91, 91, 92, 92, 93, 93, 93, 629 - 94, 95, 95, 96, 96, 97, 97, 98, 98, 99, 630 - 100, 100, 101 608 + 0, 54, 55, 55, 57, 56, 59, 58, 60, 58, 609 + 58, 58, 58, 58, 58, 58, 61, 62, 62, 63, 610 + 63, 64, 65, 65, 66, 66, 67, 67, 68, 68, 611 + 68, 68, 68, 69, 69, 69, 69, 69, 69, 69, 612 + 69, 69, 69, 69, 69, 69, 70, 70, 70, 70, 613 + 70, 70, 70, 70, 70, 70, 70, 71, 72, 72, 614 + 73, 73, 74, 74, 74, 74, 75, 75, 76, 76, 615 + 76, 76, 76, 76, 77, 77, 78, 78, 78, 78, 616 + 78, 78, 78, 79, 79, 79, 80, 80, 81, 81, 617 + 82, 83, 83, 84, 84, 84, 84, 84, 84, 84, 618 + 84, 85, 86, 86, 87, 88, 88, 89, 89, 90, 619 + 90, 91, 91, 92, 92, 93, 93, 94, 94, 94, 620 + 95, 96, 96, 97, 97, 98, 98, 99, 99, 100, 621 + 101, 101, 102 631 622 }; 632 623 633 624 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ ··· 636 627 0, 2, 1, 2, 0, 2, 0, 4, 0, 3, 637 628 1, 1, 1, 1, 2, 2, 3, 0, 1, 1, 638 629 3, 4, 0, 1, 1, 2, 1, 1, 1, 1, 639 - 1, 1, 1, 1, 1, 5, 4, 2, 2, 2, 630 + 1, 1, 1, 1, 1, 4, 1, 2, 2, 2, 640 631 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 641 632 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, 642 633 1, 2, 1, 1, 1, 1, 2, 1, 1, 4, ··· 657 648 4, 4, 2, 0, 1, 3, 0, 28, 55, 46, 658 649 62, 53, 0, 31, 0, 52, 32, 48, 49, 29, 659 650 65, 47, 50, 30, 0, 8, 0, 51, 54, 63, 660 - 0, 0, 0, 64, 56, 5, 10, 17, 23, 24, 661 - 26, 27, 33, 34, 11, 12, 13, 14, 15, 39, 662 - 0, 43, 6, 37, 0, 44, 22, 38, 45, 0, 663 - 0, 129, 68, 0, 58, 0, 18, 19, 0, 130, 664 - 67, 25, 42, 127, 0, 125, 22, 40, 0, 113, 665 - 0, 0, 109, 9, 17, 41, 0, 0, 0, 0, 666 - 57, 59, 60, 16, 0, 66, 131, 101, 121, 71, 667 - 0, 0, 123, 0, 7, 112, 106, 76, 77, 0, 668 - 0, 0, 121, 75, 0, 114, 115, 119, 105, 0, 669 - 110, 130, 0, 36, 0, 73, 72, 61, 20, 102, 670 - 0, 93, 0, 84, 87, 88, 128, 124, 126, 118, 671 - 0, 76, 0, 120, 74, 117, 80, 0, 111, 0, 672 - 35, 132, 122, 0, 21, 103, 70, 94, 56, 0, 673 - 93, 90, 92, 69, 83, 0, 82, 81, 0, 0, 674 - 116, 104, 0, 95, 0, 91, 98, 0, 85, 89, 675 - 79, 78, 100, 99, 0, 0, 97, 96 651 + 0, 0, 0, 64, 36, 56, 5, 10, 17, 23, 652 + 24, 26, 27, 33, 34, 11, 12, 13, 14, 15, 653 + 39, 0, 43, 6, 37, 0, 44, 22, 38, 45, 654 + 0, 0, 129, 68, 0, 58, 0, 18, 19, 0, 655 + 130, 67, 25, 42, 127, 0, 125, 22, 40, 0, 656 + 113, 0, 0, 109, 9, 17, 41, 93, 0, 0, 657 + 0, 0, 57, 59, 60, 16, 0, 66, 131, 101, 658 + 121, 71, 0, 0, 123, 0, 7, 112, 106, 76, 659 + 77, 0, 0, 0, 121, 75, 0, 114, 115, 119, 660 + 105, 0, 110, 130, 94, 56, 0, 93, 90, 92, 661 + 35, 0, 73, 72, 61, 20, 102, 0, 0, 84, 662 + 87, 88, 128, 124, 126, 118, 0, 76, 0, 120, 663 + 74, 117, 80, 0, 111, 0, 0, 95, 0, 91, 664 + 98, 0, 132, 122, 0, 21, 103, 70, 69, 83, 665 + 0, 82, 81, 0, 0, 116, 100, 99, 0, 0, 666 + 104, 85, 89, 79, 78, 97, 96 676 667 }; 677 668 678 669 /* YYDEFGOTO[NTERM-NUM]. */ 679 670 static const yytype_int16 yydefgoto[] = 680 671 { 681 - -1, 1, 2, 3, 35, 76, 56, 36, 65, 66, 682 - 67, 79, 38, 39, 40, 41, 42, 68, 90, 91, 683 - 43, 121, 70, 112, 113, 132, 133, 134, 135, 161, 684 - 162, 44, 154, 155, 55, 80, 81, 82, 114, 115, 685 - 116, 117, 129, 51, 74, 75, 45, 98, 46 672 + -1, 1, 2, 3, 36, 77, 57, 37, 66, 67, 673 + 68, 80, 39, 40, 41, 42, 43, 69, 92, 93, 674 + 44, 123, 71, 114, 115, 138, 139, 140, 141, 128, 675 + 129, 45, 165, 166, 56, 81, 82, 83, 116, 117, 676 + 118, 119, 136, 52, 75, 76, 46, 100, 47 686 677 }; 687 678 688 679 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing 689 680 STATE-NUM. */ 690 - #define YYPACT_NINF -135 681 + #define YYPACT_NINF -140 691 682 static const yytype_int16 yypact[] = 692 683 { 693 - -135, 20, -135, 321, -135, -135, 30, -135, -135, -135, 694 - -135, -135, -28, -135, 2, -135, -135, -135, -135, -135, 695 - -135, -135, -135, -135, -6, -135, 9, -135, -135, -135, 696 - -5, 15, -17, -135, -135, -135, -135, 18, 491, -135, 697 - -135, -135, -135, -135, -135, -135, -135, -135, -135, -22, 698 - 31, -135, -135, 19, 106, -135, 491, 19, -135, 491, 699 - 50, -135, -135, 11, -3, 51, 57, -135, 18, -14, 700 - 14, -135, -135, 48, 46, -135, 491, -135, 33, 32, 701 - 59, 154, -135, -135, 18, -135, 365, 56, 60, 61, 702 - -135, -3, -135, -135, 18, -135, -135, -135, -135, -135, 703 - 202, 74, -135, -23, -135, -135, -135, 77, -135, 16, 704 - 101, 49, -135, 34, 92, 93, -135, -135, -135, 94, 705 - -135, 110, 95, -135, 97, -135, -135, -135, -135, -20, 706 - 96, 410, 99, 113, 100, -135, -135, -135, -135, -135, 707 - 103, -135, 107, -135, -135, 111, -135, 239, -135, 32, 708 - -135, -135, -135, 123, -135, -135, -135, -135, -135, 3, 709 - 52, -135, 38, -135, -135, 454, -135, -135, 117, 128, 710 - -135, -135, 134, -135, 135, -135, -135, 276, -135, -135, 711 - -135, -135, -135, -135, 137, 138, -135, -135 684 + -140, 29, -140, 207, -140, -140, 40, -140, -140, -140, 685 + -140, -140, -27, -140, 44, -140, -140, -140, -140, -140, 686 + -140, -140, -140, -140, -22, -140, -18, -140, -140, -140, 687 + -9, 22, 28, -140, -140, -140, -140, -140, 42, 472, 688 + -140, -140, -140, -140, -140, -140, -140, -140, -140, -140, 689 + 46, 43, -140, -140, 47, 107, -140, 472, 47, -140, 690 + 472, 62, -140, -140, 16, -3, 57, 56, -140, 42, 691 + 35, -11, -140, -140, 53, 48, -140, 472, -140, 51, 692 + 21, 59, 157, -140, -140, 42, -140, 388, 58, 60, 693 + 70, 81, -140, -3, -140, -140, 42, -140, -140, -140, 694 + -140, -140, 253, 71, -140, -20, -140, -140, -140, 83, 695 + -140, 5, 102, 34, -140, 12, 95, 94, -140, -140, 696 + -140, 97, -140, 113, -140, -140, 2, 41, -140, 27, 697 + -140, 99, -140, -140, -140, -140, -24, 98, 101, 109, 698 + 104, -140, -140, -140, -140, -140, 105, -140, 110, -140, 699 + -140, 117, -140, 298, -140, 21, 112, -140, 120, -140, 700 + -140, 343, -140, -140, 121, -140, -140, -140, -140, -140, 701 + 434, -140, -140, 131, 137, -140, -140, -140, 138, 141, 702 + -140, -140, -140, -140, -140, -140, -140 712 703 }; 713 704 714 705 /* YYPGOTO[NTERM-NUM]. */ 715 706 static const yytype_int16 yypgoto[] = 716 707 { 717 - -135, -135, 187, -135, -135, -135, -135, -50, -135, -135, 718 - 98, 0, -59, -37, -135, -135, -135, -77, -135, -135, 719 - -54, -30, -135, -90, -135, -134, -135, -135, 24, -58, 720 - -135, -135, -135, -135, -18, -135, -135, 109, -135, -135, 721 - 44, 87, 84, 148, -135, 102, -135, -135, -135 708 + -140, -140, 190, -140, -140, -140, -140, -45, -140, -140, 709 + 96, 1, -60, -31, -140, -140, -140, -78, -140, -140, 710 + -55, -7, -140, -92, -140, -139, -140, -140, -59, -39, 711 + -140, -140, -140, -140, -13, -140, -140, 111, -140, -140, 712 + 39, 87, 84, 147, -140, 106, -140, -140, -140 722 713 }; 723 714 724 715 /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If ··· 727 718 #define YYTABLE_NINF -109 728 719 static const yytype_int16 yytable[] = 729 720 { 730 - 86, 71, 111, 37, 172, 10, 83, 69, 58, 49, 731 - 92, 152, 88, 169, 73, 20, 96, 140, 97, 142, 732 - 4, 144, 137, 50, 29, 52, 104, 61, 33, 50, 733 - 153, 53, 111, 89, 111, 77, -93, 127, 95, 85, 734 - 157, 131, 59, 185, 173, 54, 57, 99, 62, 71, 735 - 159, 64, -93, 141, 160, 62, 84, 108, 63, 64, 736 - 54, 100, 60, 109, 64, 63, 64, 146, 73, 107, 737 - 54, 176, 111, 108, 47, 48, 84, 105, 106, 109, 738 - 64, 147, 160, 160, 110, 177, 141, 87, 131, 157, 739 - 108, 102, 103, 173, 71, 93, 109, 64, 101, 159, 740 - 64, 174, 175, 94, 118, 124, 131, 78, 136, 125, 741 - 126, 7, 8, 9, 10, 11, 12, 13, 131, 15, 742 - 16, 17, 18, 19, 20, 21, 22, 23, 24, 110, 743 - 26, 27, 28, 29, 30, 143, 148, 33, 105, 149, 744 - 96, 151, 152, -22, 150, 156, 165, 34, 163, 164, 745 - -22, -107, 166, -22, -22, 119, 167, 171, -22, 7, 746 - 8, 9, 10, 11, 12, 13, 180, 15, 16, 17, 747 - 18, 19, 20, 21, 22, 23, 24, 181, 26, 27, 748 - 28, 29, 30, 182, 183, 33, 186, 187, 5, 179, 749 - 120, -22, 128, 170, 139, 34, 145, 72, -22, -108, 750 - 0, -22, -22, 130, 0, 138, -22, 7, 8, 9, 751 - 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 752 - 20, 21, 22, 23, 24, 0, 26, 27, 28, 29, 753 - 30, 0, 0, 33, 0, 0, 0, 0, -86, 0, 754 - 168, 0, 0, 34, 7, 8, 9, 10, 11, 12, 755 - 13, -86, 15, 16, 17, 18, 19, 20, 21, 22, 756 - 23, 24, 0, 26, 27, 28, 29, 30, 0, 0, 757 - 33, 0, 0, 0, 0, -86, 0, 184, 0, 0, 758 - 34, 7, 8, 9, 10, 11, 12, 13, -86, 15, 759 - 16, 17, 18, 19, 20, 21, 22, 23, 24, 0, 760 - 26, 27, 28, 29, 30, 0, 0, 33, 0, 0, 761 - 0, 0, -86, 0, 0, 0, 0, 34, 0, 0, 762 - 0, 0, 6, 0, 0, -86, 7, 8, 9, 10, 763 - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 764 - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 765 - 31, 32, 33, 0, 0, 0, 0, 0, -22, 0, 766 - 0, 0, 34, 0, 0, -22, 0, 0, -22, -22, 767 - 7, 8, 9, 10, 11, 12, 13, 0, 15, 16, 768 - 17, 18, 19, 20, 21, 22, 23, 24, 0, 26, 769 - 27, 28, 29, 30, 0, 0, 33, 0, 0, 0, 770 - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 771 - 0, 0, 0, 122, 123, 7, 8, 9, 10, 11, 772 - 12, 13, 0, 15, 16, 17, 18, 19, 20, 21, 773 - 22, 23, 24, 0, 26, 27, 28, 29, 30, 0, 774 - 0, 33, 0, 0, 0, 0, 0, 157, 0, 0, 775 - 0, 158, 0, 0, 0, 0, 0, 159, 64, 7, 721 + 87, 88, 113, 156, 38, 10, 146, 163, 72, 127, 722 + 94, 50, 84, 59, 174, 20, 54, 90, 74, 148, 723 + 58, 150, 179, 101, 29, 51, 143, 164, 33, 4, 724 + 55, 70, 106, 113, 55, 113, -93, 102, 134, 60, 725 + 124, 78, 87, 147, 157, 86, 152, 110, 127, 127, 726 + 126, -93, 65, 111, 63, 65, 72, 91, 85, 109, 727 + 153, 160, 97, 110, 64, 98, 65, 53, 99, 111, 728 + 61, 65, 147, 62, 112, 161, 110, 113, 85, 124, 729 + 63, 74, 111, 157, 65, 48, 49, 158, 159, 126, 730 + 64, 65, 65, 87, 104, 105, 107, 108, 51, 55, 731 + 89, 87, 95, 96, 103, 120, 142, 130, 79, 131, 732 + 87, 182, 7, 8, 9, 10, 11, 12, 13, 132, 733 + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 734 + 133, 26, 27, 28, 29, 30, 112, 149, 33, 34, 735 + 154, 155, 107, 98, 162, -22, 169, 167, 163, 35, 736 + 168, 170, -22, -107, 171, -22, 180, -22, 121, 172, 737 + -22, 176, 7, 8, 9, 10, 11, 12, 13, 177, 738 + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 739 + 183, 26, 27, 28, 29, 30, 184, 185, 33, 34, 740 + 186, 5, 135, 122, 175, -22, 145, 73, 151, 35, 741 + 0, 0, -22, -108, 0, -22, 0, -22, 6, 0, 742 + -22, 144, 7, 8, 9, 10, 11, 12, 13, 14, 743 + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 744 + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 745 + 0, 0, 0, 0, 0, -22, 0, 0, 0, 35, 746 + 0, 0, -22, 0, 137, -22, 0, -22, 7, 8, 747 + 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 748 + 19, 20, 21, 22, 23, 24, 0, 26, 27, 28, 749 + 29, 30, 0, 0, 33, 34, 0, 0, 0, 0, 750 + -86, 0, 0, 0, 0, 35, 0, 0, 0, 173, 751 + 0, 0, -86, 7, 8, 9, 10, 11, 12, 13, 752 + 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 753 + 24, 0, 26, 27, 28, 29, 30, 0, 0, 33, 754 + 34, 0, 0, 0, 0, -86, 0, 0, 0, 0, 755 + 35, 0, 0, 0, 178, 0, 0, -86, 7, 8, 756 + 9, 10, 11, 12, 13, 0, 15, 16, 17, 18, 757 + 19, 20, 21, 22, 23, 24, 0, 26, 27, 28, 758 + 29, 30, 0, 0, 33, 34, 0, 0, 0, 0, 759 + -86, 0, 0, 0, 0, 35, 0, 0, 0, 0, 760 + 0, 0, -86, 7, 8, 9, 10, 11, 12, 13, 761 + 0, 15, 16, 17, 18, 19, 20, 21, 22, 23, 762 + 24, 0, 26, 27, 28, 29, 30, 0, 0, 33, 763 + 34, 0, 0, 0, 0, 0, 124, 0, 0, 0, 764 + 125, 0, 0, 0, 0, 0, 126, 0, 65, 7, 776 765 8, 9, 10, 11, 12, 13, 0, 15, 16, 17, 777 766 18, 19, 20, 21, 22, 23, 24, 0, 26, 27, 778 - 28, 29, 30, 0, 0, 33, 0, 0, 0, 0, 779 - 178, 0, 0, 0, 0, 34, 7, 8, 9, 10, 780 - 11, 12, 13, 0, 15, 16, 17, 18, 19, 20, 781 - 21, 22, 23, 24, 0, 26, 27, 28, 29, 30, 782 - 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 783 - 0, 0, 34 767 + 28, 29, 30, 0, 0, 33, 34, 0, 0, 0, 768 + 0, 181, 0, 0, 0, 0, 35, 7, 8, 9, 769 + 10, 11, 12, 13, 0, 15, 16, 17, 18, 19, 770 + 20, 21, 22, 23, 24, 0, 26, 27, 28, 29, 771 + 30, 0, 0, 33, 34, 0, 0, 0, 0, 0, 772 + 0, 0, 0, 0, 35 784 773 }; 785 774 786 775 #define yypact_value_is_default(yystate) \ 787 - ((yystate) == (-135)) 776 + ((yystate) == (-140)) 788 777 789 778 #define yytable_value_is_error(yytable_value) \ 790 779 YYID (0) 791 780 792 781 static const yytype_int16 yycheck[] = 793 782 { 794 - 59, 38, 79, 3, 1, 8, 56, 37, 26, 37, 795 - 64, 31, 1, 147, 37, 18, 30, 1, 32, 109, 796 - 0, 111, 45, 51, 27, 23, 76, 44, 31, 51, 797 - 50, 37, 109, 63, 111, 53, 33, 91, 68, 57, 798 - 37, 100, 47, 177, 41, 51, 37, 33, 37, 86, 799 - 47, 48, 49, 37, 131, 37, 56, 41, 47, 48, 800 - 51, 47, 47, 47, 48, 47, 48, 33, 37, 37, 801 - 51, 33, 149, 41, 44, 45, 76, 44, 45, 47, 802 - 48, 47, 159, 160, 52, 47, 37, 37, 147, 37, 803 - 41, 45, 46, 41, 131, 44, 47, 48, 50, 47, 804 - 48, 159, 160, 46, 45, 49, 165, 1, 34, 49, 805 - 49, 5, 6, 7, 8, 9, 10, 11, 177, 13, 806 - 14, 15, 16, 17, 18, 19, 20, 21, 22, 52, 807 - 24, 25, 26, 27, 28, 34, 44, 31, 44, 46, 808 - 30, 44, 31, 37, 49, 49, 46, 41, 49, 36, 809 - 44, 45, 49, 47, 48, 1, 49, 34, 52, 5, 810 - 6, 7, 8, 9, 10, 11, 49, 13, 14, 15, 811 - 16, 17, 18, 19, 20, 21, 22, 49, 24, 25, 812 - 26, 27, 28, 49, 49, 31, 49, 49, 1, 165, 813 - 81, 37, 94, 149, 107, 41, 112, 49, 44, 45, 814 - -1, 47, 48, 1, -1, 103, 52, 5, 6, 7, 815 - 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 816 - 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, 817 - 28, -1, -1, 31, -1, -1, -1, -1, 36, -1, 818 - 1, -1, -1, 41, 5, 6, 7, 8, 9, 10, 819 - 11, 49, 13, 14, 15, 16, 17, 18, 19, 20, 820 - 21, 22, -1, 24, 25, 26, 27, 28, -1, -1, 821 - 31, -1, -1, -1, -1, 36, -1, 1, -1, -1, 822 - 41, 5, 6, 7, 8, 9, 10, 11, 49, 13, 823 - 14, 15, 16, 17, 18, 19, 20, 21, 22, -1, 824 - 24, 25, 26, 27, 28, -1, -1, 31, -1, -1, 825 - -1, -1, 36, -1, -1, -1, -1, 41, -1, -1, 826 - -1, -1, 1, -1, -1, 49, 5, 6, 7, 8, 827 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 828 - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 829 - 29, 30, 31, -1, -1, -1, -1, -1, 37, -1, 830 - -1, -1, 41, -1, -1, 44, -1, -1, 47, 48, 831 - 5, 6, 7, 8, 9, 10, 11, -1, 13, 14, 832 - 15, 16, 17, 18, 19, 20, 21, 22, -1, 24, 833 - 25, 26, 27, 28, -1, -1, 31, -1, -1, -1, 834 - -1, -1, -1, -1, -1, -1, 41, -1, -1, -1, 835 - -1, -1, -1, 48, 49, 5, 6, 7, 8, 9, 836 - 10, 11, -1, 13, 14, 15, 16, 17, 18, 19, 837 - 20, 21, 22, -1, 24, 25, 26, 27, 28, -1, 838 - -1, 31, -1, -1, -1, -1, -1, 37, -1, -1, 839 - -1, 41, -1, -1, -1, -1, -1, 47, 48, 5, 783 + 60, 60, 80, 1, 3, 8, 1, 31, 39, 87, 784 + 65, 38, 57, 26, 153, 18, 38, 1, 38, 111, 785 + 38, 113, 161, 34, 27, 52, 46, 51, 31, 0, 786 + 52, 38, 77, 111, 52, 113, 34, 48, 93, 48, 787 + 38, 54, 102, 38, 42, 58, 34, 42, 126, 127, 788 + 48, 49, 50, 48, 38, 50, 87, 64, 57, 38, 789 + 48, 34, 69, 42, 48, 30, 50, 23, 33, 48, 790 + 48, 50, 38, 45, 53, 48, 42, 155, 77, 38, 791 + 38, 38, 48, 42, 50, 45, 46, 126, 127, 48, 792 + 48, 50, 50, 153, 46, 47, 45, 46, 52, 52, 793 + 38, 161, 45, 47, 51, 46, 35, 49, 1, 49, 794 + 170, 170, 5, 6, 7, 8, 9, 10, 11, 49, 795 + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 796 + 49, 24, 25, 26, 27, 28, 53, 35, 31, 32, 797 + 45, 47, 45, 30, 45, 38, 37, 49, 31, 42, 798 + 49, 47, 45, 46, 49, 48, 35, 50, 1, 49, 799 + 53, 49, 5, 6, 7, 8, 9, 10, 11, 49, 800 + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 801 + 49, 24, 25, 26, 27, 28, 49, 49, 31, 32, 802 + 49, 1, 96, 82, 155, 38, 109, 50, 114, 42, 803 + -1, -1, 45, 46, -1, 48, -1, 50, 1, -1, 804 + 53, 105, 5, 6, 7, 8, 9, 10, 11, 12, 805 + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 806 + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 807 + -1, -1, -1, -1, -1, 38, -1, -1, -1, 42, 808 + -1, -1, 45, -1, 1, 48, -1, 50, 5, 6, 809 + 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 810 + 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 811 + 27, 28, -1, -1, 31, 32, -1, -1, -1, -1, 812 + 37, -1, -1, -1, -1, 42, -1, -1, -1, 1, 813 + -1, -1, 49, 5, 6, 7, 8, 9, 10, 11, 814 + -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 815 + 22, -1, 24, 25, 26, 27, 28, -1, -1, 31, 816 + 32, -1, -1, -1, -1, 37, -1, -1, -1, -1, 817 + 42, -1, -1, -1, 1, -1, -1, 49, 5, 6, 818 + 7, 8, 9, 10, 11, -1, 13, 14, 15, 16, 819 + 17, 18, 19, 20, 21, 22, -1, 24, 25, 26, 820 + 27, 28, -1, -1, 31, 32, -1, -1, -1, -1, 821 + 37, -1, -1, -1, -1, 42, -1, -1, -1, -1, 822 + -1, -1, 49, 5, 6, 7, 8, 9, 10, 11, 823 + -1, 13, 14, 15, 16, 17, 18, 19, 20, 21, 824 + 22, -1, 24, 25, 26, 27, 28, -1, -1, 31, 825 + 32, -1, -1, -1, -1, -1, 38, -1, -1, -1, 826 + 42, -1, -1, -1, -1, -1, 48, -1, 50, 5, 840 827 6, 7, 8, 9, 10, 11, -1, 13, 14, 15, 841 828 16, 17, 18, 19, 20, 21, 22, -1, 24, 25, 842 - 26, 27, 28, -1, -1, 31, -1, -1, -1, -1, 843 - 36, -1, -1, -1, -1, 41, 5, 6, 7, 8, 844 - 9, 10, 11, -1, 13, 14, 15, 16, 17, 18, 845 - 19, 20, 21, 22, -1, 24, 25, 26, 27, 28, 846 - -1, -1, 31, -1, -1, -1, -1, -1, -1, -1, 847 - -1, -1, 41 829 + 26, 27, 28, -1, -1, 31, 32, -1, -1, -1, 830 + -1, 37, -1, -1, -1, -1, 42, 5, 6, 7, 831 + 8, 9, 10, 11, -1, 13, 14, 15, 16, 17, 832 + 18, 19, 20, 21, 22, -1, 24, 25, 26, 27, 833 + 28, -1, -1, 31, 32, -1, -1, -1, -1, -1, 834 + -1, -1, -1, -1, 42 848 835 }; 849 836 850 837 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing 851 838 symbol of state STATE-NUM. */ 852 839 static const yytype_uint8 yystos[] = 853 840 { 854 - 0, 54, 55, 56, 0, 55, 1, 5, 6, 7, 841 + 0, 55, 56, 57, 0, 56, 1, 5, 6, 7, 855 842 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 856 843 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 857 - 28, 29, 30, 31, 41, 57, 60, 64, 65, 66, 858 - 67, 68, 69, 73, 84, 99, 101, 44, 45, 37, 859 - 51, 96, 23, 37, 51, 87, 59, 37, 87, 47, 860 - 47, 44, 37, 47, 48, 61, 62, 63, 70, 74, 861 - 75, 66, 96, 37, 97, 98, 58, 87, 1, 64, 862 - 88, 89, 90, 60, 64, 87, 65, 37, 1, 74, 863 - 71, 72, 73, 44, 46, 74, 30, 32, 100, 33, 864 - 47, 50, 45, 46, 60, 44, 45, 37, 41, 47, 865 - 52, 70, 76, 77, 91, 92, 93, 94, 45, 1, 866 - 90, 74, 48, 49, 49, 49, 49, 73, 63, 95, 867 - 1, 65, 78, 79, 80, 81, 34, 45, 98, 94, 868 - 1, 37, 76, 34, 76, 95, 33, 47, 44, 46, 869 - 49, 44, 31, 50, 85, 86, 49, 37, 41, 47, 870 - 70, 82, 83, 49, 36, 46, 49, 49, 1, 78, 871 - 93, 34, 1, 41, 82, 82, 33, 47, 36, 81, 872 - 49, 49, 49, 49, 1, 78, 49, 49 844 + 28, 29, 30, 31, 32, 42, 58, 61, 65, 66, 845 + 67, 68, 69, 70, 74, 85, 100, 102, 45, 46, 846 + 38, 52, 97, 23, 38, 52, 88, 60, 38, 88, 847 + 48, 48, 45, 38, 48, 50, 62, 63, 64, 71, 848 + 75, 76, 67, 97, 38, 98, 99, 59, 88, 1, 849 + 65, 89, 90, 91, 61, 65, 88, 66, 82, 38, 850 + 1, 75, 72, 73, 74, 45, 47, 75, 30, 33, 851 + 101, 34, 48, 51, 46, 47, 61, 45, 46, 38, 852 + 42, 48, 53, 71, 77, 78, 92, 93, 94, 95, 853 + 46, 1, 91, 75, 38, 42, 48, 71, 83, 84, 854 + 49, 49, 49, 49, 74, 64, 96, 1, 79, 80, 855 + 81, 82, 35, 46, 99, 95, 1, 38, 77, 35, 856 + 77, 96, 34, 48, 45, 47, 1, 42, 83, 83, 857 + 34, 48, 45, 31, 51, 86, 87, 49, 49, 37, 858 + 47, 49, 49, 1, 79, 94, 49, 49, 1, 79, 859 + 35, 37, 82, 49, 49, 49, 49 873 860 }; 874 861 875 862 #define yyerrok (yyerrstatus = 0) ··· 895 890 896 891 #define YYRECOVERING() (!!yyerrstatus) 897 892 898 - #define YYBACKUP(Token, Value) \ 899 - do \ 900 - if (yychar == YYEMPTY && yylen == 1) \ 901 - { \ 902 - yychar = (Token); \ 903 - yylval = (Value); \ 904 - YYPOPSTACK (1); \ 905 - goto yybackup; \ 906 - } \ 907 - else \ 908 - { \ 893 + #define YYBACKUP(Token, Value) \ 894 + do \ 895 + if (yychar == YYEMPTY) \ 896 + { \ 897 + yychar = (Token); \ 898 + yylval = (Value); \ 899 + YYPOPSTACK (yylen); \ 900 + yystate = *yyssp; \ 901 + goto yybackup; \ 902 + } \ 903 + else \ 904 + { \ 909 905 yyerror (YY_("syntax error: cannot back up")); \ 910 906 YYERROR; \ 911 907 } \ ··· 1001 995 YYSTYPE const * const yyvaluep; 1002 996 #endif 1003 997 { 998 + FILE *yyo = yyoutput; 999 + YYUSE (yyo); 1004 1000 if (!yyvaluep) 1005 1001 return; 1006 1002 # ifdef YYPRINT ··· 1254 1246 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, 1255 1247 yytype_int16 *yyssp, int yytoken) 1256 1248 { 1257 - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); 1249 + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); 1258 1250 YYSIZE_T yysize = yysize0; 1259 1251 YYSIZE_T yysize1; 1260 1252 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; 1261 1253 /* Internationalized format string. */ 1262 - const char *yyformat = 0; 1254 + const char *yyformat = YY_NULL; 1263 1255 /* Arguments of yyformat. */ 1264 1256 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; 1265 1257 /* Number of reported tokens (one for the "unexpected", one per ··· 1319 1311 break; 1320 1312 } 1321 1313 yyarg[yycount++] = yytname[yyx]; 1322 - yysize1 = yysize + yytnamerr (0, yytname[yyx]); 1314 + yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); 1323 1315 if (! (yysize <= yysize1 1324 1316 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) 1325 1317 return 2; ··· 1471 1463 `yyss': related to states. 1472 1464 `yyvs': related to semantic values. 1473 1465 1474 - Refer to the stacks thru separate pointers, to allow yyoverflow 1466 + Refer to the stacks through separate pointers, to allow yyoverflow 1475 1467 to reallocate them elsewhere. */ 1476 1468 1477 1469 /* The state stack. */ ··· 2354 2346 yyresult = 1; 2355 2347 goto yyreturn; 2356 2348 2357 - #if !defined(yyoverflow) || YYERROR_VERBOSE 2349 + #if !defined yyoverflow || YYERROR_VERBOSE 2358 2350 /*-------------------------------------------------. 2359 2351 | yyexhaustedlab -- memory exhaustion comes here. | 2360 2352 `-------------------------------------------------*/
+15 -14
scripts/genksyms/parse.tab.h_shipped
··· 1 - /* A Bison parser, made by GNU Bison 2.5. */ 1 + /* A Bison parser, made by GNU Bison 2.5.1. */ 2 2 3 3 /* Bison interface for Yacc-like parsers in C 4 4 5 - Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. 5 + Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc. 6 6 7 7 This program is free software: you can redistribute it and/or modify 8 8 it under the terms of the GNU General Public License as published by ··· 66 66 EXPORT_SYMBOL_KEYW = 284, 67 67 ASM_PHRASE = 285, 68 68 ATTRIBUTE_PHRASE = 286, 69 - BRACE_PHRASE = 287, 70 - BRACKET_PHRASE = 288, 71 - EXPRESSION_PHRASE = 289, 72 - CHAR = 290, 73 - DOTS = 291, 74 - IDENT = 292, 75 - INT = 293, 76 - REAL = 294, 77 - STRING = 295, 78 - TYPE = 296, 79 - OTHER = 297, 80 - FILENAME = 298 69 + TYPEOF_PHRASE = 287, 70 + BRACE_PHRASE = 288, 71 + BRACKET_PHRASE = 289, 72 + EXPRESSION_PHRASE = 290, 73 + CHAR = 291, 74 + DOTS = 292, 75 + IDENT = 293, 76 + INT = 294, 77 + REAL = 295, 78 + STRING = 296, 79 + TYPE = 297, 80 + OTHER = 298, 81 + FILENAME = 299 81 82 }; 82 83 #endif 83 84
+3 -2
scripts/genksyms/parse.y
··· 103 103 104 104 %token ASM_PHRASE 105 105 %token ATTRIBUTE_PHRASE 106 + %token TYPEOF_PHRASE 106 107 %token BRACE_PHRASE 107 108 %token BRACKET_PHRASE 108 109 %token EXPRESSION_PHRASE ··· 221 220 type_specifier: 222 221 simple_type_specifier 223 222 | cvar_qualifier 224 - | TYPEOF_KEYW '(' decl_specifier_seq '*' ')' 225 - | TYPEOF_KEYW '(' decl_specifier_seq ')' 223 + | TYPEOF_KEYW '(' parameter_declaration ')' 224 + | TYPEOF_PHRASE 226 225 227 226 /* References to s/u/e's defined elsewhere. Rearrange things 228 227 so that it is easier to expand the definition fully later. */