enum token {
tok_menuname,
tok_menuoption,
tok_comment,
tok_bool,
tok_tristate,
tok_dep_tristate,
tok_nop,
tok_if,
tok_else,
tok_fi,
tok_int,
tok_hex,
tok_make,
tok_define,
tok_choose,
tok_choice,
tok_endmenu,
tok_unknown
};
enum operator {
op_eq,
op_neq,
op_and,
op_and1,
op_or,
op_bang,
op_lparen,
op_rparen,
op_variable,
op_kvariable,
op_shellcmd,
op_constant,
op_nuked
};
union var
{
char * str;
struct kconfig * cfg;
};
struct condition
{
struct condition * next;
enum operator op;
union var variable;
};
#define GLOBAL_WRITTEN 1
#define CFG_DUP 2
#define UNSAFE 4
struct kconfig
{
struct kconfig * next;
int flags;
enum token tok;
char menu_number;
char menu_line;
char submenu_start;
char submenu_end;
char * optionname;
char * label;
char * value;
int choice_value;
struct kconfig * choice_label;
union var depend;
struct condition * cond;
};
extern struct kconfig * config;
extern struct kconfig * clast;
extern struct kconfig * koption;
/*
* Prototypes
*/
void fix_conditionals(struct kconfig * scfg); /* tkcond.c */
void dump_tk_script(struct kconfig *scfg); /* tkgen.c */