author | kergoth <kergoth> | 2003-06-17 17:03:49 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-06-17 17:03:49 (UTC) |
commit | 16e53b2a2e94742f3b55ee73700bb264e36638d4 (patch) (side-by-side diff) | |
tree | 4f2b65a635d25c1ce0cfeea7953623c2bf7d9534 /scripts/kconfig/zconf.y | |
parent | 384b7f1a42f9f2f101dc8fe11c3625055d96f672 (diff) | |
download | opie-16e53b2a2e94742f3b55ee73700bb264e36638d4.zip opie-16e53b2a2e94742f3b55ee73700bb264e36638d4.tar.gz opie-16e53b2a2e94742f3b55ee73700bb264e36638d4.tar.bz2 |
Update LinuxKernelConf version to 1.4.
-rw-r--r-- | scripts/kconfig/zconf.y | 230 |
1 files changed, 134 insertions, 96 deletions
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 996b10a..2468068 100644 --- a/scripts/kconfig/zconf.y +++ b/scripts/kconfig/zconf.y @@ -29,3 +29,3 @@ struct symbol *symbol_hash[257]; %} -%expect 36 +%expect 40 @@ -48,2 +48,3 @@ struct symbol *symbol_hash[257]; %token T_CONFIG +%token T_MENUCONFIG %token T_HELP @@ -58,3 +59,6 @@ struct symbol *symbol_hash[257]; %token T_TRISTATE +%token T_DEF_TRISTATE %token T_BOOLEAN +%token T_DEF_BOOLEAN +%token T_STRING %token T_INT @@ -62,3 +66,3 @@ struct symbol *symbol_hash[257]; %token <string> T_WORD -%token <string> T_STRING +%token <string> T_WORD_QUOTE %token T_UNEQUAL @@ -69,2 +73,4 @@ struct symbol *symbol_hash[257]; %token T_ON +%token T_SELECT +%token T_RANGE @@ -105,2 +111,3 @@ common_block: | config_stmt + | menuconfig_stmt | source_stmt @@ -110,5 +117,5 @@ common_block: -/* config entry */ +/* config/menuconfig entry */ -config_entry_start: T_CONFIG T_WORD +config_entry_start: T_CONFIG T_WORD T_EOL { @@ -120,3 +127,3 @@ config_entry_start: T_CONFIG T_WORD -config_stmt: config_entry_start T_EOL config_option_list +config_stmt: config_entry_start config_option_list { @@ -126,11 +133,29 @@ config_stmt: config_entry_start T_EOL config_option_list +menuconfig_entry_start: T_MENUCONFIG T_WORD T_EOL +{ + struct symbol *sym = sym_lookup($2, 0); + sym->flags |= SYMBOL_OPTIONAL; + menu_add_entry(sym); + printd(DEBUG_PARSE, "%s:%d:menuconfig %s\n", zconf_curname(), zconf_lineno(), $2); +}; + +menuconfig_stmt: menuconfig_entry_start config_option_list +{ + if (current_entry->prompt) + current_entry->prompt->type = P_MENU; + else + zconfprint("warning: menuconfig statement without prompt"); + menu_end_entry(); + printd(DEBUG_PARSE, "%s:%d:endconfig\n", zconf_curname(), zconf_lineno()); +}; + config_option_list: /* empty */ - | config_option_list config_option T_EOL - | config_option_list depends T_EOL + | config_option_list config_option + | config_option_list depends | config_option_list help | config_option_list T_EOL -{ }; +; -config_option: T_TRISTATE prompt_stmt_opt +config_option: T_TRISTATE prompt_stmt_opt T_EOL { @@ -140,3 +165,10 @@ config_option: T_TRISTATE prompt_stmt_opt -config_option: T_BOOLEAN prompt_stmt_opt +config_option: T_DEF_TRISTATE expr if_expr T_EOL +{ + menu_add_expr(P_DEFAULT, $2, $3); + menu_set_type(S_TRISTATE); + printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); +}; + +config_option: T_BOOLEAN prompt_stmt_opt T_EOL { @@ -146,3 +178,10 @@ config_option: T_BOOLEAN prompt_stmt_opt -config_option: T_INT prompt_stmt_opt +config_option: T_DEF_BOOLEAN expr if_expr T_EOL +{ + menu_add_expr(P_DEFAULT, $2, $3); + menu_set_type(S_BOOLEAN); + printd(DEBUG_PARSE, "%s:%d:def_boolean\n", zconf_curname(), zconf_lineno()); +}; + +config_option: T_INT prompt_stmt_opt T_EOL { @@ -152,3 +191,3 @@ config_option: T_INT prompt_stmt_opt -config_option: T_HEX prompt_stmt_opt +config_option: T_HEX prompt_stmt_opt T_EOL { @@ -158,3 +197,3 @@ config_option: T_HEX prompt_stmt_opt -config_option: T_STRING prompt_stmt_opt +config_option: T_STRING prompt_stmt_opt T_EOL { @@ -164,5 +203,5 @@ config_option: T_STRING prompt_stmt_opt -config_option: T_PROMPT prompt if_expr +config_option: T_PROMPT prompt if_expr T_EOL { - menu_add_prop(P_PROMPT, $2, NULL, $3); + menu_add_prompt(P_PROMPT, $2, $3); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); @@ -170,5 +209,5 @@ config_option: T_PROMPT prompt if_expr -config_option: T_DEFAULT symbol if_expr +config_option: T_DEFAULT expr if_expr T_EOL { - menu_add_prop(P_DEFAULT, NULL, $2, $3); + menu_add_expr(P_DEFAULT, $2, $3); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); @@ -176,5 +215,17 @@ config_option: T_DEFAULT symbol if_expr +config_option: T_SELECT T_WORD if_expr T_EOL +{ + menu_add_symbol(P_SELECT, sym_lookup($2, 0), $3); + printd(DEBUG_PARSE, "%s:%d:select\n", zconf_curname(), zconf_lineno()); +}; + +config_option: T_RANGE symbol symbol if_expr T_EOL +{ + menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,$2, $3), $4); + printd(DEBUG_PARSE, "%s:%d:range\n", zconf_curname(), zconf_lineno()); +}; + /* choice entry */ -choice: T_CHOICE +choice: T_CHOICE T_EOL { @@ -183,3 +234,3 @@ choice: T_CHOICE menu_add_entry(sym); - menu_add_prop(P_CHOICE, NULL, NULL, NULL); + menu_add_expr(P_CHOICE, NULL, NULL); printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); @@ -187,3 +238,3 @@ choice: T_CHOICE -choice_entry: choice T_EOL choice_option_list +choice_entry: choice choice_option_list { @@ -202,3 +253,3 @@ choice_end: end choice_stmt: - choice_entry choice_block choice_end T_EOL + choice_entry choice_block choice_end | choice_entry choice_block @@ -211,4 +262,4 @@ choice_option_list: /* empty */ - | choice_option_list choice_option T_EOL - | choice_option_list depends T_EOL + | choice_option_list choice_option + | choice_option_list depends | choice_option_list help @@ -217,5 +268,5 @@ choice_option_list: -choice_option: T_PROMPT prompt if_expr +choice_option: T_PROMPT prompt if_expr T_EOL { - menu_add_prop(P_PROMPT, $2, NULL, $3); + menu_add_prompt(P_PROMPT, $2, $3); printd(DEBUG_PARSE, "%s:%d:prompt\n", zconf_curname(), zconf_lineno()); @@ -223,3 +274,15 @@ choice_option: T_PROMPT prompt if_expr -choice_option: T_OPTIONAL +choice_option: T_TRISTATE prompt_stmt_opt T_EOL +{ + menu_set_type(S_TRISTATE); + printd(DEBUG_PARSE, "%s:%d:tristate\n", zconf_curname(), zconf_lineno()); +}; + +choice_option: T_BOOLEAN prompt_stmt_opt T_EOL +{ + menu_set_type(S_BOOLEAN); + printd(DEBUG_PARSE, "%s:%d:boolean\n", zconf_curname(), zconf_lineno()); +}; + +choice_option: T_OPTIONAL T_EOL { @@ -229,5 +292,5 @@ choice_option: T_OPTIONAL -choice_option: T_DEFAULT symbol if_expr +choice_option: T_DEFAULT T_WORD if_expr T_EOL { - menu_add_prop(P_DEFAULT, NULL, $2, $3); + menu_add_symbol(P_DEFAULT, sym_lookup($2, 0), $3); printd(DEBUG_PARSE, "%s:%d:default\n", zconf_curname(), zconf_lineno()); @@ -242,3 +305,3 @@ choice_block: -if: T_IF expr +if: T_IF expr T_EOL { @@ -260,4 +323,4 @@ if_end: end if_stmt: - if T_EOL if_block if_end T_EOL - | if T_EOL if_block + if if_block if_end + | if if_block { @@ -276,3 +339,3 @@ if_block: -menu: T_MENU prompt +menu: T_MENU prompt T_EOL { @@ -283,3 +346,3 @@ menu: T_MENU prompt -menu_entry: menu T_EOL depends_list +menu_entry: menu depends_list { @@ -298,3 +361,3 @@ menu_end: end menu_stmt: - menu_entry menu_block menu_end T_EOL + menu_entry menu_block menu_end | menu_entry menu_block @@ -313,3 +376,3 @@ menu_block: -source: T_SOURCE prompt +source: T_SOURCE prompt T_EOL { @@ -319,3 +382,3 @@ source: T_SOURCE prompt -source_stmt: source T_EOL +source_stmt: source { @@ -326,3 +389,3 @@ source_stmt: source T_EOL -comment: T_COMMENT prompt +comment: T_COMMENT prompt T_EOL { @@ -333,3 +396,3 @@ comment: T_COMMENT prompt -comment_stmt: comment T_EOL depends_list +comment_stmt: comment depends_list { @@ -354,7 +417,7 @@ help: help_start T_HELPTEXT depends_list: /* empty */ - | depends_list depends T_EOL + | depends_list depends | depends_list T_EOL -{ }; +; -depends: T_DEPENDS T_ON expr +depends: T_DEPENDS T_ON expr T_EOL { @@ -363,3 +426,3 @@ depends: T_DEPENDS T_ON expr } - | T_DEPENDS expr + | T_DEPENDS expr T_EOL { @@ -368,3 +431,3 @@ depends: T_DEPENDS T_ON expr } - | T_REQUIRES expr + | T_REQUIRES expr T_EOL { @@ -378,9 +441,5 @@ prompt_stmt_opt: /* empty */ - | prompt -{ - menu_add_prop(P_PROMPT, $1, NULL, NULL); -} - | prompt T_IF expr + | prompt if_expr { - menu_add_prop(P_PROMPT, $1, NULL, $3); + menu_add_prop(P_PROMPT, $1, NULL, $2); }; @@ -388,8 +447,8 @@ prompt_stmt_opt: prompt: T_WORD - | T_STRING + | T_WORD_QUOTE ; -end: T_ENDMENU { $$ = T_ENDMENU; } - | T_ENDCHOICE { $$ = T_ENDCHOICE; } - | T_ENDIF { $$ = T_ENDIF; } +end: T_ENDMENU nl_or_eof { $$ = T_ENDMENU; } + | T_ENDCHOICE nl_or_eof { $$ = T_ENDCHOICE; } + | T_ENDIF nl_or_eof { $$ = T_ENDIF; } ; @@ -413,3 +472,3 @@ expr: symbol { $$ = expr_alloc_symbol($1); } symbol: T_WORD { $$ = sym_lookup($1, 0); free($1); } - | T_STRING { $$ = sym_lookup($1, 1); free($1); } + | T_WORD_QUOTE { $$ = sym_lookup($1, 1); free($1); } ; @@ -420,2 +479,5 @@ void conf_parse(const char *name) { + struct symbol *sym; + int i; + zconf_initscan(name); @@ -424,3 +486,4 @@ void conf_parse(const char *name) menu_init(); - rootmenu.prompt = menu_add_prop(P_MENU, "Configuration", NULL, NULL); + modules_sym = sym_lookup("MODULES", 0); + rootmenu.prompt = menu_add_prop(P_MENU, "Build Configuration", NULL, NULL); @@ -431,4 +494,8 @@ void conf_parse(const char *name) menu_finalize(&rootmenu); - - modules_sym = sym_lookup("MODULES", 0); + for_all_symbols(i, sym) { + if (!(sym->flags & SYMBOL_CHECKED) && sym_check_deps(sym)) + printf("\n"); + else + sym->flags |= SYMBOL_CHECK_DONE; + } @@ -448,3 +515,3 @@ const char *zconf_tokenname(int token) return "<token>"; -} +} @@ -470,3 +537,3 @@ static void zconfprint(const char *err, ...) - fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); + fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno() + 1); va_start(ap, err); @@ -479,3 +546,3 @@ static void zconferror(const char *err) { - fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno(), err); + fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err); } @@ -504,4 +571,2 @@ void print_symbol(FILE *out, struct menu *menu) - //sym->flags |= SYMBOL_PRINTED; - if (sym_is_choice(sym)) @@ -530,9 +595,2 @@ void print_symbol(FILE *out, struct menu *menu) } -#if 0 - if (!expr_is_yes(sym->dep)) { - fputs(" depends ", out); - expr_fprint(sym->dep, out); - fputc('\n', out); - } -#endif for (prop = sym->prop; prop; prop = prop->next) { @@ -544,12 +602,5 @@ void print_symbol(FILE *out, struct menu *menu) print_quoted_string(out, prop->text); - if (prop->def) { - fputc(' ', out); - if (prop->def->flags & SYMBOL_CONST) - print_quoted_string(out, prop->def->name); - else - fputs(prop->def->name, out); - } - if (!expr_is_yes(E_EXPR(prop->visible))) { + if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); - expr_fprint(E_EXPR(prop->visible), out); + expr_fprint(prop->visible.expr, out); } @@ -559,6 +610,6 @@ void print_symbol(FILE *out, struct menu *menu) fputs( " default ", out); - print_quoted_string(out, prop->def->name); - if (!expr_is_yes(E_EXPR(prop->visible))) { + expr_fprint(prop->expr, out); + if (!expr_is_yes(prop->visible.expr)) { fputs(" if ", out); - expr_fprint(E_EXPR(prop->visible), out); + expr_fprint(prop->visible.expr, out); } @@ -585,3 +636,2 @@ void zconfdump(FILE *out) { - //struct file *file; struct property *prop; @@ -596,7 +646,2 @@ void zconfdump(FILE *out) switch (prop->type) { - //case T_MAINMENU: - // fputs("\nmainmenu ", out); - // print_quoted_string(out, prop->text); - // fputs("\n", out); - // break; case P_COMMENT: @@ -611,9 +656,2 @@ void zconfdump(FILE *out) break; - //case T_SOURCE: - // fputs("\nsource ", out); - // print_quoted_string(out, prop->text); - // fputs("\n", out); - // break; - //case T_IF: - // fputs("\nif\n", out); default: @@ -621,5 +659,5 @@ void zconfdump(FILE *out) } - if (!expr_is_yes(E_EXPR(prop->visible))) { + if (!expr_is_yes(prop->visible.expr)) { fputs(" depends ", out); - expr_fprint(E_EXPR(prop->visible), out); + expr_fprint(prop->visible.expr, out); fputc('\n', out); |