2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
51 /* < end of bison.head > */
53 /* A Bison parser, made from mtgrammar.y
56 #define YYBISON 1 /* Identify Bison output. */
58 #define yyparse mtparse
60 #define yyerror mterror
63 #define yydebug mtdebug
64 #define yynerrs mtnerrs
65 # define MT_BADTOK 257
68 # define MT_GLOBAL 260
69 # define MT_CONTEXT 261
71 # define MT_DEFAULTS 263
72 # define MT_DEFAULT 264
73 # define MT_REFERENCE 265
74 # define MT_PARAMETER 266
75 # define MT_RESULT 267
76 # define MT_CLAUSE 268
77 # define MT_LITERAL 269
79 # define MT_ANNOTATIONS 271
82 # define MT_TRANSFERS 274
83 # define MT_PRECONDITIONS 275
84 # define MT_POSTCONDITIONS 276
85 # define MT_LOSEREFERENCE 277
91 # define MT_LPAREN 283
92 # define MT_RPAREN 284
93 # define MT_LBRACKET 285
94 # define MT_RBRACKET 286
95 # define MT_LBRACE 287
96 # define MT_RBRACE 288
100 # define MT_FLOAT 292
101 # define MT_DOUBLE 293
103 # define MT_ANYTYPE 295
104 # define MT_INTEGRALTYPE 296
105 # define MT_UNSIGNEDINTEGRALTYPE 297
106 # define MT_SIGNEDINTEGRALTYPE 298
107 # define MT_CONST 299
108 # define MT_VOLATILE 300
109 # define MT_RESTRICT 301
110 # define MT_STRINGLIT 302
111 # define MT_IDENT 303
115 # include "bison.reset"
116 # include "splintMacros.nf"
117 # include "llbasic.h"
120 extern ctype mtscanner_lookupType (mttok p_tok) /*@modifies p_tok@*/ ;
123 /*@i523@*/ /* can't include these here
124 # include "mtgrammar.h"
125 # include "mtscanner.h"
128 static /*@noreturn@*/ void mterror (char *);
130 /*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */
131 extern int mtlex () ;
132 static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
135 # define YYPRINT(file, type, value) yyprint (file, type, value)
139 # include "bison.head"
145 mtDeclarationNode mtdecl;
146 mtDeclarationPiece mtpiece;
147 mtDeclarationPieces mtpieces;
148 mtContextNode mtcontext;
149 mtValuesNode mtvalues;
150 mtDefaultsNode mtdefaults;
151 mtDefaultsDeclList mtdeflist;
152 mtAnnotationsNode mtannotations;
153 mtAnnotationList mtannotlist;
154 mtAnnotationDecl mtannotdecl;
156 mtMergeItem mtmergeitem;
157 mtMergeClauseList mtmergeclauselist;
158 mtMergeClause mtmergeclause;
159 mtTransferClauseList mttransferclauselist;
160 mtTransferClause mttransferclause;
161 mtTransferAction mttransferaction;
162 mtLoseReferenceList mtlosereferencelist;
163 mtLoseReference mtlosereference;
165 /*@only@*/ cstringList cstringlist;
167 /*@only@*/ qtype qtyp;
171 # define YYSTYPE yystype
172 # define YYSTYPE_IS_TRIVIAL 1
181 #define YYFLAG -32768
184 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
185 #define YYTRANSLATE(x) ((unsigned)(x) <= 303 ? yytranslate[x] : 93)
187 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
188 static const char yytranslate[] =
190 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
191 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
192 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
196 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
197 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
198 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
199 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
202 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
205 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
215 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
216 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
217 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
218 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
219 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
224 static const short yyprhs[] =
226 0, 0, 1, 3, 7, 12, 15, 16, 19, 21,
227 23, 25, 27, 29, 31, 33, 35, 37, 39, 42,
228 43, 45, 48, 51, 54, 57, 60, 63, 64, 66,
229 68, 71, 73, 77, 80, 81, 83, 85, 87, 90,
230 92, 95, 98, 102, 104, 106, 108, 110, 113, 117,
231 120, 124, 126, 128, 130, 132, 134, 136, 138, 140,
232 142, 144, 146, 149, 151, 155, 158, 161, 165, 170,
233 173, 175, 178, 183, 186, 188, 191, 197, 199, 201,
234 204, 207, 210, 213, 215, 218, 222, 224, 227, 233,
237 static const short yyrhs[] =
239 -1, 51, 0, 5, 52, 4, 0, 6, 5, 52,
240 4, 0, 49, 53, 0, 0, 54, 53, 0, 55,
241 0, 70, 0, 73, 0, 72, 0, 75, 0, 78,
242 0, 84, 0, 82, 0, 83, 0, 85, 0, 7,
243 57, 0, 0, 57, 0, 12, 58, 0, 11, 58,
244 0, 13, 58, 0, 14, 58, 0, 15, 58, 0,
245 16, 58, 0, 0, 59, 0, 60, 0, 60, 63,
246 0, 61, 0, 60, 28, 59, 0, 68, 62, 0,
247 0, 60, 0, 64, 0, 67, 0, 64, 67, 0,
248 27, 0, 27, 66, 0, 27, 64, 0, 27, 66,
249 64, 0, 45, 0, 46, 0, 47, 0, 65, 0,
250 66, 65, 0, 29, 63, 30, 0, 31, 32, 0,
251 67, 31, 32, 0, 36, 0, 37, 0, 38, 0,
252 39, 0, 40, 0, 41, 0, 42, 0, 43, 0,
253 44, 0, 69, 0, 49, 0, 8, 71, 0, 49,
254 0, 49, 35, 71, 0, 10, 92, 0, 9, 74,
255 0, 57, 18, 92, 0, 57, 18, 92, 74, 0,
256 17, 76, 0, 77, 0, 77, 76, 0, 49, 56,
257 18, 92, 0, 19, 79, 0, 80, 0, 80, 79,
258 0, 81, 26, 81, 18, 90, 0, 92, 0, 27,
259 0, 21, 88, 0, 22, 88, 0, 20, 88, 0,
260 23, 86, 0, 87, 0, 87, 86, 0, 92, 18,
261 91, 0, 89, 0, 89, 88, 0, 92, 24, 92,
262 18, 90, 0, 92, 0, 91, 0, 25, 0, 25,
269 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
270 static const short yyrline[] =
272 0, 160, 161, 164, 166, 170, 174, 175, 179, 180,
273 181, 182, 183, 184, 185, 186, 187, 188, 191, 195,
274 196, 199, 200, 201, 202, 203, 204, 211, 212, 215,
275 216, 219, 220, 224, 227, 228, 232, 233, 234, 237,
276 238, 239, 240, 243, 244, 245, 248, 249, 252, 253,
277 254, 261, 262, 263, 264, 265, 266, 267, 268, 269,
278 270, 276, 279, 282, 283, 287, 290, 293, 295, 299,
279 302, 303, 307, 311, 314, 315, 318, 322, 323, 326,
280 329, 332, 335, 338, 339, 342, 345, 346, 349, 353,
286 #if (YYDEBUG) || defined YYERROR_VERBOSE
288 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
289 static const char *const yytname[] =
291 "$", "error", "$undefined.", "MT_BADTOK", "MT_END", "MT_STATE",
292 "MT_GLOBAL", "MT_CONTEXT", "MT_ONEOF", "MT_DEFAULTS", "MT_DEFAULT",
293 "MT_REFERENCE", "MT_PARAMETER", "MT_RESULT", "MT_CLAUSE", "MT_LITERAL",
294 "MT_NULL", "MT_ANNOTATIONS", "MT_ARROW", "MT_MERGE", "MT_TRANSFERS",
295 "MT_PRECONDITIONS", "MT_POSTCONDITIONS", "MT_LOSEREFERENCE", "MT_AS",
296 "MT_ERROR", "MT_PLUS", "MT_STAR", "MT_BAR", "MT_LPAREN", "MT_RPAREN",
297 "MT_LBRACKET", "MT_RBRACKET", "MT_LBRACE", "MT_RBRACE", "MT_COMMA",
298 "MT_CHAR", "MT_INT", "MT_FLOAT", "MT_DOUBLE", "MT_VOID", "MT_ANYTYPE",
299 "MT_INTEGRALTYPE", "MT_UNSIGNEDINTEGRALTYPE", "MT_SIGNEDINTEGRALTYPE",
300 "MT_CONST", "MT_VOLATILE", "MT_RESTRICT", "MT_STRINGLIT", "MT_IDENT",
301 "file", "mtsDeclaration", "declarationNode", "declarationPieces",
302 "declarationPiece", "contextDeclaration", "optContextSelection",
303 "contextSelection", "optType", "typeExpression", "completeType",
304 "completeTypeAux", "optCompleteType", "abstractDecl", "pointers",
305 "innerMods", "innerModsList", "abstractDeclBase", "typeSpecifier",
306 "typeName", "valuesDeclaration", "valuesList", "defaultNode",
307 "defaultsDeclaration", "defaultDeclarationList",
308 "annotationsDeclaration", "annotationsDeclarationList",
309 "annotationDeclaration", "mergeDeclaration", "mergeClauses",
310 "mergeClause", "mergeItem", "preconditionsDeclaration",
311 "postconditionsDeclaration", "transfersDeclaration",
312 "loseReferenceDeclaration", "lostClauses", "lostClause",
313 "transferClauses", "transferClause", "transferAction", "errorAction",
318 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
319 static const short yyr1[] =
321 0, 50, 50, 51, 51, 52, 53, 53, 54, 54,
322 54, 54, 54, 54, 54, 54, 54, 54, 55, 56,
323 56, 57, 57, 57, 57, 57, 57, 58, 58, 59,
324 59, 60, 60, 61, 62, 62, 63, 63, 63, 64,
325 64, 64, 64, 65, 65, 65, 66, 66, 67, 67,
326 67, 68, 68, 68, 68, 68, 68, 68, 68, 68,
327 68, 69, 70, 71, 71, 72, 73, 74, 74, 75,
328 76, 76, 77, 78, 79, 79, 80, 81, 81, 82,
329 83, 84, 85, 86, 86, 87, 88, 88, 89, 90,
333 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
334 static const short yyr2[] =
336 0, 0, 1, 3, 4, 2, 0, 2, 1, 1,
337 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
338 1, 2, 2, 2, 2, 2, 2, 0, 1, 1,
339 2, 1, 3, 2, 0, 1, 1, 1, 2, 1,
340 2, 2, 3, 1, 1, 1, 1, 2, 3, 2,
341 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
342 1, 1, 2, 1, 3, 2, 2, 3, 4, 2,
343 1, 2, 4, 2, 1, 2, 5, 1, 1, 2,
344 2, 2, 2, 1, 2, 3, 1, 2, 5, 1,
348 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
349 doesn't specify something else to do. Zero means the default is an
351 static const short yydefact[] =
353 1, 0, 0, 2, 6, 0, 0, 0, 0, 0,
354 0, 0, 0, 0, 0, 0, 0, 5, 6, 8,
355 9, 11, 10, 12, 13, 15, 16, 14, 17, 3,
356 0, 27, 27, 27, 27, 27, 27, 18, 63, 62,
357 0, 66, 93, 65, 19, 69, 70, 78, 73, 74,
358 0, 77, 81, 86, 0, 79, 80, 82, 83, 0,
359 7, 4, 51, 52, 53, 54, 55, 56, 57, 58,
360 59, 61, 22, 28, 29, 31, 34, 60, 21, 23,
361 24, 25, 26, 0, 0, 0, 20, 71, 75, 0,
362 87, 0, 84, 0, 39, 0, 0, 0, 30, 36,
363 37, 35, 33, 64, 67, 0, 0, 0, 91, 85,
364 43, 44, 45, 41, 46, 40, 32, 0, 49, 38,
365 0, 68, 72, 0, 0, 92, 42, 47, 48, 50,
366 76, 90, 89, 88, 0, 0, 0
369 static const short yydefgoto[] =
371 134, 3, 5, 17, 18, 19, 85, 40, 72, 73,
372 74, 75, 102, 98, 99, 114, 115, 100, 76, 77,
373 20, 39, 21, 22, 41, 23, 45, 46, 24, 48,
374 49, 50, 25, 26, 27, 28, 57, 58, 52, 53,
378 static const short yypact[] =
380 21, -29, 30,-32768, 2, 33, -29, 52, -9, 52,
381 -8, -3, -19, -8, -8, -8, -8,-32768, 2,-32768,
382 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
383 54, 13, 13, 13, 13, 13, 13,-32768, 24,-32768,
384 43,-32768,-32768,-32768, 52,-32768, -3,-32768,-32768, -19,
385 34,-32768,-32768, -8, 46,-32768,-32768,-32768, -8, 57,
386 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
387 -32768,-32768,-32768,-32768, 16,-32768, 13,-32768,-32768,-32768,
388 -32768,-32768,-32768, -9, -8, 58,-32768,-32768,-32768, -19,
389 -32768, -8,-32768, 47, -14, 13, 42, 45,-32768, 5,
390 49, 50,-32768,-32768, 52, -8, 64, 65, 36,-32768,
391 -32768,-32768,-32768,-32768,-32768, -14,-32768, 55,-32768, 49,
392 56,-32768,-32768, -20, -20,-32768,-32768,-32768,-32768,-32768,
393 -32768,-32768,-32768,-32768, 86, 87,-32768
396 static const short yypgoto[] =
398 -32768,-32768, 83, 72,-32768,-32768,-32768, -6, -18, -4,
399 17,-32768,-32768, -2, -87, -23,-32768, -1,-32768,-32768,
400 -32768, 14,-32768,-32768, -5,-32768, 59,-32768,-32768, 51,
401 -32768, 7,-32768,-32768,-32768,-32768, 44,-32768, -11,-32768,
409 static const short yytable[] =
411 43, 37, 51, 55, 56, 108, 59, 113, 47, 7,
412 8, 9, 10, 94, 78, 79, 80, 81, 82, 11,
413 4, 12, 13, 14, 15, 16, 1, 2, 126, 42,
414 42, 110, 111, 112, 96, 6, 97, 29, 86, 51,
415 38, 42, 90, 94, 95, 96, 44, 97, 59, 62,
416 63, 64, 65, 66, 67, 68, 69, 70, 61, 83,
417 89, 84, 71, 31, 32, 33, 34, 35, 36, 94,
418 91, 96, 108, 97, 104, 93, 105, 118, 95, 51,
419 120, 107, 123, 124, 125, 128, 135, 136, 129, 30,
420 60, 116, 127, 101, 117, 122, 106, 103, 119, 121,
421 88, 109, 92, 133, 0, 87, 0, 0, 0, 0,
425 static const short yycheck[] =
427 10, 7, 12, 14, 15, 25, 16, 94, 27, 7,
428 8, 9, 10, 27, 32, 33, 34, 35, 36, 17,
429 49, 19, 20, 21, 22, 23, 5, 6, 115, 49,
430 49, 45, 46, 47, 29, 5, 31, 4, 44, 49,
431 49, 49, 53, 27, 28, 29, 49, 31, 58, 36,
432 37, 38, 39, 40, 41, 42, 43, 44, 4, 35,
433 26, 18, 49, 11, 12, 13, 14, 15, 16, 27,
434 24, 29, 25, 31, 84, 18, 18, 32, 28, 89,
435 31, 91, 18, 18, 48, 30, 0, 0, 32, 6,
436 18, 95, 115, 76, 96, 105, 89, 83, 99, 104,
437 49, 93, 58, 124, -1, 46, -1, -1, -1, -1,
442 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
444 /* Skeleton output parser for bison,
446 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
449 This program is free software; you can redistribute it and/or modify
450 it under the terms of the GNU General Public License as published by
451 the Free Software Foundation; either version 2, or (at your option)
454 This program is distributed in the hope that it will be useful,
455 but WITHOUT ANY WARRANTY; without even the implied warranty of
456 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
457 GNU General Public License for more details.
459 You should have received a copy of the GNU General Public License
460 along with this program; if not, write to the Free Software
461 Foundation, Inc., 59 Temple Place - Suite 330,
462 Boston, MA 02111-1307, USA. */
464 /* As a special exception, when this file is copied by Bison into a
465 Bison output file, you may use that output file without restriction.
466 This special exception was added by the Free Software Foundation
467 in version 1.24 of Bison. */
469 /* This is the parser code that is written into each bison parser when
470 the %semantic_parser declaration is not specified in the grammar.
471 It was written by Richard Stallman by simplifying the hairy parser
472 used when %semantic_parser is specified. */
474 /* All symbols defined below should begin with yy or YY, to avoid
475 infringing on user name space. This should be done even for local
476 variables, as they might otherwise be expanded by user macros.
477 There are some unavoidable exceptions within include files to
478 define necessary library symbols; they are noted "INFRINGES ON
479 USER NAME SPACE" below. */
481 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
483 /* The parser invokes alloca or malloc; define the necessary symbols. */
485 # if YYSTACK_USE_ALLOCA
486 # define YYSTACK_ALLOC alloca
488 # ifndef YYSTACK_USE_ALLOCA
489 # if defined (alloca) || defined (_ALLOCA_H)
490 # define YYSTACK_ALLOC alloca
493 # define YYSTACK_ALLOC __builtin_alloca
499 # ifdef YYSTACK_ALLOC
500 /* Pacify GCC's `empty if-body' warning. */
501 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
503 # if defined (__STDC__) || defined (__cplusplus)
504 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
505 # define YYSIZE_T size_t
507 # define YYSTACK_ALLOC malloc
508 # define YYSTACK_FREE free
510 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
513 #if (! defined (yyoverflow) \
514 && (! defined (__cplusplus) \
515 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
517 /* A type that is properly aligned for any stack member. */
527 /* The size of the maximum gap between one aligned stack and the next. */
528 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
530 /* The size of an array large to enough to hold all stacks, each with
533 # define YYSTACK_BYTES(N) \
534 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
535 + 2 * YYSTACK_GAP_MAX)
537 # define YYSTACK_BYTES(N) \
538 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
542 /* Copy COUNT objects from FROM to TO. The source and destination do
546 # define YYCOPY(To, From, Count) \
547 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
549 # define YYCOPY(To, From, Count) \
552 register YYSIZE_T yyi; \
553 for (yyi = 0; yyi < (Count); yyi++) \
554 (To)[yyi] = (From)[yyi]; \
560 /* Relocate STACK from its old location to the new one. The
561 local variables YYSIZE and YYSTACKSIZE give the old and new number of
562 elements in the stack, and YYPTR gives the new location of the
563 stack. Advance YYPTR to a properly aligned location for the next
565 # define YYSTACK_RELOCATE(Stack) \
568 YYSIZE_T yynewbytes; \
569 YYCOPY (&yyptr->Stack, Stack, yysize); \
570 Stack = &yyptr->Stack; \
571 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
572 yyptr += yynewbytes / sizeof (*yyptr); \
579 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
580 # define YYSIZE_T __SIZE_TYPE__
582 #if ! defined (YYSIZE_T) && defined (size_t)
583 # define YYSIZE_T size_t
585 #if ! defined (YYSIZE_T)
586 # if defined (__STDC__) || defined (__cplusplus)
587 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
588 # define YYSIZE_T size_t
591 #if ! defined (YYSIZE_T)
592 # define YYSIZE_T unsigned int
595 #define yyerrok (yyerrstatus = 0)
596 #define yyclearin (yychar = YYEMPTY)
599 #define YYACCEPT goto yyacceptlab
600 #define YYABORT goto yyabortlab
601 #define YYERROR goto yyerrlab1
602 /* Like YYERROR except do call yyerror. This remains here temporarily
603 to ease the transition to the new meaning of YYERROR, for GCC.
604 Once GCC version 2 has supplanted version 1, this can go. */
605 #define YYFAIL goto yyerrlab
606 #define YYRECOVERING() (!!yyerrstatus)
607 #define YYBACKUP(Token, Value) \
609 if (yychar == YYEMPTY && yylen == 1) \
613 yychar1 = YYTRANSLATE (yychar); \
619 yyerror ("syntax error: cannot back up"); \
625 #define YYERRCODE 256
628 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
631 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
632 first token. By default, to implement support for ranges, extend
633 its range to the last symbol. */
635 #ifndef YYLLOC_DEFAULT
636 # define YYLLOC_DEFAULT(Current, Rhs, N) \
637 Current.last_line = Rhs[N].last_line; \
638 Current.last_column = Rhs[N].last_column;
642 /* YYLEX -- calling `yylex' with the right arguments. */
647 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
649 # define YYLEX yylex (&yylval, &yylloc)
651 # else /* !YYLSP_NEEDED */
653 # define YYLEX yylex (&yylval, YYLEX_PARAM)
655 # define YYLEX yylex (&yylval)
657 # endif /* !YYLSP_NEEDED */
659 # define YYLEX yylex ()
663 /* Enable debugging if requested. */
667 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
668 # define YYFPRINTF fprintf
671 # define YYDPRINTF(Args) \
676 /* Nonzero means print parse trace. It is left uninitialized so that
677 multiple parsers can coexist. */
680 # define YYDPRINTF(Args)
681 #endif /* !YYDEBUG */
683 /* YYINITDEPTH -- initial size of the parser's stacks. */
685 # define YYINITDEPTH 200
688 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
689 if the built-in stack extension method is used).
691 Do not make this value too large; the results are undefined if
692 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
693 evaluated with infinite-precision integer arithmetic. */
700 # define YYMAXDEPTH 10000
703 #ifdef YYERROR_VERBOSE
706 # if defined (__GLIBC__) && defined (_STRING_H)
707 # define yystrlen strlen
709 /* Return the length of YYSTR. */
711 # if defined (__STDC__) || defined (__cplusplus)
712 yystrlen (const char *yystr)
718 register const char *yys = yystr;
720 while (*yys++ != '\0')
723 return yys - yystr - 1;
729 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
730 # define yystpcpy stpcpy
732 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
735 # if defined (__STDC__) || defined (__cplusplus)
736 yystpcpy (char *yydest, const char *yysrc)
738 yystpcpy (yydest, yysrc)
743 register char *yyd = yydest;
744 register const char *yys = yysrc;
746 while ((*yyd++ = *yys++) != '\0')
757 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
758 into yyparse. The argument should have type void *.
759 It should actually point to an object.
760 Grammar actions can access the variable by casting it
761 to the proper pointer type. */
764 # if defined (__STDC__) || defined (__cplusplus)
765 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
766 # define YYPARSE_PARAM_DECL
768 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
769 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
771 #else /* !YYPARSE_PARAM */
772 # define YYPARSE_PARAM_ARG
773 # define YYPARSE_PARAM_DECL
774 #endif /* !YYPARSE_PARAM */
776 /* Prevent warning if -Wstrict-prototypes. */
778 # ifdef YYPARSE_PARAM
779 int yyparse (void *);
785 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
786 variables are global, or local to YYPARSE. */
788 #define YY_DECL_NON_LSP_VARIABLES \
789 /* The lookahead symbol. */ \
792 /* The semantic value of the lookahead symbol. */ \
795 /* Number of parse errors so far. */ \
799 # define YY_DECL_VARIABLES \
800 YY_DECL_NON_LSP_VARIABLES \
802 /* Location data for the lookahead symbol. */ \
805 # define YY_DECL_VARIABLES \
806 YY_DECL_NON_LSP_VARIABLES
810 /* If nonreentrant, generate the variables here. */
817 yyparse (YYPARSE_PARAM_ARG)
820 /* If reentrant, generate the variables here. */
825 register int yystate;
828 /* Number of tokens to shift before error messages enabled. */
830 /* Lookahead token as an internal (translated) token number. */
833 /* Three stacks and their tools:
834 `yyss': related to states,
835 `yyvs': related to semantic values,
836 `yyls': related to locations.
838 Refer to the stacks thru separate pointers, to allow yyoverflow
839 to reallocate them elsewhere. */
841 /* The state stack. */
842 short yyssa[YYINITDEPTH];
844 register short *yyssp;
846 /* The semantic value stack. */
847 YYSTYPE yyvsa[YYINITDEPTH];
848 YYSTYPE *yyvs = yyvsa;
849 register YYSTYPE *yyvsp;
852 /* The location stack. */
853 YYLTYPE yylsa[YYINITDEPTH];
854 YYLTYPE *yyls = yylsa;
859 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
861 # define YYPOPSTACK (yyvsp--, yyssp--)
864 YYSIZE_T yystacksize = YYINITDEPTH;
867 /* The variables used to return semantic value and location from the
874 /* When reducing, the number of symbols on the RHS of the reduced
878 YYDPRINTF ((stderr, "Starting parse\n"));
883 yychar = YYEMPTY; /* Cause a token to be read. */
885 /* Initialize stack pointers.
886 Waste one element of value and location stack
887 so that they stay on the same level as the state stack.
888 The wasted elements are never initialized. */
897 /*------------------------------------------------------------.
898 | yynewstate -- Push a new state, which is found in yystate. |
899 `------------------------------------------------------------*/
901 /* In all cases, when you get here, the value and location stacks
902 have just been pushed. so pushing a state here evens the stacks.
909 if (yyssp >= yyss + yystacksize - 1)
911 /* Get the current used size of the three stacks, in elements. */
912 YYSIZE_T yysize = yyssp - yyss + 1;
916 /* Give user a chance to reallocate the stack. Use copies of
917 these so that the &'s don't force the real ones into
919 YYSTYPE *yyvs1 = yyvs;
922 /* Each stack pointer address is followed by the size of the
923 data in use in that stack, in bytes. */
925 YYLTYPE *yyls1 = yyls;
926 /* This used to be a conditional around just the two extra args,
927 but that might be undefined if yyoverflow is a macro. */
928 yyoverflow ("parser stack overflow",
929 &yyss1, yysize * sizeof (*yyssp),
930 &yyvs1, yysize * sizeof (*yyvsp),
931 &yyls1, yysize * sizeof (*yylsp),
935 yyoverflow ("parser stack overflow",
936 &yyss1, yysize * sizeof (*yyssp),
937 &yyvs1, yysize * sizeof (*yyvsp),
943 #else /* no yyoverflow */
944 # ifndef YYSTACK_RELOCATE
947 /* Extend the stack our own way. */
948 if (yystacksize >= YYMAXDEPTH)
951 if (yystacksize > YYMAXDEPTH)
952 yystacksize = YYMAXDEPTH;
956 union yyalloc *yyptr =
957 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
960 YYSTACK_RELOCATE (yyss);
961 YYSTACK_RELOCATE (yyvs);
963 YYSTACK_RELOCATE (yyls);
965 # undef YYSTACK_RELOCATE
967 YYSTACK_FREE (yyss1);
970 #endif /* no yyoverflow */
972 yyssp = yyss + yysize - 1;
973 yyvsp = yyvs + yysize - 1;
975 yylsp = yyls + yysize - 1;
978 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
979 (unsigned long int) yystacksize));
981 if (yyssp >= yyss + yystacksize - 1)
985 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
995 /* Do appropriate processing given the current state. */
996 /* Read a lookahead token if we need one and don't already have one. */
999 /* First try to decide what to do without reference to lookahead token. */
1001 yyn = yypact[yystate];
1005 /* Not known => get a lookahead token if don't already have one. */
1007 /* yychar is either YYEMPTY or YYEOF
1008 or a valid token in external form. */
1010 if (yychar == YYEMPTY)
1012 YYDPRINTF ((stderr, "Reading a token: "));
1016 /* Convert token to internal form (in yychar1) for indexing tables with */
1018 if (yychar <= 0) /* This means end of input. */
1021 yychar = YYEOF; /* Don't call YYLEX any more */
1023 YYDPRINTF ((stderr, "Now at end of input.\n"));
1027 yychar1 = YYTRANSLATE (yychar);
1030 /* We have to keep this `#if YYDEBUG', since we use variables
1031 which are defined only if `YYDEBUG' is set. */
1034 YYFPRINTF (stderr, "Next token is %d (%s",
1035 yychar, yytname[yychar1]);
1036 /* Give the individual parser a way to print the precise
1037 meaning of a token, for further debugging info. */
1039 YYPRINT (stderr, yychar, yylval);
1041 YYFPRINTF (stderr, ")\n");
1047 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1052 /* yyn is what to do for this token type in this state.
1053 Negative => reduce, -yyn is rule number.
1054 Positive => shift, yyn is new state.
1055 New state is final state => don't bother to shift,
1056 just return success.
1057 0, or most negative number => error. */
1072 /* Shift the lookahead token. */
1073 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
1074 yychar, yytname[yychar1]));
1076 /* Discard the token being shifted unless it is eof. */
1077 if (yychar != YYEOF)
1085 /* Count tokens shifted since error; after three, turn off error
1094 /*-----------------------------------------------------------.
1095 | yydefault -- do the default action for the current state. |
1096 `-----------------------------------------------------------*/
1098 yyn = yydefact[yystate];
1104 /*-----------------------------.
1105 | yyreduce -- Do a reduction. |
1106 `-----------------------------*/
1108 /* yyn is the number of a rule to reduce with. */
1111 /* If YYLEN is nonzero, implement the default value of the action:
1114 Otherwise, the following line sets YYVAL to the semantic value of
1115 the lookahead token. This behavior is undocumented and Bison
1116 users should not rely upon it. Assigning to YYVAL
1117 unconditionally makes the parser a bit smaller, and it avoids a
1118 GCC warning that YYVAL may be used uninitialized. */
1119 yyval = yyvsp[1-yylen];
1122 /* Similarly for the default location. Let the user run additional
1123 commands if for instance locations are ranges. */
1124 yyloc = yylsp[1-yylen];
1125 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1129 /* We have to keep this `#if YYDEBUG', since we use variables which
1130 are defined only if `YYDEBUG' is set. */
1135 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
1138 /* Print the symbols being reduced, and their result. */
1139 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
1140 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1141 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1154 { mtreader_processDeclaration (yyvsp[-1].mtdecl); ;
1157 { mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;
1160 { yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;
1163 { yyval.mtpieces = mtDeclarationPieces_create (); ;
1166 { yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;
1169 { yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;
1172 { yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;
1175 { yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;
1178 { yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;
1181 { yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;
1184 { yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;
1187 { yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;
1190 { yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;
1193 { yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;
1196 { yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;
1199 { yyval.mtcontext = yyvsp[0].mtcontext; ;
1202 { yyval.mtcontext = mtContextNode_createAny (); ;
1205 { yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;
1208 { yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;
1211 { yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;
1214 { yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;
1217 { yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;
1220 { yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;
1223 { yyval.ctyp = ctype_unknown; ;
1226 { DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;
1229 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
1232 { yyval.qtyp = yyvsp[0].qtyp; ;
1235 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
1238 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
1241 { yyval.qtyp = qtype_unknown (); ;
1244 { yyval.qtyp = yyvsp[0].qtyp; ;
1247 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
1250 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
1253 { yyval.pointers = pointers_createMt (yyvsp[0].tok); ;
1256 { yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;
1259 { yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;
1262 { yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;
1265 { yyval.qual = qual_createConst (); ;
1268 { yyval.qual = qual_createVolatile (); ;
1271 { yyval.qual = qual_createRestrict (); ;
1274 { yyval.quals = qualList_single (yyvsp[0].qual); ;
1277 { yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;
1280 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
1283 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
1286 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
1289 { yyval.ctyp = ctype_char; ;
1292 { yyval.ctyp = ctype_int; ;
1295 { yyval.ctyp = ctype_float; ;
1298 { yyval.ctyp = ctype_double; ;
1301 { yyval.ctyp = ctype_void; ;
1304 { yyval.ctyp = ctype_unknown; ;
1307 { yyval.ctyp = ctype_anyintegral; ;
1310 { yyval.ctyp = ctype_unsignedintegral; ;
1313 { yyval.ctyp = ctype_signedintegral; ;
1316 { yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
1319 { yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
1322 { yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
1325 { yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
1328 { yyval.tok = yyvsp[0].tok; ;
1331 { yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
1334 { yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
1337 { yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
1340 { yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
1343 { yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
1346 { yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
1349 { yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
1352 { yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
1355 { yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
1358 { yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
1361 { yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
1364 { yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
1367 { yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
1370 { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
1373 { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
1376 { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
1379 { yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
1382 { yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
1385 { yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
1388 { yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
1391 { yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
1394 { yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
1397 { yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
1400 { yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
1403 { yyval.mttransferaction = yyvsp[0].mttransferaction; ;
1406 { yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
1409 { yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;
1424 short *yyssp1 = yyss - 1;
1425 YYFPRINTF (stderr, "state stack now");
1426 while (yyssp1 != yyssp)
1427 YYFPRINTF (stderr, " %d", *++yyssp1);
1428 YYFPRINTF (stderr, "\n");
1437 /* Now `shift' the result of the reduction. Determine what state
1438 that goes to, based on the state we popped back to and the rule
1439 number reduced by. */
1443 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
1444 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1445 yystate = yytable[yystate];
1447 yystate = yydefgoto[yyn - YYNTBASE];
1452 /*------------------------------------.
1453 | yyerrlab -- here on detecting error |
1454 `------------------------------------*/
1456 /* If not already recovering from an error, report this error. */
1461 #ifdef YYERROR_VERBOSE
1462 yyn = yypact[yystate];
1464 if (yyn > YYFLAG && yyn < YYLAST)
1466 YYSIZE_T yysize = 0;
1471 /* Start YYX at -YYN if negative to avoid negative indexes in
1473 for (yyx = yyn < 0 ? -yyn : 0;
1474 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
1475 if (yycheck[yyx + yyn] == yyx)
1476 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
1477 yysize += yystrlen ("parse error, unexpected ") + 1;
1478 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
1479 yymsg = (char *) YYSTACK_ALLOC (yysize);
1482 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
1483 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
1488 for (yyx = yyn < 0 ? -yyn : 0;
1489 yyx < (int) (sizeof (yytname) / sizeof (char *));
1491 if (yycheck[yyx + yyn] == yyx)
1493 const char *yyq = ! yycount ? ", expecting " : " or ";
1494 yyp = yystpcpy (yyp, yyq);
1495 yyp = yystpcpy (yyp, yytname[yyx]);
1500 YYSTACK_FREE (yymsg);
1503 yyerror ("parse error; also virtual memory exhausted");
1506 #endif /* defined (YYERROR_VERBOSE) */
1507 yyerror ("parse error");
1512 /*--------------------------------------------------.
1513 | yyerrlab1 -- error raised explicitly by an action |
1514 `--------------------------------------------------*/
1516 if (yyerrstatus == 3)
1518 /* If just tried and failed to reuse lookahead token after an
1519 error, discard it. */
1521 /* return failure if at end of input */
1522 if (yychar == YYEOF)
1524 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
1525 yychar, yytname[yychar1]));
1529 /* Else will try to reuse lookahead token after shifting the error
1532 yyerrstatus = 3; /* Each real token shifted decrements this */
1537 /*-------------------------------------------------------------------.
1538 | yyerrdefault -- current state does not do anything special for the |
1540 `-------------------------------------------------------------------*/
1543 /* This is wrong; only states that explicitly want error tokens
1544 should shift them. */
1546 /* If its default is to accept any token, ok. Otherwise pop it. */
1547 yyn = yydefact[yystate];
1553 /*---------------------------------------------------------------.
1554 | yyerrpop -- pop the current state because it cannot handle the |
1556 `---------------------------------------------------------------*/
1569 short *yyssp1 = yyss - 1;
1570 YYFPRINTF (stderr, "Error: state stack now");
1571 while (yyssp1 != yyssp)
1572 YYFPRINTF (stderr, " %d", *++yyssp1);
1573 YYFPRINTF (stderr, "\n");
1581 yyn = yypact[yystate];
1586 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
1603 YYDPRINTF ((stderr, "Shifting error token, "));
1614 /*-------------------------------------.
1615 | yyacceptlab -- YYACCEPT comes here. |
1616 `-------------------------------------*/
1621 /*-----------------------------------.
1622 | yyabortlab -- YYABORT comes here. |
1623 `-----------------------------------*/
1628 /*---------------------------------------------.
1629 | yyoverflowab -- parser overflow comes here. |
1630 `---------------------------------------------*/
1632 yyerror ("parser stack overflow");
1639 YYSTACK_FREE (yyss);
1645 # include "bison.reset"
1647 extern char *yytext;
1649 static void mterror (char *s)
1655 (message ("Parse error in meta-state file: %s", cstring_fromChars (s)));
1660 (message ("Parse error in meta-state file"));
1665 static void yyprint (FILE *file, int type, YYSTYPE value)
1667 cstring tname = mttok_unparse (value.tok);
1668 fprintf (file, " (%s)", cstring_toCharsSafe (tname));
1669 cstring_free (tname);
1676 ** Resets all flags in bison.head
1698 /*@=evalorderuncon@*/
1707 /*@=elseifcomplete@*/
1711 /*@=readonlytrans@*/
1714 /*@=systemunrecog@*/
1715 /*@=dependenttrans@*/
1716 /*@=unqualifiedtrans@*/
1720 /*drl added 11/27/2001*/