New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
tkparse.h in branches/UKMO/dev_r5518_sst_landsea_cpl/NEMOGCM/EXTERNAL/IOIPSL/tools – NEMO

source: branches/UKMO/dev_r5518_sst_landsea_cpl/NEMOGCM/EXTERNAL/IOIPSL/tools/tkparse.h @ 6709

Last change on this file since 6709 was 6709, checked in by huwlewis, 8 years ago

Update UKMO keywords within branch for local build

File size: 1.2 KB
Line 
1
2enum 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
23enum 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
39union var
40{
41  char * str;
42  struct kconfig * cfg;
43};
44
45struct 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
56struct 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
74extern struct kconfig * config;
75extern struct kconfig * clast;
76extern struct kconfig * koption;
77
78/*
79 * Prototypes
80 */
81void fix_conditionals(struct kconfig * scfg);   /* tkcond.c */
82void dump_tk_script(struct kconfig *scfg);   /* tkgen.c  */
Note: See TracBrowser for help on using the repository browser.