source:
branches/UKMO/r5936_CO6_CO5_shelfdiagnostic/NEMOGCM/EXTERNAL/IOIPSL/tools/tkparse.h
@
7113
Last change on this file since 7113 was 7113, checked in by jcastill, 8 years ago | |
---|---|
File size: 1.2 KB |
Rev | Line | |
---|---|---|
[1895] | 1 | |
2 | enum token { | |
3 | tok_menuname, | |
4 | tok_menuoption, | |
5 | tok_comment, | |
6 | tok_bool, | |
7 | tok_tristate, | |
8 | tok_dep_tristate, | |
9 | tok_nop, | |
10 | tok_if, | |
11 | tok_else, | |
12 | tok_fi, | |
13 | tok_int, | |
14 | tok_hex, | |
15 | tok_make, | |
16 | tok_define, | |
17 | tok_choose, | |
18 | tok_choice, | |
19 | tok_endmenu, | |
20 | tok_unknown | |
21 | }; | |
22 | ||
23 | enum operator { | |
24 | op_eq, | |
25 | op_neq, | |
26 | op_and, | |
27 | op_and1, | |
28 | op_or, | |
29 | op_bang, | |
30 | op_lparen, | |
31 | op_rparen, | |
32 | op_variable, | |
33 | op_kvariable, | |
34 | op_shellcmd, | |
35 | op_constant, | |
36 | op_nuked | |
37 | }; | |
38 | ||
39 | union var | |
40 | { | |
41 | char * str; | |
42 | struct kconfig * cfg; | |
43 | }; | |
44 | ||
45 | struct condition | |
46 | { | |
47 | struct condition * next; | |
48 | enum operator op; | |
49 | union var variable; | |
50 | }; | |
51 | ||
52 | #define GLOBAL_WRITTEN 1 | |
53 | #define CFG_DUP 2 | |
54 | #define UNSAFE 4 | |
55 | ||
56 | struct kconfig | |
57 | { | |
58 | struct kconfig * next; | |
59 | int flags; | |
60 | enum token tok; | |
61 | char menu_number; | |
62 | char menu_line; | |
63 | char submenu_start; | |
64 | char submenu_end; | |
65 | char * optionname; | |
66 | char * label; | |
67 | char * value; | |
68 | int choice_value; | |
69 | struct kconfig * choice_label; | |
70 | union var depend; | |
71 | struct condition * cond; | |
72 | }; | |
73 | ||
74 | extern struct kconfig * config; | |
75 | extern struct kconfig * clast; | |
76 | extern struct kconfig * koption; | |
77 | ||
78 | /* | |
79 | * Prototypes | |
80 | */ | |
81 | void fix_conditionals(struct kconfig * scfg); /* tkcond.c */ | |
82 | void dump_tk_script(struct kconfig *scfg); /* tkgen.c */ |
Note: See TracBrowser
for help on using the repository browser.