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
# In this section, we need .config
-include ..config.cmd
-include .config.cmd
ifdef CONFIG_MODULES
export EXPORT_FLAGS := -DEXPORT_SYMTAB
......
Menuconfig gives the Linux kernel configuration a long needed face
lift. Featuring text based color menus and dialogs, it does not
require X Windows. With this utility you can easily select a kernel
option to modify without sifting through 100 other options.
require X Windows (however, you need ncurses in order to use it).
With this utility you can easily select a kernel option to modify
without sifting through 100 other options.
Overview
--------
......@@ -172,11 +173,17 @@ COMPATIBILITY ISSUE:
******** IMPORTANT, OPTIONAL ALTERNATE PERSONALITY AVAILABLE ********
******** ********
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
Menuconfig script and change the line "single_menu_mode=" to
"single_menu_mode=TRUE".
menu, rather than the default multimenu hierarchy, run the menuconfig
with MENUCONFIG_MODE environment variable set to single_menu. Example:
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)
exit(1);
}
case ask_all:
fflush(stdout);
fgets(line, 128, stdin);
return;
case set_default:
......@@ -366,7 +367,7 @@ static int conf_choice(struct menu *menu)
for (cmenu = menu->list; cmenu; cmenu = cmenu->next) {
if (!cmenu->sym || !menu_is_visible(cmenu))
continue;
if (!strncmp(line, menu_get_prompt(cmenu), len)) {
if (!strncasecmp(line, menu_get_prompt(cmenu), len)) {
def_menu = cmenu;
break;
}
......
......@@ -117,7 +117,6 @@ int conf_read(const char *name)
*p++ = 0;
if (strncmp(p, "is not set", 10))
continue;
//printf("%s -> n\n", line + 9);
sym = sym_lookup(line + 9, 0);
switch (sym->type) {
case S_BOOLEAN:
......@@ -139,23 +138,29 @@ int conf_read(const char *name)
p2 = strchr(p, '\n');
if (p2)
*p2 = 0;
//printf("%s -> %s\n", line + 7, p);
sym = sym_find(line + 7);
if (!sym) {
fprintf(stderr, "%s:%d: trying to assign nonexistent symbol %s\n", name, lineno, line + 7);
break;
}
switch (sym->type) {
case S_BOOLEAN:
sym->def = symbol_yes.curr;
sym->flags &= ~SYMBOL_NEW;
break;
case S_TRISTATE:
if (p[0] == 'm')
sym->def = symbol_mod.curr;
else
sym->def = symbol_yes.curr;
sym->flags &= ~SYMBOL_NEW;
if (p[0] == 'm') {
S_TRI(sym->def) = mod;
sym->flags &= ~SYMBOL_NEW;
break;
}
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;
case S_STRING:
if (*p++ != '"')
......
......@@ -169,7 +169,7 @@ struct menu {
//char *help;
struct file *file;
int lineno;
//void *data;
void *data;
};
#ifndef SWIG
......
......@@ -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, 77, 77, 77, 77, 77,
77, 77, 77, 77, 77, 77, 77
......@@ -564,11 +564,11 @@ static yyconst short yy_nxt[][37] =
},
{
11, 78, 79, 80, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
11, 79, 79, 80, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
78, 78, 78, 78, 78, 78, 78, 78, 78, 78,
78, 78, 78, 78, 78, 78, 78
79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
79, 79, 79, 79, 79, 79, 79
},
{
......@@ -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,
......@@ -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
......@@ -906,7 +906,7 @@ static yyconst short yy_nxt[][37] =
{
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, -83
},
......@@ -944,14 +944,14 @@ static yyconst short yy_nxt[][37] =
{
11, -88, -88, -88, -88, -88, -88, -88, -88, -88,
-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
},
{
11, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-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
},
......@@ -959,20 +959,20 @@ static yyconst short yy_nxt[][37] =
{
11, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-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
},
{
11, -91, -91, -91, -91, -91, -91, -91, -91, -91,
-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
},
{
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, -92
......@@ -981,14 +981,14 @@ static yyconst short yy_nxt[][37] =
{
11, -93, -93, -93, -93, -93, -93, -93, -93, -93,
-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
},
{
11, -94, -94, -94, -94, -94, -94, -94, -94, -94,
-94, -94, -94, 56, -94, -94, 56, 56, 114, 56,
56, 56, 56, 56, 115, 56, 116, 56, 56, 56,
-94, -94, -94, 56, -94, -94, 56, 56, 113, 56,
56, 56, 56, 56, 114, 56, 115, 56, 56, 56,
56, 56, 56, 56, 56, 56, -94
},
......@@ -996,7 +996,7 @@ static yyconst short yy_nxt[][37] =
{
11, -95, -95, -95, -95, -95, -95, -95, -95, -95,
-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
},
......@@ -1018,7 +1018,7 @@ static yyconst short yy_nxt[][37] =
{
11, -98, -98, -98, -98, -98, -98, -98, -98, -98,
-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
},
......@@ -1026,21 +1026,21 @@ static yyconst short yy_nxt[][37] =
11, -99, -99, -99, -99, -99, -99, -99, -99, -99,
-99, -99, -99, 56, -99, -99, 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,
-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
},
{
11, -101, -101, -101, -101, -101, -101, -101, -101, -101,
-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
},
......@@ -1049,20 +1049,20 @@ static yyconst short yy_nxt[][37] =
-102, -102, -102, 56, -102, -102, 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,
-103, -103, -103, 56, -103, -103, 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,
-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
},
......@@ -1071,35 +1071,35 @@ static yyconst short yy_nxt[][37] =
11, -105, -105, -105, -105, -105, -105, -105, -105, -105,
-105, -105, -105, 56, -105, -105, 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,
-106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-106, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-106, -106, -106, -106, -106, -106, -106
11, -106, -106, -106, -106, -106, -106, -106, -106, -106,
-106, 84, 84, 84, -106, -106, 84, 84, 84, 84,
84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
84, 84, 84, 84, 84, 84, -106
},
{
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,
84, 84, 84, 84, 84, 84, -107
125, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -107
},
{
11, -108, -108, -108, -108, -108, -108, -108, -108, -108,
-108, -108, -108, 56, -108, -108, 56, 56, 56, 56,
126, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-108, -108, -108, 56, -108, -108, 56, 56, 126, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -108
},
{
11, -109, -109, -109, -109, -109, -109, -109, -109, -109,
-109, -109, -109, 56, -109, -109, 56, 56, 127, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-109, -109, -109, 56, -109, -109, 56, 56, 56, 56,
127, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -109
},
......@@ -1107,36 +1107,36 @@ static yyconst short yy_nxt[][37] =
{
11, -110, -110, -110, -110, -110, -110, -110, -110, -110,
-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
},
{
11, -111, -111, -111, -111, -111, -111, -111, -111, -111,
-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, -111
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 129, 56, -111
},
{
11, -112, -112, -112, -112, -112, -112, -112, -112, -112,
-112, -112, -112, 56, -112, -112, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 130, 56, -112
56, 56, 56, 56, 56, 56, 56, 130, 56, 56,
56, 56, 56, 56, 56, 56, -112
},
{
11, -113, -113, -113, -113, -113, -113, -113, -113, -113,
-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
},
{
11, -114, -114, -114, -114, -114, -114, -114, -114, -114,
-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
},
......@@ -1144,14 +1144,14 @@ static yyconst short yy_nxt[][37] =
{
11, -115, -115, -115, -115, -115, -115, -115, -115, -115,
-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
},
{
11, -116, -116, -116, -116, -116, -116, -116, -116, -116,
-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
},
......@@ -1159,21 +1159,21 @@ static yyconst short yy_nxt[][37] =
11, -117, -117, -117, -117, -117, -117, -117, -117, -117,
-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
},
{
11, -118, -118, -118, -118, -118, -118, -118, -118, -118,
-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
},
{
11, -119, -119, -119, -119, -119, -119, -119, -119, -119,
-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
},
......@@ -1181,51 +1181,51 @@ static yyconst short yy_nxt[][37] =
{
11, -120, -120, -120, -120, -120, -120, -120, -120, -120,
-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
},
{
11, -121, -121, -121, -121, -121, -121, -121, -121, -121,
-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
},
{
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
},
{
11, -123, -123, -123, -123, -123, -123, -123, -123, -123,
-123, -123, -123, 56, -123, -123, 56, 56, 139, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-123, -123, -123, 56, -123, -123, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 139, 56, 56,
56, 56, 56, 56, 56, 56, -123
},
{
11, -124, -124, -124, -124, -124, -124, -124, -124, -124,
-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, -124
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 140, 56, 56, -124
},
{
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, 141, 56, 56, -125
56, 56, 56, 56, 56, 56, -125
},
{
11, -126, -126, -126, -126, -126, -126, -126, -126, -126,
-126, -126, -126, 56, -126, -126, 142, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-126, -126, -126, 56, -126, -126, 56, 56, 56, 56,
142, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -126
},
......@@ -1233,36 +1233,36 @@ static yyconst short yy_nxt[][37] =
11, -127, -127, -127, -127, -127, -127, -127, -127, -127,
-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
},
{
11, -128, -128, -128, -128, -128, -128, -128, -128, -128,
-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
},
{
11, -129, -129, -129, -129, -129, -129, -129, -129, -129,
-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
},
{
11, -130, -130, -130, -130, -130, -130, -130, -130, -130,
-130, -130, -130, 56, -130, -130, 56, 56, 56, 56,
56, 56, 56, 56, 56, 146, 56, 56, 56, 56,
-130, -130, -130, 56, -130, -130, 56, 56, 56, 146,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -130
},
{
11, -131, -131, -131, -131, -131, -131, -131, -131, -131,
-131, -131, -131, 56, -131, -131, 56, 56, 56, 147,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-131, -131, -131, 56, -131, -131, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 147, 56,
56, 56, 56, 56, 56, 56, -131
},
......@@ -1270,21 +1270,21 @@ static yyconst short yy_nxt[][37] =
11, -132, -132, -132, -132, -132, -132, -132, -132, -132,
-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
},
{
11, -133, -133, -133, -133, -133, -133, -133, -133, -133,
-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
},
{
11, -134, -134, -134, -134, -134, -134, -134, -134, -134,
-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
},
......@@ -1292,15 +1292,15 @@ static yyconst short yy_nxt[][37] =
{
11, -135, -135, -135, -135, -135, -135, -135, -135, -135,
-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
},
{
11, -136, -136, -136, -136, -136, -136, -136, -136, -136,
-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, -136
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 151, 56, 56, -136
},
{
......@@ -1308,35 +1308,35 @@ static yyconst short yy_nxt[][37] =
-137, -137, -137, 56, -137, -137, 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,
-138, -138, -138, 56, -138, -138, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 153, 56, 56, 56, 56, -138
153, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -138
},
{
11, -139, -139, -139, -139, -139, -139, -139, -139, -139,
-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
},
{
11, -140, -140, -140, -140, -140, -140, -140, -140, -140,
-140, -140, -140, 56, -140, -140, 56, 56, 56, 56,
56, 56, 155, 56, 56, 56, 56, 56, 56, 56,
-140, -140, -140, 56, -140, -140, 155, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -140
},
{
11, -141, -141, -141, -141, -141, -141, -141, -141, -141,
-141, -141, -141, 56, -141, -141, 156, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-141, -141, -141, 56, -141, -141, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 156, 56, 56,
56, 56, 56, 56, 56, 56, -141
},
......@@ -1344,7 +1344,7 @@ static yyconst short yy_nxt[][37] =
11, -142, -142, -142, -142, -142, -142, -142, -142, -142,
-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
},
......@@ -1352,14 +1352,14 @@ static yyconst short yy_nxt[][37] =
11, -143, -143, -143, -143, -143, -143, -143, -143, -143,
-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, -143
56, 56, 56, 157, 56, 56, -143
},
{
11, -144, -144, -144, -144, -144, -144, -144, -144, -144,
-144, -144, -144, 56, -144, -144, 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] =
11, -145, -145, -145, -145, -145, -145, -145, -145, -145,
-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, -145
56, 56, 56, 158, 56, 56, -145
},
{
11, -146, -146, -146, -146, -146, -146, -146, -146, -146,
-146, -146, -146, 56, -146, -146, 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,
-147, -147, -147, 56, -147, -147, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 160, 56, 56, 56, -147
56, 56, 56, 56, 160, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -147
},
{
11, -148, -148, -148, -148, -148, -148, -148, -148, -148,
-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, -148
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 161, 56, -148
},
{
11, -149, -149, -149, -149, -149, -149, -149, -149, -149,
-149, -149, -149, 56, -149, -149, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 162, 56, -149
56, 56, 56, 56, 56, 56, 56, 162, 56, 56,
56, 56, 56, 56, 56, 56, -149
},
{
11, -150, -150, -150, -150, -150, -150, -150, -150, -150,
-150, -150, -150, 56, -150, -150, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 163, 56, 56,
-150, -150, -150, 56, -150, -150, 163, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -150
},
{
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, -151
},
......@@ -1418,14 +1418,14 @@ static yyconst short yy_nxt[][37] =
11, -152, -152, -152, -152, -152, -152, -152, -152, -152,
-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
},
{
11, -153, -153, -153, -153, -153, -153, -153, -153, -153,
-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
},
......@@ -1441,14 +1441,14 @@ static yyconst short yy_nxt[][37] =
11, -155, -155, -155, -155, -155, -155, -155, -155, -155,
-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, -155
56, 56, 56, 165, 56, 56, -155
},
{
11, -156, -156, -156, -156, -156, -156, -156, -156, -156,
-156, -156, -156, 56, -156, -156, 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] =
{
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, -160
},
{
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, -161
},
......@@ -1493,29 +1493,29 @@ static yyconst short yy_nxt[][37] =
-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, -162
56, 56, 56, 56, 167, 56, -162
},
{
11, -163, -163, -163, -163, -163, -163, -163, -163, -163,
-163, -163, -163, 56, -163, -163, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 168, 56, -163
56, 56, 56, 56, 56, 168, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -163
},
{
11, -164, -164, -164, -164, -164, -164, -164, -164, -164,
-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, -164
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 169, 56, 56, 56, -164
},
{
11, -165, -165, -165, -165, -165, -165, -165, -165, -165,
-165, -165, -165, 56, -165, -165, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 170, 56, 56, 56, -165
170, 56, 56, 56, 56, 56, 56, 56, 56, 56,
56, 56, 56, 56, 56, 56, -165
},
{
......@@ -1529,7 +1529,7 @@ static yyconst short yy_nxt[][37] =
11, -167, -167, -167, -167, -167, -167, -167, -167, -167,
-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
},
......@@ -1562,14 +1562,6 @@ static yyconst short yy_nxt[][37] =
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[] ));
#define YY_NUM_RULES 55
#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,
56, 5, 4, 3, 2, 29, 30, 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,
4, 3, 2, 2, 1, 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,
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, 28, 14, 28, 7, 28,
28, 28, 28, 28, 28, 42, 23, 28, 28, 28,
28, 28, 28, 28, 28, 14, 28, 7, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 16, 28, 28, 28, 28, 28, 28, 28,
28, 28, 10, 28, 13, 28, 28, 28, 28, 28,
28, 21, 28, 9, 27, 28, 24, 12, 20, 17,
28, 8, 28, 28, 28, 28, 28, 6, 19, 18,
22, 11
28, 16, 28, 28, 28, 28, 28, 28, 28, 28,
28, 10, 28, 13, 28, 28, 28, 28, 28, 28,
21, 28, 9, 27, 28, 24, 12, 20, 17, 28,
8, 28, 28, 28, 28, 28, 6, 19, 18, 22,
11
} ;
static yyconst int yy_ec[256] =
......@@ -1655,6 +1647,7 @@ static yyconst int yy_ec[256] =
char *yytext;
#line 1 "zconf.l"
#define INITIAL 0
#define YY_NEVER_INTERACTIVE 1
#define COMMAND 1
#define HELP 2
#define STRING 3
......@@ -1722,7 +1715,7 @@ void alloc_string(const char *str, int size)
memcpy(text, str, size);
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
* section 1.
......@@ -1874,7 +1867,7 @@ YY_DECL
int str = 0;
int ts, i;
#line 1878 "lex.zconf.c"
#line 1871 "lex.zconf.c"
if ( yy_init )
{
......@@ -1957,125 +1950,123 @@ YY_RULE_SETUP
#line 84 "zconf.l"
{
unput(yytext[0]);
//printf("new config: ");
//symbol_end(NULL);
BEGIN(COMMAND);
}
YY_BREAK
case 6:
YY_RULE_SETUP
#line 93 "zconf.l"
#line 91 "zconf.l"
BEGIN(PARAM); return T_MAINMENU;
YY_BREAK
case 7:
YY_RULE_SETUP
#line 94 "zconf.l"
#line 92 "zconf.l"
BEGIN(PARAM); return T_MENU;
YY_BREAK
case 8:
YY_RULE_SETUP
#line 95 "zconf.l"
#line 93 "zconf.l"
BEGIN(PARAM); return T_ENDMENU;
YY_BREAK
case 9:
YY_RULE_SETUP
#line 96 "zconf.l"
#line 94 "zconf.l"
BEGIN(PARAM); return T_SOURCE;
YY_BREAK
case 10:
YY_RULE_SETUP
#line 97 "zconf.l"
#line 95 "zconf.l"
BEGIN(PARAM); return T_CHOICE;
YY_BREAK
case 11:
YY_RULE_SETUP
#line 98 "zconf.l"
#line 96 "zconf.l"
BEGIN(PARAM); return T_ENDCHOICE;
YY_BREAK
case 12:
YY_RULE_SETUP
#line 99 "zconf.l"
#line 97 "zconf.l"
BEGIN(PARAM); return T_COMMENT;
YY_BREAK
case 13:
YY_RULE_SETUP
#line 100 "zconf.l"
#line 98 "zconf.l"
BEGIN(PARAM); return T_CONFIG;
YY_BREAK
case 14:
YY_RULE_SETUP
#line 101 "zconf.l"
#line 99 "zconf.l"
BEGIN(PARAM); return T_HELP;
YY_BREAK
case 15:
YY_RULE_SETUP
#line 102 "zconf.l"
#line 100 "zconf.l"
BEGIN(PARAM); return T_IF;
YY_BREAK
case 16:
YY_RULE_SETUP
#line 103 "zconf.l"
#line 101 "zconf.l"
BEGIN(PARAM); return T_ENDIF;
YY_BREAK
case 17:
YY_RULE_SETUP
#line 104 "zconf.l"
#line 102 "zconf.l"
BEGIN(PARAM); return T_DEPENDS;
YY_BREAK
case 18:
YY_RULE_SETUP
#line 105 "zconf.l"
#line 103 "zconf.l"
BEGIN(PARAM); return T_REQUIRES;
YY_BREAK
case 19:
YY_RULE_SETUP
#line 106 "zconf.l"
#line 104 "zconf.l"
BEGIN(PARAM); return T_OPTIONAL;
YY_BREAK
case 20:
YY_RULE_SETUP
#line 107 "zconf.l"
#line 105 "zconf.l"
BEGIN(PARAM); return T_DEFAULT;
YY_BREAK
case 21:
YY_RULE_SETUP
#line 108 "zconf.l"
#line 106 "zconf.l"
BEGIN(PARAM); return T_PROMPT;
YY_BREAK
case 22:
YY_RULE_SETUP
#line 109 "zconf.l"
#line 107 "zconf.l"
BEGIN(PARAM); return T_TRISTATE;
YY_BREAK
case 23:
YY_RULE_SETUP
#line 110 "zconf.l"
#line 108 "zconf.l"
BEGIN(PARAM); return T_BOOLEAN;
YY_BREAK
case 24:
YY_RULE_SETUP
#line 111 "zconf.l"
#line 109 "zconf.l"
BEGIN(PARAM); return T_BOOLEAN;
YY_BREAK
case 25:
YY_RULE_SETUP
#line 112 "zconf.l"
#line 110 "zconf.l"
BEGIN(PARAM); return T_INT;
YY_BREAK
case 26:
YY_RULE_SETUP
#line 113 "zconf.l"
#line 111 "zconf.l"
BEGIN(PARAM); return T_HEX;
YY_BREAK
case 27:
YY_RULE_SETUP
#line 114 "zconf.l"
#line 112 "zconf.l"
BEGIN(PARAM); return T_STRING;
YY_BREAK
case 28:
YY_RULE_SETUP
#line 115 "zconf.l"
#line 113 "zconf.l"
{
alloc_string(yytext, yyleng);
zconflval.string = text;
......@@ -2084,64 +2075,64 @@ YY_RULE_SETUP
YY_BREAK
case 29:
YY_RULE_SETUP
#line 120 "zconf.l"
#line 118 "zconf.l"
YY_BREAK
case 30:
YY_RULE_SETUP
#line 121 "zconf.l"
#line 119 "zconf.l"
current_file->lineno++; BEGIN(INITIAL);
YY_BREAK
case 31:
YY_RULE_SETUP
#line 125 "zconf.l"
#line 123 "zconf.l"
return T_AND;
YY_BREAK
case 32:
YY_RULE_SETUP
#line 126 "zconf.l"
#line 124 "zconf.l"
return T_OR;
YY_BREAK
case 33:
YY_RULE_SETUP
#line 127 "zconf.l"
#line 125 "zconf.l"
return T_OPEN_PAREN;
YY_BREAK
case 34:
YY_RULE_SETUP
#line 128 "zconf.l"
#line 126 "zconf.l"
return T_CLOSE_PAREN;
YY_BREAK
case 35:
YY_RULE_SETUP
#line 129 "zconf.l"
#line 127 "zconf.l"
return T_NOT;
YY_BREAK
case 36:
YY_RULE_SETUP
#line 130 "zconf.l"
#line 128 "zconf.l"
return T_EQUAL;
YY_BREAK
case 37:
YY_RULE_SETUP
#line 131 "zconf.l"
#line 129 "zconf.l"
return T_UNEQUAL;
YY_BREAK
case 38:
YY_RULE_SETUP
#line 132 "zconf.l"
#line 130 "zconf.l"
return T_IF;
YY_BREAK
case 39:
YY_RULE_SETUP
#line 133 "zconf.l"
#line 131 "zconf.l"
return T_ON;
YY_BREAK
case 40:
YY_RULE_SETUP
#line 134 "zconf.l"
#line 132 "zconf.l"
{
str = yytext[0];
new_string();
......@@ -2150,17 +2141,17 @@ YY_RULE_SETUP
YY_BREAK
case 41:
YY_RULE_SETUP
#line 139 "zconf.l"
#line 137 "zconf.l"
BEGIN(INITIAL); current_file->lineno++; return T_EOL;
YY_BREAK
case 42:
YY_RULE_SETUP
#line 140 "zconf.l"
#line 138 "zconf.l"
/* ignore */
YY_BREAK
case 43:
YY_RULE_SETUP
#line 141 "zconf.l"
#line 139 "zconf.l"
{
alloc_string(yytext, yyleng);
zconflval.string = text;
......@@ -2169,66 +2160,87 @@ YY_RULE_SETUP
YY_BREAK
case 44:
YY_RULE_SETUP
#line 146 "zconf.l"
#line 144 "zconf.l"
YY_BREAK
case YY_STATE_EOF(PARAM):
#line 145 "zconf.l"
{
BEGIN(INITIAL);
}
YY_BREAK
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
#line 150 "zconf.l"
#line 151 "zconf.l"
{
append_string(yytext, yyleng);
zconflval.string = text;
return T_STRING;
}
YY_BREAK
case 46:
YY_RULE_SETUP
#line 153 "zconf.l"
#line 156 "zconf.l"
{
if (str == yytext[0]) {
BEGIN(PARAM);
zconflval.string = text;
//printf("s:%s\n", text);
return T_STRING;
} else
append_string(yytext, 1);
append_string(yytext, yyleng);
}
YY_BREAK
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
#line 162 "zconf.l"
append_string(yytext+yyleng-1, 1); current_file->lineno++;
#line 159 "zconf.l"
{
append_string(yytext+1, yyleng);
zconflval.string = text;
return T_STRING;
}
YY_BREAK
case 48:
YY_RULE_SETUP
#line 163 "zconf.l"
append_string(yytext+1, yyleng-1);
#line 164 "zconf.l"
{
append_string(yytext+1, yyleng);
}
YY_BREAK
case 49:
YY_RULE_SETUP
#line 164 "zconf.l"
append_string(yytext+1, 1);
#line 167 "zconf.l"
{
if (str == yytext[0]) {
BEGIN(PARAM);
zconflval.string = text;
return T_STRING;
} else
append_string(yytext, 1);
}
YY_BREAK
case 50:
YY_RULE_SETUP
#line 165 "zconf.l"
#line 175 "zconf.l"
{
//printf(":%d: open string!\n", current_file->lineno+1);
exit(0);
printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
BEGIN(INITIAL);
return T_EOL;
}
YY_BREAK
case YY_STATE_EOF(STRING):
#line 169 "zconf.l"
#line 180 "zconf.l"
{
//printf(":%d: open string!\n", current_file->lineno+1);
exit(0);
BEGIN(INITIAL);
}
YY_BREAK
case 51:
YY_RULE_SETUP
#line 176 "zconf.l"
#line 186 "zconf.l"
{
ts = 0;
for (i = 0; i < yyleng; i++) {
......@@ -2258,7 +2270,7 @@ case 52:
yy_c_buf_p = yy_cp = yy_bp + 1;
YY_DO_BEFORE_ACTION; /* set up yytext again */
YY_RULE_SETUP
#line 199 "zconf.l"
#line 209 "zconf.l"
{
current_file->lineno++;
zconf_endhelp();
......@@ -2267,7 +2279,7 @@ YY_RULE_SETUP
YY_BREAK
case 53:
YY_RULE_SETUP
#line 204 "zconf.l"
#line 214 "zconf.l"
{
current_file->lineno++;
append_string("\n", 1);
......@@ -2275,7 +2287,7 @@ YY_RULE_SETUP
YY_BREAK
case 54:
YY_RULE_SETUP
#line 208 "zconf.l"
#line 218 "zconf.l"
{
append_string(yytext, yyleng);
if (!first_ts)
......@@ -2283,7 +2295,7 @@ YY_RULE_SETUP
}
YY_BREAK
case YY_STATE_EOF(HELP):
#line 213 "zconf.l"
#line 223 "zconf.l"
{
zconf_endhelp();
return T_HELPTEXT;
......@@ -2292,22 +2304,22 @@ case YY_STATE_EOF(HELP):
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(COMMAND):
case YY_STATE_EOF(PARAM):
#line 219 "zconf.l"
#line 229 "zconf.l"
{
if (current_buf) {
zconf_endfile();
return T_EOF;
}
fclose(yyin);
yyterminate();
}
YY_BREAK
case 55:
YY_RULE_SETUP
#line 227 "zconf.l"
#line 238 "zconf.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
#line 2311 "lex.zconf.c"
#line 2323 "lex.zconf.c"
case YY_END_OF_BUFFER:
{
......@@ -3170,7 +3182,7 @@ int main()
return 0;
}
#endif
#line 227 "zconf.l"
#line 238 "zconf.l"
void zconf_starthelp(void)
{
......@@ -3192,7 +3204,6 @@ void zconf_initscan(const char *name)
printf("can't find file %s\n", name);
exit(1);
}
//fprintf(stderr, "zconf_initscan: %s\n", name);
current_buf = malloc(sizeof(*current_buf));
memset(current_buf, 0, sizeof(*current_buf));
......@@ -3218,8 +3229,6 @@ void zconf_nextfile(const char *name)
buf->parent = current_buf;
current_buf = buf;
//fprintf(stderr, "zconf_nextfile: %s\n", name);
if (file->flags & FILE_BUSY) {
printf("recursive scan (%s)?\n", name);
exit(1);
......@@ -3244,6 +3253,7 @@ static struct buffer *zconf_endfile(void)
parent = current_buf->parent;
if (parent) {
fclose(yyin);
yy_delete_buffer(YY_CURRENT_BUFFER);
yy_switch_to_buffer(parent->state);
}
......
/*
* Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
* 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>
......@@ -12,6 +15,7 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#define LKC_DIRECT_LINK
......@@ -80,10 +84,12 @@ static char buf[4096], *bufptr = buf;
static char input_buf[4096];
static char *args[1024], **argptr = args;
static int indent = 0;
static struct termios ios_org;
static int rows, cols;
static struct menu *current_menu;
static int child_count;
static int do_resize;
static int single_menu_mode;
static void conf(struct menu *menu);
static void conf_choice(struct menu *menu);
......@@ -274,10 +280,20 @@ static void build_conf(struct menu *menu)
case P_MENU:
child_count++;
cprint("m%p", menu);
if (menu->parent != &rootmenu)
cprint1(" %*c", indent + 1, ' ');
cprint1("%s --->", prompt);
if (single_menu_mode) {
cprint1("%s%*c%s",
menu->data ? "-->" : "++>",
indent + 1, ' ', prompt);
} else {
if (menu->parent != &rootmenu)
cprint1(" %*c", indent + 1, ' ');
cprint1("%s --->", prompt);
}
cprint_done();
if (single_menu_mode && menu->data)
goto conf_childs;
return;
default:
if (prompt) {
......@@ -392,6 +408,7 @@ static void conf(struct menu *menu)
char active_entry[40];
int stat, type, i;
unlink("lxdialog.scrltmp");
active_entry[0] = 0;
while (1) {
cprint_init();
......@@ -442,7 +459,10 @@ static void conf(struct menu *menu)
case 0:
switch (type) {
case 'm':
conf(submenu);
if (single_menu_mode)
submenu->data = (void *) !submenu->data;
else
conf(submenu);
break;
case 't':
if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
......@@ -484,6 +504,8 @@ static void conf(struct menu *menu)
case 6:
if (type == 't')
sym_toggle_tristate_value(sym);
else if (type == 'm')
conf(submenu);
break;
}
}
......@@ -518,11 +540,19 @@ static void show_helptext(const char *title, const char *text)
static void show_help(struct menu *menu)
{
const char *help;
char *helptext;
struct symbol *sym = menu->sym;
help = menu->sym->help;
help = sym->help;
if (!help)
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)
......@@ -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)
{
struct symbol *sym;
char *mode;
int stat;
conf_parse(av[1]);
conf_read(NULL);
sprintf(menu_backtitle, "Linux Kernel v%s.%s.%s%s Configuration",
getenv("VERSION"), getenv("PATCHLEVEL"),
getenv("SUBLEVEL"), getenv("EXTRAVERSION"));
sym = sym_lookup("KERNELRELEASE", 0);
sym_calc_value(sym);
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();
conf(&rootmenu);
......
......@@ -290,7 +290,7 @@ int file_write_dep(const char *name)
FILE *out;
if (!name)
name = "..config.cmd";
name = ".config.cmd";
out = fopen("..config.tmp", "w");
if (!out)
return 1;
......
......@@ -17,6 +17,10 @@
#include <qheader.h>
#include <qfiledialog.h>
#include <qregexp.h>
#if QT_VERSION >= 300
#include <qsettings.h>
#endif
#include <stdlib.h>
#include "lkc.h"
......@@ -26,6 +30,9 @@
#include "images.c"
static QApplication *configApp;
#if QT_VERSION >= 300
static QSettings *configSettings;
#endif
/*
* update all the children of a menu entry
......@@ -613,6 +620,25 @@ ConfigView::ConfigView(void)
QMenuBar* menu;
QSplitter* split1;
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;
......@@ -1046,6 +1072,9 @@ int main(int ac, char** av)
#endif
configApp = new QApplication(ac, av);
#if QT_VERSION >= 300
configSettings = new QSettings;
#endif
if (ac > 1 && av[1][0] == '-') {
switch (av[1][1]) {
case 'a':
......@@ -1063,11 +1092,20 @@ int main(int ac, char** av)
fixup_rootmenu(&rootmenu);
conf_read(NULL);
//zconfdump(stdout);
v = new ConfigView();
//zconfdump(stdout);
v->show();
configApp->connect(configApp, SIGNAL(lastWindowClosed()), SLOT(quit()));
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;
}
%option backup nostdinit noyywrap full ecs
%option backup nostdinit noyywrap never-interactive full ecs
%option 8bit backup nodefault perf-report perf-report
%x COMMAND HELP STRING PARAM
%{
......@@ -83,8 +83,6 @@ n [A-Za-z0-9_]
. {
unput(yytext[0]);
//printf("new config: ");
//symbol_end(NULL);
BEGIN(COMMAND);
}
......@@ -144,31 +142,43 @@ n [A-Za-z0-9_]
return T_WORD;
}
.
<<EOF>> {
BEGIN(INITIAL);
}
}
<STRING>{
[^'"\n\\]+ {
[^'"\\\n]+/\n {
append_string(yytext, yyleng);
zconflval.string = text;
return T_STRING;
}
[^'"\\\n]+ {
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]) {
BEGIN(PARAM);
zconflval.string = text;
//printf("s:%s\n", text);
return T_STRING;
} else
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 {
//printf(":%d: open string!\n", current_file->lineno+1);
exit(0);
printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
BEGIN(INITIAL);
return T_EOL;
}
<<EOF>> {
//printf(":%d: open string!\n", current_file->lineno+1);
exit(0);
BEGIN(INITIAL);
}
}
......@@ -221,6 +231,7 @@ n [A-Za-z0-9_]
zconf_endfile();
return T_EOF;
}
fclose(yyin);
yyterminate();
}
......@@ -245,7 +256,6 @@ void zconf_initscan(const char *name)
printf("can't find file %s\n", name);
exit(1);
}
//fprintf(stderr, "zconf_initscan: %s\n", name);
current_buf = malloc(sizeof(*current_buf));
memset(current_buf, 0, sizeof(*current_buf));
......@@ -271,8 +281,6 @@ void zconf_nextfile(const char *name)
buf->parent = current_buf;
current_buf = buf;
//fprintf(stderr, "zconf_nextfile: %s\n", name);
if (file->flags & FILE_BUSY) {
printf("recursive scan (%s)?\n", name);
exit(1);
......@@ -297,6 +305,7 @@ static struct buffer *zconf_endfile(void)
parent = current_buf->parent;
if (parent) {
fclose(yyin);
yy_delete_buffer(YY_CURRENT_BUFFER);
yy_switch_to_buffer(parent->state);
}
......
/* A Bison parser, made from zconf.y
by GNU bison 1.35. */
/* A Bison parser, made from zconf.y, by GNU bison 1.75. */
#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 yylex zconflex
#define yylex zconflex
#define yyerror zconferror
#define yylval zconflval
#define yychar zconfchar
#define yylval zconflval
#define yychar zconfchar
#define yydebug zconfdebug
#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"
/*
......@@ -74,38 +162,173 @@ struct symbol *symbol_hash[257];
#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
typedef union
{
#line 33 "zconf.y"
typedef union {
int token;
char *string;
struct symbol *symbol;
struct expr *expr;
struct menu *menu;
} yystype;
/* Line 193 of /usr/share/bison/yacc.c. */
#line 190 "zconf.tab.c"
# define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1
#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"
#define LKC_DIRECT_LINK
#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
#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
#define YYFLAG -32768
#define YYNTBASE 36
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 290
/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
#define YYTRANSLATE(x) ((unsigned)(x) <= 289 ? yytranslate[x] : 74)
#define YYTRANSLATE(X) \
((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
static const char yytranslate[] =
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
static const unsigned char yytranslate[] =
{
0, 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[] =
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,
6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35
};
#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,
20, 23, 25, 27, 29, 31, 33, 36, 40, 41,
45, 49, 52, 55, 58, 61, 64, 67, 70, 74,
78, 80, 84, 86, 91, 94, 95, 99, 103, 106,
109, 113, 115, 118, 119, 122, 125, 127, 133, 137,
138, 141, 144, 147, 150, 154, 156, 161, 164, 165,
168, 171, 174, 178, 181, 184, 187, 191, 194, 197,
198, 202, 205, 209, 212, 215, 216, 218, 222, 224,
226, 228, 230, 232, 234, 236, 237, 240, 242, 246,
250, 254, 257, 261, 265, 267
0, 0, 3, 4, 7, 9, 11, 13, 17, 19,
21, 23, 26, 28, 30, 32, 34, 36, 39, 43,
44, 48, 52, 55, 58, 61, 64, 67, 70, 73,
77, 81, 83, 87, 89, 94, 97, 98, 102, 106,
109, 112, 116, 118, 121, 122, 125, 128, 130, 136,
140, 141, 144, 147, 150, 153, 157, 159, 164, 167,
168, 171, 174, 177, 181, 184, 187, 190, 194, 197,
200, 201, 205, 208, 212, 215, 218, 219, 221, 225,
227, 229, 231, 233, 235, 237, 239, 240, 243, 245,
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,
3, 68, 70, 0, 5, 0, 14, 0, 8, 0,
1, 70, 0, 52, 0, 62, 0, 40, 0, 60,
0, 70, 0, 10, 24, 0, 39, 28, 41, 0,
0, 41, 42, 28, 0, 41, 66, 28, 0, 41,
64, 0, 41, 28, 0, 20, 67, 0, 21, 67,
0, 22, 67, 0, 23, 67, 0, 25, 67, 0,
18, 68, 71, 0, 19, 73, 71, 0, 7, 0,
43, 28, 47, 0, 69, 0, 44, 49, 45, 28,
0, 44, 49, 0, 0, 47, 48, 28, 0, 47,
66, 28, 0, 47, 64, 0, 47, 28, 0, 18,
68, 71, 0, 17, 0, 19, 73, 0, 0, 49,
38, 0, 13, 72, 0, 69, 0, 50, 28, 53,
51, 28, 0, 50, 28, 53, 0, 0, 53, 38,
0, 53, 57, 0, 53, 46, 0, 4, 68, 0,
54, 28, 65, 0, 69, 0, 55, 58, 56, 28,
0, 55, 58, 0, 0, 58, 38, 0, 58, 57,
0, 58, 46, 0, 58, 1, 28, 0, 6, 68,
0, 59, 28, 0, 9, 68, 0, 61, 28, 65,
0, 11, 28, 0, 63, 12, 0, 0, 65, 66,
28, 0, 65, 28, 0, 15, 31, 72, 0, 15,
72, 0, 16, 72, 0, 0, 68, 0, 68, 13,
72, 0, 24, 0, 25, 0, 5, 0, 8, 0,
14, 0, 28, 0, 27, 0, 0, 13, 72, 0,
73, 0, 73, 34, 73, 0, 73, 26, 73, 0,
30, 72, 29, 0, 35, 72, 0, 72, 32, 72,
0, 72, 33, 72, 0, 24, 0, 25, 0
37, 0, -1, -1, 37, 38, -1, 39, -1, 47,
-1, 58, -1, 3, 69, 71, -1, 5, -1, 14,
-1, 8, -1, 1, 71, -1, 53, -1, 63, -1,
41, -1, 61, -1, 71, -1, 10, 24, -1, 40,
28, 42, -1, -1, 42, 43, 28, -1, 42, 67,
28, -1, 42, 65, -1, 42, 28, -1, 20, 68,
-1, 21, 68, -1, 22, 68, -1, 23, 68, -1,
25, 68, -1, 18, 69, 72, -1, 19, 74, 72,
-1, 7, -1, 44, 28, 48, -1, 70, -1, 45,
50, 46, 28, -1, 45, 50, -1, -1, 48, 49,
28, -1, 48, 67, 28, -1, 48, 65, -1, 48,
28, -1, 18, 69, 72, -1, 17, -1, 19, 74,
-1, -1, 50, 39, -1, 13, 73, -1, 70, -1,
51, 28, 54, 52, 28, -1, 51, 28, 54, -1,
-1, 54, 39, -1, 54, 58, -1, 54, 47, -1,
4, 69, -1, 55, 28, 66, -1, 70, -1, 56,
59, 57, 28, -1, 56, 59, -1, -1, 59, 39,
-1, 59, 58, -1, 59, 47, -1, 59, 1, 28,
-1, 6, 69, -1, 60, 28, -1, 9, 69, -1,
62, 28, 66, -1, 11, 28, -1, 64, 12, -1,
-1, 66, 67, 28, -1, 66, 28, -1, 15, 31,
73, -1, 15, 73, -1, 16, 73, -1, -1, 69,
-1, 69, 13, 73, -1, 24, -1, 25, -1, 5,
-1, 8, -1, 14, -1, 28, -1, 27, -1, -1,
13, 73, -1, 74, -1, 74, 34, 74, -1, 74,
26, 74, -1, 30, 73, 29, -1, 35, 73, -1,
73, 32, 73, -1, 73, 33, 73, -1, 24, -1,
25, -1
};
#endif
#if YYDEBUG
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const short yyrline[] =
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const unsigned short yyrline[] =
{
0, 88, 89, 92, 93, 94, 95, 96, 97, 98,
99, 102, 104, 105, 106, 107, 113, 121, 127, 129,
130, 131, 132, 135, 141, 147, 153, 159, 165, 171,
179, 188, 194, 202, 204, 210, 212, 213, 214, 215,
218, 224, 230, 237, 239, 244, 254, 262, 264, 270,
272, 273, 274, 279, 286, 292, 300, 302, 308, 310,
311, 312, 313, 316, 322, 329, 336, 343, 349, 356,
357, 358, 361, 366, 371, 379, 381, 385, 390, 391,
394, 395, 396, 399, 400, 402, 403, 406, 407, 408,
409, 410, 411, 412, 415, 416
0, 88, 88, 89, 92, 93, 94, 95, 96, 97,
98, 99, 102, 104, 105, 106, 107, 113, 121, 127,
129, 130, 131, 132, 135, 141, 147, 153, 159, 165,
171, 179, 188, 194, 202, 204, 210, 212, 213, 214,
215, 218, 224, 230, 237, 239, 244, 254, 262, 264,
270, 272, 273, 274, 279, 286, 292, 300, 302, 308,
310, 311, 312, 313, 316, 322, 329, 336, 343, 349,
356, 357, 358, 361, 366, 371, 379, 381, 385, 390,
391, 394, 395, 396, 399, 400, 402, 403, 406, 407,
408, 409, 410, 411, 412, 415, 416
};
#endif
#if (YYDEBUG) || defined YYERROR_VERBOSE
/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
#if YYDEBUG || YYERROR_VERBOSE
/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
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_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS", "T_REQUIRES",
"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_CLOSE_PAREN", "T_OPEN_PAREN", "T_ON", "T_OR", "T_AND", "T_EQUAL",
"T_NOT", "input", "block", "common_block", "config_entry_start",
"config_stmt", "config_option_list", "config_option", "choice",
"choice_entry", "choice_end", "choice_stmt", "choice_option_list",
"choice_option", "choice_block", "if", "if_end", "if_stmt", "if_block",
"menu", "menu_entry", "menu_end", "menu_stmt", "menu_block", "source",
"source_stmt", "comment", "comment_stmt", "help_start", "help",
"depends_list", "depends", "prompt_stmt_opt", "prompt", "end",
"nl_or_eof", "if_expr", "expr", "symbol", 0
"T_NOT", "$accept", "input", "block", "common_block",
"config_entry_start", "config_stmt", "config_option_list",
"config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
"choice_option_list", "choice_option", "choice_block", "if", "if_end",
"if_stmt", "if_block", "menu", "menu_entry", "menu_end", "menu_stmt",
"menu_block", "source", "source_stmt", "comment", "comment_stmt",
"help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
"prompt", "end", "nl_or_eof", "if_expr", "expr", "symbol", 0
};
#endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const short yyr1[] =
# ifdef YYPRINT
/* 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,
37, 38, 38, 38, 38, 38, 39, 40, 41, 41,
41, 41, 41, 42, 42, 42, 42, 42, 42, 42,
43, 44, 45, 46, 46, 47, 47, 47, 47, 47,
48, 48, 48, 49, 49, 50, 51, 52, 52, 53,
53, 53, 53, 54, 55, 56, 57, 57, 58, 58,
58, 58, 58, 59, 60, 61, 62, 63, 64, 65,
65, 65, 66, 66, 66, 67, 67, 67, 68, 68,
69, 69, 69, 70, 70, 71, 71, 72, 72, 72,
72, 72, 72, 72, 73, 73
0, 36, 37, 37, 38, 38, 38, 38, 38, 38,
38, 38, 39, 39, 39, 39, 39, 40, 41, 42,
42, 42, 42, 42, 43, 43, 43, 43, 43, 43,
43, 44, 45, 46, 47, 47, 48, 48, 48, 48,
48, 49, 49, 49, 50, 50, 51, 52, 53, 53,
54, 54, 54, 54, 55, 56, 57, 58, 58, 59,
59, 59, 59, 59, 60, 61, 62, 63, 64, 65,
66, 66, 66, 67, 67, 67, 68, 68, 68, 69,
69, 70, 70, 70, 71, 71, 72, 72, 73, 73,
73, 73, 73, 73, 73, 74, 74
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const short yyr2[] =
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const unsigned char yyr2[] =
{
0, 0, 2, 1, 1, 1, 3, 1, 1, 1,
2, 1, 1, 1, 1, 1, 2, 3, 0, 3,
3, 2, 2, 2, 2, 2, 2, 2, 3, 3,
1, 3, 1, 4, 2, 0, 3, 3, 2, 2,
3, 1, 2, 0, 2, 2, 1, 5, 3, 0,
2, 2, 2, 2, 3, 1, 4, 2, 0, 2,
2, 2, 3, 2, 2, 2, 3, 2, 2, 0,
3, 2, 3, 2, 2, 0, 1, 3, 1, 1,
1, 1, 1, 1, 1, 0, 2, 1, 3, 3,
3, 2, 3, 3, 1, 1
0, 2, 0, 2, 1, 1, 1, 3, 1, 1,
1, 2, 1, 1, 1, 1, 1, 2, 3, 0,
3, 3, 2, 2, 2, 2, 2, 2, 2, 3,
3, 1, 3, 1, 4, 2, 0, 3, 3, 2,
2, 3, 1, 2, 0, 2, 2, 1, 5, 3,
0, 2, 2, 2, 2, 3, 1, 4, 2, 0,
2, 2, 2, 3, 2, 2, 2, 3, 2, 2,
0, 3, 2, 3, 2, 2, 0, 1, 3, 1,
1, 1, 1, 1, 1, 1, 0, 2, 1, 3,
3, 3, 2, 3, 3, 1, 1
};
/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
doesn't specify something else to do. Zero means the default is an
error. */
static const short yydefact[] =
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
static const unsigned char yydefact[] =
{
1, 0, 0, 0, 0, 7, 0, 30, 9, 0,
0, 0, 8, 84, 83, 2, 3, 0, 13, 0,
43, 4, 0, 11, 0, 58, 5, 0, 14, 0,
12, 15, 10, 78, 79, 0, 53, 63, 65, 16,
94, 95, 0, 0, 45, 87, 18, 35, 34, 49,
69, 0, 64, 69, 6, 0, 91, 0, 0, 0,
0, 17, 31, 80, 81, 82, 44, 0, 32, 48,
54, 0, 59, 61, 0, 60, 55, 66, 90, 92,
93, 89, 88, 0, 0, 0, 0, 0, 75, 75,
75, 75, 75, 22, 0, 0, 21, 0, 41, 0,
0, 39, 0, 38, 0, 33, 50, 52, 0, 51,
46, 71, 0, 62, 56, 67, 0, 73, 74, 85,
85, 23, 76, 24, 25, 26, 27, 19, 68, 20,
85, 42, 36, 37, 47, 70, 72, 0, 28, 29,
0, 40, 86, 77, 0, 0
2, 0, 1, 0, 0, 0, 8, 0, 31, 10,
0, 0, 0, 9, 85, 84, 3, 4, 0, 14,
0, 44, 5, 0, 12, 0, 59, 6, 0, 15,
0, 13, 16, 11, 79, 80, 0, 54, 64, 66,
17, 95, 96, 0, 0, 46, 88, 19, 36, 35,
50, 70, 0, 65, 70, 7, 0, 92, 0, 0,
0, 0, 18, 32, 81, 82, 83, 45, 0, 33,
49, 55, 0, 60, 62, 0, 61, 56, 67, 91,
93, 94, 90, 89, 0, 0, 0, 0, 0, 76,
76, 76, 76, 76, 23, 0, 0, 22, 0, 42,
0, 0, 40, 0, 39, 0, 34, 51, 53, 0,
52, 47, 72, 0, 63, 57, 68, 0, 74, 75,
86, 86, 24, 77, 25, 26, 27, 28, 20, 69,
21, 86, 43, 37, 38, 48, 71, 73, 0, 29,
30, 0, 41, 87, 78
};
/* YYDEFGOTO[NTERM-NUM]. */
static const short yydefgoto[] =
{
1, 15, 16, 17, 18, 61, 94, 19, 20, 67,
21, 62, 102, 48, 22, 108, 23, 69, 24, 25,
74, 26, 51, 27, 28, 29, 30, 95, 96, 70,
112, 121, 122, 68, 31, 138, 44, 45
-1, 1, 16, 17, 18, 19, 62, 95, 20, 21,
68, 22, 63, 103, 49, 23, 109, 24, 70, 25,
26, 75, 27, 52, 28, 29, 30, 31, 96, 97,
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[] =
{
-32768, 17, 41, 65, 65,-32768, 65,-32768,-32768, 65,
-11, 40,-32768,-32768,-32768,-32768,-32768, 13,-32768, 23,
-32768,-32768, 66,-32768, 72,-32768,-32768, 77,-32768, 81,
-32768,-32768,-32768,-32768,-32768, 41,-32768,-32768,-32768,-32768,
-32768,-32768, 40, 40, 64, 59,-32768,-32768, 98,-32768,
-32768, 49,-32768,-32768,-32768, 7,-32768, 40, 40, 67,
67, 99, 117,-32768,-32768,-32768,-32768, 85,-32768, 74,
18, 88,-32768,-32768, 95,-32768,-32768, 18,-32768, 96,
-32768,-32768,-32768, 102, 36, 40, 65, 67, 65, 65,
65, 65, 65,-32768, 103, 129,-32768, 114,-32768, 65,
67,-32768, 115,-32768, 116,-32768,-32768,-32768, 118,-32768,
-32768,-32768, 119,-32768,-32768,-32768, 40, 64, 64, 135,
135,-32768, 136,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
135,-32768,-32768,-32768,-32768,-32768, 64, 40,-32768,-32768,
40,-32768, 64, 64, 150,-32768
-120, 17, -120, 41, 48, 48, -120, 48, -120, -120,
48, -11, 40, -120, -120, -120, -120, -120, 13, -120,
23, -120, -120, 66, -120, 72, -120, -120, 77, -120,
81, -120, -120, -120, -120, -120, 41, -120, -120, -120,
-120, -120, -120, 40, 40, 57, 59, -120, -120, 98,
-120, -120, 49, -120, -120, -120, 7, -120, 40, 40,
67, 67, 99, 117, -120, -120, -120, -120, 85, -120,
74, 18, 88, -120, -120, 95, -120, -120, 18, -120,
96, -120, -120, -120, 102, 36, 40, 48, 67, 48,
48, 48, 48, 48, -120, 103, 129, -120, 114, -120,
48, 67, -120, 115, -120, 116, -120, -120, -120, 118,
-120, -120, -120, 119, -120, -120, -120, 40, 57, 57,
135, 135, -120, 136, -120, -120, -120, -120, -120, -120,
-120, 135, -120, -120, -120, -120, -120, 57, 40, -120,
-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,
-41,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
-32768, -32,-32768,-32768,-32768,-32768,-32768,-32768, 89, 100,
11, 48, 0, -22, 3, -118, -42, -52
-120, -120, -120, -38, -120, -120, -120, -120, -120, -120,
-120, -42, -120, -120, -120, -120, -120, -120, -120, -120,
-120, -120, -33, -120, -120, -120, -120, -120, -120, 87,
97, 34, 47, -1, -23, 2, -119, -43, -53
};
#define YYLAST 153
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
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[] =
{
55, 56, 139, 35, 36, 32, 37, 81, 82, 38,
73, 66, 141, 39, 72, 79, 80, 144, 2, 75,
3, 4, 5, 6, 7, 8, 9, 10, 107, 76,
11, 12, 106, 84, 85, 120, 78, 109, 54, 57,
58, 46, 117, 118, 13, 14, 111, 110, 131, -57,
71, 47, -57, 4, 63, 6, 7, 64, 9, 10,
40, 41, 11, 65, 40, 41, 42, 116, 13, 14,
42, 43, 97, 104, 136, 43, 13, 14, 4, 63,
6, 7, 64, 9, 10, 59, 119, 11, 65, 33,
34, 40, 41, 60, 49, 142, 57, 58, 143, 130,
50, 13, 14, 63, 6, 52, 64, 9, 10, 53,
83, 11, 65, 105, 84, 85, 113, 86, 87, 88,
89, 90, 91, 114, 92, 13, 14, 93, 83, 58,
115, 127, 84, 85, 98, 99, 100, 123, 124, 125,
126, 128, 129, 132, 133, 101, 134, 135, 137, 140,
145, 103, 0, 77
56, 57, 140, 36, 37, 33, 38, 82, 83, 39,
74, 67, 142, 40, 73, 80, 81, 2, 3, 76,
4, 5, 6, 7, 8, 9, 10, 11, 108, 77,
12, 13, 107, 85, 86, 121, 79, 110, 55, 58,
59, 47, 118, 119, 14, 15, 112, 111, 132, -58,
72, 48, -58, 5, 64, 7, 8, 65, 10, 11,
41, 42, 12, 66, 41, 42, 43, 117, 14, 15,
43, 44, 34, 35, 137, 44, 14, 15, 5, 64,
7, 8, 65, 10, 11, 60, 120, 12, 66, 58,
59, 41, 42, 61, 50, 143, 98, 105, 144, 131,
51, 14, 15, 64, 7, 53, 65, 10, 11, 54,
84, 12, 66, 106, 85, 86, 114, 87, 88, 89,
90, 91, 92, 115, 93, 14, 15, 94, 84, 59,
116, 128, 85, 86, 99, 100, 101, 124, 125, 126,
127, 129, 130, 133, 134, 102, 135, 136, 138, 141,
104, 78
};
static const short yycheck[] =
static const unsigned char yycheck[] =
{
42, 43, 120, 3, 4, 2, 6, 59, 60, 9,
51, 48, 130, 24, 51, 57, 58, 0, 1, 51,
3, 4, 5, 6, 7, 8, 9, 10, 69, 51,
13, 14, 69, 15, 16, 87, 29, 69, 35, 32,
33, 28, 84, 85, 27, 28, 28, 69, 100, 0,
43, 44, 121, 4, 5, 3, 7, 60, 61, 10,
52, 49, 131, 24, 52, 58, 59, 0, 1, 52,
3, 4, 5, 6, 7, 8, 9, 10, 70, 52,
13, 14, 70, 15, 16, 88, 29, 70, 36, 32,
33, 28, 85, 86, 27, 28, 28, 70, 101, 0,
1, 28, 3, 4, 5, 6, 7, 8, 9, 10,
24, 25, 13, 14, 24, 25, 30, 31, 27, 28,
30, 35, 61, 62, 116, 35, 27, 28, 4, 5,
6, 7, 8, 9, 10, 26, 86, 13, 14, 24,
25, 24, 25, 34, 28, 137, 32, 33, 140, 99,
30, 35, 24, 25, 117, 35, 27, 28, 4, 5,
6, 7, 8, 9, 10, 26, 87, 13, 14, 32,
33, 24, 25, 34, 28, 138, 62, 63, 141, 100,
28, 27, 28, 5, 6, 28, 8, 9, 10, 28,
11, 13, 14, 28, 15, 16, 28, 18, 19, 20,
21, 22, 23, 28, 25, 27, 28, 28, 11, 33,
28, 28, 15, 16, 17, 18, 19, 89, 90, 91,
92, 12, 28, 28, 28, 28, 28, 28, 13, 13,
0, 62, -1, 53
28, 28, 15, 16, 17, 18, 19, 90, 91, 92,
93, 12, 28, 28, 28, 28, 28, 28, 13, 13,
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,
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. */
/* 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
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const unsigned char yystos[] =
{
short yyss;
YYSTYPE yyvs;
# if YYLSP_NEEDED
YYLTYPE yyls;
# endif
0, 37, 0, 1, 3, 4, 5, 6, 7, 8,
9, 10, 13, 14, 27, 28, 38, 39, 40, 41,
44, 45, 47, 51, 53, 55, 56, 58, 60, 61,
62, 63, 71, 71, 24, 25, 69, 69, 69, 69,
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__)
# define YYSIZE_T __SIZE_TYPE__
#endif
......@@ -513,14 +640,19 @@ union yyalloc
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY -2
#define YYEOF 0
#define YYACCEPT goto yyacceptlab
#define YYABORT goto yyabortlab
#define YYABORT goto yyabortlab
#define YYERROR goto yyerrlab1
/* Like YYERROR except do call yyerror. This remains here temporarily
to ease the transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
#define YYFAIL goto yyerrlab
#define YYRECOVERING() (!!yyerrstatus)
#define YYBACKUP(Token, Value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
......@@ -541,41 +673,20 @@ while (0)
#define YYTERROR 1
#define YYERRCODE 256
/* YYLLOC_DEFAULT -- Compute the default location (before the actions
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. */
are run). */
#ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
# define YYLLOC_DEFAULT(Current, Rhs, N) \
Current.first_line = Rhs[1].first_line; \
Current.first_column = Rhs[1].first_column; \
Current.last_line = Rhs[N].last_line; \
Current.last_column = Rhs[N].last_column;
#endif
/* YYLEX -- calling `yylex' with the right arguments. */
#if YYPURE
# 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 */
#define YYLEX yylex ()
/* Enable debugging if requested. */
#if YYDEBUG
......@@ -590,11 +701,17 @@ do { \
if (yydebug) \
YYFPRINTF Args; \
} while (0)
# define YYDSYMPRINT(Args) \
do { \
if (yydebug) \
yysymprint Args; \
} while (0)
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
# define YYDSYMPRINT(Args)
#endif /* !YYDEBUG */
/* YYINITDEPTH -- initial size of the parser's stacks. */
......@@ -616,8 +733,10 @@ int yydebug;
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
#ifdef YYERROR_VERBOSE
#if YYERROR_VERBOSE
# ifndef yystrlen
# if defined (__GLIBC__) && defined (_STRING_H)
......@@ -667,10 +786,73 @@ yystpcpy (yydest, yysrc)
}
# 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
into yyparse. The argument should have type void *.
......@@ -700,46 +882,22 @@ int yyparse (void);
# 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
# define YY_DECL_VARIABLES \
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 lookahead symbol. */
int yychar;
/* 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
yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{
/* If reentrant, generate the variables here. */
#if YYPURE
YY_DECL_VARIABLES
#endif /* !YYPURE */
register int yystate;
register int yyn;
int yyresult;
......@@ -756,7 +914,7 @@ yyparse (YYPARSE_PARAM_ARG)
Refer to the stacks thru separate pointers, to allow yyoverflow
to reallocate them elsewhere. */
/* The state stack. */
/* The state stack. */
short yyssa[YYINITDEPTH];
short *yyss = yyssa;
register short *yyssp;
......@@ -766,31 +924,19 @@ yyparse (YYPARSE_PARAM_ARG)
YYSTYPE *yyvs = yyvsa;
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
action routines. */
YYSTYPE yyval;
#if YYLSP_NEEDED
YYLTYPE yyloc;
#endif
/* When reducing, the number of symbols on the RHS of the reduced
rule. */
rule. */
int yylen;
YYDPRINTF ((stderr, "Starting parse\n"));
......@@ -807,9 +953,7 @@ yyparse (YYPARSE_PARAM_ARG)
yyssp = yyss;
yyvsp = yyvs;
#if YYLSP_NEEDED
yylsp = yyls;
#endif
goto yysetstate;
/*------------------------------------------------------------.
......@@ -837,24 +981,17 @@ yyparse (YYPARSE_PARAM_ARG)
YYSTYPE *yyvs1 = yyvs;
short *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. */
# if YYLSP_NEEDED
YYLTYPE *yyls1 = yyls;
/* 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
data in use in that stack, in bytes. 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),
&yystacksize);
# endif
yyss = yyss1;
yyvs = yyvs1;
}
......@@ -877,10 +1014,8 @@ yyparse (YYPARSE_PARAM_ARG)
goto yyoverflowlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
# if YYLSP_NEEDED
YYSTACK_RELOCATE (yyls);
# endif
# undef YYSTACK_RELOCATE
# undef YYSTACK_RELOCATE
if (yyss1 != yyssa)
YYSTACK_FREE (yyss1);
}
......@@ -889,9 +1024,7 @@ yyparse (YYPARSE_PARAM_ARG)
yyssp = yyss + yysize - 1;
yyvsp = yyvs + yysize - 1;
#if YYLSP_NEEDED
yylsp = yyls + yysize - 1;
#endif
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
......@@ -904,7 +1037,6 @@ yyparse (YYPARSE_PARAM_ARG)
goto yybackup;
/*-----------.
| yybackup. |
`-----------*/
......@@ -917,7 +1049,7 @@ yybackup:
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
if (yyn == YYFLAG)
if (yyn == YYPACT_NINF)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
......@@ -931,12 +1063,12 @@ yybackup:
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;
yychar = YYEOF; /* Don't call YYLEX any more */
yychar = YYEOF; /* Don't call YYLEX any more. */
YYDPRINTF ((stderr, "Now at end of input.\n"));
}
......@@ -944,45 +1076,26 @@ yybackup:
{
yychar1 = YYTRANSLATE (yychar);
#if YYDEBUG
/* We have to keep this `#if YYDEBUG', since we use variables
which are defined only if `YYDEBUG' is set. */
if (yydebug)
{
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
/* We have to keep this `#if YYDEBUG', since we use variables
which are defined only if `YYDEBUG' is set. */
YYDPRINTF ((stderr, "Next token is "));
YYDSYMPRINT ((stderr, yychar1, yylval));
YYDPRINTF ((stderr, "\n"));
}
/* If the proper action on seeing token YYCHAR1 is to reduce or to
detect an error, take that action. */
yyn += yychar1;
if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
goto yydefault;
yyn = yytable[yyn];
/* 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 <= 0)
{
if (yyn == YYFLAG)
if (yyn == 0 || yyn == YYTABLE_NINF)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
else if (yyn == 0)
goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
......@@ -996,9 +1109,7 @@ yybackup:
yychar = YYEMPTY;
*++yyvsp = yylval;
#if YYLSP_NEEDED
*++yylsp = yylloc;
#endif
/* Count tokens shifted since error; after three, turn off error
status. */
......@@ -1029,19 +1140,14 @@ yyreduce:
/* If YYLEN is nonzero, implement the default value of the action:
`$$ = $1'.
Otherwise, the following line sets YYVAL to the semantic value of
the lookahead token. This behavior is undocumented and Bison
Otherwise, the following line sets YYVAL to garbage.
This behavior is undocumented and Bison
users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */
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
/* We have to keep this `#if YYDEBUG', since we use variables which
......@@ -1051,362 +1157,415 @@ yyreduce:
int yyi;
YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
yyn, yyrline[yyn]);
yyn - 1, yyrline[yyn]);
/* 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\n", yytname[yyr1[yyn]]);
}
#endif
switch (yyn) {
case 7:
switch (yyn)
{
case 8:
#line 96 "zconf.y"
{ zconfprint("unexpected 'endmenu' statement"); ;
break;}
case 8:
{ zconfprint("unexpected 'endmenu' statement"); }
break;
case 9:
#line 97 "zconf.y"
{ zconfprint("unexpected 'endif' statement"); ;
break;}
case 9:
{ zconfprint("unexpected 'endif' statement"); }
break;
case 10:
#line 98 "zconf.y"
{ zconfprint("unexpected 'endchoice' statement"); ;
break;}
case 10:
{ zconfprint("unexpected 'endchoice' statement"); }
break;
case 11:
#line 99 "zconf.y"
{ zconfprint("syntax error"); yyerrok; ;
break;}
case 16:
{ zconfprint("syntax error"); yyerrok; }
break;
case 17:
#line 114 "zconf.y"
{
{
struct symbol *sym = sym_lookup(yyvsp[0].string, 0);
sym->flags |= SYMBOL_OPTIONAL;
menu_add_entry(sym);
printd(DEBUG_PARSE, "%s:%d:config %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string);
;
break;}
case 17:
}
break;
case 18:
#line 122 "zconf.y"
{
{
menu_end_entry();
printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno());
;
break;}
case 22:
}
break;
case 23:
#line 133 "zconf.y"
{ ;
break;}
case 23:
{ }
break;
case 24:
#line 136 "zconf.y"
{
{
menu_set_type(S_TRISTATE);
printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno());
;
break;}
case 24:
}
break;
case 25:
#line 142 "zconf.y"
{
{
menu_set_type(S_BOOLEAN);
printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno());
;
break;}
case 25:
}
break;
case 26:
#line 148 "zconf.y"
{
{
menu_set_type(S_INT);
printd(DEBUG_PARSE, "%s:%d:int\n", zconf_curname(), zconf_lineno());
;
break;}
case 26:
}
break;
case 27:
#line 154 "zconf.y"
{
{
menu_set_type(S_HEX);
printd(DEBUG_PARSE, "%s:%d:hex\n", zconf_curname(), zconf_lineno());
;
break;}
case 27:
}
break;
case 28:
#line 160 "zconf.y"
{
{
menu_set_type(S_STRING);
printd(DEBUG_PARSE, "%s:%d:string\n", zconf_curname(), zconf_lineno());
;
break;}
case 28:
}
break;
case 29:
#line 166 "zconf.y"
{
{
menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
;
break;}
case 29:
}
break;
case 30:
#line 172 "zconf.y"
{
{
menu_add_prop(P_DEFAULT, NULL, yyvsp[-1].symbol, yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno());
;
break;}
case 30:
}
break;
case 31:
#line 180 "zconf.y"
{
{
struct symbol *sym = sym_lookup(NULL, 0);
sym->flags |= SYMBOL_CHOICE;
menu_add_entry(sym);
menu_add_prop(P_CHOICE, NULL, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno());
;
break;}
case 31:
}
break;
case 32:
#line 189 "zconf.y"
{
{
menu_end_entry();
menu_add_menu();
;
break;}
case 32:
}
break;
case 33:
#line 195 "zconf.y"
{
{
if (zconf_endtoken(yyvsp[0].token, T_CHOICE, T_ENDCHOICE)) {
menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endchoice\n", zconf_curname(), zconf_lineno());
}
;
break;}
case 34:
}
break;
case 35:
#line 205 "zconf.y"
{
{
printf("%s:%d: missing 'endchoice' for this 'choice' statement\n", current_menu->file->name, current_menu->lineno);
zconfnerrs++;
;
break;}
case 40:
}
break;
case 41:
#line 219 "zconf.y"
{
{
menu_add_prop(P_PROMPT, yyvsp[-1].string, NULL, yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno());
;
break;}
case 41:
}
break;
case 42:
#line 225 "zconf.y"
{
{
current_entry->sym->flags |= SYMBOL_OPTIONAL;
printd(DEBUG_PARSE, "%s:%d:optional\n", zconf_curname(), zconf_lineno());
;
break;}
case 42:
}
break;
case 43:
#line 231 "zconf.y"
{
{
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());
;
break;}
case 45:
}
break;
case 46:
#line 245 "zconf.y"
{
{
printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
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_end_entry();
menu_add_menu();
;
break;}
case 46:
}
break;
case 47:
#line 255 "zconf.y"
{
{
if (zconf_endtoken(yyvsp[0].token, T_IF, T_ENDIF)) {
menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endif\n", zconf_curname(), zconf_lineno());
}
;
break;}
case 48:
}
break;
case 49:
#line 265 "zconf.y"
{
{
printf("%s:%d: missing 'endif' for this 'if' statement\n", current_menu->file->name, current_menu->lineno);
zconfnerrs++;
;
break;}
case 53:
}
break;
case 54:
#line 280 "zconf.y"
{
{
menu_add_entry(NULL);
menu_add_prop(P_MENU, yyvsp[0].string, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
;
break;}
case 54:
}
break;
case 55:
#line 287 "zconf.y"
{
{
menu_end_entry();
menu_add_menu();
;
break;}
case 55:
}
break;
case 56:
#line 293 "zconf.y"
{
{
if (zconf_endtoken(yyvsp[0].token, T_MENU, T_ENDMENU)) {
menu_end_menu();
printd(DEBUG_PARSE, "%s:%d:endmenu\n", zconf_curname(), zconf_lineno());
}
;
break;}
case 57:
}
break;
case 58:
#line 303 "zconf.y"
{
{
printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno);
zconfnerrs++;
;
break;}
case 62:
}
break;
case 63:
#line 313 "zconf.y"
{ zconfprint("invalid menu option"); yyerrok; ;
break;}
case 63:
{ zconfprint("invalid menu option"); yyerrok; }
break;
case 64:
#line 317 "zconf.y"
{
{
yyval.string = yyvsp[0].string;
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[0].string);
;
break;}
case 64:
}
break;
case 65:
#line 323 "zconf.y"
{
{
zconf_nextfile(yyvsp[-1].string);
;
break;}
case 65:
}
break;
case 66:
#line 330 "zconf.y"
{
{
menu_add_entry(NULL);
menu_add_prop(P_COMMENT, yyvsp[0].string, NULL, NULL);
printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno());
;
break;}
case 66:
}
break;
case 67:
#line 337 "zconf.y"
{
{
menu_end_entry();
;
break;}
case 67:
}
break;
case 68:
#line 344 "zconf.y"
{
{
printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
zconf_starthelp();
;
break;}
case 68:
}
break;
case 69:
#line 350 "zconf.y"
{
{
current_entry->sym->help = yyvsp[0].string;
;
break;}
case 71:
}
break;
case 72:
#line 359 "zconf.y"
{ ;
break;}
case 72:
{ }
break;
case 73:
#line 362 "zconf.y"
{
{
menu_add_dep(yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
;
break;}
case 73:
}
break;
case 74:
#line 367 "zconf.y"
{
{
menu_add_dep(yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
;
break;}
case 74:
}
break;
case 75:
#line 372 "zconf.y"
{
{
menu_add_dep(yyvsp[0].expr);
printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
;
break;}
case 76:
}
break;
case 77:
#line 382 "zconf.y"
{
{
menu_add_prop(P_PROMPT, yyvsp[0].string, NULL, NULL);
;
break;}
case 77:
}
break;
case 78:
#line 386 "zconf.y"
{
{
menu_add_prop(P_PROMPT, yyvsp[-2].string, NULL, yyvsp[0].expr);
;
break;}
case 80:
}
break;
case 81:
#line 394 "zconf.y"
{ yyval.token = T_ENDMENU; ;
break;}
case 81:
{ yyval.token = T_ENDMENU; }
break;
case 82:
#line 395 "zconf.y"
{ yyval.token = T_ENDCHOICE; ;
break;}
case 82:
{ yyval.token = T_ENDCHOICE; }
break;
case 83:
#line 396 "zconf.y"
{ yyval.token = T_ENDIF; ;
break;}
case 85:
{ yyval.token = T_ENDIF; }
break;
case 86:
#line 402 "zconf.y"
{ yyval.expr = NULL; ;
break;}
case 86:
{ yyval.expr = NULL; }
break;
case 87:
#line 403 "zconf.y"
{ yyval.expr = yyvsp[0].expr; ;
break;}
case 87:
{ yyval.expr = yyvsp[0].expr; }
break;
case 88:
#line 406 "zconf.y"
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;
break;}
case 88:
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); }
break;
case 89:
#line 407 "zconf.y"
{ yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;
break;}
case 89:
{ yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); }
break;
case 90:
#line 408 "zconf.y"
{ yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;
break;}
case 90:
{ yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); }
break;
case 91:
#line 409 "zconf.y"
{ yyval.expr = yyvsp[-1].expr; ;
break;}
case 91:
{ yyval.expr = yyvsp[-1].expr; }
break;
case 92:
#line 410 "zconf.y"
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;
break;}
case 92:
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); }
break;
case 93:
#line 411 "zconf.y"
{ yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;
break;}
case 93:
{ yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); }
break;
case 94:
#line 412 "zconf.y"
{ yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;
break;}
case 94:
{ yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); }
break;
case 95:
#line 415 "zconf.y"
{ yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;
break;}
case 95:
{ yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); }
break;
case 96:
#line 416 "zconf.y"
{ yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ;
break;}
}
{ yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); }
break;
#line 705 "/usr/share/bison/bison.simple"
}
/* Line 1016 of /usr/share/bison/yacc.c. */
#line 1565 "zconf.tab.c"
yyvsp -= yylen;
yyssp -= yylen;
#if YYLSP_NEEDED
yylsp -= yylen;
#endif
#if YYDEBUG
if (yydebug)
......@@ -1420,9 +1579,7 @@ case 95:
#endif
*++yyvsp = yyval;
#if YYLSP_NEEDED
*++yylsp = yyloc;
#endif
/* Now `shift' the result of the reduction. Determine what state
that goes to, based on the state we popped back to and the rule
......@@ -1430,11 +1587,11 @@ case 95:
yyn = yyr1[yyn];
yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
yystate = yydefgoto[yyn - YYNTBASE];
yystate = yydefgoto[yyn - YYNTOKENS];
goto yynewstate;
......@@ -1447,13 +1604,13 @@ yyerrlab:
if (!yyerrstatus)
{
++yynerrs;
#ifdef YYERROR_VERBOSE
#if YYERROR_VERBOSE
yyn = yypact[yystate];
if (yyn > YYFLAG && yyn < YYLAST)
if (YYPACT_NINF < yyn && yyn < YYLAST)
{
YYSIZE_T yysize = 0;
int yytype = YYTRANSLATE (yychar);
char *yymsg;
int yyx, yycount;
......@@ -1462,15 +1619,15 @@ yyerrlab:
YYCHECK. */
for (yyx = yyn < 0 ? -yyn : 0;
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 ("parse error, unexpected ") + 1;
yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
yysize += yystrlen (yytname[yytype]);
yymsg = (char *) YYSTACK_ALLOC (yysize);
if (yymsg != 0)
{
char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
yyp = yystpcpy (yyp, yytname[yytype]);
if (yycount < 5)
{
......@@ -1478,7 +1635,7 @@ yyerrlab:
for (yyx = yyn < 0 ? -yyn : 0;
yyx < (int) (sizeof (yytname) / sizeof (char *));
yyx++)
if (yycheck[yyx + yyn] == yyx)
if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
{
const char *yyq = ! yycount ? ", expecting " : " or ";
yyp = yystpcpy (yyp, yyq);
......@@ -1493,99 +1650,90 @@ yyerrlab:
yyerror ("parse error; also virtual memory exhausted");
}
else
#endif /* defined (YYERROR_VERBOSE) */
#endif /* YYERROR_VERBOSE */
yyerror ("parse error");
}
goto yyerrlab1;
/*--------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action |
`--------------------------------------------------*/
/*----------------------------------------------------.
| yyerrlab1 -- error raised explicitly by an action. |
`----------------------------------------------------*/
yyerrlab1:
if (yyerrstatus == 3)
{
/* If just tried and failed to reuse lookahead token after an
error, discard it. */
/* return failure if at end of input */
/* Return failure if at end of input. */
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",
yychar, yytname[yychar1]));
yydestruct (yychar1, yylval);
yychar = YYEMPTY;
}
/* Else will try to reuse lookahead token after shifting the error
token. */
yyerrstatus = 3; /* Each real token shifted decrements this */
goto yyerrhandle;
yyerrstatus = 3; /* Each real token shifted decrements this. */
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;
}
}
/*-------------------------------------------------------------------.
| yyerrdefault -- current state does not do anything special for the |
| error token. |
`-------------------------------------------------------------------*/
yyerrdefault:
#if 0
/* This is wrong; only states that explicitly want error tokens
should shift them. */
/* Pop the current state because it cannot handle the error token. */
if (yyssp == yyss)
YYABORT;
/* If its default is to accept any token, ok. Otherwise pop it. */
yyn = yydefact[yystate];
if (yyn)
goto yydefault;
#endif
YYDPRINTF ((stderr, "Error: popping "));
YYDSYMPRINT ((stderr,
yystos[*yyssp], *yyvsp));
YYDPRINTF ((stderr, "\n"));
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)
{
short *yyssp1 = yyss - 1;
YYFPRINTF (stderr, "Error: state stack now");
while (yyssp1 != yyssp)
YYFPRINTF (stderr, " %d", *++yyssp1);
YYFPRINTF (stderr, "\n");
}
if (yydebug)
{
short *yyssp1 = yyss - 1;
YYFPRINTF (stderr, "Error: state stack now");
while (yyssp1 != yyssp)
YYFPRINTF (stderr, " %d", *++yyssp1);
YYFPRINTF (stderr, "\n");
}
#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)
YYACCEPT;
......@@ -1593,9 +1741,7 @@ yyerrhandle:
YYDPRINTF ((stderr, "Shifting error token, "));
*++yyvsp = yylval;
#if YYLSP_NEEDED
*++yylsp = yylloc;
#endif
yystate = yyn;
goto yynewstate;
......@@ -1615,13 +1761,15 @@ yyabortlab:
yyresult = 1;
goto yyreturn;
/*---------------------------------------------.
| yyoverflowab -- parser overflow comes here. |
`---------------------------------------------*/
#ifndef yyoverflow
/*----------------------------------------------.
| yyoverflowlab -- parser overflow comes here. |
`----------------------------------------------*/
yyoverflowlab:
yyerror ("parser stack overflow");
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
#ifndef yyoverflow
......@@ -1630,6 +1778,8 @@ yyreturn:
#endif
return yyresult;
}
#line 419 "zconf.y"
......@@ -1864,3 +2014,4 @@ void zconfdump(FILE *out)
#include "expr.c"
#include "symbol.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
# 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
typedef union
{
#line 33 "zconf.y"
typedef union {
int token;
char *string;
struct symbol *symbol;
struct expr *expr;
struct menu *menu;
} yystype;
/* Line 1281 of /usr/share/bison/yacc.c. */
#line 118 "zconf.tab.h"
# define YYSTYPE yystype
# define YYSTYPE_IS_TRIVIAL 1
#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;
#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