]> andersk Git - splint.git/blame - src/Headers/ekind.h
noexpand always false.
[splint.git] / src / Headers / ekind.h
CommitLineData
885824d3 1/*
c0de361f 2** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
885824d3 3** See ../LICENSE for license information.
4**
5*/
6# ifndef EKIND_H
7# define EKIND_H
8
9/* need to maintain compatibility with libraries */
10
11immut_typedef enum {
12 KINVALID = -1,
13 KDATATYPE = 0, /* must dump datatypes first, so ctypes are ok */
14 KCONST, KENUMCONST,
15 KVAR, KFCN, KITER, KENDITER,
16 KSTRUCTTAG, KUNIONTAG, KENUMTAG,
17 KELIPSMARKER
18 } ekind;
19
20/*@constant ekind KELAST;@*/
21# define KELAST KELIPSMARKER
22
28bf4b0b 23/*@constant int KGLOBALMARKER;@*/
24# define KGLOBALMARKER ((int) KELAST + 1)
25
885824d3 26extern bool ekind_equal (ekind, ekind) /*@*/ ;
27# define ekind_equal(e1, e2) ((e1) == (e2))
28
29extern ekind ekind_fromInt (int p_i) /*@*/ ;
30extern int ekind_toInt (ekind p_k) /*@*/ ;
31
32extern bool ekind_isFunction (ekind p_k) /*@*/ ;
33# define ekind_isFunction(k) ((k) == KFCN)
34
35extern /*@unused@*/ bool ekind_isVariable (ekind p_k) /*@*/ ;
36# define ekind_isVariable(k) ((k) == KVAR)
37
38extern bool ekind_isElipsis (ekind p_k) /*@*/ ;
39# define ekind_isElipsis(k) ((k) == KELIPSMARKER)
40
41extern bool ekind_isConst (ekind p_k) /*@*/ ;
42# define ekind_isConst(k) ((k) == KCONST)
43
44extern bool ekind_isEnumConst (ekind p_k) /*@*/ ;
45# define ekind_isEnumConst(k) ((k) == KENUMCONST)
46
47# define ekind_toInt(k) ((int)(k))
48
49/*@constant ekind ekind_variable; @*/
50# define ekind_variable ((ekind)KVAR)
51
52/*@constant ekind ekind_function; @*/
53# define ekind_function ((ekind)KFCN)
54
55extern /*@observer@*/ cstring ekind_capName (ekind p_k) /*@*/ ;
56extern /*@observer@*/ cstring ekind_unparse (ekind p_k) /*@*/ ;
57extern /*@observer@*/ cstring ekind_unparseLong (ekind p_k) /*@*/ ;
58
59# else
60# error "Multiple include"
61# endif
This page took 0.088694 seconds and 5 git commands to generate.