4 ** freeShallow: free exprData created from exprNode_effect calls.
5 ** All but the innermost storage is free'd.
8 /*@only@*/ exprData exprData_makeLiteral (/*@only@*/ cstring p_s);
10 /*@only@*/ exprData exprData_makeId (/*@temp@*/ uentry p_id);
12 /*@only@*/ exprData exprData_makePair (/*@keep@*/ exprNode p_a, /*@keep@*/ exprNode p_b);
15 /*static*/ void exprData_freeShallow (/*@only@*/ exprData data, exprKind kind);
17 /*static*/ void exprData_free (/*@only@*/ exprData data, exprKind kind);
19 /*static*/ /*@exposed@*/ exprNode exprData_getInitNode (exprData data) /*@*/;
21 /*static*/ /*@exposed@*/ idDecl exprData_getInitId (exprData data) /*@*/;
23 /*static*/ /*@exposed@*/ exprNode exprData_getOpA (exprData data) /*@*/;
25 /*static*/ /*@exposed@*/ exprNode exprData_getOpB (exprData data) /*@*/;
27 /*static*/ /*@observer@*/ lltok exprData_getOpTok (exprData data) /*@*/;
29 /*static*/ /*@exposed@*/ exprNode exprData_getPairA (exprData data) /*@*/;
31 /*static*/ /*@exposed@*/ exprNode exprData_getPairB (exprData data) /*@*/;
33 /*static*/ /*@exposed@*/ uentry exprData_getIterSname (exprData data) /*@*/;
35 /*static*/ /*@exposed@*/ exprNodeList exprData_getIterAlist (exprData data) /*@*/;
37 /*static*/ /*@exposed@*/ exprNode exprData_getIterBody (exprData data) /*@*/;
39 /*static*/ /*@exposed@*/ uentry exprData_getIterEname (exprData data) /*@*/;
41 /*static*/ /*@exposed@*/ exprNode exprData_getFcn (exprData data) /*@*/;
43 /*static*/ /*@exposed@*/ exprNodeList exprData_getArgs (exprData data) /*@*/;
45 /*static*/ /*@exposed@*/ exprNode exprData_getTriplePred (exprData data) /*@*/;
47 /*static*/ /*@exposed@*/ uentry exprData_getIterCallIter (exprData data) /*@*/;
49 /*static*/ /*@exposed@*/ exprNodeList
50 exprData_getIterCallArgs (exprData data) /*@*/;
52 /*static*/ /*@exposed@*/ exprNode exprData_getTripleInit (exprData data) /*@*/;
54 /*static*/ /*@exposed@*/ exprNode exprData_getTripleTrue (exprData data) /*@*/;
56 /*static*/ /*@exposed@*/ exprNode exprData_getTripleTest (exprData data) /*@*/;
58 /*static*/ /*@exposed@*/ exprNode exprData_getTripleFalse (exprData data) /*@*/;
60 /*static*/ /*@exposed@*/ exprNode exprData_getTripleInc (exprData data) /*@*/;
62 /*static*/ /*@exposed@*/ exprNode exprData_getFieldNode (exprData data) /*@*/;
64 /*static*/ /*@exposed@*/ cstring exprData_getFieldName (exprData data) /*@*/;
66 /*static*/ /*@observer@*/ lltok exprData_getUopTok (exprData data) /*@*/;
68 /*static*/ /*@exposed@*/ exprNode exprData_getUopNode (exprData data) /*@*/;
70 /*static*/ /*@exposed@*/ exprNode exprData_getCastNode (exprData data) /*@*/;
72 /*static*/ /*@observer@*/ lltok exprData_getCastTok (exprData data) /*@*/;
74 /*static*/ /*@exposed@*/ qtype exprData_getCastType (exprData data) /*@*/;
76 /*static*/ /*@exposed@*/ cstring exprData_getLiteral (exprData data) /*@*/;
78 /*static*/ /*@exposed@*/ cstring exprData_getId (exprData data) /*@*/;
80 /*static*/ /*@observer@*/ lltok exprData_getTok (exprData data) /*@*/;
82 /*static*/ /*@exposed@*/ qtype exprData_getType (exprData data) /*@*/ ;
84 /*static*/ /*@exposed@*/ qtype exprData_getOffsetType (exprData data) /*@*/ ;
86 /*static*/ /*@exposed@*/ cstringList exprData_getOffsetName (exprData data) /*@*/ ;
88 /*static*/ /*@exposed@*/ exprNode exprData_getSingle (exprData data);
90 /*static*/ /*@only@*/ exprData
91 exprData_makeOp (/*@keep@*/ exprNode a, /*@keep@*/ exprNode b, /*@keep@*/ lltok op);
93 /*static*/ /*@only@*/ exprData exprData_makeUop (/*@keep@*/ exprNode a, /*@keep@*/ lltok op);
95 /*static*/ /*@only@*/ exprData exprData_makeSingle (/*@only@*/ exprNode a);
97 /*static*/ /*@only@*/ exprData exprData_makeTok (/*@only@*/ lltok op);
99 /*static*/ /*@only@*/ exprData
100 exprData_makeIter (/*@exposed@*/ uentry sname, /*@keep@*/ exprNodeList args,
101 /*@keep@*/ exprNode body, /*@exposed@*/ uentry ename);
103 /*static*/ /*@only@*/ exprData exprData_makeTriple (/*@keep@*/ exprNode pred,
104 /*@keep@*/ exprNode tbranch,
105 /*@keep@*/ exprNode fbranch);
107 /*static*/ /*@only@*/ exprData exprData_makeCall (/*@keep@*/ exprNode fcn,
108 /*@keep@*/ exprNodeList args);
111 /*static*/ /*@only@*/ exprData exprData_makeIterCall (/*@dependent@*/ uentry iter,
112 /*@keep@*/ exprNodeList args);
114 /*static*/ /*@only@*/ exprData exprData_makeField (/*@keep@*/ exprNode rec,
115 /*@keep@*/ cstring field);
117 /*static*/ /*@only@*/ exprData exprData_makeOffsetof (/*@only@*/ qtype q,
118 /*@keep@*/ cstringList s);
121 /*static*/ /*@only@*/ exprData exprData_makeSizeofType (/*@only@*/ qtype q);
123 /*static*/ /*@only@*/ exprData
124 exprData_makeCast (/*@keep@*/ lltok tok, /*@keep@*/ exprNode e, /*@only@*/ qtype q);
126 /*static*/ /*@only@*/ exprData
127 exprData_makeInit (/*@keep@*/ idDecl t, /*@keep@*/ exprNode e);
130 /*static*/ /*@only@*/ exprData exprData_makeCond (/*@keep@*/ exprNode pred,
131 /*@keep@*/ exprNode ifclause,
132 /*@keep@*/ exprNode elseclause);
134 /*static*/ /*@only@*/ exprData exprData_makeFor (/*@keep@*/ exprNode init,
135 /*@keep@*/ exprNode pred,
136 /*@keep@*/ exprNode inc);