Merge branch 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6

* 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild-2.6:
  initramfs: Really fix build break on symbol-prefixed archs
  [media] Fix Kconfig errors due to two visible menus
  i2c/algos: convert Kconfig to use the menu's `visible' keyword
  media/video: convert Kconfig to use the menu's `visible' keyword
  Revert "i2c: Fix Kconfig dependencies"
  kconfig: regen parser
  kconfig: add an option to determine a menu's visibility
This commit is contained in:
Linus Torvalds 2010-12-05 16:41:13 -08:00
commit 31c67c7553
13 changed files with 420 additions and 382 deletions

View file

@ -75,8 +75,7 @@ config I2C_HELPER_AUTO
In doubt, say Y.
config I2C_SMBUS
tristate
prompt "SMBus-specific protocols" if !I2C_HELPER_AUTO
tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
help
Say Y here if you want support for SMBus extensions to the I2C
specification. At the moment, the only supported extension is

View file

@ -3,7 +3,7 @@
#
menu "I2C Algorithms"
depends on !I2C_HELPER_AUTO
visible if !I2C_HELPER_AUTO
config I2C_ALGOBIT
tristate "I2C bit-banging interfaces"
@ -15,15 +15,3 @@ config I2C_ALGOPCA
tristate "I2C PCA 9564 interfaces"
endmenu
# In automatic configuration mode, we still have to define the
# symbols to avoid unmet dependencies.
if I2C_HELPER_AUTO
config I2C_ALGOBIT
tristate
config I2C_ALGOPCF
tristate
config I2C_ALGOPCA
tristate
endif

View file

@ -31,7 +31,7 @@ config MEDIA_TUNER
select MEDIA_TUNER_TDA9887 if !MEDIA_TUNER_CUSTOMISE
select MEDIA_TUNER_MC44S803 if !MEDIA_TUNER_CUSTOMISE
menuconfig MEDIA_TUNER_CUSTOMISE
config MEDIA_TUNER_CUSTOMISE
bool "Customize analog and hybrid tuner modules to build"
depends on MEDIA_TUNER
default y if EMBEDDED
@ -44,7 +44,8 @@ menuconfig MEDIA_TUNER_CUSTOMISE
If unsure say N.
if MEDIA_TUNER_CUSTOMISE
menu "Customize TV tuners"
visible if MEDIA_TUNER_CUSTOMISE
config MEDIA_TUNER_SIMPLE
tristate "Simple tuner support"
@ -185,5 +186,4 @@ config MEDIA_TUNER_TDA18218
default m if MEDIA_TUNER_CUSTOMISE
help
NXP TDA18218 silicon tuner driver.
endif # MEDIA_TUNER_CUSTOMISE
endmenu

View file

@ -12,9 +12,8 @@ config DVB_FE_CUSTOMISE
If unsure say N.
if DVB_FE_CUSTOMISE
menu "Customise DVB Frontends"
visible if DVB_FE_CUSTOMISE
comment "Multistandard (satellite) frontends"
depends on DVB_CORE
@ -619,5 +618,3 @@ config DVB_DUMMY_FE
tristate "Dummy frontend driver"
default n
endmenu
endif

View file

@ -112,7 +112,7 @@ config VIDEO_IR_I2C
#
menu "Encoders/decoders and other helper chips"
depends on !VIDEO_HELPER_CHIPS_AUTO
visible if !VIDEO_HELPER_CHIPS_AUTO
comment "Audio decoders"

View file

@ -164,6 +164,7 @@ struct menu {
struct menu *list;
struct symbol *sym;
struct property *prompt;
struct expr *visibility;
struct expr *dep;
unsigned int flags;
char *help;

View file

@ -107,6 +107,7 @@ void menu_end_menu(void);
void menu_add_entry(struct symbol *sym);
void menu_end_entry(void);
void menu_add_dep(struct expr *dep);
void menu_add_visibility(struct expr *dep);
struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);

View file

@ -152,6 +152,12 @@ struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr
return menu_add_prop(type, prompt, NULL, dep);
}
void menu_add_visibility(struct expr *expr)
{
current_entry->visibility = expr_alloc_and(current_entry->visibility,
expr);
}
void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
{
menu_add_prop(type, NULL, expr, dep);
@ -410,6 +416,11 @@ bool menu_is_visible(struct menu *menu)
if (!menu->prompt)
return false;
if (menu->visibility) {
if (expr_calc_value(menu->visibility) == no)
return no;
}
sym = menu->sym;
if (sym) {
sym_calc_value(sym);

View file

@ -38,6 +38,7 @@ hex, T_TYPE, TF_COMMAND, S_HEX
string, T_TYPE, TF_COMMAND, S_STRING
select, T_SELECT, TF_COMMAND
range, T_RANGE, TF_COMMAND
visible, T_VISIBLE, TF_COMMAND
option, T_OPTION, TF_COMMAND
on, T_ON, TF_PARAM
modules, T_OPT_MODULES, TF_OPTION

View file

@ -32,7 +32,7 @@
struct kconf_id;
static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
/* maximum key range = 47, duplicates = 0 */
/* maximum key range = 50, duplicates = 0 */
#ifdef __GNUC__
__inline
@ -46,32 +46,32 @@ kconf_id_hash (register const char *str, register unsigned int len)
{
static unsigned char asso_values[] =
{
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 11, 5,
0, 0, 5, 49, 5, 20, 49, 49, 5, 20,
5, 0, 30, 49, 0, 15, 0, 10, 0, 49,
25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
49, 49, 49, 49, 49, 49
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 40, 5,
0, 0, 5, 52, 0, 20, 52, 52, 10, 20,
5, 0, 35, 52, 0, 30, 0, 15, 0, 52,
15, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
52, 52, 52, 52, 52, 52
};
register int hval = len;
@ -102,25 +102,26 @@ struct kconf_id_strings_t
char kconf_id_strings_str12[sizeof("default")];
char kconf_id_strings_str13[sizeof("def_bool")];
char kconf_id_strings_str14[sizeof("help")];
char kconf_id_strings_str15[sizeof("bool")];
char kconf_id_strings_str16[sizeof("config")];
char kconf_id_strings_str17[sizeof("def_tristate")];
char kconf_id_strings_str18[sizeof("boolean")];
char kconf_id_strings_str18[sizeof("hex")];
char kconf_id_strings_str19[sizeof("defconfig_list")];
char kconf_id_strings_str21[sizeof("string")];
char kconf_id_strings_str22[sizeof("if")];
char kconf_id_strings_str23[sizeof("int")];
char kconf_id_strings_str26[sizeof("select")];
char kconf_id_strings_str27[sizeof("modules")];
char kconf_id_strings_str28[sizeof("tristate")];
char kconf_id_strings_str29[sizeof("menu")];
char kconf_id_strings_str31[sizeof("source")];
char kconf_id_strings_str32[sizeof("comment")];
char kconf_id_strings_str33[sizeof("hex")];
char kconf_id_strings_str35[sizeof("menuconfig")];
char kconf_id_strings_str36[sizeof("prompt")];
char kconf_id_strings_str37[sizeof("depends")];
char kconf_id_strings_str36[sizeof("string")];
char kconf_id_strings_str37[sizeof("visible")];
char kconf_id_strings_str41[sizeof("prompt")];
char kconf_id_strings_str42[sizeof("depends")];
char kconf_id_strings_str44[sizeof("bool")];
char kconf_id_strings_str46[sizeof("select")];
char kconf_id_strings_str47[sizeof("boolean")];
char kconf_id_strings_str48[sizeof("mainmenu")];
char kconf_id_strings_str51[sizeof("source")];
};
static struct kconf_id_strings_t kconf_id_strings_contents =
{
@ -136,25 +137,26 @@ static struct kconf_id_strings_t kconf_id_strings_contents =
"default",
"def_bool",
"help",
"bool",
"config",
"def_tristate",
"boolean",
"hex",
"defconfig_list",
"string",
"if",
"int",
"select",
"modules",
"tristate",
"menu",
"source",
"comment",
"hex",
"menuconfig",
"string",
"visible",
"prompt",
"depends",
"mainmenu"
"bool",
"select",
"boolean",
"mainmenu",
"source"
};
#define kconf_id_strings ((const char *) &kconf_id_strings_contents)
#ifdef __GNUC__
@ -168,11 +170,11 @@ 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 = 14,
MIN_HASH_VALUE = 2,
MAX_HASH_VALUE = 48
MAX_HASH_VALUE = 51
};
static struct kconf_id wordlist[] =
@ -191,31 +193,35 @@ kconf_id_lookup (register const char *str, register unsigned int len)
{(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_HELP, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15, T_TYPE, TF_COMMAND, S_BOOLEAN},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_CONFIG, TF_COMMAND},
{(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_TYPE, TF_COMMAND, S_BOOLEAN},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_TYPE, TF_COMMAND, S_HEX},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19, T_OPT_DEFCONFIG_LIST,TF_OPTION},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_TYPE, TF_COMMAND, S_STRING},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_IF, TF_COMMAND|TF_PARAM},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_INT},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SELECT, TF_COMMAND},
{-1}, {-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_TYPE, TF_COMMAND, S_TRISTATE},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SOURCE, TF_COMMAND},
{-1}, {-1},
{(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_TYPE, TF_COMMAND, S_HEX},
{-1},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_MENUCONFIG, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_PROMPT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_DEPENDS, TF_COMMAND},
{-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_TYPE, TF_COMMAND, S_STRING},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_VISIBLE, TF_COMMAND},
{-1}, {-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_PROMPT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_DEPENDS, TF_COMMAND},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48, T_MAINMENU, TF_COMMAND}
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str44, T_TYPE, TF_COMMAND, S_BOOLEAN},
{-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_SELECT, TF_COMMAND},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48, T_MAINMENU, TF_COMMAND},
{-1}, {-1},
{(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_SOURCE, TF_COMMAND}
};
if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)

View file

@ -160,18 +160,19 @@ static struct menu *current_menu, *current_entry;
T_DEFAULT = 275,
T_SELECT = 276,
T_RANGE = 277,
T_OPTION = 278,
T_ON = 279,
T_WORD = 280,
T_WORD_QUOTE = 281,
T_UNEQUAL = 282,
T_CLOSE_PAREN = 283,
T_OPEN_PAREN = 284,
T_EOL = 285,
T_OR = 286,
T_AND = 287,
T_EQUAL = 288,
T_NOT = 289
T_VISIBLE = 278,
T_OPTION = 279,
T_ON = 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
};
#endif
@ -419,20 +420,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 11
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 277
#define YYLAST 290
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 35
#define YYNTOKENS 36
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 48
#define YYNNTS 50
/* YYNRULES -- Number of rules. */
#define YYNRULES 113
#define YYNRULES 118
/* YYNRULES -- Number of states. */
#define YYNSTATES 185
#define YYNSTATES 191
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 289
#define YYMAXUTOK 290
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@ -468,7 +469,8 @@ static const yytype_uint8 yytranslate[] =
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
25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
35
};
#if YYDEBUG
@ -478,72 +480,73 @@ static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 6, 8, 11, 13, 14, 17, 20,
23, 26, 31, 36, 40, 42, 44, 46, 48, 50,
52, 54, 56, 58, 60, 62, 64, 66, 70, 73,
77, 80, 84, 87, 88, 91, 94, 97, 100, 103,
106, 110, 115, 120, 125, 131, 135, 136, 140, 141,
144, 148, 151, 153, 157, 158, 161, 164, 167, 170,
173, 178, 182, 185, 190, 191, 194, 198, 200, 204,
205, 208, 211, 214, 218, 222, 225, 227, 231, 232,
235, 238, 241, 245, 249, 252, 255, 258, 259, 262,
265, 268, 273, 274, 277, 279, 281, 284, 287, 290,
292, 295, 296, 299, 301, 305, 309, 313, 316, 320,
324, 326, 328, 329
52, 54, 56, 58, 60, 62, 64, 66, 68, 72,
75, 79, 82, 86, 89, 90, 93, 96, 99, 102,
105, 108, 112, 117, 122, 127, 133, 137, 138, 142,
143, 146, 150, 153, 155, 159, 160, 163, 166, 169,
172, 175, 180, 184, 187, 192, 193, 196, 200, 202,
206, 207, 210, 213, 216, 220, 224, 228, 230, 234,
235, 238, 241, 244, 248, 252, 255, 258, 261, 262,
265, 268, 271, 276, 277, 280, 283, 286, 287, 290,
292, 294, 297, 300, 303, 305, 308, 309, 312, 314,
318, 322, 326, 329, 333, 337, 339, 341, 342
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
36, 0, -1, 78, 37, -1, 37, -1, 62, 38,
-1, 38, -1, -1, 38, 40, -1, 38, 54, -1,
38, 66, -1, 38, 77, -1, 38, 25, 1, 30,
-1, 38, 39, 1, 30, -1, 38, 1, 30, -1,
37, 0, -1, 81, 38, -1, 38, -1, 63, 39,
-1, 39, -1, -1, 39, 41, -1, 39, 55, -1,
39, 67, -1, 39, 80, -1, 39, 26, 1, 31,
-1, 39, 40, 1, 31, -1, 39, 1, 31, -1,
16, -1, 18, -1, 19, -1, 21, -1, 17, -1,
22, -1, 20, -1, 30, -1, 60, -1, 70, -1,
43, -1, 45, -1, 68, -1, 25, 1, 30, -1,
1, 30, -1, 10, 25, 30, -1, 42, 46, -1,
11, 25, 30, -1, 44, 46, -1, -1, 46, 47,
-1, 46, 48, -1, 46, 74, -1, 46, 72, -1,
46, 41, -1, 46, 30, -1, 19, 75, 30, -1,
18, 76, 79, 30, -1, 20, 80, 79, 30, -1,
21, 25, 79, 30, -1, 22, 81, 81, 79, 30,
-1, 23, 49, 30, -1, -1, 49, 25, 50, -1,
-1, 33, 76, -1, 7, 82, 30, -1, 51, 55,
-1, 77, -1, 52, 57, 53, -1, -1, 55, 56,
-1, 55, 74, -1, 55, 72, -1, 55, 30, -1,
55, 41, -1, 18, 76, 79, 30, -1, 19, 75,
30, -1, 17, 30, -1, 20, 25, 79, 30, -1,
-1, 57, 40, -1, 14, 80, 78, -1, 77, -1,
58, 61, 59, -1, -1, 61, 40, -1, 61, 66,
-1, 61, 54, -1, 3, 76, 78, -1, 4, 76,
30, -1, 63, 73, -1, 77, -1, 64, 67, 65,
-1, -1, 67, 40, -1, 67, 66, -1, 67, 54,
-1, 6, 76, 30, -1, 9, 76, 30, -1, 69,
73, -1, 12, 30, -1, 71, 13, -1, -1, 73,
74, -1, 73, 30, -1, 73, 41, -1, 16, 24,
80, 30, -1, -1, 76, 79, -1, 25, -1, 26,
-1, 5, 30, -1, 8, 30, -1, 15, 30, -1,
30, -1, 78, 30, -1, -1, 14, 80, -1, 81,
-1, 81, 33, 81, -1, 81, 27, 81, -1, 29,
80, 28, -1, 34, 80, -1, 80, 31, 80, -1,
80, 32, 80, -1, 25, -1, 26, -1, -1, 25,
-1
22, -1, 20, -1, 23, -1, 31, -1, 61, -1,
71, -1, 44, -1, 46, -1, 69, -1, 26, 1,
31, -1, 1, 31, -1, 10, 26, 31, -1, 43,
47, -1, 11, 26, 31, -1, 45, 47, -1, -1,
47, 48, -1, 47, 49, -1, 47, 75, -1, 47,
73, -1, 47, 42, -1, 47, 31, -1, 19, 78,
31, -1, 18, 79, 82, 31, -1, 20, 83, 82,
31, -1, 21, 26, 82, 31, -1, 22, 84, 84,
82, 31, -1, 24, 50, 31, -1, -1, 50, 26,
51, -1, -1, 34, 79, -1, 7, 85, 31, -1,
52, 56, -1, 80, -1, 53, 58, 54, -1, -1,
56, 57, -1, 56, 75, -1, 56, 73, -1, 56,
31, -1, 56, 42, -1, 18, 79, 82, 31, -1,
19, 78, 31, -1, 17, 31, -1, 20, 26, 82,
31, -1, -1, 58, 41, -1, 14, 83, 81, -1,
80, -1, 59, 62, 60, -1, -1, 62, 41, -1,
62, 67, -1, 62, 55, -1, 3, 79, 81, -1,
4, 79, 31, -1, 64, 76, 74, -1, 80, -1,
65, 68, 66, -1, -1, 68, 41, -1, 68, 67,
-1, 68, 55, -1, 6, 79, 31, -1, 9, 79,
31, -1, 70, 74, -1, 12, 31, -1, 72, 13,
-1, -1, 74, 75, -1, 74, 31, -1, 74, 42,
-1, 16, 25, 83, 31, -1, -1, 76, 77, -1,
76, 31, -1, 23, 82, -1, -1, 79, 82, -1,
26, -1, 27, -1, 5, 31, -1, 8, 31, -1,
15, 31, -1, 31, -1, 81, 31, -1, -1, 14,
83, -1, 84, -1, 84, 34, 84, -1, 84, 28,
84, -1, 30, 83, 29, -1, 35, 83, -1, 83,
32, 83, -1, 83, 33, 83, -1, 26, -1, 27,
-1, -1, 26, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
0, 107, 107, 107, 109, 109, 111, 113, 114, 115,
116, 117, 118, 122, 126, 126, 126, 126, 126, 126,
126, 130, 131, 132, 133, 134, 135, 139, 140, 146,
154, 160, 168, 178, 180, 181, 182, 183, 184, 185,
188, 196, 202, 212, 218, 224, 227, 229, 240, 241,
246, 255, 260, 268, 271, 273, 274, 275, 276, 277,
280, 286, 297, 303, 313, 315, 320, 328, 336, 339,
341, 342, 343, 348, 355, 362, 367, 375, 378, 380,
381, 382, 385, 393, 400, 407, 413, 420, 422, 423,
424, 427, 435, 437, 442, 443, 446, 447, 448, 452,
453, 456, 457, 460, 461, 462, 463, 464, 465, 466,
469, 470, 473, 474
0, 108, 108, 108, 110, 110, 112, 114, 115, 116,
117, 118, 119, 123, 127, 127, 127, 127, 127, 127,
127, 127, 131, 132, 133, 134, 135, 136, 140, 141,
147, 155, 161, 169, 179, 181, 182, 183, 184, 185,
186, 189, 197, 203, 213, 219, 225, 228, 230, 241,
242, 247, 256, 261, 269, 272, 274, 275, 276, 277,
278, 281, 287, 298, 304, 314, 316, 321, 329, 337,
340, 342, 343, 344, 349, 356, 363, 368, 376, 379,
381, 382, 383, 386, 394, 401, 408, 414, 421, 423,
424, 425, 428, 436, 438, 439, 442, 449, 451, 456,
457, 460, 461, 462, 466, 467, 470, 471, 474, 475,
476, 477, 478, 479, 480, 483, 484, 487, 488
};
#endif
@ -556,7 +559,7 @@ 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_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
"T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
"T_VISIBLE", "T_OPTION", "T_ON", "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", "start", "stmt_list", "option_name",
"common_stmt", "option_error", "config_entry_start", "config_stmt",
@ -567,8 +570,8 @@ static const char *const yytname[] =
"if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "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", "word_opt", 0
"depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
"end", "nl", "if_expr", "expr", "symbol", "word_opt", 0
};
#endif
@ -580,25 +583,25 @@ static const yytype_uint16 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
285, 286, 287, 288, 289, 290
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
0, 35, 36, 36, 37, 37, 38, 38, 38, 38,
38, 38, 38, 38, 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, 46,
47, 47, 47, 47, 47, 48, 49, 49, 50, 50,
51, 52, 53, 54, 55, 55, 55, 55, 55, 55,
56, 56, 56, 56, 57, 57, 58, 59, 60, 61,
61, 61, 61, 62, 63, 64, 65, 66, 67, 67,
67, 67, 68, 69, 70, 71, 72, 73, 73, 73,
73, 74, 75, 75, 76, 76, 77, 77, 77, 78,
78, 79, 79, 80, 80, 80, 80, 80, 80, 80,
81, 81, 82, 82
0, 36, 37, 37, 38, 38, 39, 39, 39, 39,
39, 39, 39, 39, 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,
47, 48, 48, 48, 48, 48, 49, 50, 50, 51,
51, 52, 53, 54, 55, 56, 56, 56, 56, 56,
56, 57, 57, 57, 57, 58, 58, 59, 60, 61,
62, 62, 62, 62, 63, 64, 65, 66, 67, 68,
68, 68, 68, 69, 70, 71, 72, 73, 74, 74,
74, 74, 75, 76, 76, 76, 77, 78, 78, 79,
79, 80, 80, 80, 81, 81, 82, 82, 83, 83,
83, 83, 83, 83, 83, 84, 84, 85, 85
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@ -606,16 +609,16 @@ static const yytype_uint8 yyr2[] =
{
0, 2, 2, 1, 2, 1, 0, 2, 2, 2,
2, 4, 4, 3, 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, 2,
3, 4, 4, 4, 5, 3, 0, 3, 0, 2,
3, 2, 1, 3, 0, 2, 2, 2, 2, 2,
4, 3, 2, 4, 0, 2, 3, 1, 3, 0,
2, 2, 2, 3, 3, 2, 1, 3, 0, 2,
2, 2, 3, 3, 2, 2, 2, 0, 2, 2,
2, 4, 0, 2, 1, 1, 2, 2, 2, 1,
2, 0, 2, 1, 3, 3, 3, 2, 3, 3,
1, 1, 0, 1
1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
3, 2, 3, 2, 0, 2, 2, 2, 2, 2,
2, 3, 4, 4, 4, 5, 3, 0, 3, 0,
2, 3, 2, 1, 3, 0, 2, 2, 2, 2,
2, 4, 3, 2, 4, 0, 2, 3, 1, 3,
0, 2, 2, 2, 3, 3, 3, 1, 3, 0,
2, 2, 2, 3, 3, 2, 2, 2, 0, 2,
2, 2, 4, 0, 2, 2, 2, 0, 2, 1,
1, 2, 2, 2, 1, 2, 0, 2, 1, 3,
3, 3, 2, 3, 3, 1, 1, 0, 1
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@ -623,165 +626,172 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
6, 0, 99, 0, 3, 0, 6, 6, 94, 95,
0, 1, 0, 0, 0, 0, 112, 0, 0, 0,
6, 0, 104, 0, 3, 0, 6, 6, 99, 100,
0, 1, 0, 0, 0, 0, 117, 0, 0, 0,
0, 0, 0, 14, 18, 15, 16, 20, 17, 19,
0, 21, 0, 7, 33, 24, 33, 25, 54, 64,
8, 69, 22, 87, 78, 9, 26, 87, 23, 10,
0, 100, 2, 73, 13, 0, 96, 0, 113, 0,
97, 0, 0, 0, 110, 111, 0, 0, 0, 103,
98, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 74, 82, 50, 83, 29, 31, 0, 107, 0,
0, 66, 0, 0, 11, 12, 0, 0, 0, 0,
92, 0, 0, 0, 46, 0, 39, 38, 34, 35,
0, 37, 36, 0, 0, 92, 0, 58, 59, 55,
57, 56, 65, 53, 52, 70, 72, 68, 71, 67,
89, 90, 88, 79, 81, 77, 80, 76, 106, 108,
109, 105, 104, 28, 85, 0, 101, 0, 101, 101,
101, 0, 0, 0, 86, 62, 101, 0, 101, 0,
0, 0, 40, 93, 0, 0, 101, 48, 45, 27,
0, 61, 0, 91, 102, 41, 42, 43, 0, 0,
47, 60, 63, 44, 49
21, 0, 22, 0, 7, 34, 25, 34, 26, 55,
65, 8, 70, 23, 93, 79, 9, 27, 88, 24,
10, 0, 105, 2, 74, 13, 0, 101, 0, 118,
0, 102, 0, 0, 0, 115, 116, 0, 0, 0,
108, 103, 0, 0, 0, 0, 0, 0, 0, 88,
0, 0, 75, 83, 51, 84, 30, 32, 0, 112,
0, 0, 67, 0, 0, 11, 12, 0, 0, 0,
0, 97, 0, 0, 0, 47, 0, 40, 39, 35,
36, 0, 38, 37, 0, 0, 97, 0, 59, 60,
56, 58, 57, 66, 54, 53, 71, 73, 69, 72,
68, 106, 95, 0, 94, 80, 82, 78, 81, 77,
90, 91, 89, 111, 113, 114, 110, 109, 29, 86,
0, 106, 0, 106, 106, 106, 0, 0, 0, 87,
63, 106, 0, 106, 0, 96, 0, 0, 41, 98,
0, 0, 106, 49, 46, 28, 0, 62, 0, 107,
92, 42, 43, 44, 0, 0, 48, 61, 64, 45,
50
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 3, 4, 5, 32, 33, 107, 34, 35, 36,
37, 73, 108, 109, 152, 180, 38, 39, 123, 40,
75, 119, 76, 41, 127, 42, 77, 6, 43, 44,
135, 45, 79, 46, 47, 48, 110, 111, 78, 112,
147, 148, 49, 7, 161, 68, 69, 59
-1, 3, 4, 5, 33, 34, 108, 35, 36, 37,
38, 74, 109, 110, 157, 186, 39, 40, 124, 41,
76, 120, 77, 42, 128, 43, 78, 6, 44, 45,
137, 46, 80, 47, 48, 49, 111, 112, 81, 113,
79, 134, 152, 153, 50, 7, 165, 69, 70, 60
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -89
#define YYPACT_NINF -90
static const yytype_int16 yypact[] =
{
3, 4, -89, 20, -89, 100, -89, 7, -89, -89,
-8, -89, 17, 4, 28, 4, 37, 36, 4, 68,
87, -18, 69, -89, -89, -89, -89, -89, -89, -89,
128, -89, 138, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
127, -89, -89, 110, -89, 126, -89, 136, -89, 137,
-89, 147, 150, 152, -89, -89, -18, -18, 171, -14,
-89, 153, 157, 34, 67, 180, 233, 220, 207, 220,
154, -89, -89, -89, -89, -89, -89, 0, -89, -18,
-18, 110, 44, 44, -89, -89, 163, 174, 182, 4,
4, -18, 194, 44, -89, 219, -89, -89, -89, -89,
223, -89, -89, 203, 4, 4, 215, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, -89, -89, -89, -89, -89, -89, -89, -89, 213,
-89, -89, -89, -89, -89, -18, 232, 227, 232, -5,
232, 44, 35, 234, -89, -89, 232, 235, 232, 224,
-18, 236, -89, -89, 237, 238, 232, 216, -89, -89,
240, -89, 241, -89, 71, -89, -89, -89, 242, 4,
-89, -89, -89, -89, -89
4, 42, -90, 96, -90, 111, -90, 15, -90, -90,
75, -90, 82, 42, 104, 42, 110, 107, 42, 115,
125, -4, 121, -90, -90, -90, -90, -90, -90, -90,
-90, 162, -90, 163, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, 139, -90, -90, 138, -90, 142, -90, 143, -90,
152, -90, 164, 167, 168, -90, -90, -4, -4, 77,
-18, -90, 177, 185, 33, 71, 195, 247, 236, -2,
236, 171, -90, -90, -90, -90, -90, -90, 41, -90,
-4, -4, 138, 97, 97, -90, -90, 186, 187, 194,
42, 42, -4, 196, 97, -90, 219, -90, -90, -90,
-90, 210, -90, -90, 204, 42, 42, 199, -90, -90,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, 222, -90, 223, -90, -90, -90, -90, -90, -90,
-90, -90, -90, -90, 215, -90, -90, -90, -90, -90,
-4, 222, 228, 222, -5, 222, 97, 35, 229, -90,
-90, 222, 232, 222, -4, -90, 135, 233, -90, -90,
234, 235, 222, 240, -90, -90, 237, -90, 239, -13,
-90, -90, -90, -90, 244, 42, -90, -90, -90, -90,
-90
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
-89, -89, 255, 267, -89, 47, -57, -89, -89, -89,
-89, 239, -89, -89, -89, -89, -89, -89, -89, 130,
-89, -89, -89, -89, -89, -89, -89, -89, -89, -89,
-89, 181, -89, -89, -89, -89, -89, 199, 229, 16,
162, -1, 74, -7, 103, -65, -88, -89
-90, -90, 269, 271, -90, 23, -70, -90, -90, -90,
-90, 243, -90, -90, -90, -90, -90, -90, -90, -48,
-90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
-90, -20, -90, -90, -90, -90, -90, 206, 205, -68,
-90, -90, 169, -1, 27, -7, 118, -66, -89, -90
};
/* 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 -85
#define YYTABLE_NINF -86
static const yytype_int16 yytable[] =
{
10, 87, 88, 53, 141, 142, 1, 64, 65, 160,
1, 66, 55, 92, 57, 151, 67, 61, 118, 93,
11, 131, 2, 131, 139, 140, 89, 90, 138, 8,
9, 89, 90, 2, -30, 96, 149, 51, -30, -30,
-30, -30, -30, -30, -30, -30, 97, 54, -30, -30,
98, -30, 99, 100, 101, 102, 103, 104, 56, 105,
167, 91, 58, 166, 106, 168, 60, -32, 96, 64,
65, -32, -32, -32, -32, -32, -32, -32, -32, 97,
159, -32, -32, 98, -32, 99, 100, 101, 102, 103,
104, 121, 105, 62, 132, 174, 132, 106, 146, 70,
-5, 12, 89, 90, 13, 14, 15, 16, 17, 18,
19, 20, 63, 156, 21, 22, 23, 24, 25, 26,
27, 28, 29, 122, 125, 30, 133, -4, 12, 71,
31, 13, 14, 15, 16, 17, 18, 19, 20, 72,
51, 21, 22, 23, 24, 25, 26, 27, 28, 29,
124, 129, 30, 137, -84, 96, 81, 31, -84, -84,
-84, -84, -84, -84, -84, -84, 82, 83, -84, -84,
98, -84, -84, -84, -84, -84, -84, 84, 184, 105,
85, 96, 86, 94, 130, -51, -51, 95, -51, -51,
-51, -51, 97, 143, -51, -51, 98, 113, 114, 115,
116, 2, 89, 90, 144, 105, 145, 126, 96, 134,
117, -75, -75, -75, -75, -75, -75, -75, -75, 150,
153, -75, -75, 98, 13, 14, 15, 16, 17, 18,
19, 20, 105, 155, 21, 22, 154, 130, 14, 15,
158, 17, 18, 19, 20, 90, 160, 21, 22, 179,
31, 163, 164, 165, 173, 89, 90, 162, 128, 170,
136, 172, 52, 31, 169, 171, 175, 176, 177, 178,
181, 182, 183, 50, 120, 74, 80, 157
10, 88, 89, 54, 146, 147, 119, 1, 122, 164,
93, 141, 56, 142, 58, 156, 94, 62, 1, 90,
91, 131, 65, 66, 144, 145, 67, 90, 91, 132,
127, 68, 136, -31, 97, 2, 154, -31, -31, -31,
-31, -31, -31, -31, -31, 98, 52, -31, -31, 99,
-31, 100, 101, 102, 103, 104, -31, 105, 129, 106,
138, 173, 92, 141, 107, 142, 174, 172, 8, 9,
143, -33, 97, 90, 91, -33, -33, -33, -33, -33,
-33, -33, -33, 98, 166, -33, -33, 99, -33, 100,
101, 102, 103, 104, -33, 105, 11, 106, 179, 151,
123, 126, 107, 135, 125, 130, 2, 139, 2, 90,
91, -5, 12, 55, 161, 13, 14, 15, 16, 17,
18, 19, 20, 65, 66, 21, 22, 23, 24, 25,
26, 27, 28, 29, 30, 57, 59, 31, 61, -4,
12, 63, 32, 13, 14, 15, 16, 17, 18, 19,
20, 64, 71, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 72, 73, 31, 180, 90, 91, 52,
32, -85, 97, 82, 83, -85, -85, -85, -85, -85,
-85, -85, -85, 84, 190, -85, -85, 99, -85, -85,
-85, -85, -85, -85, -85, 85, 97, 106, 86, 87,
-52, -52, 140, -52, -52, -52, -52, 98, 95, -52,
-52, 99, 114, 115, 116, 117, 96, 148, 149, 150,
158, 106, 155, 159, 97, 163, 118, -76, -76, -76,
-76, -76, -76, -76, -76, 160, 164, -76, -76, 99,
13, 14, 15, 16, 17, 18, 19, 20, 91, 106,
21, 22, 14, 15, 140, 17, 18, 19, 20, 168,
175, 21, 22, 177, 181, 182, 183, 32, 187, 167,
188, 169, 170, 171, 185, 189, 53, 51, 32, 176,
75, 178, 121, 0, 133, 162, 0, 0, 0, 0,
184
};
static const yytype_uint8 yycheck[] =
static const yytype_int16 yycheck[] =
{
1, 66, 67, 10, 92, 93, 3, 25, 26, 14,
3, 29, 13, 27, 15, 103, 34, 18, 75, 33,
0, 78, 30, 80, 89, 90, 31, 32, 28, 25,
26, 31, 32, 30, 0, 1, 101, 30, 4, 5,
6, 7, 8, 9, 10, 11, 12, 30, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 30, 25,
25, 68, 25, 151, 30, 30, 30, 0, 1, 25,
26, 4, 5, 6, 7, 8, 9, 10, 11, 12,
145, 14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 75, 25, 25, 78, 160, 80, 30, 99, 30,
0, 1, 31, 32, 4, 5, 6, 7, 8, 9,
10, 11, 25, 114, 14, 15, 16, 17, 18, 19,
20, 21, 22, 76, 77, 25, 79, 0, 1, 1,
30, 4, 5, 6, 7, 8, 9, 10, 11, 1,
30, 14, 15, 16, 17, 18, 19, 20, 21, 22,
76, 77, 25, 79, 0, 1, 30, 30, 4, 5,
6, 7, 8, 9, 10, 11, 30, 30, 14, 15,
16, 17, 18, 19, 20, 21, 22, 30, 179, 25,
30, 1, 30, 30, 30, 5, 6, 30, 8, 9,
10, 11, 12, 30, 14, 15, 16, 17, 18, 19,
20, 30, 31, 32, 30, 25, 24, 77, 1, 79,
30, 4, 5, 6, 7, 8, 9, 10, 11, 25,
1, 14, 15, 16, 4, 5, 6, 7, 8, 9,
10, 11, 25, 30, 14, 15, 13, 30, 5, 6,
25, 8, 9, 10, 11, 32, 14, 14, 15, 33,
30, 148, 149, 150, 30, 31, 32, 30, 77, 156,
79, 158, 7, 30, 30, 30, 30, 30, 30, 166,
30, 30, 30, 6, 75, 36, 47, 115
1, 67, 68, 10, 93, 94, 76, 3, 76, 14,
28, 81, 13, 81, 15, 104, 34, 18, 3, 32,
33, 23, 26, 27, 90, 91, 30, 32, 33, 31,
78, 35, 80, 0, 1, 31, 102, 4, 5, 6,
7, 8, 9, 10, 11, 12, 31, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 78, 26,
80, 26, 69, 133, 31, 133, 31, 156, 26, 27,
29, 0, 1, 32, 33, 4, 5, 6, 7, 8,
9, 10, 11, 12, 150, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 0, 26, 164, 100,
77, 78, 31, 80, 77, 78, 31, 80, 31, 32,
33, 0, 1, 31, 115, 4, 5, 6, 7, 8,
9, 10, 11, 26, 27, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 31, 26, 26, 31, 0,
1, 26, 31, 4, 5, 6, 7, 8, 9, 10,
11, 26, 31, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 1, 1, 26, 31, 32, 33, 31,
31, 0, 1, 31, 31, 4, 5, 6, 7, 8,
9, 10, 11, 31, 185, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 31, 1, 26, 31, 31,
5, 6, 31, 8, 9, 10, 11, 12, 31, 14,
15, 16, 17, 18, 19, 20, 31, 31, 31, 25,
1, 26, 26, 13, 1, 26, 31, 4, 5, 6,
7, 8, 9, 10, 11, 31, 14, 14, 15, 16,
4, 5, 6, 7, 8, 9, 10, 11, 33, 26,
14, 15, 5, 6, 31, 8, 9, 10, 11, 31,
31, 14, 15, 31, 31, 31, 31, 31, 31, 151,
31, 153, 154, 155, 34, 31, 7, 6, 31, 161,
37, 163, 76, -1, 79, 116, -1, -1, -1, -1,
172
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
0, 3, 30, 36, 37, 38, 62, 78, 25, 26,
76, 0, 1, 4, 5, 6, 7, 8, 9, 10,
0, 3, 31, 37, 38, 39, 63, 81, 26, 27,
79, 0, 1, 4, 5, 6, 7, 8, 9, 10,
11, 14, 15, 16, 17, 18, 19, 20, 21, 22,
25, 30, 39, 40, 42, 43, 44, 45, 51, 52,
54, 58, 60, 63, 64, 66, 68, 69, 70, 77,
38, 30, 37, 78, 30, 76, 30, 76, 25, 82,
30, 76, 25, 25, 25, 26, 29, 34, 80, 81,
30, 1, 1, 46, 46, 55, 57, 61, 73, 67,
73, 30, 30, 30, 30, 30, 30, 80, 80, 31,
32, 78, 27, 33, 30, 30, 1, 12, 16, 18,
19, 20, 21, 22, 23, 25, 30, 41, 47, 48,
71, 72, 74, 17, 18, 19, 20, 30, 41, 56,
72, 74, 40, 53, 77, 40, 54, 59, 66, 77,
30, 41, 74, 40, 54, 65, 66, 77, 28, 80,
80, 81, 81, 30, 30, 24, 76, 75, 76, 80,
25, 81, 49, 1, 13, 30, 76, 75, 25, 80,
14, 79, 30, 79, 79, 79, 81, 25, 30, 30,
79, 30, 79, 30, 80, 30, 30, 30, 79, 33,
50, 30, 30, 30, 76
23, 26, 31, 40, 41, 43, 44, 45, 46, 52,
53, 55, 59, 61, 64, 65, 67, 69, 70, 71,
80, 39, 31, 38, 81, 31, 79, 31, 79, 26,
85, 31, 79, 26, 26, 26, 27, 30, 35, 83,
84, 31, 1, 1, 47, 47, 56, 58, 62, 76,
68, 74, 31, 31, 31, 31, 31, 31, 83, 83,
32, 33, 81, 28, 34, 31, 31, 1, 12, 16,
18, 19, 20, 21, 22, 24, 26, 31, 42, 48,
49, 72, 73, 75, 17, 18, 19, 20, 31, 42,
57, 73, 75, 41, 54, 80, 41, 55, 60, 67,
80, 23, 31, 74, 77, 41, 55, 66, 67, 80,
31, 42, 75, 29, 83, 83, 84, 84, 31, 31,
25, 79, 78, 79, 83, 26, 84, 50, 1, 13,
31, 79, 78, 26, 14, 82, 83, 82, 31, 82,
82, 82, 84, 26, 31, 31, 82, 31, 82, 83,
31, 31, 31, 31, 82, 34, 51, 31, 31, 31,
79
};
#define yyerrok (yyerrstatus = 0)
@ -1292,7 +1302,7 @@ yydestruct (yymsg, yytype, yyvaluep)
switch (yytype)
{
case 52: /* "choice_entry" */
case 53: /* "choice_entry" */
{
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@ -1302,7 +1312,7 @@ yydestruct (yymsg, yytype, yyvaluep)
};
break;
case 58: /* "if_entry" */
case 59: /* "if_entry" */
{
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@ -1312,7 +1322,7 @@ yydestruct (yymsg, yytype, yyvaluep)
};
break;
case 64: /* "menu_entry" */
case 65: /* "menu_entry" */
{
fprintf(stderr, "%s:%d: missing end statement for this entry\n",
@ -1644,17 +1654,17 @@ yyreduce:
{ zconf_error("invalid statement"); ;}
break;
case 27:
case 28:
{ zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;}
break;
case 28:
case 29:
{ zconf_error("invalid option"); ;}
break;
case 29:
case 30:
{
struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
@ -1664,7 +1674,7 @@ yyreduce:
;}
break;
case 30:
case 31:
{
menu_end_entry();
@ -1672,7 +1682,7 @@ yyreduce:
;}
break;
case 31:
case 32:
{
struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
@ -1682,7 +1692,7 @@ yyreduce:
;}
break;
case 32:
case 33:
{
if (current_entry->prompt)
@ -1694,7 +1704,7 @@ yyreduce:
;}
break;
case 40:
case 41:
{
menu_set_type((yyvsp[(1) - (3)].id)->stype);
@ -1704,7 +1714,7 @@ yyreduce:
;}
break;
case 41:
case 42:
{
menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
@ -1712,7 +1722,7 @@ yyreduce:
;}
break;
case 42:
case 43:
{
menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
@ -1724,7 +1734,7 @@ yyreduce:
;}
break;
case 43:
case 44:
{
menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
@ -1732,7 +1742,7 @@ yyreduce:
;}
break;
case 44:
case 45:
{
menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
@ -1740,7 +1750,7 @@ yyreduce:
;}
break;
case 47:
case 48:
{
struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
@ -1752,17 +1762,17 @@ yyreduce:
;}
break;
case 48:
case 49:
{ (yyval.string) = NULL; ;}
break;
case 49:
case 50:
{ (yyval.string) = (yyvsp[(2) - (2)].string); ;}
break;
case 50:
case 51:
{
struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
@ -1773,14 +1783,14 @@ yyreduce:
;}
break;
case 51:
case 52:
{
(yyval.menu) = menu_add_menu();
;}
break;
case 52:
case 53:
{
if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
@ -1790,7 +1800,7 @@ yyreduce:
;}
break;
case 60:
case 61:
{
menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
@ -1798,7 +1808,7 @@ yyreduce:
;}
break;
case 61:
case 62:
{
if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
@ -1811,7 +1821,7 @@ yyreduce:
;}
break;
case 62:
case 63:
{
current_entry->sym->flags |= SYMBOL_OPTIONAL;
@ -1819,7 +1829,7 @@ yyreduce:
;}
break;
case 63:
case 64:
{
if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
@ -1831,7 +1841,7 @@ yyreduce:
;}
break;
case 66:
case 67:
{
printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
@ -1841,7 +1851,7 @@ yyreduce:
;}
break;
case 67:
case 68:
{
if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
@ -1851,14 +1861,14 @@ yyreduce:
;}
break;
case 73:
case 74:
{
menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
;}
break;
case 74:
case 75:
{
menu_add_entry(NULL);
@ -1867,14 +1877,14 @@ yyreduce:
;}
break;
case 75:
case 76:
{
(yyval.menu) = menu_add_menu();
;}
break;
case 76:
case 77:
{
if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
@ -1884,7 +1894,7 @@ yyreduce:
;}
break;
case 82:
case 83:
{
printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
@ -1892,7 +1902,7 @@ yyreduce:
;}
break;
case 83:
case 84:
{
menu_add_entry(NULL);
@ -1901,14 +1911,14 @@ yyreduce:
;}
break;
case 84:
case 85:
{
menu_end_entry();
;}
break;
case 85:
case 86:
{
printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
@ -1916,14 +1926,14 @@ yyreduce:
;}
break;
case 86:
case 87:
{
current_entry->help = (yyvsp[(2) - (2)].string);
;}
break;
case 91:
case 92:
{
menu_add_dep((yyvsp[(3) - (4)].expr));
@ -1931,85 +1941,92 @@ yyreduce:
;}
break;
case 93:
case 96:
{
menu_add_visibility((yyvsp[(2) - (2)].expr));
;}
break;
case 98:
{
menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
;}
break;
case 96:
{ (yyval.id) = (yyvsp[(1) - (2)].id); ;}
break;
case 97:
{ (yyval.id) = (yyvsp[(1) - (2)].id); ;}
break;
case 98:
{ (yyval.id) = (yyvsp[(1) - (2)].id); ;}
break;
case 101:
{ (yyval.expr) = NULL; ;}
{ (yyval.id) = (yyvsp[(1) - (2)].id); ;}
break;
case 102:
{ (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
{ (yyval.id) = (yyvsp[(1) - (2)].id); ;}
break;
case 103:
{ (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
break;
case 104:
{ (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
break;
case 105:
{ (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
{ (yyval.id) = (yyvsp[(1) - (2)].id); ;}
break;
case 106:
{ (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
{ (yyval.expr) = NULL; ;}
break;
case 107:
{ (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
{ (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
break;
case 108:
{ (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
{ (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
break;
case 109:
{ (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
{ (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
break;
case 110:
{ (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
{ (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
break;
case 111:
{ (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
{ (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
break;
case 112:
{ (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
break;
case 113:
{ (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 114:
{ (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
break;
case 115:
{ (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
break;
case 116:
{ (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
break;
case 117:
{ (yyval.string) = NULL; ;}
break;
@ -2278,6 +2295,7 @@ static const char *zconf_tokenname(int token)
case T_IF: return "if";
case T_ENDIF: return "endif";
case T_DEPENDS: return "depends";
case T_VISIBLE: return "visible";
}
return "<token>";
}

View file

@ -36,7 +36,7 @@ static struct menu *current_menu, *current_entry;
#define YYERROR_VERBOSE
#endif
%}
%expect 28
%expect 30
%union
{
@ -68,6 +68,7 @@ static struct menu *current_menu, *current_entry;
%token <id>T_DEFAULT
%token <id>T_SELECT
%token <id>T_RANGE
%token <id>T_VISIBLE
%token <id>T_OPTION
%token <id>T_ON
%token <string> T_WORD
@ -123,7 +124,7 @@ stmt_list:
;
option_name:
T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT
T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
;
common_stmt:
@ -359,7 +360,7 @@ menu: T_MENU prompt T_EOL
printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
};
menu_entry: menu depends_list
menu_entry: menu visibility_list depends_list
{
$$ = menu_add_menu();
};
@ -430,6 +431,19 @@ depends: T_DEPENDS T_ON expr T_EOL
printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
};
/* visibility option */
visibility_list:
/* empty */
| visibility_list visible
| visibility_list T_EOL
;
visible: T_VISIBLE if_expr
{
menu_add_visibility($2);
};
/* prompt statement */
prompt_stmt_opt:
@ -526,6 +540,7 @@ static const char *zconf_tokenname(int token)
case T_IF: return "if";
case T_ENDIF: return "endif";
case T_DEPENDS: return "depends";
case T_VISIBLE: return "visible";
}
return "<token>";
}

View file

@ -22,14 +22,15 @@
*/
#include <linux/stringify.h>
#include <asm-generic/vmlinux.lds.h>
.section .init.ramfs,"a"
__irf_start:
.incbin __stringify(INITRAMFS_IMAGE)
__irf_end:
.section .init.ramfs.info,"a"
.globl __initramfs_size
__initramfs_size:
.globl VMLINUX_SYMBOL(__initramfs_size)
VMLINUX_SYMBOL(__initramfs_size):
#ifdef CONFIG_64BIT
.quad __irf_end - __irf_start
#else