]> andersk Git - splint.git/blob - src/Headers/mtContextNode.h
Merged code tree with Dave Evans's version. Many changes to numberous to list....
[splint.git] / src / Headers / mtContextNode.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** mtContextNode.h
8 */
9
10 # ifndef MTCONTEXTNODE_H
11 # define MTCONTEXTNODE_H
12
13 typedef enum
14 {
15   MTC_ANY, MTC_PARAM, MTC_REFERENCE, MTC_CLAUSE
16 } mtContextKind ;
17
18 struct s_mtContextNode {
19   mtContextKind context;
20   ctype type; /* This state only applies to types matching. */
21 } ;
22
23 /*@constant null mtContextNode mtContextNode_undefined@*/
24 # define mtContextNode_undefined ((mtContextNode) 0)
25
26 extern /*@falsenull@*/ bool mtContextNode_isDefined (mtContextNode p_s) /*@*/ ;
27 # define mtContextNode_isDefined(s) ((s) != mtContextNode_undefined)
28
29 extern cstring mtContextNode_unparse (mtContextNode) /*@*/ ;
30
31 extern mtContextNode mtContextNode_createAny (void) /*@*/ ;
32 extern mtContextNode mtContextNode_createParameter (ctype) /*@*/ ;
33 extern mtContextNode mtContextNode_createReference (ctype) /*@*/ ;
34 extern mtContextNode mtContextNode_createClause (ctype) /*@*/ ;
35
36 extern void mtContextNode_free (/*@only@*/ mtContextNode) ;
37
38 extern bool mtContextNode_isRef (mtContextNode) /*@*/;
39 extern bool mtContextNode_isParameter (mtContextNode) /*@*/;
40 extern bool mtContextNode_isClause (mtContextNode) /*@*/;
41
42 extern bool mtContextNode_matchesEntry (mtContextNode, uentry) /*@*/ ;
43 extern bool mtContextNode_matchesRef (mtContextNode, sRef) /*@*/ ;
44
45 extern bool mtContextNode_matchesRefStrict (mtContextNode, sRef) /*@*/ ;
46    /* Doesn't allow matches with unknown type. */
47
48 # else
49 # error "Multiple include"
50 # endif
This page took 0.037039 seconds and 5 git commands to generate.