History

Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer updates from Thomas Gleixner: "The time/timekeeping/timer folks deliver with this update: - Fix a reintroduced signed/unsigned issue and cleanup the whole signed/unsigned mess in the timekeeping core so this wont happen accidentaly again. - Add a new trace clock based on boot time - Prevent injection of random sleep times when PM tracing abuses the RTC for storage - Make posix timers configurable for real tiny systems - Add tracepoints for the alarm timer subsystem so timer based suspend wakeups can be instrumented - The usual pile of fixes and updates to core and drivers" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits) timekeeping: Use mul_u64_u32_shr() instead of open coding it timekeeping: Get rid of pointless typecasts timekeeping: Make the conversion call chain consistently unsigned timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion alarmtimer: Add tracepoints for alarm timers trace: Update documentation for mono, mono_raw and boot clock trace: Add an option for boot clock as trace clock timekeeping: Add a fast and NMI safe boot clock timekeeping/clocksource_cyc2ns: Document intended range limitation timekeeping: Ignore the bogus sleep time if pm_trace is enabled selftests/timers: Fix spelling mistake "Asyncrhonous" -> "Asynchronous" clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map() arm64: dts: rockchip: Arch counter doesn't tick in system suspend clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend posix-timers: Make them configurable posix_cpu_timers: Move the add_device_randomness() call to a proper place timer: Move sys_alarm from timer.c to itimer.c ptp_clock: Allow for it to be optional Kconfig: Regenerate *.c_shipped files after previous changes ...

Linus Torvalds committed 9 years ago

Commit 9465d9c2 parents e71c397 c029a2b61 files · +1479 −1041Browse files

Showing the changes to scripts (7 of 61 files). Show all

Unified · Split

7 files
  1. scripts/kconfig/expr.h +2 −0
  2. scripts/kconfig/menu.c +39 −16
  3. scripts/kconfig/symbol.c +23 −1
  4. scripts/kconfig/zconf.gperf +1 −0
  5. scripts/kconfig/zconf.hash.c_shipped +17 −13
  6. scripts/kconfig/zconf.tab.c_shipped +736 −845
  7. scripts/kconfig/zconf.y +14 −2
scripts/kconfig/expr.h+2−0
@@ -85,6 +85,7 @@ struct symbol { · 84 unmodified lines
8585 struct property *prop;
8686 struct expr_value dir_dep;
8787 struct expr_value rev_dep;
88+ struct expr_value implied;
8889 };
8990
9091 #define for_all_symbols(i, sym) for (i = 0; i < SYMBOL_HASHSIZE; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
@@ -136,6 +137,7 @@ enum prop_type { · 45 unmodified lines
136137 P_DEFAULT, /* default y */
137138 P_CHOICE, /* choice value */
138139 P_SELECT, /* select BAR */
140+ P_IMPLY, /* imply BAR */
139141 P_RANGE, /* range 7..100 (for a symbol) */
140142 P_ENV, /* value from environment variable */
141143 P_SYMBOL, /* where a symbol is defined */
scripts/kconfig/menu.c+39−16
@@ -233,6 +233,8 @@ static void sym_check_prop(struct symbol *sym) · 232 unmodified lines
233233 {
234234 struct property *prop;
235235 struct symbol *sym2;
236+ char *use;
237+
236238 for (prop = sym->prop; prop; prop = prop->next) {
237239 switch (prop->type) {
238240 case P_DEFAULT:
@@ -252,18 +254,20 @@ static void sym_check_prop(struct symbol *sym) · 13 unmodified lines
252254 }
253255 break;
254256 case P_SELECT:
257+ case P_IMPLY:
258+ use = prop->type == P_SELECT ? "select" : "imply";
255259 sym2 = prop_get_symbol(prop);
256260 if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
257261 prop_warn(prop,
258− "config symbol '%s' uses select, but is "
259− "not boolean or tristate", sym->name);
262+ "config symbol '%s' uses %s, but is "
263+ "not boolean or tristate", sym->name, use);
260264 else if (sym2->type != S_UNKNOWN &&
261265 sym2->type != S_BOOLEAN &&
262266 sym2->type != S_TRISTATE)
263267 prop_warn(prop,
264− "'%s' has wrong type. 'select' only "
268+ "'%s' has wrong type. '%s' only "
265269 "accept arguments of boolean and "
266− "tristate type", sym2->name);
270+ "tristate type", sym2->name, use);
267271 break;
268272 case P_RANGE:
269273 if (sym->type != S_INT && sym->type != S_HEX)
@@ -333,6 +337,10 @@ void menu_finalize(struct menu *parent) · 63 unmodified lines
333337 struct symbol *es = prop_get_symbol(prop);
334338 es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
335339 expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
340+ } else if (prop->type == P_IMPLY) {
341+ struct symbol *es = prop_get_symbol(prop);
342+ es->implied.expr = expr_alloc_or(es->implied.expr,
343+ expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
336344 }
337345 }
338346 }
@@ -612,13 +620,30 @@ static struct property *get_symbol_prop(struct symbol *sym) · 273 unmodified lines
612620 return prop;
613621 }
614622
623+static void get_symbol_props_str(struct gstr *r, struct symbol *sym,
624+ enum prop_type tok, const char *prefix)
625+{
626+ bool hit = false;
627+ struct property *prop;
628+
629+ for_all_properties(sym, prop, tok) {
630+ if (!hit) {
631+ str_append(r, prefix);
632+ hit = true;
633+ } else
634+ str_printf(r, " && ");
635+ expr_gstr_print(prop->expr, r);
636+ }
637+ if (hit)
638+ str_append(r, "\n");
639+}
640+
615641 /*
616642 * head is optional and may be NULL
617643 */
618644 static void get_symbol_str(struct gstr *r, struct symbol *sym,
619645 struct list_head *head)
620646 {
621− bool hit;
622647 struct property *prop;
623648
624649 if (sym && sym->name) {
@@ -648,22 +673,20 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym, · 23 unmodified lines
648673 }
649674 }
650675
651− hit = false;
652− for_all_properties(sym, prop, P_SELECT) {
653− if (!hit) {
654− str_append(r, " Selects: ");
655− hit = true;
656− } else
657− str_printf(r, " && ");
658− expr_gstr_print(prop->expr, r);
659− }
660− if (hit)
661− str_append(r, "\n");
676+ get_symbol_props_str(r, sym, P_SELECT, _(" Selects: "));
662677 if (sym->rev_dep.expr) {
663678 str_append(r, _(" Selected by: "));
664679 expr_gstr_print(sym->rev_dep.expr, r);
665680 str_append(r, "\n");
666681 }
682+
683+ get_symbol_props_str(r, sym, P_IMPLY, _(" Implies: "));
684+ if (sym->implied.expr) {
685+ str_append(r, _(" Implied by: "));
686+ expr_gstr_print(sym->implied.expr, r);
687+ str_append(r, "\n");
688+ }
689+
667690 str_append(r, "\n\n");
668691 }
669692
scripts/kconfig/symbol.c+23−1
@@ -258,6 +258,15 @@ static void sym_calc_visibility(struct symbol *sym) · 257 unmodified lines
258258 sym->rev_dep.tri = tri;
259259 sym_set_changed(sym);
260260 }
261+ tri = no;
262+ if (sym->implied.expr && sym->dir_dep.tri != no)
263+ tri = expr_calc_value(sym->implied.expr);
264+ if (tri == mod && sym_get_type(sym) == S_BOOLEAN)
265+ tri = yes;
266+ if (sym->implied.tri != tri) {
267+ sym->implied.tri = tri;
268+ sym_set_changed(sym);
269+ }
261270 }
262271
263272 /*
@@ -397,6 +406,10 @@ void sym_calc_value(struct symbol *sym) · 133 unmodified lines
397406 newval.tri = EXPR_AND(expr_calc_value(prop->expr),
398407 prop->visible.tri);
399408 }
409+ if (sym->implied.tri != no) {
410+ sym->flags |= SYMBOL_WRITE;
411+ newval.tri = EXPR_OR(newval.tri, sym->implied.tri);
412+ }
400413 }
401414 calc_newval:
402415 if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {
@@ -413,7 +426,8 @@ void sym_calc_value(struct symbol *sym) · 10 unmodified lines
413426 }
414427 newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
415428 }
416− if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
429+ if (newval.tri == mod &&
430+ (sym_get_type(sym) == S_BOOLEAN || sym->implied.tri == yes))
417431 newval.tri = yes;
418432 break;
419433 case S_STRING:
@@ -498,6 +512,8 @@ bool sym_tristate_within_range(struct symbol *sym, tristate val) · 78 unmodified lines
498512 return false;
499513 if (sym->visible <= sym->rev_dep.tri)
500514 return false;
515+ if (sym->implied.tri == yes && val == mod)
516+ return false;
501517 if (sym_is_choice_value(sym) && sym->visible == yes)
502518 return val == yes;
503519 return val >= sym->rev_dep.tri && val <= sym->visible;
@@ -750,6 +766,10 @@ const char *sym_get_string_default(struct symbol *sym) · 246 unmodified lines
750766 if (sym->type == S_BOOLEAN && val == mod)
751767 val = yes;
752768
769+ /* adjust the default value if this symbol is implied by another */
770+ if (val < sym->implied.tri)
771+ val = sym->implied.tri;
772+
753773 switch (sym->type) {
754774 case S_BOOLEAN:
755775 case S_TRISTATE:
@@ -1352,6 +1372,8 @@ const char *prop_get_type_name(enum prop_type type) · 596 unmodified lines
13521372 return "choice";
13531373 case P_SELECT:
13541374 return "select";
1375+ case P_IMPLY:
1376+ return "imply";
13551377 case P_RANGE:
13561378 return "range";
13571379 case P_SYMBOL:
scripts/kconfig/zconf.gperf+1−0
@@ -38,6 +38,7 @@ int, T_TYPE, TF_COMMAND, S_INT · 37 unmodified lines
3838 hex, T_TYPE, TF_COMMAND, S_HEX
3939 string, T_TYPE, TF_COMMAND, S_STRING
4040 select, T_SELECT, TF_COMMAND
41+imply, T_IMPLY, TF_COMMAND
4142 range, T_RANGE, TF_COMMAND
4243 visible, T_VISIBLE, TF_COMMAND
4344 option, T_OPTION, TF_COMMAND
scripts/kconfig/zconf.hash.c_shipped+17−13
@@ -55,10 +55,10 @@ kconf_id_hash (register const char *str, register unsigned int len) · 54 unmodified lines
5555 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
5656 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
5757 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
58− 73, 73, 73, 73, 73, 73, 73, 5, 25, 25,
58+ 73, 73, 73, 73, 73, 73, 73, 10, 25, 25,
5959 0, 0, 0, 5, 0, 0, 73, 73, 5, 0,
6060 10, 5, 45, 73, 20, 20, 0, 15, 15, 73,
61− 20, 5, 73, 73, 73, 73, 73, 73, 73, 73,
61+ 20, 0, 73, 73, 73, 73, 73, 73, 73, 73,
6262 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6363 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
6464 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
@@ -120,6 +120,7 @@ struct kconf_id_strings_t · 55 unmodified lines
120120 char kconf_id_strings_str43[sizeof("hex")];
121121 char kconf_id_strings_str46[sizeof("config")];
122122 char kconf_id_strings_str47[sizeof("boolean")];
123+ char kconf_id_strings_str50[sizeof("imply")];
123124 char kconf_id_strings_str51[sizeof("string")];
124125 char kconf_id_strings_str54[sizeof("help")];
125126 char kconf_id_strings_str56[sizeof("prompt")];
@@ -157,6 +158,7 @@ static const struct kconf_id_strings_t kconf_id_strings_contents = · 31 unmodified lines
157158 "hex",
158159 "config",
159160 "boolean",
161+ "imply",
160162 "string",
161163 "help",
162164 "prompt",
@@ -174,7 +176,7 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 11 unmodified lines
174176 {
175177 enum
176178 {
177− TOTAL_KEYWORDS = 34,
179+ TOTAL_KEYWORDS = 35,
178180 MIN_WORD_LENGTH = 2,
179181 MAX_WORD_LENGTH = 14,
180182 MIN_HASH_VALUE = 2,
@@ -205,15 +207,15 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 24 unmodified lines
205207 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE},
206208 #line 36 "scripts/kconfig/zconf.gperf"
207209 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
208−#line 46 "scripts/kconfig/zconf.gperf"
210+#line 47 "scripts/kconfig/zconf.gperf"
209211 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION},
210212 {-1}, {-1},
211−#line 44 "scripts/kconfig/zconf.gperf"
213+#line 45 "scripts/kconfig/zconf.gperf"
212214 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM},
213215 #line 29 "scripts/kconfig/zconf.gperf"
214216 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND},
215217 {-1}, {-1},
216−#line 43 "scripts/kconfig/zconf.gperf"
218+#line 44 "scripts/kconfig/zconf.gperf"
217219 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND},
218220 #line 17 "scripts/kconfig/zconf.gperf"
219221 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ENDMENU, TF_COMMAND},
@@ -223,9 +225,9 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 3 unmodified lines
223225 #line 23 "scripts/kconfig/zconf.gperf"
224226 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND},
225227 {-1},
226−#line 45 "scripts/kconfig/zconf.gperf"
228+#line 46 "scripts/kconfig/zconf.gperf"
227229 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},
228−#line 48 "scripts/kconfig/zconf.gperf"
230+#line 49 "scripts/kconfig/zconf.gperf"
229231 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPT_ALLNOCONFIG_Y,TF_OPTION},
230232 #line 16 "scripts/kconfig/zconf.gperf"
231233 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND},
@@ -234,10 +236,10 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 2 unmodified lines
234236 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
235237 #line 21 "scripts/kconfig/zconf.gperf"
236238 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
237−#line 47 "scripts/kconfig/zconf.gperf"
239+#line 48 "scripts/kconfig/zconf.gperf"
238240 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION},
239241 {-1},
240−#line 41 "scripts/kconfig/zconf.gperf"
242+#line 42 "scripts/kconfig/zconf.gperf"
241243 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND},
242244 #line 19 "scripts/kconfig/zconf.gperf"
243245 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CHOICE, TF_COMMAND},
@@ -247,7 +249,7 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 3 unmodified lines
247249 {-1},
248250 #line 18 "scripts/kconfig/zconf.gperf"
249251 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SOURCE, TF_COMMAND},
250−#line 42 "scripts/kconfig/zconf.gperf"
252+#line 43 "scripts/kconfig/zconf.gperf"
251253 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND},
252254 #line 38 "scripts/kconfig/zconf.gperf"
253255 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43, T_TYPE, TF_COMMAND, S_HEX},
@@ -256,7 +258,9 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 2 unmodified lines
256258 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND},
257259 #line 35 "scripts/kconfig/zconf.gperf"
258260 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN},
259− {-1}, {-1}, {-1},
261+ {-1}, {-1},
262+#line 41 "scripts/kconfig/zconf.gperf"
263+ {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str50, T_IMPLY, TF_COMMAND},
260264 #line 39 "scripts/kconfig/zconf.gperf"
261265 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING},
262266 {-1}, {-1},
@@ -289,5 +293,5 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 26 unmodified lines
289293 }
290294 return 0;
291295 }
292−#line 49 "scripts/kconfig/zconf.gperf"
296+#line 50 "scripts/kconfig/zconf.gperf"
293297
scripts/kconfig/zconf.tab.c_shipped+736−845
@@ -1,19 +1,19 @@
1−/* A Bison parser, made by GNU Bison 2.5.1. */
1+/* A Bison parser, made by GNU Bison 3.0.4. */
22
33 /* Bison implementation for Yacc-like parsers in C
4−
5− Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
6−
4+
5+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6+
77 This program is free software: you can redistribute it and/or modify
88 it under the terms of the GNU General Public License as published by
99 the Free Software Foundation, either version 3 of the License, or
1010 (at your option) any later version.
11−
11+
1212 This program is distributed in the hope that it will be useful,
1313 but WITHOUT ANY WARRANTY; without even the implied warranty of
1414 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1515 GNU General Public License for more details.
16−
16+
1717 You should have received a copy of the GNU General Public License
1818 along with this program. If not, see <http://www.gnu.org/licenses/>. */
1919
@@ -26,7 +26,7 @@ · 6 unmodified lines
2626 special exception, which will cause the skeleton and the resulting
2727 Bison output files to be licensed under the GNU General Public
2828 License without this special exception.
29−
29+
3030 This special exception was added by the Free Software Foundation in
3131 version 2.2 of Bison. */
3232
@@ -44,7 +44,7 @@ · 11 unmodified lines
4444 #define YYBISON 1
4545
4646 /* Bison version. */
47−#define YYBISON_VERSION "2.5.1"
47+#define YYBISON_VERSION "3.0.4"
4848
4949 /* Skeleton name. */
5050 #define YYSKELETON_NAME "yacc.c"
@@ -58,18 +58,16 @@ · 7 unmodified lines
5858 /* Pull parsers. */
5959 #define YYPULL 1
6060
61−/* Using locations. */
62−#define YYLSP_NEEDED 0
6361
6462 /* Substitute the variable and function names. */
6563 #define yyparse zconfparse
6664 #define yylex zconflex
6765 #define yyerror zconferror
68−#define yylval zconflval
69−#define yychar zconfchar
7066 #define yydebug zconfdebug
7167 #define yynerrs zconfnerrs
7268
69+#define yylval zconflval
70+#define yychar zconfchar
7371
7472 /* Copy the first part of user declarations. */
7573
@@ -108,19 +106,14 @@ static struct menu *current_menu, *current_entry; · 32 unmodified lines
108106
109107
110108
111−# ifndef YY_NULL
109+# ifndef YY_NULLPTR
112110 # if defined __cplusplus && 201103L <= __cplusplus
113−# define YY_NULL nullptr
111+# define YY_NULLPTR nullptr
114112 # else
115−# define YY_NULL 0
113+# define YY_NULLPTR 0
116114 # endif
117115 # endif
118116
119−/* Enabling traces. */
120−#ifndef YYDEBUG
121−# define YYDEBUG 1
122−#endif
123−
124117 /* Enabling verbose error messages. */
125118 #ifdef YYERROR_VERBOSE
126119 # undef YYERROR_VERBOSE
@@ -129,62 +122,65 @@ static struct menu *current_menu, *current_entry; · 2 unmodified lines
129122 # define YYERROR_VERBOSE 0
130123 #endif
131124
132−/* Enabling the token table. */
133−#ifndef YYTOKEN_TABLE
134−# define YYTOKEN_TABLE 0
135−#endif
136125
126+/* Debug traces. */
127+#ifndef YYDEBUG
128+# define YYDEBUG 1
129+#endif
130+#if YYDEBUG
131+extern int zconfdebug;
132+#endif
137133
138−/* Tokens. */
134+/* Token type. */
139135 #ifndef YYTOKENTYPE
140136 # define YYTOKENTYPE
141− /* Put the tokens into the symbol table, so that GDB and other debuggers
142− know about them. */
143− enum yytokentype {
144− T_MAINMENU = 258,
145− T_MENU = 259,
146− T_ENDMENU = 260,
147− T_SOURCE = 261,
148− T_CHOICE = 262,
149− T_ENDCHOICE = 263,
150− T_COMMENT = 264,
151− T_CONFIG = 265,
152− T_MENUCONFIG = 266,
153− T_HELP = 267,
154− T_HELPTEXT = 268,
155− T_IF = 269,
156− T_ENDIF = 270,
157− T_DEPENDS = 271,
158− T_OPTIONAL = 272,
159− T_PROMPT = 273,
160− T_TYPE = 274,
161− T_DEFAULT = 275,
162− T_SELECT = 276,
163− T_RANGE = 277,
164− T_VISIBLE = 278,
165− T_OPTION = 279,
166− T_ON = 280,
167− T_WORD = 281,
168− T_WORD_QUOTE = 282,
169− T_UNEQUAL = 283,
170− T_LESS = 284,
171− T_LESS_EQUAL = 285,
172− T_GREATER = 286,
173− T_GREATER_EQUAL = 287,
174− T_CLOSE_PAREN = 288,
175− T_OPEN_PAREN = 289,
176− T_EOL = 290,
177− T_OR = 291,
178− T_AND = 292,
179− T_EQUAL = 293,
180− T_NOT = 294
181− };
137+ enum yytokentype
138+ {
139+ T_MAINMENU = 258,
140+ T_MENU = 259,
141+ T_ENDMENU = 260,
142+ T_SOURCE = 261,
143+ T_CHOICE = 262,
144+ T_ENDCHOICE = 263,
145+ T_COMMENT = 264,
146+ T_CONFIG = 265,
147+ T_MENUCONFIG = 266,
148+ T_HELP = 267,
149+ T_HELPTEXT = 268,
150+ T_IF = 269,
151+ T_ENDIF = 270,
152+ T_DEPENDS = 271,
153+ T_OPTIONAL = 272,
154+ T_PROMPT = 273,
155+ T_TYPE = 274,
156+ T_DEFAULT = 275,
157+ T_SELECT = 276,
158+ T_IMPLY = 277,
159+ T_RANGE = 278,
160+ T_VISIBLE = 279,
161+ T_OPTION = 280,
162+ T_ON = 281,
163+ T_WORD = 282,
164+ T_WORD_QUOTE = 283,
165+ T_UNEQUAL = 284,
166+ T_LESS = 285,
167+ T_LESS_EQUAL = 286,
168+ T_GREATER = 287,
169+ T_GREATER_EQUAL = 288,
170+ T_CLOSE_PAREN = 289,
171+ T_OPEN_PAREN = 290,
172+ T_EOL = 291,
173+ T_OR = 292,
174+ T_AND = 293,
175+ T_EQUAL = 294,
176+ T_NOT = 295
177+ };
182178 #endif
183179
184−
185−
180+/* Value type. */
186181 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
187−typedef union YYSTYPE
182+
183+union YYSTYPE
188184 {
189185
190186
@@ -196,14 +192,20 @@ typedef union YYSTYPE · 5 unmodified lines
196192 const struct kconf_id *id;
197193
198194
195+};
199196
200−} YYSTYPE;
197+typedef union YYSTYPE YYSTYPE;
201198 # define YYSTYPE_IS_TRIVIAL 1
202−# define yystype YYSTYPE /* obsolescent; will be withdrawn */
203199 # define YYSTYPE_IS_DECLARED 1
204200 #endif
205201
206202
203+extern YYSTYPE zconflval;
204+
205+int zconfparse (void);
206+
207+
208+
207209 /* Copy the second part of user declarations. */
208210
209211
@@ -224,11 +226,8 @@ typedef unsigned char yytype_uint8; · 14 unmodified lines
224226
225227 #ifdef YYTYPE_INT8
226228 typedef YYTYPE_INT8 yytype_int8;
227−#elif (defined __STDC__ || defined __C99__FUNC__ \
228− || defined __cplusplus || defined _MSC_VER)
229−typedef signed char yytype_int8;
230229 #else
231−typedef short int yytype_int8;
230+typedef signed char yytype_int8;
232231 #endif
233232
234233 #ifdef YYTYPE_UINT16
@@ -248,8 +247,7 @@ typedef short int yytype_int16; · 13 unmodified lines
248247 # define YYSIZE_T __SIZE_TYPE__
249248 # elif defined size_t
250249 # define YYSIZE_T size_t
251−# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
252− || defined __cplusplus || defined _MSC_VER)
250+# elif ! defined YYSIZE_T
253251 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
254252 # define YYSIZE_T size_t
255253 # else
@@ -263,38 +261,67 @@ typedef short int yytype_int16; · 7 unmodified lines
263261 # if defined YYENABLE_NLS && YYENABLE_NLS
264262 # if ENABLE_NLS
265263 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
266−# define YY_(msgid) dgettext ("bison-runtime", msgid)
264+# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
267265 # endif
268266 # endif
269267 # ifndef YY_
270−# define YY_(msgid) msgid
268+# define YY_(Msgid) Msgid
269+# endif
270+#endif
271+
272+#ifndef YY_ATTRIBUTE
273+# if (defined __GNUC__ \
274+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
275+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
276+# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
277+# else
278+# define YY_ATTRIBUTE(Spec) /* empty */
279+# endif
280+#endif
281+
282+#ifndef YY_ATTRIBUTE_PURE
283+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
284+#endif
285+
286+#ifndef YY_ATTRIBUTE_UNUSED
287+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
288+#endif
289+
290+#if !defined _Noreturn \
291+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
292+# if defined _MSC_VER && 1200 <= _MSC_VER
293+# define _Noreturn __declspec (noreturn)
294+# else
295+# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
271296 # endif
272297 #endif
273298
274299 /* Suppress unused-variable warnings by "using" E. */
275300 #if ! defined lint || defined __GNUC__
276−# define YYUSE(e) ((void) (e))
301+# define YYUSE(E) ((void) (E))
277302 #else
278−# define YYUSE(e) /* empty */
303+# define YYUSE(E) /* empty */
279304 #endif
280305
281−/* Identity function, used to suppress warnings about constant conditions. */
282−#ifndef lint
283−# define YYID(n) (n)
284−#else
285−#if (defined __STDC__ || defined __C99__FUNC__ \
286− || defined __cplusplus || defined _MSC_VER)
287−static int
288−YYID (int yyi)
306+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
307+/* Suppress an incorrect diagnostic about yylval being uninitialized. */
308+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
309+ _Pragma ("GCC diagnostic push") \
310+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
311+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
312+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
313+ _Pragma ("GCC diagnostic pop")
289314 #else
290−static int
291−YYID (yyi)
292− int yyi;
315+# define YY_INITIAL_VALUE(Value) Value
293316 #endif
294−{
295− return yyi;
296−}
317+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
318+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
319+# define YY_IGNORE_MAYBE_UNINITIALIZED_END
297320 #endif
321+#ifndef YY_INITIAL_VALUE
322+# define YY_INITIAL_VALUE(Value) /* Nothing. */
323+#endif
324+
298325
299326 #if ! defined yyoverflow || YYERROR_VERBOSE
300327
@@ -313,8 +340,7 @@ YYID (yyi) · 12 unmodified lines
313340 # define alloca _alloca
314341 # else
315342 # define YYSTACK_ALLOC alloca
316−# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
317− || defined __cplusplus || defined _MSC_VER)
343+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
318344 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
319345 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
320346 # ifndef EXIT_SUCCESS
@@ -326,8 +352,8 @@ YYID (yyi) · 5 unmodified lines
326352 # endif
327353
328354 # ifdef YYSTACK_ALLOC
329− /* Pacify GCC's `empty if-body' warning. */
330−# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
355+ /* Pacify GCC's 'empty if-body' warning. */
356+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
331357 # ifndef YYSTACK_ALLOC_MAXIMUM
332358 /* The OS might guarantee only one guard page at the bottom of the stack,
333359 and a page size can be as small as 4096 bytes. So we cannot safely
@@ -343,7 +369,7 @@ YYID (yyi) · 9 unmodified lines
343369 # endif
344370 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
345371 && ! ((defined YYMALLOC || defined malloc) \
346− && (defined YYFREE || defined free)))
372+ && (defined YYFREE || defined free)))
347373 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
348374 # ifndef EXIT_SUCCESS
349375 # define EXIT_SUCCESS 0
@@ -351,15 +377,13 @@ YYID (yyi) · 1 unmodified line
351377 # endif
352378 # ifndef YYMALLOC
353379 # define YYMALLOC malloc
354−# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
355− || defined __cplusplus || defined _MSC_VER)
380+# if ! defined malloc && ! defined EXIT_SUCCESS
356381 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
357382 # endif
358383 # endif
359384 # ifndef YYFREE
360385 # define YYFREE free
361−# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
362− || defined __cplusplus || defined _MSC_VER)
386+# if ! defined free && ! defined EXIT_SUCCESS
363387 void free (void *); /* INFRINGES ON USER NAME SPACE */
364388 # endif
365389 # endif
@@ -369,7 +393,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ · 3 unmodified lines
369393
370394 #if (! defined yyoverflow \
371395 && (! defined __cplusplus \
372− || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
396+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
373397
374398 /* A type that is properly aligned for any stack member. */
375399 union yyalloc
@@ -394,16 +418,16 @@ union yyalloc · 18 unmodified lines
394418 elements in the stack, and YYPTR gives the new location of the
395419 stack. Advance YYPTR to a properly aligned location for the next
396420 stack. */
397−# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
398− do \
399− { \
400− YYSIZE_T yynewbytes; \
401− YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
402− Stack = &yyptr->Stack_alloc; \
403− yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
404− yyptr += yynewbytes / sizeof (*yyptr); \
405− } \
406− while (YYID (0))
421+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
422+ do \
423+ { \
424+ YYSIZE_T yynewbytes; \
425+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
426+ Stack = &yyptr->Stack_alloc; \
427+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
428+ yyptr += yynewbytes / sizeof (*yyptr); \
429+ } \
430+ while (0)
407431
408432 #endif
409433
@@ -422,7 +446,7 @@ union yyalloc · 12 unmodified lines
422446 for (yyi = 0; yyi < (Count); yyi++) \
423447 (Dst)[yyi] = (Src)[yyi]; \
424448 } \
425− while (YYID (0))
449+ while (0)
426450 # endif
427451 # endif
428452 #endif /* !YYCOPY_NEEDED */
@@ -430,25 +454,27 @@ union yyalloc · 1 unmodified line
430454 /* YYFINAL -- State number of the termination state. */
431455 #define YYFINAL 11
432456 /* YYLAST -- Last index in YYTABLE. */
433−#define YYLAST 298
457+#define YYLAST 301
434458
435459 /* YYNTOKENS -- Number of terminals. */
436−#define YYNTOKENS 40
460+#define YYNTOKENS 41
437461 /* YYNNTS -- Number of nonterminals. */
438462 #define YYNNTS 50
439463 /* YYNRULES -- Number of rules. */
440−#define YYNRULES 122
441−/* YYNRULES -- Number of states. */
442−#define YYNSTATES 199
464+#define YYNRULES 124
465+/* YYNSTATES -- Number of states. */
466+#define YYNSTATES 204
443467
444−/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
468+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
469+ by yylex, with out-of-bounds checking. */
445470 #define YYUNDEFTOK 2
446−#define YYMAXUTOK 294
471+#define YYMAXUTOK 295
447472
448−#define YYTRANSLATE(YYX) \
473+#define YYTRANSLATE(YYX) \
449474 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
450475
451−/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
476+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
477+ as returned by yylex, without out-of-bounds checking. */
452478 static const yytype_uint8 yytranslate[] =
453479 {
454480 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -480,90 +506,30 @@ static const yytype_uint8 yytranslate[] = · 25 unmodified lines
480506 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
481507 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
482508 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
483− 35, 36, 37, 38, 39
509+ 35, 36, 37, 38, 39, 40
484510 };
485511
486512 #if YYDEBUG
487−/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
488− YYRHS. */
489−static const yytype_uint16 yyprhs[] =
490−{
491− 0, 0, 3, 6, 8, 11, 13, 14, 17, 20,
492− 23, 26, 31, 36, 40, 42, 44, 46, 48, 50,
493− 52, 54, 56, 58, 60, 62, 64, 66, 68, 72,
494− 75, 79, 82, 86, 89, 90, 93, 96, 99, 102,
495− 105, 108, 112, 117, 122, 127, 133, 137, 138, 142,
496− 143, 146, 150, 153, 155, 159, 160, 163, 166, 169,
497− 172, 175, 180, 184, 187, 192, 193, 196, 200, 202,
498− 206, 207, 210, 213, 216, 220, 224, 228, 230, 234,
499− 235, 238, 241, 244, 248, 252, 255, 258, 261, 262,
500− 265, 268, 271, 276, 277, 280, 283, 286, 287, 290,
501− 292, 294, 297, 300, 303, 305, 308, 309, 312, 314,
502− 318, 322, 326, 330, 334, 338, 342, 345, 349, 353,
503− 355, 357, 358
504−};
505−
506−/* YYRHS -- A `-1'-separated list of the rules' RHS. */
507−static const yytype_int8 yyrhs[] =
508−{
509− 41, 0, -1, 85, 42, -1, 42, -1, 67, 43,
510− -1, 43, -1, -1, 43, 45, -1, 43, 59, -1,
511− 43, 71, -1, 43, 84, -1, 43, 26, 1, 35,
512− -1, 43, 44, 1, 35, -1, 43, 1, 35, -1,
513− 16, -1, 18, -1, 19, -1, 21, -1, 17, -1,
514− 22, -1, 20, -1, 23, -1, 35, -1, 65, -1,
515− 75, -1, 48, -1, 50, -1, 73, -1, 26, 1,
516− 35, -1, 1, 35, -1, 10, 26, 35, -1, 47,
517− 51, -1, 11, 26, 35, -1, 49, 51, -1, -1,
518− 51, 52, -1, 51, 53, -1, 51, 79, -1, 51,
519− 77, -1, 51, 46, -1, 51, 35, -1, 19, 82,
520− 35, -1, 18, 83, 86, 35, -1, 20, 87, 86,
521− 35, -1, 21, 26, 86, 35, -1, 22, 88, 88,
522− 86, 35, -1, 24, 54, 35, -1, -1, 54, 26,
523− 55, -1, -1, 38, 83, -1, 7, 89, 35, -1,
524− 56, 60, -1, 84, -1, 57, 62, 58, -1, -1,
525− 60, 61, -1, 60, 79, -1, 60, 77, -1, 60,
526− 35, -1, 60, 46, -1, 18, 83, 86, 35, -1,
527− 19, 82, 35, -1, 17, 35, -1, 20, 26, 86,
528− 35, -1, -1, 62, 45, -1, 14, 87, 85, -1,
529− 84, -1, 63, 66, 64, -1, -1, 66, 45, -1,
530− 66, 71, -1, 66, 59, -1, 3, 83, 85, -1,
531− 4, 83, 35, -1, 68, 80, 78, -1, 84, -1,
532− 69, 72, 70, -1, -1, 72, 45, -1, 72, 71,
533− -1, 72, 59, -1, 6, 83, 35, -1, 9, 83,
534− 35, -1, 74, 78, -1, 12, 35, -1, 76, 13,
535− -1, -1, 78, 79, -1, 78, 35, -1, 78, 46,
536− -1, 16, 25, 87, 35, -1, -1, 80, 81, -1,
537− 80, 35, -1, 23, 86, -1, -1, 83, 86, -1,
538− 26, -1, 27, -1, 5, 35, -1, 8, 35, -1,
539− 15, 35, -1, 35, -1, 85, 35, -1, -1, 14,
540− 87, -1, 88, -1, 88, 29, 88, -1, 88, 30,
541− 88, -1, 88, 31, 88, -1, 88, 32, 88, -1,
542− 88, 38, 88, -1, 88, 28, 88, -1, 34, 87,
543− 33, -1, 39, 87, -1, 87, 36, 87, -1, 87,
544− 37, 87, -1, 26, -1, 27, -1, -1, 26, -1
545−};
546−
547−/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
513+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
548514 static const yytype_uint16 yyrline[] =
549515 {
550− 0, 108, 108, 108, 110, 110, 112, 114, 115, 116,
551− 117, 118, 119, 123, 127, 127, 127, 127, 127, 127,
552− 127, 127, 131, 132, 133, 134, 135, 136, 140, 141,
553− 147, 155, 161, 169, 179, 181, 182, 183, 184, 185,
554− 186, 189, 197, 203, 213, 219, 225, 228, 230, 241,
555− 242, 247, 256, 261, 269, 272, 274, 275, 276, 277,
556− 278, 281, 287, 298, 304, 314, 316, 321, 329, 337,
557− 340, 342, 343, 344, 349, 356, 363, 368, 376, 379,
558− 381, 382, 383, 386, 394, 401, 408, 414, 421, 423,
559− 424, 425, 428, 436, 438, 439, 442, 449, 451, 456,
560− 457, 460, 461, 462, 466, 467, 470, 471, 474, 475,
561− 476, 477, 478, 479, 480, 481, 482, 483, 484, 487,
562− 488, 491, 492
516+ 0, 109, 109, 109, 111, 111, 113, 115, 116, 117,
517+ 118, 119, 120, 124, 128, 128, 128, 128, 128, 128,
518+ 128, 128, 128, 132, 133, 134, 135, 136, 137, 141,
519+ 142, 148, 156, 162, 170, 180, 182, 183, 184, 185,
520+ 186, 187, 190, 198, 204, 214, 220, 226, 232, 235,
521+ 237, 248, 249, 254, 263, 268, 276, 279, 281, 282,
522+ 283, 284, 285, 288, 294, 305, 311, 321, 323, 328,
523+ 336, 344, 347, 349, 350, 351, 356, 363, 370, 375,
524+ 383, 386, 388, 389, 390, 393, 401, 408, 415, 421,
525+ 428, 430, 431, 432, 435, 443, 445, 446, 449, 456,
526+ 458, 463, 464, 467, 468, 469, 473, 474, 477, 478,
527+ 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
528+ 491, 494, 495, 498, 499
563529 };
564530 #endif
565531
566−#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
532+#if YYDEBUG || YYERROR_VERBOSE || 0
567533 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
568534 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
569535 static const char *const yytname[] =
@@ -571,9 +537,9 @@ static const char *const yytname[] = · 1 unmodified line
571537 "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
572538 "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
573539 "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
574− "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
575− "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
576− "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL",
540+ "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_IMPLY",
541+ "T_RANGE", "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE",
542+ "T_UNEQUAL", "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL",
577543 "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
578544 "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
579545 "common_stmt", "option_error", "config_entry_start", "config_stmt",
@@ -585,260 +551,254 @@ static const char *const yytname[] = · 5 unmodified lines
585551 "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
586552 "comment", "comment_stmt", "help_start", "help", "depends_list",
587553 "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
588− "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULL
554+ "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULLPTR
589555 };
590556 #endif
591557
592558 # ifdef YYPRINT
593−/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
594− token YYLEX-NUM. */
559+/* YYTOKNUM[NUM] -- (External) token number corresponding to the
560+ (internal) symbol number NUM (which must be that of a token). */
595561 static const yytype_uint16 yytoknum[] =
596562 {
597563 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
598564 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
599565 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
600− 285, 286, 287, 288, 289, 290, 291, 292, 293, 294
566+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
567+ 295
601568 };
602569 # endif
603570
604−/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
605−static const yytype_uint8 yyr1[] =
571+#define YYPACT_NINF -92
572+
573+#define yypact_value_is_default(Yystate) \
574+ (!!((Yystate) == (-92)))
575+
576+#define YYTABLE_NINF -88
577+
578+#define yytable_value_is_error(Yytable_value) \
579+ 0
580+
581+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
582+ STATE-NUM. */
583+static const yytype_int16 yypact[] =
606584 {
607− 0, 40, 41, 41, 42, 42, 43, 43, 43, 43,
608− 43, 43, 43, 43, 44, 44, 44, 44, 44, 44,
609− 44, 44, 45, 45, 45, 45, 45, 45, 46, 46,
610− 47, 48, 49, 50, 51, 51, 51, 51, 51, 51,
611− 51, 52, 52, 52, 52, 52, 53, 54, 54, 55,
612− 55, 56, 57, 58, 59, 60, 60, 60, 60, 60,
613− 60, 61, 61, 61, 61, 62, 62, 63, 64, 65,
614− 66, 66, 66, 66, 67, 68, 69, 70, 71, 72,
615− 72, 72, 72, 73, 74, 75, 76, 77, 78, 78,
616− 78, 78, 79, 80, 80, 80, 81, 82, 82, 83,
617− 83, 84, 84, 84, 85, 85, 86, 86, 87, 87,
618− 87, 87, 87, 87, 87, 87, 87, 87, 87, 88,
619− 88, 89, 89
585+ 17, 41, -92, 15, -92, 150, -92, 19, -92, -92,
586+ -13, -92, 28, 41, 38, 41, 50, 47, 41, 79,
587+ 82, 44, 76, -92, -92, -92, -92, -92, -92, -92,
588+ -92, -92, 118, -92, 129, -92, -92, -92, -92, -92,
589+ -92, -92, -92, -92, -92, -92, -92, -92, -92, -92,
590+ -92, -92, 184, -92, -92, 107, -92, 111, -92, 113,
591+ -92, 116, -92, 139, 140, 151, -92, -92, 44, 44,
592+ 142, 256, -92, 160, 173, 27, 117, 80, 51, 255,
593+ -15, 255, 217, -92, -92, -92, -92, -92, -92, -8,
594+ -92, 44, 44, 107, 87, 87, 87, 87, 87, 87,
595+ -92, -92, 174, 176, 187, 41, 41, 44, 188, 189,
596+ 87, -92, 213, -92, -92, -92, -92, 206, -92, -92,
597+ 193, 41, 41, 203, -92, -92, -92, -92, -92, -92,
598+ -92, -92, -92, -92, -92, -92, -92, 229, -92, 241,
599+ -92, -92, -92, -92, -92, -92, -92, -92, -92, -92,
600+ 216, -92, -92, -92, -92, -92, -92, -92, -92, -92,
601+ 44, 229, 222, 229, 64, 229, 229, 87, 31, 231,
602+ -92, -92, 229, 236, 229, 44, -92, 145, 242, -92,
603+ -92, 243, 244, 245, 229, 251, -92, -92, 247, -92,
604+ 257, 125, -92, -92, -92, -92, -92, 260, 41, -92,
605+ -92, -92, -92, -92
620606 };
621607
622−/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
623−static const yytype_uint8 yyr2[] =
608+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
609+ Performed when YYTABLE does not specify something else to do. Zero
610+ means the default is an error. */
611+static const yytype_uint8 yydefact[] =
624612 {
625− 0, 2, 2, 1, 2, 1, 0, 2, 2, 2,
626− 2, 4, 4, 3, 1, 1, 1, 1, 1, 1,
627− 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
628− 3, 2, 3, 2, 0, 2, 2, 2, 2, 2,
629− 2, 3, 4, 4, 4, 5, 3, 0, 3, 0,
630− 2, 3, 2, 1, 3, 0, 2, 2, 2, 2,
631− 2, 4, 3, 2, 4, 0, 2, 3, 1, 3,
632− 0, 2, 2, 2, 3, 3, 3, 1, 3, 0,
633− 2, 2, 2, 3, 3, 2, 2, 2, 0, 2,
634− 2, 2, 4, 0, 2, 2, 2, 0, 2, 1,
635− 1, 2, 2, 2, 1, 2, 0, 2, 1, 3,
636− 3, 3, 3, 3, 3, 3, 2, 3, 3, 1,
637− 1, 0, 1
613+ 6, 0, 106, 0, 3, 0, 6, 6, 101, 102,
614+ 0, 1, 0, 0, 0, 0, 123, 0, 0, 0,
615+ 0, 0, 0, 14, 19, 15, 16, 21, 17, 18,
616+ 20, 22, 0, 23, 0, 7, 35, 26, 35, 27,
617+ 57, 67, 8, 72, 24, 95, 81, 9, 28, 90,
618+ 25, 10, 0, 107, 2, 76, 13, 0, 103, 0,
619+ 124, 0, 104, 0, 0, 0, 121, 122, 0, 0,
620+ 0, 110, 105, 0, 0, 0, 0, 0, 0, 0,
621+ 90, 0, 0, 77, 85, 53, 86, 31, 33, 0,
622+ 118, 0, 0, 69, 0, 0, 0, 0, 0, 0,
623+ 11, 12, 0, 0, 0, 0, 99, 0, 0, 0,
624+ 0, 49, 0, 41, 40, 36, 37, 0, 39, 38,
625+ 0, 0, 99, 0, 61, 62, 58, 60, 59, 68,
626+ 56, 55, 73, 75, 71, 74, 70, 108, 97, 0,
627+ 96, 82, 84, 80, 83, 79, 92, 93, 91, 117,
628+ 119, 120, 116, 111, 112, 113, 114, 115, 30, 88,
629+ 0, 108, 0, 108, 108, 108, 108, 0, 0, 0,
630+ 89, 65, 108, 0, 108, 0, 98, 0, 0, 42,
631+ 100, 0, 0, 0, 108, 51, 48, 29, 0, 64,
632+ 0, 109, 94, 43, 44, 45, 46, 0, 0, 50,
633+ 63, 66, 47, 52
638634 };
639635
640−/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
641− Performed when YYTABLE doesn't specify something else to do. Zero
642− means the default is an error. */
643−static const yytype_uint8 yydefact[] =
636+ /* YYPGOTO[NTERM-NUM]. */
637+static const yytype_int16 yypgoto[] =
644638 {
645− 6, 0, 104, 0, 3, 0, 6, 6, 99, 100,
646− 0, 1, 0, 0, 0, 0, 121, 0, 0, 0,
647− 0, 0, 0, 14, 18, 15, 16, 20, 17, 19,
648− 21, 0, 22, 0, 7, 34, 25, 34, 26, 55,
649− 65, 8, 70, 23, 93, 79, 9, 27, 88, 24,
650− 10, 0, 105, 2, 74, 13, 0, 101, 0, 122,
651− 0, 102, 0, 0, 0, 119, 120, 0, 0, 0,
652− 108, 103, 0, 0, 0, 0, 0, 0, 0, 88,
653− 0, 0, 75, 83, 51, 84, 30, 32, 0, 116,
654− 0, 0, 67, 0, 0, 0, 0, 0, 0, 11,
655− 12, 0, 0, 0, 0, 97, 0, 0, 0, 47,
656− 0, 40, 39, 35, 36, 0, 38, 37, 0, 0,
657− 97, 0, 59, 60, 56, 58, 57, 66, 54, 53,
658− 71, 73, 69, 72, 68, 106, 95, 0, 94, 80,
659− 82, 78, 81, 77, 90, 91, 89, 115, 117, 118,
660− 114, 109, 110, 111, 112, 113, 29, 86, 0, 106,
661− 0, 106, 106, 106, 0, 0, 0, 87, 63, 106,
662− 0, 106, 0, 96, 0, 0, 41, 98, 0, 0,
663− 106, 49, 46, 28, 0, 62, 0, 107, 92, 42,
664− 43, 44, 0, 0, 48, 61, 64, 45, 50
639+ -92, -92, 285, 291, -92, 32, -66, -92, -92, -92,
640+ -92, 261, -92, -92, -92, -92, -92, -92, -92, 1,
641+ -92, -92, -92, -92, -92, -92, -92, -92, -92, -92,
642+ -92, 24, -92, -92, -92, -92, -92, 221, 220, -64,
643+ -92, -92, 179, -1, 67, 0, 110, -67, -91, -92
665644 };
666645
667−/* YYDEFGOTO[NTERM-NUM]. */
646+ /* YYDEFGOTO[NTERM-NUM]. */
668647 static const yytype_int16 yydefgoto[] =
669648 {
670− -1, 3, 4, 5, 33, 34, 112, 35, 36, 37,
671− 38, 74, 113, 114, 165, 194, 39, 40, 128, 41,
672− 76, 124, 77, 42, 132, 43, 78, 6, 44, 45,
673− 141, 46, 80, 47, 48, 49, 115, 116, 81, 117,
674− 79, 138, 160, 161, 50, 7, 173, 69, 70, 60
649+ -1, 3, 4, 5, 34, 35, 114, 36, 37, 38,
650+ 39, 75, 115, 116, 168, 199, 40, 41, 130, 42,
651+ 77, 126, 78, 43, 134, 44, 79, 6, 45, 46,
652+ 143, 47, 81, 48, 49, 50, 117, 118, 82, 119,
653+ 80, 140, 162, 163, 51, 7, 176, 70, 71, 61
675654 };
676655
677−/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
678− STATE-NUM. */
679−#define YYPACT_NINF -91
680−static const yytype_int16 yypact[] =
656+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
657+ positive, shift that token. If negative, reduce the rule whose
658+ number is the opposite. If YYTABLE_NINF, syntax error. */
659+static const yytype_int16 yytable[] =
681660 {
682− 19, 37, -91, 13, -91, 79, -91, 20, -91, -91,
683− -16, -91, 21, 37, 25, 37, 41, 36, 37, 78,
684− 83, 31, 56, -91, -91, -91, -91, -91, -91, -91,
685− -91, 116, -91, 127, -91, -91, -91, -91, -91, -91,
686− -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
687− -91, 147, -91, -91, 105, -91, 109, -91, 111, -91,
688− 114, -91, 136, 137, 142, -91, -91, 31, 31, 76,
689− 254, -91, 143, 146, 27, 115, 207, 258, 243, -14,
690− 243, 179, -91, -91, -91, -91, -91, -91, -7, -91,
691− 31, 31, 105, 51, 51, 51, 51, 51, 51, -91,
692− -91, 156, 168, 181, 37, 37, 31, 178, 51, -91,
693− 206, -91, -91, -91, -91, 196, -91, -91, 175, 37,
694− 37, 185, -91, -91, -91, -91, -91, -91, -91, -91,
695− -91, -91, -91, -91, -91, 214, -91, 230, -91, -91,
696− -91, -91, -91, -91, -91, -91, -91, -91, 183, -91,
697− -91, -91, -91, -91, -91, -91, -91, -91, 31, 214,
698− 194, 214, 45, 214, 51, 26, 195, -91, -91, 214,
699− 197, 214, 31, -91, 139, 208, -91, -91, 220, 224,
700− 214, 222, -91, -91, 226, -91, 227, 123, -91, -91,
701− -91, -91, 235, 37, -91, -91, -91, -91, -91
661+ 10, 89, 90, 152, 153, 154, 155, 156, 157, 137,
662+ 55, 125, 57, 128, 59, 11, 147, 63, 148, 167,
663+ 1, 138, 1, 2, 150, 151, 149, -32, 102, 91,
664+ 92, -32, -32, -32, -32, -32, -32, -32, -32, 103,
665+ 164, -32, -32, 104, -32, 105, 106, 107, 108, 109,
666+ 110, -32, 111, 2, 112, 53, 14, 15, 185, 17,
667+ 18, 19, 20, 113, 56, 21, 22, 186, 8, 9,
668+ 93, 66, 67, 147, 58, 148, 184, 60, 175, 68,
669+ 133, 102, 142, 62, 69, -54, -54, 33, -54, -54,
670+ -54, -54, 103, 177, -54, -54, 104, 120, 121, 122,
671+ 123, 91, 92, 135, 161, 144, 64, 112, 191, 65,
672+ 129, 132, 72, 141, 66, 67, 124, -34, 102, 73,
673+ 172, -34, -34, -34, -34, -34, -34, -34, -34, 103,
674+ 74, -34, -34, 104, -34, 105, 106, 107, 108, 109,
675+ 110, -34, 111, 53, 112, 131, 136, 83, 145, 84,
676+ -5, 12, 85, 113, 13, 14, 15, 16, 17, 18,
677+ 19, 20, 91, 92, 21, 22, 23, 24, 25, 26,
678+ 27, 28, 29, 30, 31, 86, 87, 32, 2, 91,
679+ 92, 192, 91, 92, -4, 12, 33, 88, 13, 14,
680+ 15, 16, 17, 18, 19, 20, 100, 203, 21, 22,
681+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 101,
682+ 158, 32, 159, 160, 169, 165, 166, -87, 102, 170,
683+ 33, -87, -87, -87, -87, -87, -87, -87, -87, 171,
684+ 174, -87, -87, 104, -87, -87, -87, -87, -87, -87,
685+ -87, -87, 102, 175, 112, -78, -78, -78, -78, -78,
686+ -78, -78, -78, 146, 92, -78, -78, 104, 179, 13,
687+ 14, 15, 16, 17, 18, 19, 20, 187, 112, 21,
688+ 22, 178, 189, 180, 181, 182, 183, 146, 193, 194,
689+ 195, 196, 188, 200, 190, 94, 95, 96, 97, 98,
690+ 198, 33, 54, 201, 197, 99, 202, 52, 127, 76,
691+ 139, 173
702692 };
703693
704−/* YYPGOTO[NTERM-NUM]. */
705−static const yytype_int16 yypgoto[] =
694+static const yytype_uint8 yycheck[] =
706695 {
707− -91, -91, 264, 268, -91, 30, -65, -91, -91, -91,
708− -91, 238, -91, -91, -91, -91, -91, -91, -91, -12,
709− -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
710− -91, -5, -91, -91, -91, -91, -91, 200, 209, -61,
711− -91, -91, 170, -1, 65, 0, 118, -66, -90, -91
696+ 1, 68, 69, 94, 95, 96, 97, 98, 99, 24,
697+ 10, 77, 13, 77, 15, 0, 82, 18, 82, 110,
698+ 3, 36, 3, 36, 91, 92, 34, 0, 1, 37,
699+ 38, 4, 5, 6, 7, 8, 9, 10, 11, 12,
700+ 107, 14, 15, 16, 17, 18, 19, 20, 21, 22,
701+ 23, 24, 25, 36, 27, 36, 5, 6, 27, 8,
702+ 9, 10, 11, 36, 36, 14, 15, 36, 27, 28,
703+ 70, 27, 28, 139, 36, 139, 167, 27, 14, 35,
704+ 79, 1, 81, 36, 40, 5, 6, 36, 8, 9,
705+ 10, 11, 12, 160, 14, 15, 16, 17, 18, 19,
706+ 20, 37, 38, 79, 105, 81, 27, 27, 175, 27,
707+ 78, 79, 36, 81, 27, 28, 36, 0, 1, 1,
708+ 121, 4, 5, 6, 7, 8, 9, 10, 11, 12,
709+ 1, 14, 15, 16, 17, 18, 19, 20, 21, 22,
710+ 23, 24, 25, 36, 27, 78, 79, 36, 81, 36,
711+ 0, 1, 36, 36, 4, 5, 6, 7, 8, 9,
712+ 10, 11, 37, 38, 14, 15, 16, 17, 18, 19,
713+ 20, 21, 22, 23, 24, 36, 36, 27, 36, 37,
714+ 38, 36, 37, 38, 0, 1, 36, 36, 4, 5,
715+ 6, 7, 8, 9, 10, 11, 36, 198, 14, 15,
716+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 36,
717+ 36, 27, 36, 26, 1, 27, 27, 0, 1, 13,
718+ 36, 4, 5, 6, 7, 8, 9, 10, 11, 36,
719+ 27, 14, 15, 16, 17, 18, 19, 20, 21, 22,
720+ 23, 24, 1, 14, 27, 4, 5, 6, 7, 8,
721+ 9, 10, 11, 36, 38, 14, 15, 16, 36, 4,
722+ 5, 6, 7, 8, 9, 10, 11, 36, 27, 14,
723+ 15, 161, 36, 163, 164, 165, 166, 36, 36, 36,
724+ 36, 36, 172, 36, 174, 29, 30, 31, 32, 33,
725+ 39, 36, 7, 36, 184, 39, 36, 6, 77, 38,
726+ 80, 122
712727 };
713728
714−/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
715− positive, shift that token. If negative, reduce the rule which
716− number is the opposite. If YYTABLE_NINF, syntax error. */
717−#define YYTABLE_NINF -86
718−static const yytype_int16 yytable[] =
729+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
730+ symbol of state STATE-NUM. */
731+static const yytype_uint8 yystos[] =
719732 {
720− 10, 88, 89, 150, 151, 152, 153, 154, 155, 135,
721− 54, 123, 56, 11, 58, 126, 145, 62, 164, 2,
722− 146, 136, 1, 1, 148, 149, 147, -31, 101, 90,
723− 91, -31, -31, -31, -31, -31, -31, -31, -31, 102,
724− 162, -31, -31, 103, -31, 104, 105, 106, 107, 108,
725− -31, 109, 181, 110, 2, 52, 55, 65, 66, 172,
726− 57, 182, 111, 8, 9, 67, 131, 59, 140, 92,
727− 68, 61, 145, 133, 180, 142, 146, 65, 66, -5,
728− 12, 90, 91, 13, 14, 15, 16, 17, 18, 19,
729− 20, 71, 174, 21, 22, 23, 24, 25, 26, 27,
730− 28, 29, 30, 159, 63, 31, 187, 127, 130, 64,
731− 139, 2, 90, 91, 32, -33, 101, 72, 169, -33,
732− -33, -33, -33, -33, -33, -33, -33, 102, 73, -33,
733− -33, 103, -33, 104, 105, 106, 107, 108, -33, 109,
734− 52, 110, 129, 134, 82, 143, 83, -4, 12, 84,
735− 111, 13, 14, 15, 16, 17, 18, 19, 20, 90,
736− 91, 21, 22, 23, 24, 25, 26, 27, 28, 29,
737− 30, 85, 86, 31, 188, 90, 91, 87, 99, -85,
738− 101, 100, 32, -85, -85, -85, -85, -85, -85, -85,
739− -85, 156, 198, -85, -85, 103, -85, -85, -85, -85,
740− -85, -85, -85, 157, 163, 110, 158, 166, 101, 167,
741− 168, 171, -52, -52, 144, -52, -52, -52, -52, 102,
742− 91, -52, -52, 103, 118, 119, 120, 121, 172, 176,
743− 183, 101, 185, 110, -76, -76, -76, -76, -76, -76,
744− -76, -76, 122, 189, -76, -76, 103, 13, 14, 15,
745− 16, 17, 18, 19, 20, 190, 110, 21, 22, 191,
746− 193, 195, 196, 14, 15, 144, 17, 18, 19, 20,
747− 197, 53, 21, 22, 51, 75, 125, 175, 32, 177,
748− 178, 179, 93, 94, 95, 96, 97, 184, 137, 186,
749− 170, 0, 98, 32, 0, 0, 0, 0, 192
733+ 0, 3, 36, 42, 43, 44, 68, 86, 27, 28,
734+ 84, 0, 1, 4, 5, 6, 7, 8, 9, 10,
735+ 11, 14, 15, 16, 17, 18, 19, 20, 21, 22,
736+ 23, 24, 27, 36, 45, 46, 48, 49, 50, 51,
737+ 57, 58, 60, 64, 66, 69, 70, 72, 74, 75,
738+ 76, 85, 44, 36, 43, 86, 36, 84, 36, 84,
739+ 27, 90, 36, 84, 27, 27, 27, 28, 35, 40,
740+ 88, 89, 36, 1, 1, 52, 52, 61, 63, 67,
741+ 81, 73, 79, 36, 36, 36, 36, 36, 36, 88,
742+ 88, 37, 38, 86, 29, 30, 31, 32, 33, 39,
743+ 36, 36, 1, 12, 16, 18, 19, 20, 21, 22,
744+ 23, 25, 27, 36, 47, 53, 54, 77, 78, 80,
745+ 17, 18, 19, 20, 36, 47, 62, 78, 80, 46,
746+ 59, 85, 46, 60, 65, 72, 85, 24, 36, 79,
747+ 82, 46, 60, 71, 72, 85, 36, 47, 80, 34,
748+ 88, 88, 89, 89, 89, 89, 89, 89, 36, 36,
749+ 26, 84, 83, 84, 88, 27, 27, 89, 55, 1,
750+ 13, 36, 84, 83, 27, 14, 87, 88, 87, 36,
751+ 87, 87, 87, 87, 89, 27, 36, 36, 87, 36,
752+ 87, 88, 36, 36, 36, 36, 36, 87, 39, 56,
753+ 36, 36, 36, 84
750754 };
751755
752−#define yypact_value_is_default(yystate) \
753− ((yystate) == (-91))
754−
755−#define yytable_value_is_error(yytable_value) \
756− YYID (0)
757−
758−static const yytype_int16 yycheck[] =
756+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
757+static const yytype_uint8 yyr1[] =
759758 {
760− 1, 67, 68, 93, 94, 95, 96, 97, 98, 23,
761− 10, 76, 13, 0, 15, 76, 81, 18, 108, 35,
762− 81, 35, 3, 3, 90, 91, 33, 0, 1, 36,
763− 37, 4, 5, 6, 7, 8, 9, 10, 11, 12,
764− 106, 14, 15, 16, 17, 18, 19, 20, 21, 22,
765− 23, 24, 26, 26, 35, 35, 35, 26, 27, 14,
766− 35, 35, 35, 26, 27, 34, 78, 26, 80, 69,
767− 39, 35, 137, 78, 164, 80, 137, 26, 27, 0,
768− 1, 36, 37, 4, 5, 6, 7, 8, 9, 10,
769− 11, 35, 158, 14, 15, 16, 17, 18, 19, 20,
770− 21, 22, 23, 104, 26, 26, 172, 77, 78, 26,
771− 80, 35, 36, 37, 35, 0, 1, 1, 119, 4,
772− 5, 6, 7, 8, 9, 10, 11, 12, 1, 14,
773− 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
774− 35, 26, 77, 78, 35, 80, 35, 0, 1, 35,
775− 35, 4, 5, 6, 7, 8, 9, 10, 11, 36,
776− 37, 14, 15, 16, 17, 18, 19, 20, 21, 22,
777− 23, 35, 35, 26, 35, 36, 37, 35, 35, 0,
778− 1, 35, 35, 4, 5, 6, 7, 8, 9, 10,
779− 11, 35, 193, 14, 15, 16, 17, 18, 19, 20,
780− 21, 22, 23, 35, 26, 26, 25, 1, 1, 13,
781− 35, 26, 5, 6, 35, 8, 9, 10, 11, 12,
782− 37, 14, 15, 16, 17, 18, 19, 20, 14, 35,
783− 35, 1, 35, 26, 4, 5, 6, 7, 8, 9,
784− 10, 11, 35, 35, 14, 15, 16, 4, 5, 6,
785− 7, 8, 9, 10, 11, 35, 26, 14, 15, 35,
786− 38, 35, 35, 5, 6, 35, 8, 9, 10, 11,
787− 35, 7, 14, 15, 6, 37, 76, 159, 35, 161,
788− 162, 163, 28, 29, 30, 31, 32, 169, 79, 171,
789− 120, -1, 38, 35, -1, -1, -1, -1, 180
759+ 0, 41, 42, 42, 43, 43, 44, 44, 44, 44,
760+ 44, 44, 44, 44, 45, 45, 45, 45, 45, 45,
761+ 45, 45, 45, 46, 46, 46, 46, 46, 46, 47,
762+ 47, 48, 49, 50, 51, 52, 52, 52, 52, 52,
763+ 52, 52, 53, 53, 53, 53, 53, 53, 54, 55,
764+ 55, 56, 56, 57, 58, 59, 60, 61, 61, 61,
765+ 61, 61, 61, 62, 62, 62, 62, 63, 63, 64,
766+ 65, 66, 67, 67, 67, 67, 68, 69, 70, 71,
767+ 72, 73, 73, 73, 73, 74, 75, 76, 77, 78,
768+ 79, 79, 79, 79, 80, 81, 81, 81, 82, 83,
769+ 83, 84, 84, 85, 85, 85, 86, 86, 87, 87,
770+ 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
771+ 88, 89, 89, 90, 90
790772 };
791773
792−/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
793− symbol of state STATE-NUM. */
794−static const yytype_uint8 yystos[] =
774+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
775+static const yytype_uint8 yyr2[] =
795776 {
796− 0, 3, 35, 41, 42, 43, 67, 85, 26, 27,
797− 83, 0, 1, 4, 5, 6, 7, 8, 9, 10,
798− 11, 14, 15, 16, 17, 18, 19, 20, 21, 22,
799− 23, 26, 35, 44, 45, 47, 48, 49, 50, 56,
800− 57, 59, 63, 65, 68, 69, 71, 73, 74, 75,
801− 84, 43, 35, 42, 85, 35, 83, 35, 83, 26,
802− 89, 35, 83, 26, 26, 26, 27, 34, 39, 87,
803− 88, 35, 1, 1, 51, 51, 60, 62, 66, 80,
804− 72, 78, 35, 35, 35, 35, 35, 35, 87, 87,
805− 36, 37, 85, 28, 29, 30, 31, 32, 38, 35,
806− 35, 1, 12, 16, 18, 19, 20, 21, 22, 24,
807− 26, 35, 46, 52, 53, 76, 77, 79, 17, 18,
808− 19, 20, 35, 46, 61, 77, 79, 45, 58, 84,
809− 45, 59, 64, 71, 84, 23, 35, 78, 81, 45,
810− 59, 70, 71, 84, 35, 46, 79, 33, 87, 87,
811− 88, 88, 88, 88, 88, 88, 35, 35, 25, 83,
812− 82, 83, 87, 26, 88, 54, 1, 13, 35, 83,
813− 82, 26, 14, 86, 87, 86, 35, 86, 86, 86,
814− 88, 26, 35, 35, 86, 35, 86, 87, 35, 35,
815− 35, 35, 86, 38, 55, 35, 35, 35, 83
777+ 0, 2, 2, 1, 2, 1, 0, 2, 2, 2,
778+ 2, 4, 4, 3, 1, 1, 1, 1, 1, 1,
779+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
780+ 2, 3, 2, 3, 2, 0, 2, 2, 2, 2,
781+ 2, 2, 3, 4, 4, 4, 4, 5, 3, 0,
782+ 3, 0, 2, 3, 2, 1, 3, 0, 2, 2,
783+ 2, 2, 2, 4, 3, 2, 4, 0, 2, 3,
784+ 1, 3, 0, 2, 2, 2, 3, 3, 3, 1,
785+ 3, 0, 2, 2, 2, 3, 3, 2, 2, 2,
786+ 0, 2, 2, 2, 4, 0, 2, 2, 2, 0,
787+ 2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
788+ 1, 3, 3, 3, 3, 3, 3, 3, 2, 3,
789+ 3, 1, 1, 0, 1
816790 };
817791
818−#define yyerrok (yyerrstatus = 0)
819−#define yyclearin (yychar = YYEMPTY)
820−#define YYEMPTY (-2)
821−#define YYEOF 0
822−
823−#define YYACCEPT goto yyacceptlab
824−#define YYABORT goto yyabortlab
825−#define YYERROR goto yyerrorlab
826−
827−
828−/* Like YYERROR except do call yyerror. This remains here temporarily
829− to ease the transition to the new meaning of YYERROR, for GCC.
830− Once GCC version 2 has supplanted version 1, this can go. However,
831− YYFAIL appears to be in use. Nevertheless, it is formally deprecated
832− in Bison 2.4.2's NEWS entry, where a plan to phase it out is
833− discussed. */
834−
835−#define YYFAIL goto yyerrlab
836−#if defined YYFAIL
837− /* This is here to suppress warnings from the GCC cpp's
838− -Wunused-macros. Normally we don't worry about that warning, but
839− some users do, and we want to make it easy for users to remove
840− YYFAIL uses, which will produce warnings from Bison 2.5. */
841−#endif
792+
793+#define yyerrok (yyerrstatus = 0)
794+#define yyclearin (yychar = YYEMPTY)
795+#define YYEMPTY (-2)
796+#define YYEOF 0
797+
798+#define YYACCEPT goto yyacceptlab
799+#define YYABORT goto yyabortlab
800+#define YYERROR goto yyerrorlab
801+
842802
843803 #define YYRECOVERING() (!!yyerrstatus)
844804
@@ -855,55 +815,15 @@ do \ · 10 unmodified lines
855815 else \
856816 { \
857817 yyerror (YY_("syntax error: cannot back up")); \
858− YYERROR; \
859− } \
860−while (YYID (0))
861−
862−
863−#define YYTERROR 1
864−#define YYERRCODE 256
865−
866−
867−/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
868− If N is 0, then set CURRENT to the empty location which ends
869− the previous symbol: RHS[0] (always defined). */
870−
871−#define YYRHSLOC(Rhs, K) ((Rhs)[K])
872−#ifndef YYLLOC_DEFAULT
873−# define YYLLOC_DEFAULT(Current, Rhs, N) \
874− do \
875− if (YYID (N)) \
876− { \
877− (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
878− (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
879− (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
880− (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
881− } \
882− else \
883− { \
884− (Current).first_line = (Current).last_line = \
885− YYRHSLOC (Rhs, 0).last_line; \
886− (Current).first_column = (Current).last_column = \
887− YYRHSLOC (Rhs, 0).last_column; \
888− } \
889− while (YYID (0))
890−#endif
891−
892−
893−/* This macro is provided for backward compatibility. */
894−
895−#ifndef YY_LOCATION_PRINT
896−# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
897−#endif
818+ YYERROR; \
819+ } \
820+while (0)
898821
822+/* Error token number */
823+#define YYTERROR 1
824+#define YYERRCODE 256
899825
900−/* YYLEX -- calling `yylex' with the right arguments. */
901826
902−#ifdef YYLEX_PARAM
903−# define YYLEX yylex (YYLEX_PARAM)
904−#else
905−# define YYLEX yylex ()
906−#endif
907827
908828 /* Enable debugging if requested. */
909829 #if YYDEBUG
@@ -913,40 +833,36 @@ while (YYID (0)) · 3 unmodified lines
913833 # define YYFPRINTF fprintf
914834 # endif
915835
916−# define YYDPRINTF(Args) \
917−do { \
918− if (yydebug) \
919− YYFPRINTF Args; \
920−} while (YYID (0))
836+# define YYDPRINTF(Args) \
837+do { \
838+ if (yydebug) \
839+ YYFPRINTF Args; \
840+} while (0)
841+
842+/* This macro is provided for backward compatibility. */
843+#ifndef YY_LOCATION_PRINT
844+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
845+#endif
846+
921847
922−# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
923−do { \
924− if (yydebug) \
925− { \
926− YYFPRINTF (stderr, "%s ", Title); \
927− yy_symbol_print (stderr, \
928− Type, Value); \
929− YYFPRINTF (stderr, "\n"); \
930− } \
931−} while (YYID (0))
848+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
849+do { \
850+ if (yydebug) \
851+ { \
852+ YYFPRINTF (stderr, "%s ", Title); \
853+ yy_symbol_print (stderr, \
854+ Type, Value); \
855+ YYFPRINTF (stderr, "\n"); \
856+ } \
857+} while (0)
932858
933859
934−/*--------------------------------.
935−| Print this symbol on YYOUTPUT. |
936−`--------------------------------*/
860+/*----------------------------------------.
861+| Print this symbol's value on YYOUTPUT. |
862+`----------------------------------------*/
937863
938−/*ARGSUSED*/
939−#if (defined __STDC__ || defined __C99__FUNC__ \
940− || defined __cplusplus || defined _MSC_VER)
941864 static void
942865 yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
943−#else
944−static void
945−yy_symbol_value_print (yyoutput, yytype, yyvaluep)
946− FILE *yyoutput;
947− int yytype;
948− YYSTYPE const * const yyvaluep;
949−#endif
950866 {
951867 FILE *yyo = yyoutput;
952868 YYUSE (yyo);
@@ -955,14 +871,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) · 2 unmodified lines
955871 # ifdef YYPRINT
956872 if (yytype < YYNTOKENS)
957873 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
958−# else
959− YYUSE (yyoutput);
960874 # endif
961− switch (yytype)
962− {
963− default:
964− break;
965− }
875+ YYUSE (yytype);
966876 }
967877
968878
@@ -970,22 +880,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) · 1 unmodified line
970880 | Print this symbol on YYOUTPUT. |
971881 `--------------------------------*/
972882
973−#if (defined __STDC__ || defined __C99__FUNC__ \
974− || defined __cplusplus || defined _MSC_VER)
975883 static void
976884 yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
977−#else
978−static void
979−yy_symbol_print (yyoutput, yytype, yyvaluep)
980− FILE *yyoutput;
981− int yytype;
982− YYSTYPE const * const yyvaluep;
983−#endif
984885 {
985− if (yytype < YYNTOKENS)
986− YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
987− else
988− YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
886+ YYFPRINTF (yyoutput, "%s %s (",
887+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
989888
990889 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
991890 YYFPRINTF (yyoutput, ")");
@@ -996,16 +895,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) · 4 unmodified lines
996895 | TOP (included). |
997896 `------------------------------------------------------------------*/
998897
999−#if (defined __STDC__ || defined __C99__FUNC__ \
1000− || defined __cplusplus || defined _MSC_VER)
1001898 static void
1002899 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1003−#else
1004−static void
1005−yy_stack_print (yybottom, yytop)
1006− yytype_int16 *yybottom;
1007− yytype_int16 *yytop;
1008−#endif
1009900 {
1010901 YYFPRINTF (stderr, "Stack now");
1011902 for (; yybottom <= yytop; yybottom++)
@@ -1016,49 +907,42 @@ yy_stack_print (yybottom, yytop) · 4 unmodified lines
1016907 YYFPRINTF (stderr, "\n");
1017908 }
1018909
1019−# define YY_STACK_PRINT(Bottom, Top) \
1020−do { \
1021− if (yydebug) \
1022− yy_stack_print ((Bottom), (Top)); \
1023−} while (YYID (0))
910+# define YY_STACK_PRINT(Bottom, Top) \
911+do { \
912+ if (yydebug) \
913+ yy_stack_print ((Bottom), (Top)); \
914+} while (0)
1024915
1025916
1026917 /*------------------------------------------------.
1027918 | Report that the YYRULE is going to be reduced. |
1028919 `------------------------------------------------*/
1029920
1030−#if (defined __STDC__ || defined __C99__FUNC__ \
1031− || defined __cplusplus || defined _MSC_VER)
1032921 static void
1033−yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
1034−#else
1035−static void
1036−yy_reduce_print (yyvsp, yyrule)
1037− YYSTYPE *yyvsp;
1038− int yyrule;
1039−#endif
922+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1040923 {
924+ unsigned long int yylno = yyrline[yyrule];
1041925 int yynrhs = yyr2[yyrule];
1042926 int yyi;
1043− unsigned long int yylno = yyrline[yyrule];
1044927 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1045− yyrule - 1, yylno);
928+ yyrule - 1, yylno);
1046929 /* The symbols being reduced. */
1047930 for (yyi = 0; yyi < yynrhs; yyi++)
1048931 {
1049932 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1050− yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
1051− &(yyvsp[(yyi + 1) - (yynrhs)])
1052− );
933+ yy_symbol_print (stderr,
934+ yystos[yyssp[yyi + 1 - yynrhs]],
935+ &(yyvsp[(yyi + 1) - (yynrhs)])
936+ );
1053937 YYFPRINTF (stderr, "\n");
1054938 }
1055939 }
1056940
1057−# define YY_REDUCE_PRINT(Rule) \
1058−do { \
1059− if (yydebug) \
1060− yy_reduce_print (yyvsp, Rule); \
1061−} while (YYID (0))
941+# define YY_REDUCE_PRINT(Rule) \
942+do { \
943+ if (yydebug) \
944+ yy_reduce_print (yyssp, yyvsp, Rule); \
945+} while (0)
1062946
1063947 /* Nonzero means print parse trace. It is left uninitialized so that
1064948 multiple parsers can coexist. */
@@ -1072,7 +956,7 @@ int yydebug; · 7 unmodified lines
1072956
1073957
1074958 /* YYINITDEPTH -- initial size of the parser's stacks. */
1075−#ifndef YYINITDEPTH
959+#ifndef YYINITDEPTH
1076960 # define YYINITDEPTH 200
1077961 #endif
1078962
@@ -1095,15 +979,8 @@ int yydebug; · 16 unmodified lines
1095979 # define yystrlen strlen
1096980 # else
1097981 /* Return the length of YYSTR. */
1098−#if (defined __STDC__ || defined __C99__FUNC__ \
1099− || defined __cplusplus || defined _MSC_VER)
1100982 static YYSIZE_T
1101983 yystrlen (const char *yystr)
1102−#else
1103−static YYSIZE_T
1104−yystrlen (yystr)
1105− const char *yystr;
1106−#endif
1107984 {
1108985 YYSIZE_T yylen;
1109986 for (yylen = 0; yystr[yylen]; yylen++)
@@ -1119,16 +996,8 @@ yystrlen (yystr) · 9 unmodified lines
1119996 # else
1120997 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1121998 YYDEST. */
1122−#if (defined __STDC__ || defined __C99__FUNC__ \
1123− || defined __cplusplus || defined _MSC_VER)
1124999 static char *
11251000 yystpcpy (char *yydest, const char *yysrc)
1126−#else
1127−static char *
1128−yystpcpy (yydest, yysrc)
1129− char *yydest;
1130− const char *yysrc;
1131−#endif
11321001 {
11331002 char *yyd = yydest;
11341003 const char *yys = yysrc;
@@ -1158,27 +1027,27 @@ yytnamerr (char *yyres, const char *yystr) · 23 unmodified lines
11581027 char const *yyp = yystr;
11591028
11601029 for (;;)
1161− switch (*++yyp)
1162− {
1163− case '\'':
1164− case ',':
1165− goto do_not_strip_quotes;
1166−
1167− case '\\':
1168− if (*++yyp != '\\')
1169− goto do_not_strip_quotes;
1170− /* Fall through. */
1171− default:
1172− if (yyres)
1173− yyres[yyn] = *yyp;
1174− yyn++;
1175− break;
1176−
1177− case '"':
1178− if (yyres)
1179− yyres[yyn] = '\0';
1180− return yyn;
1181− }
1030+ switch (*++yyp)
1031+ {
1032+ case '\'':
1033+ case ',':
1034+ goto do_not_strip_quotes;
1035+
1036+ case '\\':
1037+ if (*++yyp != '\\')
1038+ goto do_not_strip_quotes;
1039+ /* Fall through. */
1040+ default:
1041+ if (yyres)
1042+ yyres[yyn] = *yyp;
1043+ yyn++;
1044+ break;
1045+
1046+ case '"':
1047+ if (yyres)
1048+ yyres[yyn] = '\0';
1049+ return yyn;
1050+ }
11821051 do_not_strip_quotes: ;
11831052 }
11841053
@@ -1201,12 +1070,11 @@ static int · 16 unmodified lines
12011070 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
12021071 yytype_int16 *yyssp, int yytoken)
12031072 {
1204− YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
1073+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
12051074 YYSIZE_T yysize = yysize0;
1206− YYSIZE_T yysize1;
12071075 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
12081076 /* Internationalized format string. */
1209− const char *yyformat = YY_NULL;
1077+ const char *yyformat = YY_NULLPTR;
12101078 /* Arguments of yyformat. */
12111079 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
12121080 /* Number of reported tokens (one for the "unexpected", one per
@@ -1214,10 +1082,6 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, · 1 unmodified line
12141082 int yycount = 0;
12151083
12161084 /* There are many possibilities here to consider:
1217− - Assume YYFAIL is not used. It's too flawed to consider. See
1218− <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
1219− for details. YYERROR is fine as it does not invoke this
1220− function.
12211085 - If this state is a consistent state with a default action, then
12221086 the only way this function was invoked is if the default action
12231087 is an error action. In that case, don't check for expected
@@ -1266,11 +1130,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, · 42 unmodified lines
12661130 break;
12671131 }
12681132 yyarg[yycount++] = yytname[yyx];
1269− yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
1270− if (! (yysize <= yysize1
1271− && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1272− return 2;
1273− yysize = yysize1;
1133+ {
1134+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1135+ if (! (yysize <= yysize1
1136+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1137+ return 2;
1138+ yysize = yysize1;
1139+ }
12741140 }
12751141 }
12761142 }
@@ -1290,10 +1156,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, · 13 unmodified lines
12901156 # undef YYCASE_
12911157 }
12921158
1293− yysize1 = yysize + yystrlen (yyformat);
1294− if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1295− return 2;
1296− yysize = yysize1;
1159+ {
1160+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1161+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1162+ return 2;
1163+ yysize = yysize1;
1164+ }
12971165
12981166 if (*yymsg_alloc < yysize)
12991167 {
@@ -1330,78 +1198,58 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, · 30 unmodified lines
13301198 | Release the memory associated to this symbol. |
13311199 `-----------------------------------------------*/
13321200
1333−/*ARGSUSED*/
1334−#if (defined __STDC__ || defined __C99__FUNC__ \
1335− || defined __cplusplus || defined _MSC_VER)
13361201 static void
13371202 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1338−#else
1339−static void
1340−yydestruct (yymsg, yytype, yyvaluep)
1341− const char *yymsg;
1342− int yytype;
1343− YYSTYPE *yyvaluep;
1344−#endif
13451203 {
13461204 YYUSE (yyvaluep);
1347−
13481205 if (!yymsg)
13491206 yymsg = "Deleting";
13501207 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
13511208
1209+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
13521210 switch (yytype)
13531211 {
1354− case 57: /* "choice_entry" */
1212+ case 58: /* choice_entry */
13551213
1356− {
1214+ {
13571215 fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1358− (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
1359− if (current_menu == (yyvaluep->menu))
1216+ ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno);
1217+ if (current_menu == ((*yyvaluep).menu))
13601218 menu_end_menu();
1361−};
1219+}
1220+
1221+ break;
13621222
1363− break;
1364− case 63: /* "if_entry" */
1223+ case 64: /* if_entry */
13651224
1366− {
1225+ {
13671226 fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1368− (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
1369− if (current_menu == (yyvaluep->menu))
1227+ ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno);
1228+ if (current_menu == ((*yyvaluep).menu))
13701229 menu_end_menu();
1371−};
1230+}
13721231
1373− break;
1374− case 69: /* "menu_entry" */
1232+ break;
13751233
1376− {
1234+ case 70: /* menu_entry */
1235+
1236+ {
13771237 fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1378− (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);
1379− if (current_menu == (yyvaluep->menu))
1238+ ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno);
1239+ if (current_menu == ((*yyvaluep).menu))
13801240 menu_end_menu();
1381−};
1241+}
1242+
1243+ break;
13821244
1383− break;
13841245
13851246 default:
1386− break;
1247+ break;
13871248 }
1249+ YY_IGNORE_MAYBE_UNINITIALIZED_END
13881250 }
13891251
13901252
1391−/* Prevent warnings from -Wmissing-prototypes. */
1392−#ifdef YYPARSE_PARAM
1393−#if defined __STDC__ || defined __cplusplus
1394−int yyparse (void *YYPARSE_PARAM);
1395−#else
1396−int yyparse ();
1397−#endif
1398−#else /* ! YYPARSE_PARAM */
1399−#if defined __STDC__ || defined __cplusplus
1400−int yyparse (void);
1401−#else
1402−int yyparse ();
1403−#endif
1404−#endif /* ! YYPARSE_PARAM */
14051253
14061254
14071255 /* The lookahead symbol. */
@@ -1409,7 +1257,6 @@ int yychar; · 1 unmodified line
14091257
14101258 /* The semantic value of the lookahead symbol. */
14111259 YYSTYPE yylval;
1412−
14131260 /* Number of syntax errors so far. */
14141261 int yynerrs;
14151262
@@ -1418,35 +1265,16 @@ int yynerrs; · 2 unmodified lines
14181265 | yyparse. |
14191266 `----------*/
14201267
1421−#ifdef YYPARSE_PARAM
1422−#if (defined __STDC__ || defined __C99__FUNC__ \
1423− || defined __cplusplus || defined _MSC_VER)
1424−int
1425−yyparse (void *YYPARSE_PARAM)
1426−#else
1427−int
1428−yyparse (YYPARSE_PARAM)
1429− void *YYPARSE_PARAM;
1430−#endif
1431−#else /* ! YYPARSE_PARAM */
1432−#if (defined __STDC__ || defined __C99__FUNC__ \
1433− || defined __cplusplus || defined _MSC_VER)
14341268 int
14351269 yyparse (void)
1436−#else
1437−int
1438−yyparse ()
1439−
1440−#endif
1441−#endif
14421270 {
14431271 int yystate;
14441272 /* Number of tokens to shift before error messages enabled. */
14451273 int yyerrstatus;
14461274
14471275 /* The stacks and their tools:
1448− `yyss': related to states.
1449− `yyvs': related to semantic values.
1276+ 'yyss': related to states.
1277+ 'yyvs': related to semantic values.
14501278
14511279 Refer to the stacks through separate pointers, to allow yyoverflow
14521280 to reallocate them elsewhere. */
@@ -1466,7 +1294,7 @@ yyparse () · 13 unmodified lines
14661294 int yyn;
14671295 int yyresult;
14681296 /* Lookahead token as an internal (translated) token number. */
1469− int yytoken;
1297+ int yytoken = 0;
14701298 /* The variables used to return semantic value and location from the
14711299 action routines. */
14721300 YYSTYPE yyval;
@@ -1484,9 +1312,8 @@ yyparse () · 11 unmodified lines
14841312 Keep to zero when no symbol should be popped. */
14851313 int yylen = 0;
14861314
1487− yytoken = 0;
1488− yyss = yyssa;
1489− yyvs = yyvsa;
1315+ yyssp = yyss = yyssa;
1316+ yyvsp = yyvs = yyvsa;
14901317 yystacksize = YYINITDEPTH;
14911318
14921319 YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1495,14 +1322,6 @@ yyparse () · 2 unmodified lines
14951322 yyerrstatus = 0;
14961323 yynerrs = 0;
14971324 yychar = YYEMPTY; /* Cause a token to be read. */
1498−
1499− /* Initialize stack pointers.
1500− Waste one element of value and location stack
1501− so that they stay on the same level as the state stack.
1502− The wasted elements are never initialized. */
1503− yyssp = yyss;
1504− yyvsp = yyvs;
1505−
15061325 goto yysetstate;
15071326
15081327 /*------------------------------------------------------------.
@@ -1523,23 +1342,23 @@ yyparse () · 14 unmodified lines
15231342
15241343 #ifdef yyoverflow
15251344 {
1526− /* Give user a chance to reallocate the stack. Use copies of
1527− these so that the &'s don't force the real ones into
1528− memory. */
1529− YYSTYPE *yyvs1 = yyvs;
1530− yytype_int16 *yyss1 = yyss;
1531−
1532− /* Each stack pointer address is followed by the size of the
1533− data in use in that stack, in bytes. This used to be a
1534− conditional around just the two extra args, but that might
1535− be undefined if yyoverflow is a macro. */
1536− yyoverflow (YY_("memory exhausted"),
1537− &yyss1, yysize * sizeof (*yyssp),
1538− &yyvs1, yysize * sizeof (*yyvsp),
1539− &yystacksize);
1540−
1541− yyss = yyss1;
1542− yyvs = yyvs1;
1345+ /* Give user a chance to reallocate the stack. Use copies of
1346+ these so that the &'s don't force the real ones into
1347+ memory. */
1348+ YYSTYPE *yyvs1 = yyvs;
1349+ yytype_int16 *yyss1 = yyss;
1350+
1351+ /* Each stack pointer address is followed by the size of the
1352+ data in use in that stack, in bytes. This used to be a
1353+ conditional around just the two extra args, but that might
1354+ be undefined if yyoverflow is a macro. */
1355+ yyoverflow (YY_("memory exhausted"),
1356+ &yyss1, yysize * sizeof (*yyssp),
1357+ &yyvs1, yysize * sizeof (*yyvsp),
1358+ &yystacksize);
1359+
1360+ yyss = yyss1;
1361+ yyvs = yyvs1;
15431362 }
15441363 #else /* no yyoverflow */
15451364 # ifndef YYSTACK_RELOCATE
@@ -1547,22 +1366,22 @@ yyparse () · 1 unmodified line
15471366 # else
15481367 /* Extend the stack our own way. */
15491368 if (YYMAXDEPTH <= yystacksize)
1550− goto yyexhaustedlab;
1369+ goto yyexhaustedlab;
15511370 yystacksize *= 2;
15521371 if (YYMAXDEPTH < yystacksize)
1553− yystacksize = YYMAXDEPTH;
1372+ yystacksize = YYMAXDEPTH;
15541373
15551374 {
1556− yytype_int16 *yyss1 = yyss;
1557− union yyalloc *yyptr =
1558− (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1559− if (! yyptr)
1560− goto yyexhaustedlab;
1561− YYSTACK_RELOCATE (yyss_alloc, yyss);
1562− YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1375+ yytype_int16 *yyss1 = yyss;
1376+ union yyalloc *yyptr =
1377+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1378+ if (! yyptr)
1379+ goto yyexhaustedlab;
1380+ YYSTACK_RELOCATE (yyss_alloc, yyss);
1381+ YYSTACK_RELOCATE (yyvs_alloc, yyvs);
15631382 # undef YYSTACK_RELOCATE
1564− if (yyss1 != yyssa)
1565− YYSTACK_FREE (yyss1);
1383+ if (yyss1 != yyssa)
1384+ YYSTACK_FREE (yyss1);
15661385 }
15671386 # endif
15681387 #endif /* no yyoverflow */
@@ -1571,10 +1390,10 @@ yyparse () · 2 unmodified lines
15711390 yyvsp = yyvs + yysize - 1;
15721391
15731392 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1574− (unsigned long int) yystacksize));
1393+ (unsigned long int) yystacksize));
15751394
15761395 if (yyss + yystacksize - 1 <= yyssp)
1577− YYABORT;
1396+ YYABORT;
15781397 }
15791398
15801399 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -1603,7 +1422,7 @@ yybackup: · 22 unmodified lines
16031422 if (yychar == YYEMPTY)
16041423 {
16051424 YYDPRINTF ((stderr, "Reading a token: "));
1606− yychar = YYLEX;
1425+ yychar = yylex ();
16071426 }
16081427
16091428 if (yychar <= YYEOF)
@@ -1643,7 +1462,9 @@ yybackup: · 33 unmodified lines
16431462 yychar = YYEMPTY;
16441463
16451464 yystate = yyn;
1465+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
16461466 *++yyvsp = yylval;
1467+ YY_IGNORE_MAYBE_UNINITIALIZED_END
16471468
16481469 goto yynewstate;
16491470
@@ -1666,7 +1487,7 @@ yyreduce: · 16 unmodified lines
16661487 yylen = yyr2[yyn];
16671488
16681489 /* If YYLEN is nonzero, implement the default value of the action:
1669− `$$ = $1'.
1490+ '$$ = $1'.
16701491
16711492 Otherwise, the following line sets YYVAL to garbage.
16721493 This behavior is undocumented and Bison
@@ -1682,64 +1503,73 @@ yyreduce: · 9 unmodified lines
16821503 case 10:
16831504
16841505 { zconf_error("unexpected end statement"); }
1506+
16851507 break;
16861508
16871509 case 11:
16881510
1689− { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); }
1511+ { zconf_error("unknown statement \"%s\"", (yyvsp[-2].string)); }
1512+
16901513 break;
16911514
16921515 case 12:
16931516
16941517 {
1695− zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[(2) - (4)].id)->name);
1518+ zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[-2].id)->name);
16961519 }
1520+
16971521 break;
16981522
16991523 case 13:
17001524
17011525 { zconf_error("invalid statement"); }
1526+
17021527 break;
17031528
1704− case 28:
1529+ case 29:
1530+
1531+ { zconf_error("unknown option \"%s\"", (yyvsp[-2].string)); }
17051532
1706− { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); }
17071533 break;
17081534
1709− case 29:
1535+ case 30:
17101536
17111537 { zconf_error("invalid option"); }
1538+
17121539 break;
17131540
1714− case 30:
1541+ case 31:
17151542
17161543 {
1717− struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
1544+ struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
17181545 sym->flags |= SYMBOL_OPTIONAL;
17191546 menu_add_entry(sym);
1720− printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
1547+ printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
17211548 }
1549+
17221550 break;
17231551
1724− case 31:
1552+ case 32:
17251553
17261554 {
17271555 menu_end_entry();
17281556 printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
17291557 }
1558+
17301559 break;
17311560
1732− case 32:
1561+ case 33:
17331562
17341563 {
1735− struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
1564+ struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
17361565 sym->flags |= SYMBOL_OPTIONAL;
17371566 menu_add_entry(sym);
1738− printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
1567+ printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
17391568 }
1569+
17401570 break;
17411571
1742− case 33:
1572+ case 34:
17431573
17441574 {
17451575 if (current_entry->prompt)
@@ -1749,352 +1579,410 @@ yyreduce: · 3 unmodified lines
17491579 menu_end_entry();
17501580 printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
17511581 }
1582+
17521583 break;
17531584
1754− case 41:
1585+ case 42:
17551586
17561587 {
1757− menu_set_type((yyvsp[(1) - (3)].id)->stype);
1588+ menu_set_type((yyvsp[-2].id)->stype);
17581589 printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
17591590 zconf_curname(), zconf_lineno(),
1760− (yyvsp[(1) - (3)].id)->stype);
1591+ (yyvsp[-2].id)->stype);
17611592 }
1593+
17621594 break;
17631595
1764− case 42:
1596+ case 43:
17651597
17661598 {
1767− menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
1599+ menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
17681600 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
17691601 }
1602+
17701603 break;
17711604
1772− case 43:
1605+ case 44:
17731606
17741607 {
1775− menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
1776− if ((yyvsp[(1) - (4)].id)->stype != S_UNKNOWN)
1777− menu_set_type((yyvsp[(1) - (4)].id)->stype);
1608+ menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
1609+ if ((yyvsp[-3].id)->stype != S_UNKNOWN)
1610+ menu_set_type((yyvsp[-3].id)->stype);
17781611 printd(DEBUG_PARSE, "%s:%d:default(%u)\n",
17791612 zconf_curname(), zconf_lineno(),
1780− (yyvsp[(1) - (4)].id)->stype);
1613+ (yyvsp[-3].id)->stype);
17811614 }
1615+
17821616 break;
17831617
1784− case 44:
1618+ case 45:
17851619
17861620 {
1787− menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
1621+ menu_add_symbol(P_SELECT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
17881622 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
17891623 }
1624+
17901625 break;
17911626
1792− case 45:
1627+ case 46:
17931628
17941629 {
1795− menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
1630+ menu_add_symbol(P_IMPLY, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
1631+ printd(DEBUG_PARSE, "%s:%d:imply\n", zconf_curname(), zconf_lineno());
1632+}
1633+
1634+ break;
1635+
1636+ case 47:
1637+
1638+ {
1639+ menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[-3].symbol), (yyvsp[-2].symbol)), (yyvsp[-1].expr));
17961640 printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
17971641 }
1642+
17981643 break;
17991644
1800− case 48:
1645+ case 50:
18011646
18021647 {
1803− const struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
1648+ const struct kconf_id *id = kconf_id_lookup((yyvsp[-1].string), strlen((yyvsp[-1].string)));
18041649 if (id && id->flags & TF_OPTION)
1805− menu_add_option(id->token, (yyvsp[(3) - (3)].string));
1650+ menu_add_option(id->token, (yyvsp[0].string));
18061651 else
1807− zconfprint("warning: ignoring unknown option %s", (yyvsp[(2) - (3)].string));
1808− free((yyvsp[(2) - (3)].string));
1652+ zconfprint("warning: ignoring unknown option %s", (yyvsp[-1].string));
1653+ free((yyvsp[-1].string));
18091654 }
1655+
18101656 break;
18111657
1812− case 49:
1658+ case 51:
18131659
18141660 { (yyval.string) = NULL; }
1661+
18151662 break;
18161663
1817− case 50:
1664+ case 52:
1665+
1666+ { (yyval.string) = (yyvsp[0].string); }
18181667
1819− { (yyval.string) = (yyvsp[(2) - (2)].string); }
18201668 break;
18211669
1822− case 51:
1670+ case 53:
18231671
18241672 {
1825− struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
1673+ struct symbol *sym = sym_lookup((yyvsp[-1].string), SYMBOL_CHOICE);
18261674 sym->flags |= SYMBOL_AUTO;
18271675 menu_add_entry(sym);
18281676 menu_add_expr(P_CHOICE, NULL, NULL);
18291677 printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
18301678 }
1679+
18311680 break;
18321681
1833− case 52:
1682+ case 54:
18341683
18351684 {
18361685 (yyval.menu) = menu_add_menu();
18371686 }
1687+
18381688 break;
18391689
1840− case 53:
1690+ case 55:
18411691
18421692 {
1843− if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
1693+ if (zconf_endtoken((yyvsp[0].id), T_CHOICE, T_ENDCHOICE)) {
18441694 menu_end_menu();
18451695 printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
18461696 }
18471697 }
1698+
18481699 break;
18491700
1850− case 61:
1701+ case 63:
18511702
18521703 {
1853− menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
1704+ menu_add_prompt(P_PROMPT, (yyvsp[-2].string), (yyvsp[-1].expr));
18541705 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
18551706 }
1707+
18561708 break;
18571709
1858− case 62:
1710+ case 64:
18591711
18601712 {
1861− if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
1862− menu_set_type((yyvsp[(1) - (3)].id)->stype);
1713+ if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) {
1714+ menu_set_type((yyvsp[-2].id)->stype);
18631715 printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
18641716 zconf_curname(), zconf_lineno(),
1865− (yyvsp[(1) - (3)].id)->stype);
1717+ (yyvsp[-2].id)->stype);
18661718 } else
18671719 YYERROR;
18681720 }
1721+
18691722 break;
18701723
1871− case 63:
1724+ case 65:
18721725
18731726 {
18741727 current_entry->sym->flags |= SYMBOL_OPTIONAL;
18751728 printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
18761729 }
1730+
18771731 break;
18781732
1879− case 64:
1733+ case 66:
18801734
18811735 {
1882− if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
1883− menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
1736+ if ((yyvsp[-3].id)->stype == S_UNKNOWN) {
1737+ menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
18841738 printd(DEBUG_PARSE, "%s:%d:default\n",
18851739 zconf_curname(), zconf_lineno());
18861740 } else
18871741 YYERROR;
18881742 }
1743+
18891744 break;
18901745
1891− case 67:
1746+ case 69:
18921747
18931748 {
18941749 printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
18951750 menu_add_entry(NULL);
1896− menu_add_dep((yyvsp[(2) - (3)].expr));
1751+ menu_add_dep((yyvsp[-1].expr));
18971752 (yyval.menu) = menu_add_menu();
18981753 }
1754+
18991755 break;
19001756
1901− case 68:
1757+ case 70:
19021758
19031759 {
1904− if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
1760+ if (zconf_endtoken((yyvsp[0].id), T_IF, T_ENDIF)) {
19051761 menu_end_menu();
19061762 printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
19071763 }
19081764 }
1765+
19091766 break;
19101767
1911− case 74:
1768+ case 76:
19121769
19131770 {
1914− menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
1771+ menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL);
19151772 }
1773+
19161774 break;
19171775
1918− case 75:
1776+ case 77:
19191777
19201778 {
19211779 menu_add_entry(NULL);
1922− menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
1780+ menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL);
19231781 printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
19241782 }
1783+
19251784 break;
19261785
1927− case 76:
1786+ case 78:
19281787
19291788 {
19301789 (yyval.menu) = menu_add_menu();
19311790 }
1791+
19321792 break;
19331793
1934− case 77:
1794+ case 79:
19351795
19361796 {
1937− if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
1797+ if (zconf_endtoken((yyvsp[0].id), T_MENU, T_ENDMENU)) {
19381798 menu_end_menu();
19391799 printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
19401800 }
19411801 }
1802+
19421803 break;
19431804
1944− case 83:
1805+ case 85:
19451806
19461807 {
1947− printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
1948− zconf_nextfile((yyvsp[(2) - (3)].string));
1808+ printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
1809+ zconf_nextfile((yyvsp[-1].string));
19491810 }
1811+
19501812 break;
19511813
1952− case 84:
1814+ case 86:
19531815
19541816 {
19551817 menu_add_entry(NULL);
1956− menu_add_prompt(P_COMMENT, (yyvsp[(2) - (3)].string), NULL);
1818+ menu_add_prompt(P_COMMENT, (yyvsp[-1].string), NULL);
19571819 printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
19581820 }
1821+
19591822 break;
19601823
1961− case 85:
1824+ case 87:
19621825
19631826 {
19641827 menu_end_entry();
19651828 }
1829+
19661830 break;
19671831
1968− case 86:
1832+ case 88:
19691833
19701834 {
19711835 printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
19721836 zconf_starthelp();
19731837 }
1838+
19741839 break;
19751840
1976− case 87:
1841+ case 89:
19771842
19781843 {
1979− current_entry->help = (yyvsp[(2) - (2)].string);
1844+ current_entry->help = (yyvsp[0].string);
19801845 }
1846+
19811847 break;
19821848
1983− case 92:
1849+ case 94:
19841850
19851851 {
1986− menu_add_dep((yyvsp[(3) - (4)].expr));
1852+ menu_add_dep((yyvsp[-1].expr));
19871853 printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
19881854 }
1989− break;
1990−
1991− case 96:
19921855
1993− {
1994− menu_add_visibility((yyvsp[(2) - (2)].expr));
1995−}
19961856 break;
19971857
19981858 case 98:
19991859
20001860 {
2001− menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
1861+ menu_add_visibility((yyvsp[0].expr));
20021862 }
2003− break;
20041863
2005− case 101:
2006−
2007− { (yyval.id) = (yyvsp[(1) - (2)].id); }
20081864 break;
20091865
2010− case 102:
1866+ case 100:
1867+
1868+ {
1869+ menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr));
1870+}
20111871
2012− { (yyval.id) = (yyvsp[(1) - (2)].id); }
20131872 break;
20141873
20151874 case 103:
20161875
2017− { (yyval.id) = (yyvsp[(1) - (2)].id); }
1876+ { (yyval.id) = (yyvsp[-1].id); }
1877+
20181878 break;
20191879
2020− case 106:
1880+ case 104:
1881+
1882+ { (yyval.id) = (yyvsp[-1].id); }
20211883
2022− { (yyval.expr) = NULL; }
20231884 break;
20241885
2025− case 107:
1886+ case 105:
1887+
1888+ { (yyval.id) = (yyvsp[-1].id); }
20261889
2027− { (yyval.expr) = (yyvsp[(2) - (2)].expr); }
20281890 break;
20291891
20301892 case 108:
20311893
2032− { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); }
1894+ { (yyval.expr) = NULL; }
1895+
20331896 break;
20341897
20351898 case 109:
20361899
2037− { (yyval.expr) = expr_alloc_comp(E_LTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }
1900+ { (yyval.expr) = (yyvsp[0].expr); }
1901+
20381902 break;
20391903
20401904 case 110:
20411905
2042− { (yyval.expr) = expr_alloc_comp(E_LEQ, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }
1906+ { (yyval.expr) = expr_alloc_symbol((yyvsp[0].symbol)); }
1907+
20431908 break;
20441909
20451910 case 111:
20461911
2047− { (yyval.expr) = expr_alloc_comp(E_GTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }
1912+ { (yyval.expr) = expr_alloc_comp(E_LTH, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1913+
20481914 break;
20491915
20501916 case 112:
20511917
2052− { (yyval.expr) = expr_alloc_comp(E_GEQ, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }
1918+ { (yyval.expr) = expr_alloc_comp(E_LEQ, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1919+
20531920 break;
20541921
20551922 case 113:
20561923
2057− { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }
1924+ { (yyval.expr) = expr_alloc_comp(E_GTH, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1925+
20581926 break;
20591927
20601928 case 114:
20611929
2062− { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }
1930+ { (yyval.expr) = expr_alloc_comp(E_GEQ, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1931+
20631932 break;
20641933
20651934 case 115:
20661935
2067− { (yyval.expr) = (yyvsp[(2) - (3)].expr); }
1936+ { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1937+
20681938 break;
20691939
20701940 case 116:
20711941
2072− { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); }
1942+ { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1943+
20731944 break;
20741945
20751946 case 117:
20761947
2077− { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
1948+ { (yyval.expr) = (yyvsp[-1].expr); }
1949+
20781950 break;
20791951
20801952 case 118:
20811953
2082− { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }
1954+ { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[0].expr)); }
1955+
20831956 break;
20841957
20851958 case 119:
20861959
2087− { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); }
1960+ { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
1961+
20881962 break;
20891963
20901964 case 120:
20911965
2092− { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); }
1966+ { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); }
1967+
20931968 break;
20941969
20951970 case 121:
20961971
1972+ { (yyval.symbol) = sym_lookup((yyvsp[0].string), 0); free((yyvsp[0].string)); }
1973+
1974+ break;
1975+
1976+ case 122:
1977+
1978+ { (yyval.symbol) = sym_lookup((yyvsp[0].string), SYMBOL_CONST); free((yyvsp[0].string)); }
1979+
1980+ break;
1981+
1982+ case 123:
1983+
20971984 { (yyval.string) = NULL; }
1985+
20981986 break;
20991987
21001988
@@ -2120,7 +2008,7 @@ yyreduce: · 19 unmodified lines
21202008
21212009 *++yyvsp = yyval;
21222010
2123− /* Now `shift' the result of the reduction. Determine what state
2011+ /* Now 'shift' the result of the reduction. Determine what state
21242012 that goes to, based on the state we popped back to and the rule
21252013 number reduced by. */
21262014
@@ -2135,9 +2023,9 @@ yyreduce: · 8 unmodified lines
21352023 goto yynewstate;
21362024
21372025
2138−/*------------------------------------.
2139−| yyerrlab -- here on detecting error |
2140−`------------------------------------*/
2026+/*--------------------------------------.
2027+| yyerrlab -- here on detecting error. |
2028+`--------------------------------------*/
21412029 yyerrlab:
21422030 /* Make sure we have latest lookahead translation. See comments at
21432031 user semantic actions for why this is necessary. */
@@ -2188,20 +2076,20 @@ yyerrlab: · 44 unmodified lines
21882076 if (yyerrstatus == 3)
21892077 {
21902078 /* If just tried and failed to reuse lookahead token after an
2191− error, discard it. */
2079+ error, discard it. */
21922080
21932081 if (yychar <= YYEOF)
2194− {
2195− /* Return failure if at end of input. */
2196− if (yychar == YYEOF)
2197− YYABORT;
2198− }
2082+ {
2083+ /* Return failure if at end of input. */
2084+ if (yychar == YYEOF)
2085+ YYABORT;
2086+ }
21992087 else
2200− {
2201− yydestruct ("Error: discarding",
2202− yytoken, &yylval);
2203− yychar = YYEMPTY;
2204− }
2088+ {
2089+ yydestruct ("Error: discarding",
2090+ yytoken, &yylval);
2091+ yychar = YYEMPTY;
2092+ }
22052093 }
22062094
22072095 /* Else will try to reuse lookahead token after shifting the error
@@ -2220,7 +2108,7 @@ yyerrorlab: · 12 unmodified lines
22202108 if (/*CONSTCOND*/ 0)
22212109 goto yyerrorlab;
22222110
2223− /* Do not reclaim the symbols of the rule which action triggered
2111+ /* Do not reclaim the symbols of the rule whose action triggered
22242112 this YYERROR. */
22252113 YYPOPSTACK (yylen);
22262114 yylen = 0;
@@ -2233,35 +2121,37 @@ yyerrorlab: · 6 unmodified lines
22332121 | yyerrlab1 -- common code for both syntax error and YYERROR. |
22342122 `-------------------------------------------------------------*/
22352123 yyerrlab1:
2236− yyerrstatus = 3; /* Each real token shifted decrements this. */
2124+ yyerrstatus = 3; /* Each real token shifted decrements this. */
22372125
22382126 for (;;)
22392127 {
22402128 yyn = yypact[yystate];
22412129 if (!yypact_value_is_default (yyn))
2242− {
2243− yyn += YYTERROR;
2244− if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2245− {
2246− yyn = yytable[yyn];
2247− if (0 < yyn)
2248− break;
2249− }
2250− }
2130+ {
2131+ yyn += YYTERROR;
2132+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2133+ {
2134+ yyn = yytable[yyn];
2135+ if (0 < yyn)
2136+ break;
2137+ }
2138+ }
22512139
22522140 /* Pop the current state because it cannot handle the error token. */
22532141 if (yyssp == yyss)
2254− YYABORT;
2142+ YYABORT;
22552143
22562144
22572145 yydestruct ("Error: popping",
2258− yystos[yystate], yyvsp);
2146+ yystos[yystate], yyvsp);
22592147 YYPOPSTACK (1);
22602148 yystate = *yyssp;
22612149 YY_STACK_PRINT (yyss, yyssp);
22622150 }
22632151
2152+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
22642153 *++yyvsp = yylval;
2154+ YY_IGNORE_MAYBE_UNINITIALIZED_END
22652155
22662156
22672157 /* Shift the error token. */
@@ -2304,14 +2194,14 @@ yyreturn: · 36 unmodified lines
23042194 yydestruct ("Cleanup: discarding lookahead",
23052195 yytoken, &yylval);
23062196 }
2307− /* Do not reclaim the symbols of the rule which action triggered
2197+ /* Do not reclaim the symbols of the rule whose action triggered
23082198 this YYABORT or YYACCEPT. */
23092199 YYPOPSTACK (yylen);
23102200 YY_STACK_PRINT (yyss, yyssp);
23112201 while (yyssp != yyss)
23122202 {
23132203 yydestruct ("Cleanup: popping",
2314− yystos[*yyssp], yyvsp);
2204+ yystos[*yyssp], yyvsp);
23152205 YYPOPSTACK (1);
23162206 }
23172207 #ifndef yyoverflow
@@ -2322,14 +2212,11 @@ yyreturn: · 4 unmodified lines
23222212 if (yymsg != yymsgbuf)
23232213 YYSTACK_FREE (yymsg);
23242214 #endif
2325− /* Make sure YYID is used. */
2326− return YYID (yyresult);
2215+ return yyresult;
23272216 }
23282217
23292218
23302219
2331−
2332−
23332220 void conf_parse(const char *name)
23342221 {
23352222 struct symbol *sym;
@@ -2501,6 +2388,11 @@ static void print_symbol(FILE *out, struct menu *menu) · 165 unmodified lines
25012388 expr_fprint(prop->expr, out);
25022389 fputc('\n', out);
25032390 break;
2391+ case P_IMPLY:
2392+ fputs( " imply ", out);
2393+ expr_fprint(prop->expr, out);
2394+ fputc('\n', out);
2395+ break;
25042396 case P_RANGE:
25052397 fputs( " range ", out);
25062398 expr_fprint(prop->expr, out);
@@ -2577,4 +2469,3 @@ void zconfdump(FILE *out) · 70 unmodified lines
25772469 #include "expr.c"
25782470 #include "symbol.c"
25792471 #include "menu.c"
2580−
scripts/kconfig/zconf.y+14−2
@@ -31,7 +31,7 @@ struct symbol *symbol_hash[SYMBOL_HASHSIZE]; · 30 unmodified lines
3131 static struct menu *current_menu, *current_entry;
3232
3333 %}
34−%expect 30
34+%expect 32
3535
3636 %union
3737 {
@@ -62,6 +62,7 @@ static struct menu *current_menu, *current_entry; · 24 unmodified lines
6262 %token <id>T_TYPE
6363 %token <id>T_DEFAULT
6464 %token <id>T_SELECT
65+%token <id>T_IMPLY
6566 %token <id>T_RANGE
6667 %token <id>T_VISIBLE
6768 %token <id>T_OPTION
@@ -124,7 +125,7 @@ stmt_list: · 56 unmodified lines
124125 ;
125126
126127 option_name:
127− T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
128+ T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_IMPLY | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
128129 ;
129130
130131 common_stmt:
@@ -216,6 +217,12 @@ config_option: T_SELECT T_WORD if_expr T_EOL · 85 unmodified lines
216217 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
217218 };
218219
220+config_option: T_IMPLY T_WORD if_expr T_EOL
221+{
222+ menu_add_symbol(P_IMPLY, sym_lookup($2, 0), $3);
223+ printd(DEBUG_PARSE, "%s:%d:imply\n", zconf_curname(), zconf_lineno());
224+};
225+
219226 config_option: T_RANGE symbol symbol if_expr T_EOL
220227 {
221228 menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4);
@@ -664,6 +671,11 @@ static void print_symbol(FILE *out, struct menu *menu) · 442 unmodified lines
664671 expr_fprint(prop->expr, out);
665672 fputc('\n', out);
666673 break;
674+ case P_IMPLY:
675+ fputs( " imply ", out);
676+ expr_fprint(prop->expr, out);
677+ fputc('\n', out);
678+ break;
667679 case P_RANGE:
668680 fputs( " range ", out);
669681 expr_fprint(prop->expr, out);