diff options
| author | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:40:40 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@athlon.transmeta.com> | 2002-02-04 17:40:40 -0800 |
| commit | 7a2deb32924142696b8174cdf9b38cd72a11fc96 (patch) | |
| tree | 8ecc18f81fdb849254f39dc2e9fd77253319e1ec /scripts/tkparse.h | |
Import changeset
Diffstat (limited to 'scripts/tkparse.h')
| -rw-r--r-- | scripts/tkparse.h | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/scripts/tkparse.h b/scripts/tkparse.h new file mode 100644 index 000000000000..1ca16b1852e7 --- /dev/null +++ b/scripts/tkparse.h @@ -0,0 +1,127 @@ +/* + * 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 */ |
