Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | /* * 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_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_kvariable, op_nuked }; /* * Conditions come in linked lists. * Some operators take strings: * * op_constant "foo" * op_variable "$ARCH", "$CONFIG_PMAC" * op_kvariable "$CONFIG_EXPERIMENTAL" * * Most "$..." constructs refer to a variable which is defined somewhere * in the script, so they become op_kvariable's instead. 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, op_variable */ struct kconfig * cfg; /* op_kvariable */ }; /* * A statement from a config.in file */ struct kconfig { struct kconfig * next; enum e_token token; char * optionname; char * label; char * value; struct condition * cond; char * depend; /* token_dep_tristate */ struct kconfig * cfg_parent; /* token_choice_item */ /* used only in tkgen.c */ char global_written; int menu_number; int menu_line; struct kconfig * menu_next; }; /* * Prototypes */ extern void fix_conditionals ( struct kconfig * scfg ); /* tkcond.c */ extern void dump_tk_script ( struct kconfig * scfg ); /* tkgen.c */ |