]> andersk Git - splint.git/blob - src/Headers/paramNode.h
addbf1360b2e2d76c2e04e4159d1c67f5420e16e
[splint.git] / src / Headers / paramNode.h
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001.
3 ** See ../LICENSE for license information.
4 **
5 */
6 /*
7 ** paramNode.h
8 */
9
10 # ifndef PARAMNODEH
11 # define PARAMNODEH
12
13 typedef enum { PNORMAL, PYIELD, PELIPSIS } paramkind ;  
14 /* add PREF later?   PYIELD is for iterators only (~ POUT) */
15
16 typedef struct {
17   /*@null@*/ lclTypeSpecNode type;
18   /*@null@*/ struct s_typeExpr *paramdecl;
19   paramkind kind;
20 } *paramNode;
21
22 extern void paramNode_free (/*@only@*/ /*@null@*/ paramNode p_x);
23
24 extern /*@null@*/ paramNode paramNode_copy (/*@null@*/ paramNode p_p);
25 extern /*@only@*/ cstring paramNode_unparse (paramNode p_x);
26 extern /*@only@*/ cstring paramNode_unparseComments (paramNode p_x);
27
28 extern bool paramNode_isElipsis (paramNode p_p);
29 extern bool paramNode_isYield (paramNode p_p);
30
31 # define paramNode_isElipsis(p) ((p)->kind == PELIPSIS)
32 # define paramNode_isYield(p) ((p)->kind == PYIELD)
33
34 # else
35 # error "Multiple include"
36 # endif
37
38
This page took 0.02518 seconds and 3 git commands to generate.