]> andersk Git - splint.git/blob - src/Headers/storeRefNode.h
Updated copyrights
[splint.git] / src / Headers / storeRefNode.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 */
5
6 typedef enum {
7   SRN_TERM, SRN_TYPE, SRN_OBJ, SRN_SPECIAL
8   } storeRefNodeKind;
9
10 typedef struct {
11   storeRefNodeKind kind;
12   union {
13     termNode term;         /* for SRN_TERM */
14     lclTypeSpecNode type;           /* for SRN_OBJ and SRN_TYPE */
15     /*@dependent@*/ sRef ref;          /* for SRN_SPECIAL */
16   } content;
17 } *storeRefNode;
18
19 extern storeRefNode storeRefNode_copy (storeRefNode p_x);
20
21 extern bool storeRefNode_isTerm (storeRefNode p_x);
22 # define storeRefNode_isTerm(x) ((x)->kind == SRN_TERM)
23
24 extern bool storeRefNode_isObj (storeRefNode p_x);
25 # define storeRefNode_isObj(x) ((x)->kind == SRN_OBJ)
26
27 extern bool storeRefNode_isType (storeRefNode p_x);
28 # define storeRefNode_isType(x) ((x)->kind == SRN_TYPE)
29
30 extern bool storeRefNode_isSpecial (storeRefNode p_x);
31 # define storeRefNode_isSpecial(x) ((x)->kind == SRN_SPECIAL)
32
33 extern void storeRefNode_free (/*@only@*/ /*@null@*/ storeRefNode p_x);
This page took 0.04212 seconds and 5 git commands to generate.