2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
7 SRN_TERM, SRN_TYPE, SRN_OBJ, SRN_SPECIAL
11 storeRefNodeKind kind;
13 termNode term; /* for SRN_TERM */
14 lclTypeSpecNode type; /* for SRN_OBJ and SRN_TYPE */
15 /*@dependent@*/ sRef ref; /* for SRN_SPECIAL */
19 extern storeRefNode storeRefNode_copy (storeRefNode p_x);
21 extern bool storeRefNode_isTerm (storeRefNode p_x);
22 # define storeRefNode_isTerm(x) ((x)->kind == SRN_TERM)
24 extern bool storeRefNode_isObj (storeRefNode p_x);
25 # define storeRefNode_isObj(x) ((x)->kind == SRN_OBJ)
27 extern bool storeRefNode_isType (storeRefNode p_x);
28 # define storeRefNode_isType(x) ((x)->kind == SRN_TYPE)
30 extern bool storeRefNode_isSpecial (storeRefNode p_x);
31 # define storeRefNode_isSpecial(x) ((x)->kind == SRN_SPECIAL)
33 extern void storeRefNode_free (/*@only@*/ /*@null@*/ storeRefNode p_x);