-rw-r--r-- | scripts/kconfig/zconf.y | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 79cb983..c3f1bd0 100644 --- a/scripts/kconfig/zconf.y +++ b/scripts/kconfig/zconf.y @@ -299,257 +299,257 @@ menu_end: end menu_stmt: menu_entry menu_block menu_end T_EOL | menu_entry menu_block { printf("%s:%d: missing 'endmenu' for this 'menu' statement\n", current_menu->file->name, current_menu->lineno); zconfnerrs++; }; menu_block: /* empty */ | menu_block common_block | menu_block menu_stmt | menu_block choice_stmt | menu_block error T_EOL { zconfprint("invalid menu option"); yyerrok; } ; source: T_SOURCE prompt { $$ = $2; printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), $2); }; source_stmt: source T_EOL { zconf_nextfile($1); }; /* comment entry */ comment: T_COMMENT prompt { menu_add_entry(NULL); menu_add_prop(P_COMMENT, $2, NULL, NULL); printd(DEBUG_PARSE, "%s:%d:comment\n", zconf_curname(), zconf_lineno()); }; comment_stmt: comment T_EOL depends_list { menu_end_entry(); }; /* help option */ help_start: T_HELP T_EOL { printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno()); zconf_starthelp(); }; help: help_start T_HELPTEXT { current_entry->sym->help = $2; }; /* depends option */ depends_list: /* empty */ | depends_list depends T_EOL | depends_list T_EOL { }; depends: T_DEPENDS T_ON expr { menu_add_dep($3); printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno()); } | T_DEPENDS expr { menu_add_dep($2); printd(DEBUG_PARSE, "%s:%d:depends\n", zconf_curname(), zconf_lineno()); } | T_REQUIRES expr { menu_add_dep($2); printd(DEBUG_PARSE, "%s:%d:requires\n", zconf_curname(), zconf_lineno()); }; /* prompt statement */ prompt_stmt_opt: /* empty */ | prompt { menu_add_prop(P_PROMPT, $1, NULL, NULL); } | prompt T_IF expr { menu_add_prop(P_PROMPT, $1, NULL, $3); }; prompt: T_WORD | T_STRING ; end: T_ENDMENU { $$ = T_ENDMENU; } | T_ENDCHOICE { $$ = T_ENDCHOICE; } | T_ENDIF { $$ = T_ENDIF; } ; nl_or_eof: T_EOL | T_EOF; if_expr: /* empty */ { $$ = NULL; } | T_IF expr { $$ = $2; } ; expr: symbol { $$ = expr_alloc_symbol($1); } | symbol T_EQUAL symbol { $$ = expr_alloc_comp(E_EQUAL, $1, $3); } | symbol T_UNEQUAL symbol { $$ = expr_alloc_comp(E_UNEQUAL, $1, $3); } | T_OPEN_PAREN expr T_CLOSE_PAREN { $$ = $2; } | T_NOT expr { $$ = expr_alloc_one(E_NOT, $2); } | expr T_OR expr { $$ = expr_alloc_two(E_OR, $1, $3); } | expr T_AND expr { $$ = expr_alloc_two(E_AND, $1, $3); } ; symbol: T_WORD { $$ = sym_lookup($1, 0); free($1); } | T_STRING { $$ = sym_lookup($1, 1); free($1); } ; %% void conf_parse(const char *name) { zconf_initscan(name); sym_init(); menu_init(); - rootmenu.prompt = menu_add_prop(P_MENU, "Linux Kernel Configuration", NULL, NULL); + rootmenu.prompt = menu_add_prop(P_MENU, "Configuration", NULL, NULL); //zconfdebug = 1; zconfparse(); if (zconfnerrs) exit(1); menu_finalize(&rootmenu); modules_sym = sym_lookup("MODULES", 0); sym_change_count = 1; } const char *zconf_tokenname(int token) { switch (token) { case T_MENU: return "menu"; case T_ENDMENU: return "endmenu"; case T_CHOICE: return "choice"; case T_ENDCHOICE: return "endchoice"; case T_IF: return "if"; case T_ENDIF: return "endif"; } return "<token>"; } static bool zconf_endtoken(int token, int starttoken, int endtoken) { if (token != endtoken) { zconfprint("unexpected '%s' within %s block", zconf_tokenname(token), zconf_tokenname(starttoken)); zconfnerrs++; return false; } if (current_menu->file != current_file) { zconfprint("'%s' in different file than '%s'", zconf_tokenname(token), zconf_tokenname(starttoken)); zconfprint("location of the '%s'", zconf_tokenname(starttoken)); zconfnerrs++; return false; } return true; } static void zconfprint(const char *err, ...) { va_list ap; fprintf(stderr, "%s:%d: ", zconf_curname(), zconf_lineno()); va_start(ap, err); vfprintf(stderr, err, ap); va_end(ap); fprintf(stderr, "\n"); } static void zconferror(const char *err) { fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno(), err); } void print_quoted_string(FILE *out, const char *str) { const char *p; int len; putc('"', out); while ((p = strchr(str, '"'))) { len = p - str; if (len) fprintf(out, "%.*s", len, str); fputs("\\\"", out); str = p + 1; } fputs(str, out); putc('"', out); } void print_symbol(FILE *out, struct menu *menu) { struct symbol *sym = menu->sym; struct property *prop; //sym->flags |= SYMBOL_PRINTED; if (sym_is_choice(sym)) fprintf(out, "choice\n"); else fprintf(out, "config %s\n", sym->name); switch (sym->type) { case S_BOOLEAN: fputs(" boolean\n", out); break; case S_TRISTATE: fputs(" tristate\n", out); break; case S_STRING: fputs(" string\n", out); break; case S_INT: fputs(" integer\n", out); break; case S_HEX: fputs(" hex\n", out); break; default: fputs(" ???\n", out); break; } #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) { if (prop->menu != menu) continue; switch (prop->type) { case P_PROMPT: fputs(" prompt ", out); 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))) { fputs(" if ", out); |