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
85 struct property *prop;85 struct property *prop;
86 struct expr_value dir_dep;86 struct expr_value dir_dep;
87 struct expr_value rev_dep;87 struct expr_value rev_dep;
88 struct expr_value implied;
88};89};
89 90
90#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)91#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
136 P_DEFAULT, /* default y */137 P_DEFAULT, /* default y */
137 P_CHOICE, /* choice value */138 P_CHOICE, /* choice value */
138 P_SELECT, /* select BAR */139 P_SELECT, /* select BAR */
140 P_IMPLY, /* imply BAR */
139 P_RANGE, /* range 7..100 (for a symbol) */141 P_RANGE, /* range 7..100 (for a symbol) */
140 P_ENV, /* value from environment variable */142 P_ENV, /* value from environment variable */
141 P_SYMBOL, /* where a symbol is defined */143 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
233{233{
234 struct property *prop;234 struct property *prop;
235 struct symbol *sym2;235 struct symbol *sym2;
236 char *use;
237
236 for (prop = sym->prop; prop; prop = prop->next) {238 for (prop = sym->prop; prop; prop = prop->next) {
237 switch (prop->type) {239 switch (prop->type) {
238 case P_DEFAULT:240 case P_DEFAULT:
@@ -252,18 +254,20 @@ static void sym_check_prop(struct symbol *sym) · 13 unmodified lines
252 }254 }
253 break;255 break;
254 case P_SELECT:256 case P_SELECT:
257 case P_IMPLY:
258 use = prop->type == P_SELECT ? "select" : "imply";
255 sym2 = prop_get_symbol(prop);259 sym2 = prop_get_symbol(prop);
256 if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)260 if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
257 prop_warn(prop,261 prop_warn(prop,
258 "config symbol '%s' uses select, but is "262 "config symbol '%s' uses %s, but is "
259 "not boolean or tristate", sym->name);263 "not boolean or tristate", sym->name, use);
260 else if (sym2->type != S_UNKNOWN &&264 else if (sym2->type != S_UNKNOWN &&
261 sym2->type != S_BOOLEAN &&265 sym2->type != S_BOOLEAN &&
262 sym2->type != S_TRISTATE)266 sym2->type != S_TRISTATE)
263 prop_warn(prop,267 prop_warn(prop,
264 "'%s' has wrong type. 'select' only "268 "'%s' has wrong type. '%s' only "
265 "accept arguments of boolean and "269 "accept arguments of boolean and "
266 "tristate type", sym2->name);270 "tristate type", sym2->name, use);
267 break;271 break;
268 case P_RANGE:272 case P_RANGE:
269 if (sym->type != S_INT && sym->type != S_HEX)273 if (sym->type != S_INT && sym->type != S_HEX)
@@ -333,6 +337,10 @@ void menu_finalize(struct menu *parent) · 63 unmodified lines
333 struct symbol *es = prop_get_symbol(prop);337 struct symbol *es = prop_get_symbol(prop);
334 es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,338 es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
335 expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));339 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)));
336 }344 }
337 }345 }
338 }346 }
@@ -612,13 +620,30 @@ static struct property *get_symbol_prop(struct symbol *sym) · 273 unmodified lines
612 return prop;620 return prop;
613}621}
614 622
623static 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
615/*641/*
616 * head is optional and may be NULL642 * head is optional and may be NULL
617 */643 */
618static void get_symbol_str(struct gstr *r, struct symbol *sym,644static void get_symbol_str(struct gstr *r, struct symbol *sym,
619 struct list_head *head)645 struct list_head *head)
620{646{
621 bool hit;
622 struct property *prop;647 struct property *prop;
623 648
624 if (sym && sym->name) {649 if (sym && sym->name) {
@@ -648,22 +673,20 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym, · 23 unmodified lines
648 }673 }
649 }674 }
650 675
651 hit = false;676 get_symbol_props_str(r, sym, P_SELECT, _(" Selects: "));
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");
662 if (sym->rev_dep.expr) {677 if (sym->rev_dep.expr) {
663 str_append(r, _(" Selected by: "));678 str_append(r, _(" Selected by: "));
664 expr_gstr_print(sym->rev_dep.expr, r);679 expr_gstr_print(sym->rev_dep.expr, r);
665 str_append(r, "\n");680 str_append(r, "\n");
666 }681 }
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
667 str_append(r, "\n\n");690 str_append(r, "\n\n");
668}691}
669 692
scripts/kconfig/symbol.c+23−1
@@ -258,6 +258,15 @@ static void sym_calc_visibility(struct symbol *sym) · 257 unmodified lines
258 sym->rev_dep.tri = tri;258 sym->rev_dep.tri = tri;
259 sym_set_changed(sym);259 sym_set_changed(sym);
260 }260 }
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 }
261}270}
262 271
263/*272/*
@@ -397,6 +406,10 @@ void sym_calc_value(struct symbol *sym) · 133 unmodified lines
397 newval.tri = EXPR_AND(expr_calc_value(prop->expr),406 newval.tri = EXPR_AND(expr_calc_value(prop->expr),
398 prop->visible.tri);407 prop->visible.tri);
399 }408 }
409 if (sym->implied.tri != no) {
410 sym->flags |= SYMBOL_WRITE;
411 newval.tri = EXPR_OR(newval.tri, sym->implied.tri);
412 }
400 }413 }
401 calc_newval:414 calc_newval:
402 if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {415 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
413 }426 }
414 newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);427 newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
415 }428 }
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))
417 newval.tri = yes;431 newval.tri = yes;
418 break;432 break;
419 case S_STRING:433 case S_STRING:
@@ -498,6 +512,8 @@ bool sym_tristate_within_range(struct symbol *sym, tristate val) · 78 unmodified lines
498 return false;512 return false;
499 if (sym->visible <= sym->rev_dep.tri)513 if (sym->visible <= sym->rev_dep.tri)
500 return false;514 return false;
515 if (sym->implied.tri == yes && val == mod)
516 return false;
501 if (sym_is_choice_value(sym) && sym->visible == yes)517 if (sym_is_choice_value(sym) && sym->visible == yes)
502 return val == yes;518 return val == yes;
503 return val >= sym->rev_dep.tri && val <= sym->visible;519 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
750 if (sym->type == S_BOOLEAN && val == mod)766 if (sym->type == S_BOOLEAN && val == mod)
751 val = yes;767 val = yes;
752 768
769 /* adjust the default value if this symbol is implied by another */
770 if (val < sym->implied.tri)
771 val = sym->implied.tri;
772
753 switch (sym->type) {773 switch (sym->type) {
754 case S_BOOLEAN:774 case S_BOOLEAN:
755 case S_TRISTATE:775 case S_TRISTATE:
@@ -1352,6 +1372,8 @@ const char *prop_get_type_name(enum prop_type type) · 596 unmodified lines
1352 return "choice";1372 return "choice";
1353 case P_SELECT:1373 case P_SELECT:
1354 return "select";1374 return "select";
1375 case P_IMPLY:
1376 return "imply";
1355 case P_RANGE:1377 case P_RANGE:
1356 return "range";1378 return "range";
1357 case P_SYMBOL:1379 case P_SYMBOL:
scripts/kconfig/zconf.gperf+1−0
@@ -38,6 +38,7 @@ int, T_TYPE, TF_COMMAND, S_INT · 37 unmodified lines
38hex, T_TYPE, TF_COMMAND, S_HEX38hex, T_TYPE, TF_COMMAND, S_HEX
39string, T_TYPE, TF_COMMAND, S_STRING39string, T_TYPE, TF_COMMAND, S_STRING
40select, T_SELECT, TF_COMMAND40select, T_SELECT, TF_COMMAND
41imply, T_IMPLY, TF_COMMAND
41range, T_RANGE, TF_COMMAND42range, T_RANGE, TF_COMMAND
42visible, T_VISIBLE, TF_COMMAND43visible, T_VISIBLE, TF_COMMAND
43option, T_OPTION, TF_COMMAND44option, 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
55 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,55 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
56 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,56 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
57 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,57 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,
59 0, 0, 0, 5, 0, 0, 73, 73, 5, 0,59 0, 0, 0, 5, 0, 0, 73, 73, 5, 0,
60 10, 5, 45, 73, 20, 20, 0, 15, 15, 73,60 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,
62 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,62 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
63 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,63 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
64 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,64 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
@@ -120,6 +120,7 @@ struct kconf_id_strings_t · 55 unmodified lines
120 char kconf_id_strings_str43[sizeof("hex")];120 char kconf_id_strings_str43[sizeof("hex")];
121 char kconf_id_strings_str46[sizeof("config")];121 char kconf_id_strings_str46[sizeof("config")];
122 char kconf_id_strings_str47[sizeof("boolean")];122 char kconf_id_strings_str47[sizeof("boolean")];
123 char kconf_id_strings_str50[sizeof("imply")];
123 char kconf_id_strings_str51[sizeof("string")];124 char kconf_id_strings_str51[sizeof("string")];
124 char kconf_id_strings_str54[sizeof("help")];125 char kconf_id_strings_str54[sizeof("help")];
125 char kconf_id_strings_str56[sizeof("prompt")];126 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
157 "hex",158 "hex",
158 "config",159 "config",
159 "boolean",160 "boolean",
161 "imply",
160 "string",162 "string",
161 "help",163 "help",
162 "prompt",164 "prompt",
@@ -174,7 +176,7 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 11 unmodified lines
174{176{
175 enum177 enum
176 {178 {
177 TOTAL_KEYWORDS = 34,179 TOTAL_KEYWORDS = 35,
178 MIN_WORD_LENGTH = 2,180 MIN_WORD_LENGTH = 2,
179 MAX_WORD_LENGTH = 14,181 MAX_WORD_LENGTH = 14,
180 MIN_HASH_VALUE = 2,182 MIN_HASH_VALUE = 2,
@@ -205,15 +207,15 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 24 unmodified lines
205 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE},207 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE},
206#line 36 "scripts/kconfig/zconf.gperf"208#line 36 "scripts/kconfig/zconf.gperf"
207 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN},209 {(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"
209 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION},211 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION},
210 {-1}, {-1},212 {-1}, {-1},
211#line 44 "scripts/kconfig/zconf.gperf"213#line 45 "scripts/kconfig/zconf.gperf"
212 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM},214 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM},
213#line 29 "scripts/kconfig/zconf.gperf"215#line 29 "scripts/kconfig/zconf.gperf"
214 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND},216 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND},
215 {-1}, {-1},217 {-1}, {-1},
216#line 43 "scripts/kconfig/zconf.gperf"218#line 44 "scripts/kconfig/zconf.gperf"
217 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND},219 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND},
218#line 17 "scripts/kconfig/zconf.gperf"220#line 17 "scripts/kconfig/zconf.gperf"
219 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ENDMENU, TF_COMMAND},221 {(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
223#line 23 "scripts/kconfig/zconf.gperf"225#line 23 "scripts/kconfig/zconf.gperf"
224 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND},226 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND},
225 {-1},227 {-1},
226#line 45 "scripts/kconfig/zconf.gperf"228#line 46 "scripts/kconfig/zconf.gperf"
227 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},229 {(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"
229 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPT_ALLNOCONFIG_Y,TF_OPTION},231 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPT_ALLNOCONFIG_Y,TF_OPTION},
230#line 16 "scripts/kconfig/zconf.gperf"232#line 16 "scripts/kconfig/zconf.gperf"
231 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND},233 {(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
234 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},236 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
235#line 21 "scripts/kconfig/zconf.gperf"237#line 21 "scripts/kconfig/zconf.gperf"
236 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},238 {(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"
238 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION},240 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION},
239 {-1},241 {-1},
240#line 41 "scripts/kconfig/zconf.gperf"242#line 42 "scripts/kconfig/zconf.gperf"
241 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND},243 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND},
242#line 19 "scripts/kconfig/zconf.gperf"244#line 19 "scripts/kconfig/zconf.gperf"
243 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CHOICE, TF_COMMAND},245 {(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
247 {-1},249 {-1},
248#line 18 "scripts/kconfig/zconf.gperf"250#line 18 "scripts/kconfig/zconf.gperf"
249 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SOURCE, TF_COMMAND},251 {(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"
251 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND},253 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND},
252#line 38 "scripts/kconfig/zconf.gperf"254#line 38 "scripts/kconfig/zconf.gperf"
253 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43, T_TYPE, TF_COMMAND, S_HEX},255 {(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
256 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND},258 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND},
257#line 35 "scripts/kconfig/zconf.gperf"259#line 35 "scripts/kconfig/zconf.gperf"
258 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN},260 {(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},
260#line 39 "scripts/kconfig/zconf.gperf"264#line 39 "scripts/kconfig/zconf.gperf"
261 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING},265 {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING},
262 {-1}, {-1},266 {-1}, {-1},
@@ -289,5 +293,5 @@ kconf_id_lookup (register const char *str, register unsigned int len) · 26 unmodified lines
289 }293 }
290 return 0;294 return 0;
291}295}
292#line 49 "scripts/kconfig/zconf.gperf"296#line 50 "scripts/kconfig/zconf.gperf"
293 297
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. */
2 2
3/* Bison implementation for Yacc-like parsers in C3/* Bison implementation for Yacc-like parsers in C
4 4
5 Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.5 Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
6 6
7 This program is free software: you can redistribute it and/or modify7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.10 (at your option) any later version.
11 11
12 This program is distributed in the hope that it will be useful,12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.15 GNU General Public License for more details.
16 16
17 You should have received a copy of the GNU General Public License17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 19
@@ -26,7 +26,7 @@ · 6 unmodified lines
26 special exception, which will cause the skeleton and the resulting26 special exception, which will cause the skeleton and the resulting
27 Bison output files to be licensed under the GNU General Public27 Bison output files to be licensed under the GNU General Public
28 License without this special exception.28 License without this special exception.
29 29
30 This special exception was added by the Free Software Foundation in30 This special exception was added by the Free Software Foundation in
31 version 2.2 of Bison. */31 version 2.2 of Bison. */
32 32
@@ -44,7 +44,7 @@ · 11 unmodified lines
44#define YYBISON 144#define YYBISON 1
45 45
46/* Bison version. */46/* Bison version. */
47#define YYBISON_VERSION "2.5.1"47#define YYBISON_VERSION "3.0.4"
48 48
49/* Skeleton name. */49/* Skeleton name. */
50#define YYSKELETON_NAME "yacc.c"50#define YYSKELETON_NAME "yacc.c"
@@ -58,18 +58,16 @@ · 7 unmodified lines
58/* Pull parsers. */58/* Pull parsers. */
59#define YYPULL 159#define YYPULL 1
60 60
61/* Using locations. */
62#define YYLSP_NEEDED 0
63 61
64/* Substitute the variable and function names. */62/* Substitute the variable and function names. */
65#define yyparse zconfparse63#define yyparse zconfparse
66#define yylex zconflex64#define yylex zconflex
67#define yyerror zconferror65#define yyerror zconferror
68#define yylval zconflval
69#define yychar zconfchar
70#define yydebug zconfdebug66#define yydebug zconfdebug
71#define yynerrs zconfnerrs67#define yynerrs zconfnerrs
72 68
69#define yylval zconflval
70#define yychar zconfchar
73 71
74/* Copy the first part of user declarations. */72/* Copy the first part of user declarations. */
75 73
@@ -108,19 +106,14 @@ static struct menu *current_menu, *current_entry; · 32 unmodified lines
108 106
109 107
110 108
111# ifndef YY_NULL109# ifndef YY_NULLPTR
112# if defined __cplusplus && 201103L <= __cplusplus110# if defined __cplusplus && 201103L <= __cplusplus
113# define YY_NULL nullptr111# define YY_NULLPTR nullptr
114# else112# else
115# define YY_NULL 0113# define YY_NULLPTR 0
116# endif114# endif
117# endif115# endif
118 116
119/* Enabling traces. */
120#ifndef YYDEBUG
121# define YYDEBUG 1
122#endif
123
124/* Enabling verbose error messages. */117/* Enabling verbose error messages. */
125#ifdef YYERROR_VERBOSE118#ifdef YYERROR_VERBOSE
126# undef YYERROR_VERBOSE119# undef YYERROR_VERBOSE
@@ -129,62 +122,65 @@ static struct menu *current_menu, *current_entry; · 2 unmodified lines
129# define YYERROR_VERBOSE 0122# define YYERROR_VERBOSE 0
130#endif123#endif
131 124
132/* Enabling the token table. */
133#ifndef YYTOKEN_TABLE
134# define YYTOKEN_TABLE 0
135#endif
136 125
126/* Debug traces. */
127#ifndef YYDEBUG
128# define YYDEBUG 1
129#endif
130#if YYDEBUG
131extern int zconfdebug;
132#endif
137 133
138/* Tokens. */134/* Token type. */
139#ifndef YYTOKENTYPE135#ifndef YYTOKENTYPE
140# define YYTOKENTYPE136# define YYTOKENTYPE
141 /* Put the tokens into the symbol table, so that GDB and other debuggers137 enum yytokentype
142 know about them. */138 {
143 enum yytokentype {139 T_MAINMENU = 258,
144 T_MAINMENU = 258,140 T_MENU = 259,
145 T_MENU = 259,141 T_ENDMENU = 260,
146 T_ENDMENU = 260,142 T_SOURCE = 261,
147 T_SOURCE = 261,143 T_CHOICE = 262,
148 T_CHOICE = 262,144 T_ENDCHOICE = 263,
149 T_ENDCHOICE = 263,145 T_COMMENT = 264,
150 T_COMMENT = 264,146 T_CONFIG = 265,
151 T_CONFIG = 265,147 T_MENUCONFIG = 266,
152 T_MENUCONFIG = 266,148 T_HELP = 267,
153 T_HELP = 267,149 T_HELPTEXT = 268,
154 T_HELPTEXT = 268,150 T_IF = 269,
155 T_IF = 269,151 T_ENDIF = 270,
156 T_ENDIF = 270,152 T_DEPENDS = 271,
157 T_DEPENDS = 271,153 T_OPTIONAL = 272,
158 T_OPTIONAL = 272,154 T_PROMPT = 273,
159 T_PROMPT = 273,155 T_TYPE = 274,
160 T_TYPE = 274,156 T_DEFAULT = 275,
161 T_DEFAULT = 275,157 T_SELECT = 276,
162 T_SELECT = 276,158 T_IMPLY = 277,
163 T_RANGE = 277,159 T_RANGE = 278,
164 T_VISIBLE = 278,160 T_VISIBLE = 279,
165 T_OPTION = 279,161 T_OPTION = 280,
166 T_ON = 280,162 T_ON = 281,
167 T_WORD = 281,163 T_WORD = 282,
168 T_WORD_QUOTE = 282,164 T_WORD_QUOTE = 283,
169 T_UNEQUAL = 283,165 T_UNEQUAL = 284,
170 T_LESS = 284,166 T_LESS = 285,
171 T_LESS_EQUAL = 285,167 T_LESS_EQUAL = 286,
172 T_GREATER = 286,168 T_GREATER = 287,
173 T_GREATER_EQUAL = 287,169 T_GREATER_EQUAL = 288,
174 T_CLOSE_PAREN = 288,170 T_CLOSE_PAREN = 289,
175 T_OPEN_PAREN = 289,171 T_OPEN_PAREN = 290,
176 T_EOL = 290,172 T_EOL = 291,
177 T_OR = 291,173 T_OR = 292,
178 T_AND = 292,174 T_AND = 293,
179 T_EQUAL = 293,175 T_EQUAL = 294,
180 T_NOT = 294176 T_NOT = 295
181 };177 };
182#endif178#endif
183 179
184 180/* Value type. */
185
186#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED181#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
187typedef union YYSTYPE182
183union YYSTYPE
188{184{
189 185
190 186
@@ -196,14 +192,20 @@ typedef union YYSTYPE · 5 unmodified lines
196 const struct kconf_id *id;192 const struct kconf_id *id;
197 193
198 194
195};
199 196
200} YYSTYPE;197typedef union YYSTYPE YYSTYPE;
201# define YYSTYPE_IS_TRIVIAL 1198# define YYSTYPE_IS_TRIVIAL 1
202# define yystype YYSTYPE /* obsolescent; will be withdrawn */
203# define YYSTYPE_IS_DECLARED 1199# define YYSTYPE_IS_DECLARED 1
204#endif200#endif
205 201
206 202
203extern YYSTYPE zconflval;
204
205int zconfparse (void);
206
207
208
207/* Copy the second part of user declarations. */209/* Copy the second part of user declarations. */
208 210
209 211
@@ -224,11 +226,8 @@ typedef unsigned char yytype_uint8; · 14 unmodified lines
224 226
225#ifdef YYTYPE_INT8227#ifdef YYTYPE_INT8
226typedef YYTYPE_INT8 yytype_int8;228typedef YYTYPE_INT8 yytype_int8;
227#elif (defined __STDC__ || defined __C99__FUNC__ \
228 || defined __cplusplus || defined _MSC_VER)
229typedef signed char yytype_int8;
230#else229#else
231typedef short int yytype_int8;230typedef signed char yytype_int8;
232#endif231#endif
233 232
234#ifdef YYTYPE_UINT16233#ifdef YYTYPE_UINT16
@@ -248,8 +247,7 @@ typedef short int yytype_int16; · 13 unmodified lines
248# define YYSIZE_T __SIZE_TYPE__247# define YYSIZE_T __SIZE_TYPE__
249# elif defined size_t248# elif defined size_t
250# define YYSIZE_T size_t249# define YYSIZE_T size_t
251# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \250# elif ! defined YYSIZE_T
252 || defined __cplusplus || defined _MSC_VER)
253# include <stddef.h> /* INFRINGES ON USER NAME SPACE */251# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
254# define YYSIZE_T size_t252# define YYSIZE_T size_t
255# else253# else
@@ -263,38 +261,67 @@ typedef short int yytype_int16; · 7 unmodified lines
263# if defined YYENABLE_NLS && YYENABLE_NLS261# if defined YYENABLE_NLS && YYENABLE_NLS
264# if ENABLE_NLS262# if ENABLE_NLS
265# include <libintl.h> /* INFRINGES ON USER NAME SPACE */263# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
266# define YY_(msgid) dgettext ("bison-runtime", msgid)264# define YY_(Msgid) dgettext ("bison-runtime", Msgid)
267# endif265# endif
268# endif266# endif
269# ifndef YY_267# ifndef YY_
270# define YY_(msgid) msgid268# 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__))
271# endif296# endif
272#endif297#endif
273 298
274/* Suppress unused-variable warnings by "using" E. */299/* Suppress unused-variable warnings by "using" E. */
275#if ! defined lint || defined __GNUC__300#if ! defined lint || defined __GNUC__
276# define YYUSE(e) ((void) (e))301# define YYUSE(E) ((void) (E))
277#else302#else
278# define YYUSE(e) /* empty */303# define YYUSE(E) /* empty */
279#endif304#endif
280 305
281/* Identity function, used to suppress warnings about constant conditions. */306#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
282#ifndef lint307/* Suppress an incorrect diagnostic about yylval being uninitialized. */
283# define YYID(n) (n)308# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
284#else309 _Pragma ("GCC diagnostic push") \
285#if (defined __STDC__ || defined __C99__FUNC__ \310 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
286 || defined __cplusplus || defined _MSC_VER)311 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
287static int312# define YY_IGNORE_MAYBE_UNINITIALIZED_END \
288YYID (int yyi)313 _Pragma ("GCC diagnostic pop")
289#else314#else
290static int315# define YY_INITIAL_VALUE(Value) Value
291YYID (yyi)
292 int yyi;
293#endif316#endif
294{317#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
295 return yyi;318# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
296}319# define YY_IGNORE_MAYBE_UNINITIALIZED_END
297#endif320#endif
321#ifndef YY_INITIAL_VALUE
322# define YY_INITIAL_VALUE(Value) /* Nothing. */
323#endif
324
298 325
299#if ! defined yyoverflow || YYERROR_VERBOSE326#if ! defined yyoverflow || YYERROR_VERBOSE
300 327
@@ -313,8 +340,7 @@ YYID (yyi) · 12 unmodified lines
313# define alloca _alloca340# define alloca _alloca
314# else341# else
315# define YYSTACK_ALLOC alloca342# define YYSTACK_ALLOC alloca
316# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \343# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
317 || defined __cplusplus || defined _MSC_VER)
318# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */344# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
319 /* Use EXIT_SUCCESS as a witness for stdlib.h. */345 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
320# ifndef EXIT_SUCCESS346# ifndef EXIT_SUCCESS
@@ -326,8 +352,8 @@ YYID (yyi) · 5 unmodified lines
326# endif352# endif
327 353
328# ifdef YYSTACK_ALLOC354# ifdef YYSTACK_ALLOC
329 /* Pacify GCC's `empty if-body' warning. */355 /* Pacify GCC's 'empty if-body' warning. */
330# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))356# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
331# ifndef YYSTACK_ALLOC_MAXIMUM357# ifndef YYSTACK_ALLOC_MAXIMUM
332 /* The OS might guarantee only one guard page at the bottom of the stack,358 /* The OS might guarantee only one guard page at the bottom of the stack,
333 and a page size can be as small as 4096 bytes. So we cannot safely359 and a page size can be as small as 4096 bytes. So we cannot safely
@@ -343,7 +369,7 @@ YYID (yyi) · 9 unmodified lines
343# endif369# endif
344# if (defined __cplusplus && ! defined EXIT_SUCCESS \370# if (defined __cplusplus && ! defined EXIT_SUCCESS \
345 && ! ((defined YYMALLOC || defined malloc) \371 && ! ((defined YYMALLOC || defined malloc) \
346 && (defined YYFREE || defined free)))372 && (defined YYFREE || defined free)))
347# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */373# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
348# ifndef EXIT_SUCCESS374# ifndef EXIT_SUCCESS
349# define EXIT_SUCCESS 0375# define EXIT_SUCCESS 0
@@ -351,15 +377,13 @@ YYID (yyi) · 1 unmodified line
351# endif377# endif
352# ifndef YYMALLOC378# ifndef YYMALLOC
353# define YYMALLOC malloc379# define YYMALLOC malloc
354# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \380# if ! defined malloc && ! defined EXIT_SUCCESS
355 || defined __cplusplus || defined _MSC_VER)
356void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */381void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
357# endif382# endif
358# endif383# endif
359# ifndef YYFREE384# ifndef YYFREE
360# define YYFREE free385# define YYFREE free
361# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \386# if ! defined free && ! defined EXIT_SUCCESS
362 || defined __cplusplus || defined _MSC_VER)
363void free (void *); /* INFRINGES ON USER NAME SPACE */387void free (void *); /* INFRINGES ON USER NAME SPACE */
364# endif388# endif
365# endif389# endif
@@ -369,7 +393,7 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ · 3 unmodified lines
369 393
370#if (! defined yyoverflow \394#if (! defined yyoverflow \
371 && (! defined __cplusplus \395 && (! defined __cplusplus \
372 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))396 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
373 397
374/* A type that is properly aligned for any stack member. */398/* A type that is properly aligned for any stack member. */
375union yyalloc399union yyalloc
@@ -394,16 +418,16 @@ union yyalloc · 18 unmodified lines
394 elements in the stack, and YYPTR gives the new location of the418 elements in the stack, and YYPTR gives the new location of the
395 stack. Advance YYPTR to a properly aligned location for the next419 stack. Advance YYPTR to a properly aligned location for the next
396 stack. */420 stack. */
397# define YYSTACK_RELOCATE(Stack_alloc, Stack) \421# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
398 do \422 do \
399 { \423 { \
400 YYSIZE_T yynewbytes; \424 YYSIZE_T yynewbytes; \
401 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \425 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
402 Stack = &yyptr->Stack_alloc; \426 Stack = &yyptr->Stack_alloc; \
403 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \427 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
404 yyptr += yynewbytes / sizeof (*yyptr); \428 yyptr += yynewbytes / sizeof (*yyptr); \
405 } \429 } \
406 while (YYID (0))430 while (0)
407 431
408#endif432#endif
409 433
@@ -422,7 +446,7 @@ union yyalloc · 12 unmodified lines
422 for (yyi = 0; yyi < (Count); yyi++) \446 for (yyi = 0; yyi < (Count); yyi++) \
423 (Dst)[yyi] = (Src)[yyi]; \447 (Dst)[yyi] = (Src)[yyi]; \
424 } \448 } \
425 while (YYID (0))449 while (0)
426# endif450# endif
427# endif451# endif
428#endif /* !YYCOPY_NEEDED */452#endif /* !YYCOPY_NEEDED */
@@ -430,25 +454,27 @@ union yyalloc · 1 unmodified line
430/* YYFINAL -- State number of the termination state. */454/* YYFINAL -- State number of the termination state. */
431#define YYFINAL 11455#define YYFINAL 11
432/* YYLAST -- Last index in YYTABLE. */456/* YYLAST -- Last index in YYTABLE. */
433#define YYLAST 298457#define YYLAST 301
434 458
435/* YYNTOKENS -- Number of terminals. */459/* YYNTOKENS -- Number of terminals. */
436#define YYNTOKENS 40460#define YYNTOKENS 41
437/* YYNNTS -- Number of nonterminals. */461/* YYNNTS -- Number of nonterminals. */
438#define YYNNTS 50462#define YYNNTS 50
439/* YYNRULES -- Number of rules. */463/* YYNRULES -- Number of rules. */
440#define YYNRULES 122464#define YYNRULES 124
441/* YYNRULES -- Number of states. */465/* YYNSTATES -- Number of states. */
442#define YYNSTATES 199466#define YYNSTATES 204
443 467
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. */
445#define YYUNDEFTOK 2470#define YYUNDEFTOK 2
446#define YYMAXUTOK 294471#define YYMAXUTOK 295
447 472
448#define YYTRANSLATE(YYX) \473#define YYTRANSLATE(YYX) \
449 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)474 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
450 475
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. */
452static const yytype_uint8 yytranslate[] =478static const yytype_uint8 yytranslate[] =
453{479{
454 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,480 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -480,90 +506,30 @@ static const yytype_uint8 yytranslate[] = · 25 unmodified lines
480 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,506 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
481 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,507 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
482 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,508 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
483 35, 36, 37, 38, 39509 35, 36, 37, 38, 39, 40
484};510};
485 511
486#if YYDEBUG512#if YYDEBUG
487/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in513 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
488 YYRHS. */
489static 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. */
507static 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. */
548static const yytype_uint16 yyrline[] =514static const yytype_uint16 yyrline[] =
549{515{
550 0, 108, 108, 108, 110, 110, 112, 114, 115, 116,516 0, 109, 109, 109, 111, 111, 113, 115, 116, 117,
551 117, 118, 119, 123, 127, 127, 127, 127, 127, 127,517 118, 119, 120, 124, 128, 128, 128, 128, 128, 128,
552 127, 127, 131, 132, 133, 134, 135, 136, 140, 141,518 128, 128, 128, 132, 133, 134, 135, 136, 137, 141,
553 147, 155, 161, 169, 179, 181, 182, 183, 184, 185,519 142, 148, 156, 162, 170, 180, 182, 183, 184, 185,
554 186, 189, 197, 203, 213, 219, 225, 228, 230, 241,520 186, 187, 190, 198, 204, 214, 220, 226, 232, 235,
555 242, 247, 256, 261, 269, 272, 274, 275, 276, 277,521 237, 248, 249, 254, 263, 268, 276, 279, 281, 282,
556 278, 281, 287, 298, 304, 314, 316, 321, 329, 337,522 283, 284, 285, 288, 294, 305, 311, 321, 323, 328,
557 340, 342, 343, 344, 349, 356, 363, 368, 376, 379,523 336, 344, 347, 349, 350, 351, 356, 363, 370, 375,
558 381, 382, 383, 386, 394, 401, 408, 414, 421, 423,524 383, 386, 388, 389, 390, 393, 401, 408, 415, 421,
559 424, 425, 428, 436, 438, 439, 442, 449, 451, 456,525 428, 430, 431, 432, 435, 443, 445, 446, 449, 456,
560 457, 460, 461, 462, 466, 467, 470, 471, 474, 475,526 458, 463, 464, 467, 468, 469, 473, 474, 477, 478,
561 476, 477, 478, 479, 480, 481, 482, 483, 484, 487,527 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
562 488, 491, 492528 491, 494, 495, 498, 499
563};529};
564#endif530#endif
565 531
566#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE532#if YYDEBUG || YYERROR_VERBOSE || 0
567/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.533/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
568 First, the terminals, then, starting at YYNTOKENS, nonterminals. */534 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
569static const char *const yytname[] =535static const char *const yytname[] =
@@ -571,9 +537,9 @@ static const char *const yytname[] = · 1 unmodified line
571 "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",537 "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
572 "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",538 "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
573 "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",539 "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",540 "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_IMPLY",
575 "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",541 "T_RANGE", "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE",
576 "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL",542 "T_UNEQUAL", "T_LESS", "T_LESS_EQUAL", "T_GREATER", "T_GREATER_EQUAL",
577 "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",543 "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
578 "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",544 "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
579 "common_stmt", "option_error", "config_entry_start", "config_stmt",545 "common_stmt", "option_error", "config_entry_start", "config_stmt",
@@ -585,260 +551,254 @@ static const char *const yytname[] = · 5 unmodified lines
585 "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",551 "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
586 "comment", "comment_stmt", "help_start", "help", "depends_list",552 "comment", "comment_stmt", "help_start", "help", "depends_list",
587 "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",553 "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
588 "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULL554 "end", "nl", "if_expr", "expr", "symbol", "word_opt", YY_NULLPTR
589};555};
590#endif556#endif
591 557
592# ifdef YYPRINT558# ifdef YYPRINT
593/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to559/* YYTOKNUM[NUM] -- (External) token number corresponding to the
594 token YYLEX-NUM. */560 (internal) symbol number NUM (which must be that of a token). */
595static const yytype_uint16 yytoknum[] =561static const yytype_uint16 yytoknum[] =
596{562{
597 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,563 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
598 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,564 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
599 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,565 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
600 285, 286, 287, 288, 289, 290, 291, 292, 293, 294566 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
567 295
601};568};
602# endif569# endif
603 570
604/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */571#define YYPACT_NINF -92
605static const yytype_uint8 yyr1[] =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. */
583static const yytype_int16 yypact[] =
606{584{
607 0, 40, 41, 41, 42, 42, 43, 43, 43, 43,585 17, 41, -92, 15, -92, 150, -92, 19, -92, -92,
608 43, 43, 43, 43, 44, 44, 44, 44, 44, 44,586 -13, -92, 28, 41, 38, 41, 50, 47, 41, 79,
609 44, 44, 45, 45, 45, 45, 45, 45, 46, 46,587 82, 44, 76, -92, -92, -92, -92, -92, -92, -92,
610 47, 48, 49, 50, 51, 51, 51, 51, 51, 51,588 -92, -92, 118, -92, 129, -92, -92, -92, -92, -92,
611 51, 52, 52, 52, 52, 52, 53, 54, 54, 55,589 -92, -92, -92, -92, -92, -92, -92, -92, -92, -92,
612 55, 56, 57, 58, 59, 60, 60, 60, 60, 60,590 -92, -92, 184, -92, -92, 107, -92, 111, -92, 113,
613 60, 61, 61, 61, 61, 62, 62, 63, 64, 65,591 -92, 116, -92, 139, 140, 151, -92, -92, 44, 44,
614 66, 66, 66, 66, 67, 68, 69, 70, 71, 72,592 142, 256, -92, 160, 173, 27, 117, 80, 51, 255,
615 72, 72, 72, 73, 74, 75, 76, 77, 78, 78,593 -15, 255, 217, -92, -92, -92, -92, -92, -92, -8,
616 78, 78, 79, 80, 80, 80, 81, 82, 82, 83,594 -92, 44, 44, 107, 87, 87, 87, 87, 87, 87,
617 83, 84, 84, 84, 85, 85, 86, 86, 87, 87,595 -92, -92, 174, 176, 187, 41, 41, 44, 188, 189,
618 87, 87, 87, 87, 87, 87, 87, 87, 87, 88,596 87, -92, 213, -92, -92, -92, -92, 206, -92, -92,
619 88, 89, 89597 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
620};606};
621 607
622/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */608 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
623static const yytype_uint8 yyr2[] =609 Performed when YYTABLE does not specify something else to do. Zero
610 means the default is an error. */
611static const yytype_uint8 yydefact[] =
624{612{
625 0, 2, 2, 1, 2, 1, 0, 2, 2, 2,613 6, 0, 106, 0, 3, 0, 6, 6, 101, 102,
626 2, 4, 4, 3, 1, 1, 1, 1, 1, 1,614 0, 1, 0, 0, 0, 0, 123, 0, 0, 0,
627 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,615 0, 0, 0, 14, 19, 15, 16, 21, 17, 18,
628 3, 2, 3, 2, 0, 2, 2, 2, 2, 2,616 20, 22, 0, 23, 0, 7, 35, 26, 35, 27,
629 2, 3, 4, 4, 4, 5, 3, 0, 3, 0,617 57, 67, 8, 72, 24, 95, 81, 9, 28, 90,
630 2, 3, 2, 1, 3, 0, 2, 2, 2, 2,618 25, 10, 0, 107, 2, 76, 13, 0, 103, 0,
631 2, 4, 3, 2, 4, 0, 2, 3, 1, 3,619 124, 0, 104, 0, 0, 0, 121, 122, 0, 0,
632 0, 2, 2, 2, 3, 3, 3, 1, 3, 0,620 0, 110, 105, 0, 0, 0, 0, 0, 0, 0,
633 2, 2, 2, 3, 3, 2, 2, 2, 0, 2,621 90, 0, 0, 77, 85, 53, 86, 31, 33, 0,
634 2, 2, 4, 0, 2, 2, 2, 0, 2, 1,622 118, 0, 0, 69, 0, 0, 0, 0, 0, 0,
635 1, 2, 2, 2, 1, 2, 0, 2, 1, 3,623 11, 12, 0, 0, 0, 0, 99, 0, 0, 0,
636 3, 3, 3, 3, 3, 3, 2, 3, 3, 1,624 0, 49, 0, 41, 40, 36, 37, 0, 39, 38,
637 1, 0, 1625 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
638};634};
639 635
640/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.636 /* YYPGOTO[NTERM-NUM]. */
641 Performed when YYTABLE doesn't specify something else to do. Zero637static const yytype_int16 yypgoto[] =
642 means the default is an error. */
643static const yytype_uint8 yydefact[] =
644{638{
645 6, 0, 104, 0, 3, 0, 6, 6, 99, 100,639 -92, -92, 285, 291, -92, 32, -66, -92, -92, -92,
646 0, 1, 0, 0, 0, 0, 121, 0, 0, 0,640 -92, 261, -92, -92, -92, -92, -92, -92, -92, 1,
647 0, 0, 0, 14, 18, 15, 16, 20, 17, 19,641 -92, -92, -92, -92, -92, -92, -92, -92, -92, -92,
648 21, 0, 22, 0, 7, 34, 25, 34, 26, 55,642 -92, 24, -92, -92, -92, -92, -92, 221, 220, -64,
649 65, 8, 70, 23, 93, 79, 9, 27, 88, 24,643 -92, -92, 179, -1, 67, 0, 110, -67, -91, -92
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
665};644};
666 645
667/* YYDEFGOTO[NTERM-NUM]. */646 /* YYDEFGOTO[NTERM-NUM]. */
668static const yytype_int16 yydefgoto[] =647static const yytype_int16 yydefgoto[] =
669{648{
670 -1, 3, 4, 5, 33, 34, 112, 35, 36, 37,649 -1, 3, 4, 5, 34, 35, 114, 36, 37, 38,
671 38, 74, 113, 114, 165, 194, 39, 40, 128, 41,650 39, 75, 115, 116, 168, 199, 40, 41, 130, 42,
672 76, 124, 77, 42, 132, 43, 78, 6, 44, 45,651 77, 126, 78, 43, 134, 44, 79, 6, 45, 46,
673 141, 46, 80, 47, 48, 49, 115, 116, 81, 117,652 143, 47, 81, 48, 49, 50, 117, 118, 82, 119,
674 79, 138, 160, 161, 50, 7, 173, 69, 70, 60653 80, 140, 162, 163, 51, 7, 176, 70, 71, 61
675};654};
676 655
677/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing656 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
678 STATE-NUM. */657 positive, shift that token. If negative, reduce the rule whose
679#define YYPACT_NINF -91658 number is the opposite. If YYTABLE_NINF, syntax error. */
680static const yytype_int16 yypact[] =659static const yytype_int16 yytable[] =
681{660{
682 19, 37, -91, 13, -91, 79, -91, 20, -91, -91,661 10, 89, 90, 152, 153, 154, 155, 156, 157, 137,
683 -16, -91, 21, 37, 25, 37, 41, 36, 37, 78,662 55, 125, 57, 128, 59, 11, 147, 63, 148, 167,
684 83, 31, 56, -91, -91, -91, -91, -91, -91, -91,663 1, 138, 1, 2, 150, 151, 149, -32, 102, 91,
685 -91, 116, -91, 127, -91, -91, -91, -91, -91, -91,664 92, -32, -32, -32, -32, -32, -32, -32, -32, 103,
686 -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,665 164, -32, -32, 104, -32, 105, 106, 107, 108, 109,
687 -91, 147, -91, -91, 105, -91, 109, -91, 111, -91,666 110, -32, 111, 2, 112, 53, 14, 15, 185, 17,
688 114, -91, 136, 137, 142, -91, -91, 31, 31, 76,667 18, 19, 20, 113, 56, 21, 22, 186, 8, 9,
689 254, -91, 143, 146, 27, 115, 207, 258, 243, -14,668 93, 66, 67, 147, 58, 148, 184, 60, 175, 68,
690 243, 179, -91, -91, -91, -91, -91, -91, -7, -91,669 133, 102, 142, 62, 69, -54, -54, 33, -54, -54,
691 31, 31, 105, 51, 51, 51, 51, 51, 51, -91,670 -54, -54, 103, 177, -54, -54, 104, 120, 121, 122,
692 -91, 156, 168, 181, 37, 37, 31, 178, 51, -91,671 123, 91, 92, 135, 161, 144, 64, 112, 191, 65,
693 206, -91, -91, -91, -91, 196, -91, -91, 175, 37,672 129, 132, 72, 141, 66, 67, 124, -34, 102, 73,
694 37, 185, -91, -91, -91, -91, -91, -91, -91, -91,673 172, -34, -34, -34, -34, -34, -34, -34, -34, 103,
695 -91, -91, -91, -91, -91, 214, -91, 230, -91, -91,674 74, -34, -34, 104, -34, 105, 106, 107, 108, 109,
696 -91, -91, -91, -91, -91, -91, -91, -91, 183, -91,675 110, -34, 111, 53, 112, 131, 136, 83, 145, 84,
697 -91, -91, -91, -91, -91, -91, -91, -91, 31, 214,676 -5, 12, 85, 113, 13, 14, 15, 16, 17, 18,
698 194, 214, 45, 214, 51, 26, 195, -91, -91, 214,677 19, 20, 91, 92, 21, 22, 23, 24, 25, 26,
699 197, 214, 31, -91, 139, 208, -91, -91, 220, 224,678 27, 28, 29, 30, 31, 86, 87, 32, 2, 91,
700 214, 222, -91, -91, 226, -91, 227, 123, -91, -91,679 92, 192, 91, 92, -4, 12, 33, 88, 13, 14,
701 -91, -91, 235, 37, -91, -91, -91, -91, -91680 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
702};692};
703 693
704/* YYPGOTO[NTERM-NUM]. */694static const yytype_uint8 yycheck[] =
705static const yytype_int16 yypgoto[] =
706{695{
707 -91, -91, 264, 268, -91, 30, -65, -91, -91, -91,696 1, 68, 69, 94, 95, 96, 97, 98, 99, 24,
708 -91, 238, -91, -91, -91, -91, -91, -91, -91, -12,697 10, 77, 13, 77, 15, 0, 82, 18, 82, 110,
709 -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,698 3, 36, 3, 36, 91, 92, 34, 0, 1, 37,
710 -91, -5, -91, -91, -91, -91, -91, 200, 209, -61,699 38, 4, 5, 6, 7, 8, 9, 10, 11, 12,
711 -91, -91, 170, -1, 65, 0, 118, -66, -90, -91700 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
712};727};
713 728
714/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If729 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
715 positive, shift that token. If negative, reduce the rule which730 symbol of state STATE-NUM. */
716 number is the opposite. If YYTABLE_NINF, syntax error. */731static const yytype_uint8 yystos[] =
717#define YYTABLE_NINF -86
718static const yytype_int16 yytable[] =
719{732{
720 10, 88, 89, 150, 151, 152, 153, 154, 155, 135,733 0, 3, 36, 42, 43, 44, 68, 86, 27, 28,
721 54, 123, 56, 11, 58, 126, 145, 62, 164, 2,734 84, 0, 1, 4, 5, 6, 7, 8, 9, 10,
722 146, 136, 1, 1, 148, 149, 147, -31, 101, 90,735 11, 14, 15, 16, 17, 18, 19, 20, 21, 22,
723 91, -31, -31, -31, -31, -31, -31, -31, -31, 102,736 23, 24, 27, 36, 45, 46, 48, 49, 50, 51,
724 162, -31, -31, 103, -31, 104, 105, 106, 107, 108,737 57, 58, 60, 64, 66, 69, 70, 72, 74, 75,
725 -31, 109, 181, 110, 2, 52, 55, 65, 66, 172,738 76, 85, 44, 36, 43, 86, 36, 84, 36, 84,
726 57, 182, 111, 8, 9, 67, 131, 59, 140, 92,739 27, 90, 36, 84, 27, 27, 27, 28, 35, 40,
727 68, 61, 145, 133, 180, 142, 146, 65, 66, -5,740 88, 89, 36, 1, 1, 52, 52, 61, 63, 67,
728 12, 90, 91, 13, 14, 15, 16, 17, 18, 19,741 81, 73, 79, 36, 36, 36, 36, 36, 36, 88,
729 20, 71, 174, 21, 22, 23, 24, 25, 26, 27,742 88, 37, 38, 86, 29, 30, 31, 32, 33, 39,
730 28, 29, 30, 159, 63, 31, 187, 127, 130, 64,743 36, 36, 1, 12, 16, 18, 19, 20, 21, 22,
731 139, 2, 90, 91, 32, -33, 101, 72, 169, -33,744 23, 25, 27, 36, 47, 53, 54, 77, 78, 80,
732 -33, -33, -33, -33, -33, -33, -33, 102, 73, -33,745 17, 18, 19, 20, 36, 47, 62, 78, 80, 46,
733 -33, 103, -33, 104, 105, 106, 107, 108, -33, 109,746 59, 85, 46, 60, 65, 72, 85, 24, 36, 79,
734 52, 110, 129, 134, 82, 143, 83, -4, 12, 84,747 82, 46, 60, 71, 72, 85, 36, 47, 80, 34,
735 111, 13, 14, 15, 16, 17, 18, 19, 20, 90,748 88, 88, 89, 89, 89, 89, 89, 89, 36, 36,
736 91, 21, 22, 23, 24, 25, 26, 27, 28, 29,749 26, 84, 83, 84, 88, 27, 27, 89, 55, 1,
737 30, 85, 86, 31, 188, 90, 91, 87, 99, -85,750 13, 36, 84, 83, 27, 14, 87, 88, 87, 36,
738 101, 100, 32, -85, -85, -85, -85, -85, -85, -85,751 87, 87, 87, 87, 89, 27, 36, 36, 87, 36,
739 -85, 156, 198, -85, -85, 103, -85, -85, -85, -85,752 87, 88, 36, 36, 36, 36, 36, 87, 39, 56,
740 -85, -85, -85, 157, 163, 110, 158, 166, 101, 167,753 36, 36, 36, 84
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
750};754};
751 755
752#define yypact_value_is_default(yystate) \756 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
753 ((yystate) == (-91))757static const yytype_uint8 yyr1[] =
754
755#define yytable_value_is_error(yytable_value) \
756 YYID (0)
757
758static const yytype_int16 yycheck[] =
759{758{
760 1, 67, 68, 93, 94, 95, 96, 97, 98, 23,759 0, 41, 42, 42, 43, 43, 44, 44, 44, 44,
761 10, 76, 13, 0, 15, 76, 81, 18, 108, 35,760 44, 44, 44, 44, 45, 45, 45, 45, 45, 45,
762 81, 35, 3, 3, 90, 91, 33, 0, 1, 36,761 45, 45, 45, 46, 46, 46, 46, 46, 46, 47,
763 37, 4, 5, 6, 7, 8, 9, 10, 11, 12,762 47, 48, 49, 50, 51, 52, 52, 52, 52, 52,
764 106, 14, 15, 16, 17, 18, 19, 20, 21, 22,763 52, 52, 53, 53, 53, 53, 53, 53, 54, 55,
765 23, 24, 26, 26, 35, 35, 35, 26, 27, 14,764 55, 56, 56, 57, 58, 59, 60, 61, 61, 61,
766 35, 35, 35, 26, 27, 34, 78, 26, 80, 69,765 61, 61, 61, 62, 62, 62, 62, 63, 63, 64,
767 39, 35, 137, 78, 164, 80, 137, 26, 27, 0,766 65, 66, 67, 67, 67, 67, 68, 69, 70, 71,
768 1, 36, 37, 4, 5, 6, 7, 8, 9, 10,767 72, 73, 73, 73, 73, 74, 75, 76, 77, 78,
769 11, 35, 158, 14, 15, 16, 17, 18, 19, 20,768 79, 79, 79, 79, 80, 81, 81, 81, 82, 83,
770 21, 22, 23, 104, 26, 26, 172, 77, 78, 26,769 83, 84, 84, 85, 85, 85, 86, 86, 87, 87,
771 80, 35, 36, 37, 35, 0, 1, 1, 119, 4,770 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
772 5, 6, 7, 8, 9, 10, 11, 12, 1, 14,771 88, 89, 89, 90, 90
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
790};772};
791 773
792/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing774 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
793 symbol of state STATE-NUM. */775static const yytype_uint8 yyr2[] =
794static const yytype_uint8 yystos[] =
795{776{
796 0, 3, 35, 41, 42, 43, 67, 85, 26, 27,777 0, 2, 2, 1, 2, 1, 0, 2, 2, 2,
797 83, 0, 1, 4, 5, 6, 7, 8, 9, 10,778 2, 4, 4, 3, 1, 1, 1, 1, 1, 1,
798 11, 14, 15, 16, 17, 18, 19, 20, 21, 22,779 1, 1, 1, 1, 1, 1, 1, 1, 1, 3,
799 23, 26, 35, 44, 45, 47, 48, 49, 50, 56,780 2, 3, 2, 3, 2, 0, 2, 2, 2, 2,
800 57, 59, 63, 65, 68, 69, 71, 73, 74, 75,781 2, 2, 3, 4, 4, 4, 4, 5, 3, 0,
801 84, 43, 35, 42, 85, 35, 83, 35, 83, 26,782 3, 0, 2, 3, 2, 1, 3, 0, 2, 2,
802 89, 35, 83, 26, 26, 26, 27, 34, 39, 87,783 2, 2, 2, 4, 3, 2, 4, 0, 2, 3,
803 88, 35, 1, 1, 51, 51, 60, 62, 66, 80,784 1, 3, 0, 2, 2, 2, 3, 3, 3, 1,
804 72, 78, 35, 35, 35, 35, 35, 35, 87, 87,785 3, 0, 2, 2, 2, 3, 3, 2, 2, 2,
805 36, 37, 85, 28, 29, 30, 31, 32, 38, 35,786 0, 2, 2, 2, 4, 0, 2, 2, 2, 0,
806 35, 1, 12, 16, 18, 19, 20, 21, 22, 24,787 2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
807 26, 35, 46, 52, 53, 76, 77, 79, 17, 18,788 1, 3, 3, 3, 3, 3, 3, 3, 2, 3,
808 19, 20, 35, 46, 61, 77, 79, 45, 58, 84,789 3, 1, 1, 0, 1
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
816};790};
817 791
818#define yyerrok (yyerrstatus = 0)792
819#define yyclearin (yychar = YYEMPTY)793#define yyerrok (yyerrstatus = 0)
820#define YYEMPTY (-2)794#define yyclearin (yychar = YYEMPTY)
821#define YYEOF 0795#define YYEMPTY (-2)
822 796#define YYEOF 0
823#define YYACCEPT goto yyacceptlab797
824#define YYABORT goto yyabortlab798#define YYACCEPT goto yyacceptlab
825#define YYERROR goto yyerrorlab799#define YYABORT goto yyabortlab
826 800#define YYERROR goto yyerrorlab
827 801
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
842 802
843#define YYRECOVERING() (!!yyerrstatus)803#define YYRECOVERING() (!!yyerrstatus)
844 804
@@ -855,55 +815,15 @@ do \ · 10 unmodified lines
855 else \815 else \
856 { \816 { \
857 yyerror (YY_("syntax error: cannot back up")); \817 yyerror (YY_("syntax error: cannot back up")); \
858 YYERROR; \818 YYERROR; \
859 } \819 } \
860while (YYID (0))820while (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
898 821
822/* Error token number */
823#define YYTERROR 1
824#define YYERRCODE 256
899 825
900/* YYLEX -- calling `yylex' with the right arguments. */
901 826
902#ifdef YYLEX_PARAM
903# define YYLEX yylex (YYLEX_PARAM)
904#else
905# define YYLEX yylex ()
906#endif
907 827
908/* Enable debugging if requested. */828/* Enable debugging if requested. */
909#if YYDEBUG829#if YYDEBUG
@@ -913,40 +833,36 @@ while (YYID (0)) · 3 unmodified lines
913# define YYFPRINTF fprintf833# define YYFPRINTF fprintf
914# endif834# endif
915 835
916# define YYDPRINTF(Args) \836# define YYDPRINTF(Args) \
917do { \837do { \
918 if (yydebug) \838 if (yydebug) \
919 YYFPRINTF Args; \839 YYFPRINTF Args; \
920} while (YYID (0))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
921 847
922# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \848# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
923do { \849do { \
924 if (yydebug) \850 if (yydebug) \
925 { \851 { \
926 YYFPRINTF (stderr, "%s ", Title); \852 YYFPRINTF (stderr, "%s ", Title); \
927 yy_symbol_print (stderr, \853 yy_symbol_print (stderr, \
928 Type, Value); \854 Type, Value); \
929 YYFPRINTF (stderr, "\n"); \855 YYFPRINTF (stderr, "\n"); \
930 } \856 } \
931} while (YYID (0))857} while (0)
932 858
933 859
934/*--------------------------------.860/*----------------------------------------.
935| Print this symbol on YYOUTPUT. |861| Print this symbol's value on YYOUTPUT. |
936`--------------------------------*/862`----------------------------------------*/
937 863
938/*ARGSUSED*/
939#if (defined __STDC__ || defined __C99__FUNC__ \
940 || defined __cplusplus || defined _MSC_VER)
941static void864static void
942yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)865yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
943#else
944static void
945yy_symbol_value_print (yyoutput, yytype, yyvaluep)
946 FILE *yyoutput;
947 int yytype;
948 YYSTYPE const * const yyvaluep;
949#endif
950{866{
951 FILE *yyo = yyoutput;867 FILE *yyo = yyoutput;
952 YYUSE (yyo);868 YYUSE (yyo);
@@ -955,14 +871,8 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) · 2 unmodified lines
955# ifdef YYPRINT871# ifdef YYPRINT
956 if (yytype < YYNTOKENS)872 if (yytype < YYNTOKENS)
957 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);873 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
958# else
959 YYUSE (yyoutput);
960# endif874# endif
961 switch (yytype)875 YYUSE (yytype);
962 {
963 default:
964 break;
965 }
966}876}
967 877
968 878
@@ -970,22 +880,11 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep) · 1 unmodified line
970| Print this symbol on YYOUTPUT. |880| Print this symbol on YYOUTPUT. |
971`--------------------------------*/881`--------------------------------*/
972 882
973#if (defined __STDC__ || defined __C99__FUNC__ \
974 || defined __cplusplus || defined _MSC_VER)
975static void883static void
976yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)884yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
977#else
978static void
979yy_symbol_print (yyoutput, yytype, yyvaluep)
980 FILE *yyoutput;
981 int yytype;
982 YYSTYPE const * const yyvaluep;
983#endif
984{885{
985 if (yytype < YYNTOKENS)886 YYFPRINTF (yyoutput, "%s %s (",
986 YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);887 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
987 else
988 YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
989 888
990 yy_symbol_value_print (yyoutput, yytype, yyvaluep);889 yy_symbol_value_print (yyoutput, yytype, yyvaluep);
991 YYFPRINTF (yyoutput, ")");890 YYFPRINTF (yyoutput, ")");
@@ -996,16 +895,8 @@ yy_symbol_print (yyoutput, yytype, yyvaluep) · 4 unmodified lines
996| TOP (included). |895| TOP (included). |
997`------------------------------------------------------------------*/896`------------------------------------------------------------------*/
998 897
999#if (defined __STDC__ || defined __C99__FUNC__ \
1000 || defined __cplusplus || defined _MSC_VER)
1001static void898static void
1002yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)899yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
1003#else
1004static void
1005yy_stack_print (yybottom, yytop)
1006 yytype_int16 *yybottom;
1007 yytype_int16 *yytop;
1008#endif
1009{900{
1010 YYFPRINTF (stderr, "Stack now");901 YYFPRINTF (stderr, "Stack now");
1011 for (; yybottom <= yytop; yybottom++)902 for (; yybottom <= yytop; yybottom++)
@@ -1016,49 +907,42 @@ yy_stack_print (yybottom, yytop) · 4 unmodified lines
1016 YYFPRINTF (stderr, "\n");907 YYFPRINTF (stderr, "\n");
1017}908}
1018 909
1019# define YY_STACK_PRINT(Bottom, Top) \910# define YY_STACK_PRINT(Bottom, Top) \
1020do { \911do { \
1021 if (yydebug) \912 if (yydebug) \
1022 yy_stack_print ((Bottom), (Top)); \913 yy_stack_print ((Bottom), (Top)); \
1023} while (YYID (0))914} while (0)
1024 915
1025 916
1026/*------------------------------------------------.917/*------------------------------------------------.
1027| Report that the YYRULE is going to be reduced. |918| Report that the YYRULE is going to be reduced. |
1028`------------------------------------------------*/919`------------------------------------------------*/
1029 920
1030#if (defined __STDC__ || defined __C99__FUNC__ \
1031 || defined __cplusplus || defined _MSC_VER)
1032static void921static void
1033yy_reduce_print (YYSTYPE *yyvsp, int yyrule)922yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule)
1034#else
1035static void
1036yy_reduce_print (yyvsp, yyrule)
1037 YYSTYPE *yyvsp;
1038 int yyrule;
1039#endif
1040{923{
924 unsigned long int yylno = yyrline[yyrule];
1041 int yynrhs = yyr2[yyrule];925 int yynrhs = yyr2[yyrule];
1042 int yyi;926 int yyi;
1043 unsigned long int yylno = yyrline[yyrule];
1044 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",927 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
1045 yyrule - 1, yylno);928 yyrule - 1, yylno);
1046 /* The symbols being reduced. */929 /* The symbols being reduced. */
1047 for (yyi = 0; yyi < yynrhs; yyi++)930 for (yyi = 0; yyi < yynrhs; yyi++)
1048 {931 {
1049 YYFPRINTF (stderr, " $%d = ", yyi + 1);932 YYFPRINTF (stderr, " $%d = ", yyi + 1);
1050 yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],933 yy_symbol_print (stderr,
1051 &(yyvsp[(yyi + 1) - (yynrhs)])934 yystos[yyssp[yyi + 1 - yynrhs]],
1052 );935 &(yyvsp[(yyi + 1) - (yynrhs)])
936 );
1053 YYFPRINTF (stderr, "\n");937 YYFPRINTF (stderr, "\n");
1054 }938 }
1055}939}
1056 940
1057# define YY_REDUCE_PRINT(Rule) \941# define YY_REDUCE_PRINT(Rule) \
1058do { \942do { \
1059 if (yydebug) \943 if (yydebug) \
1060 yy_reduce_print (yyvsp, Rule); \944 yy_reduce_print (yyssp, yyvsp, Rule); \
1061} while (YYID (0))945} while (0)
1062 946
1063/* Nonzero means print parse trace. It is left uninitialized so that947/* Nonzero means print parse trace. It is left uninitialized so that
1064 multiple parsers can coexist. */948 multiple parsers can coexist. */
@@ -1072,7 +956,7 @@ int yydebug; · 7 unmodified lines
1072 956
1073 957
1074/* YYINITDEPTH -- initial size of the parser's stacks. */958/* YYINITDEPTH -- initial size of the parser's stacks. */
1075#ifndef YYINITDEPTH959#ifndef YYINITDEPTH
1076# define YYINITDEPTH 200960# define YYINITDEPTH 200
1077#endif961#endif
1078 962
@@ -1095,15 +979,8 @@ int yydebug; · 16 unmodified lines
1095# define yystrlen strlen979# define yystrlen strlen
1096# else980# else
1097/* Return the length of YYSTR. */981/* Return the length of YYSTR. */
1098#if (defined __STDC__ || defined __C99__FUNC__ \
1099 || defined __cplusplus || defined _MSC_VER)
1100static YYSIZE_T982static YYSIZE_T
1101yystrlen (const char *yystr)983yystrlen (const char *yystr)
1102#else
1103static YYSIZE_T
1104yystrlen (yystr)
1105 const char *yystr;
1106#endif
1107{984{
1108 YYSIZE_T yylen;985 YYSIZE_T yylen;
1109 for (yylen = 0; yystr[yylen]; yylen++)986 for (yylen = 0; yystr[yylen]; yylen++)
@@ -1119,16 +996,8 @@ yystrlen (yystr) · 9 unmodified lines
1119# else996# else
1120/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in997/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1121 YYDEST. */998 YYDEST. */
1122#if (defined __STDC__ || defined __C99__FUNC__ \
1123 || defined __cplusplus || defined _MSC_VER)
1124static char *999static char *
1125yystpcpy (char *yydest, const char *yysrc)1000yystpcpy (char *yydest, const char *yysrc)
1126#else
1127static char *
1128yystpcpy (yydest, yysrc)
1129 char *yydest;
1130 const char *yysrc;
1131#endif
1132{1001{
1133 char *yyd = yydest;1002 char *yyd = yydest;
1134 const char *yys = yysrc;1003 const char *yys = yysrc;
@@ -1158,27 +1027,27 @@ yytnamerr (char *yyres, const char *yystr) · 23 unmodified lines
1158 char const *yyp = yystr;1027 char const *yyp = yystr;
1159 1028
1160 for (;;)1029 for (;;)
1161 switch (*++yyp)1030 switch (*++yyp)
1162 {1031 {
1163 case '\'':1032 case '\'':
1164 case ',':1033 case ',':
1165 goto do_not_strip_quotes;1034 goto do_not_strip_quotes;
1166 1035
1167 case '\\':1036 case '\\':
1168 if (*++yyp != '\\')1037 if (*++yyp != '\\')
1169 goto do_not_strip_quotes;1038 goto do_not_strip_quotes;
1170 /* Fall through. */1039 /* Fall through. */
1171 default:1040 default:
1172 if (yyres)1041 if (yyres)
1173 yyres[yyn] = *yyp;1042 yyres[yyn] = *yyp;
1174 yyn++;1043 yyn++;
1175 break;1044 break;
1176 1045
1177 case '"':1046 case '"':
1178 if (yyres)1047 if (yyres)
1179 yyres[yyn] = '\0';1048 yyres[yyn] = '\0';
1180 return yyn;1049 return yyn;
1181 }1050 }
1182 do_not_strip_quotes: ;1051 do_not_strip_quotes: ;
1183 }1052 }
1184 1053
@@ -1201,12 +1070,11 @@ static int · 16 unmodified lines
1201yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,1070yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
1202 yytype_int16 *yyssp, int yytoken)1071 yytype_int16 *yyssp, int yytoken)
1203{1072{
1204 YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);1073 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
1205 YYSIZE_T yysize = yysize0;1074 YYSIZE_T yysize = yysize0;
1206 YYSIZE_T yysize1;
1207 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };1075 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
1208 /* Internationalized format string. */1076 /* Internationalized format string. */
1209 const char *yyformat = YY_NULL;1077 const char *yyformat = YY_NULLPTR;
1210 /* Arguments of yyformat. */1078 /* Arguments of yyformat. */
1211 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];1079 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
1212 /* Number of reported tokens (one for the "unexpected", one per1080 /* 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
1214 int yycount = 0;1082 int yycount = 0;
1215 1083
1216 /* There are many possibilities here to consider:1084 /* 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.
1221 - If this state is a consistent state with a default action, then1085 - If this state is a consistent state with a default action, then
1222 the only way this function was invoked is if the default action1086 the only way this function was invoked is if the default action
1223 is an error action. In that case, don't check for expected1087 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
1266 break;1130 break;
1267 }1131 }
1268 yyarg[yycount++] = yytname[yyx];1132 yyarg[yycount++] = yytname[yyx];
1269 yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);1133 {
1270 if (! (yysize <= yysize11134 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
1271 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))1135 if (! (yysize <= yysize1
1272 return 2;1136 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1273 yysize = yysize1;1137 return 2;
1138 yysize = yysize1;
1139 }
1274 }1140 }
1275 }1141 }
1276 }1142 }
@@ -1290,10 +1156,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, · 13 unmodified lines
1290# undef YYCASE_1156# undef YYCASE_
1291 }1157 }
1292 1158
1293 yysize1 = yysize + yystrlen (yyformat);1159 {
1294 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))1160 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
1295 return 2;1161 if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
1296 yysize = yysize1;1162 return 2;
1163 yysize = yysize1;
1164 }
1297 1165
1298 if (*yymsg_alloc < yysize)1166 if (*yymsg_alloc < yysize)
1299 {1167 {
@@ -1330,78 +1198,58 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, · 30 unmodified lines
1330| Release the memory associated to this symbol. |1198| Release the memory associated to this symbol. |
1331`-----------------------------------------------*/1199`-----------------------------------------------*/
1332 1200
1333/*ARGSUSED*/
1334#if (defined __STDC__ || defined __C99__FUNC__ \
1335 || defined __cplusplus || defined _MSC_VER)
1336static void1201static void
1337yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)1202yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
1338#else
1339static void
1340yydestruct (yymsg, yytype, yyvaluep)
1341 const char *yymsg;
1342 int yytype;
1343 YYSTYPE *yyvaluep;
1344#endif
1345{1203{
1346 YYUSE (yyvaluep);1204 YYUSE (yyvaluep);
1347
1348 if (!yymsg)1205 if (!yymsg)
1349 yymsg = "Deleting";1206 yymsg = "Deleting";
1350 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);1207 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1351 1208
1209 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1352 switch (yytype)1210 switch (yytype)
1353 {1211 {
1354 case 57: /* "choice_entry" */1212 case 58: /* choice_entry */
1355 1213
1356 {1214 {
1357 fprintf(stderr, "%s:%d: missing end statement for this entry\n",1215 fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1358 (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);1216 ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno);
1359 if (current_menu == (yyvaluep->menu))1217 if (current_menu == ((*yyvaluep).menu))
1360 menu_end_menu();1218 menu_end_menu();
1361};1219}
1220
1221 break;
1362 1222
1363 break;1223 case 64: /* if_entry */
1364 case 63: /* "if_entry" */
1365 1224
1366 {1225 {
1367 fprintf(stderr, "%s:%d: missing end statement for this entry\n",1226 fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1368 (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);1227 ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno);
1369 if (current_menu == (yyvaluep->menu))1228 if (current_menu == ((*yyvaluep).menu))
1370 menu_end_menu();1229 menu_end_menu();
1371};1230}
1372 1231
1373 break;1232 break;
1374 case 69: /* "menu_entry" */
1375 1233
1376 {1234 case 70: /* menu_entry */
1235
1236 {
1377 fprintf(stderr, "%s:%d: missing end statement for this entry\n",1237 fprintf(stderr, "%s:%d: missing end statement for this entry\n",
1378 (yyvaluep->menu)->file->name, (yyvaluep->menu)->lineno);1238 ((*yyvaluep).menu)->file->name, ((*yyvaluep).menu)->lineno);
1379 if (current_menu == (yyvaluep->menu))1239 if (current_menu == ((*yyvaluep).menu))
1380 menu_end_menu();1240 menu_end_menu();
1381};1241}
1242
1243 break;
1382 1244
1383 break;
1384 1245
1385 default:1246 default:
1386 break;1247 break;
1387 }1248 }
1249 YY_IGNORE_MAYBE_UNINITIALIZED_END
1388}1250}
1389 1251
1390 1252
1391/* Prevent warnings from -Wmissing-prototypes. */
1392#ifdef YYPARSE_PARAM
1393#if defined __STDC__ || defined __cplusplus
1394int yyparse (void *YYPARSE_PARAM);
1395#else
1396int yyparse ();
1397#endif
1398#else /* ! YYPARSE_PARAM */
1399#if defined __STDC__ || defined __cplusplus
1400int yyparse (void);
1401#else
1402int yyparse ();
1403#endif
1404#endif /* ! YYPARSE_PARAM */
1405 1253
1406 1254
1407/* The lookahead symbol. */1255/* The lookahead symbol. */
@@ -1409,7 +1257,6 @@ int yychar; · 1 unmodified line
1409 1257
1410/* The semantic value of the lookahead symbol. */1258/* The semantic value of the lookahead symbol. */
1411YYSTYPE yylval;1259YYSTYPE yylval;
1412
1413/* Number of syntax errors so far. */1260/* Number of syntax errors so far. */
1414int yynerrs;1261int yynerrs;
1415 1262
@@ -1418,35 +1265,16 @@ int yynerrs; · 2 unmodified lines
1418| yyparse. |1265| yyparse. |
1419`----------*/1266`----------*/
1420 1267
1421#ifdef YYPARSE_PARAM
1422#if (defined __STDC__ || defined __C99__FUNC__ \
1423 || defined __cplusplus || defined _MSC_VER)
1424int
1425yyparse (void *YYPARSE_PARAM)
1426#else
1427int
1428yyparse (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)
1434int1268int
1435yyparse (void)1269yyparse (void)
1436#else
1437int
1438yyparse ()
1439
1440#endif
1441#endif
1442{1270{
1443 int yystate;1271 int yystate;
1444 /* Number of tokens to shift before error messages enabled. */1272 /* Number of tokens to shift before error messages enabled. */
1445 int yyerrstatus;1273 int yyerrstatus;
1446 1274
1447 /* The stacks and their tools:1275 /* The stacks and their tools:
1448 `yyss': related to states.1276 'yyss': related to states.
1449 `yyvs': related to semantic values.1277 'yyvs': related to semantic values.
1450 1278
1451 Refer to the stacks through separate pointers, to allow yyoverflow1279 Refer to the stacks through separate pointers, to allow yyoverflow
1452 to reallocate them elsewhere. */1280 to reallocate them elsewhere. */
@@ -1466,7 +1294,7 @@ yyparse () · 13 unmodified lines
1466 int yyn;1294 int yyn;
1467 int yyresult;1295 int yyresult;
1468 /* Lookahead token as an internal (translated) token number. */1296 /* Lookahead token as an internal (translated) token number. */
1469 int yytoken;1297 int yytoken = 0;
1470 /* The variables used to return semantic value and location from the1298 /* The variables used to return semantic value and location from the
1471 action routines. */1299 action routines. */
1472 YYSTYPE yyval;1300 YYSTYPE yyval;
@@ -1484,9 +1312,8 @@ yyparse () · 11 unmodified lines
1484 Keep to zero when no symbol should be popped. */1312 Keep to zero when no symbol should be popped. */
1485 int yylen = 0;1313 int yylen = 0;
1486 1314
1487 yytoken = 0;1315 yyssp = yyss = yyssa;
1488 yyss = yyssa;1316 yyvsp = yyvs = yyvsa;
1489 yyvs = yyvsa;
1490 yystacksize = YYINITDEPTH;1317 yystacksize = YYINITDEPTH;
1491 1318
1492 YYDPRINTF ((stderr, "Starting parse\n"));1319 YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1495,14 +1322,6 @@ yyparse () · 2 unmodified lines
1495 yyerrstatus = 0;1322 yyerrstatus = 0;
1496 yynerrs = 0;1323 yynerrs = 0;
1497 yychar = YYEMPTY; /* Cause a token to be read. */1324 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
1506 goto yysetstate;1325 goto yysetstate;
1507 1326
1508/*------------------------------------------------------------.1327/*------------------------------------------------------------.
@@ -1523,23 +1342,23 @@ yyparse () · 14 unmodified lines
1523 1342
1524#ifdef yyoverflow1343#ifdef yyoverflow
1525 {1344 {
1526 /* Give user a chance to reallocate the stack. Use copies of1345 /* Give user a chance to reallocate the stack. Use copies of
1527 these so that the &'s don't force the real ones into1346 these so that the &'s don't force the real ones into
1528 memory. */1347 memory. */
1529 YYSTYPE *yyvs1 = yyvs;1348 YYSTYPE *yyvs1 = yyvs;
1530 yytype_int16 *yyss1 = yyss;1349 yytype_int16 *yyss1 = yyss;
1531 1350
1532 /* Each stack pointer address is followed by the size of the1351 /* Each stack pointer address is followed by the size of the
1533 data in use in that stack, in bytes. This used to be a1352 data in use in that stack, in bytes. This used to be a
1534 conditional around just the two extra args, but that might1353 conditional around just the two extra args, but that might
1535 be undefined if yyoverflow is a macro. */1354 be undefined if yyoverflow is a macro. */
1536 yyoverflow (YY_("memory exhausted"),1355 yyoverflow (YY_("memory exhausted"),
1537 &yyss1, yysize * sizeof (*yyssp),1356 &yyss1, yysize * sizeof (*yyssp),
1538 &yyvs1, yysize * sizeof (*yyvsp),1357 &yyvs1, yysize * sizeof (*yyvsp),
1539 &yystacksize);1358 &yystacksize);
1540 1359
1541 yyss = yyss1;1360 yyss = yyss1;
1542 yyvs = yyvs1;1361 yyvs = yyvs1;
1543 }1362 }
1544#else /* no yyoverflow */1363#else /* no yyoverflow */
1545# ifndef YYSTACK_RELOCATE1364# ifndef YYSTACK_RELOCATE
@@ -1547,22 +1366,22 @@ yyparse () · 1 unmodified line
1547# else1366# else
1548 /* Extend the stack our own way. */1367 /* Extend the stack our own way. */
1549 if (YYMAXDEPTH <= yystacksize)1368 if (YYMAXDEPTH <= yystacksize)
1550 goto yyexhaustedlab;1369 goto yyexhaustedlab;
1551 yystacksize *= 2;1370 yystacksize *= 2;
1552 if (YYMAXDEPTH < yystacksize)1371 if (YYMAXDEPTH < yystacksize)
1553 yystacksize = YYMAXDEPTH;1372 yystacksize = YYMAXDEPTH;
1554 1373
1555 {1374 {
1556 yytype_int16 *yyss1 = yyss;1375 yytype_int16 *yyss1 = yyss;
1557 union yyalloc *yyptr =1376 union yyalloc *yyptr =
1558 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));1377 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1559 if (! yyptr)1378 if (! yyptr)
1560 goto yyexhaustedlab;1379 goto yyexhaustedlab;
1561 YYSTACK_RELOCATE (yyss_alloc, yyss);1380 YYSTACK_RELOCATE (yyss_alloc, yyss);
1562 YYSTACK_RELOCATE (yyvs_alloc, yyvs);1381 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1563# undef YYSTACK_RELOCATE1382# undef YYSTACK_RELOCATE
1564 if (yyss1 != yyssa)1383 if (yyss1 != yyssa)
1565 YYSTACK_FREE (yyss1);1384 YYSTACK_FREE (yyss1);
1566 }1385 }
1567# endif1386# endif
1568#endif /* no yyoverflow */1387#endif /* no yyoverflow */
@@ -1571,10 +1390,10 @@ yyparse () · 2 unmodified lines
1571 yyvsp = yyvs + yysize - 1;1390 yyvsp = yyvs + yysize - 1;
1572 1391
1573 YYDPRINTF ((stderr, "Stack size increased to %lu\n",1392 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1574 (unsigned long int) yystacksize));1393 (unsigned long int) yystacksize));
1575 1394
1576 if (yyss + yystacksize - 1 <= yyssp)1395 if (yyss + yystacksize - 1 <= yyssp)
1577 YYABORT;1396 YYABORT;
1578 }1397 }
1579 1398
1580 YYDPRINTF ((stderr, "Entering state %d\n", yystate));1399 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
@@ -1603,7 +1422,7 @@ yybackup: · 22 unmodified lines
1603 if (yychar == YYEMPTY)1422 if (yychar == YYEMPTY)
1604 {1423 {
1605 YYDPRINTF ((stderr, "Reading a token: "));1424 YYDPRINTF ((stderr, "Reading a token: "));
1606 yychar = YYLEX;1425 yychar = yylex ();
1607 }1426 }
1608 1427
1609 if (yychar <= YYEOF)1428 if (yychar <= YYEOF)
@@ -1643,7 +1462,9 @@ yybackup: · 33 unmodified lines
1643 yychar = YYEMPTY;1462 yychar = YYEMPTY;
1644 1463
1645 yystate = yyn;1464 yystate = yyn;
1465 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1646 *++yyvsp = yylval;1466 *++yyvsp = yylval;
1467 YY_IGNORE_MAYBE_UNINITIALIZED_END
1647 1468
1648 goto yynewstate;1469 goto yynewstate;
1649 1470
@@ -1666,7 +1487,7 @@ yyreduce: · 16 unmodified lines
1666 yylen = yyr2[yyn];1487 yylen = yyr2[yyn];
1667 1488
1668 /* If YYLEN is nonzero, implement the default value of the action:1489 /* If YYLEN is nonzero, implement the default value of the action:
1669 `$$ = $1'.1490 '$$ = $1'.
1670 1491
1671 Otherwise, the following line sets YYVAL to garbage.1492 Otherwise, the following line sets YYVAL to garbage.
1672 This behavior is undocumented and Bison1493 This behavior is undocumented and Bison
@@ -1682,64 +1503,73 @@ yyreduce: · 9 unmodified lines
1682 case 10:1503 case 10:
1683 1504
1684 { zconf_error("unexpected end statement"); }1505 { zconf_error("unexpected end statement"); }
1506
1685 break;1507 break;
1686 1508
1687 case 11:1509 case 11:
1688 1510
1689 { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); }1511 { zconf_error("unknown statement \"%s\"", (yyvsp[-2].string)); }
1512
1690 break;1513 break;
1691 1514
1692 case 12:1515 case 12:
1693 1516
1694 {1517 {
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);
1696}1519}
1520
1697 break;1521 break;
1698 1522
1699 case 13:1523 case 13:
1700 1524
1701 { zconf_error("invalid statement"); }1525 { zconf_error("invalid statement"); }
1526
1702 break;1527 break;
1703 1528
1704 case 28:1529 case 29:
1530
1531 { zconf_error("unknown option \"%s\"", (yyvsp[-2].string)); }
1705 1532
1706 { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); }
1707 break;1533 break;
1708 1534
1709 case 29:1535 case 30:
1710 1536
1711 { zconf_error("invalid option"); }1537 { zconf_error("invalid option"); }
1538
1712 break;1539 break;
1713 1540
1714 case 30:1541 case 31:
1715 1542
1716 {1543 {
1717 struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);1544 struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
1718 sym->flags |= SYMBOL_OPTIONAL;1545 sym->flags |= SYMBOL_OPTIONAL;
1719 menu_add_entry(sym);1546 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));
1721}1548}
1549
1722 break;1550 break;
1723 1551
1724 case 31:1552 case 32:
1725 1553
1726 {1554 {
1727 menu_end_entry();1555 menu_end_entry();
1728 printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());1556 printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
1729}1557}
1558
1730 break;1559 break;
1731 1560
1732 case 32:1561 case 33:
1733 1562
1734 {1563 {
1735 struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);1564 struct symbol *sym = sym_lookup((yyvsp[-1].string), 0);
1736 sym->flags |= SYMBOL_OPTIONAL;1565 sym->flags |= SYMBOL_OPTIONAL;
1737 menu_add_entry(sym);1566 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));
1739}1568}
1569
1740 break;1570 break;
1741 1571
1742 case 33:1572 case 34:
1743 1573
1744 {1574 {
1745 if (current_entry->prompt)1575 if (current_entry->prompt)
@@ -1749,352 +1579,410 @@ yyreduce: · 3 unmodified lines
1749 menu_end_entry();1579 menu_end_entry();
1750 printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());1580 printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
1751}1581}
1582
1752 break;1583 break;
1753 1584
1754 case 41:1585 case 42:
1755 1586
1756 {1587 {
1757 menu_set_type((yyvsp[(1) - (3)].id)->stype);1588 menu_set_type((yyvsp[-2].id)->stype);
1758 printd(DEBUG_PARSE, "%s:%d:type(%u)\n",1589 printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
1759 zconf_curname(), zconf_lineno(),1590 zconf_curname(), zconf_lineno(),
1760 (yyvsp[(1) - (3)].id)->stype);1591 (yyvsp[-2].id)->stype);
1761}1592}
1593
1762 break;1594 break;
1763 1595
1764 case 42:1596 case 43:
1765 1597
1766 {1598 {
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));
1768 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());1600 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
1769}1601}
1602
1770 break;1603 break;
1771 1604
1772 case 43:1605 case 44:
1773 1606
1774 {1607 {
1775 menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));1608 menu_add_expr(P_DEFAULT, (yyvsp[-2].expr), (yyvsp[-1].expr));
1776 if ((yyvsp[(1) - (4)].id)->stype != S_UNKNOWN)1609 if ((yyvsp[-3].id)->stype != S_UNKNOWN)
1777 menu_set_type((yyvsp[(1) - (4)].id)->stype);1610 menu_set_type((yyvsp[-3].id)->stype);
1778 printd(DEBUG_PARSE, "%s:%d:default(%u)\n",1611 printd(DEBUG_PARSE, "%s:%d:default(%u)\n",
1779 zconf_curname(), zconf_lineno(),1612 zconf_curname(), zconf_lineno(),
1780 (yyvsp[(1) - (4)].id)->stype);1613 (yyvsp[-3].id)->stype);
1781}1614}
1615
1782 break;1616 break;
1783 1617
1784 case 44:1618 case 45:
1785 1619
1786 {1620 {
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));
1788 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());1622 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
1789}1623}
1624
1790 break;1625 break;
1791 1626
1792 case 45:1627 case 46:
1793 1628
1794 {1629 {
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));
1796 printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());1640 printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno());
1797}1641}
1642
1798 break;1643 break;
1799 1644
1800 case 48:1645 case 50:
1801 1646
1802 {1647 {
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)));
1804 if (id && id->flags & TF_OPTION)1649 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));
1806 else1651 else
1807 zconfprint("warning: ignoring unknown option %s", (yyvsp[(2) - (3)].string));1652 zconfprint("warning: ignoring unknown option %s", (yyvsp[-1].string));
1808 free((yyvsp[(2) - (3)].string));1653 free((yyvsp[-1].string));
1809}1654}
1655
1810 break;1656 break;
1811 1657
1812 case 49:1658 case 51:
1813 1659
1814 { (yyval.string) = NULL; }1660 { (yyval.string) = NULL; }
1661
1815 break;1662 break;
1816 1663
1817 case 50:1664 case 52:
1665
1666 { (yyval.string) = (yyvsp[0].string); }
1818 1667
1819 { (yyval.string) = (yyvsp[(2) - (2)].string); }
1820 break;1668 break;
1821 1669
1822 case 51:1670 case 53:
1823 1671
1824 {1672 {
1825 struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);1673 struct symbol *sym = sym_lookup((yyvsp[-1].string), SYMBOL_CHOICE);
1826 sym->flags |= SYMBOL_AUTO;1674 sym->flags |= SYMBOL_AUTO;
1827 menu_add_entry(sym);1675 menu_add_entry(sym);
1828 menu_add_expr(P_CHOICE, NULL, NULL);1676 menu_add_expr(P_CHOICE, NULL, NULL);
1829 printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());1677 printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
1830}1678}
1679
1831 break;1680 break;
1832 1681
1833 case 52:1682 case 54:
1834 1683
1835 {1684 {
1836 (yyval.menu) = menu_add_menu();1685 (yyval.menu) = menu_add_menu();
1837}1686}
1687
1838 break;1688 break;
1839 1689
1840 case 53:1690 case 55:
1841 1691
1842 {1692 {
1843 if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {1693 if (zconf_endtoken((yyvsp[0].id), T_CHOICE, T_ENDCHOICE)) {
1844 menu_end_menu();1694 menu_end_menu();
1845 printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());1695 printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
1846 }1696 }
1847}1697}
1698
1848 break;1699 break;
1849 1700
1850 case 61:1701 case 63:
1851 1702
1852 {1703 {
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));
1854 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());1705 printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
1855}1706}
1707
1856 break;1708 break;
1857 1709
1858 case 62:1710 case 64:
1859 1711
1860 {1712 {
1861 if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {1713 if ((yyvsp[-2].id)->stype == S_BOOLEAN || (yyvsp[-2].id)->stype == S_TRISTATE) {
1862 menu_set_type((yyvsp[(1) - (3)].id)->stype);1714 menu_set_type((yyvsp[-2].id)->stype);
1863 printd(DEBUG_PARSE, "%s:%d:type(%u)\n",1715 printd(DEBUG_PARSE, "%s:%d:type(%u)\n",
1864 zconf_curname(), zconf_lineno(),1716 zconf_curname(), zconf_lineno(),
1865 (yyvsp[(1) - (3)].id)->stype);1717 (yyvsp[-2].id)->stype);
1866 } else1718 } else
1867 YYERROR;1719 YYERROR;
1868}1720}
1721
1869 break;1722 break;
1870 1723
1871 case 63:1724 case 65:
1872 1725
1873 {1726 {
1874 current_entry->sym->flags |= SYMBOL_OPTIONAL;1727 current_entry->sym->flags |= SYMBOL_OPTIONAL;
1875 printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());1728 printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
1876}1729}
1730
1877 break;1731 break;
1878 1732
1879 case 64:1733 case 66:
1880 1734
1881 {1735 {
1882 if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {1736 if ((yyvsp[-3].id)->stype == S_UNKNOWN) {
1883 menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));1737 menu_add_symbol(P_DEFAULT, sym_lookup((yyvsp[-2].string), 0), (yyvsp[-1].expr));
1884 printd(DEBUG_PARSE, "%s:%d:default\n",1738 printd(DEBUG_PARSE, "%s:%d:default\n",
1885 zconf_curname(), zconf_lineno());1739 zconf_curname(), zconf_lineno());
1886 } else1740 } else
1887 YYERROR;1741 YYERROR;
1888}1742}
1743
1889 break;1744 break;
1890 1745
1891 case 67:1746 case 69:
1892 1747
1893 {1748 {
1894 printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());1749 printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
1895 menu_add_entry(NULL);1750 menu_add_entry(NULL);
1896 menu_add_dep((yyvsp[(2) - (3)].expr));1751 menu_add_dep((yyvsp[-1].expr));
1897 (yyval.menu) = menu_add_menu();1752 (yyval.menu) = menu_add_menu();
1898}1753}
1754
1899 break;1755 break;
1900 1756
1901 case 68:1757 case 70:
1902 1758
1903 {1759 {
1904 if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {1760 if (zconf_endtoken((yyvsp[0].id), T_IF, T_ENDIF)) {
1905 menu_end_menu();1761 menu_end_menu();
1906 printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());1762 printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
1907 }1763 }
1908}1764}
1765
1909 break;1766 break;
1910 1767
1911 case 74:1768 case 76:
1912 1769
1913 {1770 {
1914 menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);1771 menu_add_prompt(P_MENU, (yyvsp[-1].string), NULL);
1915}1772}
1773
1916 break;1774 break;
1917 1775
1918 case 75:1776 case 77:
1919 1777
1920 {1778 {
1921 menu_add_entry(NULL);1779 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);
1923 printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());1781 printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
1924}1782}
1783
1925 break;1784 break;
1926 1785
1927 case 76:1786 case 78:
1928 1787
1929 {1788 {
1930 (yyval.menu) = menu_add_menu();1789 (yyval.menu) = menu_add_menu();
1931}1790}
1791
1932 break;1792 break;
1933 1793
1934 case 77:1794 case 79:
1935 1795
1936 {1796 {
1937 if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {1797 if (zconf_endtoken((yyvsp[0].id), T_MENU, T_ENDMENU)) {
1938 menu_end_menu();1798 menu_end_menu();
1939 printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());1799 printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
1940 }1800 }
1941}1801}
1802
1942 break;1803 break;
1943 1804
1944 case 83:1805 case 85:
1945 1806
1946 {1807 {
1947 printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));1808 printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[-1].string));
1948 zconf_nextfile((yyvsp[(2) - (3)].string));1809 zconf_nextfile((yyvsp[-1].string));
1949}1810}
1811
1950 break;1812 break;
1951 1813
1952 case 84:1814 case 86:
1953 1815
1954 {1816 {
1955 menu_add_entry(NULL);1817 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);
1957 printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());1819 printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
1958}1820}
1821
1959 break;1822 break;
1960 1823
1961 case 85:1824 case 87:
1962 1825
1963 {1826 {
1964 menu_end_entry();1827 menu_end_entry();
1965}1828}
1829
1966 break;1830 break;
1967 1831
1968 case 86:1832 case 88:
1969 1833
1970 {1834 {
1971 printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());1835 printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
1972 zconf_starthelp();1836 zconf_starthelp();
1973}1837}
1838
1974 break;1839 break;
1975 1840
1976 case 87:1841 case 89:
1977 1842
1978 {1843 {
1979 current_entry->help = (yyvsp[(2) - (2)].string);1844 current_entry->help = (yyvsp[0].string);
1980}1845}
1846
1981 break;1847 break;
1982 1848
1983 case 92:1849 case 94:
1984 1850
1985 {1851 {
1986 menu_add_dep((yyvsp[(3) - (4)].expr));1852 menu_add_dep((yyvsp[-1].expr));
1987 printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());1853 printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
1988}1854}
1989 break;
1990
1991 case 96:
1992 1855
1993 {
1994 menu_add_visibility((yyvsp[(2) - (2)].expr));
1995}
1996 break;1856 break;
1997 1857
1998 case 98:1858 case 98:
1999 1859
2000 {1860 {
2001 menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));1861 menu_add_visibility((yyvsp[0].expr));
2002}1862}
2003 break;
2004 1863
2005 case 101:
2006
2007 { (yyval.id) = (yyvsp[(1) - (2)].id); }
2008 break;1864 break;
2009 1865
2010 case 102:1866 case 100:
1867
1868 {
1869 menu_add_prompt(P_PROMPT, (yyvsp[-1].string), (yyvsp[0].expr));
1870}
2011 1871
2012 { (yyval.id) = (yyvsp[(1) - (2)].id); }
2013 break;1872 break;
2014 1873
2015 case 103:1874 case 103:
2016 1875
2017 { (yyval.id) = (yyvsp[(1) - (2)].id); }1876 { (yyval.id) = (yyvsp[-1].id); }
1877
2018 break;1878 break;
2019 1879
2020 case 106:1880 case 104:
1881
1882 { (yyval.id) = (yyvsp[-1].id); }
2021 1883
2022 { (yyval.expr) = NULL; }
2023 break;1884 break;
2024 1885
2025 case 107:1886 case 105:
1887
1888 { (yyval.id) = (yyvsp[-1].id); }
2026 1889
2027 { (yyval.expr) = (yyvsp[(2) - (2)].expr); }
2028 break;1890 break;
2029 1891
2030 case 108:1892 case 108:
2031 1893
2032 { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); }1894 { (yyval.expr) = NULL; }
1895
2033 break;1896 break;
2034 1897
2035 case 109:1898 case 109:
2036 1899
2037 { (yyval.expr) = expr_alloc_comp(E_LTH, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); }1900 { (yyval.expr) = (yyvsp[0].expr); }
1901
2038 break;1902 break;
2039 1903
2040 case 110:1904 case 110:
2041 1905
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
2043 break;1908 break;
2044 1909
2045 case 111:1910 case 111:
2046 1911
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
2048 break;1914 break;
2049 1915
2050 case 112:1916 case 112:
2051 1917
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
2053 break;1920 break;
2054 1921
2055 case 113:1922 case 113:
2056 1923
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
2058 break;1926 break;
2059 1927
2060 case 114:1928 case 114:
2061 1929
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
2063 break;1932 break;
2064 1933
2065 case 115:1934 case 115:
2066 1935
2067 { (yyval.expr) = (yyvsp[(2) - (3)].expr); }1936 { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[-2].symbol), (yyvsp[0].symbol)); }
1937
2068 break;1938 break;
2069 1939
2070 case 116:1940 case 116:
2071 1941
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
2073 break;1944 break;
2074 1945
2075 case 117:1946 case 117:
2076 1947
2077 { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); }1948 { (yyval.expr) = (yyvsp[-1].expr); }
1949
2078 break;1950 break;
2079 1951
2080 case 118:1952 case 118:
2081 1953
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
2083 break;1956 break;
2084 1957
2085 case 119:1958 case 119:
2086 1959
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
2088 break;1962 break;
2089 1963
2090 case 120:1964 case 120:
2091 1965
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
2093 break;1968 break;
2094 1969
2095 case 121:1970 case 121:
2096 1971
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
2097 { (yyval.string) = NULL; }1984 { (yyval.string) = NULL; }
1985
2098 break;1986 break;
2099 1987
2100 1988
@@ -2120,7 +2008,7 @@ yyreduce: · 19 unmodified lines
2120 2008
2121 *++yyvsp = yyval;2009 *++yyvsp = yyval;
2122 2010
2123 /* Now `shift' the result of the reduction. Determine what state2011 /* Now 'shift' the result of the reduction. Determine what state
2124 that goes to, based on the state we popped back to and the rule2012 that goes to, based on the state we popped back to and the rule
2125 number reduced by. */2013 number reduced by. */
2126 2014
@@ -2135,9 +2023,9 @@ yyreduce: · 8 unmodified lines
2135 goto yynewstate;2023 goto yynewstate;
2136 2024
2137 2025
2138/*------------------------------------.2026/*--------------------------------------.
2139| yyerrlab -- here on detecting error |2027| yyerrlab -- here on detecting error. |
2140`------------------------------------*/2028`--------------------------------------*/
2141yyerrlab:2029yyerrlab:
2142 /* Make sure we have latest lookahead translation. See comments at2030 /* Make sure we have latest lookahead translation. See comments at
2143 user semantic actions for why this is necessary. */2031 user semantic actions for why this is necessary. */
@@ -2188,20 +2076,20 @@ yyerrlab: · 44 unmodified lines
2188 if (yyerrstatus == 3)2076 if (yyerrstatus == 3)
2189 {2077 {
2190 /* If just tried and failed to reuse lookahead token after an2078 /* If just tried and failed to reuse lookahead token after an
2191 error, discard it. */2079 error, discard it. */
2192 2080
2193 if (yychar <= YYEOF)2081 if (yychar <= YYEOF)
2194 {2082 {
2195 /* Return failure if at end of input. */2083 /* Return failure if at end of input. */
2196 if (yychar == YYEOF)2084 if (yychar == YYEOF)
2197 YYABORT;2085 YYABORT;
2198 }2086 }
2199 else2087 else
2200 {2088 {
2201 yydestruct ("Error: discarding",2089 yydestruct ("Error: discarding",
2202 yytoken, &yylval);2090 yytoken, &yylval);
2203 yychar = YYEMPTY;2091 yychar = YYEMPTY;
2204 }2092 }
2205 }2093 }
2206 2094
2207 /* Else will try to reuse lookahead token after shifting the error2095 /* Else will try to reuse lookahead token after shifting the error
@@ -2220,7 +2108,7 @@ yyerrorlab: · 12 unmodified lines
2220 if (/*CONSTCOND*/ 0)2108 if (/*CONSTCOND*/ 0)
2221 goto yyerrorlab;2109 goto yyerrorlab;
2222 2110
2223 /* Do not reclaim the symbols of the rule which action triggered2111 /* Do not reclaim the symbols of the rule whose action triggered
2224 this YYERROR. */2112 this YYERROR. */
2225 YYPOPSTACK (yylen);2113 YYPOPSTACK (yylen);
2226 yylen = 0;2114 yylen = 0;
@@ -2233,35 +2121,37 @@ yyerrorlab: · 6 unmodified lines
2233| yyerrlab1 -- common code for both syntax error and YYERROR. |2121| yyerrlab1 -- common code for both syntax error and YYERROR. |
2234`-------------------------------------------------------------*/2122`-------------------------------------------------------------*/
2235yyerrlab1:2123yyerrlab1:
2236 yyerrstatus = 3; /* Each real token shifted decrements this. */2124 yyerrstatus = 3; /* Each real token shifted decrements this. */
2237 2125
2238 for (;;)2126 for (;;)
2239 {2127 {
2240 yyn = yypact[yystate];2128 yyn = yypact[yystate];
2241 if (!yypact_value_is_default (yyn))2129 if (!yypact_value_is_default (yyn))
2242 {2130 {
2243 yyn += YYTERROR;2131 yyn += YYTERROR;
2244 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)2132 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
2245 {2133 {
2246 yyn = yytable[yyn];2134 yyn = yytable[yyn];
2247 if (0 < yyn)2135 if (0 < yyn)
2248 break;2136 break;
2249 }2137 }
2250 }2138 }
2251 2139
2252 /* Pop the current state because it cannot handle the error token. */2140 /* Pop the current state because it cannot handle the error token. */
2253 if (yyssp == yyss)2141 if (yyssp == yyss)
2254 YYABORT;2142 YYABORT;
2255 2143
2256 2144
2257 yydestruct ("Error: popping",2145 yydestruct ("Error: popping",
2258 yystos[yystate], yyvsp);2146 yystos[yystate], yyvsp);
2259 YYPOPSTACK (1);2147 YYPOPSTACK (1);
2260 yystate = *yyssp;2148 yystate = *yyssp;
2261 YY_STACK_PRINT (yyss, yyssp);2149 YY_STACK_PRINT (yyss, yyssp);
2262 }2150 }
2263 2151
2152 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
2264 *++yyvsp = yylval;2153 *++yyvsp = yylval;
2154 YY_IGNORE_MAYBE_UNINITIALIZED_END
2265 2155
2266 2156
2267 /* Shift the error token. */2157 /* Shift the error token. */
@@ -2304,14 +2194,14 @@ yyreturn: · 36 unmodified lines
2304 yydestruct ("Cleanup: discarding lookahead",2194 yydestruct ("Cleanup: discarding lookahead",
2305 yytoken, &yylval);2195 yytoken, &yylval);
2306 }2196 }
2307 /* Do not reclaim the symbols of the rule which action triggered2197 /* Do not reclaim the symbols of the rule whose action triggered
2308 this YYABORT or YYACCEPT. */2198 this YYABORT or YYACCEPT. */
2309 YYPOPSTACK (yylen);2199 YYPOPSTACK (yylen);
2310 YY_STACK_PRINT (yyss, yyssp);2200 YY_STACK_PRINT (yyss, yyssp);
2311 while (yyssp != yyss)2201 while (yyssp != yyss)
2312 {2202 {
2313 yydestruct ("Cleanup: popping",2203 yydestruct ("Cleanup: popping",
2314 yystos[*yyssp], yyvsp);2204 yystos[*yyssp], yyvsp);
2315 YYPOPSTACK (1);2205 YYPOPSTACK (1);
2316 }2206 }
2317#ifndef yyoverflow2207#ifndef yyoverflow
@@ -2322,14 +2212,11 @@ yyreturn: · 4 unmodified lines
2322 if (yymsg != yymsgbuf)2212 if (yymsg != yymsgbuf)
2323 YYSTACK_FREE (yymsg);2213 YYSTACK_FREE (yymsg);
2324#endif2214#endif
2325 /* Make sure YYID is used. */2215 return yyresult;
2326 return YYID (yyresult);
2327}2216}
2328 2217
2329 2218
2330 2219
2331
2332
2333void conf_parse(const char *name)2220void conf_parse(const char *name)
2334{2221{
2335 struct symbol *sym;2222 struct symbol *sym;
@@ -2501,6 +2388,11 @@ static void print_symbol(FILE *out, struct menu *menu) · 165 unmodified lines
2501 expr_fprint(prop->expr, out);2388 expr_fprint(prop->expr, out);
2502 fputc('\n', out);2389 fputc('\n', out);
2503 break;2390 break;
2391 case P_IMPLY:
2392 fputs( " imply ", out);
2393 expr_fprint(prop->expr, out);
2394 fputc('\n', out);
2395 break;
2504 case P_RANGE:2396 case P_RANGE:
2505 fputs( " range ", out);2397 fputs( " range ", out);
2506 expr_fprint(prop->expr, out);2398 expr_fprint(prop->expr, out);
@@ -2577,4 +2469,3 @@ void zconfdump(FILE *out) · 70 unmodified lines
2577#include "expr.c"2469#include "expr.c"
2578#include "symbol.c"2470#include "symbol.c"
2579#include "menu.c"2471#include "menu.c"
2580
scripts/kconfig/zconf.y+14−2
@@ -31,7 +31,7 @@ struct symbol *symbol_hash[SYMBOL_HASHSIZE]; · 30 unmodified lines
31static struct menu *current_menu, *current_entry;31static struct menu *current_menu, *current_entry;
32 32
33%}33%}
34%expect 3034%expect 32
35 35
36%union36%union
37{37{
@@ -62,6 +62,7 @@ static struct menu *current_menu, *current_entry; · 24 unmodified lines
62%token <id>T_TYPE62%token <id>T_TYPE
63%token <id>T_DEFAULT63%token <id>T_DEFAULT
64%token <id>T_SELECT64%token <id>T_SELECT
65%token <id>T_IMPLY
65%token <id>T_RANGE66%token <id>T_RANGE
66%token <id>T_VISIBLE67%token <id>T_VISIBLE
67%token <id>T_OPTION68%token <id>T_OPTION
@@ -124,7 +125,7 @@ stmt_list: · 56 unmodified lines
124;125;
125 126
126option_name:127option_name:
127 T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE128 T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_IMPLY | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
128;129;
129 130
130common_stmt:131common_stmt:
@@ -216,6 +217,12 @@ config_option: T_SELECT T_WORD if_expr T_EOL · 85 unmodified lines
216 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());217 printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno());
217};218};
218 219
220config_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
219config_option: T_RANGE symbol symbol if_expr T_EOL226config_option: T_RANGE symbol symbol if_expr T_EOL
220{227{
221 menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4);228 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
664 expr_fprint(prop->expr, out);671 expr_fprint(prop->expr, out);
665 fputc('\n', out);672 fputc('\n', out);
666 break;673 break;
674 case P_IMPLY:
675 fputs( " imply ", out);
676 expr_fprint(prop->expr, out);
677 fputc('\n', out);
678 break;
667 case P_RANGE:679 case P_RANGE:
668 fputs( " range ", out);680 fputs( " range ", out);
669 expr_fprint(prop->expr, out);681 expr_fprint(prop->expr, out);