Commit dfeaca8c authored by Roman Zippel's avatar Roman Zippel Committed by Linus Torvalds

[PATCH] various kconfig updates

Various small kconfig updates to fix all the reported little problems and
the single menu mode for menuconfig by Petr Baudis <pasky@ucw.cz>.
parent 7f60c550
...@@ -252,7 +252,7 @@ ifdef include_config ...@@ -252,7 +252,7 @@ ifdef include_config
# In this section, we need .config # In this section, we need .config
-include ..config.cmd -include .config.cmd
ifdef CONFIG_MODULES ifdef CONFIG_MODULES
export EXPORT_FLAGS := -DEXPORT_SYMTAB export EXPORT_FLAGS := -DEXPORT_SYMTAB
......
Menuconfig gives the Linux kernel configuration a long needed face Menuconfig gives the Linux kernel configuration a long needed face
lift. Featuring text based color menus and dialogs, it does not lift. Featuring text based color menus and dialogs, it does not
require X Windows. With this utility you can easily select a kernel require X Windows (however, you need ncurses in order to use it).
option to modify without sifting through 100 other options. With this utility you can easily select a kernel option to modify
without sifting through 100 other options.
Overview Overview
-------- --------
...@@ -172,11 +173,17 @@ COMPATIBILITY ISSUE: ...@@ -172,11 +173,17 @@ COMPATIBILITY ISSUE:
******** IMPORTANT, OPTIONAL ALTERNATE PERSONALITY AVAILABLE ******** ******** IMPORTANT, OPTIONAL ALTERNATE PERSONALITY AVAILABLE ********
******** ******** ******** ********
If you prefer to have all of the kernel options listed in a single If you prefer to have all of the kernel options listed in a single
menu, rather than the default multimenu hierarchy, you may edit the menu, rather than the default multimenu hierarchy, run the menuconfig
Menuconfig script and change the line "single_menu_mode=" to with MENUCONFIG_MODE environment variable set to single_menu. Example:
"single_menu_mode=TRUE".
This mode is not recommended unless you have a fairly fast machine. make menuconfig MENUCONFIG_MODE=single_menu
<Enter> will then unroll the appropriate category, or enfold it if it
is already unrolled.
Note that this mode can eventually be a little more CPU expensive
(especially with a larger number of unrolled categories) than the
default mode.
********************************************************************* *********************************************************************
......
...@@ -115,6 +115,7 @@ static void conf_askvalue(struct symbol *sym, const char *def) ...@@ -115,6 +115,7 @@ static void conf_askvalue(struct symbol *sym, const char *def)
exit(1); exit(1);
} }
case ask_all: case ask_all:
fflush(stdout);
fgets(line, 128, stdin); fgets(line, 128, stdin);
return; return;
case set_default: case set_default:
...@@ -366,7 +367,7 @@ static int conf_choice(struct menu *menu) ...@@ -366,7 +367,7 @@ static int conf_choice(struct menu *menu)
for (cmenu = menu->list; cmenu; cmenu = cmenu->next) { for (cmenu = menu->list; cmenu; cmenu = cmenu->next) {
if (!cmenu->sym || !menu_is_visible(cmenu)) if (!cmenu->sym || !menu_is_visible(cmenu))
continue; continue;
if (!strncmp(line, menu_get_prompt(cmenu), len)) { if (!strncasecmp(line, menu_get_prompt(cmenu), len)) {
def_menu = cmenu; def_menu = cmenu;
break; break;
} }
......
...@@ -117,7 +117,6 @@ int conf_read(const char *name) ...@@ -117,7 +117,6 @@ int conf_read(const char *name)
*p++ = 0; *p++ = 0;
if (strncmp(p, "is not set", 10)) if (strncmp(p, "is not set", 10))
continue; continue;
//printf("%s -> n\n", line + 9);
sym = sym_lookup(line + 9, 0); sym = sym_lookup(line + 9, 0);
switch (sym->type) { switch (sym->type) {
case S_BOOLEAN: case S_BOOLEAN:
...@@ -139,23 +138,29 @@ int conf_read(const char *name) ...@@ -139,23 +138,29 @@ int conf_read(const char *name)
p2 = strchr(p, '\n'); p2 = strchr(p, '\n');
if (p2) if (p2)
*p2 = 0; *p2 = 0;
//printf("%s -> %s\n", line + 7, p);
sym = sym_find(line + 7); sym = sym_find(line + 7);
if (!sym) { if (!sym) {
fprintf(stderr, "%s:%d: trying to assign nonexistent symbol %s\n", name, lineno, line + 7); fprintf(stderr, "%s:%d: trying to assign nonexistent symbol %s\n", name, lineno, line + 7);
break; break;
} }
switch (sym->type) { switch (sym->type) {
case S_BOOLEAN:
sym->def = symbol_yes.curr;
sym->flags &= ~SYMBOL_NEW;
break;
case S_TRISTATE: case S_TRISTATE:
if (p[0] == 'm') if (p[0] == 'm') {
sym->def = symbol_mod.curr; S_TRI(sym->def) = mod;
else sym->flags &= ~SYMBOL_NEW;
sym->def = symbol_yes.curr; break;
sym->flags &= ~SYMBOL_NEW; }
case S_BOOLEAN:
if (p[0] == 'y') {
S_TRI(sym->def) = yes;
sym->flags &= ~SYMBOL_NEW;
break;
}
if (p[0] == 'n') {
S_TRI(sym->def) = no;
sym->flags &= ~SYMBOL_NEW;
break;
}
break; break;
case S_STRING: case S_STRING:
if (*p++ != '"') if (*p++ != '"')
......
...@@ -169,7 +169,7 @@ struct menu { ...@@ -169,7 +169,7 @@ struct menu {
//char *help; //char *help;
struct file *file; struct file *file;
int lineno; int lineno;
//void *data; void *data;
}; };
#ifndef SWIG #ifndef SWIG
......
...@@ -542,7 +542,7 @@ static yyconst short yy_nxt[][37] = ...@@ -542,7 +542,7 @@ static yyconst short yy_nxt[][37] =
}, },
{ {
11, 77, 77, -34, 77, -34, 77, 77, -34, 77, 11, 77, 77, 78, 77, -34, 77, 77, -34, 77,
77, 77, 77, 77, 77, -34, 77, 77, 77, 77, 77, 77, 77, 77, 77, -34, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77 77, 77, 77, 77, 77, 77, 77
...@@ -564,11 +564,11 @@ static yyconst short yy_nxt[][37] = ...@@ -564,11 +564,11 @@ static yyconst short yy_nxt[][37] =
}, },
{ {
11, 78, 79, 80, 78, 78, 78, 78, 78, 78, 11, 79, 79, 80, 79, 79, 79, 79, 79, 79,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
78, 78, 78, 78, 78, 78, 78 79, 79, 79, 79, 79, 79, 79
}, },
{ {
...@@ -860,7 +860,7 @@ static yyconst short yy_nxt[][37] = ...@@ -860,7 +860,7 @@ static yyconst short yy_nxt[][37] =
}, },
{ {
11, 77, 77, -77, 77, -77, 77, 77, -77, 77, 11, 77, 77, 78, 77, -77, 77, 77, -77, 77,
77, 77, 77, 77, 77, -77, 77, 77, 77, 77, 77, 77, 77, 77, 77, -77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77,
...@@ -875,7 +875,7 @@ static yyconst short yy_nxt[][37] = ...@@ -875,7 +875,7 @@ static yyconst short yy_nxt[][37] =
}, },
{ {
11, -79, 106, 80, -79, -79, -79, -79, -79, -79, 11, -79, -79, 80, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79, -79,
-79, -79, -79, -79, -79, -79, -79 -79, -79, -79, -79, -79, -79, -79
...@@ -906,7 +906,7 @@ static yyconst short yy_nxt[][37] = ...@@ -906,7 +906,7 @@ static yyconst short yy_nxt[][37] =
{ {
11, -83, -83, -83, -83, -83, -83, -83, -83, -83, 11, -83, -83, -83, -83, -83, -83, -83, -83, -83,
-83, 107, 84, 84, -83, -83, 84, 84, 84, 84, -83, 106, 84, 84, -83, -83, 84, 84, 84, 84,
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
84, 84, 84, 84, 84, 84, -83 84, 84, 84, 84, 84, 84, -83
}, },
...@@ -944,14 +944,14 @@ static yyconst short yy_nxt[][37] = ...@@ -944,14 +944,14 @@ static yyconst short yy_nxt[][37] =
{ {
11, -88, -88, -88, -88, -88, -88, -88, -88, -88, 11, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-88, -88, -88, 56, -88, -88, 56, 56, 56, 56, -88, -88, -88, 56, -88, -88, 56, 56, 56, 56,
56, 56, 56, 56, 56, 108, 56, 56, 56, 56, 56, 56, 56, 56, 56, 107, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -88 56, 56, 56, 56, 56, 56, -88
}, },
{ {
11, -89, -89, -89, -89, -89, -89, -89, -89, -89, 11, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, 56, -89, -89, 56, 56, 56, 56, -89, -89, -89, 56, -89, -89, 56, 56, 56, 56,
56, 56, 56, 56, 109, 56, 56, 56, 56, 56, 56, 56, 56, 56, 108, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -89 56, 56, 56, 56, 56, 56, -89
}, },
...@@ -959,20 +959,20 @@ static yyconst short yy_nxt[][37] = ...@@ -959,20 +959,20 @@ static yyconst short yy_nxt[][37] =
{ {
11, -90, -90, -90, -90, -90, -90, -90, -90, -90, 11, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -90, -90, 56, -90, -90, 56, 56, 56, 56, -90, -90, -90, 56, -90, -90, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 110, 56, 56, 56, 56, 56, 56, 56, 56, 56, 109, 56, 56, 56,
56, 56, 56, 56, 56, 56, -90 56, 56, 56, 56, 56, 56, -90
}, },
{ {
11, -91, -91, -91, -91, -91, -91, -91, -91, -91, 11, -91, -91, -91, -91, -91, -91, -91, -91, -91,
-91, -91, -91, 56, -91, -91, 56, 56, 56, 56, -91, -91, -91, 56, -91, -91, 56, 56, 56, 56,
56, 111, 56, 56, 56, 56, 56, 56, 56, 56, 56, 110, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -91 56, 56, 56, 56, 56, 56, -91
}, },
{ {
11, -92, -92, -92, -92, -92, -92, -92, -92, -92, 11, -92, -92, -92, -92, -92, -92, -92, -92, -92,
-92, -92, -92, 56, -92, -92, 112, 56, 56, 56, -92, -92, -92, 56, -92, -92, 111, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -92 56, 56, 56, 56, 56, 56, -92
...@@ -981,14 +981,14 @@ static yyconst short yy_nxt[][37] = ...@@ -981,14 +981,14 @@ static yyconst short yy_nxt[][37] =
{ {
11, -93, -93, -93, -93, -93, -93, -93, -93, -93, 11, -93, -93, -93, -93, -93, -93, -93, -93, -93,
-93, -93, -93, 56, -93, -93, 56, 56, 56, 56, -93, -93, -93, 56, -93, -93, 56, 56, 56, 56,
113, 56, 56, 56, 56, 56, 56, 56, 56, 56, 112, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -93 56, 56, 56, 56, 56, 56, -93
}, },
{ {
11, -94, -94, -94, -94, -94, -94, -94, -94, -94, 11, -94, -94, -94, -94, -94, -94, -94, -94, -94,
-94, -94, -94, 56, -94, -94, 56, 56, 114, 56, -94, -94, -94, 56, -94, -94, 56, 56, 113, 56,
56, 56, 56, 56, 115, 56, 116, 56, 56, 56, 56, 56, 56, 56, 114, 56, 115, 56, 56, 56,
56, 56, 56, 56, 56, 56, -94 56, 56, 56, 56, 56, 56, -94
}, },
...@@ -996,7 +996,7 @@ static yyconst short yy_nxt[][37] = ...@@ -996,7 +996,7 @@ static yyconst short yy_nxt[][37] =
{ {
11, -95, -95, -95, -95, -95, -95, -95, -95, -95, 11, -95, -95, -95, -95, -95, -95, -95, -95, -95,
-95, -95, -95, 56, -95, -95, 56, 56, 56, 56, -95, -95, -95, 56, -95, -95, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 117, 56, 56, 56, 56, 56, 56, 56, 56, 56, 116,
56, 56, 56, 56, 56, 56, -95 56, 56, 56, 56, 56, 56, -95
}, },
...@@ -1018,7 +1018,7 @@ static yyconst short yy_nxt[][37] = ...@@ -1018,7 +1018,7 @@ static yyconst short yy_nxt[][37] =
{ {
11, -98, -98, -98, -98, -98, -98, -98, -98, -98, 11, -98, -98, -98, -98, -98, -98, -98, -98, -98,
-98, -98, -98, 56, -98, -98, 56, 56, 56, 56, -98, -98, -98, 56, -98, -98, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 118, 56, 56, 56, 56, 56, 56, 56, 56, 56, 117, 56, 56,
56, 56, 56, 56, 56, 56, -98 56, 56, 56, 56, 56, 56, -98
}, },
...@@ -1026,21 +1026,21 @@ static yyconst short yy_nxt[][37] = ...@@ -1026,21 +1026,21 @@ static yyconst short yy_nxt[][37] =
11, -99, -99, -99, -99, -99, -99, -99, -99, -99, 11, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, -99, -99, 56, -99, -99, 56, 56, 56, 56, -99, -99, -99, 56, -99, -99, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 119, 56, -99 56, 56, 56, 56, 118, 56, -99
}, },
{ {
11, -100, -100, -100, -100, -100, -100, -100, -100, -100, 11, -100, -100, -100, -100, -100, -100, -100, -100, -100,
-100, -100, -100, 56, -100, -100, 56, 56, 56, 56, -100, -100, -100, 56, -100, -100, 56, 56, 56, 56,
56, 56, 56, 56, 120, 56, 56, 56, 56, 56, 56, 56, 56, 56, 119, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -100 56, 56, 56, 56, 56, 56, -100
}, },
{ {
11, -101, -101, -101, -101, -101, -101, -101, -101, -101, 11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-101, -101, -101, 56, -101, -101, 56, 56, 56, 56, -101, -101, -101, 56, -101, -101, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 121, 56, 56, 56, 56, 56, 56, 56, 56, 56, 120, 56, 56, 56,
56, 56, 56, 56, 56, 56, -101 56, 56, 56, 56, 56, 56, -101
}, },
...@@ -1049,20 +1049,20 @@ static yyconst short yy_nxt[][37] = ...@@ -1049,20 +1049,20 @@ static yyconst short yy_nxt[][37] =
-102, -102, -102, 56, -102, -102, 56, 56, 56, 56, -102, -102, -102, 56, -102, -102, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 122, 56, -102 56, 56, 56, 56, 121, 56, -102
}, },
{ {
11, -103, -103, -103, -103, -103, -103, -103, -103, -103, 11, -103, -103, -103, -103, -103, -103, -103, -103, -103,
-103, -103, -103, 56, -103, -103, 56, 56, 56, 56, -103, -103, -103, 56, -103, -103, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 123, 56, 56, 56, 56, -103 56, 122, 56, 56, 56, 56, -103
}, },
{ {
11, -104, -104, -104, -104, -104, -104, -104, -104, -104, 11, -104, -104, -104, -104, -104, -104, -104, -104, -104,
-104, -104, -104, 56, -104, -104, 56, 56, 56, 56, -104, -104, -104, 56, -104, -104, 56, 56, 56, 56,
56, 56, 56, 56, 124, 56, 56, 56, 56, 56, 56, 56, 56, 56, 123, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -104 56, 56, 56, 56, 56, 56, -104
}, },
...@@ -1071,35 +1071,35 @@ static yyconst short yy_nxt[][37] = ...@@ -1071,35 +1071,35 @@ static yyconst short yy_nxt[][37] =
11, -105, -105, -105, -105, -105, -105, -105, -105, -105, 11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-105, -105, -105, 56, -105, -105, 56, 56, 56, 56, -105, -105, -105, 56, -105, -105, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 125, 56, 56, 56, -105 56, 56, 124, 56, 56, 56, -105
}, },
{ {
11, -106, 106, 80, -106, -106, -106, -106, -106, -106, 11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-106, -106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 84, 84, 84, -106, -106, 84, 84, 84, 84,
-106, -106, -106, -106, -106, -106, -106, -106, -106, -106, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
-106, -106, -106, -106, -106, -106, -106 84, 84, 84, 84, 84, 84, -106
}, },
{ {
11, -107, -107, -107, -107, -107, -107, -107, -107, -107, 11, -107, -107, -107, -107, -107, -107, -107, -107, -107,
-107, 84, 84, 84, -107, -107, 84, 84, 84, 84, -107, -107, -107, 56, -107, -107, 56, 56, 56, 56,
84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 125, 56, 56, 56, 56, 56, 56, 56, 56, 56,
84, 84, 84, 84, 84, 84, -107 56, 56, 56, 56, 56, 56, -107
}, },
{ {
11, -108, -108, -108, -108, -108, -108, -108, -108, -108, 11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-108, -108, -108, 56, -108, -108, 56, 56, 56, 56, -108, -108, -108, 56, -108, -108, 56, 56, 126, 56,
126, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -108 56, 56, 56, 56, 56, 56, -108
}, },
{ {
11, -109, -109, -109, -109, -109, -109, -109, -109, -109, 11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
-109, -109, -109, 56, -109, -109, 56, 56, 127, 56, -109, -109, -109, 56, -109, -109, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 127, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -109 56, 56, 56, 56, 56, 56, -109
}, },
...@@ -1107,36 +1107,36 @@ static yyconst short yy_nxt[][37] = ...@@ -1107,36 +1107,36 @@ static yyconst short yy_nxt[][37] =
{ {
11, -110, -110, -110, -110, -110, -110, -110, -110, -110, 11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-110, -110, -110, 56, -110, -110, 56, 56, 56, 56, -110, -110, -110, 56, -110, -110, 56, 56, 56, 56,
128, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 128, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -110 56, 56, 56, 56, 56, 56, -110
}, },
{ {
11, -111, -111, -111, -111, -111, -111, -111, -111, -111, 11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-111, -111, -111, 56, -111, -111, 56, 56, 56, 56, -111, -111, -111, 56, -111, -111, 56, 56, 56, 56,
56, 56, 56, 56, 129, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -111 56, 56, 56, 56, 129, 56, -111
}, },
{ {
11, -112, -112, -112, -112, -112, -112, -112, -112, -112, 11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-112, -112, -112, 56, -112, -112, 56, 56, 56, 56, -112, -112, -112, 56, -112, -112, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 130, 56, 56,
56, 56, 56, 56, 130, 56, -112 56, 56, 56, 56, 56, 56, -112
}, },
{ {
11, -113, -113, -113, -113, -113, -113, -113, -113, -113, 11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-113, -113, -113, 56, -113, -113, 56, 56, 56, 56, -113, -113, -113, 56, -113, -113, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 131, 56, 56, 56, 56, 56, 131, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -113 56, 56, 56, 56, 56, 56, -113
}, },
{ {
11, -114, -114, -114, -114, -114, -114, -114, -114, -114, 11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-114, -114, -114, 56, -114, -114, 56, 56, 56, 56, -114, -114, -114, 56, -114, -114, 56, 56, 56, 56,
56, 56, 56, 132, 56, 56, 56, 56, 56, 56, 56, 132, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -114 56, 56, 56, 56, 56, 56, -114
}, },
...@@ -1144,14 +1144,14 @@ static yyconst short yy_nxt[][37] = ...@@ -1144,14 +1144,14 @@ static yyconst short yy_nxt[][37] =
{ {
11, -115, -115, -115, -115, -115, -115, -115, -115, -115, 11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-115, -115, -115, 56, -115, -115, 56, 56, 56, 56, -115, -115, -115, 56, -115, -115, 56, 56, 56, 56,
56, 133, 56, 56, 56, 56, 56, 56, 56, 56, 133, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -115 56, 56, 56, 56, 56, 56, -115
}, },
{ {
11, -116, -116, -116, -116, -116, -116, -116, -116, -116, 11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-116, -116, -116, 56, -116, -116, 56, 56, 56, 56, -116, -116, -116, 56, -116, -116, 56, 56, 56, 56,
134, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -116 56, 56, 56, 56, 56, 56, -116
}, },
...@@ -1159,21 +1159,21 @@ static yyconst short yy_nxt[][37] = ...@@ -1159,21 +1159,21 @@ static yyconst short yy_nxt[][37] =
11, -117, -117, -117, -117, -117, -117, -117, -117, -117, 11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-117, -117, -117, 56, -117, -117, 56, 56, 56, 56, -117, -117, -117, 56, -117, -117, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 134, 56, 56, 56,
56, 56, 56, 56, 56, 56, -117 56, 56, 56, 56, 56, 56, -117
}, },
{ {
11, -118, -118, -118, -118, -118, -118, -118, -118, -118, 11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-118, -118, -118, 56, -118, -118, 56, 56, 56, 56, -118, -118, -118, 56, -118, -118, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 135, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -118 56, 56, 56, 56, 56, 56, -118
}, },
{ {
11, -119, -119, -119, -119, -119, -119, -119, -119, -119, 11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-119, -119, -119, 56, -119, -119, 56, 56, 56, 56, -119, -119, -119, 56, -119, -119, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 135, 56,
56, 56, 56, 56, 56, 56, -119 56, 56, 56, 56, 56, 56, -119
}, },
...@@ -1181,51 +1181,51 @@ static yyconst short yy_nxt[][37] = ...@@ -1181,51 +1181,51 @@ static yyconst short yy_nxt[][37] =
{ {
11, -120, -120, -120, -120, -120, -120, -120, -120, -120, 11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-120, -120, -120, 56, -120, -120, 56, 56, 56, 56, -120, -120, -120, 56, -120, -120, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 136, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 136,
56, 56, 56, 56, 56, 56, -120 56, 56, 56, 56, 56, 56, -120
}, },
{ {
11, -121, -121, -121, -121, -121, -121, -121, -121, -121, 11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-121, -121, -121, 56, -121, -121, 56, 56, 56, 56, -121, -121, -121, 56, -121, -121, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 137, 56, 56, 56, 56, 137, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -121 56, 56, 56, 56, 56, 56, -121
}, },
{ {
11, -122, -122, -122, -122, -122, -122, -122, -122, -122, 11, -122, -122, -122, -122, -122, -122, -122, -122, -122,
-122, -122, -122, 56, -122, -122, 56, 56, 56, 56, -122, -122, -122, 56, -122, -122, 56, 56, 138, 56,
56, 56, 56, 56, 138, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -122 56, 56, 56, 56, 56, 56, -122
}, },
{ {
11, -123, -123, -123, -123, -123, -123, -123, -123, -123, 11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-123, -123, -123, 56, -123, -123, 56, 56, 139, 56, -123, -123, -123, 56, -123, -123, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 139, 56, 56,
56, 56, 56, 56, 56, 56, -123 56, 56, 56, 56, 56, 56, -123
}, },
{ {
11, -124, -124, -124, -124, -124, -124, -124, -124, -124, 11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-124, -124, -124, 56, -124, -124, 56, 56, 56, 56, -124, -124, -124, 56, -124, -124, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 140, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -124 56, 56, 56, 140, 56, 56, -124
}, },
{ {
11, -125, -125, -125, -125, -125, -125, -125, -125, -125, 11, -125, -125, -125, -125, -125, -125, -125, -125, -125,
-125, -125, -125, 56, -125, -125, 56, 56, 56, 56, -125, -125, -125, 56, -125, -125, 141, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 141, 56, 56, -125 56, 56, 56, 56, 56, 56, -125
}, },
{ {
11, -126, -126, -126, -126, -126, -126, -126, -126, -126, 11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-126, -126, -126, 56, -126, -126, 142, 56, 56, 56, -126, -126, -126, 56, -126, -126, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 142, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -126 56, 56, 56, 56, 56, 56, -126
}, },
...@@ -1233,36 +1233,36 @@ static yyconst short yy_nxt[][37] = ...@@ -1233,36 +1233,36 @@ static yyconst short yy_nxt[][37] =
11, -127, -127, -127, -127, -127, -127, -127, -127, -127, 11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-127, -127, -127, 56, -127, -127, 56, 56, 56, 56, -127, -127, -127, 56, -127, -127, 56, 56, 56, 56,
143, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 143, 56, 56,
56, 56, 56, 56, 56, 56, -127 56, 56, 56, 56, 56, 56, -127
}, },
{ {
11, -128, -128, -128, -128, -128, -128, -128, -128, -128, 11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-128, -128, -128, 56, -128, -128, 56, 56, 56, 56, -128, -128, -128, 56, -128, -128, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 144, 56, 56, 56, 56, 144, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -128 56, 56, 56, 56, 56, 56, -128
}, },
{ {
11, -129, -129, -129, -129, -129, -129, -129, -129, -129, 11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
-129, -129, -129, 56, -129, -129, 56, 56, 56, 56, -129, -129, -129, 56, -129, -129, 56, 56, 56, 56,
56, 56, 145, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 145, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -129 56, 56, 56, 56, 56, 56, -129
}, },
{ {
11, -130, -130, -130, -130, -130, -130, -130, -130, -130, 11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-130, -130, -130, 56, -130, -130, 56, 56, 56, 56, -130, -130, -130, 56, -130, -130, 56, 56, 56, 146,
56, 56, 56, 56, 56, 146, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -130 56, 56, 56, 56, 56, 56, -130
}, },
{ {
11, -131, -131, -131, -131, -131, -131, -131, -131, -131, 11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-131, -131, -131, 56, -131, -131, 56, 56, 56, 147, -131, -131, -131, 56, -131, -131, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 147, 56,
56, 56, 56, 56, 56, 56, -131 56, 56, 56, 56, 56, 56, -131
}, },
...@@ -1270,21 +1270,21 @@ static yyconst short yy_nxt[][37] = ...@@ -1270,21 +1270,21 @@ static yyconst short yy_nxt[][37] =
11, -132, -132, -132, -132, -132, -132, -132, -132, -132, 11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-132, -132, -132, 56, -132, -132, 56, 56, 56, 56, -132, -132, -132, 56, -132, -132, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 148, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -132 56, 56, 56, 56, 56, 56, -132
}, },
{ {
11, -133, -133, -133, -133, -133, -133, -133, -133, -133, 11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-133, -133, -133, 56, -133, -133, 56, 56, 56, 56, -133, -133, -133, 56, -133, -133, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 148, 56, 56,
56, 56, 56, 56, 56, 56, -133 56, 56, 56, 56, 56, 56, -133
}, },
{ {
11, -134, -134, -134, -134, -134, -134, -134, -134, -134, 11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-134, -134, -134, 56, -134, -134, 56, 56, 56, 56, -134, -134, -134, 56, -134, -134, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 149, 56, 56, 149, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -134 56, 56, 56, 56, 56, 56, -134
}, },
...@@ -1292,15 +1292,15 @@ static yyconst short yy_nxt[][37] = ...@@ -1292,15 +1292,15 @@ static yyconst short yy_nxt[][37] =
{ {
11, -135, -135, -135, -135, -135, -135, -135, -135, -135, 11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-135, -135, -135, 56, -135, -135, 56, 56, 56, 56, -135, -135, -135, 56, -135, -135, 56, 56, 56, 56,
150, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 150, 56, 56,
56, 56, 56, 56, 56, 56, -135 56, 56, 56, 56, 56, 56, -135
}, },
{ {
11, -136, -136, -136, -136, -136, -136, -136, -136, -136, 11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-136, -136, -136, 56, -136, -136, 56, 56, 56, 56, -136, -136, -136, 56, -136, -136, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 151, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -136 56, 56, 56, 151, 56, 56, -136
}, },
{ {
...@@ -1308,35 +1308,35 @@ static yyconst short yy_nxt[][37] = ...@@ -1308,35 +1308,35 @@ static yyconst short yy_nxt[][37] =
-137, -137, -137, 56, -137, -137, 56, 56, 56, 56, -137, -137, -137, 56, -137, -137, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 152, 56, 56, -137 56, 152, 56, 56, 56, 56, -137
}, },
{ {
11, -138, -138, -138, -138, -138, -138, -138, -138, -138, 11, -138, -138, -138, -138, -138, -138, -138, -138, -138,
-138, -138, -138, 56, -138, -138, 56, 56, 56, 56, -138, -138, -138, 56, -138, -138, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 153, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 153, 56, 56, 56, 56, -138 56, 56, 56, 56, 56, 56, -138
}, },
{ {
11, -139, -139, -139, -139, -139, -139, -139, -139, -139, 11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-139, -139, -139, 56, -139, -139, 56, 56, 56, 56, -139, -139, -139, 56, -139, -139, 56, 56, 56, 56,
154, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 154, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -139 56, 56, 56, 56, 56, 56, -139
}, },
{ {
11, -140, -140, -140, -140, -140, -140, -140, -140, -140, 11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-140, -140, -140, 56, -140, -140, 56, 56, 56, 56, -140, -140, -140, 56, -140, -140, 155, 56, 56, 56,
56, 56, 155, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -140 56, 56, 56, 56, 56, 56, -140
}, },
{ {
11, -141, -141, -141, -141, -141, -141, -141, -141, -141, 11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-141, -141, -141, 56, -141, -141, 156, 56, 56, 56, -141, -141, -141, 56, -141, -141, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 156, 56, 56,
56, 56, 56, 56, 56, 56, -141 56, 56, 56, 56, 56, 56, -141
}, },
...@@ -1344,7 +1344,7 @@ static yyconst short yy_nxt[][37] = ...@@ -1344,7 +1344,7 @@ static yyconst short yy_nxt[][37] =
11, -142, -142, -142, -142, -142, -142, -142, -142, -142, 11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-142, -142, -142, 56, -142, -142, 56, 56, 56, 56, -142, -142, -142, 56, -142, -142, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 157, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -142 56, 56, 56, 56, 56, 56, -142
}, },
...@@ -1352,14 +1352,14 @@ static yyconst short yy_nxt[][37] = ...@@ -1352,14 +1352,14 @@ static yyconst short yy_nxt[][37] =
11, -143, -143, -143, -143, -143, -143, -143, -143, -143, 11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-143, -143, -143, 56, -143, -143, 56, 56, 56, 56, -143, -143, -143, 56, -143, -143, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -143 56, 56, 56, 157, 56, 56, -143
}, },
{ {
11, -144, -144, -144, -144, -144, -144, -144, -144, -144, 11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-144, -144, -144, 56, -144, -144, 56, 56, 56, 56, -144, -144, -144, 56, -144, -144, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 158, 56, 56, -144 56, 56, 56, 56, 56, 56, -144
}, },
...@@ -1367,49 +1367,49 @@ static yyconst short yy_nxt[][37] = ...@@ -1367,49 +1367,49 @@ static yyconst short yy_nxt[][37] =
11, -145, -145, -145, -145, -145, -145, -145, -145, -145, 11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-145, -145, -145, 56, -145, -145, 56, 56, 56, 56, -145, -145, -145, 56, -145, -145, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -145 56, 56, 56, 158, 56, 56, -145
}, },
{ {
11, -146, -146, -146, -146, -146, -146, -146, -146, -146, 11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-146, -146, -146, 56, -146, -146, 56, 56, 56, 56, -146, -146, -146, 56, -146, -146, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 159, 56, 56, -146 56, 56, 159, 56, 56, 56, -146
}, },
{ {
11, -147, -147, -147, -147, -147, -147, -147, -147, -147, 11, -147, -147, -147, -147, -147, -147, -147, -147, -147,
-147, -147, -147, 56, -147, -147, 56, 56, 56, 56, -147, -147, -147, 56, -147, -147, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 160, 56, 56, 56, 56, 56,
56, 56, 160, 56, 56, 56, -147 56, 56, 56, 56, 56, 56, -147
}, },
{ {
11, -148, -148, -148, -148, -148, -148, -148, -148, -148, 11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-148, -148, -148, 56, -148, -148, 56, 56, 56, 56, -148, -148, -148, 56, -148, -148, 56, 56, 56, 56,
56, 56, 56, 56, 161, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -148 56, 56, 56, 56, 161, 56, -148
}, },
{ {
11, -149, -149, -149, -149, -149, -149, -149, -149, -149, 11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-149, -149, -149, 56, -149, -149, 56, 56, 56, 56, -149, -149, -149, 56, -149, -149, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 162, 56, 56,
56, 56, 56, 56, 162, 56, -149 56, 56, 56, 56, 56, 56, -149
}, },
{ {
11, -150, -150, -150, -150, -150, -150, -150, -150, -150, 11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-150, -150, -150, 56, -150, -150, 56, 56, 56, 56, -150, -150, -150, 56, -150, -150, 163, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 163, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -150 56, 56, 56, 56, 56, 56, -150
}, },
{ {
11, -151, -151, -151, -151, -151, -151, -151, -151, -151, 11, -151, -151, -151, -151, -151, -151, -151, -151, -151,
-151, -151, -151, 56, -151, -151, 164, 56, 56, 56, -151, -151, -151, 56, -151, -151, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -151 56, 56, 56, 56, 56, 56, -151
}, },
...@@ -1418,14 +1418,14 @@ static yyconst short yy_nxt[][37] = ...@@ -1418,14 +1418,14 @@ static yyconst short yy_nxt[][37] =
11, -152, -152, -152, -152, -152, -152, -152, -152, -152, 11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-152, -152, -152, 56, -152, -152, 56, 56, 56, 56, -152, -152, -152, 56, -152, -152, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 164, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -152 56, 56, 56, 56, 56, 56, -152
}, },
{ {
11, -153, -153, -153, -153, -153, -153, -153, -153, -153, 11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-153, -153, -153, 56, -153, -153, 56, 56, 56, 56, -153, -153, -153, 56, -153, -153, 56, 56, 56, 56,
165, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -153 56, 56, 56, 56, 56, 56, -153
}, },
...@@ -1441,14 +1441,14 @@ static yyconst short yy_nxt[][37] = ...@@ -1441,14 +1441,14 @@ static yyconst short yy_nxt[][37] =
11, -155, -155, -155, -155, -155, -155, -155, -155, -155, 11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-155, -155, -155, 56, -155, -155, 56, 56, 56, 56, -155, -155, -155, 56, -155, -155, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -155 56, 56, 56, 165, 56, 56, -155
}, },
{ {
11, -156, -156, -156, -156, -156, -156, -156, -156, -156, 11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-156, -156, -156, 56, -156, -156, 56, 56, 56, 56, -156, -156, -156, 56, -156, -156, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 166, 56, 56, -156 56, 56, 56, 56, 56, 56, -156
}, },
{ {
...@@ -1476,14 +1476,14 @@ static yyconst short yy_nxt[][37] = ...@@ -1476,14 +1476,14 @@ static yyconst short yy_nxt[][37] =
{ {
11, -160, -160, -160, -160, -160, -160, -160, -160, -160, 11, -160, -160, -160, -160, -160, -160, -160, -160, -160,
-160, -160, -160, 56, -160, -160, 56, 56, 56, 56, -160, -160, -160, 56, -160, -160, 56, 56, 166, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -160 56, 56, 56, 56, 56, 56, -160
}, },
{ {
11, -161, -161, -161, -161, -161, -161, -161, -161, -161, 11, -161, -161, -161, -161, -161, -161, -161, -161, -161,
-161, -161, -161, 56, -161, -161, 56, 56, 167, 56, -161, -161, -161, 56, -161, -161, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -161 56, 56, 56, 56, 56, 56, -161
}, },
...@@ -1493,29 +1493,29 @@ static yyconst short yy_nxt[][37] = ...@@ -1493,29 +1493,29 @@ static yyconst short yy_nxt[][37] =
-162, -162, -162, 56, -162, -162, 56, 56, 56, 56, -162, -162, -162, 56, -162, -162, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -162 56, 56, 56, 56, 167, 56, -162
}, },
{ {
11, -163, -163, -163, -163, -163, -163, -163, -163, -163, 11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-163, -163, -163, 56, -163, -163, 56, 56, 56, 56, -163, -163, -163, 56, -163, -163, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 168, 56, 56, 56, 56,
56, 56, 56, 56, 168, 56, -163 56, 56, 56, 56, 56, 56, -163
}, },
{ {
11, -164, -164, -164, -164, -164, -164, -164, -164, -164, 11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-164, -164, -164, 56, -164, -164, 56, 56, 56, 56, -164, -164, -164, 56, -164, -164, 56, 56, 56, 56,
56, 56, 56, 56, 56, 169, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -164 56, 56, 169, 56, 56, 56, -164
}, },
{ {
11, -165, -165, -165, -165, -165, -165, -165, -165, -165, 11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-165, -165, -165, 56, -165, -165, 56, 56, 56, 56, -165, -165, -165, 56, -165, -165, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 170, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 170, 56, 56, 56, -165 56, 56, 56, 56, 56, 56, -165
}, },
{ {
...@@ -1529,7 +1529,7 @@ static yyconst short yy_nxt[][37] = ...@@ -1529,7 +1529,7 @@ static yyconst short yy_nxt[][37] =
11, -167, -167, -167, -167, -167, -167, -167, -167, -167, 11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-167, -167, -167, 56, -167, -167, 56, 56, 56, 56, -167, -167, -167, 56, -167, -167, 56, 56, 56, 56,
172, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -167 56, 56, 56, 56, 56, 56, -167
}, },
...@@ -1562,14 +1562,6 @@ static yyconst short yy_nxt[][37] = ...@@ -1562,14 +1562,6 @@ static yyconst short yy_nxt[][37] =
56, 56, 56, 56, 56, 56, -171 56, 56, 56, 56, 56, 56, -171
}, },
{
11, -172, -172, -172, -172, -172, -172, -172, -172, -172,
-172, -172, -172, 56, -172, -172, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -172
},
} ; } ;
...@@ -1590,27 +1582,27 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); ...@@ -1590,27 +1582,27 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
#define YY_NUM_RULES 55 #define YY_NUM_RULES 55
#define YY_END_OF_BUFFER 56 #define YY_END_OF_BUFFER 56
static yyconst short int yy_accept[173] = static yyconst short int yy_accept[172] =
{ 0, { 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
56, 5, 4, 3, 2, 29, 30, 28, 28, 28, 56, 5, 4, 3, 2, 29, 30, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
54, 51, 53, 45, 50, 46, 48, 44, 41, 35, 54, 51, 53, 46, 50, 49, 48, 44, 41, 35,
40, 44, 33, 34, 43, 43, 36, 43, 43, 44, 40, 44, 33, 34, 43, 43, 36, 43, 43, 44,
4, 3, 2, 2, 1, 28, 28, 28, 28, 28, 4, 3, 2, 2, 1, 28, 28, 28, 28, 28,
28, 28, 15, 28, 28, 28, 28, 28, 28, 28, 28, 28, 15, 28, 28, 28, 28, 28, 28, 28,
28, 28, 54, 51, 53, 52, 45, 49, 48, 47, 28, 28, 54, 51, 53, 52, 46, 45, 48, 47,
37, 31, 43, 43, 38, 39, 32, 28, 28, 28, 37, 31, 43, 43, 38, 39, 32, 28, 28, 28,
28, 28, 28, 28, 28, 26, 25, 28, 28, 28, 28, 28, 28, 28, 28, 26, 25, 28, 28, 28,
28, 28, 28, 28, 28, 48, 42, 23, 28, 28, 28, 28, 28, 28, 28, 42, 23, 28, 28, 28,
28, 28, 28, 28, 28, 28, 14, 28, 7, 28, 28, 28, 28, 28, 28, 14, 28, 7, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 16, 28, 28, 28, 28, 28, 28, 28, 28, 16, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 10, 28, 13, 28, 28, 28, 28, 28, 28, 10, 28, 13, 28, 28, 28, 28, 28, 28,
28, 21, 28, 9, 27, 28, 24, 12, 20, 17, 21, 28, 9, 27, 28, 24, 12, 20, 17, 28,
28, 8, 28, 28, 28, 28, 28, 6, 19, 18, 8, 28, 28, 28, 28, 28, 6, 19, 18, 22,
22, 11 11
} ; } ;
static yyconst int yy_ec[256] = static yyconst int yy_ec[256] =
...@@ -1655,6 +1647,7 @@ static yyconst int yy_ec[256] = ...@@ -1655,6 +1647,7 @@ static yyconst int yy_ec[256] =
char *yytext; char *yytext;
#line 1 "zconf.l" #line 1 "zconf.l"
#define INITIAL 0 #define INITIAL 0
#define YY_NEVER_INTERACTIVE 1
#define COMMAND 1 #define COMMAND 1
#define HELP 2 #define HELP 2
#define STRING 3 #define STRING 3
...@@ -1722,7 +1715,7 @@ void alloc_string(const char *str, int size) ...@@ -1722,7 +1715,7 @@ void alloc_string(const char *str, int size)
memcpy(text, str, size); memcpy(text, str, size);
text[size] = 0; text[size] = 0;
} }
#line 1726 "lex.zconf.c" #line 1719 "lex.zconf.c"
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
...@@ -1874,7 +1867,7 @@ YY_DECL ...@@ -1874,7 +1867,7 @@ YY_DECL
int str = 0; int str = 0;
int ts, i; int ts, i;
#line 1878 "lex.zconf.c" #line 1871 "lex.zconf.c"
if ( yy_init ) if ( yy_init )
{ {
...@@ -1957,125 +1950,123 @@ YY_RULE_SETUP ...@@ -1957,125 +1950,123 @@ YY_RULE_SETUP
#line 84 "zconf.l" #line 84 "zconf.l"
{ {
unput(yytext[0]); unput(yytext[0]);
//printf("new config: ");
//symbol_end(NULL);
BEGIN(COMMAND); BEGIN(COMMAND);
} }
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 93 "zconf.l" #line 91 "zconf.l"
BEGIN(PARAM); return T_MAINMENU; BEGIN(PARAM); return T_MAINMENU;
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 94 "zconf.l" #line 92 "zconf.l"
BEGIN(PARAM); return T_MENU; BEGIN(PARAM); return T_MENU;
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 95 "zconf.l" #line 93 "zconf.l"
BEGIN(PARAM); return T_ENDMENU; BEGIN(PARAM); return T_ENDMENU;
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 96 "zconf.l" #line 94 "zconf.l"
BEGIN(PARAM); return T_SOURCE; BEGIN(PARAM); return T_SOURCE;
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 97 "zconf.l" #line 95 "zconf.l"
BEGIN(PARAM); return T_CHOICE; BEGIN(PARAM); return T_CHOICE;
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 98 "zconf.l" #line 96 "zconf.l"
BEGIN(PARAM); return T_ENDCHOICE; BEGIN(PARAM); return T_ENDCHOICE;
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 99 "zconf.l" #line 97 "zconf.l"
BEGIN(PARAM); return T_COMMENT; BEGIN(PARAM); return T_COMMENT;
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 100 "zconf.l" #line 98 "zconf.l"
BEGIN(PARAM); return T_CONFIG; BEGIN(PARAM); return T_CONFIG;
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 101 "zconf.l" #line 99 "zconf.l"
BEGIN(PARAM); return T_HELP; BEGIN(PARAM); return T_HELP;
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 102 "zconf.l" #line 100 "zconf.l"
BEGIN(PARAM); return T_IF; BEGIN(PARAM); return T_IF;
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 103 "zconf.l" #line 101 "zconf.l"
BEGIN(PARAM); return T_ENDIF; BEGIN(PARAM); return T_ENDIF;
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 104 "zconf.l" #line 102 "zconf.l"
BEGIN(PARAM); return T_DEPENDS; BEGIN(PARAM); return T_DEPENDS;
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 105 "zconf.l" #line 103 "zconf.l"
BEGIN(PARAM); return T_REQUIRES; BEGIN(PARAM); return T_REQUIRES;
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 106 "zconf.l" #line 104 "zconf.l"
BEGIN(PARAM); return T_OPTIONAL; BEGIN(PARAM); return T_OPTIONAL;
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 107 "zconf.l" #line 105 "zconf.l"
BEGIN(PARAM); return T_DEFAULT; BEGIN(PARAM); return T_DEFAULT;
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 108 "zconf.l" #line 106 "zconf.l"
BEGIN(PARAM); return T_PROMPT; BEGIN(PARAM); return T_PROMPT;
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 109 "zconf.l" #line 107 "zconf.l"
BEGIN(PARAM); return T_TRISTATE; BEGIN(PARAM); return T_TRISTATE;
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 110 "zconf.l" #line 108 "zconf.l"
BEGIN(PARAM); return T_BOOLEAN; BEGIN(PARAM); return T_BOOLEAN;
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 111 "zconf.l" #line 109 "zconf.l"
BEGIN(PARAM); return T_BOOLEAN; BEGIN(PARAM); return T_BOOLEAN;
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 112 "zconf.l" #line 110 "zconf.l"
BEGIN(PARAM); return T_INT; BEGIN(PARAM); return T_INT;
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 113 "zconf.l" #line 111 "zconf.l"
BEGIN(PARAM); return T_HEX; BEGIN(PARAM); return T_HEX;
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 114 "zconf.l" #line 112 "zconf.l"
BEGIN(PARAM); return T_STRING; BEGIN(PARAM); return T_STRING;
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 115 "zconf.l" #line 113 "zconf.l"
{ {
alloc_string(yytext, yyleng); alloc_string(yytext, yyleng);
zconflval.string = text; zconflval.string = text;
...@@ -2084,64 +2075,64 @@ YY_RULE_SETUP ...@@ -2084,64 +2075,64 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 120 "zconf.l" #line 118 "zconf.l"
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 121 "zconf.l" #line 119 "zconf.l"
current_file->lineno++; BEGIN(INITIAL); current_file->lineno++; BEGIN(INITIAL);
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 125 "zconf.l" #line 123 "zconf.l"
return T_AND; return T_AND;
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 126 "zconf.l" #line 124 "zconf.l"
return T_OR; return T_OR;
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 127 "zconf.l" #line 125 "zconf.l"
return T_OPEN_PAREN; return T_OPEN_PAREN;
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 128 "zconf.l" #line 126 "zconf.l"
return T_CLOSE_PAREN; return T_CLOSE_PAREN;
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 129 "zconf.l" #line 127 "zconf.l"
return T_NOT; return T_NOT;
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 130 "zconf.l" #line 128 "zconf.l"
return T_EQUAL; return T_EQUAL;
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 131 "zconf.l" #line 129 "zconf.l"
return T_UNEQUAL; return T_UNEQUAL;
YY_BREAK YY_BREAK
case 38: case 38:
YY_RULE_SETUP YY_RULE_SETUP
#line 132 "zconf.l" #line 130 "zconf.l"
return T_IF; return T_IF;
YY_BREAK YY_BREAK
case 39: case 39:
YY_RULE_SETUP YY_RULE_SETUP
#line 133 "zconf.l" #line 131 "zconf.l"
return T_ON; return T_ON;
YY_BREAK YY_BREAK
case 40: case 40:
YY_RULE_SETUP YY_RULE_SETUP
#line 134 "zconf.l" #line 132 "zconf.l"
{ {
str = yytext[0]; str = yytext[0];
new_string(); new_string();
...@@ -2150,17 +2141,17 @@ YY_RULE_SETUP ...@@ -2150,17 +2141,17 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 41: case 41:
YY_RULE_SETUP YY_RULE_SETUP
#line 139 "zconf.l" #line 137 "zconf.l"
BEGIN(INITIAL); current_file->lineno++; return T_EOL; BEGIN(INITIAL); current_file->lineno++; return T_EOL;
YY_BREAK YY_BREAK
case 42: case 42:
YY_RULE_SETUP YY_RULE_SETUP
#line 140 "zconf.l" #line 138 "zconf.l"
/* ignore */ /* ignore */
YY_BREAK YY_BREAK
case 43: case 43:
YY_RULE_SETUP YY_RULE_SETUP
#line 141 "zconf.l" #line 139 "zconf.l"
{ {
alloc_string(yytext, yyleng); alloc_string(yytext, yyleng);
zconflval.string = text; zconflval.string = text;
...@@ -2169,66 +2160,87 @@ YY_RULE_SETUP ...@@ -2169,66 +2160,87 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 44: case 44:
YY_RULE_SETUP YY_RULE_SETUP
#line 146 "zconf.l" #line 144 "zconf.l"
YY_BREAK YY_BREAK
case YY_STATE_EOF(PARAM):
#line 145 "zconf.l"
{
BEGIN(INITIAL);
}
YY_BREAK
case 45: case 45:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP YY_RULE_SETUP
#line 150 "zconf.l" #line 151 "zconf.l"
{ {
append_string(yytext, yyleng); append_string(yytext, yyleng);
zconflval.string = text;
return T_STRING;
} }
YY_BREAK YY_BREAK
case 46: case 46:
YY_RULE_SETUP YY_RULE_SETUP
#line 153 "zconf.l" #line 156 "zconf.l"
{ {
if (str == yytext[0]) { append_string(yytext, yyleng);
BEGIN(PARAM);
zconflval.string = text;
//printf("s:%s\n", text);
return T_STRING;
} else
append_string(yytext, 1);
} }
YY_BREAK YY_BREAK
case 47: case 47:
*yy_cp = yy_hold_char; /* undo effects of setting up yytext */
yy_c_buf_p = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP YY_RULE_SETUP
#line 162 "zconf.l" #line 159 "zconf.l"
append_string(yytext+yyleng-1, 1); current_file->lineno++; {
append_string(yytext+1, yyleng);
zconflval.string = text;
return T_STRING;
}
YY_BREAK YY_BREAK
case 48: case 48:
YY_RULE_SETUP YY_RULE_SETUP
#line 163 "zconf.l" #line 164 "zconf.l"
append_string(yytext+1, yyleng-1); {
append_string(yytext+1, yyleng);
}
YY_BREAK YY_BREAK
case 49: case 49:
YY_RULE_SETUP YY_RULE_SETUP
#line 164 "zconf.l" #line 167 "zconf.l"
append_string(yytext+1, 1); {
if (str == yytext[0]) {
BEGIN(PARAM);
zconflval.string = text;
return T_STRING;
} else
append_string(yytext, 1);
}
YY_BREAK YY_BREAK
case 50: case 50:
YY_RULE_SETUP YY_RULE_SETUP
#line 165 "zconf.l" #line 175 "zconf.l"
{ {
//printf(":%d: open string!\n", current_file->lineno+1); printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
exit(0); BEGIN(INITIAL);
return T_EOL;
} }
YY_BREAK YY_BREAK
case YY_STATE_EOF(STRING): case YY_STATE_EOF(STRING):
#line 169 "zconf.l" #line 180 "zconf.l"
{ {
//printf(":%d: open string!\n", current_file->lineno+1); BEGIN(INITIAL);
exit(0);
} }
YY_BREAK YY_BREAK
case 51: case 51:
YY_RULE_SETUP YY_RULE_SETUP
#line 176 "zconf.l" #line 186 "zconf.l"
{ {
ts = 0; ts = 0;
for (i = 0; i < yyleng; i++) { for (i = 0; i < yyleng; i++) {
...@@ -2258,7 +2270,7 @@ case 52: ...@@ -2258,7 +2270,7 @@ case 52:
yy_c_buf_p = yy_cp = yy_bp + 1; yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP YY_RULE_SETUP
#line 199 "zconf.l" #line 209 "zconf.l"
{ {
current_file->lineno++; current_file->lineno++;
zconf_endhelp(); zconf_endhelp();
...@@ -2267,7 +2279,7 @@ YY_RULE_SETUP ...@@ -2267,7 +2279,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 53: case 53:
YY_RULE_SETUP YY_RULE_SETUP
#line 204 "zconf.l" #line 214 "zconf.l"
{ {
current_file->lineno++; current_file->lineno++;
append_string("\n", 1); append_string("\n", 1);
...@@ -2275,7 +2287,7 @@ YY_RULE_SETUP ...@@ -2275,7 +2287,7 @@ YY_RULE_SETUP
YY_BREAK YY_BREAK
case 54: case 54:
YY_RULE_SETUP YY_RULE_SETUP
#line 208 "zconf.l" #line 218 "zconf.l"
{ {
append_string(yytext, yyleng); append_string(yytext, yyleng);
if (!first_ts) if (!first_ts)
...@@ -2283,7 +2295,7 @@ YY_RULE_SETUP ...@@ -2283,7 +2295,7 @@ YY_RULE_SETUP
} }
YY_BREAK YY_BREAK
case YY_STATE_EOF(HELP): case YY_STATE_EOF(HELP):
#line 213 "zconf.l" #line 223 "zconf.l"
{ {
zconf_endhelp(); zconf_endhelp();
return T_HELPTEXT; return T_HELPTEXT;
...@@ -2292,22 +2304,22 @@ case YY_STATE_EOF(HELP): ...@@ -2292,22 +2304,22 @@ case YY_STATE_EOF(HELP):
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(COMMAND): case YY_STATE_EOF(COMMAND):
case YY_STATE_EOF(PARAM): #line 229 "zconf.l"
#line 219 "zconf.l"
{ {
if (current_buf) { if (current_buf) {
zconf_endfile(); zconf_endfile();
return T_EOF; return T_EOF;
} }
fclose(yyin);
yyterminate(); yyterminate();
} }
YY_BREAK YY_BREAK
case 55: case 55:
YY_RULE_SETUP YY_RULE_SETUP
#line 227 "zconf.l" #line 238 "zconf.l"
YY_FATAL_ERROR( "flex scanner jammed" ); YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK YY_BREAK
#line 2311 "lex.zconf.c" #line 2323 "lex.zconf.c"
case YY_END_OF_BUFFER: case YY_END_OF_BUFFER:
{ {
...@@ -3170,7 +3182,7 @@ int main() ...@@ -3170,7 +3182,7 @@ int main()
return 0; return 0;
} }
#endif #endif
#line 227 "zconf.l" #line 238 "zconf.l"
void zconf_starthelp(void) void zconf_starthelp(void)
{ {
...@@ -3192,7 +3204,6 @@ void zconf_initscan(const char *name) ...@@ -3192,7 +3204,6 @@ void zconf_initscan(const char *name)
printf("can't find file %s\n", name); printf("can't find file %s\n", name);
exit(1); exit(1);
} }
//fprintf(stderr, "zconf_initscan: %s\n", name);
current_buf = malloc(sizeof(*current_buf)); current_buf = malloc(sizeof(*current_buf));
memset(current_buf, 0, sizeof(*current_buf)); memset(current_buf, 0, sizeof(*current_buf));
...@@ -3218,8 +3229,6 @@ void zconf_nextfile(const char *name) ...@@ -3218,8 +3229,6 @@ void zconf_nextfile(const char *name)
buf->parent = current_buf; buf->parent = current_buf;
current_buf = buf; current_buf = buf;
//fprintf(stderr, "zconf_nextfile: %s\n", name);
if (file->flags & FILE_BUSY) { if (file->flags & FILE_BUSY) {
printf("recursive scan (%s)?\n", name); printf("recursive scan (%s)?\n", name);
exit(1); exit(1);
...@@ -3244,6 +3253,7 @@ static struct buffer *zconf_endfile(void) ...@@ -3244,6 +3253,7 @@ static struct buffer *zconf_endfile(void)
parent = current_buf->parent; parent = current_buf->parent;
if (parent) { if (parent) {
fclose(yyin);
yy_delete_buffer(YY_CURRENT_BUFFER); yy_delete_buffer(YY_CURRENT_BUFFER);
yy_switch_to_buffer(parent->state); yy_switch_to_buffer(parent->state);
} }
......
/* /*
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
* Released under the terms of the GNU GPL v2.0. * Released under the terms of the GNU GPL v2.0.
*
* Introduced single menu mode (show all sub-menus in one large tree).
* 2002-11-06 Petr Baudis <pasky@ucw.cz>
*/ */
#include <sys/ioctl.h> #include <sys/ioctl.h>
...@@ -12,6 +15,7 @@ ...@@ -12,6 +15,7 @@
#include <stdarg.h> #include <stdarg.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <termios.h>
#include <unistd.h> #include <unistd.h>
#define LKC_DIRECT_LINK #define LKC_DIRECT_LINK
...@@ -80,10 +84,12 @@ static char buf[4096], *bufptr = buf; ...@@ -80,10 +84,12 @@ static char buf[4096], *bufptr = buf;
static char input_buf[4096]; static char input_buf[4096];
static char *args[1024], **argptr = args; static char *args[1024], **argptr = args;
static int indent = 0; static int indent = 0;
static struct termios ios_org;
static int rows, cols; static int rows, cols;
static struct menu *current_menu; static struct menu *current_menu;
static int child_count; static int child_count;
static int do_resize; static int do_resize;
static int single_menu_mode;
static void conf(struct menu *menu); static void conf(struct menu *menu);
static void conf_choice(struct menu *menu); static void conf_choice(struct menu *menu);
...@@ -274,10 +280,20 @@ static void build_conf(struct menu *menu) ...@@ -274,10 +280,20 @@ static void build_conf(struct menu *menu)
case P_MENU: case P_MENU:
child_count++; child_count++;
cprint("m%p", menu); cprint("m%p", menu);
if (menu->parent != &rootmenu)
cprint1(" %*c", indent + 1, ' '); if (single_menu_mode) {
cprint1("%s --->", prompt); cprint1("%s%*c%s",
menu->data ? "-->" : "++>",
indent + 1, ' ', prompt);
} else {
if (menu->parent != &rootmenu)
cprint1(" %*c", indent + 1, ' ');
cprint1("%s --->", prompt);
}
cprint_done(); cprint_done();
if (single_menu_mode && menu->data)
goto conf_childs;
return; return;
default: default:
if (prompt) { if (prompt) {
...@@ -392,6 +408,7 @@ static void conf(struct menu *menu) ...@@ -392,6 +408,7 @@ static void conf(struct menu *menu)
char active_entry[40]; char active_entry[40];
int stat, type, i; int stat, type, i;
unlink("lxdialog.scrltmp");
active_entry[0] = 0; active_entry[0] = 0;
while (1) { while (1) {
cprint_init(); cprint_init();
...@@ -442,7 +459,10 @@ static void conf(struct menu *menu) ...@@ -442,7 +459,10 @@ static void conf(struct menu *menu)
case 0: case 0:
switch (type) { switch (type) {
case 'm': case 'm':
conf(submenu); if (single_menu_mode)
submenu->data = (void *) !submenu->data;
else
conf(submenu);
break; break;
case 't': case 't':
if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes) if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
...@@ -484,6 +504,8 @@ static void conf(struct menu *menu) ...@@ -484,6 +504,8 @@ static void conf(struct menu *menu)
case 6: case 6:
if (type == 't') if (type == 't')
sym_toggle_tristate_value(sym); sym_toggle_tristate_value(sym);
else if (type == 'm')
conf(submenu);
break; break;
} }
} }
...@@ -518,11 +540,19 @@ static void show_helptext(const char *title, const char *text) ...@@ -518,11 +540,19 @@ static void show_helptext(const char *title, const char *text)
static void show_help(struct menu *menu) static void show_help(struct menu *menu)
{ {
const char *help; const char *help;
char *helptext;
struct symbol *sym = menu->sym;
help = menu->sym->help; help = sym->help;
if (!help) if (!help)
help = nohelp_text; help = nohelp_text;
show_helptext(menu_get_prompt(menu), help); if (sym->name) {
helptext = malloc(strlen(sym->name) + strlen(help) + 16);
sprintf(helptext, "CONFIG_%s:\n\n%s", sym->name, help);
show_helptext(menu_get_prompt(menu), helptext);
free(helptext);
} else
show_helptext(menu_get_prompt(menu), help);
} }
static void show_readme(void) static void show_readme(void)
...@@ -679,16 +709,35 @@ static void conf_save(void) ...@@ -679,16 +709,35 @@ static void conf_save(void)
} }
} }
static void conf_cleanup(void)
{
tcsetattr(1, TCSAFLUSH, &ios_org);
unlink(".help.tmp");
unlink("lxdialog.scrltmp");
}
int main(int ac, char **av) int main(int ac, char **av)
{ {
struct symbol *sym;
char *mode;
int stat; int stat;
conf_parse(av[1]); conf_parse(av[1]);
conf_read(NULL); conf_read(NULL);
sprintf(menu_backtitle, "Linux Kernel v%s.%s.%s%s Configuration", sym = sym_lookup("KERNELRELEASE", 0);
getenv("VERSION"), getenv("PATCHLEVEL"), sym_calc_value(sym);
getenv("SUBLEVEL"), getenv("EXTRAVERSION")); sprintf(menu_backtitle, "Linux Kernel v%s Configuration",
sym_get_string_value(sym));
mode = getenv("MENUCONFIG_MODE");
if (mode) {
if (!strcasecmp(mode, "single_menu"))
single_menu_mode = 1;
}
tcgetattr(1, &ios_org);
atexit(conf_cleanup);
init_wsize(); init_wsize();
conf(&rootmenu); conf(&rootmenu);
......
...@@ -290,7 +290,7 @@ int file_write_dep(const char *name) ...@@ -290,7 +290,7 @@ int file_write_dep(const char *name)
FILE *out; FILE *out;
if (!name) if (!name)
name = "..config.cmd"; name = ".config.cmd";
out = fopen("..config.tmp", "w"); out = fopen("..config.tmp", "w");
if (!out) if (!out)
return 1; return 1;
......
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
#include <qheader.h> #include <qheader.h>
#include <qfiledialog.h> #include <qfiledialog.h>
#include <qregexp.h> #include <qregexp.h>
#if QT_VERSION >= 300
#include <qsettings.h>
#endif
#include <stdlib.h> #include <stdlib.h>
#include "lkc.h" #include "lkc.h"
...@@ -26,6 +30,9 @@ ...@@ -26,6 +30,9 @@
#include "images.c" #include "images.c"
static QApplication *configApp; static QApplication *configApp;
#if QT_VERSION >= 300
static QSettings *configSettings;
#endif
/* /*
* update all the children of a menu entry * update all the children of a menu entry
...@@ -613,6 +620,25 @@ ConfigView::ConfigView(void) ...@@ -613,6 +620,25 @@ ConfigView::ConfigView(void)
QMenuBar* menu; QMenuBar* menu;
QSplitter* split1; QSplitter* split1;
QSplitter* split2; QSplitter* split2;
bool ok;
int x, y, width, height;
QWidget *d = configApp->desktop();
#if QT_VERSION >= 300
width = configSettings->readNumEntry("/kconfig/qconf/window width", d->width() - 64);
height = configSettings->readNumEntry("/kconfig/qconf/window height", d->height() - 64);
resize(width, height);
x = configSettings->readNumEntry("/kconfig/qconf/window x", 0, &ok);
if (ok)
y = configSettings->readNumEntry("/kconfig/qconf/window y", 0, &ok);
if (ok)
move(x, y);
#else
width = d->width() - 64;
height = d->height() - 64;
resize(width, height);
#endif
showDebug = false; showDebug = false;
...@@ -1046,6 +1072,9 @@ int main(int ac, char** av) ...@@ -1046,6 +1072,9 @@ int main(int ac, char** av)
#endif #endif
configApp = new QApplication(ac, av); configApp = new QApplication(ac, av);
#if QT_VERSION >= 300
configSettings = new QSettings;
#endif
if (ac > 1 && av[1][0] == '-') { if (ac > 1 && av[1][0] == '-') {
switch (av[1][1]) { switch (av[1][1]) {
case 'a': case 'a':
...@@ -1063,11 +1092,20 @@ int main(int ac, char** av) ...@@ -1063,11 +1092,20 @@ int main(int ac, char** av)
fixup_rootmenu(&rootmenu); fixup_rootmenu(&rootmenu);
conf_read(NULL); conf_read(NULL);
//zconfdump(stdout); //zconfdump(stdout);
v = new ConfigView(); v = new ConfigView();
//zconfdump(stdout); //zconfdump(stdout);
v->show(); v->show();
configApp->connect(configApp, SIGNAL(lastWindowClosed()), SLOT(quit())); configApp->connect(configApp, SIGNAL(lastWindowClosed()), SLOT(quit()));
configApp->exec(); configApp->exec();
#if QT_VERSION >= 300
configSettings->writeEntry("/kconfig/qconf/window x", v->pos().x());
configSettings->writeEntry("/kconfig/qconf/window y", v->pos().y());
configSettings->writeEntry("/kconfig/qconf/window width", v->size().width());
configSettings->writeEntry("/kconfig/qconf/window height", v->size().height());
delete configSettings;
#endif
return 0; return 0;
} }
%option backup nostdinit noyywrap full ecs %option backup nostdinit noyywrap never-interactive full ecs
%option 8bit backup nodefault perf-report perf-report %option 8bit backup nodefault perf-report perf-report
%x COMMAND HELP STRING PARAM %x COMMAND HELP STRING PARAM
%{ %{
...@@ -83,8 +83,6 @@ n [A-Za-z0-9_] ...@@ -83,8 +83,6 @@ n [A-Za-z0-9_]
. { . {
unput(yytext[0]); unput(yytext[0]);
//printf("new config: ");
//symbol_end(NULL);
BEGIN(COMMAND); BEGIN(COMMAND);
} }
...@@ -144,31 +142,43 @@ n [A-Za-z0-9_] ...@@ -144,31 +142,43 @@ n [A-Za-z0-9_]
return T_WORD; return T_WORD;
} }
. .
<<EOF>> {
BEGIN(INITIAL);
}
} }
<STRING>{ <STRING>{
[^'"\n\\]+ { [^'"\\\n]+/\n {
append_string(yytext, yyleng);
zconflval.string = text;
return T_STRING;
}
[^'"\\\n]+ {
append_string(yytext, yyleng); append_string(yytext, yyleng);
} }
\\.?/\n {
append_string(yytext+1, yyleng);
zconflval.string = text;
return T_STRING;
}
\\.? {
append_string(yytext+1, yyleng);
}
\'|\" { \'|\" {
if (str == yytext[0]) { if (str == yytext[0]) {
BEGIN(PARAM); BEGIN(PARAM);
zconflval.string = text; zconflval.string = text;
//printf("s:%s\n", text);
return T_STRING; return T_STRING;
} else } else
append_string(yytext, 1); append_string(yytext, 1);
} }
\\[ \t]*\n append_string(yytext+yyleng-1, 1); current_file->lineno++;
\\[ \t]* append_string(yytext+1, yyleng-1);
\\. append_string(yytext+1, 1);
\n { \n {
//printf(":%d: open string!\n", current_file->lineno+1); printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
exit(0); BEGIN(INITIAL);
return T_EOL;
} }
<<EOF>> { <<EOF>> {
//printf(":%d: open string!\n", current_file->lineno+1); BEGIN(INITIAL);
exit(0);
} }
} }
...@@ -221,6 +231,7 @@ n [A-Za-z0-9_] ...@@ -221,6 +231,7 @@ n [A-Za-z0-9_]
zconf_endfile(); zconf_endfile();
return T_EOF; return T_EOF;
} }
fclose(yyin);
yyterminate(); yyterminate();
} }
...@@ -245,7 +256,6 @@ void zconf_initscan(const char *name) ...@@ -245,7 +256,6 @@ void zconf_initscan(const char *name)
printf("can't find file %s\n", name); printf("can't find file %s\n", name);
exit(1); exit(1);
} }
//fprintf(stderr, "zconf_initscan: %s\n", name);
current_buf = malloc(sizeof(*current_buf)); current_buf = malloc(sizeof(*current_buf));
memset(current_buf, 0, sizeof(*current_buf)); memset(current_buf, 0, sizeof(*current_buf));
...@@ -271,8 +281,6 @@ void zconf_nextfile(const char *name) ...@@ -271,8 +281,6 @@ void zconf_nextfile(const char *name)
buf->parent = current_buf; buf->parent = current_buf;
current_buf = buf; current_buf = buf;
//fprintf(stderr, "zconf_nextfile: %s\n", name);
if (file->flags & FILE_BUSY) { if (file->flags & FILE_BUSY) {
printf("recursive scan (%s)?\n", name); printf("recursive scan (%s)?\n", name);
exit(1); exit(1);
...@@ -297,6 +305,7 @@ static struct buffer *zconf_endfile(void) ...@@ -297,6 +305,7 @@ static struct buffer *zconf_endfile(void)
parent = current_buf->parent; parent = current_buf->parent;
if (parent) { if (parent) {
fclose(yyin);
yy_delete_buffer(YY_CURRENT_BUFFER); yy_delete_buffer(YY_CURRENT_BUFFER);
yy_switch_to_buffer(parent->state); yy_switch_to_buffer(parent->state);
} }
......
/* A Bison parser, made from zconf.y /* A Bison parser, made from zconf.y, by GNU bison 1.75. */
by GNU bison 1.35. */
#define YYBISON 1 /* Identify Bison output. */ /* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* Written by Richard Stallman by simplifying the original so called
``semantic'' parser. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
/* Identify Bison output. */
#define YYBISON 1
/* Pure parsers. */
#define YYPURE 0
/* Using locations. */
#define YYLSP_NEEDED 0
/* If NAME_PREFIX is specified substitute the variables and functions
names. */
#define yyparse zconfparse #define yyparse zconfparse
#define yylex zconflex #define yylex zconflex
#define yyerror zconferror #define yyerror zconferror
#define yylval zconflval #define yylval zconflval
#define yychar zconfchar #define yychar zconfchar
#define yydebug zconfdebug #define yydebug zconfdebug
#define yynerrs zconfnerrs #define yynerrs zconfnerrs
# define T_MAINMENU 257
# define T_MENU 258
# define T_ENDMENU 259
# define T_SOURCE 260
# define T_CHOICE 261
# define T_ENDCHOICE 262
# define T_COMMENT 263
# define T_CONFIG 264
# define T_HELP 265
# define T_HELPTEXT 266
# define T_IF 267
# define T_ENDIF 268
# define T_DEPENDS 269
# define T_REQUIRES 270
# define T_OPTIONAL 271
# define T_PROMPT 272
# define T_DEFAULT 273
# define T_TRISTATE 274
# define T_BOOLEAN 275
# define T_INT 276
# define T_HEX 277
# define T_WORD 278
# define T_STRING 279
# define T_UNEQUAL 280
# define T_EOF 281
# define T_EOL 282
# define T_CLOSE_PAREN 283
# define T_OPEN_PAREN 284
# define T_ON 285
# define T_OR 286
# define T_AND 287
# define T_EQUAL 288
# define T_NOT 289
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
T_MAINMENU = 258,
T_MENU = 259,
T_ENDMENU = 260,
T_SOURCE = 261,
T_CHOICE = 262,
T_ENDCHOICE = 263,
T_COMMENT = 264,
T_CONFIG = 265,
T_HELP = 266,
T_HELPTEXT = 267,
T_IF = 268,
T_ENDIF = 269,
T_DEPENDS = 270,
T_REQUIRES = 271,
T_OPTIONAL = 272,
T_PROMPT = 273,
T_DEFAULT = 274,
T_TRISTATE = 275,
T_BOOLEAN = 276,
T_INT = 277,
T_HEX = 278,
T_WORD = 279,
T_STRING = 280,
T_UNEQUAL = 281,
T_EOF = 282,
T_EOL = 283,
T_CLOSE_PAREN = 284,
T_OPEN_PAREN = 285,
T_ON = 286,
T_OR = 287,
T_AND = 288,
T_EQUAL = 289,
T_NOT = 290
};
#endif
#define T_MAINMENU 258
#define T_MENU 259
#define T_ENDMENU 260
#define T_SOURCE 261
#define T_CHOICE 262
#define T_ENDCHOICE 263
#define T_COMMENT 264
#define T_CONFIG 265
#define T_HELP 266
#define T_HELPTEXT 267
#define T_IF 268
#define T_ENDIF 269
#define T_DEPENDS 270
#define T_REQUIRES 271
#define T_OPTIONAL 272
#define T_PROMPT 273
#define T_DEFAULT 274
#define T_TRISTATE 275
#define T_BOOLEAN 276
#define T_INT 277
#define T_HEX 278
#define T_WORD 279
#define T_STRING 280
#define T_UNEQUAL 281
#define T_EOF 282
#define T_EOL 283
#define T_CLOSE_PAREN 284
#define T_OPEN_PAREN 285
#define T_ON 286
#define T_OR 287
#define T_AND 288
#define T_EQUAL 289
#define T_NOT 290
/* Copy the first part of user declarations. */
#line 1 "zconf.y" #line 1 "zconf.y"
/* /*
...@@ -74,38 +162,173 @@ struct symbol *symbol_hash[257]; ...@@ -74,38 +162,173 @@ struct symbol *symbol_hash[257];
#define YYERROR_VERBOSE #define YYERROR_VERBOSE
#line 32 "zconf.y"
/* Enabling traces. */
#ifndef YYDEBUG
# define YYDEBUG 1
#endif
/* Enabling verbose error messages. */
#ifdef YYERROR_VERBOSE
# undef YYERROR_VERBOSE
# define YYERROR_VERBOSE 1
#else
# define YYERROR_VERBOSE 0
#endif
#ifndef YYSTYPE #ifndef YYSTYPE
typedef union #line 33 "zconf.y"
{ typedef union {
int token; int token;
char *string; char *string;
struct symbol *symbol; struct symbol *symbol;
struct expr *expr; struct expr *expr;
struct menu *menu; struct menu *menu;
} yystype; } yystype;
/* Line 193 of /usr/share/bison/yacc.c. */
#line 190 "zconf.tab.c"
# define YYSTYPE yystype # define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_TRIVIAL 1
#endif #endif
#ifndef YYLTYPE
typedef struct yyltype
{
int first_line;
int first_column;
int last_line;
int last_column;
} yyltype;
# define YYLTYPE yyltype
# define YYLTYPE_IS_TRIVIAL 1
#endif
/* Copy the second part of user declarations. */
#line 83 "zconf.y" #line 83 "zconf.y"
#define LKC_DIRECT_LINK #define LKC_DIRECT_LINK
#include "lkc.h" #include "lkc.h"
#ifndef YYDEBUG
# define YYDEBUG 1
/* Line 213 of /usr/share/bison/yacc.c. */
#line 215 "zconf.tab.c"
#if ! defined (yyoverflow) || YYERROR_VERBOSE
/* The parser invokes alloca or malloc; define the necessary symbols. */
# if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# else
# ifndef YYSTACK_USE_ALLOCA
# if defined (alloca) || defined (_ALLOCA_H)
# define YYSTACK_ALLOC alloca
# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE free
# endif
#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
|| (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
short yyss;
YYSTYPE yyvs;
};
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAX)
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
register YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (0)
# endif
# endif
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#endif #endif
#if defined (__STDC__) || defined (__cplusplus)
typedef signed char yysigned_char;
#else
typedef short yysigned_char;
#endif
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
#define YYLAST 151
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 36
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 39
/* YYNRULES -- Number of rules. */
#define YYNRULES 96
/* YYNRULES -- Number of states. */
#define YYNSTATES 145
#define YYFINAL 145 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYFLAG -32768 #define YYUNDEFTOK 2
#define YYNTBASE 36 #define YYMAXUTOK 290
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */ #define YYTRANSLATE(X) \
#define YYTRANSLATE(x) ((unsigned)(x) <= 289 ? yytranslate[x] : 74) ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */ /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
static const char yytranslate[] = static const unsigned char yytranslate[] =
{ {
0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
...@@ -132,367 +355,271 @@ static const char yytranslate[] = ...@@ -132,367 +355,271 @@ static const char yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 3, 4, 5, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35
}; };
#if YYDEBUG #if YYDEBUG
static const short yyprhs[] = /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
static const unsigned short yyprhs[] =
{ {
0, 0, 1, 4, 6, 8, 10, 14, 16, 18, 0, 0, 3, 4, 7, 9, 11, 13, 17, 19,
20, 23, 25, 27, 29, 31, 33, 36, 40, 41, 21, 23, 26, 28, 30, 32, 34, 36, 39, 43,
45, 49, 52, 55, 58, 61, 64, 67, 70, 74, 44, 48, 52, 55, 58, 61, 64, 67, 70, 73,
78, 80, 84, 86, 91, 94, 95, 99, 103, 106, 77, 81, 83, 87, 89, 94, 97, 98, 102, 106,
109, 113, 115, 118, 119, 122, 125, 127, 133, 137, 109, 112, 116, 118, 121, 122, 125, 128, 130, 136,
138, 141, 144, 147, 150, 154, 156, 161, 164, 165, 140, 141, 144, 147, 150, 153, 157, 159, 164, 167,
168, 171, 174, 178, 181, 184, 187, 191, 194, 197, 168, 171, 174, 177, 181, 184, 187, 190, 194, 197,
198, 202, 205, 209, 212, 215, 216, 218, 222, 224, 200, 201, 205, 208, 212, 215, 218, 219, 221, 225,
226, 228, 230, 232, 234, 236, 237, 240, 242, 246, 227, 229, 231, 233, 235, 237, 239, 240, 243, 245,
250, 254, 257, 261, 265, 267 249, 253, 257, 260, 264, 268, 270
}; };
static const short yyrhs[] =
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yysigned_char yyrhs[] =
{ {
-1, 36, 37, 0, 38, 0, 46, 0, 57, 0, 37, 0, -1, -1, 37, 38, -1, 39, -1, 47,
3, 68, 70, 0, 5, 0, 14, 0, 8, 0, -1, 58, -1, 3, 69, 71, -1, 5, -1, 14,
1, 70, 0, 52, 0, 62, 0, 40, 0, 60, -1, 8, -1, 1, 71, -1, 53, -1, 63, -1,
0, 70, 0, 10, 24, 0, 39, 28, 41, 0, 41, -1, 61, -1, 71, -1, 10, 24, -1, 40,
0, 41, 42, 28, 0, 41, 66, 28, 0, 41, 28, 42, -1, -1, 42, 43, 28, -1, 42, 67,
64, 0, 41, 28, 0, 20, 67, 0, 21, 67, 28, -1, 42, 65, -1, 42, 28, -1, 20, 68,
0, 22, 67, 0, 23, 67, 0, 25, 67, 0, -1, 21, 68, -1, 22, 68, -1, 23, 68, -1,
18, 68, 71, 0, 19, 73, 71, 0, 7, 0, 25, 68, -1, 18, 69, 72, -1, 19, 74, 72,
43, 28, 47, 0, 69, 0, 44, 49, 45, 28, -1, 7, -1, 44, 28, 48, -1, 70, -1, 45,
0, 44, 49, 0, 0, 47, 48, 28, 0, 47, 50, 46, 28, -1, 45, 50, -1, -1, 48, 49,
66, 28, 0, 47, 64, 0, 47, 28, 0, 18, 28, -1, 48, 67, 28, -1, 48, 65, -1, 48,
68, 71, 0, 17, 0, 19, 73, 0, 0, 49, 28, -1, 18, 69, 72, -1, 17, -1, 19, 74,
38, 0, 13, 72, 0, 69, 0, 50, 28, 53, -1, -1, 50, 39, -1, 13, 73, -1, 70, -1,
51, 28, 0, 50, 28, 53, 0, 0, 53, 38, 51, 28, 54, 52, 28, -1, 51, 28, 54, -1,
0, 53, 57, 0, 53, 46, 0, 4, 68, 0, -1, 54, 39, -1, 54, 58, -1, 54, 47, -1,
54, 28, 65, 0, 69, 0, 55, 58, 56, 28, 4, 69, -1, 55, 28, 66, -1, 70, -1, 56,
0, 55, 58, 0, 0, 58, 38, 0, 58, 57, 59, 57, 28, -1, 56, 59, -1, -1, 59, 39,
0, 58, 46, 0, 58, 1, 28, 0, 6, 68, -1, 59, 58, -1, 59, 47, -1, 59, 1, 28,
0, 59, 28, 0, 9, 68, 0, 61, 28, 65, -1, 6, 69, -1, 60, 28, -1, 9, 69, -1,
0, 11, 28, 0, 63, 12, 0, 0, 65, 66, 62, 28, 66, -1, 11, 28, -1, 64, 12, -1,
28, 0, 65, 28, 0, 15, 31, 72, 0, 15, -1, 66, 67, 28, -1, 66, 28, -1, 15, 31,
72, 0, 16, 72, 0, 0, 68, 0, 68, 13, 73, -1, 15, 73, -1, 16, 73, -1, -1, 69,
72, 0, 24, 0, 25, 0, 5, 0, 8, 0, -1, 69, 13, 73, -1, 24, -1, 25, -1, 5,
14, 0, 28, 0, 27, 0, 0, 13, 72, 0, -1, 8, -1, 14, -1, 28, -1, 27, -1, -1,
73, 0, 73, 34, 73, 0, 73, 26, 73, 0, 13, 73, -1, 74, -1, 74, 34, 74, -1, 74,
30, 72, 29, 0, 35, 72, 0, 72, 32, 72, 26, 74, -1, 30, 73, 29, -1, 35, 73, -1,
0, 72, 33, 72, 0, 24, 0, 25, 0 73, 32, 73, -1, 73, 33, 73, -1, 24, -1,
25, -1
}; };
#endif /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] =
#if YYDEBUG
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
{ {
0, 88, 89, 92, 93, 94, 95, 96, 97, 98, 0, 88, 88, 89, 92, 93, 94, 95, 96, 97,
99, 102, 104, 105, 106, 107, 113, 121, 127, 129, 98, 99, 102, 104, 105, 106, 107, 113, 121, 127,
130, 131, 132, 135, 141, 147, 153, 159, 165, 171, 129, 130, 131, 132, 135, 141, 147, 153, 159, 165,
179, 188, 194, 202, 204, 210, 212, 213, 214, 215, 171, 179, 188, 194, 202, 204, 210, 212, 213, 214,
218, 224, 230, 237, 239, 244, 254, 262, 264, 270, 215, 218, 224, 230, 237, 239, 244, 254, 262, 264,
272, 273, 274, 279, 286, 292, 300, 302, 308, 310, 270, 272, 273, 274, 279, 286, 292, 300, 302, 308,
311, 312, 313, 316, 322, 329, 336, 343, 349, 356, 310, 311, 312, 313, 316, 322, 329, 336, 343, 349,
357, 358, 361, 366, 371, 379, 381, 385, 390, 391, 356, 357, 358, 361, 366, 371, 379, 381, 385, 390,
394, 395, 396, 399, 400, 402, 403, 406, 407, 408, 391, 394, 395, 396, 399, 400, 402, 403, 406, 407,
409, 410, 411, 412, 415, 416 408, 409, 410, 411, 412, 415, 416
}; };
#endif #endif
#if YYDEBUG || YYERROR_VERBOSE
#if (YYDEBUG) || defined YYERROR_VERBOSE /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
static const char *const yytname[] = static const char *const yytname[] =
{ {
"$", "error", "$undefined.", "T_MAINMENU", "T_MENU", "T_ENDMENU", "$end", "error", "$undefined", "T_MAINMENU", "T_MENU", "T_ENDMENU",
"T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG", "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
"T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", "T_REQUIRES", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", "T_REQUIRES",
"T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE", "T_BOOLEAN", "T_OPTIONAL", "T_PROMPT", "T_DEFAULT", "T_TRISTATE", "T_BOOLEAN",
"T_INT", "T_HEX", "T_WORD", "T_STRING", "T_UNEQUAL", "T_EOF", "T_EOL", "T_INT", "T_HEX", "T_WORD", "T_STRING", "T_UNEQUAL", "T_EOF", "T_EOL",
"T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_OR", "T_AND", "T_EQUAL", "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_OR", "T_AND", "T_EQUAL",
"T_NOT", "input", "block", "common_block", "config_entry_start", "T_NOT", "$accept", "input", "block", "common_block",
"config_stmt", "config_option_list", "config_option", "choice", "config_entry_start", "config_stmt", "config_option_list",
"choice_entry", "choice_end", "choice_stmt", "choice_option_list", "config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
"choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block", "choice_option_list", "choice_option", "choice_block", "if", "if_end",
"menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source", "if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
"source_stmt", "comment", "comment_stmt", "help_start", "help", "menu_block", "source", "source_stmt", "comment", "comment_stmt",
"depends_list", "depends", "prompt_stmt_opt", "prompt", "end", "help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
"nl_or_eof", "if_expr", "expr", "symbol", 0 "prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0
}; };
#endif #endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ # ifdef YYPRINT
static const short yyr1[] = /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
static const unsigned short yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
285, 286, 287, 288, 289, 290
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const unsigned char yyr1[] =
{ {
0, 36, 36, 37, 37, 37, 37, 37, 37, 37, 0, 36, 37, 37, 38, 38, 38, 38, 38, 38,
37, 38, 38, 38, 38, 38, 39, 40, 41, 41, 38, 38, 39, 39, 39, 39, 39, 40, 41, 42,
41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43,
43, 44, 45, 46, 46, 47, 47, 47, 47, 47, 43, 44, 45, 46, 47, 47, 48, 48, 48, 48,
48, 48, 48, 49, 49, 50, 51, 52, 52, 53, 48, 49, 49, 49, 50, 50, 51, 52, 53, 53,
53, 53, 53, 54, 55, 56, 57, 57, 58, 58, 54, 54, 54, 54, 55, 56, 57, 58, 58, 59,
58, 58, 58, 59, 60, 61, 62, 63, 64, 65, 59, 59, 59, 59, 60, 61, 62, 63, 64, 65,
65, 65, 66, 66, 66, 67, 67, 67, 68, 68, 66, 66, 66, 67, 67, 67, 68, 68, 68, 69,
69, 69, 69, 70, 70, 71, 71, 72, 72, 72, 69, 70, 70, 70, 71, 71, 72, 72, 73, 73,
72, 72, 72, 72, 73, 73 73, 73, 73, 73, 73, 74, 74
}; };
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] = static const unsigned char yyr2[] =
{ {
0, 0, 2, 1, 1, 1, 3, 1, 1, 1, 0, 2, 0, 2, 1, 1, 1, 3, 1, 1,
2, 1, 1, 1, 1, 1, 2, 3, 0, 3, 1, 2, 1, 1, 1, 1, 1, 2, 3, 0,
3, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 3,
1, 3, 1, 4, 2, 0, 3, 3, 2, 2, 3, 1, 3, 1, 4, 2, 0, 3, 3, 2,
3, 1, 2, 0, 2, 2, 1, 5, 3, 0, 2, 3, 1, 2, 0, 2, 2, 1, 5, 3,
2, 2, 2, 2, 3, 1, 4, 2, 0, 2, 0, 2, 2, 2, 2, 3, 1, 4, 2, 0,
2, 2, 3, 2, 2, 2, 3, 2, 2, 0, 2, 2, 2, 3, 2, 2, 2, 3, 2, 2,
3, 2, 3, 2, 2, 0, 1, 3, 1, 1, 0, 3, 2, 3, 2, 2, 0, 1, 3, 1,
1, 1, 1, 1, 1, 0, 2, 1, 3, 3, 1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
3, 2, 3, 3, 1, 1 3, 3, 2, 3, 3, 1, 1
}; };
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
doesn't specify something else to do. Zero means the default is an STATE-NUM when YYTABLE doesn't specify something else to do. Zero
error. */ means the default is an error. */
static const short yydefact[] = static const unsigned char yydefact[] =
{ {
1, 0, 0, 0, 0, 7, 0, 30, 9, 0, 2, 0, 1, 0, 0, 0, 8, 0, 31, 10,
0, 0, 8, 84, 83, 2, 3, 0, 13, 0, 0, 0, 0, 9, 85, 84, 3, 4, 0, 14,
43, 4, 0, 11, 0, 58, 5, 0, 14, 0, 0, 44, 5, 0, 12, 0, 59, 6, 0, 15,
12, 15, 10, 78, 79, 0, 53, 63, 65, 16, 0, 13, 16, 11, 79, 80, 0, 54, 64, 66,
94, 95, 0, 0, 45, 87, 18, 35, 34, 49, 17, 95, 96, 0, 0, 46, 88, 19, 36, 35,
69, 0, 64, 69, 6, 0, 91, 0, 0, 0, 50, 70, 0, 65, 70, 7, 0, 92, 0, 0,
0, 17, 31, 80, 81, 82, 44, 0, 32, 48, 0, 0, 18, 32, 81, 82, 83, 45, 0, 33,
54, 0, 59, 61, 0, 60, 55, 66, 90, 92, 49, 55, 0, 60, 62, 0, 61, 56, 67, 91,
93, 89, 88, 0, 0, 0, 0, 0, 75, 75, 93, 94, 90, 89, 0, 0, 0, 0, 0, 76,
75, 75, 75, 22, 0, 0, 21, 0, 41, 0, 76, 76, 76, 76, 23, 0, 0, 22, 0, 42,
0, 39, 0, 38, 0, 33, 50, 52, 0, 51, 0, 0, 40, 0, 39, 0, 34, 51, 53, 0,
46, 71, 0, 62, 56, 67, 0, 73, 74, 85, 52, 47, 72, 0, 63, 57, 68, 0, 74, 75,
85, 23, 76, 24, 25, 26, 27, 19, 68, 20, 86, 86, 24, 77, 25, 26, 27, 28, 20, 69,
85, 42, 36, 37, 47, 70, 72, 0, 28, 29, 21, 86, 43, 37, 38, 48, 71, 73, 0, 29,
0, 40, 86, 77, 0, 0 30, 0, 41, 87, 78
}; };
/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] = static const short yydefgoto[] =
{ {
1, 15, 16, 17, 18, 61, 94, 19, 20, 67, -1, 1, 16, 17, 18, 19, 62, 95, 20, 21,
21, 62, 102, 48, 22, 108, 23, 69, 24, 25, 68, 22, 63, 103, 49, 23, 109, 24, 70, 25,
74, 26, 51, 27, 28, 29, 30, 95, 96, 70, 26, 75, 27, 52, 28, 29, 30, 31, 96, 97,
112, 121, 122, 68, 31, 138, 44, 45 71, 113, 122, 123, 69, 32, 139, 45, 46
}; };
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -120
static const short yypact[] = static const short yypact[] =
{ {
-32768, 17, 41, 65, 65,-32768, 65,-32768,-32768, 65, -120, 17, -120, 41, 48, 48, -120, 48, -120, -120,
-11, 40,-32768,-32768,-32768,-32768,-32768, 13,-32768, 23, 48, -11, 40, -120, -120, -120, -120, -120, 13, -120,
-32768,-32768, 66,-32768, 72,-32768,-32768, 77,-32768, 81, 23, -120, -120, 66, -120, 72, -120, -120, 77, -120,
-32768,-32768,-32768,-32768,-32768, 41,-32768,-32768,-32768,-32768, 81, -120, -120, -120, -120, -120, 41, -120, -120, -120,
-32768,-32768, 40, 40, 64, 59,-32768,-32768, 98,-32768, -120, -120, -120, 40, 40, 57, 59, -120, -120, 98,
-32768, 49,-32768,-32768,-32768, 7,-32768, 40, 40, 67, -120, -120, 49, -120, -120, -120, 7, -120, 40, 40,
67, 99, 117,-32768,-32768,-32768,-32768, 85,-32768, 74, 67, 67, 99, 117, -120, -120, -120, -120, 85, -120,
18, 88,-32768,-32768, 95,-32768,-32768, 18,-32768, 96, 74, 18, 88, -120, -120, 95, -120, -120, 18, -120,
-32768,-32768,-32768, 102, 36, 40, 65, 67, 65, 65, 96, -120, -120, -120, 102, 36, 40, 48, 67, 48,
65, 65, 65,-32768, 103, 129,-32768, 114,-32768, 65, 48, 48, 48, 48, -120, 103, 129, -120, 114, -120,
67,-32768, 115,-32768, 116,-32768,-32768,-32768, 118,-32768, 48, 67, -120, 115, -120, 116, -120, -120, -120, 118,
-32768,-32768, 119,-32768,-32768,-32768, 40, 64, 64, 135, -120, -120, -120, 119, -120, -120, -120, 40, 57, 57,
135,-32768, 136,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 135, 135, -120, 136, -120, -120, -120, -120, -120, -120,
135,-32768,-32768,-32768,-32768,-32768, 64, 40,-32768,-32768, -120, 135, -120, -120, -120, -120, -120, 57, 40, -120,
40,-32768, 64, 64, 150,-32768 -120, 40, -120, 57, 57
}; };
static const short yypgoto[] = /* YYPGOTO[NTERM-NUM]. */
static const yysigned_char yypgoto[] =
{ {
-32768,-32768, -37,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -120, -120, -120, -38, -120, -120, -120, -120, -120, -120,
-41,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -120, -42, -120, -120, -120, -120, -120, -120, -120, -120,
-32768, -32,-32768,-32768,-32768,-32768,-32768,-32768, 89, 100, -120, -120, -33, -120, -120, -120, -120, -120, -120, 87,
11, 48, 0, -22, 3, -118, -42, -52 97, 34, 47, -1, -23, 2, -119, -43, -53
}; };
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYLAST 153 positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, parse error. */
#define YYTABLE_NINF -59
static const short yytable[] = static const short yytable[] =
{ {
55, 56, 139, 35, 36, 32, 37, 81, 82, 38, 56, 57, 140, 36, 37, 33, 38, 82, 83, 39,
73, 66, 141, 39, 72, 79, 80, 144, 2, 75, 74, 67, 142, 40, 73, 80, 81, 2, 3, 76,
3, 4, 5, 6, 7, 8, 9, 10, 107, 76, 4, 5, 6, 7, 8, 9, 10, 11, 108, 77,
11, 12, 106, 84, 85, 120, 78, 109, 54, 57, 12, 13, 107, 85, 86, 121, 79, 110, 55, 58,
58, 46, 117, 118, 13, 14, 111, 110, 131, -57, 59, 47, 118, 119, 14, 15, 112, 111, 132, -58,
71, 47, -57, 4, 63, 6, 7, 64, 9, 10, 72, 48, -58, 5, 64, 7, 8, 65, 10, 11,
40, 41, 11, 65, 40, 41, 42, 116, 13, 14, 41, 42, 12, 66, 41, 42, 43, 117, 14, 15,
42, 43, 97, 104, 136, 43, 13, 14, 4, 63, 43, 44, 34, 35, 137, 44, 14, 15, 5, 64,
6, 7, 64, 9, 10, 59, 119, 11, 65, 33, 7, 8, 65, 10, 11, 60, 120, 12, 66, 58,
34, 40, 41, 60, 49, 142, 57, 58, 143, 130, 59, 41, 42, 61, 50, 143, 98, 105, 144, 131,
50, 13, 14, 63, 6, 52, 64, 9, 10, 53, 51, 14, 15, 64, 7, 53, 65, 10, 11, 54,
83, 11, 65, 105, 84, 85, 113, 86, 87, 88, 84, 12, 66, 106, 85, 86, 114, 87, 88, 89,
89, 90, 91, 114, 92, 13, 14, 93, 83, 58, 90, 91, 92, 115, 93, 14, 15, 94, 84, 59,
115, 127, 84, 85, 98, 99, 100, 123, 124, 125, 116, 128, 85, 86, 99, 100, 101, 124, 125, 126,
126, 128, 129, 132, 133, 101, 134, 135, 137, 140, 127, 129, 130, 133, 134, 102, 135, 136, 138, 141,
145, 103, 0, 77 104, 78
}; };
static const short yycheck[] = static const unsigned char yycheck[] =
{ {
42, 43, 120, 3, 4, 2, 6, 59, 60, 9, 43, 44, 121, 4, 5, 3, 7, 60, 61, 10,
51, 48, 130, 24, 51, 57, 58, 0, 1, 51, 52, 49, 131, 24, 52, 58, 59, 0, 1, 52,
3, 4, 5, 6, 7, 8, 9, 10, 69, 51, 3, 4, 5, 6, 7, 8, 9, 10, 70, 52,
13, 14, 69, 15, 16, 87, 29, 69, 35, 32, 13, 14, 70, 15, 16, 88, 29, 70, 36, 32,
33, 28, 84, 85, 27, 28, 28, 69, 100, 0, 33, 28, 85, 86, 27, 28, 28, 70, 101, 0,
1, 28, 3, 4, 5, 6, 7, 8, 9, 10, 1, 28, 3, 4, 5, 6, 7, 8, 9, 10,
24, 25, 13, 14, 24, 25, 30, 31, 27, 28, 24, 25, 13, 14, 24, 25, 30, 31, 27, 28,
30, 35, 61, 62, 116, 35, 27, 28, 4, 5, 30, 35, 24, 25, 117, 35, 27, 28, 4, 5,
6, 7, 8, 9, 10, 26, 86, 13, 14, 24, 6, 7, 8, 9, 10, 26, 87, 13, 14, 32,
25, 24, 25, 34, 28, 137, 32, 33, 140, 99, 33, 24, 25, 34, 28, 138, 62, 63, 141, 100,
28, 27, 28, 5, 6, 28, 8, 9, 10, 28, 28, 27, 28, 5, 6, 28, 8, 9, 10, 28,
11, 13, 14, 28, 15, 16, 28, 18, 19, 20, 11, 13, 14, 28, 15, 16, 28, 18, 19, 20,
21, 22, 23, 28, 25, 27, 28, 28, 11, 33, 21, 22, 23, 28, 25, 27, 28, 28, 11, 33,
28, 28, 15, 16, 17, 18, 19, 89, 90, 91, 28, 28, 15, 16, 17, 18, 19, 90, 91, 92,
92, 12, 28, 28, 28, 28, 28, 28, 13, 13, 93, 12, 28, 28, 28, 28, 28, 28, 13, 13,
0, 62, -1, 53 63, 54
}; };
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/share/bison/bison.simple"
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
but WITHOUT ANY WARRANTY; without even the implied warranty of symbol of state STATE-NUM. */
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the static const unsigned char yystos[] =
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
/* This is the parser code that is written into each bison parser when
the %semantic_parser declaration is not specified in the grammar.
It was written by Richard Stallman by simplifying the hairy parser
used when %semantic_parser is specified. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
variables, as they might otherwise be expanded by user macros.
There are some unavoidable exceptions within include files to
define necessary library symbols; they are noted "INFRINGES ON
USER NAME SPACE" below. */
#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
/* The parser invokes alloca or malloc; define the necessary symbols. */
# if YYSTACK_USE_ALLOCA
# define YYSTACK_ALLOC alloca
# else
# ifndef YYSTACK_USE_ALLOCA
# if defined (alloca) || defined (_ALLOCA_H)
# define YYSTACK_ALLOC alloca
# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
/* Pacify GCC's `empty if-body' warning. */
# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
# else
# if defined (__STDC__) || defined (__cplusplus)
# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
# define YYSIZE_T size_t
# endif
# define YYSTACK_ALLOC malloc
# define YYSTACK_FREE free
# endif
#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
#if (! defined (yyoverflow) \
&& (! defined (__cplusplus) \
|| (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{ {
short yyss; 0, 37, 0, 1, 3, 4, 5, 6, 7, 8,
YYSTYPE yyvs; 9, 10, 13, 14, 27, 28, 38, 39, 40, 41,
# if YYLSP_NEEDED 44, 45, 47, 51, 53, 55, 56, 58, 60, 61,
YYLTYPE yyls; 62, 63, 71, 71, 24, 25, 69, 69, 69, 69,
# endif 24, 24, 25, 30, 35, 73, 74, 28, 28, 50,
28, 28, 59, 28, 28, 71, 73, 73, 32, 33,
26, 34, 42, 48, 5, 8, 14, 39, 46, 70,
54, 66, 1, 39, 47, 57, 58, 70, 66, 29,
73, 73, 74, 74, 11, 15, 16, 18, 19, 20,
21, 22, 23, 25, 28, 43, 64, 65, 67, 17,
18, 19, 28, 49, 65, 67, 28, 39, 47, 52,
58, 70, 28, 67, 28, 28, 28, 31, 73, 73,
69, 74, 68, 69, 68, 68, 68, 68, 28, 12,
28, 69, 74, 28, 28, 28, 28, 73, 13, 72,
72, 13, 72, 73, 73
}; };
/* The size of the maximum gap between one aligned stack and the next. */
# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# if YYLSP_NEEDED
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
+ 2 * YYSTACK_GAP_MAX)
# else
# define YYSTACK_BYTES(N) \
((N) * (sizeof (short) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAX)
# endif
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
# if 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
register YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
while (0)
# endif
# endif
/* Relocate STACK from its old location to the new one. The
local variables YYSIZE and YYSTACKSIZE give the old and new number of
elements in the stack, and YYPTR gives the new location of the
stack. Advance YYPTR to a properly aligned location for the next
stack. */
# define YYSTACK_RELOCATE(Stack) \
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack, Stack, yysize); \
Stack = &yyptr->Stack; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#endif
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# define YYSIZE_T __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__
#endif #endif
...@@ -513,14 +640,19 @@ union yyalloc ...@@ -513,14 +640,19 @@ union yyalloc
#define yyclearin (yychar = YYEMPTY) #define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2 #define YYEMPTY -2
#define YYEOF 0 #define YYEOF 0
#define YYACCEPT goto yyacceptlab #define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab #define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1 #define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror. This remains here temporarily /* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC. to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */ Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab #define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus) #define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \ #define YYBACKUP(Token, Value) \
do \ do \
if (yychar == YYEMPTY && yylen == 1) \ if (yychar == YYEMPTY && yylen == 1) \
...@@ -541,41 +673,20 @@ while (0) ...@@ -541,41 +673,20 @@ while (0)
#define YYTERROR 1 #define YYTERROR 1
#define YYERRCODE 256 #define YYERRCODE 256
/* YYLLOC_DEFAULT -- Compute the default location (before the actions /* YYLLOC_DEFAULT -- Compute the default location (before the actions
are run). are run). */
When YYLLOC_DEFAULT is run, CURRENT is set the location of the
first token. By default, to implement support for ranges, extend
its range to the last symbol. */
#ifndef YYLLOC_DEFAULT #ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \ # define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[N].last_line; \ Current.first_line = Rhs[1].first_line; \
Current.last_column = Rhs[N].last_column; Current.first_column = Rhs[1].first_column; \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
#endif #endif
/* YYLEX -- calling `yylex' with the right arguments. */ /* YYLEX -- calling `yylex' with the right arguments. */
#if YYPURE #define YYLEX yylex ()
# if YYLSP_NEEDED
# ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
# else
# define YYLEX yylex (&yylval, &yylloc)
# endif
# else /* !YYLSP_NEEDED */
# ifdef YYLEX_PARAM
# define YYLEX yylex (&yylval, YYLEX_PARAM)
# else
# define YYLEX yylex (&yylval)
# endif
# endif /* !YYLSP_NEEDED */
#else /* !YYPURE */
# define YYLEX yylex ()
#endif /* !YYPURE */
/* Enable debugging if requested. */ /* Enable debugging if requested. */
#if YYDEBUG #if YYDEBUG
...@@ -590,11 +701,17 @@ do { \ ...@@ -590,11 +701,17 @@ do { \
if (yydebug) \ if (yydebug) \
YYFPRINTF Args; \ YYFPRINTF Args; \
} while (0) } while (0)
# define YYDSYMPRINT(Args) \
do { \
if (yydebug) \
yysymprint Args; \
} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that /* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */ multiple parsers can coexist. */
int yydebug; int yydebug;
#else /* !YYDEBUG */ #else /* !YYDEBUG */
# define YYDPRINTF(Args) # define YYDPRINTF(Args)
# define YYDSYMPRINT(Args)
#endif /* !YYDEBUG */ #endif /* !YYDEBUG */
/* YYINITDEPTH -- initial size of the parser's stacks. */ /* YYINITDEPTH -- initial size of the parser's stacks. */
...@@ -616,8 +733,10 @@ int yydebug; ...@@ -616,8 +733,10 @@ int yydebug;
#ifndef YYMAXDEPTH #ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000 # define YYMAXDEPTH 10000
#endif #endif
#ifdef YYERROR_VERBOSE
#if YYERROR_VERBOSE
# ifndef yystrlen # ifndef yystrlen
# if defined (__GLIBC__) && defined (_STRING_H) # if defined (__GLIBC__) && defined (_STRING_H)
...@@ -667,10 +786,73 @@ yystpcpy (yydest, yysrc) ...@@ -667,10 +786,73 @@ yystpcpy (yydest, yysrc)
} }
# endif # endif
# endif # endif
#endif
#endif /* !YYERROR_VERBOSE */
#line 315 "/usr/share/bison/bison.simple"
#if YYDEBUG
/*-----------------------------.
| Print this symbol on YYOUT. |
`-----------------------------*/
static void
#if defined (__STDC__) || defined (__cplusplus)
yysymprint (FILE* yyout, int yytype, YYSTYPE yyvalue)
#else
yysymprint (yyout, yytype, yyvalue)
FILE* yyout;
int yytype;
YYSTYPE yyvalue;
#endif
{
/* Pacify ``unused variable'' warnings. */
(void) yyvalue;
if (yytype < YYNTOKENS)
{
YYFPRINTF (yyout, "token %s (", yytname[yytype]);
# ifdef YYPRINT
YYPRINT (yyout, yytoknum[yytype], yyvalue);
# endif
}
else
YYFPRINTF (yyout, "nterm %s (", yytname[yytype]);
switch (yytype)
{
default:
break;
}
YYFPRINTF (yyout, ")");
}
#endif /* YYDEBUG. */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
static void
#if defined (__STDC__) || defined (__cplusplus)
yydestruct (int yytype, YYSTYPE yyvalue)
#else
yydestruct (yytype, yyvalue)
int yytype;
YYSTYPE yyvalue;
#endif
{
/* Pacify ``unused variable'' warnings. */
(void) yyvalue;
switch (yytype)
{
default:
break;
}
}
/* The user can define YYPARSE_PARAM as the name of an argument to be passed /* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *. into yyparse. The argument should have type void *.
...@@ -700,46 +882,22 @@ int yyparse (void); ...@@ -700,46 +882,22 @@ int yyparse (void);
# endif # endif
#endif #endif
/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
variables are global, or local to YYPARSE. */
#define YY_DECL_NON_LSP_VARIABLES \
/* The lookahead symbol. */ \
int yychar; \
\
/* The semantic value of the lookahead symbol. */ \
YYSTYPE yylval; \
\
/* Number of parse errors so far. */ \
int yynerrs;
#if YYLSP_NEEDED /* The lookahead symbol. */
# define YY_DECL_VARIABLES \ int yychar;
YY_DECL_NON_LSP_VARIABLES \
\
/* Location data for the lookahead symbol. */ \
YYLTYPE yylloc;
#else
# define YY_DECL_VARIABLES \
YY_DECL_NON_LSP_VARIABLES
#endif
/* The semantic value of the lookahead symbol. */
YYSTYPE yylval;
/* If nonreentrant, generate the variables here. */ /* Number of parse errors so far. */
int yynerrs;
#if !YYPURE
YY_DECL_VARIABLES
#endif /* !YYPURE */
int int
yyparse (YYPARSE_PARAM_ARG) yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL YYPARSE_PARAM_DECL
{ {
/* If reentrant, generate the variables here. */
#if YYPURE
YY_DECL_VARIABLES
#endif /* !YYPURE */
register int yystate; register int yystate;
register int yyn; register int yyn;
int yyresult; int yyresult;
...@@ -756,7 +914,7 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -756,7 +914,7 @@ yyparse (YYPARSE_PARAM_ARG)
Refer to the stacks thru separate pointers, to allow yyoverflow Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */ to reallocate them elsewhere. */
/* The state stack. */ /* The state stack. */
short yyssa[YYINITDEPTH]; short yyssa[YYINITDEPTH];
short *yyss = yyssa; short *yyss = yyssa;
register short *yyssp; register short *yyssp;
...@@ -766,31 +924,19 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -766,31 +924,19 @@ yyparse (YYPARSE_PARAM_ARG)
YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp; register YYSTYPE *yyvsp;
#if YYLSP_NEEDED
/* The location stack. */
YYLTYPE yylsa[YYINITDEPTH];
YYLTYPE *yyls = yylsa;
YYLTYPE *yylsp;
#endif
#if YYLSP_NEEDED
# define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
#else
# define YYPOPSTACK (yyvsp--, yyssp--)
#endif
YYSIZE_T yystacksize = YYINITDEPTH; #define YYPOPSTACK (yyvsp--, yyssp--)
YYSIZE_T yystacksize = YYINITDEPTH;
/* The variables used to return semantic value and location from the /* The variables used to return semantic value and location from the
action routines. */ action routines. */
YYSTYPE yyval; YYSTYPE yyval;
#if YYLSP_NEEDED
YYLTYPE yyloc;
#endif
/* When reducing, the number of symbols on the RHS of the reduced /* When reducing, the number of symbols on the RHS of the reduced
rule. */ rule. */
int yylen; int yylen;
YYDPRINTF ((stderr, "Starting parse\n")); YYDPRINTF ((stderr, "Starting parse\n"));
...@@ -807,9 +953,7 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -807,9 +953,7 @@ yyparse (YYPARSE_PARAM_ARG)
yyssp = yyss; yyssp = yyss;
yyvsp = yyvs; yyvsp = yyvs;
#if YYLSP_NEEDED
yylsp = yyls;
#endif
goto yysetstate; goto yysetstate;
/*------------------------------------------------------------. /*------------------------------------------------------------.
...@@ -837,24 +981,17 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -837,24 +981,17 @@ yyparse (YYPARSE_PARAM_ARG)
YYSTYPE *yyvs1 = yyvs; YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss; short *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the /* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. */ data in use in that stack, in bytes. This used to be a
# if YYLSP_NEEDED conditional around just the two extra args, but that might
YYLTYPE *yyls1 = yyls; be undefined if yyoverflow is a macro. */
/* This used to be a conditional around just the two extra args,
but that might be undefined if yyoverflow is a macro. */
yyoverflow ("parser stack overflow",
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
&yyls1, yysize * sizeof (*yylsp),
&yystacksize);
yyls = yyls1;
# else
yyoverflow ("parser stack overflow", yyoverflow ("parser stack overflow",
&yyss1, yysize * sizeof (*yyssp), &yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp), &yyvs1, yysize * sizeof (*yyvsp),
&yystacksize); &yystacksize);
# endif
yyss = yyss1; yyss = yyss1;
yyvs = yyvs1; yyvs = yyvs1;
} }
...@@ -877,10 +1014,8 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -877,10 +1014,8 @@ yyparse (YYPARSE_PARAM_ARG)
goto yyoverflowlab; goto yyoverflowlab;
YYSTACK_RELOCATE (yyss); YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs); YYSTACK_RELOCATE (yyvs);
# if YYLSP_NEEDED
YYSTACK_RELOCATE (yyls); # undef YYSTACK_RELOCATE
# endif
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa) if (yyss1 != yyssa)
YYSTACK_FREE (yyss1); YYSTACK_FREE (yyss1);
} }
...@@ -889,9 +1024,7 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -889,9 +1024,7 @@ yyparse (YYPARSE_PARAM_ARG)
yyssp = yyss + yysize - 1; yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1; yyvsp = yyvs + yysize - 1;
#if YYLSP_NEEDED
yylsp = yyls + yysize - 1;
#endif
YYDPRINTF ((stderr, "Stack size increased to %lu\n", YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize)); (unsigned long int) yystacksize));
...@@ -904,7 +1037,6 @@ yyparse (YYPARSE_PARAM_ARG) ...@@ -904,7 +1037,6 @@ yyparse (YYPARSE_PARAM_ARG)
goto yybackup; goto yybackup;
/*-----------. /*-----------.
| yybackup. | | yybackup. |
`-----------*/ `-----------*/
...@@ -917,7 +1049,7 @@ yybackup: ...@@ -917,7 +1049,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */ /* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate]; yyn = yypact[yystate];
if (yyn == YYFLAG) if (yyn == YYPACT_NINF)
goto yydefault; goto yydefault;
/* Not known => get a lookahead token if don't already have one. */ /* Not known => get a lookahead token if don't already have one. */
...@@ -931,12 +1063,12 @@ yybackup: ...@@ -931,12 +1063,12 @@ yybackup:
yychar = YYLEX; yychar = YYLEX;
} }
/* Convert token to internal form (in yychar1) for indexing tables with */ /* Convert token to internal form (in yychar1) for indexing tables with. */
if (yychar <= 0) /* This means end of input. */ if (yychar <= 0) /* This means end of input. */
{ {
yychar1 = 0; yychar1 = 0;
yychar = YYEOF; /* Don't call YYLEX any more */ yychar = YYEOF; /* Don't call YYLEX any more. */
YYDPRINTF ((stderr, "Now at end of input.\n")); YYDPRINTF ((stderr, "Now at end of input.\n"));
} }
...@@ -944,45 +1076,26 @@ yybackup: ...@@ -944,45 +1076,26 @@ yybackup:
{ {
yychar1 = YYTRANSLATE (yychar); yychar1 = YYTRANSLATE (yychar);
#if YYDEBUG /* We have to keep this `#if YYDEBUG', since we use variables
/* We have to keep this `#if YYDEBUG', since we use variables which are defined only if `YYDEBUG' is set. */
which are defined only if `YYDEBUG' is set. */ YYDPRINTF ((stderr, "Next token is "));
if (yydebug) YYDSYMPRINT ((stderr, yychar1, yylval));
{ YYDPRINTF ((stderr, "\n"));
YYFPRINTF (stderr, "Next token is %d (%s",
yychar, yytname[yychar1]);
/* Give the individual parser a way to print the precise
meaning of a token, for further debugging info. */
# ifdef YYPRINT
YYPRINT (stderr, yychar, yylval);
# endif
YYFPRINTF (stderr, ")\n");
}
#endif
} }
/* If the proper action on seeing token YYCHAR1 is to reduce or to
detect an error, take that action. */
yyn += yychar1; yyn += yychar1;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
goto yydefault; goto yydefault;
yyn = yytable[yyn]; yyn = yytable[yyn];
if (yyn <= 0)
/* yyn is what to do for this token type in this state.
Negative => reduce, -yyn is rule number.
Positive => shift, yyn is new state.
New state is final state => don't bother to shift,
just return success.
0, or most negative number => error. */
if (yyn < 0)
{ {
if (yyn == YYFLAG) if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab; goto yyerrlab;
yyn = -yyn; yyn = -yyn;
goto yyreduce; goto yyreduce;
} }
else if (yyn == 0)
goto yyerrlab;
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
...@@ -996,9 +1109,7 @@ yybackup: ...@@ -996,9 +1109,7 @@ yybackup:
yychar = YYEMPTY; yychar = YYEMPTY;
*++yyvsp = yylval; *++yyvsp = yylval;
#if YYLSP_NEEDED
*++yylsp = yylloc;
#endif
/* Count tokens shifted since error; after three, turn off error /* Count tokens shifted since error; after three, turn off error
status. */ status. */
...@@ -1029,19 +1140,14 @@ yyreduce: ...@@ -1029,19 +1140,14 @@ yyreduce:
/* If YYLEN is nonzero, implement the default value of the action: /* If YYLEN is nonzero, implement the default value of the action:
`$$ = $1'. `$$ = $1'.
Otherwise, the following line sets YYVAL to the semantic value of Otherwise, the following line sets YYVAL to garbage.
the lookahead token. This behavior is undocumented and Bison This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */ GCC warning that YYVAL may be used uninitialized. */
yyval = yyvsp[1-yylen]; yyval = yyvsp[1-yylen];
#if YYLSP_NEEDED
/* Similarly for the default location. Let the user run additional
commands if for instance locations are ranges. */
yyloc = yylsp[1-yylen];
YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
#endif
#if YYDEBUG #if YYDEBUG
/* We have to keep this `#if YYDEBUG', since we use variables which /* We have to keep this `#if YYDEBUG', since we use variables which
...@@ -1051,362 +1157,415 @@ yyreduce: ...@@ -1051,362 +1157,415 @@ yyreduce:
int yyi; int yyi;
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]); yyn - 1, yyrline[yyn]);
/* Print the symbols being reduced, and their result. */ /* Print the symbols being reduced, and their result. */
for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++) for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]); YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]); YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
} }
#endif #endif
switch (yyn)
switch (yyn) { {
case 8:
case 7:
#line 96 "zconf.y" #line 96 "zconf.y"
{ zconfprint("unexpected 'endmenu' statement"); ; { zconfprint("unexpected 'endmenu' statement"); }
break;} break;
case 8:
case 9:
#line 97 "zconf.y" #line 97 "zconf.y"
{ zconfprint("unexpected 'endif' statement"); ; { zconfprint("unexpected 'endif' statement"); }
break;} break;
case 9:
case 10:
#line 98 "zconf.y" #line 98 "zconf.y"
{ zconfprint("unexpected 'endchoice' statement"); ; { zconfprint("unexpected 'endchoice' statement"); }
break;} break;
case 10:
case 11:
#line 99 "zconf.y" #line 99 "zconf.y"
{ zconfprint("syntax error"); yyerrok; ; { zconfprint("syntax error"); yyerrok; }
break;} break;
case 16:
case 17:
#line 114 "zconf.y" #line 114 "zconf.y"
{ {
struct symbol *sym = sym_lookup(yyvsp[0].string, 0); struct symbol *sym = sym_lookup(yyvsp[0].string, 0);
sym->flags |= SYMBOL_OPTIONAL; sym->flags |= SYMBOL_OPTIONAL;
menu_add_entry(sym); menu_add_entry(sym);
printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string); printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string);
; }
break;} break;
case 17:
case 18:
#line 122 "zconf.y" #line 122 "zconf.y"
{ {
menu_end_entry(); menu_end_entry();
printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 22:
case 23:
#line 133 "zconf.y" #line 133 "zconf.y"
{ ; { }
break;} break;
case 23:
case 24:
#line 136 "zconf.y" #line 136 "zconf.y"
{ {
menu_set_type(S_TRISTATE); menu_set_type(S_TRISTATE);
printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 24:
case 25:
#line 142 "zconf.y" #line 142 "zconf.y"
{ {
menu_set_type(S_BOOLEAN); menu_set_type(S_BOOLEAN);
printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 25:
case 26:
#line 148 "zconf.y" #line 148 "zconf.y"
{ {
menu_set_type(S_INT); menu_set_type(S_INT);
printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 26:
case 27:
#line 154 "zconf.y" #line 154 "zconf.y"
{ {
menu_set_type(S_HEX); menu_set_type(S_HEX);
printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 27:
case 28:
#line 160 "zconf.y" #line 160 "zconf.y"
{ {
menu_set_type(S_STRING); menu_set_type(S_STRING);
printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 28:
case 29:
#line 166 "zconf.y" #line 166 "zconf.y"
{ {
menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr); menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 29:
case 30:
#line 172 "zconf.y" #line 172 "zconf.y"
{ {
menu_add_prop(P_DEFAULT, NULL, yyvsp[-1].symbol, yyvsp[0].expr); menu_add_prop(P_DEFAULT, NULL, yyvsp[-1].symbol, yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 30:
case 31:
#line 180 "zconf.y" #line 180 "zconf.y"
{ {
struct symbol *sym = sym_lookup(NULL, 0); struct symbol *sym = sym_lookup(NULL, 0);
sym->flags |= SYMBOL_CHOICE; sym->flags |= SYMBOL_CHOICE;
menu_add_entry(sym); menu_add_entry(sym);
menu_add_prop(P_CHOICE, NULL, NULL, NULL); menu_add_prop(P_CHOICE, NULL, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 31:
case 32:
#line 189 "zconf.y" #line 189 "zconf.y"
{ {
menu_end_entry(); menu_end_entry();
menu_add_menu(); menu_add_menu();
; }
break;} break;
case 32:
case 33:
#line 195 "zconf.y" #line 195 "zconf.y"
{ {
if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) { if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) {
menu_end_menu(); menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
} }
; }
break;} break;
case 34:
case 35:
#line 205 "zconf.y" #line 205 "zconf.y"
{ {
printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno); printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno);
zconfnerrs++; zconfnerrs++;
; }
break;} break;
case 40:
case 41:
#line 219 "zconf.y" #line 219 "zconf.y"
{ {
menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr); menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 41:
case 42:
#line 225 "zconf.y" #line 225 "zconf.y"
{ {
current_entry->sym->flags |= SYMBOL_OPTIONAL; current_entry->sym->flags |= SYMBOL_OPTIONAL;
printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 42:
case 43:
#line 231 "zconf.y" #line 231 "zconf.y"
{ {
menu_add_prop(P_DEFAULT, NULL, yyvsp[0].symbol, NULL); menu_add_prop(P_DEFAULT, NULL, yyvsp[0].symbol, NULL);
//current_choice->prop->def = $2; //current_choice->prop->def = ;
printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 45:
case 46:
#line 245 "zconf.y" #line 245 "zconf.y"
{ {
printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
menu_add_entry(NULL); menu_add_entry(NULL);
//current_entry->prompt = menu_add_prop(T_IF, NULL, NULL, $2); //current_entry->prompt = menu_add_prop(T_IF, NULL, NULL, );
menu_add_dep(yyvsp[0].expr); menu_add_dep(yyvsp[0].expr);
menu_end_entry(); menu_end_entry();
menu_add_menu(); menu_add_menu();
; }
break;} break;
case 46:
case 47:
#line 255 "zconf.y" #line 255 "zconf.y"
{ {
if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) { if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) {
menu_end_menu(); menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
} }
; }
break;} break;
case 48:
case 49:
#line 265 "zconf.y" #line 265 "zconf.y"
{ {
printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno); printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno);
zconfnerrs++; zconfnerrs++;
; }
break;} break;
case 53:
case 54:
#line 280 "zconf.y" #line 280 "zconf.y"
{ {
menu_add_entry(NULL); menu_add_entry(NULL);
menu_add_prop(P_MENU, yyvsp[0].string, NULL, NULL); menu_add_prop(P_MENU, yyvsp[0].string, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 54:
case 55:
#line 287 "zconf.y" #line 287 "zconf.y"
{ {
menu_end_entry(); menu_end_entry();
menu_add_menu(); menu_add_menu();
; }
break;} break;
case 55:
case 56:
#line 293 "zconf.y" #line 293 "zconf.y"
{ {
if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) { if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) {
menu_end_menu(); menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
} }
; }
break;} break;
case 57:
case 58:
#line 303 "zconf.y" #line 303 "zconf.y"
{ {
printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno); printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno);
zconfnerrs++; zconfnerrs++;
; }
break;} break;
case 62:
case 63:
#line 313 "zconf.y" #line 313 "zconf.y"
{ zconfprint("invalid menu option"); yyerrok; ; { zconfprint("invalid menu option"); yyerrok; }
break;} break;
case 63:
case 64:
#line 317 "zconf.y" #line 317 "zconf.y"
{ {
yyval.string = yyvsp[0].string; yyval.string = yyvsp[0].string;
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string); printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string);
; }
break;} break;
case 64:
case 65:
#line 323 "zconf.y" #line 323 "zconf.y"
{ {
zconf_nextfile(yyvsp[-1].string); zconf_nextfile(yyvsp[-1].string);
; }
break;} break;
case 65:
case 66:
#line 330 "zconf.y" #line 330 "zconf.y"
{ {
menu_add_entry(NULL); menu_add_entry(NULL);
menu_add_prop(P_COMMENT, yyvsp[0].string, NULL, NULL); menu_add_prop(P_COMMENT, yyvsp[0].string, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 66:
case 67:
#line 337 "zconf.y" #line 337 "zconf.y"
{ {
menu_end_entry(); menu_end_entry();
; }
break;} break;
case 67:
case 68:
#line 344 "zconf.y" #line 344 "zconf.y"
{ {
printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
zconf_starthelp(); zconf_starthelp();
; }
break;} break;
case 68:
case 69:
#line 350 "zconf.y" #line 350 "zconf.y"
{ {
current_entry->sym->help = yyvsp[0].string; current_entry->sym->help = yyvsp[0].string;
; }
break;} break;
case 71:
case 72:
#line 359 "zconf.y" #line 359 "zconf.y"
{ ; { }
break;} break;
case 72:
case 73:
#line 362 "zconf.y" #line 362 "zconf.y"
{ {
menu_add_dep(yyvsp[0].expr); menu_add_dep(yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 73:
case 74:
#line 367 "zconf.y" #line 367 "zconf.y"
{ {
menu_add_dep(yyvsp[0].expr); menu_add_dep(yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 74:
case 75:
#line 372 "zconf.y" #line 372 "zconf.y"
{ {
menu_add_dep(yyvsp[0].expr); menu_add_dep(yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno()); printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
; }
break;} break;
case 76:
case 77:
#line 382 "zconf.y" #line 382 "zconf.y"
{ {
menu_add_prop(P_PROMPT, yyvsp[0].string, NULL, NULL); menu_add_prop(P_PROMPT, yyvsp[0].string, NULL, NULL);
; }
break;} break;
case 77:
case 78:
#line 386 "zconf.y" #line 386 "zconf.y"
{ {
menu_add_prop(P_PROMPT, yyvsp[-2].string, NULL, yyvsp[0].expr); menu_add_prop(P_PROMPT, yyvsp[-2].string, NULL, yyvsp[0].expr);
; }
break;} break;
case 80:
case 81:
#line 394 "zconf.y" #line 394 "zconf.y"
{ yyval.token = T_ENDMENU; ; { yyval.token = T_ENDMENU; }
break;} break;
case 81:
case 82:
#line 395 "zconf.y" #line 395 "zconf.y"
{ yyval.token = T_ENDCHOICE; ; { yyval.token = T_ENDCHOICE; }
break;} break;
case 82:
case 83:
#line 396 "zconf.y" #line 396 "zconf.y"
{ yyval.token = T_ENDIF; ; { yyval.token = T_ENDIF; }
break;} break;
case 85:
case 86:
#line 402 "zconf.y" #line 402 "zconf.y"
{ yyval.expr = NULL; ; { yyval.expr = NULL; }
break;} break;
case 86:
case 87:
#line 403 "zconf.y" #line 403 "zconf.y"
{ yyval.expr = yyvsp[0].expr; ; { yyval.expr = yyvsp[0].expr; }
break;} break;
case 87:
case 88:
#line 406 "zconf.y" #line 406 "zconf.y"
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ; { yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); }
break;} break;
case 88:
case 89:
#line 407 "zconf.y" #line 407 "zconf.y"
{ yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ; { yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); }
break;} break;
case 89:
case 90:
#line 408 "zconf.y" #line 408 "zconf.y"
{ yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ; { yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); }
break;} break;
case 90:
case 91:
#line 409 "zconf.y" #line 409 "zconf.y"
{ yyval.expr = yyvsp[-1].expr; ; { yyval.expr = yyvsp[-1].expr; }
break;} break;
case 91:
case 92:
#line 410 "zconf.y" #line 410 "zconf.y"
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ; { yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); }
break;} break;
case 92:
case 93:
#line 411 "zconf.y" #line 411 "zconf.y"
{ yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ; { yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); }
break;} break;
case 93:
case 94:
#line 412 "zconf.y" #line 412 "zconf.y"
{ yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ; { yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); }
break;} break;
case 94:
case 95:
#line 415 "zconf.y" #line 415 "zconf.y"
{ yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ; { yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); }
break;} break;
case 95:
case 96:
#line 416 "zconf.y" #line 416 "zconf.y"
{ yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ; { yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); }
break;} break;
}
#line 705 "/usr/share/bison/bison.simple" }
/* Line 1016 of /usr/share/bison/yacc.c. */
#line 1565 "zconf.tab.c"
yyvsp -= yylen; yyvsp -= yylen;
yyssp -= yylen; yyssp -= yylen;
#if YYLSP_NEEDED
yylsp -= yylen;
#endif
#if YYDEBUG #if YYDEBUG
if (yydebug) if (yydebug)
...@@ -1420,9 +1579,7 @@ case 95: ...@@ -1420,9 +1579,7 @@ case 95:
#endif #endif
*++yyvsp = yyval; *++yyvsp = yyval;
#if YYLSP_NEEDED
*++yylsp = yyloc;
#endif
/* Now `shift' the result of the reduction. Determine what state /* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule that goes to, based on the state we popped back to and the rule
...@@ -1430,11 +1587,11 @@ case 95: ...@@ -1430,11 +1587,11 @@ case 95:
yyn = yyr1[yyn]; yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTBASE] + *yyssp; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate]; yystate = yytable[yystate];
else else
yystate = yydefgoto[yyn - YYNTBASE]; yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate; goto yynewstate;
...@@ -1447,13 +1604,13 @@ yyerrlab: ...@@ -1447,13 +1604,13 @@ yyerrlab:
if (!yyerrstatus) if (!yyerrstatus)
{ {
++yynerrs; ++yynerrs;
#if YYERROR_VERBOSE
#ifdef YYERROR_VERBOSE
yyn = yypact[yystate]; yyn = yypact[yystate];
if (yyn > YYFLAG && yyn < YYLAST) if (YYPACT_NINF < yyn && yyn < YYLAST)
{ {
YYSIZE_T yysize = 0; YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar);
char *yymsg; char *yymsg;
int yyx, yycount; int yyx, yycount;
...@@ -1462,15 +1619,15 @@ yyerrlab: ...@@ -1462,15 +1619,15 @@ yyerrlab:
YYCHECK. */ YYCHECK. */
for (yyx = yyn < 0 ? -yyn : 0; for (yyx = yyn < 0 ? -yyn : 0;
yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
if (yycheck[yyx + yyn] == yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
yysize += yystrlen (yytname[yyx]) + 15, yycount++; yysize += yystrlen (yytname[yyx]) + 15, yycount++;
yysize += yystrlen ("parse error, unexpected ") + 1; yysize += yystrlen ("parse error, unexpected ") + 1;
yysize += yystrlen (yytname[YYTRANSLATE (yychar)]); yysize += yystrlen (yytname[yytype]);
yymsg = (char *) YYSTACK_ALLOC (yysize); yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0) if (yymsg != 0)
{ {
char *yyp = yystpcpy (yymsg, "parse error, unexpected "); char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]); yyp = yystpcpy (yyp, yytname[yytype]);
if (yycount < 5) if (yycount < 5)
{ {
...@@ -1478,7 +1635,7 @@ yyerrlab: ...@@ -1478,7 +1635,7 @@ yyerrlab:
for (yyx = yyn < 0 ? -yyn : 0; for (yyx = yyn < 0 ? -yyn : 0;
yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx < (int) (sizeof (yytname) / sizeof (char *));
yyx++) yyx++)
if (yycheck[yyx + yyn] == yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{ {
const char *yyq = ! yycount ? ", expecting " : " or "; const char *yyq = ! yycount ? ", expecting " : " or ";
yyp = yystpcpy (yyp, yyq); yyp = yystpcpy (yyp, yyq);
...@@ -1493,99 +1650,90 @@ yyerrlab: ...@@ -1493,99 +1650,90 @@ yyerrlab:
yyerror ("parse error; also virtual memory exhausted"); yyerror ("parse error; also virtual memory exhausted");
} }
else else
#endif /* defined (YYERROR_VERBOSE) */ #endif /* YYERROR_VERBOSE */
yyerror ("parse error"); yyerror ("parse error");
} }
goto yyerrlab1; goto yyerrlab1;
/*--------------------------------------------------. /*----------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action | | yyerrlab1 -- error raised explicitly by an action. |
`--------------------------------------------------*/ `----------------------------------------------------*/
yyerrlab1: yyerrlab1:
if (yyerrstatus == 3) if (yyerrstatus == 3)
{ {
/* If just tried and failed to reuse lookahead token after an /* If just tried and failed to reuse lookahead token after an
error, discard it. */ error, discard it. */
/* return failure if at end of input */ /* Return failure if at end of input. */
if (yychar == YYEOF) if (yychar == YYEOF)
YYABORT; {
/* Pop the error token. */
YYPOPSTACK;
/* Pop the rest of the stack. */
while (yyssp > yyss)
{
YYDPRINTF ((stderr, "Error: popping "));
YYDSYMPRINT ((stderr,
yystos[*yyssp],
*yyvsp));
YYDPRINTF ((stderr, "\n"));
yydestruct (yystos[*yyssp], *yyvsp);
YYPOPSTACK;
}
YYABORT;
}
YYDPRINTF ((stderr, "Discarding token %d (%s).\n", YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
yychar, yytname[yychar1])); yychar, yytname[yychar1]));
yydestruct (yychar1, yylval);
yychar = YYEMPTY; yychar = YYEMPTY;
} }
/* Else will try to reuse lookahead token after shifting the error /* Else will try to reuse lookahead token after shifting the error
token. */ token. */
yyerrstatus = 3; /* Each real token shifted decrements this */ yyerrstatus = 3; /* Each real token shifted decrements this. */
goto yyerrhandle;
for (;;)
{
yyn = yypact[yystate];
if (yyn != YYPACT_NINF)
{
yyn += YYTERROR;
if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
{
yyn = yytable[yyn];
if (0 < yyn)
break;
}
}
/*-------------------------------------------------------------------. /* Pop the current state because it cannot handle the error token. */
| yyerrdefault -- current state does not do anything special for the | if (yyssp == yyss)
| error token. | YYABORT;
`-------------------------------------------------------------------*/
yyerrdefault:
#if 0
/* This is wrong; only states that explicitly want error tokens
should shift them. */
/* If its default is to accept any token, ok. Otherwise pop it. */ YYDPRINTF ((stderr, "Error: popping "));
yyn = yydefact[yystate]; YYDSYMPRINT ((stderr,
if (yyn) yystos[*yyssp], *yyvsp));
goto yydefault; YYDPRINTF ((stderr, "\n"));
#endif
yydestruct (yystos[yystate], *yyvsp);
yyvsp--;
yystate = *--yyssp;
/*---------------------------------------------------------------.
| yyerrpop -- pop the current state because it cannot handle the |
| error token |
`---------------------------------------------------------------*/
yyerrpop:
if (yyssp == yyss)
YYABORT;
yyvsp--;
yystate = *--yyssp;
#if YYLSP_NEEDED
yylsp--;
#endif
#if YYDEBUG #if YYDEBUG
if (yydebug) if (yydebug)
{ {
short *yyssp1 = yyss - 1; short *yyssp1 = yyss - 1;
YYFPRINTF (stderr, "Error: state stack now"); YYFPRINTF (stderr, "Error: state stack now");
while (yyssp1 != yyssp) while (yyssp1 != yyssp)
YYFPRINTF (stderr, " %d", *++yyssp1); YYFPRINTF (stderr, " %d", *++yyssp1);
YYFPRINTF (stderr, "\n"); YYFPRINTF (stderr, "\n");
} }
#endif #endif
/*--------------.
| yyerrhandle. |
`--------------*/
yyerrhandle:
yyn = yypact[yystate];
if (yyn == YYFLAG)
goto yyerrdefault;
yyn += YYTERROR;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
goto yyerrdefault;
yyn = yytable[yyn];
if (yyn < 0)
{
if (yyn == YYFLAG)
goto yyerrpop;
yyn = -yyn;
goto yyreduce;
} }
else if (yyn == 0)
goto yyerrpop;
if (yyn == YYFINAL) if (yyn == YYFINAL)
YYACCEPT; YYACCEPT;
...@@ -1593,9 +1741,7 @@ yyerrhandle: ...@@ -1593,9 +1741,7 @@ yyerrhandle:
YYDPRINTF ((stderr, "Shifting error token, ")); YYDPRINTF ((stderr, "Shifting error token, "));
*++yyvsp = yylval; *++yyvsp = yylval;
#if YYLSP_NEEDED
*++yylsp = yylloc;
#endif
yystate = yyn; yystate = yyn;
goto yynewstate; goto yynewstate;
...@@ -1615,13 +1761,15 @@ yyabortlab: ...@@ -1615,13 +1761,15 @@ yyabortlab:
yyresult = 1; yyresult = 1;
goto yyreturn; goto yyreturn;
/*---------------------------------------------. #ifndef yyoverflow
| yyoverflowab -- parser overflow comes here. | /*----------------------------------------------.
`---------------------------------------------*/ | yyoverflowlab -- parser overflow comes here. |
`----------------------------------------------*/
yyoverflowlab: yyoverflowlab:
yyerror ("parser stack overflow"); yyerror ("parser stack overflow");
yyresult = 2; yyresult = 2;
/* Fall through. */ /* Fall through. */
#endif
yyreturn: yyreturn:
#ifndef yyoverflow #ifndef yyoverflow
...@@ -1630,6 +1778,8 @@ yyreturn: ...@@ -1630,6 +1778,8 @@ yyreturn:
#endif #endif
return yyresult; return yyresult;
} }
#line 419 "zconf.y" #line 419 "zconf.y"
...@@ -1864,3 +2014,4 @@ void zconfdump(FILE *out) ...@@ -1864,3 +2014,4 @@ void zconfdump(FILE *out)
#include "expr.c" #include "expr.c"
#include "symbol.c" #include "symbol.c"
#include "menu.c" #include "menu.c"
/* A Bison parser, made from zconf.y, by GNU bison 1.75. */
/* Skeleton parser for Yacc-like parsing with Bison,
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* As a special exception, when this file is copied by Bison into a
Bison output file, you may use that output file without restriction.
This special exception was added by the Free Software Foundation
in version 1.24 of Bison. */
#ifndef BISON_ZCONF_TAB_H #ifndef BISON_ZCONF_TAB_H
# define BISON_ZCONF_TAB_H # define BISON_ZCONF_TAB_H
/* Tokens. */
#ifndef YYTOKENTYPE
# define YYTOKENTYPE
/* Put the tokens into the symbol table, so that GDB and other debuggers
know about them. */
enum yytokentype {
T_MAINMENU = 258,
T_MENU = 259,
T_ENDMENU = 260,
T_SOURCE = 261,
T_CHOICE = 262,
T_ENDCHOICE = 263,
T_COMMENT = 264,
T_CONFIG = 265,
T_HELP = 266,
T_HELPTEXT = 267,
T_IF = 268,
T_ENDIF = 269,
T_DEPENDS = 270,
T_REQUIRES = 271,
T_OPTIONAL = 272,
T_PROMPT = 273,
T_DEFAULT = 274,
T_TRISTATE = 275,
T_BOOLEAN = 276,
T_INT = 277,
T_HEX = 278,
T_WORD = 279,
T_STRING = 280,
T_UNEQUAL = 281,
T_EOF = 282,
T_EOL = 283,
T_CLOSE_PAREN = 284,
T_OPEN_PAREN = 285,
T_ON = 286,
T_OR = 287,
T_AND = 288,
T_EQUAL = 289,
T_NOT = 290
};
#endif
#define T_MAINMENU 258
#define T_MENU 259
#define T_ENDMENU 260
#define T_SOURCE 261
#define T_CHOICE 262
#define T_ENDCHOICE 263
#define T_COMMENT 264
#define T_CONFIG 265
#define T_HELP 266
#define T_HELPTEXT 267
#define T_IF 268
#define T_ENDIF 269
#define T_DEPENDS 270
#define T_REQUIRES 271
#define T_OPTIONAL 272
#define T_PROMPT 273
#define T_DEFAULT 274
#define T_TRISTATE 275
#define T_BOOLEAN 276
#define T_INT 277
#define T_HEX 278
#define T_WORD 279
#define T_STRING 280
#define T_UNEQUAL 281
#define T_EOF 282
#define T_EOL 283
#define T_CLOSE_PAREN 284
#define T_OPEN_PAREN 285
#define T_ON 286
#define T_OR 287
#define T_AND 288
#define T_EQUAL 289
#define T_NOT 290
#ifndef YYSTYPE #ifndef YYSTYPE
typedef union #line 33 "zconf.y"
{ typedef union {
int token; int token;
char *string; char *string;
struct symbol *symbol; struct symbol *symbol;
struct expr *expr; struct expr *expr;
struct menu *menu; struct menu *menu;
} yystype; } yystype;
/* Line 1281 of /usr/share/bison/yacc.c. */
#line 118 "zconf.tab.h"
# define YYSTYPE yystype # define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1
#endif #endif
# define T_MAINMENU 257
# define T_MENU 258
# define T_ENDMENU 259
# define T_SOURCE 260
# define T_CHOICE 261
# define T_ENDCHOICE 262
# define T_COMMENT 263
# define T_CONFIG 264
# define T_HELP 265
# define T_HELPTEXT 266
# define T_IF 267
# define T_ENDIF 268
# define T_DEPENDS 269
# define T_REQUIRES 270
# define T_OPTIONAL 271
# define T_PROMPT 272
# define T_DEFAULT 273
# define T_TRISTATE 274
# define T_BOOLEAN 275
# define T_INT 276
# define T_HEX 277
# define T_WORD 278
# define T_STRING 279
# define T_UNEQUAL 280
# define T_EOF 281
# define T_EOL 282
# define T_CLOSE_PAREN 283
# define T_OPEN_PAREN 284
# define T_ON 285
# define T_OR 286
# define T_AND 287
# define T_EQUAL 288
# define T_NOT 289
extern YYSTYPE zconflval; extern YYSTYPE zconflval;
#endif /* not BISON_ZCONF_TAB_H */ #endif /* not BISON_ZCONF_TAB_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment