]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003. | |
3 | ** See ../LICENSE for license information. | |
4 | ** | |
5 | */ | |
6 | ||
7 | typedef enum { | |
8 | OPF_IF, OPF_ANYOP, OPF_MANYOP, OPF_ANYOPM, OPF_MANYOPM, | |
9 | OPF_MIDDLE, OPF_MMIDDLE, OPF_MIDDLEM, OPF_MMIDDLEM, | |
10 | OPF_BMIDDLE, OPF_BMMIDDLE, | |
11 | OPF_BMIDDLEM, OPF_BMMIDDLEM, | |
12 | OPF_SELECT, OPF_MAP, | |
13 | OPF_MSELECT, OPF_MMAP | |
14 | } opFormKind; | |
15 | ||
16 | typedef union { | |
17 | int middle; | |
18 | ltoken anyop; | |
19 | ltoken id; | |
20 | } opFormUnion; | |
21 | ||
22 | struct s_opFormNode { | |
23 | ltoken tok; /* keeps the openSym token */ | |
24 | opFormKind kind; | |
25 | opFormUnion content; | |
26 | unsigned long int key; | |
27 | ltoken close; /* keeps the closeSym token */ | |
28 | } ; | |
29 | ||
30 | extern /*@unused@*/ /*@only@*/ cstring | |
31 | opFormNode_unparse (/*@null@*/ opFormNode p_n) /*@*/ ; |