tkparse.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
- /*
- * tkparse.h
- */
- /*
- * Token types (mostly statement types).
- */
- enum e_token
- {
- token_UNKNOWN,
- token_bool,
- token_choice_header,
- token_choice_item,
- token_comment,
- token_define_bool,
- token_define_hex,
- token_define_int,
- token_define_string,
- token_define_tristate,
- token_dep_bool,
- token_dep_mbool,
- token_dep_tristate,
- token_else,
- token_endmenu,
- token_fi,
- token_hex,
- token_if,
- token_int,
- token_mainmenu_name,
- token_mainmenu_option,
- token_source,
- token_string,
- token_then,
- token_tristate,
- token_unset,
- };
- /*
- * Operator types for conditionals.
- */
- enum operator
- {
- op_eq,
- op_neq,
- op_and,
- op_and1,
- op_or,
- op_bang,
- op_lparen,
- op_rparen,
- op_constant,
- op_variable,
- op_true,
- op_false,
- op_nuked
- };
- /*
- * Conditions come in linked lists.
- * Some operators take strings:
- *
- * op_constant "foo"
- * op_variable "$ARCH", "$CONFIG_PMAC", "$CONFIG_EXPERIMENTAL"
- *
- * Most "$..." constructs refer to a variable which is defined somewhere
- * in the script. Note that it is legal to test variables which are never
- * defined, such as variables that are meaningful only on other architectures.
- */
- struct condition
- {
- struct condition * next;
- enum operator op;
- const char * str; /* op_constant */
- int nameindex; /* op_variable */
- };
- /*
- * Dependency list for dep_bool, dep_mbool, dep_tristate
- */
- struct dependency
- {
- char * name;
- struct dependency * next;
- };
- /*
- * A statement from a config.in file
- */
- struct kconfig
- {
- struct kconfig * next;
- enum e_token token;
- int nameindex;
- char * label;
- char * value;
- struct condition * cond;
- struct dependency * depend; /* token_dep_tristate */
- struct kconfig * cfg_parent; /* token_choice_item */
- /* used only in tkgen.c */
- int menu_number;
- int menu_line;
- struct kconfig * menu_next;
- };
- struct variable
- {
- char * name;
- char defined;
- char global_written;
- };
- extern struct variable *vartable;
- extern int max_varnum;
- /*
- * Prototypes
- */
- extern void fix_conditionals ( struct kconfig * scfg ); /* tkcond.c */
- extern void dump_tk_script ( struct kconfig * scfg ); /* tkgen.c */
- extern int get_varnum ( char * name ); /* tkparse.c */