]> andersk Git - splint.git/blob - src/Headers/termNode.h
Initial revision
[splint.git] / src / Headers / termNode.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000.
3 ** See ../LICENSE for license information.
4 */
5
6 struct _termNode 
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 */
16   /*@null@*/ struct _nameNode *name;
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);
This page took 0.032836 seconds and 5 git commands to generate.