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