mirror of
https://github.com/VincentWei/MiniGUI.git
synced 2026-02-06 10:21:57 +08:00
initical commit
This commit is contained in:
127
scripts/tkparse.h
Normal file
127
scripts/tkparse.h
Normal file
@@ -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 */
|
||||
Reference in New Issue
Block a user