]>
Commit | Line | Data |
---|---|---|
885824d3 | 1 | /* |
28bf4b0b | 2 | ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. |
885824d3 | 3 | ** See ../LICENSE for license information. |
4 | */ | |
5 | ||
28bf4b0b | 6 | struct s_termNode |
885824d3 | 7 | { |
8 | int wrapped; /* the number of matched parentheses around this term */ | |
9 | termKIND kind; | |
10 | sort sort; | |
11 | /*@reldef@*/ sort given; /* if term has a given sort */ | |
12 | sortSet possibleSorts; | |
13 | bool error_reported; /* to prevent multiple sort checking error messages */ | |
14 | lslOpSet possibleOps; /* only for TRM_ZEROARY and TRM_APPLICATION */ | |
15 | /* should make a union but skip this for now */ | |
28bf4b0b | 16 | /*@null@*/ nameNode name; |
885824d3 | 17 | termNodeList args; /* in order */ |
18 | /*@reldef@*/ ltoken literal; /* for TRM_LITERAL, TRM_UNCHANGEDALL, | |
19 | TRM_SIZEOF, LCLvariableKIND, | |
20 | TRM_CONST, TRM_ZEROARY */ | |
21 | /*@reldef@*/ storeRefNodeList unchanged; /* only for TRM_UNCHANGEDOTHERS */ | |
22 | /*@reldef@*/ quantifiedTermNode quantified; /* only for TRM_QUANTIFIER */ | |
23 | /*@reldef@*/ lclTypeSpecNode sizeofField; /* only for TRM_SIZEOF */ | |
24 | } ; | |
25 | ||
26 | extern /*@falsenull@*/ bool termNode_isDefined (/*@null@*/ termNode p_t) /*@*/ ; | |
27 | # define termNode_isDefined(t) ((t) != NULL) | |
28 | ||
29 | extern termNode termNode_copySafe (termNode p_t) /*@*/ ; | |
30 | extern cstring termNode_unparse (/*@null@*/ termNode p_n) /*@*/ ; | |
31 | extern void termNode_free (/*@only@*/ /*@null@*/ termNode p_t); |