]> andersk Git - splint.git/blame - src/Headers/typeExpr.h
Fixed some splintme errors from the previous code change.
[splint.git] / src / Headers / typeExpr.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** typeExpr.h
7*/
8
9typedef enum
10{
11 TEXPR_BASE, TEXPR_PTR, TEXPR_ARRAY, TEXPR_FCN
12 } typeExprKind;
13
28bf4b0b 14struct s_typeExpr
885824d3 15{
16 int wrapped; /* number of balanced parentheses around this program node */
17 typeExprKind kind; /* different kinds of type constructors */
18 union {
19 ltoken base;
20 /*@null@*/ typeExpr pointer;
21 struct {
22 /*@null@*/ typeExpr elementtype;
23 /*@null@*/ termNode size;
24 } array;
25 struct {
26 /*@null@*/ typeExpr returntype; /* not really ... return-part maybe */
27 paramNodeList args;
28 } function;
29 } content;
30 sort sort;
31} ;
32
33extern void typeExpr_free (/*@only@*/ /*@null@*/ typeExpr p_x);
34extern /*@only@*/ cstring typeExpr_unparse (/*@null@*/ typeExpr p_x);
35extern /*@only@*/ cstring typeExpr_unparseNoBase (/*@null@*/ typeExpr p_x);
36
37/* like a declaratorNode but without varId */
38typedef typeExpr abstDeclaratorNode;
39
40extern void abstDeclaratorNode_free (/*@only@*/ /*@null@*/ abstDeclaratorNode p_x);
41# define abstDeclaratorNode_free(x) typeExpr_free(x);
42
43
This page took 0.083267 seconds and 5 git commands to generate.