add 'deselect' property for menuconfig
SVN-Revision: 6647
This commit is contained in:
parent
eaf0c708f2
commit
c48b6508fe
9 changed files with 503 additions and 462 deletions
|
@ -74,6 +74,7 @@ struct symbol {
|
|||
struct property *prop;
|
||||
struct expr *dep, *dep2;
|
||||
struct expr_value rev_dep;
|
||||
struct expr_value rev_dep_inv;
|
||||
};
|
||||
|
||||
#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
|
||||
|
@ -100,7 +101,7 @@ struct symbol {
|
|||
#define SYMBOL_HASHMASK 0xff
|
||||
|
||||
enum prop_type {
|
||||
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_SELECT, P_RANGE, P_RESET
|
||||
P_UNKNOWN, P_PROMPT, P_COMMENT, P_MENU, P_DEFAULT, P_CHOICE, P_DESELECT, P_SELECT, P_RANGE, P_RESET
|
||||
};
|
||||
|
||||
struct property {
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <stdlib.h>
|
||||
#include <glob.h>
|
||||
|
||||
/* end standard C headers. */
|
||||
|
||||
|
@ -748,6 +747,7 @@ char *zconftext;
|
|||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <glob.h>
|
||||
|
||||
#define LKC_DIRECT_LINK
|
||||
#include "lkc.h"
|
||||
|
|
|
@ -405,6 +405,7 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
|
|||
sym_get_string_value(sym));
|
||||
for_all_prompts(sym, prop)
|
||||
get_prompt_str(r, prop);
|
||||
|
||||
hit = false;
|
||||
for_all_properties(sym, prop, P_SELECT) {
|
||||
if (!hit) {
|
||||
|
@ -416,11 +417,29 @@ static void get_symbol_str(struct gstr *r, struct symbol *sym)
|
|||
}
|
||||
if (hit)
|
||||
str_append(r, "\n");
|
||||
|
||||
hit = false;
|
||||
for_all_properties(sym, prop, P_DESELECT) {
|
||||
if (!hit) {
|
||||
str_append(r, " Deselects: ");
|
||||
hit = true;
|
||||
} else
|
||||
str_printf(r, " && ");
|
||||
expr_gstr_print(prop->expr, r);
|
||||
}
|
||||
if (hit)
|
||||
str_append(r, "\n");
|
||||
|
||||
if (sym->rev_dep.expr) {
|
||||
str_append(r, " Selected by: ");
|
||||
expr_gstr_print(sym->rev_dep.expr, r);
|
||||
str_append(r, "\n");
|
||||
}
|
||||
if (sym->rev_dep_inv.expr) {
|
||||
str_append(r, " Deselected by: ");
|
||||
expr_gstr_print(sym->rev_dep_inv.expr, r);
|
||||
str_append(r, "\n");
|
||||
}
|
||||
str_append(r, "\n\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -74,37 +74,9 @@ void menu_end_menu(void)
|
|||
current_menu = current_menu->parent;
|
||||
}
|
||||
|
||||
struct expr *menu_check_dep(struct expr *e)
|
||||
{
|
||||
if (!e)
|
||||
return e;
|
||||
|
||||
switch (e->type) {
|
||||
case E_NOT:
|
||||
e->left.expr = menu_check_dep(e->left.expr);
|
||||
break;
|
||||
case E_OR:
|
||||
case E_AND:
|
||||
e->left.expr = menu_check_dep(e->left.expr);
|
||||
e->right.expr = menu_check_dep(e->right.expr);
|
||||
break;
|
||||
/* tristate always enabled */
|
||||
#if 0
|
||||
case E_SYMBOL:
|
||||
/* change 'm' into 'm' && MODULES */
|
||||
if (e->left.sym == &symbol_mod)
|
||||
return expr_alloc_and(e, expr_alloc_symbol(modules_sym));
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return e;
|
||||
}
|
||||
|
||||
void menu_add_dep(struct expr *dep)
|
||||
{
|
||||
current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
|
||||
current_entry->dep = expr_alloc_and(current_entry->dep, dep);
|
||||
}
|
||||
|
||||
void menu_set_type(int type)
|
||||
|
@ -129,7 +101,7 @@ struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *e
|
|||
prop->menu = current_entry;
|
||||
prop->text = prompt;
|
||||
prop->expr = expr;
|
||||
prop->visible.expr = menu_check_dep(dep);
|
||||
prop->visible.expr = dep;
|
||||
|
||||
if (prompt) {
|
||||
if (current_entry->prompt)
|
||||
|
@ -191,6 +163,23 @@ void sym_check_prop(struct symbol *sym)
|
|||
"accept arguments of boolean and "
|
||||
"tristate type", sym2->name);
|
||||
break;
|
||||
case P_DESELECT:
|
||||
sym2 = prop_get_symbol(prop);
|
||||
if (sym->type != S_BOOLEAN && sym->type != S_TRISTATE)
|
||||
prop_warn(prop,
|
||||
"config symbol '%s' uses deselect, but is "
|
||||
"not boolean or tristate", sym->name);
|
||||
else if (sym2->type == S_UNKNOWN)
|
||||
prop_warn(prop,
|
||||
"'deselect' used by config symbol '%s' "
|
||||
"refer to undefined symbol '%s'",
|
||||
sym->name, sym2->name);
|
||||
else if (sym2->type != S_BOOLEAN && sym2->type != S_TRISTATE)
|
||||
prop_warn(prop,
|
||||
"'%s' has wrong type. 'deselect' only "
|
||||
"accept arguments of boolean and "
|
||||
"tristate type", sym2->name);
|
||||
break;
|
||||
case P_RANGE:
|
||||
if (sym->type != S_INT && sym->type != S_HEX)
|
||||
prop_warn(prop, "range is only allowed "
|
||||
|
@ -240,11 +229,12 @@ void menu_finalize(struct menu *parent)
|
|||
prop = menu->sym->prop;
|
||||
else
|
||||
prop = menu->prompt;
|
||||
|
||||
for (; prop; prop = prop->next) {
|
||||
if (prop->menu != menu)
|
||||
continue;
|
||||
dep = expr_transform(prop->visible.expr);
|
||||
dep = expr_alloc_and(expr_copy(basedep), dep);
|
||||
dep = expr_alloc_and(expr_copy(menu->dep), dep);
|
||||
dep = expr_eliminate_dups(dep);
|
||||
if (menu->sym && menu->sym->type != S_TRISTATE)
|
||||
dep = expr_trans_bool(dep);
|
||||
|
@ -254,6 +244,11 @@ void menu_finalize(struct menu *parent)
|
|||
es->rev_dep.expr = expr_alloc_or(es->rev_dep.expr,
|
||||
expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
|
||||
}
|
||||
if (prop->type == P_DESELECT) {
|
||||
struct symbol *es = prop_get_symbol(prop);
|
||||
es->rev_dep_inv.expr = expr_alloc_or(es->rev_dep_inv.expr,
|
||||
expr_alloc_and(expr_alloc_symbol(menu->sym), expr_copy(dep)));
|
||||
}
|
||||
}
|
||||
}
|
||||
for (menu = parent->list; menu; menu = menu->next)
|
||||
|
|
|
@ -204,13 +204,12 @@ static void sym_calc_visibility(struct symbol *sym)
|
|||
prop->visible.tri = expr_calc_value(prop->visible.expr);
|
||||
tri = E_OR(tri, prop->visible.tri);
|
||||
}
|
||||
/* tristate always enabled */
|
||||
#if 0
|
||||
if (tri == mod && (sym->type != S_TRISTATE || modules_val == no))
|
||||
#else
|
||||
if (tri == mod && (sym->type != S_TRISTATE))
|
||||
#endif
|
||||
tri = yes;
|
||||
if (sym->rev_dep_inv.expr) {
|
||||
if (expr_calc_value(sym->rev_dep_inv.expr) == yes)
|
||||
tri = no;
|
||||
}
|
||||
if (sym->visible != tri) {
|
||||
sym->visible = tri;
|
||||
sym_set_changed(sym);
|
||||
|
@ -814,7 +813,7 @@ struct symbol *sym_check_deps(struct symbol *sym)
|
|||
goto out;
|
||||
|
||||
for (prop = sym->prop; prop; prop = prop->next) {
|
||||
if (prop->type == P_CHOICE || prop->type == P_SELECT)
|
||||
if (prop->type == P_CHOICE || prop->type == P_SELECT || prop->type == P_DESELECT)
|
||||
continue;
|
||||
sym2 = sym_check_expr_deps(prop->visible.expr);
|
||||
if (sym2)
|
||||
|
@ -882,6 +881,8 @@ const char *prop_get_type_name(enum prop_type type)
|
|||
return "choice";
|
||||
case P_SELECT:
|
||||
return "select";
|
||||
case P_DESELECT:
|
||||
return "deselect";
|
||||
case P_RANGE:
|
||||
return "range";
|
||||
case P_UNKNOWN:
|
||||
|
|
|
@ -37,6 +37,7 @@ def_boolean, T_DEFAULT, TF_COMMAND, S_BOOLEAN
|
|||
int, T_TYPE, TF_COMMAND, S_INT
|
||||
hex, T_TYPE, TF_COMMAND, S_HEX
|
||||
string, T_TYPE, TF_COMMAND, S_STRING
|
||||
deselect, T_DESELECT, TF_COMMAND
|
||||
select, T_SELECT, TF_COMMAND
|
||||
enable, T_SELECT, TF_COMMAND
|
||||
range, T_RANGE, TF_COMMAND
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
#endif
|
||||
|
||||
struct kconf_id;
|
||||
/* maximum key range = 45, duplicates = 0 */
|
||||
/* maximum key range = 40, duplicates = 0 */
|
||||
|
||||
#ifdef __GNUC__
|
||||
__inline
|
||||
|
@ -44,32 +44,32 @@ kconf_id_hash (register const char *str, register unsigned int len)
|
|||
{
|
||||
static unsigned char asso_values[] =
|
||||
{
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 0, 10, 15,
|
||||
0, 0, 5, 47, 5, 0, 47, 47, 10, 10,
|
||||
0, 20, 20, 20, 5, 15, 0, 15, 47, 47,
|
||||
15, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
|
||||
47, 47, 47, 47, 47, 47
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 35, 0, 20,
|
||||
5, 0, 5, 42, 0, 25, 42, 42, 5, 5,
|
||||
10, 0, 25, 15, 0, 0, 0, 10, 42, 42,
|
||||
0, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
|
||||
42, 42, 42, 42, 42, 42
|
||||
};
|
||||
register int hval = len;
|
||||
|
||||
|
@ -88,71 +88,73 @@ kconf_id_hash (register const char *str, register unsigned int len)
|
|||
|
||||
struct kconf_id_strings_t
|
||||
{
|
||||
char kconf_id_strings_str2[sizeof("if")];
|
||||
char kconf_id_strings_str3[sizeof("int")];
|
||||
char kconf_id_strings_str5[sizeof("endif")];
|
||||
char kconf_id_strings_str6[sizeof("enable")];
|
||||
char kconf_id_strings_str7[sizeof("endmenu")];
|
||||
char kconf_id_strings_str8[sizeof("tristate")];
|
||||
char kconf_id_strings_str9[sizeof("endchoice")];
|
||||
char kconf_id_strings_str10[sizeof("range")];
|
||||
char kconf_id_strings_str12[sizeof("default")];
|
||||
char kconf_id_strings_str13[sizeof("def_bool")];
|
||||
char kconf_id_strings_str14[sizeof("menu")];
|
||||
char kconf_id_strings_str16[sizeof("def_boolean")];
|
||||
char kconf_id_strings_str17[sizeof("def_tristate")];
|
||||
char kconf_id_strings_str18[sizeof("mainmenu")];
|
||||
char kconf_id_strings_str19[sizeof("help")];
|
||||
char kconf_id_strings_str20[sizeof("menuconfig")];
|
||||
char kconf_id_strings_str21[sizeof("config")];
|
||||
char kconf_id_strings_str22[sizeof("on")];
|
||||
char kconf_id_strings_str23[sizeof("hex")];
|
||||
char kconf_id_strings_str25[sizeof("reset")];
|
||||
char kconf_id_strings_str26[sizeof("string")];
|
||||
char kconf_id_strings_str27[sizeof("depends")];
|
||||
char kconf_id_strings_str28[sizeof("optional")];
|
||||
char kconf_id_strings_str31[sizeof("select")];
|
||||
char kconf_id_strings_str2[sizeof("on")];
|
||||
char kconf_id_strings_str3[sizeof("hex")];
|
||||
char kconf_id_strings_str4[sizeof("bool")];
|
||||
char kconf_id_strings_str5[sizeof("reset")];
|
||||
char kconf_id_strings_str6[sizeof("string")];
|
||||
char kconf_id_strings_str7[sizeof("boolean")];
|
||||
char kconf_id_strings_str8[sizeof("optional")];
|
||||
char kconf_id_strings_str9[sizeof("help")];
|
||||
char kconf_id_strings_str10[sizeof("endif")];
|
||||
char kconf_id_strings_str11[sizeof("select")];
|
||||
char kconf_id_strings_str12[sizeof("endmenu")];
|
||||
char kconf_id_strings_str13[sizeof("deselect")];
|
||||
char kconf_id_strings_str14[sizeof("endchoice")];
|
||||
char kconf_id_strings_str15[sizeof("range")];
|
||||
char kconf_id_strings_str16[sizeof("source")];
|
||||
char kconf_id_strings_str17[sizeof("default")];
|
||||
char kconf_id_strings_str18[sizeof("def_bool")];
|
||||
char kconf_id_strings_str19[sizeof("menu")];
|
||||
char kconf_id_strings_str21[sizeof("def_boolean")];
|
||||
char kconf_id_strings_str22[sizeof("def_tristate")];
|
||||
char kconf_id_strings_str23[sizeof("requires")];
|
||||
char kconf_id_strings_str25[sizeof("menuconfig")];
|
||||
char kconf_id_strings_str26[sizeof("choice")];
|
||||
char kconf_id_strings_str27[sizeof("if")];
|
||||
char kconf_id_strings_str28[sizeof("int")];
|
||||
char kconf_id_strings_str31[sizeof("prompt")];
|
||||
char kconf_id_strings_str32[sizeof("comment")];
|
||||
char kconf_id_strings_str33[sizeof("requires")];
|
||||
char kconf_id_strings_str34[sizeof("bool")];
|
||||
char kconf_id_strings_str36[sizeof("source")];
|
||||
char kconf_id_strings_str37[sizeof("boolean")];
|
||||
char kconf_id_strings_str41[sizeof("choice")];
|
||||
char kconf_id_strings_str46[sizeof("prompt")];
|
||||
char kconf_id_strings_str33[sizeof("tristate")];
|
||||
char kconf_id_strings_str36[sizeof("config")];
|
||||
char kconf_id_strings_str37[sizeof("depends")];
|
||||
char kconf_id_strings_str38[sizeof("mainmenu")];
|
||||
char kconf_id_strings_str41[sizeof("enable")];
|
||||
};
|
||||
static struct kconf_id_strings_t kconf_id_strings_contents =
|
||||
{
|
||||
"if",
|
||||
"int",
|
||||
"on",
|
||||
"hex",
|
||||
"bool",
|
||||
"reset",
|
||||
"string",
|
||||
"boolean",
|
||||
"optional",
|
||||
"help",
|
||||
"endif",
|
||||
"enable",
|
||||
"select",
|
||||
"endmenu",
|
||||
"tristate",
|
||||
"deselect",
|
||||
"endchoice",
|
||||
"range",
|
||||
"source",
|
||||
"default",
|
||||
"def_bool",
|
||||
"menu",
|
||||
"def_boolean",
|
||||
"def_tristate",
|
||||
"mainmenu",
|
||||
"help",
|
||||
"menuconfig",
|
||||
"config",
|
||||
"on",
|
||||
"hex",
|
||||
"reset",
|
||||
"string",
|
||||
"depends",
|
||||
"optional",
|
||||
"select",
|
||||
"comment",
|
||||
"requires",
|
||||
"bool",
|
||||
"source",
|
||||
"boolean",
|
||||
"menuconfig",
|
||||
"choice",
|
||||
"prompt"
|
||||
"if",
|
||||
"int",
|
||||
"prompt",
|
||||
"comment",
|
||||
"tristate",
|
||||
"config",
|
||||
"depends",
|
||||
"mainmenu",
|
||||
"enable"
|
||||
};
|
||||
#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
|
||||
#ifdef __GNUC__
|
||||
|
@ -163,55 +165,53 @@ kconf_id_lookup (register const char *str, register unsigned int len)
|
|||
{
|
||||
enum
|
||||
{
|
||||
TOTAL_KEYWORDS = 31,
|
||||
TOTAL_KEYWORDS = 32,
|
||||
MIN_WORD_LENGTH = 2,
|
||||
MAX_WORD_LENGTH = 12,
|
||||
MIN_HASH_VALUE = 2,
|
||||
MAX_HASH_VALUE = 46
|
||||
MAX_HASH_VALUE = 41
|
||||
};
|
||||
|
||||
static struct kconf_id wordlist[] =
|
||||
{
|
||||
{-1}, {-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_INT},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_ON, TF_PARAM},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_HEX},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str4, T_TYPE, TF_COMMAND, S_BOOLEAN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_RESET, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_TYPE, TF_COMMAND, S_STRING},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_TYPE, TF_COMMAND, S_BOOLEAN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_OPTIONAL, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_HELP, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_ENDIF, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_SELECT, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_ENDMENU, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DESELECT, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_ENDCHOICE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15, T_RANGE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_SOURCE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19, T_MENU, TF_COMMAND},
|
||||
{-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_SELECT, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TYPE, TF_COMMAND, S_TRISTATE},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_DEFAULT, TF_COMMAND, S_TRISTATE},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_REQUIRES, TF_COMMAND},
|
||||
{-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_MENU, TF_COMMAND},
|
||||
{-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEFAULT, TF_COMMAND, S_TRISTATE},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_MAINMENU, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19, T_HELP, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str20, T_MENUCONFIG, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_CONFIG, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ON, TF_PARAM},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_HEX},
|
||||
{-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_RESET, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_TYPE, TF_COMMAND, S_STRING},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_DEPENDS, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_OPTIONAL, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_CHOICE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_IF, TF_COMMAND|TF_PARAM},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_TYPE, TF_COMMAND, S_INT},
|
||||
{-1}, {-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_PROMPT, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_REQUIRES, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str34, T_TYPE, TF_COMMAND, S_BOOLEAN},
|
||||
{-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_SOURCE, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_TYPE, TF_COMMAND, S_BOOLEAN},
|
||||
{-1}, {-1}, {-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_CHOICE, TF_COMMAND},
|
||||
{-1}, {-1}, {-1}, {-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_PROMPT, TF_COMMAND}
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_TYPE, TF_COMMAND, S_TRISTATE},
|
||||
{-1}, {-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CONFIG, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_DEPENDS, TF_COMMAND},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str38, T_MAINMENU, TF_COMMAND},
|
||||
{-1}, {-1},
|
||||
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SELECT, TF_COMMAND}
|
||||
};
|
||||
|
||||
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
|
||||
|
|
|
@ -81,20 +81,21 @@
|
|||
T_PROMPT = 274,
|
||||
T_TYPE = 275,
|
||||
T_DEFAULT = 276,
|
||||
T_SELECT = 277,
|
||||
T_RANGE = 278,
|
||||
T_ON = 279,
|
||||
T_RESET = 280,
|
||||
T_WORD = 281,
|
||||
T_WORD_QUOTE = 282,
|
||||
T_UNEQUAL = 283,
|
||||
T_CLOSE_PAREN = 284,
|
||||
T_OPEN_PAREN = 285,
|
||||
T_EOL = 286,
|
||||
T_OR = 287,
|
||||
T_AND = 288,
|
||||
T_EQUAL = 289,
|
||||
T_NOT = 290
|
||||
T_DESELECT = 277,
|
||||
T_SELECT = 278,
|
||||
T_RANGE = 279,
|
||||
T_ON = 280,
|
||||
T_RESET = 281,
|
||||
T_WORD = 282,
|
||||
T_WORD_QUOTE = 283,
|
||||
T_UNEQUAL = 284,
|
||||
T_CLOSE_PAREN = 285,
|
||||
T_OPEN_PAREN = 286,
|
||||
T_EOL = 287,
|
||||
T_OR = 288,
|
||||
T_AND = 289,
|
||||
T_EQUAL = 290,
|
||||
T_NOT = 291
|
||||
};
|
||||
#endif
|
||||
#define T_MAINMENU 258
|
||||
|
@ -116,20 +117,21 @@
|
|||
#define T_PROMPT 274
|
||||
#define T_TYPE 275
|
||||
#define T_DEFAULT 276
|
||||
#define T_SELECT 277
|
||||
#define T_RANGE 278
|
||||
#define T_ON 279
|
||||
#define T_RESET 280
|
||||
#define T_WORD 281
|
||||
#define T_WORD_QUOTE 282
|
||||
#define T_UNEQUAL 283
|
||||
#define T_CLOSE_PAREN 284
|
||||
#define T_OPEN_PAREN 285
|
||||
#define T_EOL 286
|
||||
#define T_OR 287
|
||||
#define T_AND 288
|
||||
#define T_EQUAL 289
|
||||
#define T_NOT 290
|
||||
#define T_DESELECT 277
|
||||
#define T_SELECT 278
|
||||
#define T_RANGE 279
|
||||
#define T_ON 280
|
||||
#define T_RESET 281
|
||||
#define T_WORD 282
|
||||
#define T_WORD_QUOTE 283
|
||||
#define T_UNEQUAL 284
|
||||
#define T_CLOSE_PAREN 285
|
||||
#define T_OPEN_PAREN 286
|
||||
#define T_EOL 287
|
||||
#define T_OR 288
|
||||
#define T_AND 289
|
||||
#define T_EQUAL 290
|
||||
#define T_NOT 291
|
||||
|
||||
|
||||
|
||||
|
@ -319,20 +321,20 @@ union yyalloc
|
|||
/* YYFINAL -- State number of the termination state. */
|
||||
#define YYFINAL 3
|
||||
/* YYLAST -- Last index in YYTABLE. */
|
||||
#define YYLAST 271
|
||||
#define YYLAST 285
|
||||
|
||||
/* YYNTOKENS -- Number of terminals. */
|
||||
#define YYNTOKENS 36
|
||||
#define YYNTOKENS 37
|
||||
/* YYNNTS -- Number of nonterminals. */
|
||||
#define YYNNTS 42
|
||||
/* YYNRULES -- Number of rules. */
|
||||
#define YYNRULES 106
|
||||
#define YYNRULES 108
|
||||
/* YYNRULES -- Number of states. */
|
||||
#define YYNSTATES 179
|
||||
#define YYNSTATES 184
|
||||
|
||||
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
|
||||
#define YYUNDEFTOK 2
|
||||
#define YYMAXUTOK 290
|
||||
#define YYMAXUTOK 291
|
||||
|
||||
#define YYTRANSLATE(YYX) \
|
||||
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
|
||||
|
@ -369,7 +371,7 @@ static const unsigned char yytranslate[] =
|
|||
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
|
||||
35, 36
|
||||
};
|
||||
|
||||
#if YYDEBUG
|
||||
|
@ -379,68 +381,69 @@ static const unsigned short int yyprhs[] =
|
|||
{
|
||||
0, 0, 3, 5, 6, 9, 12, 15, 20, 23,
|
||||
28, 33, 37, 39, 41, 43, 45, 47, 49, 51,
|
||||
53, 55, 57, 59, 61, 63, 65, 69, 72, 76,
|
||||
79, 83, 86, 87, 90, 93, 96, 99, 102, 106,
|
||||
111, 116, 121, 127, 130, 133, 135, 139, 140, 143,
|
||||
146, 149, 152, 155, 160, 164, 167, 171, 176, 177,
|
||||
180, 184, 186, 190, 191, 194, 197, 200, 204, 207,
|
||||
209, 213, 214, 217, 220, 223, 227, 231, 234, 237,
|
||||
240, 241, 244, 247, 250, 255, 259, 263, 264, 267,
|
||||
269, 271, 274, 277, 280, 282, 285, 286, 289, 291,
|
||||
295, 299, 303, 306, 310, 314, 316
|
||||
53, 55, 57, 59, 61, 63, 65, 67, 71, 74,
|
||||
78, 81, 85, 88, 89, 92, 95, 98, 101, 104,
|
||||
108, 113, 118, 123, 128, 134, 137, 140, 142, 146,
|
||||
147, 150, 153, 156, 159, 162, 167, 171, 174, 178,
|
||||
183, 184, 187, 191, 193, 197, 198, 201, 204, 207,
|
||||
211, 214, 216, 220, 221, 224, 227, 230, 234, 238,
|
||||
241, 244, 247, 248, 251, 254, 257, 262, 266, 270,
|
||||
271, 274, 276, 278, 281, 284, 287, 289, 292, 293,
|
||||
296, 298, 302, 306, 310, 313, 317, 321, 323
|
||||
};
|
||||
|
||||
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
|
||||
static const yysigned_char yyrhs[] =
|
||||
{
|
||||
37, 0, -1, 38, -1, -1, 38, 40, -1, 38,
|
||||
51, -1, 38, 62, -1, 38, 3, 72, 74, -1,
|
||||
38, 73, -1, 38, 26, 1, 31, -1, 38, 39,
|
||||
1, 31, -1, 38, 1, 31, -1, 16, -1, 19,
|
||||
-1, 20, -1, 22, -1, 18, -1, 23, -1, 21,
|
||||
-1, 25, -1, 31, -1, 57, -1, 66, -1, 43,
|
||||
-1, 45, -1, 64, -1, 26, 1, 31, -1, 1,
|
||||
31, -1, 10, 26, 31, -1, 42, 46, -1, 11,
|
||||
26, 31, -1, 44, 46, -1, -1, 46, 47, -1,
|
||||
46, 70, -1, 46, 68, -1, 46, 41, -1, 46,
|
||||
31, -1, 20, 71, 31, -1, 19, 72, 75, 31,
|
||||
-1, 21, 76, 75, 31, -1, 22, 26, 75, 31,
|
||||
-1, 23, 77, 77, 75, 31, -1, 7, 31, -1,
|
||||
48, 52, -1, 73, -1, 49, 54, 50, -1, -1,
|
||||
52, 53, -1, 52, 70, -1, 52, 68, -1, 52,
|
||||
31, -1, 52, 41, -1, 19, 72, 75, 31, -1,
|
||||
20, 71, 31, -1, 18, 31, -1, 25, 75, 31,
|
||||
-1, 21, 26, 75, 31, -1, -1, 54, 40, -1,
|
||||
14, 76, 74, -1, 73, -1, 55, 58, 56, -1,
|
||||
-1, 58, 40, -1, 58, 62, -1, 58, 51, -1,
|
||||
4, 72, 31, -1, 59, 69, -1, 73, -1, 60,
|
||||
63, 61, -1, -1, 63, 40, -1, 63, 62, -1,
|
||||
63, 51, -1, 6, 72, 31, -1, 9, 72, 31,
|
||||
-1, 65, 69, -1, 12, 31, -1, 67, 13, -1,
|
||||
-1, 69, 70, -1, 69, 31, -1, 69, 41, -1,
|
||||
16, 24, 76, 31, -1, 16, 76, 31, -1, 17,
|
||||
76, 31, -1, -1, 72, 75, -1, 26, -1, 27,
|
||||
-1, 5, 31, -1, 8, 31, -1, 15, 31, -1,
|
||||
31, -1, 74, 31, -1, -1, 14, 76, -1, 77,
|
||||
-1, 77, 34, 77, -1, 77, 28, 77, -1, 30,
|
||||
76, 29, -1, 35, 76, -1, 76, 32, 76, -1,
|
||||
76, 33, 76, -1, 26, -1, 27, -1
|
||||
38, 0, -1, 39, -1, -1, 39, 41, -1, 39,
|
||||
52, -1, 39, 63, -1, 39, 3, 73, 75, -1,
|
||||
39, 74, -1, 39, 27, 1, 32, -1, 39, 40,
|
||||
1, 32, -1, 39, 1, 32, -1, 16, -1, 19,
|
||||
-1, 20, -1, 22, -1, 23, -1, 18, -1, 24,
|
||||
-1, 21, -1, 26, -1, 32, -1, 58, -1, 67,
|
||||
-1, 44, -1, 46, -1, 65, -1, 27, 1, 32,
|
||||
-1, 1, 32, -1, 10, 27, 32, -1, 43, 47,
|
||||
-1, 11, 27, 32, -1, 45, 47, -1, -1, 47,
|
||||
48, -1, 47, 71, -1, 47, 69, -1, 47, 42,
|
||||
-1, 47, 32, -1, 20, 72, 32, -1, 19, 73,
|
||||
76, 32, -1, 21, 77, 76, 32, -1, 22, 27,
|
||||
76, 32, -1, 23, 27, 76, 32, -1, 24, 78,
|
||||
78, 76, 32, -1, 7, 32, -1, 49, 53, -1,
|
||||
74, -1, 50, 55, 51, -1, -1, 53, 54, -1,
|
||||
53, 71, -1, 53, 69, -1, 53, 32, -1, 53,
|
||||
42, -1, 19, 73, 76, 32, -1, 20, 72, 32,
|
||||
-1, 18, 32, -1, 26, 76, 32, -1, 21, 27,
|
||||
76, 32, -1, -1, 55, 41, -1, 14, 77, 75,
|
||||
-1, 74, -1, 56, 59, 57, -1, -1, 59, 41,
|
||||
-1, 59, 63, -1, 59, 52, -1, 4, 73, 32,
|
||||
-1, 60, 70, -1, 74, -1, 61, 64, 62, -1,
|
||||
-1, 64, 41, -1, 64, 63, -1, 64, 52, -1,
|
||||
6, 73, 32, -1, 9, 73, 32, -1, 66, 70,
|
||||
-1, 12, 32, -1, 68, 13, -1, -1, 70, 71,
|
||||
-1, 70, 32, -1, 70, 42, -1, 16, 25, 77,
|
||||
32, -1, 16, 77, 32, -1, 17, 77, 32, -1,
|
||||
-1, 73, 76, -1, 27, -1, 28, -1, 5, 32,
|
||||
-1, 8, 32, -1, 15, 32, -1, 32, -1, 75,
|
||||
32, -1, -1, 14, 77, -1, 78, -1, 78, 35,
|
||||
78, -1, 78, 29, 78, -1, 31, 77, 30, -1,
|
||||
36, 77, -1, 77, 33, 77, -1, 77, 34, 77,
|
||||
-1, 27, -1, 28, -1
|
||||
};
|
||||
|
||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||
static const unsigned short int yyrline[] =
|
||||
{
|
||||
0, 104, 104, 106, 108, 109, 110, 111, 112, 113,
|
||||
114, 118, 122, 122, 122, 122, 122, 122, 122, 122,
|
||||
126, 127, 128, 129, 130, 131, 135, 136, 142, 150,
|
||||
156, 164, 174, 176, 177, 178, 179, 180, 183, 191,
|
||||
197, 207, 213, 221, 230, 235, 243, 246, 248, 249,
|
||||
250, 251, 252, 255, 261, 272, 278, 283, 293, 295,
|
||||
300, 308, 316, 319, 321, 322, 323, 328, 335, 340,
|
||||
348, 351, 353, 354, 355, 358, 366, 373, 380, 386,
|
||||
393, 395, 396, 397, 400, 405, 410, 418, 420, 425,
|
||||
426, 429, 430, 431, 435, 436, 439, 440, 443, 444,
|
||||
445, 446, 447, 448, 449, 452, 453
|
||||
0, 105, 105, 107, 109, 110, 111, 112, 113, 114,
|
||||
115, 119, 123, 123, 123, 123, 123, 123, 123, 123,
|
||||
123, 127, 128, 129, 130, 131, 132, 136, 137, 143,
|
||||
151, 157, 165, 175, 177, 178, 179, 180, 181, 184,
|
||||
192, 198, 208, 214, 220, 228, 237, 242, 250, 253,
|
||||
255, 256, 257, 258, 259, 262, 268, 279, 285, 290,
|
||||
300, 302, 307, 315, 323, 326, 328, 329, 330, 335,
|
||||
342, 347, 355, 358, 360, 361, 362, 365, 373, 380,
|
||||
387, 393, 400, 402, 403, 404, 407, 412, 417, 425,
|
||||
427, 432, 433, 436, 437, 438, 442, 443, 446, 447,
|
||||
450, 451, 452, 453, 454, 455, 456, 459, 460
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -453,17 +456,18 @@ static const char *const yytname[] =
|
|||
"T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
|
||||
"T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
|
||||
"T_REQUIRES", "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT",
|
||||
"T_SELECT", "T_RANGE", "T_ON", "T_RESET", "T_WORD", "T_WORD_QUOTE",
|
||||
"T_UNEQUAL", "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND",
|
||||
"T_EQUAL", "T_NOT", "$accept", "input", "stmt_list", "option_name",
|
||||
"common_stmt", "option_error", "config_entry_start", "config_stmt",
|
||||
"menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
|
||||
"config_option", "choice", "choice_entry", "choice_end", "choice_stmt",
|
||||
"choice_option_list", "choice_option", "choice_block", "if_entry",
|
||||
"if_end", "if_stmt", "if_block", "menu", "menu_entry", "menu_end",
|
||||
"menu_stmt", "menu_block", "source_stmt", "comment", "comment_stmt",
|
||||
"help_start", "help", "depends_list", "depends", "prompt_stmt_opt",
|
||||
"prompt", "end", "nl", "if_expr", "expr", "symbol", 0
|
||||
"T_DESELECT", "T_SELECT", "T_RANGE", "T_ON", "T_RESET", "T_WORD",
|
||||
"T_WORD_QUOTE", "T_UNEQUAL", "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL",
|
||||
"T_OR", "T_AND", "T_EQUAL", "T_NOT", "$accept", "input", "stmt_list",
|
||||
"option_name", "common_stmt", "option_error", "config_entry_start",
|
||||
"config_stmt", "menuconfig_entry_start", "menuconfig_stmt",
|
||||
"config_option_list", "config_option", "choice", "choice_entry",
|
||||
"choice_end", "choice_stmt", "choice_option_list", "choice_option",
|
||||
"choice_block", "if_entry", "if_end", "if_stmt", "if_block", "menu",
|
||||
"menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
|
||||
"comment", "comment_stmt", "help_start", "help", "depends_list",
|
||||
"depends", "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr",
|
||||
"symbol", 0
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -475,24 +479,24 @@ static const unsigned short int 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
|
||||
285, 286, 287, 288, 289, 290, 291
|
||||
};
|
||||
# endif
|
||||
|
||||
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
|
||||
static const unsigned char yyr1[] =
|
||||
{
|
||||
0, 36, 37, 38, 38, 38, 38, 38, 38, 38,
|
||||
38, 38, 39, 39, 39, 39, 39, 39, 39, 39,
|
||||
40, 40, 40, 40, 40, 40, 41, 41, 42, 43,
|
||||
44, 45, 46, 46, 46, 46, 46, 46, 47, 47,
|
||||
47, 47, 47, 48, 49, 50, 51, 52, 52, 52,
|
||||
52, 52, 52, 53, 53, 53, 53, 53, 54, 54,
|
||||
55, 56, 57, 58, 58, 58, 58, 59, 60, 61,
|
||||
62, 63, 63, 63, 63, 64, 65, 66, 67, 68,
|
||||
69, 69, 69, 69, 70, 70, 70, 71, 71, 72,
|
||||
72, 73, 73, 73, 74, 74, 75, 75, 76, 76,
|
||||
76, 76, 76, 76, 76, 77, 77
|
||||
0, 37, 38, 39, 39, 39, 39, 39, 39, 39,
|
||||
39, 39, 40, 40, 40, 40, 40, 40, 40, 40,
|
||||
40, 41, 41, 41, 41, 41, 41, 42, 42, 43,
|
||||
44, 45, 46, 47, 47, 47, 47, 47, 47, 48,
|
||||
48, 48, 48, 48, 48, 49, 50, 51, 52, 53,
|
||||
53, 53, 53, 53, 53, 54, 54, 54, 54, 54,
|
||||
55, 55, 56, 57, 58, 59, 59, 59, 59, 60,
|
||||
61, 62, 63, 64, 64, 64, 64, 65, 66, 67,
|
||||
68, 69, 70, 70, 70, 70, 71, 71, 71, 72,
|
||||
72, 73, 73, 74, 74, 74, 75, 75, 76, 76,
|
||||
77, 77, 77, 77, 77, 77, 77, 78, 78
|
||||
};
|
||||
|
||||
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
|
||||
|
@ -500,15 +504,15 @@ static const unsigned char yyr2[] =
|
|||
{
|
||||
0, 2, 1, 0, 2, 2, 2, 4, 2, 4,
|
||||
4, 3, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 1, 1, 3, 2, 3, 2,
|
||||
3, 2, 0, 2, 2, 2, 2, 2, 3, 4,
|
||||
4, 4, 5, 2, 2, 1, 3, 0, 2, 2,
|
||||
2, 2, 2, 4, 3, 2, 3, 4, 0, 2,
|
||||
3, 1, 3, 0, 2, 2, 2, 3, 2, 1,
|
||||
3, 0, 2, 2, 2, 3, 3, 2, 2, 2,
|
||||
0, 2, 2, 2, 4, 3, 3, 0, 2, 1,
|
||||
1, 2, 2, 2, 1, 2, 0, 2, 1, 3,
|
||||
3, 3, 2, 3, 3, 1, 1
|
||||
1, 1, 1, 1, 1, 1, 1, 3, 2, 3,
|
||||
2, 3, 2, 0, 2, 2, 2, 2, 2, 3,
|
||||
4, 4, 4, 4, 5, 2, 2, 1, 3, 0,
|
||||
2, 2, 2, 2, 2, 4, 3, 2, 3, 4,
|
||||
0, 2, 3, 1, 3, 0, 2, 2, 2, 3,
|
||||
2, 1, 3, 0, 2, 2, 2, 3, 3, 2,
|
||||
2, 2, 0, 2, 2, 2, 4, 3, 3, 0,
|
||||
2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
|
||||
1, 3, 3, 3, 2, 3, 3, 1, 1
|
||||
};
|
||||
|
||||
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
|
||||
|
@ -517,161 +521,166 @@ static const unsigned char yyr2[] =
|
|||
static const unsigned char yydefact[] =
|
||||
{
|
||||
3, 0, 0, 1, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 12, 16, 13, 14,
|
||||
18, 15, 17, 19, 0, 20, 0, 4, 32, 23,
|
||||
32, 24, 47, 58, 5, 63, 21, 80, 71, 6,
|
||||
25, 80, 22, 8, 11, 89, 90, 0, 0, 91,
|
||||
0, 43, 92, 0, 0, 0, 105, 106, 0, 0,
|
||||
0, 98, 93, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 94, 7, 67, 75, 76, 28, 30,
|
||||
0, 102, 0, 0, 60, 0, 0, 9, 10, 0,
|
||||
0, 0, 0, 0, 87, 0, 0, 0, 0, 37,
|
||||
36, 33, 0, 35, 34, 0, 0, 87, 0, 96,
|
||||
51, 52, 48, 50, 49, 59, 46, 45, 64, 66,
|
||||
62, 65, 61, 82, 83, 81, 72, 74, 70, 73,
|
||||
69, 95, 101, 103, 104, 100, 99, 27, 78, 0,
|
||||
0, 0, 96, 0, 96, 96, 96, 0, 0, 79,
|
||||
55, 96, 0, 96, 0, 0, 0, 85, 86, 0,
|
||||
38, 88, 0, 0, 96, 26, 0, 54, 0, 97,
|
||||
56, 84, 39, 40, 41, 0, 53, 57, 42
|
||||
0, 0, 0, 0, 0, 0, 12, 17, 13, 14,
|
||||
19, 15, 16, 18, 20, 0, 21, 0, 4, 33,
|
||||
24, 33, 25, 49, 60, 5, 65, 22, 82, 73,
|
||||
6, 26, 82, 23, 8, 11, 91, 92, 0, 0,
|
||||
93, 0, 45, 94, 0, 0, 0, 107, 108, 0,
|
||||
0, 0, 100, 95, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 96, 7, 69, 77, 78, 29,
|
||||
31, 0, 104, 0, 0, 62, 0, 0, 9, 10,
|
||||
0, 0, 0, 0, 0, 89, 0, 0, 0, 0,
|
||||
0, 38, 37, 34, 0, 36, 35, 0, 0, 89,
|
||||
0, 98, 53, 54, 50, 52, 51, 61, 48, 47,
|
||||
66, 68, 64, 67, 63, 84, 85, 83, 74, 76,
|
||||
72, 75, 71, 97, 103, 105, 106, 102, 101, 28,
|
||||
80, 0, 0, 0, 98, 0, 98, 98, 98, 98,
|
||||
0, 0, 81, 57, 98, 0, 98, 0, 0, 0,
|
||||
87, 88, 0, 39, 90, 0, 0, 0, 98, 27,
|
||||
0, 56, 0, 99, 58, 86, 40, 41, 42, 43,
|
||||
0, 55, 59, 44
|
||||
};
|
||||
|
||||
/* YYDEFGOTO[NTERM-NUM]. */
|
||||
static const short int yydefgoto[] =
|
||||
{
|
||||
-1, 1, 2, 26, 27, 100, 28, 29, 30, 31,
|
||||
65, 101, 32, 33, 116, 34, 67, 112, 68, 35,
|
||||
120, 36, 69, 37, 38, 128, 39, 71, 40, 41,
|
||||
42, 102, 103, 70, 104, 143, 144, 43, 74, 155,
|
||||
60, 61
|
||||
-1, 1, 2, 27, 28, 102, 29, 30, 31, 32,
|
||||
66, 103, 33, 34, 118, 35, 68, 114, 69, 36,
|
||||
122, 37, 70, 38, 39, 130, 40, 72, 41, 42,
|
||||
43, 104, 105, 71, 106, 145, 146, 44, 75, 158,
|
||||
61, 62
|
||||
};
|
||||
|
||||
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
|
||||
STATE-NUM. */
|
||||
#define YYPACT_NINF -134
|
||||
#define YYPACT_NINF -80
|
||||
static const short int yypact[] =
|
||||
{
|
||||
-134, 2, 160, -134, -16, 53, 53, -14, 53, -8,
|
||||
-1, 53, 26, 63, 60, 73, -134, -134, -134, -134,
|
||||
-134, -134, -134, -134, 114, -134, 125, -134, -134, -134,
|
||||
-134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
|
||||
-134, -134, -134, -134, -134, -134, -134, 124, 127, -134,
|
||||
128, -134, -134, 141, 142, 146, -134, -134, 60, 60,
|
||||
3, -18, -134, 153, 159, 39, 102, 187, 226, 215,
|
||||
67, 215, 131, -134, 163, -134, -134, -134, -134, -134,
|
||||
34, -134, 60, 60, 163, 103, 103, -134, -134, 169,
|
||||
186, 218, 60, 53, 53, 60, 201, 103, 227, -134,
|
||||
-134, -134, 220, -134, -134, 207, 53, 53, 213, 229,
|
||||
-134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
|
||||
-134, -134, -134, -134, -134, -134, -134, -134, -134, -134,
|
||||
-134, -134, -134, 214, -134, -134, -134, -134, -134, 60,
|
||||
178, 183, 229, 224, 229, 0, 229, 103, 228, -134,
|
||||
-134, 229, 230, 229, 60, 231, 219, -134, -134, 232,
|
||||
-134, -134, 233, 234, 229, -134, 235, -134, 236, 111,
|
||||
-134, -134, -134, -134, -134, 237, -134, -134, -134
|
||||
-80, 2, 164, -80, -22, 105, 105, -6, 105, 0,
|
||||
7, 105, 17, 28, 70, 35, -80, -80, -80, -80,
|
||||
-80, -80, -80, -80, -80, 69, -80, 78, -80, -80,
|
||||
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
|
||||
-80, -80, -80, -80, -80, -80, -80, -80, 62, 68,
|
||||
-80, 85, -80, -80, 97, 127, 144, -80, -80, 70,
|
||||
70, 188, -8, -80, 149, 163, 42, 104, 192, 67,
|
||||
221, 8, 221, 134, -80, 167, -80, -80, -80, -80,
|
||||
-80, 50, -80, 70, 70, 167, 119, 119, -80, -80,
|
||||
173, 184, 60, 70, 105, 105, 70, 65, 150, 119,
|
||||
232, -80, -80, -80, 210, -80, -80, 202, 105, 105,
|
||||
231, 224, -80, -80, -80, -80, -80, -80, -80, -80,
|
||||
-80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
|
||||
-80, -80, -80, -80, -80, 226, -80, -80, -80, -80,
|
||||
-80, 70, 211, 218, 224, 230, 224, -3, 224, 224,
|
||||
119, 233, -80, -80, 224, 234, 224, 70, 235, 222,
|
||||
-80, -80, 236, -80, -80, 237, 238, 239, 224, -80,
|
||||
240, -80, 241, 129, -80, -80, -80, -80, -80, -80,
|
||||
242, -80, -80, -80
|
||||
};
|
||||
|
||||
/* YYPGOTO[NTERM-NUM]. */
|
||||
static const short int yypgoto[] =
|
||||
{
|
||||
-134, -134, -134, -134, 23, -46, -134, -134, -134, -134,
|
||||
239, -134, -134, -134, -134, 118, -134, -134, -134, -134,
|
||||
-134, -134, -134, -134, -134, -134, 185, -134, -134, -134,
|
||||
-134, -134, 182, 217, -45, 164, -5, 28, 200, -133,
|
||||
-54, -78
|
||||
-80, -80, -80, -80, -36, 22, -80, -80, -80, -80,
|
||||
244, -80, -80, -80, -80, 176, -80, -80, -80, -80,
|
||||
-80, -80, -80, -80, -80, -80, 187, -80, -80, -80,
|
||||
-80, -80, 195, 243, 121, 155, -5, 145, 215, 93,
|
||||
-55, -79
|
||||
};
|
||||
|
||||
/* 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, syntax error. */
|
||||
#define YYTABLE_NINF -78
|
||||
#define YYTABLE_NINF -80
|
||||
static const short int yytable[] =
|
||||
{
|
||||
47, 48, 3, 50, 80, 81, 53, 135, 136, 159,
|
||||
85, 161, 162, 163, 154, 44, 86, 49, 166, 147,
|
||||
168, 111, 114, 51, 124, 125, 124, 125, 133, 134,
|
||||
52, 175, 82, 83, 73, 82, 83, 140, 141, -29,
|
||||
89, 145, -29, -29, -29, -29, -29, -29, -29, -29,
|
||||
-29, 90, 54, -29, -29, 91, 92, -29, 93, 94,
|
||||
95, 96, 97, 132, -29, 98, 82, 83, 89, 164,
|
||||
99, -68, -68, -68, -68, -68, -68, -68, -68, 45,
|
||||
46, -68, -68, 91, 92, 156, 56, 57, 142, 55,
|
||||
58, 115, 118, 98, 126, 59, 117, 122, 123, 130,
|
||||
169, 151, -31, 89, 62, -31, -31, -31, -31, -31,
|
||||
-31, -31, -31, -31, 90, 63, -31, -31, 91, 92,
|
||||
-31, 93, 94, 95, 96, 97, 64, -31, 98, 56,
|
||||
57, -77, 89, 99, -77, -77, -77, -77, -77, -77,
|
||||
-77, -77, -77, 82, 83, -77, -77, 91, 92, -77,
|
||||
-77, -77, -77, -77, -77, 73, -77, 98, 75, 76,
|
||||
-2, 4, 123, 5, 6, 7, 8, 9, 10, 11,
|
||||
12, 13, 77, 78, 14, 15, 16, 79, 17, 18,
|
||||
19, 20, 21, 22, 87, 23, 24, 119, 89, 127,
|
||||
88, 25, -44, -44, 131, -44, -44, -44, -44, 90,
|
||||
137, -44, -44, 91, 92, 105, 106, 107, 108, 157,
|
||||
82, 83, 109, 98, 158, 82, 83, 138, 110, 6,
|
||||
7, 8, 9, 10, 11, 12, 13, 146, 148, 14,
|
||||
15, 7, 8, 149, 10, 11, 12, 13, 150, 153,
|
||||
14, 15, 139, 154, 56, 57, 25, 83, 58, 113,
|
||||
171, 82, 83, 59, 121, 160, 129, 25, 72, 165,
|
||||
84, 167, 170, 172, 173, 174, 176, 177, 178, 66,
|
||||
0, 152
|
||||
48, 49, 3, 51, 81, 82, 54, 137, 138, 90,
|
||||
45, 157, -70, -70, -70, -70, -70, -70, -70, -70,
|
||||
150, 86, -70, -70, 92, 93, 50, 87, 135, 136,
|
||||
83, 84, 52, 117, 120, 100, 128, 142, 143, 53,
|
||||
125, 147, -30, 90, 55, -30, -30, -30, -30, -30,
|
||||
-30, -30, -30, -30, 91, 56, -30, -30, 92, 93,
|
||||
-30, 94, 95, 96, 97, 98, 99, 63, -30, 100,
|
||||
64, 168, 7, 8, 101, 10, 11, 12, 13, 65,
|
||||
134, 14, 15, 83, 84, 141, 159, 57, 58, 144,
|
||||
113, 59, 148, 126, 74, 126, 60, 57, 58, 26,
|
||||
76, 59, 173, 154, -32, 90, 60, -32, -32, -32,
|
||||
-32, -32, -32, -32, -32, -32, 91, 77, -32, -32,
|
||||
92, 93, -32, 94, 95, 96, 97, 98, 99, 78,
|
||||
-32, 100, 46, 47, -79, 90, 101, -79, -79, -79,
|
||||
-79, -79, -79, -79, -79, -79, 57, 58, -79, -79,
|
||||
92, 93, -79, -79, -79, -79, -79, -79, -79, 79,
|
||||
-79, 100, 83, 84, -2, 4, 125, 5, 6, 7,
|
||||
8, 9, 10, 11, 12, 13, 80, 149, 14, 15,
|
||||
16, 88, 17, 18, 19, 20, 21, 22, 23, 116,
|
||||
24, 25, 127, 90, 127, 89, 26, -46, -46, 133,
|
||||
-46, -46, -46, -46, 91, 139, -46, -46, 92, 93,
|
||||
107, 108, 109, 110, 119, 124, 140, 132, 111, 100,
|
||||
74, 83, 84, 152, 112, 6, 7, 8, 9, 10,
|
||||
11, 12, 13, 151, 153, 14, 15, 162, 157, 164,
|
||||
165, 166, 167, 160, 83, 84, 121, 170, 129, 172,
|
||||
161, 83, 84, 26, 175, 83, 84, 123, 156, 131,
|
||||
84, 180, 163, 115, 155, 169, 171, 174, 176, 177,
|
||||
178, 179, 181, 182, 183, 67, 85, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 73
|
||||
};
|
||||
|
||||
static const short int yycheck[] =
|
||||
{
|
||||
5, 6, 0, 8, 58, 59, 11, 85, 86, 142,
|
||||
28, 144, 145, 146, 14, 31, 34, 31, 151, 97,
|
||||
153, 67, 67, 31, 70, 70, 72, 72, 82, 83,
|
||||
31, 164, 32, 33, 31, 32, 33, 91, 92, 0,
|
||||
1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
|
||||
11, 12, 26, 14, 15, 16, 17, 18, 19, 20,
|
||||
21, 22, 23, 29, 25, 26, 32, 33, 1, 147,
|
||||
31, 4, 5, 6, 7, 8, 9, 10, 11, 26,
|
||||
27, 14, 15, 16, 17, 139, 26, 27, 93, 26,
|
||||
30, 68, 69, 26, 71, 35, 68, 69, 31, 71,
|
||||
154, 106, 0, 1, 31, 3, 4, 5, 6, 7,
|
||||
8, 9, 10, 11, 12, 1, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 1, 25, 26, 26,
|
||||
27, 0, 1, 31, 3, 4, 5, 6, 7, 8,
|
||||
9, 10, 11, 32, 33, 14, 15, 16, 17, 18,
|
||||
19, 20, 21, 22, 23, 31, 25, 26, 31, 31,
|
||||
0, 1, 31, 3, 4, 5, 6, 7, 8, 9,
|
||||
10, 11, 31, 31, 14, 15, 16, 31, 18, 19,
|
||||
20, 21, 22, 23, 31, 25, 26, 69, 1, 71,
|
||||
31, 31, 5, 6, 31, 8, 9, 10, 11, 12,
|
||||
31, 14, 15, 16, 17, 18, 19, 20, 21, 31,
|
||||
32, 33, 25, 26, 31, 32, 33, 31, 31, 4,
|
||||
5, 6, 7, 8, 9, 10, 11, 26, 1, 14,
|
||||
15, 5, 6, 13, 8, 9, 10, 11, 31, 26,
|
||||
14, 15, 24, 14, 26, 27, 31, 33, 30, 67,
|
||||
31, 32, 33, 35, 69, 31, 71, 31, 41, 31,
|
||||
60, 31, 31, 31, 31, 31, 31, 31, 31, 30,
|
||||
-1, 107
|
||||
5, 6, 0, 8, 59, 60, 11, 86, 87, 1,
|
||||
32, 14, 4, 5, 6, 7, 8, 9, 10, 11,
|
||||
99, 29, 14, 15, 16, 17, 32, 35, 83, 84,
|
||||
33, 34, 32, 69, 70, 27, 72, 92, 93, 32,
|
||||
32, 96, 0, 1, 27, 3, 4, 5, 6, 7,
|
||||
8, 9, 10, 11, 12, 27, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 22, 23, 24, 32, 26, 27,
|
||||
1, 150, 5, 6, 32, 8, 9, 10, 11, 1,
|
||||
30, 14, 15, 33, 34, 25, 141, 27, 28, 94,
|
||||
68, 31, 27, 71, 32, 73, 36, 27, 28, 32,
|
||||
32, 31, 157, 108, 0, 1, 36, 3, 4, 5,
|
||||
6, 7, 8, 9, 10, 11, 12, 32, 14, 15,
|
||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 32,
|
||||
26, 27, 27, 28, 0, 1, 32, 3, 4, 5,
|
||||
6, 7, 8, 9, 10, 11, 27, 28, 14, 15,
|
||||
16, 17, 18, 19, 20, 21, 22, 23, 24, 32,
|
||||
26, 27, 33, 34, 0, 1, 32, 3, 4, 5,
|
||||
6, 7, 8, 9, 10, 11, 32, 27, 14, 15,
|
||||
16, 32, 18, 19, 20, 21, 22, 23, 24, 68,
|
||||
26, 27, 71, 1, 73, 32, 32, 5, 6, 32,
|
||||
8, 9, 10, 11, 12, 32, 14, 15, 16, 17,
|
||||
18, 19, 20, 21, 69, 70, 32, 72, 26, 27,
|
||||
32, 33, 34, 13, 32, 4, 5, 6, 7, 8,
|
||||
9, 10, 11, 1, 32, 14, 15, 144, 14, 146,
|
||||
147, 148, 149, 32, 33, 34, 70, 154, 72, 156,
|
||||
32, 33, 34, 32, 32, 33, 34, 70, 27, 72,
|
||||
34, 168, 32, 68, 109, 32, 32, 32, 32, 32,
|
||||
32, 32, 32, 32, 32, 31, 61, -1, -1, -1,
|
||||
-1, -1, -1, -1, -1, 42
|
||||
};
|
||||
|
||||
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
|
||||
symbol of state STATE-NUM. */
|
||||
static const unsigned char yystos[] =
|
||||
{
|
||||
0, 37, 38, 0, 1, 3, 4, 5, 6, 7,
|
||||
0, 38, 39, 0, 1, 3, 4, 5, 6, 7,
|
||||
8, 9, 10, 11, 14, 15, 16, 18, 19, 20,
|
||||
21, 22, 23, 25, 26, 31, 39, 40, 42, 43,
|
||||
44, 45, 48, 49, 51, 55, 57, 59, 60, 62,
|
||||
64, 65, 66, 73, 31, 26, 27, 72, 72, 31,
|
||||
72, 31, 31, 72, 26, 26, 26, 27, 30, 35,
|
||||
76, 77, 31, 1, 1, 46, 46, 52, 54, 58,
|
||||
69, 63, 69, 31, 74, 31, 31, 31, 31, 31,
|
||||
76, 76, 32, 33, 74, 28, 34, 31, 31, 1,
|
||||
12, 16, 17, 19, 20, 21, 22, 23, 26, 31,
|
||||
41, 47, 67, 68, 70, 18, 19, 20, 21, 25,
|
||||
31, 41, 53, 68, 70, 40, 50, 73, 40, 51,
|
||||
56, 62, 73, 31, 41, 70, 40, 51, 61, 62,
|
||||
73, 31, 29, 76, 76, 77, 77, 31, 31, 24,
|
||||
76, 76, 72, 71, 72, 76, 26, 77, 1, 13,
|
||||
31, 72, 71, 26, 14, 75, 76, 31, 31, 75,
|
||||
31, 75, 75, 75, 77, 31, 75, 31, 75, 76,
|
||||
31, 31, 31, 31, 31, 75, 31, 31, 31
|
||||
21, 22, 23, 24, 26, 27, 32, 40, 41, 43,
|
||||
44, 45, 46, 49, 50, 52, 56, 58, 60, 61,
|
||||
63, 65, 66, 67, 74, 32, 27, 28, 73, 73,
|
||||
32, 73, 32, 32, 73, 27, 27, 27, 28, 31,
|
||||
36, 77, 78, 32, 1, 1, 47, 47, 53, 55,
|
||||
59, 70, 64, 70, 32, 75, 32, 32, 32, 32,
|
||||
32, 77, 77, 33, 34, 75, 29, 35, 32, 32,
|
||||
1, 12, 16, 17, 19, 20, 21, 22, 23, 24,
|
||||
27, 32, 42, 48, 68, 69, 71, 18, 19, 20,
|
||||
21, 26, 32, 42, 54, 69, 71, 41, 51, 74,
|
||||
41, 52, 57, 63, 74, 32, 42, 71, 41, 52,
|
||||
62, 63, 74, 32, 30, 77, 77, 78, 78, 32,
|
||||
32, 25, 77, 77, 73, 72, 73, 77, 27, 27,
|
||||
78, 1, 13, 32, 73, 72, 27, 14, 76, 77,
|
||||
32, 32, 76, 32, 76, 76, 76, 76, 78, 32,
|
||||
76, 32, 76, 77, 32, 32, 32, 32, 32, 32,
|
||||
76, 32, 32, 32
|
||||
};
|
||||
|
||||
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
|
||||
|
@ -981,7 +990,7 @@ yydestruct (yytype, yyvaluep)
|
|||
|
||||
switch (yytype)
|
||||
{
|
||||
case 49: /* choice_entry */
|
||||
case 50: /* choice_entry */
|
||||
|
||||
{
|
||||
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
|
||||
|
@ -991,7 +1000,7 @@ yydestruct (yytype, yyvaluep)
|
|||
};
|
||||
|
||||
break;
|
||||
case 55: /* if_entry */
|
||||
case 56: /* if_entry */
|
||||
|
||||
{
|
||||
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
|
||||
|
@ -1001,7 +1010,7 @@ yydestruct (yytype, yyvaluep)
|
|||
};
|
||||
|
||||
break;
|
||||
case 60: /* menu_entry */
|
||||
case 61: /* menu_entry */
|
||||
|
||||
{
|
||||
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
|
||||
|
@ -1334,17 +1343,17 @@ yyreduce:
|
|||
{ zconf_error("invalid statement"); ;}
|
||||
break;
|
||||
|
||||
case 26:
|
||||
case 27:
|
||||
|
||||
{ zconf_error("unknown option \"%s\"", yyvsp[-2].string); ;}
|
||||
break;
|
||||
|
||||
case 27:
|
||||
case 28:
|
||||
|
||||
{ zconf_error("invalid option"); ;}
|
||||
break;
|
||||
|
||||
case 28:
|
||||
case 29:
|
||||
|
||||
{
|
||||
struct symbol *sym = sym_lookup(yyvsp[-1].string, 0);
|
||||
|
@ -1354,7 +1363,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 29:
|
||||
case 30:
|
||||
|
||||
{
|
||||
menu_end_entry();
|
||||
|
@ -1362,7 +1371,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 30:
|
||||
case 31:
|
||||
|
||||
{
|
||||
struct symbol *sym = sym_lookup(yyvsp[-1].string, 0);
|
||||
|
@ -1372,7 +1381,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 31:
|
||||
case 32:
|
||||
|
||||
{
|
||||
if (current_entry->prompt)
|
||||
|
@ -1384,7 +1393,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 38:
|
||||
case 39:
|
||||
|
||||
{
|
||||
menu_set_type(yyvsp[-2].id->stype);
|
||||
|
@ -1394,7 +1403,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 39:
|
||||
case 40:
|
||||
|
||||
{
|
||||
menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr);
|
||||
|
@ -1402,7 +1411,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 40:
|
||||
case 41:
|
||||
|
||||
{
|
||||
menu_add_expr(P_DEFAULT, yyvsp[-2].expr, yyvsp[-1].expr);
|
||||
|
@ -1414,7 +1423,15 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 41:
|
||||
case 42:
|
||||
|
||||
{
|
||||
menu_add_symbol(P_DESELECT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr);
|
||||
printd(DEBUG_PARSE, "%s:%d:deselect\n", zconf_curname(), zconf_lineno());
|
||||
;}
|
||||
break;
|
||||
|
||||
case 43:
|
||||
|
||||
{
|
||||
menu_add_symbol(P_SELECT, sym_lookup(yyvsp[-2].string, 0), yyvsp[-1].expr);
|
||||
|
@ -1422,7 +1439,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 42:
|
||||
case 44:
|
||||
|
||||
{
|
||||
menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,yyvsp[-3].symbol, yyvsp[-2].symbol), yyvsp[-1].expr);
|
||||
|
@ -1430,7 +1447,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 43:
|
||||
case 45:
|
||||
|
||||
{
|
||||
struct symbol *sym = sym_lookup(NULL, 0);
|
||||
|
@ -1441,14 +1458,14 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 44:
|
||||
case 46:
|
||||
|
||||
{
|
||||
yyval.menu = menu_add_menu();
|
||||
;}
|
||||
break;
|
||||
|
||||
case 45:
|
||||
case 47:
|
||||
|
||||
{
|
||||
if (zconf_endtoken(yyvsp[0].id, T_CHOICE, T_ENDCHOICE)) {
|
||||
|
@ -1458,7 +1475,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 53:
|
||||
case 55:
|
||||
|
||||
{
|
||||
menu_add_prompt(P_PROMPT, yyvsp[-2].string, yyvsp[-1].expr);
|
||||
|
@ -1466,7 +1483,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 54:
|
||||
case 56:
|
||||
|
||||
{
|
||||
if (yyvsp[-2].id->stype == S_BOOLEAN || yyvsp[-2].id->stype == S_TRISTATE) {
|
||||
|
@ -1479,7 +1496,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 55:
|
||||
case 57:
|
||||
|
||||
{
|
||||
current_entry->sym->flags |= SYMBOL_OPTIONAL;
|
||||
|
@ -1487,14 +1504,14 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 56:
|
||||
case 58:
|
||||
|
||||
{
|
||||
menu_add_prop(P_RESET, NULL, NULL, yyvsp[-1].expr);
|
||||
;}
|
||||
break;
|
||||
|
||||
case 57:
|
||||
case 59:
|
||||
|
||||
{
|
||||
if (yyvsp[-3].id->stype == S_UNKNOWN) {
|
||||
|
@ -1506,7 +1523,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 60:
|
||||
case 62:
|
||||
|
||||
{
|
||||
printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
|
||||
|
@ -1516,7 +1533,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 61:
|
||||
case 63:
|
||||
|
||||
{
|
||||
if (zconf_endtoken(yyvsp[0].id, T_IF, T_ENDIF)) {
|
||||
|
@ -1526,7 +1543,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 67:
|
||||
case 69:
|
||||
|
||||
{
|
||||
menu_add_entry(NULL);
|
||||
|
@ -1535,14 +1552,14 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 68:
|
||||
case 70:
|
||||
|
||||
{
|
||||
yyval.menu = menu_add_menu();
|
||||
;}
|
||||
break;
|
||||
|
||||
case 69:
|
||||
case 71:
|
||||
|
||||
{
|
||||
if (zconf_endtoken(yyvsp[0].id, T_MENU, T_ENDMENU)) {
|
||||
|
@ -1552,7 +1569,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 75:
|
||||
case 77:
|
||||
|
||||
{
|
||||
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), yyvsp[-1].string);
|
||||
|
@ -1560,7 +1577,7 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 76:
|
||||
case 78:
|
||||
|
||||
{
|
||||
menu_add_entry(NULL);
|
||||
|
@ -1569,14 +1586,14 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 77:
|
||||
case 79:
|
||||
|
||||
{
|
||||
menu_end_entry();
|
||||
;}
|
||||
break;
|
||||
|
||||
case 78:
|
||||
case 80:
|
||||
|
||||
{
|
||||
printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
|
||||
|
@ -1584,52 +1601,42 @@ yyreduce:
|
|||
;}
|
||||
break;
|
||||
|
||||
case 79:
|
||||
case 81:
|
||||
|
||||
{
|
||||
current_entry->sym->help = yyvsp[0].string;
|
||||
;}
|
||||
break;
|
||||
|
||||
case 84:
|
||||
|
||||
{
|
||||
menu_add_dep(yyvsp[-1].expr);
|
||||
printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
|
||||
;}
|
||||
break;
|
||||
|
||||
case 85:
|
||||
|
||||
{
|
||||
menu_add_dep(yyvsp[-1].expr);
|
||||
printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
|
||||
;}
|
||||
break;
|
||||
|
||||
case 86:
|
||||
|
||||
{
|
||||
menu_add_dep(yyvsp[-1].expr);
|
||||
printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
|
||||
printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
|
||||
;}
|
||||
break;
|
||||
|
||||
case 87:
|
||||
|
||||
{
|
||||
menu_add_dep(yyvsp[-1].expr);
|
||||
printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno());
|
||||
;}
|
||||
break;
|
||||
|
||||
case 88:
|
||||
|
||||
{
|
||||
menu_add_prompt(P_PROMPT, yyvsp[-1].string, yyvsp[0].expr);
|
||||
menu_add_dep(yyvsp[-1].expr);
|
||||
printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno());
|
||||
;}
|
||||
break;
|
||||
|
||||
case 91:
|
||||
case 90:
|
||||
|
||||
{ yyval.id = yyvsp[-1].id; ;}
|
||||
break;
|
||||
|
||||
case 92:
|
||||
|
||||
{ yyval.id = yyvsp[-1].id; ;}
|
||||
{
|
||||
menu_add_prompt(P_PROMPT, yyvsp[-1].string, yyvsp[0].expr);
|
||||
;}
|
||||
break;
|
||||
|
||||
case 93:
|
||||
|
@ -1637,58 +1644,68 @@ yyreduce:
|
|||
{ yyval.id = yyvsp[-1].id; ;}
|
||||
break;
|
||||
|
||||
case 96:
|
||||
case 94:
|
||||
|
||||
{ yyval.expr = NULL; ;}
|
||||
{ yyval.id = yyvsp[-1].id; ;}
|
||||
break;
|
||||
|
||||
case 97:
|
||||
case 95:
|
||||
|
||||
{ yyval.expr = yyvsp[0].expr; ;}
|
||||
{ yyval.id = yyvsp[-1].id; ;}
|
||||
break;
|
||||
|
||||
case 98:
|
||||
|
||||
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;}
|
||||
{ yyval.expr = NULL; ;}
|
||||
break;
|
||||
|
||||
case 99:
|
||||
|
||||
{ yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;}
|
||||
{ yyval.expr = yyvsp[0].expr; ;}
|
||||
break;
|
||||
|
||||
case 100:
|
||||
|
||||
{ yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;}
|
||||
{ yyval.expr = expr_alloc_symbol(yyvsp[0].symbol); ;}
|
||||
break;
|
||||
|
||||
case 101:
|
||||
|
||||
{ yyval.expr = yyvsp[-1].expr; ;}
|
||||
{ yyval.expr = expr_alloc_comp(E_EQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;}
|
||||
break;
|
||||
|
||||
case 102:
|
||||
|
||||
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;}
|
||||
{ yyval.expr = expr_alloc_comp(E_UNEQUAL, yyvsp[-2].symbol, yyvsp[0].symbol); ;}
|
||||
break;
|
||||
|
||||
case 103:
|
||||
|
||||
{ yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;}
|
||||
{ yyval.expr = yyvsp[-1].expr; ;}
|
||||
break;
|
||||
|
||||
case 104:
|
||||
|
||||
{ yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;}
|
||||
{ yyval.expr = expr_alloc_one(E_NOT, yyvsp[0].expr); ;}
|
||||
break;
|
||||
|
||||
case 105:
|
||||
|
||||
{ yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;}
|
||||
{ yyval.expr = expr_alloc_two(E_OR, yyvsp[-2].expr, yyvsp[0].expr); ;}
|
||||
break;
|
||||
|
||||
case 106:
|
||||
|
||||
{ yyval.expr = expr_alloc_two(E_AND, yyvsp[-2].expr, yyvsp[0].expr); ;}
|
||||
break;
|
||||
|
||||
case 107:
|
||||
|
||||
{ yyval.symbol = sym_lookup(yyvsp[0].string, 0); free(yyvsp[0].string); ;}
|
||||
break;
|
||||
|
||||
case 108:
|
||||
|
||||
{ yyval.symbol = sym_lookup(yyvsp[0].string, 1); free(yyvsp[0].string); ;}
|
||||
break;
|
||||
|
||||
|
|
|
@ -69,6 +69,7 @@ static struct menu *current_menu, *current_entry;
|
|||
%token <id>T_PROMPT
|
||||
%token <id>T_TYPE
|
||||
%token <id>T_DEFAULT
|
||||
%token <id>T_DESELECT
|
||||
%token <id>T_SELECT
|
||||
%token <id>T_RANGE
|
||||
%token <id>T_ON
|
||||
|
@ -119,7 +120,7 @@ stmt_list:
|
|||
;
|
||||
|
||||
option_name:
|
||||
T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_RESET
|
||||
T_DEPENDS | T_PROMPT | T_TYPE | T_DESELECT | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_RESET
|
||||
;
|
||||
|
||||
common_stmt:
|
||||
|
@ -204,6 +205,12 @@ config_option: T_DEFAULT expr if_expr T_EOL
|
|||
$1->stype);
|
||||
};
|
||||
|
||||
config_option: T_DESELECT T_WORD if_expr T_EOL
|
||||
{
|
||||
menu_add_symbol(P_DESELECT, sym_lookup($2, 0), $3);
|
||||
printd(DEBUG_PARSE, "%s:%d:deselect\n", zconf_curname(), zconf_lineno());
|
||||
};
|
||||
|
||||
config_option: T_SELECT T_WORD if_expr T_EOL
|
||||
{
|
||||
menu_add_symbol(P_SELECT, sym_lookup($2, 0), $3);
|
||||
|
|
Loading…
Reference in a new issue