]>
Commit | Line | Data |
---|---|---|
864101ed | 1 | /* |
2 | ** Inserted at beginning of c files generated by bison | |
3 | ** REMEMBER: Change bison.reset too. | |
4 | */ | |
5 | ||
6 | /*@-allmacros@*/ | |
7 | /*@+boolint@*/ | |
8 | /*@+charint@*/ | |
9 | /*@-macroparams@*/ | |
10 | /*@-macroundef@*/ | |
11 | /*@-unreachable@*/ | |
12 | /*@-macrospec@*/ | |
13 | /*@-varuse@*/ | |
14 | /*@+ignorequals@*/ | |
15 | /*@-macrostmt@*/ | |
16 | /*@-noeffect@*/ | |
17 | /*@-shadow@*/ | |
18 | /*@-exitarg@*/ | |
19 | /*@-macroredef@*/ | |
20 | /*@-uniondef@*/ | |
21 | /*@-compdef@*/ | |
22 | /*@-matchfields@*/ | |
23 | /*@-exportlocal@*/ | |
24 | /*@-evalorderuncon@*/ | |
25 | /*@-exportheader@*/ | |
26 | /*@-typeuse@*/ | |
27 | /*@-redecl@*/ | |
28 | /*@-redef@*/ | |
29 | /*@-noparams@*/ | |
30 | /*@-ansireserved@*/ | |
31 | /*@-fielduse@*/ | |
32 | /*@-ifblock@*/ | |
33 | /*@-elseifcomplete@*/ | |
34 | /*@-whileblock@*/ | |
35 | /*@-forblock@*/ | |
36 | /*@-branchstate@*/ | |
37 | /*@-readonlytrans@*/ | |
38 | /*@-namechecks@*/ | |
39 | /*@-usedef@*/ | |
40 | /*@-systemunrecog@*/ | |
41 | /*@-dependenttrans@*/ | |
42 | /*@-unqualifiedtrans@*/ | |
43 | /*@-nullassign@*/ | |
44 | /*@-nullpass@*/ | |
45 | /*@-nullptrarith*/ | |
46 | /*@-usereleased@*/ | |
47 | /*@-declundef@*/ | |
48 | ||
49 | /*drl added 11/27/2001*/ | |
50 | /*@-bounds@*/ | |
e015e087 | 51 | |
52 | /*drl added 12/11/2002*/ | |
53 | /*@-type@*/ | |
54 | ||
a9ec3280 | 55 | /*@-enummemuse@*/ |
56 | ||
864101ed | 57 | /* < end of bison.head > */ |
58 | ||
08cf8642 | 59 | /* A Bison parser, made by GNU Bison 2.3. */ |
60 | ||
61 | /* Skeleton interface for Bison's Yacc-like parsers in C | |
62 | ||
63 | Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 | |
64 | Free Software Foundation, Inc. | |
65 | ||
66 | This program is free software; you can redistribute it and/or modify | |
67 | it under the terms of the GNU General Public License as published by | |
68 | the Free Software Foundation; either version 2, or (at your option) | |
69 | any later version. | |
70 | ||
71 | This program is distributed in the hope that it will be useful, | |
72 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
73 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
74 | GNU General Public License for more details. | |
75 | ||
76 | You should have received a copy of the GNU General Public License | |
77 | along with this program; if not, write to the Free Software | |
78 | Foundation, Inc., 51 Franklin Street, Fifth Floor, | |
79 | Boston, MA 02110-1301, USA. */ | |
80 | ||
81 | /* As a special exception, you may create a larger work that contains | |
82 | part or all of the Bison parser skeleton and distribute that work | |
83 | under terms of your choice, so long as that work isn't itself a | |
84 | parser generator using the skeleton or a modified version thereof | |
85 | as a parser skeleton. Alternatively, if you modify or redistribute | |
86 | the parser skeleton itself, you may (at your option) remove this | |
87 | special exception, which will cause the skeleton and the resulting | |
88 | Bison output files to be licensed under the GNU General Public | |
89 | License without this special exception. | |
90 | ||
91 | This special exception was added by the Free Software Foundation in | |
92 | version 2.2 of Bison. */ | |
93 | ||
94 | /* Tokens. */ | |
95 | #ifndef YYTOKENTYPE | |
96 | # define YYTOKENTYPE | |
97 | /* Put the tokens into the symbol table, so that GDB and other debuggers | |
98 | know about them. */ | |
99 | enum yytokentype { | |
100 | simpleOp = 258, | |
101 | PREFIX_OP = 259, | |
102 | POSTFIX_OP = 260, | |
103 | LLT_MULOP = 261, | |
104 | LLT_SEMI = 262, | |
105 | LLT_VERTICALBAR = 263, | |
106 | ITERATION_OP = 264, | |
107 | selectSym = 265, | |
108 | LLT_LBRACKET = 266, | |
109 | LLT_LPAR = 267, | |
110 | LLT_IF_THEN_ELSE = 268, | |
111 | logicalOp = 269, | |
112 | eqSepSym = 270, | |
113 | equationSym = 271, | |
114 | commentSym = 272, | |
115 | LLT_WHITESPACE = 273, | |
116 | LLT_EOL = 274, | |
117 | LLT_TYPEDEF_NAME = 275, | |
118 | quantifierSym = 276, | |
119 | openSym = 277, | |
120 | closeSym = 278, | |
121 | sepSym = 279, | |
122 | simpleId = 280, | |
123 | mapSym = 281, | |
124 | markerSym = 282, | |
125 | preSym = 283, | |
126 | postSym = 284, | |
127 | anySym = 285, | |
128 | LLT_COLON = 286, | |
129 | LLT_COMMA = 287, | |
130 | LLT_EQUALS = 288, | |
131 | LLT_LBRACE = 289, | |
132 | LLT_RBRACE = 290, | |
133 | LLT_RBRACKET = 291, | |
134 | LLT_RPAR = 292, | |
135 | LLT_QUOTE = 293, | |
136 | eqOp = 294, | |
137 | LLT_CCHAR = 295, | |
138 | LLT_CFLOAT = 296, | |
139 | LLT_CINTEGER = 297, | |
140 | LLT_LCSTRING = 298, | |
141 | LLT_ALL = 299, | |
142 | LLT_ANYTHING = 300, | |
143 | LLT_BE = 301, | |
144 | LLT_BODY = 302, | |
145 | LLT_CLAIMS = 303, | |
146 | LLT_CHECKS = 304, | |
147 | LLT_CONSTANT = 305, | |
148 | LLT_ELSE = 306, | |
149 | LLT_ENSURES = 307, | |
150 | LLT_FOR = 308, | |
151 | LLT_FRESH = 309, | |
152 | LLT_IF = 310, | |
153 | LLT_IMMUTABLE = 311, | |
154 | LLT_IMPORTS = 312, | |
155 | LLT_CONSTRAINT = 313, | |
156 | LLT_ISSUB = 314, | |
157 | LLT_LET = 315, | |
158 | LLT_MODIFIES = 316, | |
159 | LLT_MUTABLE = 317, | |
160 | LLT_NOTHING = 318, | |
161 | LLT_INTERNAL = 319, | |
162 | LLT_FILESYS = 320, | |
163 | LLT_OBJ = 321, | |
164 | LLT_OUT = 322, | |
165 | LLT_SEF = 323, | |
166 | LLT_ONLY = 324, | |
167 | LLT_PARTIAL = 325, | |
168 | LLT_OWNED = 326, | |
169 | LLT_DEPENDENT = 327, | |
170 | LLT_KEEP = 328, | |
171 | LLT_KEPT = 329, | |
172 | LLT_TEMP = 330, | |
173 | LLT_SHARED = 331, | |
174 | LLT_UNIQUE = 332, | |
175 | LLT_UNUSED = 333, | |
176 | LLT_EXITS = 334, | |
177 | LLT_MAYEXIT = 335, | |
178 | LLT_NEVEREXIT = 336, | |
179 | LLT_TRUEEXIT = 337, | |
180 | LLT_FALSEEXIT = 338, | |
181 | LLT_UNDEF = 339, | |
182 | LLT_KILLED = 340, | |
183 | LLT_CHECKMOD = 341, | |
184 | LLT_CHECKED = 342, | |
185 | LLT_UNCHECKED = 343, | |
186 | LLT_CHECKEDSTRICT = 344, | |
187 | LLT_TRUENULL = 345, | |
188 | LLT_FALSENULL = 346, | |
189 | LLT_LNULL = 347, | |
190 | LLT_LNOTNULL = 348, | |
191 | LLT_RETURNED = 349, | |
192 | LLT_OBSERVER = 350, | |
193 | LLT_EXPOSED = 351, | |
194 | LLT_REFCOUNTED = 352, | |
195 | LLT_REFS = 353, | |
196 | LLT_RELNULL = 354, | |
197 | LLT_RELDEF = 355, | |
198 | LLT_KILLREF = 356, | |
199 | LLT_NULLTERMINATED = 357, | |
200 | LLT_TEMPREF = 358, | |
201 | LLT_NEWREF = 359, | |
202 | LLT_PRIVATE = 360, | |
203 | LLT_REQUIRES = 361, | |
204 | LLT_RESULT = 362, | |
205 | LLT_SIZEOF = 363, | |
206 | LLT_SPEC = 364, | |
207 | LLT_TAGGEDUNION = 365, | |
208 | LLT_THEN = 366, | |
209 | LLT_TYPE = 367, | |
210 | LLT_TYPEDEF = 368, | |
211 | LLT_UNCHANGED = 369, | |
212 | LLT_USES = 370, | |
213 | LLT_CHAR = 371, | |
214 | LLT_CONST = 372, | |
215 | LLT_DOUBLE = 373, | |
216 | LLT_ENUM = 374, | |
217 | LLT_FLOAT = 375, | |
218 | LLT_INT = 376, | |
219 | LLT_ITER = 377, | |
220 | LLT_YIELD = 378, | |
221 | LLT_LONG = 379, | |
222 | LLT_SHORT = 380, | |
223 | LLT_SIGNED = 381, | |
224 | LLT_UNKNOWN = 382, | |
225 | LLT_STRUCT = 383, | |
226 | LLT_TELIPSIS = 384, | |
227 | LLT_UNION = 385, | |
228 | LLT_UNSIGNED = 386, | |
229 | LLT_VOID = 387, | |
230 | LLT_VOLATILE = 388, | |
231 | LLT_PRINTFLIKE = 389, | |
232 | LLT_SCANFLIKE = 390, | |
233 | LLT_MESSAGELIKE = 391 | |
234 | }; | |
235 | #endif | |
236 | /* Tokens. */ | |
237 | #define simpleOp 258 | |
238 | #define PREFIX_OP 259 | |
239 | #define POSTFIX_OP 260 | |
240 | #define LLT_MULOP 261 | |
241 | #define LLT_SEMI 262 | |
242 | #define LLT_VERTICALBAR 263 | |
243 | #define ITERATION_OP 264 | |
244 | #define selectSym 265 | |
245 | #define LLT_LBRACKET 266 | |
246 | #define LLT_LPAR 267 | |
247 | #define LLT_IF_THEN_ELSE 268 | |
248 | #define logicalOp 269 | |
249 | #define eqSepSym 270 | |
250 | #define equationSym 271 | |
251 | #define commentSym 272 | |
252 | #define LLT_WHITESPACE 273 | |
253 | #define LLT_EOL 274 | |
254 | #define LLT_TYPEDEF_NAME 275 | |
255 | #define quantifierSym 276 | |
256 | #define openSym 277 | |
257 | #define closeSym 278 | |
258 | #define sepSym 279 | |
259 | #define simpleId 280 | |
260 | #define mapSym 281 | |
261 | #define markerSym 282 | |
262 | #define preSym 283 | |
263 | #define postSym 284 | |
264 | #define anySym 285 | |
265 | #define LLT_COLON 286 | |
266 | #define LLT_COMMA 287 | |
267 | #define LLT_EQUALS 288 | |
268 | #define LLT_LBRACE 289 | |
269 | #define LLT_RBRACE 290 | |
270 | #define LLT_RBRACKET 291 | |
271 | #define LLT_RPAR 292 | |
272 | #define LLT_QUOTE 293 | |
273 | #define eqOp 294 | |
274 | #define LLT_CCHAR 295 | |
275 | #define LLT_CFLOAT 296 | |
276 | #define LLT_CINTEGER 297 | |
277 | #define LLT_LCSTRING 298 | |
278 | #define LLT_ALL 299 | |
279 | #define LLT_ANYTHING 300 | |
280 | #define LLT_BE 301 | |
281 | #define LLT_BODY 302 | |
282 | #define LLT_CLAIMS 303 | |
283 | #define LLT_CHECKS 304 | |
284 | #define LLT_CONSTANT 305 | |
285 | #define LLT_ELSE 306 | |
286 | #define LLT_ENSURES 307 | |
287 | #define LLT_FOR 308 | |
288 | #define LLT_FRESH 309 | |
289 | #define LLT_IF 310 | |
290 | #define LLT_IMMUTABLE 311 | |
291 | #define LLT_IMPORTS 312 | |
292 | #define LLT_CONSTRAINT 313 | |
293 | #define LLT_ISSUB 314 | |
294 | #define LLT_LET 315 | |
295 | #define LLT_MODIFIES 316 | |
296 | #define LLT_MUTABLE 317 | |
297 | #define LLT_NOTHING 318 | |
298 | #define LLT_INTERNAL 319 | |
299 | #define LLT_FILESYS 320 | |
300 | #define LLT_OBJ 321 | |
301 | #define LLT_OUT 322 | |
302 | #define LLT_SEF 323 | |
303 | #define LLT_ONLY 324 | |
304 | #define LLT_PARTIAL 325 | |
305 | #define LLT_OWNED 326 | |
306 | #define LLT_DEPENDENT 327 | |
307 | #define LLT_KEEP 328 | |
308 | #define LLT_KEPT 329 | |
309 | #define LLT_TEMP 330 | |
310 | #define LLT_SHARED 331 | |
311 | #define LLT_UNIQUE 332 | |
312 | #define LLT_UNUSED 333 | |
313 | #define LLT_EXITS 334 | |
314 | #define LLT_MAYEXIT 335 | |
315 | #define LLT_NEVEREXIT 336 | |
316 | #define LLT_TRUEEXIT 337 | |
317 | #define LLT_FALSEEXIT 338 | |
318 | #define LLT_UNDEF 339 | |
319 | #define LLT_KILLED 340 | |
320 | #define LLT_CHECKMOD 341 | |
321 | #define LLT_CHECKED 342 | |
322 | #define LLT_UNCHECKED 343 | |
323 | #define LLT_CHECKEDSTRICT 344 | |
324 | #define LLT_TRUENULL 345 | |
325 | #define LLT_FALSENULL 346 | |
326 | #define LLT_LNULL 347 | |
327 | #define LLT_LNOTNULL 348 | |
328 | #define LLT_RETURNED 349 | |
329 | #define LLT_OBSERVER 350 | |
330 | #define LLT_EXPOSED 351 | |
331 | #define LLT_REFCOUNTED 352 | |
332 | #define LLT_REFS 353 | |
333 | #define LLT_RELNULL 354 | |
334 | #define LLT_RELDEF 355 | |
335 | #define LLT_KILLREF 356 | |
336 | #define LLT_NULLTERMINATED 357 | |
337 | #define LLT_TEMPREF 358 | |
338 | #define LLT_NEWREF 359 | |
339 | #define LLT_PRIVATE 360 | |
340 | #define LLT_REQUIRES 361 | |
341 | #define LLT_RESULT 362 | |
342 | #define LLT_SIZEOF 363 | |
343 | #define LLT_SPEC 364 | |
344 | #define LLT_TAGGEDUNION 365 | |
345 | #define LLT_THEN 366 | |
346 | #define LLT_TYPE 367 | |
347 | #define LLT_TYPEDEF 368 | |
348 | #define LLT_UNCHANGED 369 | |
349 | #define LLT_USES 370 | |
350 | #define LLT_CHAR 371 | |
351 | #define LLT_CONST 372 | |
352 | #define LLT_DOUBLE 373 | |
353 | #define LLT_ENUM 374 | |
354 | #define LLT_FLOAT 375 | |
355 | #define LLT_INT 376 | |
356 | #define LLT_ITER 377 | |
357 | #define LLT_YIELD 378 | |
358 | #define LLT_LONG 379 | |
359 | #define LLT_SHORT 380 | |
360 | #define LLT_SIGNED 381 | |
361 | #define LLT_UNKNOWN 382 | |
362 | #define LLT_STRUCT 383 | |
363 | #define LLT_TELIPSIS 384 | |
364 | #define LLT_UNION 385 | |
365 | #define LLT_UNSIGNED 386 | |
366 | #define LLT_VOID 387 | |
367 | #define LLT_VOLATILE 388 | |
368 | #define LLT_PRINTFLIKE 389 | |
369 | #define LLT_SCANFLIKE 390 | |
370 | #define LLT_MESSAGELIKE 391 | |
371 | ||
372 | ||
373 | ||
374 | ||
375 | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | |
376 | typedef union YYSTYPE | |
69db2541 | 377 | #line 72 "llgrammar.y" |
368f75ae | 378 | { |
864101ed | 379 | ltoken ltok; /* a leaf is also an ltoken */ |
380 | qual typequal; | |
381 | unsigned int count; | |
382 | /*@only@*/ ltokenList ltokenList; | |
383 | /*@only@*/ abstDeclaratorNode abstDecl; | |
384 | /*@only@*/ declaratorNode declare; | |
385 | /*@only@*/ declaratorNodeList declarelist; | |
386 | /*@only@*/ typeExpr typeexpr; | |
387 | /*@only@*/ arrayQualNode array; | |
388 | /*@only@*/ quantifierNode quantifier; | |
389 | /*@only@*/ quantifierNodeList quantifiers; | |
390 | /*@only@*/ varNode var; | |
391 | /*@only@*/ varNodeList vars; | |
392 | /*@only@*/ storeRefNode storeref; | |
393 | /*@only@*/ storeRefNodeList storereflist; | |
394 | /*@only@*/ termNode term; | |
395 | /*@only@*/ termNodeList termlist; | |
396 | /*@only@*/ programNode program; | |
397 | /*@only@*/ stmtNode stmt; | |
398 | /*@only@*/ claimNode claim; | |
399 | /*@only@*/ typeNode type; | |
400 | /*@only@*/ iterNode iter; | |
401 | /*@only@*/ fcnNode fcn; | |
402 | /*@only@*/ fcnNodeList fcns; | |
403 | /*@only@*/ letDeclNode letdecl; | |
404 | /*@only@*/ letDeclNodeList letdecls; | |
405 | /*@only@*/ lclPredicateNode lclpredicate; | |
406 | /*@only@*/ modifyNode modify; | |
407 | /*@only@*/ paramNode param; | |
408 | /*@only@*/ paramNodeList paramlist; | |
409 | /*@only@*/ declaratorInvNodeList declaratorinvs; | |
410 | /*@only@*/ declaratorInvNode declaratorinv; | |
411 | /*@only@*/ abstBodyNode abstbody; | |
412 | /*@only@*/ abstractNode abstract; | |
413 | /*@only@*/ exposedNode exposed; | |
f9264521 | 414 | /*@only@*/ pointers pointers; |
864101ed | 415 | /* taggedUnionNode taggedunion; */ |
416 | /*@only@*/ globalList globals; | |
417 | /*@only@*/ constDeclarationNode constdeclaration; | |
418 | /*@only@*/ varDeclarationNode vardeclaration; | |
419 | /*@only@*/ varDeclarationNodeList vardeclarationlist; | |
420 | /*@only@*/ initDeclNodeList initdecls; | |
421 | /*@only@*/ initDeclNode initdecl; | |
422 | /*@only@*/ stDeclNodeList structdecls; | |
423 | /*@only@*/ stDeclNode structdecl; | |
424 | /*@only@*/ strOrUnionNode structorunion; | |
425 | /*@only@*/ enumSpecNode enumspec; | |
426 | /*@only@*/ lclTypeSpecNode lcltypespec; | |
427 | /*@only@*/ typeNameNode typname; | |
428 | /*@only@*/ opFormNode opform; | |
429 | /*@only@*/ sigNode signature; | |
430 | /*@only@*/ nameNode name; | |
431 | /*@only@*/ typeNameNodeList namelist; | |
432 | /*@only@*/ replaceNode replace; | |
433 | /*@only@*/ replaceNodeList replacelist; | |
434 | /*@only@*/ renamingNode renaming; | |
435 | /*@only@*/ traitRefNode traitref; | |
436 | /*@only@*/ traitRefNodeList traitreflist; | |
437 | /*@only@*/ importNode import; | |
438 | /*@only@*/ importNodeList importlist; | |
439 | /*@only@*/ interfaceNode iface; | |
440 | /*@only@*/ interfaceNodeList interfacelist; | |
441 | /*@only@*/ CTypesNode ctypes; | |
442 | /*@-redef@*/ | |
08cf8642 | 443 | } |
69db2541 | 444 | /* Line 1489 of yacc.c. */ |
445 | #line 388 "llgrammar.tab.h" | |
08cf8642 | 446 | YYSTYPE; |
447 | # define yystype YYSTYPE /* obsolescent; will be withdrawn */ | |
448 | # define YYSTYPE_IS_DECLARED 1 | |
e5081f8c | 449 | # define YYSTYPE_IS_TRIVIAL 1 |
450 | #endif | |
8f58355a | 451 | |
368f75ae | 452 | extern YYSTYPE yllval; |
8f58355a | 453 | |
864101ed | 454 | /* |
455 | ** Resets all flags in bison.head | |
456 | */ | |
457 | ||
458 | ||
459 | /*@=allmacros@*/ | |
460 | /*@=boolint@*/ | |
461 | /*@=charint@*/ | |
462 | /*@=macroparams@*/ | |
463 | /*@=macroundef@*/ | |
464 | /*@=unreachable@*/ | |
465 | /*@=macrospec@*/ | |
466 | /*@=varuse@*/ | |
467 | /*@=ignorequals@*/ | |
468 | /*@=macrostmt@*/ | |
469 | /*@=noeffect@*/ | |
470 | /*@=shadow@*/ | |
471 | /*@=exitarg@*/ | |
472 | /*@=macroredef@*/ | |
473 | /*@=uniondef@*/ | |
474 | /*@=compdef@*/ | |
475 | /*@=matchfields@*/ | |
476 | /*@=exportlocal@*/ | |
477 | /*@=evalorderuncon@*/ | |
478 | /*@=exportheader@*/ | |
479 | /*@=typeuse@*/ | |
480 | /*@=redecl@*/ | |
481 | /*@=redef@*/ | |
482 | /*@=noparams@*/ | |
483 | /*@=ansireserved@*/ | |
484 | /*@=fielduse@*/ | |
485 | /*@=ifblock@*/ | |
486 | /*@=elseifcomplete@*/ | |
487 | /*@=whileblock@*/ | |
488 | /*@=forblock@*/ | |
489 | /*@=branchstate@*/ | |
490 | /*@=readonlytrans@*/ | |
491 | /*@=namechecks@*/ | |
492 | /*@=usedef@*/ | |
493 | /*@=systemunrecog@*/ | |
494 | /*@=dependenttrans@*/ | |
495 | /*@=unqualifiedtrans@*/ | |
496 | /*@=declundef@*/ | |
497 | ||
498 | ||
499 | /*drl added 11/27/2001*/ | |
500 | /*@=bounds@*/ | |
e015e087 | 501 | |
502 | /*drl added 12/11/2002*/ | |
503 | /*@=type@*/ | |
a9ec3280 | 504 | |
505 | /*@=enummemuse@*/ |