2 ** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2003.
3 ** See ../LICENSE for license information.
10 ** These two are needed in symtable.c
13 /*@constant int HT_MAXINDEX; @*/
14 # define HT_MAXINDEX 255
16 /* simply use the lower-order bits by masking out the higher order bits */
19 # include "ltokenList.h"
23 TAG_ENUM, TAG_STRUCT, TAG_UNION, TAG_FWDSTRUCT, TAG_FWDUNION
26 # include "importNode.h"
27 # include "importNodeList.h"
29 extern void checkBrackets (ltoken p_lb, ltoken p_rb);
31 # include "sortList.h"
32 # include "lsymbolList.h"
34 # include "lsymbolSet.h"
38 ** added pointer indirects to all typedefs, except as noted
42 # include "pairNode.h"
43 # include "pairNodeList.h"
45 # include "declaratorNode.h"
46 # include "declaratorNodeList.h"
48 # include "declaratorInvNode.h"
49 # include "declaratorInvNodeList.h"
51 # include "typeExpr.h" /* also defines abstDeclaratorNode */
53 # include "arrayQualNode.h"
56 # include "varNodeList.h"
58 # include "quantifierNode.h"
59 # include "quantifierNodeList.h"
61 # include "storeRefNode.h"
62 # include "storeRefNodeList.h"
64 # include "modifyNode.h"
66 # include "letDeclNode.h"
67 # include "letDeclNodeList.h"
69 # include "programNode.h"
70 # include "programNodeList.h"
72 # include "lclPredicateNode.h"
73 # include "exposedNode.h"
76 TK_ABSTRACT, TK_EXPOSED, TK_UNION
79 # include "CTypesNode.h"
81 # include "initDeclNode.h"
82 # include "initDeclNodeList.h"
84 # include "constDeclarationNode.h"
87 QLF_NONE, QLF_CONST, QLF_VOLATILE
90 # include "varDeclarationNode.h"
91 # include "varDeclarationNodeList.h"
93 # include "globalList.h"
95 # include "claimNode.h"
98 # include "fcnNodeList.h"
100 # include "iterNode.h"
102 # include "abstBodyNode.h"
103 # include "abstractNode.h"
105 # include "stDeclNode.h"
106 # include "stDeclNodeList.h"
108 # include "taggedUnionNode.h"
109 # include "typeNode.h"
111 # include "strOrUnionNode.h"
112 # include "enumSpecNode.h"
114 # include "lclTypeSpecNode.h"
115 # include "typeNamePack.h"
117 # include "typeNameNode.h"
118 # include "typeNameNodeList.h" /* this is a list of typeNameNode's */
120 # include "opFormNode.h"
122 # include "quantifiedTermNode.h"
125 TRM_LITERAL, TRM_CONST, TRM_VAR,
126 TRM_ZEROARY, TRM_APPLICATION, TRM_QUANTIFIER,
127 TRM_UNCHANGEDALL, TRM_UNCHANGEDOTHERS,
131 # include "sigNode.h"
132 # include "sigNodeSet.h"
134 # include "signNode.h"
135 # include "nameNode.h"
138 # include "lslOpSet.h"
140 # include "replaceNode.h"
141 # include "replaceNodeList.h"
143 # include "renamingNode.h"
145 # include "traitRefNode.h"
146 # include "traitRefNodeList.h"
148 # include "exportNode.h"
149 # include "privateNode.h"
151 # include "interfaceNode.h"
152 # include "interfaceNodeList.h" /* note: interfaceList --> interfaceNodeList */
154 # include "termNode.h"
155 # include "termNodeList.h"
156 # include "stmtNode.h"
158 /* The following are for parsing LSL signatures */
160 # include "sortSetList.h"
161 # include "lslOpList.h"
163 /* function prototypes for parsing LSL signatures */
165 extern /*@only@*/ lslOp
166 makelslOpNode (/*@only@*/ /*@null@*/ nameNode p_name,
167 /*@dependent@*/ sigNode p_s);
169 extern /*@only@*/ cstring lslOp_unparse (lslOp p_x);
173 (/*@+enumint@*/ (((unsigned) ((x)+1) << 1) + (y)) & HT_MAXINDEX /*@=enumint@*/)
175 extern void abstract_init (void);
176 extern void resetImports (cstring p_current) ;
178 extern interfaceNodeList
179 consInterfaceNode (/*@only@*/ interfaceNode p_n, /*@returned@*/ interfaceNodeList p_ns);
181 /* evs 8 Sept 1993 changed to importNodeList */
182 extern /*@only@*/ interfaceNode
183 makeInterfaceNodeImports (/*@only@*/ importNodeList p_x);
185 extern /*@only@*/ nameNode
186 makeNameNodeForm (/*@only@*/ /*@null@*/ opFormNode p_opform) /*@*/ ;
187 extern /*@only@*/ nameNode
188 makeNameNodeId (/*@only@*/ ltoken p_opid) /*@*/ ;
189 extern /*@only@*/ interfaceNode
190 makeInterfaceNodeUses (/*@only@*/ traitRefNodeList p_x) /*@*/ ;
191 extern /*@only@*/ interfaceNode
192 interfaceNode_makeConst (/*@only@*/ constDeclarationNode p_x) /*@*/ ;
193 extern /*@only@*/ interfaceNode
194 interfaceNode_makeVar (/*@only@*/ varDeclarationNode p_x) /*@*/ ;
195 extern /*@only@*/ interfaceNode
196 interfaceNode_makeType (/*@only@*/ typeNode p_x) /*@*/ ;
197 extern /*@only@*/ interfaceNode
198 interfaceNode_makeFcn (/*@only@*/ fcnNode p_x) /*@*/ ;
199 extern /*@only@*/ interfaceNode
200 interfaceNode_makeClaim (/*@only@*/ claimNode p_x) /*@*/ ;
201 extern /*@only@*/ interfaceNode interfaceNode_makeIter (/*@only@*/ iterNode p_x) /*@*/ ;
202 extern /*@only@*/ interfaceNode interfaceNode_makePrivConst(/*@only@*/ constDeclarationNode p_x) /*@*/ ;
203 extern /*@only@*/ interfaceNode
204 interfaceNode_makePrivVar(/*@only@*/ varDeclarationNode p_x) /*@*/ ;
205 extern /*@only@*/ interfaceNode
206 interfaceNode_makePrivType(/*@only@*/ typeNode p_x) /*@*/ ;
207 extern /*@only@*/ interfaceNode
208 interfaceNode_makePrivFcn(/*@only@*/ fcnNode p_x) /*@*/ ;
209 extern /*@only@*/ typeNode makeAbstractTypeNode (/*@only@*/ abstractNode p_x) /*@*/ ;
210 extern /*@only@*/ typeNode makeExposedTypeNode (/*@only@*/ exposedNode p_x) /*@*/ ;
212 extern /*@only@*/ traitRefNode
213 makeTraitRefNode(/*@only@*/ ltokenList p_fl, /*@null@*/ /*@only@*/ renamingNode p_r) /*@*/ ;
215 extern /*@only@*/ cstring printLeaves2 (ltokenList p_f) /*@*/ ;
216 extern /*@only@*/ cstring printRawLeaves2 (ltokenList p_f) /*@*/ ;
217 extern /*@only@*/ cstring sigNode_unparseText (/*@null@*/ sigNode p_n) /*@*/ ;
219 extern /*@only@*/ renamingNode
220 makeRenamingNode (/*@only@*/ typeNameNodeList p_n,
221 /*@only@*/ replaceNodeList p_r) /*@*/ ;
222 extern /*@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) /*@*/ ;
228 extern /*@only@*/ sigNode
229 makesigNode (/*@only@*/ ltoken p_t, /*@only@*/ ltokenList p_domain, /*@only@*/ ltoken p_range) /*@*/ ;
231 extern /*@only@*/ replaceNode
232 makeReplaceNameNode (/*@only@*/ ltoken p_t, /*@only@*/ typeNameNode p_tn,
233 /*@only@*/ nameNode p_nn) /*@*/ ;
235 extern /*@only@*/ opFormNode
236 makeOpFormNode(/*@only@*/ ltoken p_t, opFormKind p_k,
237 opFormUnion p_u, /*@only@*/ ltoken p_close) /*@*/ ;
239 extern /*@only@*/ typeNameNode
240 makeTypeNameNode (bool p_isObj, /*@only@*/ lclTypeSpecNode p_t,
241 /*@only@*/ abstDeclaratorNode p_n) /*@*/ ;
242 extern /*@only@*/ typeNameNode
243 makeTypeNameNodeOp (/*@only@*/ opFormNode p_n) /*@*/ ;
245 extern /*@only@*/ lclTypeSpecNode
246 makeLclTypeSpecNodeConj (/*@only@*/ /*@null@*/ lclTypeSpecNode p_a,
247 /*@only@*/ /*@null@*/ lclTypeSpecNode p_b) /*@*/ ;
249 extern /*@only@*/ lclTypeSpecNode
250 makeLclTypeSpecNodeType(/*@only@*/ /*@null@*/ CTypesNode p_x) /*@*/ ;
252 extern /*@only@*/ lclTypeSpecNode
253 makeLclTypeSpecNodeSU(/*@only@*/ /*@null@*/ strOrUnionNode p_x) /*@*/ ;
255 extern /*@only@*/ lclTypeSpecNode
256 makeLclTypeSpecNodeEnum(/*@only@*/ /*@null@*/ enumSpecNode p_x) /*@*/ ;
258 extern /*@only@*/ lclTypeSpecNode
259 lclTypeSpecNode_addQual (/*@only@*/ lclTypeSpecNode p_n, qual p_q)
262 extern /*@only@*/ enumSpecNode
263 makeEnumSpecNode (/*@only@*/ ltoken p_t, /*@only@*/ ltoken p_optTagId, /*@owned@*/ ltokenList p_enums);
265 extern /*@only@*/ enumSpecNode
266 makeEnumSpecNode2 (/*@only@*/ ltoken p_t, /*@only@*/ ltoken p_tagid);
268 extern /*@only@*/ strOrUnionNode
269 makestrOrUnionNode (/*@only@*/ ltoken p_str, suKind p_k,
270 /*@only@*/ ltoken p_opttagid, /*@only@*/ stDeclNodeList p_x);
272 extern /*@only@*/ strOrUnionNode
273 makeForwardstrOrUnionNode (/*@only@*/ ltoken p_str, suKind p_k,
274 /*@only@*/ ltoken p_tagid);
276 extern /*@only@*/ stDeclNode
277 makestDeclNode (/*@only@*/ lclTypeSpecNode p_s,
278 /*@only@*/ declaratorNodeList p_x);
279 extern /*@only@*/ constDeclarationNode
280 makeConstDeclarationNode (/*@only@*/ lclTypeSpecNode p_t,
281 /*@only@*/ initDeclNodeList p_decls);
282 extern /*@only@*/ varDeclarationNode
283 makeVarDeclarationNode (/*@only@*/ lclTypeSpecNode p_t,
284 /*@only@*/ initDeclNodeList p_x,
285 bool p_isGlobal, bool p_isPrivate);
287 extern varDeclarationNode makeFileSystemNode (void);
288 extern varDeclarationNode makeInternalStateNode (void);
290 extern /*@only@*/ initDeclNode
291 makeInitDeclNode (/*@only@*/ declaratorNode p_d, /*@null@*/ /*@only@*/ termNode p_x);
293 extern /*@only@*/ abstractNode
294 makeAbstractNode (/*@only@*/ ltoken p_t, /*@only@*/ ltoken p_name,
295 bool p_isMutable, bool p_isRefCounted,
296 /*@only@*/ abstBodyNode p_a);
298 extern /*@unused@*/ /*@only@*/ cstring abstBodyNode_unparseExposed (abstBodyNode p_n);
300 extern /*@only@*/ exposedNode
301 makeExposedNode (/*@only@*/ ltoken p_t, /*@only@*/ lclTypeSpecNode p_s,
302 /*@only@*/ declaratorInvNodeList p_d);
304 extern /*@only@*/ declaratorInvNode
305 makeDeclaratorInvNode (/*@only@*/ declaratorNode p_d,
306 /*@only@*/ abstBodyNode p_b);
308 extern /*@only@*/ fcnNode
309 fcnNode_fromDeclarator (/*@only@*/ /*@null@*/ lclTypeSpecNode p_t,
310 /*@only@*/ declaratorNode p_d);
312 extern /*@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);
325 extern /*@only@*/ iterNode
326 makeIterNode (/*@only@*/ ltoken p_id, /*@only@*/ paramNodeList p_p);
328 extern /*@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);
337 extern /*@only@*/ lclPredicateNode
338 makeIntraClaimNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
340 extern /*@only@*/ lclPredicateNode
341 makeRequiresNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
343 extern /*@only@*/ lclPredicateNode
344 makeChecksNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
346 extern /*@only@*/ lclPredicateNode
347 makeEnsuresNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_n);
349 extern /*@only@*/ lclPredicateNode
350 makeLclPredicateNode (/*@only@*/ ltoken p_t, /*@only@*/ termNode p_n,
351 lclPredicateKind p_k);
353 extern /*@only@*/ stmtNode
354 makeStmtNode (/*@only@*/ ltoken p_varId,
355 /*@only@*/ ltoken p_fcnId, /*@only@*/ termNodeList p_v);
357 extern /*@only@*/ programNode
358 makeProgramNodeAction (/*@only@*/ programNodeList p_x, actionKind p_k);
360 extern /*@only@*/ programNode
361 makeProgramNode (/*@only@*/ stmtNode p_x);
363 extern /*@only@*/ storeRefNode
364 makeStoreRefNodeTerm (/*@only@*/ termNode p_t);
366 extern /*@only@*/ storeRefNode
367 makeStoreRefNodeType (/*@only@*/ lclTypeSpecNode p_t, bool p_isObj);
369 extern /*@only@*/ modifyNode
370 makeModifyNodeSpecial (/*@only@*/ ltoken p_t, bool p_modifiesNothing);
372 extern storeRefNode makeStoreRefNodeInternal (void);
373 extern storeRefNode makeStoreRefNodeSystem (void);
375 extern /*@only@*/ modifyNode
376 makeModifyNodeRef (/*@only@*/ ltoken p_t, /*@only@*/ storeRefNodeList p_y);
378 extern /*@only@*/ letDeclNode
379 makeLetDeclNode(/*@only@*/ ltoken p_varid, /*@null@*/ /*@only@*/ lclTypeSpecNode p_t,
380 /*@only@*/ termNode p_term);
382 extern /*@only@*/ abstBodyNode
383 makeAbstBodyNode (/*@only@*/ ltoken p_t, /*@only@*/ fcnNodeList p_f);
385 extern /*@only@*/ abstBodyNode
386 makeExposedBodyNode (/*@only@*/ ltoken p_t, /*@only@*/ lclPredicateNode p_inv);
388 extern /*@only@*/ abstBodyNode
389 makeAbstBodyNode2 (/*@only@*/ ltoken p_t, /*@only@*/ ltokenList p_ops);
391 extern paramNode markYieldParamNode (/*@returned@*/ paramNode p_p);
393 extern /*@only@*/ arrayQualNode
394 makeArrayQualNode (/*@only@*/ ltoken p_t, /*@null@*/ /*@only@*/ termNode p_term);
396 extern /*@only@*/ quantifierNode
397 makeQuantifierNode (/*@only@*/ varNodeList p_v, /*@only@*/ ltoken p_quant);
399 extern /*@only@*/ varNode
400 makeVarNode (/*@only@*/ ltoken p_varid, bool p_isObj, /*@only@*/ lclTypeSpecNode p_t);
402 extern /*@only@*/ typeExpr makeTypeExpr (/*@only@*/ ltoken p_t);
404 extern /*@only@*/ declaratorNode
405 makeDeclaratorNode (/*@only@*/ typeExpr p_t);
407 extern /*@only@*/ typeExpr
408 makeFunctionNode (/*@null@*/ /*@only@*/ typeExpr p_x, /*@only@*/ paramNodeList p_p);
410 extern /*@only@*/ typeExpr
411 makePointerNode (/*@only@*/ ltoken p_star, /*@null@*/ /*@only@*/ /*@returned@*/ typeExpr p_x);
413 extern /*@only@*/ typeExpr
414 makeArrayNode (/*@only@*/ /*@returned@*/ /*@null@*/ typeExpr p_x,
415 /*@only@*/ arrayQualNode p_a);
417 extern /*@only@*/ paramNode
418 makeParamNode (/*@only@*/ lclTypeSpecNode p_t, /*@only@*/ typeExpr p_d);
420 extern /*@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);
425 extern /*@only@*/ termNode
426 makeQuantifiedTermNode (/*@only@*/ quantifierNodeList p_qn,
427 /*@only@*/ ltoken p_open,
428 /*@only@*/ termNode p_t, /*@only@*/ ltoken p_close);
430 extern /*@only@*/ termNode
431 makeInfixTermNode (/*@only@*/ termNode p_x, /*@only@*/ ltoken p_op,
432 /*@only@*/ termNode p_y);
434 extern /*@only@*/ termNode
435 makePostfixTermNode (/*@returned@*/ /*@only@*/ termNode p_secondary,
436 /*@only@*/ ltokenList p_postfixops);
438 extern /*@only@*/ termNode
439 makePostfixTermNode2 (/*@only@*/ /*@returned@*/ termNode p_secondary,
440 /*@only@*/ ltoken p_postfixop);
442 extern /*@only@*/ termNode
443 makePrefixTermNode (/*@only@*/ ltoken p_op, /*@only@*/ termNode p_arg);
445 extern /*@exposed@*/ termNode
446 CollapseInfixTermNode (/*@returned@*/ termNode p_secondary, termNodeList p_infix);
448 extern /*@only@*/ termNode
449 makeMatchedNode (/*@only@*/ ltoken p_open,
450 /*@only@*/ termNodeList p_args, /*@only@*/ ltoken p_close);
452 extern /*@only@*/ termNode
453 makeSqBracketedNode (/*@only@*/ ltoken p_lbracket,
454 /*@only@*/ termNodeList p_args,
455 /*@only@*/ ltoken p_rbracket);
457 extern /*@only@*/ termNode
458 updateSqBracketedNode (/*@null@*/ /*@only@*/ termNode p_left,
459 /*@only@*/ /*@returned@*/ termNode p_t,
460 /*@null@*/ /*@only@*/ termNode p_right);
463 updateMatchedNode (/*@null@*/ /*@only@*/ termNode p_left, /*@returned@*/ termNode p_t,
464 /*@null@*/ /*@only@*/ termNode p_right);
466 extern /*@only@*/ termNode
467 makeSimpleTermNode (/*@only@*/ ltoken p_varid);
468 extern /*@only@*/ termNode
469 makeSelectTermNode (/*@only@*/ termNode p_pri, /*@only@*/ ltoken p_select,
470 /*@dependent@*/ ltoken p_id);
471 extern /*@only@*/ termNode
472 makeMapTermNode (/*@only@*/ termNode p_pri, /*@only@*/ ltoken p_map,
473 /*@dependent@*/ ltoken p_id);
474 extern /*@only@*/ termNode
475 makeLiteralTermNode (/*@only@*/ ltoken p_tok, sort p_s);
477 extern /*@only@*/ termNode
478 makeUnchangedTermNode1 (/*@only@*/ ltoken p_op, /*@only@*/ ltoken p_all);
479 extern /*@only@*/ termNode
480 makeUnchangedTermNode2 (/*@only@*/ ltoken p_op, /*@only@*/ storeRefNodeList p_x);
481 extern /*@only@*/ termNode
482 makeSizeofTermNode(/*@only@*/ ltoken p_op, /*@only@*/ lclTypeSpecNode p_type);
483 extern /*@only@*/ termNode
484 makeOpCallTermNode (/*@only@*/ ltoken p_op, /*@only@*/ ltoken p_open,
485 /*@only@*/ termNodeList p_args, /*@only@*/ ltoken p_close);
487 extern sort sigNode_rangeSort (sigNode p_sig);
489 extern /*@only@*/ sortList sigNode_domain (sigNode p_sig);
491 extern bool sameNameNode (/*@null@*/ nameNode p_n1, /*@null@*/ nameNode p_n2);
493 extern /*@only@*/ CTypesNode
494 makeCTypesNode (/*@null@*/ /*@only@*/ CTypesNode p_ctypes, /*@only@*/ ltoken p_ct);
496 extern /*@only@*/ CTypesNode
497 makeTypeSpecifier (/*@only@*/ ltoken p_typedefname) ;
499 extern bool sigNode_equal (sigNode p_n1, sigNode p_n2);
501 extern sort lclTypeSpecNode2sort(lclTypeSpecNode p_type);
503 extern sort typeExpr2ptrSort(sort p_base, /*@null@*/ typeExpr p_t);
505 /* should be tagKind, instead of int */
506 extern lsymbol checkAndEnterTag(tagKind p_k, /*@only@*/ ltoken p_opttagid);
507 extern void enteringFcnScope(lclTypeSpecNode p_t, declaratorNode p_d, globalList p_g);
508 extern void enteringClaimScope (paramNodeList p_params, globalList p_g);
510 extern /*@observer@*/ ltoken nameNode_errorToken (/*@null@*/ nameNode p_nn);
511 extern /*@observer@*/ ltoken termNode_errorToken (/*@null@*/ termNode p_n);
512 extern /*@observer@*/ ltoken lclTypeSpecNode_errorToken (/*@null@*/ lclTypeSpecNode p_t);
514 extern opFormUnion opFormUnion_createAnyOp (ltoken p_t);
515 extern opFormUnion opFormUnion_createMiddle (int p_middle);
516 extern void LCLBuiltins (void);
517 extern /*@only@*/ paramNode paramNode_elipsis (void);
519 pushInfixOpPartNode (/*@returned@*/ termNodeList p_x, /*@only@*/ ltoken p_op,
520 /*@only@*/ termNode p_secondary);
521 extern /*@only@*/ cstring declaratorNode_unparseCode (declaratorNode p_x);
523 extern /*@only@*/ cstring typeExpr_name (/*@null@*/ typeExpr p_x);
525 extern void setExposedType (lclTypeSpecNode p_s);
526 extern void declareForwardType (declaratorNode p_declare);
528 extern /*@only@*/ declaratorNode declaratorNode_copy (declaratorNode p_x);
530 extern bool lslOp_equal (lslOp p_x, lslOp p_y);
532 extern void lsymbol_setbool (lsymbol p_s) /*@modifies internalState@*/ ;
533 extern lsymbol lsymbol_getbool (void);
534 extern lsymbol lsymbol_getBool (void);
535 extern lsymbol lsymbol_getTRUE (void);
536 extern lsymbol lsymbol_getFALSE (void);
540 # error "Multiple include"