Various minor fixes for compiler/linter (other then splint itself) warnings.
[splint-patched.git] / src / Headers / typeExpr.h
blob86537bc43f9ad34ca3fcdd7598430456dfd8ee1b
1 /*
2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
4 */
5 /*
6 ** typeExpr.h
7 */
9 typedef enum
11 TEXPR_BASE, TEXPR_PTR, TEXPR_ARRAY, TEXPR_FCN
12 } typeExprKind;
14 struct s_typeExpr
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 } ;
33 extern /*@only@*/ cstring typeExpr_unparse (/*@null@*/ typeExpr p_x);
35 /* like a declaratorNode but without varId */
36 typedef typeExpr abstDeclaratorNode;