OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [bin/] [tkconfig/] [tkparse.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 dimamali
/*
2
 * tkparse.h
3
 */
4
 
5
/*
6
 * Token types (mostly statement types).
7
 */
8
 
9
enum e_token
10
{
11
    token_UNKNOWN,
12
    token_bool,
13
    token_choice_header,
14
    token_choice_item,
15
    token_comment,
16
    token_define_bool,
17
    token_define_hex,
18
    token_define_int,
19
    token_define_string,
20
    token_define_tristate,
21
    token_dep_bool,
22
    token_dep_mbool,
23
    token_dep_tristate,
24
    token_else,
25
    token_endmenu,
26
    token_fi,
27
    token_hex,
28
    token_if,
29
    token_int,
30
    token_mainmenu_name,
31
    token_mainmenu_option,
32
    token_source,
33
    token_string,
34
    token_then,
35
    token_tristate,
36
    token_unset,
37
};
38
 
39
/*
40
 * Operator types for conditionals.
41
 */
42
 
43
enum operator
44
{
45
    op_eq,
46
    op_neq,
47
    op_and,
48
    op_and1,
49
    op_or,
50
    op_bang,
51
    op_lparen,
52
    op_rparen,
53
    op_constant,
54
    op_variable,
55
    op_true,
56
    op_false,
57
    op_nuked
58
};
59
 
60
/*
61
 * Conditions come in linked lists.
62
 * Some operators take strings:
63
 *
64
 *   op_constant   "foo"
65
 *   op_variable   "$ARCH", "$CONFIG_PMAC", "$CONFIG_EXPERIMENTAL"
66
 *
67
 * Most "$..." constructs refer to a variable which is defined somewhere
68
 * in the script.  Note that it is legal to test variables which are never
69
 * defined, such as variables that are meaningful only on other architectures.
70
 */
71
 
72
struct condition
73
{
74
    struct condition *  next;
75
    enum operator       op;
76
    const char *        str;            /* op_constant */
77
    int                 nameindex;      /* op_variable */
78
};
79
 
80
/*
81
 * Dependency list for dep_bool, dep_mbool, dep_tristate
82
 */
83
 
84
struct dependency
85
{
86
    char *              name;
87
    struct dependency * next;
88
};
89
 
90
/*
91
 * A statement from a config.in file
92
 */
93
 
94
struct kconfig
95
{
96
    struct kconfig *    next;
97
    enum e_token        token;
98
    int                 nameindex;
99
    char *              label;
100
    char *              value;
101
    struct condition *  cond;
102
    struct dependency * depend;         /* token_dep_tristate */
103
    struct kconfig *    cfg_parent;     /* token_choice_item */
104
 
105
    /* used only in tkgen.c */
106
    int                 menu_number;
107
    int                 menu_line;
108
    struct kconfig *    menu_next;
109
};
110
 
111
struct variable
112
{
113
    char *      name;
114
    char        defined;
115
    char        global_written;
116
};
117
 
118
extern struct variable vartable[];
119
extern int max_varnum;
120
 
121
/*
122
 * Prototypes
123
 */
124
 
125
extern void fix_conditionals ( struct kconfig * scfg );         /* tkcond.c */
126
extern void dump_tk_script   ( struct kconfig * scfg );         /* tkgen.c  */
127
extern int get_varnum        ( char * name );                   /* tkparse.c */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.