]> andersk Git - splint.git/blame - src/Headers/abstract.h
Updated html and word versions of the manual
[splint.git] / src / Headers / abstract.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 ABSTRACT_H
7# define ABSTRACT_H
8
885824d3 9/*
10** These two are needed in symtable.c
11*/
12
13/*@constant int HT_MAXINDEX; @*/
14# define HT_MAXINDEX 255
15
16/* simply use the lower-order bits by masking out the higher order bits */
17
18# include "ltoken.h"
19# include "ltokenList.h"
20
885824d3 21typedef enum
22{
23 TAG_ENUM, TAG_STRUCT, TAG_UNION, TAG_FWDSTRUCT, TAG_FWDUNION
24} tagKind;
25
26# include "importNode.h"
27# include "importNodeList.h"
28
29extern void checkBrackets (ltoken p_lb, ltoken p_rb);
30
31# include "sortList.h"
32# include "lsymbolList.h"
33
34# include "lsymbolSet.h"
35# include "sortSet.h"
36
37/*
38** added pointer indirects to all typedefs, except as noted
39** evs 94-01-05
40*/
41
42# include "pairNode.h"
43# include "pairNodeList.h"
44
28bf4b0b 45# include "declaratorNode.h"
46# include "declaratorNodeList.h"
47
885824d3 48# include "declaratorInvNode.h"
49# include "declaratorInvNodeList.h"
50
51# include "typeExpr.h" /* also defines abstDeclaratorNode */
52
885824d3 53# include "arrayQualNode.h"
54
55# include "varNode.h"
56# include "varNodeList.h"
57
58# include "quantifierNode.h"
59# include "quantifierNodeList.h"
60
61# include "storeRefNode.h"
62# include "storeRefNodeList.h"
63
64# include "modifyNode.h"
65
66# include "letDeclNode.h"
67# include "letDeclNodeList.h"
68
69# include "programNode.h"
70# include "programNodeList.h"
71
72# include "lclPredicateNode.h"
73# include "exposedNode.h"
74
75typedef enum {
76 TK_ABSTRACT, TK_EXPOSED, TK_UNION
77 } typeKind ;
78
79# include "CTypesNode.h"
80
81# include "initDeclNode.h"
82# include "initDeclNodeList.h"
83
84# include "constDeclarationNode.h"
85
86typedef enum {
87 QLF_NONE, QLF_CONST, QLF_VOLATILE
88 } qualifierKind;
89
90# include "varDeclarationNode.h"
91# include "varDeclarationNodeList.h"
92
93# include "globalList.h"
94
95# include "claimNode.h"
96
97# include "fcnNode.h"
98# include "fcnNodeList.h"
99
100# include "iterNode.h"
101
102# include "abstBodyNode.h"
103# include "abstractNode.h"
104
105# include "stDeclNode.h"
106# include "stDeclNodeList.h"
107
108# include "taggedUnionNode.h"
109# include "typeNode.h"
110
111# include "strOrUnionNode.h"
112# include "enumSpecNode.h"
113
114# include "lclTypeSpecNode.h"
115# include "typeNamePack.h"
116
117# include "typeNameNode.h"
118# include "typeNameNodeList.h" /* this is a list of typeNameNode's */
119
120# include "opFormNode.h"
121
122# include "quantifiedTermNode.h"
123
124typedef enum {
125 TRM_LITERAL, TRM_CONST, TRM_VAR,
126 TRM_ZEROARY, TRM_APPLICATION, TRM_QUANTIFIER,
127 TRM_UNCHANGEDALL, TRM_UNCHANGEDOTHERS,
128 TRM_SIZEOF
129 } termKIND;
130
131# include "sigNode.h"
132# include "sigNodeSet.h"
133
134# include "signNode.h"
135# include "nameNode.h"
136
137# include "lslOp.h"
138# include "lslOpSet.h"
139
140# include "replaceNode.h"
141# include "replaceNodeList.h"
142
143# include "renamingNode.h"
144
145# include "traitRefNode.h"
146# include "traitRefNodeList.h"
147
148# include "exportNode.h"
149# include "privateNode.h"
150
151# include "interfaceNode.h"
152# include "interfaceNodeList.h" /* note: interfaceList --> interfaceNodeList */
153
154# include "termNode.h"
155# include "termNodeList.h"
156# include "stmtNode.h"
157
158/* The following are for parsing LSL signatures */
159
160# include "sortSetList.h"
161# include "lslOpList.h"
162
163/* function prototypes for parsing LSL signatures */
164
165extern /*@only@*/ lslOp
166 makelslOpNode (/*@only@*/ /*@null@*/ nameNode p_name,
167 /*@dependent@*/ sigNode p_s);
168
169extern /*@only@*/ cstring lslOp_unparse (lslOp p_x);
170
171/*@notfunction@*/
172# define MASH(x,y) \
173 (/*@+enumint@*/ (((unsigned) ((x)+1) << 1) + (y)) & HT_MAXINDEX /*@=enumint@*/)
174
175extern void abstract_init (void);
176extern void resetImports (cstring p_current) ;
177
178extern interfaceNodeList
179 consInterfaceNode (/*@only@*/ interfaceNode p_n, /*@returned@*/ interfaceNodeList p_ns);
180
181/* evs 8 Sept 1993 changed to importNodeList */
182extern /*@only@*/ interfaceNode
183 makeInterfaceNodeImports (/*@only@*/ importNodeList p_x);
184
185extern /*@only@*/ nameNode
186 makeNameNodeForm (/*@only@*/ /*@null@*/ opFormNode p_opform) /*@*/ ;
187extern /*@only@*/ nameNode
188 makeNameNodeId (/*@only@*/ ltoken p_opid) /*@*/ ;
189extern /*@only@*/ interfaceNode
190 makeInterfaceNodeUses (/*@only@*/ traitRefNodeList p_x) /*@*/ ;
191extern /*@only@*/ interfaceNode
192 interfaceNode_makeConst (/*@only@*/ constDeclarationNode p_x) /*@*/ ;
193extern /*@only@*/ interfaceNode
194 interfaceNode_makeVar (/*@only@*/ varDeclarationNode p_x) /*@*/ ;
195extern /*@only@*/ interfaceNode
196 interfaceNode_makeType (/*@only@*/ typeNode p_x) /*@*/ ;
197extern /*@only@*/ interfaceNode
198 interfaceNode_makeFcn (/*@only@*/ fcnNode p_x) /*@*/ ;
199extern /*@only@*/ interfaceNode
200 interfaceNode_makeClaim (/*@only@*/ claimNode p_x) /*@*/ ;
201extern /*@only@*/ interfaceNode interfaceNode_makeIter (/*@only@*/ iterNode p_x) /*@*/ ;
202extern /*@only@*/ interfaceNode interfaceNode_makePrivConst(/*@only@*/ constDeclarationNode p_x) /*@*/ ;
203extern /*@only@*/ interfaceNode
204 interfaceNode_makePrivVar(/*@only@*/ varDeclarationNode p_x) /*@*/ ;
205extern /*@only@*/ interfaceNode
206 interfaceNode_makePrivType(/*@only@*/ typeNode p_x) /*@*/ ;
207extern /*@only@*/ interfaceNode
208 interfaceNode_makePrivFcn(/*@only@*/ fcnNode p_x) /*@*/ ;
209extern /*@only@*/ typeNode makeAbstractTypeNode (/*@only@*/ abstractNode p_x) /*@*/ ;
210extern /*@only@*/ typeNode makeExposedTypeNode (/*@only@*/ exposedNode p_x) /*@*/ ;
211
212extern /*@only@*/ traitRefNode
213 makeTraitRefNode(/*@only@*/ ltokenList p_fl, /*@null@*/ /*@only@*/ renamingNode p_r) /*@*/ ;
214
215extern /*@only@*/ cstring printLeaves2 (ltokenList p_f) /*@*/ ;
216extern /*@only@*/ cstring printRawLeaves2 (ltokenList p_f) /*@*/ ;
217extern /*@only@*/ cstring sigNode_unparseText (/*@null@*/ sigNode p_n) /*@*/ ;
218
219extern /*@only@*/ renamingNode
220 makeRenamingNode (/*@only@*/ typeNameNodeList p_n,
221 /*@only@*/ replaceNodeList p_r) /*@*/ ;
222extern /*@only@*/ replaceNode
223 makeReplaceNode (/*@only@*/ ltoken p_t, /*@only@*/ typeNameNode p_tn, bool p_is_ctype,
224 /*@only@*/ ltoken p_ct,
225 /*@null@*/ /*@only@*/ nameNode p_nn,
226 /*@null@*/ /*@only@*/ sigNode p_sn) /*@*/ ;
227
228extern /*@only@*/ sigNode
229 makesigNode (/*@only@*/ ltoken p_t, /*@only@*/ ltokenList p_domain, /*@only@*/ ltoken p_range) /*@*/ ;
230
231extern /*@only@*/ replaceNode
232 makeReplaceNameNode (/*@only@*/ ltoken p_t, /*@only@*/ typeNameNode p_tn,
233 /*@only@*/ nameNode p_nn) /*@*/ ;
234
235extern /*@only@*/ opFormNode
236 makeOpFormNode(/*@only@*/ ltoken p_t, opFormKind p_k,
237 opFormUnion p_u, /*@only@*/ ltoken p_close) /*@*/ ;
238
239extern /*@only@*/ typeNameNode
240 makeTypeNameNode (bool p_isObj, /*@only@*/ lclTypeSpecNode p_t,
241 /*@only@*/ abstDeclaratorNode p_n) /*@*/ ;
242extern /*@only@*/ typeNameNode
243 makeTypeNameNodeOp (/*@only@*/ opFormNode p_n) /*@*/ ;
244
245extern /*@only@*/ lclTypeSpecNode
246 makeLclTypeSpecNodeConj (/*@only@*/ /*@null@*/ lclTypeSpecNode p_a,
247 /*@only@*/ /*@null@*/ lclTypeSpecNode p_b) /*@*/ ;
248
249extern /*@only@*/ lclTypeSpecNode
250 makeLclTypeSpecNodeType(/*@only@*/ /*@null@*/ CTypesNode p_x) /*@*/ ;
251
252extern /*@only@*/ lclTypeSpecNode
253 makeLclTypeSpecNodeSU(/*@only@*/ /*@null@*/ strOrUnionNode p_x) /*@*/ ;
254
255extern /*@only@*/ lclTypeSpecNode
256 makeLclTypeSpecNodeEnum(/*@only@*/ /*@null@*/ enumSpecNode p_x) /*@*/ ;
257
258extern /*@only@*/ lclTypeSpecNode
259 lclTypeSpecNode_addQual (/*@only@*/ lclTypeSpecNode p_n, qual p_q)
260 /*@modifies p_n@*/ ;
261
262extern /*@only@*/ enumSpecNode
263 makeEnumSpecNode (/*@only@*/ ltoken p_t, /*@only@*/ ltoken p_optTagId, /*@owned@*/ ltokenList p_enums);
264
265extern /*@only@*/ enumSpecNode
266 makeEnumSpecNode2 (/*@only@*/ ltoken p_t, /*@only@*/ ltoken p_tagid);
267
268extern /*@only@*/ strOrUnionNode
269 makestrOrUnionNode (/*@only@*/ ltoken p_str, suKind p_k,
270 /*@only@*/ ltoken p_opttagid, /*@only@*/ stDeclNodeList p_x);
271
272extern /*@only@*/ strOrUnionNode
273 makeForwardstrOrUnionNode (/*@only@*/ ltoken p_str, suKind p_k,
274 /*@only@*/ ltoken p_tagid);
275
276extern /*@only@*/ stDeclNode
277 makestDeclNode (/*@only@*/ lclTypeSpecNode p_s,
278 /*@only@*/ declaratorNodeList p_x);
279extern /*@only@*/ constDeclarationNode
280 makeConstDeclarationNode (/*@only@*/ lclTypeSpecNode p_t,
281 /*@only@*/ initDeclNodeList p_decls);
282extern /*@only@*/ varDeclarationNode
283 makeVarDeclarationNode (/*@only@*/ lclTypeSpecNode p_t,
284 /*@only@*/ initDeclNodeList p_x,
285 bool p_isGlobal, bool p_isPrivate);
286
287extern varDeclarationNode makeFileSystemNode (void);
288extern varDeclarationNode makeInternalStateNode (void);
289
290extern /*@only@*/ initDeclNode
291 makeInitDeclNode (/*@only@*/ declaratorNode p_d, /*@null@*/ /*@only@*/ termNode p_x);
292
293extern /*@only@*/ abstractNode
294 makeAbstractNode (/*@only@*/ ltoken p_t, /*@only@*/ ltoken p_name,
295 bool p_isMutable, bool p_isRefCounted,
296 /*@only@*/ abstBodyNode p_a);
297
298extern /*@unused@*/ /*@only@*/ cstring abstBodyNode_unparseExposed (abstBodyNode p_n);
299
300extern /*@only@*/ exposedNode
301 makeExposedNode (/*@only@*/ ltoken p_t, /*@only@*/ lclTypeSpecNode p_s,
302 /*@only@*/ declaratorInvNodeList p_d);
303
304extern /*@only@*/ declaratorInvNode
305 makeDeclaratorInvNode (/*@only@*/ declaratorNode p_d,
306 /*@only@*/ abstBodyNode p_b);
307
308extern /*@only@*/ fcnNode
309 fcnNode_fromDeclarator (/*@only@*/ /*@null@*/ lclTypeSpecNode p_t,
310 /*@only@*/ declaratorNode p_d);
311
312extern /*@only@*/ fcnNode
313 makeFcnNode (qual p_specQual,
314 /*@only@*/ /*@null@*/ lclTypeSpecNode p_t,
315 /*@only@*/ declaratorNode p_d,
316 /*@only@*/ /*@null@*/ globalList p_g,
317 /*@only@*/ /*@null@*/ varDeclarationNodeList p_privateinits,
318 /*@only@*/ /*@null@*/ letDeclNodeList p_lets,
319 /*@only@*/ /*@null@*/ lclPredicateNode p_checks,
320 /*@only@*/ /*@null@*/ lclPredicateNode p_requires,
321 /*@only@*/ /*@null@*/ modifyNode p_m,
322 /*@only@*/ /*@null@*/ lclPredicateNode p_ensures,
323 /*@only@*/ /*@null@*/ lclPredicateNode p_claims);
324
325extern /*@only@*/ iterNode
326 makeIterNode (/*@only@*/ ltoken p_id, /*@only@*/ paramNodeList p_p);
327
328extern /*@only@*/ claimNode
329 makeClaimNode (/*@only@*/ ltoken p_id,
330 /*@only@*/ paramNodeList p_p,
331 /*@only@*/ /*@null@*/ globalList p_g,
332 /*@only@*/ /*@null@*/ letDeclNodeList p_lets,
333 /*@only@*/ /*@null@*/ lclPredicateNode p_requires,
334 /*@only@*/ /*@null@*/ programNode p_b,
335 /*@only@*/ /*@null@*/ lclPredicateNode p_ensures);
336
337extern /*@only@*/ lclPredicateNode
338 makeIntraClaimNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
339
340extern /*@only@*/ lclPredicateNode
341 makeRequiresNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
342
343extern /*@only@*/ lclPredicateNode
344 makeChecksNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
345
346extern /*@only@*/ lclPredicateNode
347 makeEnsuresNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
348
349extern /*@only@*/ lclPredicateNode
350 makeLclPredicateNode (/*@only@*/ ltoken p_t, /*@only@*/ termNode p_n,
351 lclPredicateKind p_k);
352
353extern /*@only@*/ stmtNode
354 makeStmtNode (/*@only@*/ ltoken p_varId,
355 /*@only@*/ ltoken p_fcnId, /*@only@*/ termNodeList p_v);
356
357extern /*@only@*/ programNode
358 makeProgramNodeAction (/*@only@*/ programNodeList p_x, actionKind p_k);
359
360extern /*@only@*/ programNode
361 makeProgramNode (/*@only@*/ stmtNode p_x);
362
363extern /*@only@*/ storeRefNode
364 makeStoreRefNodeTerm (/*@only@*/ termNode p_t);
365
366extern /*@only@*/ storeRefNode
367 makeStoreRefNodeType (/*@only@*/ lclTypeSpecNode p_t, bool p_isObj);
368
369extern /*@only@*/ modifyNode
370 makeModifyNodeSpecial (/*@only@*/ ltoken p_t, bool p_modifiesNothing);
371
372extern storeRefNode makeStoreRefNodeInternal (void);
373extern storeRefNode makeStoreRefNodeSystem (void);
374
375extern /*@only@*/ modifyNode
376 makeModifyNodeRef (/*@only@*/ ltoken p_t, /*@only@*/ storeRefNodeList p_y);
377
378extern /*@only@*/ letDeclNode
379 makeLetDeclNode(/*@only@*/ ltoken p_varid, /*@null@*/ /*@only@*/ lclTypeSpecNode p_t,
380 /*@only@*/ termNode p_term);
381
382extern /*@only@*/ abstBodyNode
383 makeAbstBodyNode (/*@only@*/ ltoken p_t, /*@only@*/ fcnNodeList p_f);
384
385extern /*@only@*/ abstBodyNode
386 makeExposedBodyNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_inv);
387
388extern /*@only@*/ abstBodyNode
389 makeAbstBodyNode2 (/*@only@*/ ltoken p_t, /*@only@*/ ltokenList p_ops);
390
391extern paramNode markYieldParamNode (/*@returned@*/ paramNode p_p);
392
393extern /*@only@*/ arrayQualNode
394 makeArrayQualNode (/*@only@*/ ltoken p_t, /*@null@*/ /*@only@*/ termNode p_term);
395
396extern /*@only@*/ quantifierNode
397 makeQuantifierNode (/*@only@*/ varNodeList p_v, /*@only@*/ ltoken p_quant);
398
399extern /*@only@*/ varNode
400 makeVarNode (/*@only@*/ ltoken p_varid, bool p_isObj, /*@only@*/ lclTypeSpecNode p_t);
401
402extern /*@only@*/ typeExpr makeTypeExpr (/*@only@*/ ltoken p_t);
403
404extern /*@only@*/ declaratorNode
405 makeDeclaratorNode (/*@only@*/ typeExpr p_t);
406
407extern /*@only@*/ typeExpr
408 makeFunctionNode (/*@null@*/ /*@only@*/ typeExpr p_x, /*@only@*/ paramNodeList p_p);
409
410extern /*@only@*/ typeExpr
411 makePointerNode (/*@only@*/ ltoken p_star, /*@null@*/ /*@only@*/ /*@returned@*/ typeExpr p_x);
412
413extern /*@only@*/ typeExpr
414 makeArrayNode (/*@only@*/ /*@returned@*/ /*@null@*/ typeExpr p_x,
415 /*@only@*/ arrayQualNode p_a);
416
417extern /*@only@*/ paramNode
418 makeParamNode (/*@only@*/ lclTypeSpecNode p_t, /*@only@*/ typeExpr p_d);
419
420extern /*@only@*/ termNode
421 makeIfTermNode (/*@only@*/ ltoken p_ift, /*@only@*/ termNode p_ifn,
422 /*@only@*/ ltoken p_thent, /*@only@*/ termNode p_thenn,
423 /*@only@*/ ltoken p_elset, /*@only@*/ termNode p_elsen);
424
425extern /*@only@*/ termNode
426 makeQuantifiedTermNode (/*@only@*/ quantifierNodeList p_qn,
427 /*@only@*/ ltoken p_open,
428 /*@only@*/ termNode p_t, /*@only@*/ ltoken p_close);
429
430extern /*@only@*/ termNode
431 makeInfixTermNode (/*@only@*/ termNode p_x, /*@only@*/ ltoken p_op,
432 /*@only@*/ termNode p_y);
433
434extern /*@only@*/ termNode
435 makePostfixTermNode (/*@returned@*/ /*@only@*/ termNode p_secondary,
436 /*@only@*/ ltokenList p_postfixops);
437
438extern /*@only@*/ termNode
439 makePostfixTermNode2 (/*@only@*/ /*@returned@*/ termNode p_secondary,
440 /*@only@*/ ltoken p_postfixop);
441
442extern /*@only@*/ termNode
443 makePrefixTermNode (/*@only@*/ ltoken p_op, /*@only@*/ termNode p_arg);
444
445extern /*@exposed@*/ termNode
446 CollapseInfixTermNode (/*@returned@*/ termNode p_secondary, termNodeList p_infix);
447
448extern /*@only@*/ termNode
449 makeMatchedNode (/*@only@*/ ltoken p_open,
450 /*@only@*/ termNodeList p_args, /*@only@*/ ltoken p_close);
451
452extern /*@only@*/ termNode
453 makeSqBracketedNode (/*@only@*/ ltoken p_lbracket,
454 /*@only@*/ termNodeList p_args,
455 /*@only@*/ ltoken p_rbracket);
456
457extern /*@only@*/ termNode
458 updateSqBracketedNode (/*@null@*/ /*@only@*/ termNode p_left,
459 /*@only@*/ /*@returned@*/ termNode p_t,
460 /*@null@*/ /*@only@*/ termNode p_right);
461
462extern termNode
463 updateMatchedNode (/*@null@*/ /*@only@*/ termNode p_left, /*@returned@*/ termNode p_t,
464 /*@null@*/ /*@only@*/ termNode p_right);
465
466extern /*@only@*/ termNode
467 makeSimpleTermNode (/*@only@*/ ltoken p_varid);
468extern /*@only@*/ termNode
469 makeSelectTermNode (/*@only@*/ termNode p_pri, /*@only@*/ ltoken p_select,
470 /*@dependent@*/ ltoken p_id);
471extern /*@only@*/ termNode
472 makeMapTermNode (/*@only@*/ termNode p_pri, /*@only@*/ ltoken p_map,
473 /*@dependent@*/ ltoken p_id);
474extern /*@only@*/ termNode
475 makeLiteralTermNode (/*@only@*/ ltoken p_tok, sort p_s);
476
477extern /*@only@*/ termNode
478 makeUnchangedTermNode1 (/*@only@*/ ltoken p_op, /*@only@*/ ltoken p_all);
479extern /*@only@*/ termNode
480 makeUnchangedTermNode2 (/*@only@*/ ltoken p_op, /*@only@*/ storeRefNodeList p_x);
481extern /*@only@*/ termNode
482 makeSizeofTermNode(/*@only@*/ ltoken p_op, /*@only@*/ lclTypeSpecNode p_type);
483extern /*@only@*/ termNode
484 makeOpCallTermNode (/*@only@*/ ltoken p_op, /*@only@*/ ltoken p_open,
485 /*@only@*/ termNodeList p_args, /*@only@*/ ltoken p_close);
486
487extern sort sigNode_rangeSort (sigNode p_sig);
488
489extern /*@only@*/ sortList sigNode_domain (sigNode p_sig);
490
491extern bool sameNameNode (/*@null@*/ nameNode p_n1, /*@null@*/ nameNode p_n2);
492
493extern /*@only@*/ CTypesNode
494 makeCTypesNode (/*@null@*/ /*@only@*/ CTypesNode p_ctypes, /*@only@*/ ltoken p_ct);
495
496extern /*@only@*/ CTypesNode
497 makeTypeSpecifier (/*@only@*/ ltoken p_typedefname) ;
498
499extern bool sigNode_equal (sigNode p_n1, sigNode p_n2);
500
501extern sort lclTypeSpecNode2sort(lclTypeSpecNode p_type);
502
503extern sort typeExpr2ptrSort(sort p_base, /*@null@*/ typeExpr p_t);
504
505/* should be tagKind, instead of int */
506extern lsymbol checkAndEnterTag(tagKind p_k, /*@only@*/ ltoken p_opttagid);
507extern void enteringFcnScope(lclTypeSpecNode p_t, declaratorNode p_d, globalList p_g);
508extern void enteringClaimScope (paramNodeList p_params, globalList p_g);
509
510extern /*@observer@*/ ltoken nameNode_errorToken (/*@null@*/ nameNode p_nn);
511extern /*@observer@*/ ltoken termNode_errorToken (/*@null@*/ termNode p_n);
512extern /*@observer@*/ ltoken lclTypeSpecNode_errorToken (/*@null@*/ lclTypeSpecNode p_t);
513
514extern opFormUnion opFormUnion_createAnyOp (ltoken p_t);
515extern opFormUnion opFormUnion_createMiddle (int p_middle);
516extern void LCLBuiltins (void);
517extern /*@only@*/ paramNode paramNode_elipsis (void);
518extern termNodeList
519 pushInfixOpPartNode (/*@returned@*/ termNodeList p_x, /*@only@*/ ltoken p_op,
520 /*@only@*/ termNode p_secondary);
521extern /*@only@*/ cstring declaratorNode_unparseCode (declaratorNode p_x);
522
523extern /*@only@*/ cstring typeExpr_name (/*@null@*/ typeExpr p_x);
524
525extern void setExposedType (lclTypeSpecNode p_s);
526extern void declareForwardType (declaratorNode p_declare);
527
528extern /*@only@*/ declaratorNode declaratorNode_copy (declaratorNode p_x);
529
530extern bool lslOp_equal (lslOp p_x, lslOp p_y);
531
532extern void lsymbol_setbool (lsymbol p_s) /*@modifies internalState@*/ ;
533extern lsymbol lsymbol_getbool (void);
534extern lsymbol lsymbol_getBool (void);
535extern lsymbol lsymbol_getTRUE (void);
536extern lsymbol lsymbol_getFALSE (void);
537
538
539# else
540# error "Multiple include"
541# endif
This page took 0.59119 seconds and 5 git commands to generate.