2 ** Inserted at beginning of c files generated by bison
3 ** REMEMBER: Change bison.reset too.
42 /*@-unqualifiedtrans@*/
49 /*drl added 11/27/2001*/
52 /*drl added 12/11/2002*/
55 /* < end of bison.head > */
57 /* A Bison parser, made from mtgrammar.y
60 #define YYBISON 1 /* Identify Bison output. */
62 #define yyparse mtparse
64 #define yyerror mterror
67 #define yydebug mtdebug
68 #define yynerrs mtnerrs
69 # define MT_BADTOK 257
72 # define MT_GLOBAL 260
73 # define MT_CONTEXT 261
75 # define MT_DEFAULTS 263
76 # define MT_DEFAULT 264
77 # define MT_REFERENCE 265
78 # define MT_PARAMETER 266
79 # define MT_RESULT 267
80 # define MT_CLAUSE 268
81 # define MT_LITERAL 269
83 # define MT_ANNOTATIONS 271
86 # define MT_TRANSFERS 274
87 # define MT_PRECONDITIONS 275
88 # define MT_POSTCONDITIONS 276
89 # define MT_LOSEREFERENCE 277
95 # define MT_LPAREN 283
96 # define MT_RPAREN 284
97 # define MT_LBRACKET 285
98 # define MT_RBRACKET 286
99 # define MT_LBRACE 287
100 # define MT_RBRACE 288
101 # define MT_COMMA 289
104 # define MT_FLOAT 292
105 # define MT_DOUBLE 293
107 # define MT_ANYTYPE 295
108 # define MT_INTEGRALTYPE 296
109 # define MT_UNSIGNEDINTEGRALTYPE 297
110 # define MT_SIGNEDINTEGRALTYPE 298
111 # define MT_CONST 299
112 # define MT_VOLATILE 300
113 # define MT_RESTRICT 301
114 # define MT_STRINGLIT 302
115 # define MT_IDENT 303
119 # include "bison.reset"
120 # include "splintMacros.nf"
124 extern ctype mtscanner_lookupType (mttok p_tok) /*@modifies p_tok@*/ ;
127 /*@i523@*/ /* can't include these here
128 # include "mtgrammar.h"
129 # include "mtscanner.h"
132 static /*@noreturn@*/ void mterror (char *);
134 /*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */
135 extern int mtlex () ;
136 static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
139 # define YYPRINT(file, type, value) yyprint (file, type, value)
143 # include "bison.head"
149 mtDeclarationNode mtdecl;
150 mtDeclarationPiece mtpiece;
151 mtDeclarationPieces mtpieces;
152 mtContextNode mtcontext;
153 mtValuesNode mtvalues;
154 mtDefaultsNode mtdefaults;
155 mtDefaultsDeclList mtdeflist;
156 mtAnnotationsNode mtannotations;
157 mtAnnotationList mtannotlist;
158 mtAnnotationDecl mtannotdecl;
160 mtMergeItem mtmergeitem;
161 mtMergeClauseList mtmergeclauselist;
162 mtMergeClause mtmergeclause;
163 mtTransferClauseList mttransferclauselist;
164 mtTransferClause mttransferclause;
165 mtTransferAction mttransferaction;
166 mtLoseReferenceList mtlosereferencelist;
167 mtLoseReference mtlosereference;
169 /*@only@*/ cstringList cstringlist;
171 /*@only@*/ qtype qtyp;
175 # define YYSTYPE yystype
176 # define YYSTYPE_IS_TRIVIAL 1
185 #define YYFLAG -32768
188 /* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */
189 #define YYTRANSLATE(x) ((unsigned)(x) <= 303 ? yytranslate[x] : 93)
191 /* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */
192 static const char yytranslate[] =
194 0, 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, 2, 2, 2, 2,
216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
218 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
219 2, 2, 2, 2, 2, 2, 1, 3, 4, 5,
220 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
221 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
222 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
223 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
228 static const short yyprhs[] =
230 0, 0, 1, 3, 7, 12, 15, 16, 19, 21,
231 23, 25, 27, 29, 31, 33, 35, 37, 39, 42,
232 43, 45, 48, 51, 54, 57, 60, 63, 64, 66,
233 68, 71, 73, 77, 80, 81, 83, 85, 87, 90,
234 92, 95, 98, 102, 104, 106, 108, 110, 113, 117,
235 120, 124, 126, 128, 130, 132, 134, 136, 138, 140,
236 142, 144, 146, 149, 151, 155, 158, 161, 165, 170,
237 173, 175, 178, 183, 186, 188, 191, 197, 199, 201,
238 204, 207, 210, 213, 215, 218, 222, 224, 227, 233,
241 static const short yyrhs[] =
243 -1, 51, 0, 5, 52, 4, 0, 6, 5, 52,
244 4, 0, 49, 53, 0, 0, 54, 53, 0, 55,
245 0, 70, 0, 73, 0, 72, 0, 75, 0, 78,
246 0, 84, 0, 82, 0, 83, 0, 85, 0, 7,
247 57, 0, 0, 57, 0, 12, 58, 0, 11, 58,
248 0, 13, 58, 0, 14, 58, 0, 15, 58, 0,
249 16, 58, 0, 0, 59, 0, 60, 0, 60, 63,
250 0, 61, 0, 60, 28, 59, 0, 68, 62, 0,
251 0, 60, 0, 64, 0, 67, 0, 64, 67, 0,
252 27, 0, 27, 66, 0, 27, 64, 0, 27, 66,
253 64, 0, 45, 0, 46, 0, 47, 0, 65, 0,
254 66, 65, 0, 29, 63, 30, 0, 31, 32, 0,
255 67, 31, 32, 0, 36, 0, 37, 0, 38, 0,
256 39, 0, 40, 0, 41, 0, 42, 0, 43, 0,
257 44, 0, 69, 0, 49, 0, 8, 71, 0, 49,
258 0, 49, 35, 71, 0, 10, 92, 0, 9, 74,
259 0, 57, 18, 92, 0, 57, 18, 92, 74, 0,
260 17, 76, 0, 77, 0, 77, 76, 0, 49, 56,
261 18, 92, 0, 19, 79, 0, 80, 0, 80, 79,
262 0, 81, 26, 81, 18, 90, 0, 92, 0, 27,
263 0, 21, 88, 0, 22, 88, 0, 20, 88, 0,
264 23, 86, 0, 87, 0, 87, 86, 0, 92, 18,
265 91, 0, 89, 0, 89, 88, 0, 92, 24, 92,
266 18, 90, 0, 92, 0, 91, 0, 25, 0, 25,
273 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
274 static const short yyrline[] =
276 0, 160, 161, 165, 167, 172, 177, 178, 183, 184,
277 185, 186, 187, 188, 189, 190, 191, 192, 196, 201,
278 202, 206, 207, 208, 209, 210, 211, 219, 220, 224,
279 225, 229, 230, 235, 239, 240, 244, 245, 246, 250,
280 251, 252, 253, 257, 258, 259, 263, 264, 268, 269,
281 270, 278, 279, 280, 281, 282, 283, 284, 285, 286,
282 287, 294, 298, 302, 303, 308, 312, 316, 318, 323,
283 327, 328, 333, 338, 342, 343, 347, 352, 353, 357,
284 361, 365, 369, 373, 374, 378, 382, 383, 387, 392,
290 #if (YYDEBUG) || defined YYERROR_VERBOSE
292 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
293 static const char *const yytname[] =
295 "$", "error", "$undefined.", "MT_BADTOK", "MT_END", "MT_STATE",
296 "MT_GLOBAL", "MT_CONTEXT", "MT_ONEOF", "MT_DEFAULTS", "MT_DEFAULT",
297 "MT_REFERENCE", "MT_PARAMETER", "MT_RESULT", "MT_CLAUSE", "MT_LITERAL",
298 "MT_NULL", "MT_ANNOTATIONS", "MT_ARROW", "MT_MERGE", "MT_TRANSFERS",
299 "MT_PRECONDITIONS", "MT_POSTCONDITIONS", "MT_LOSEREFERENCE", "MT_AS",
300 "MT_ERROR", "MT_PLUS", "MT_STAR", "MT_BAR", "MT_LPAREN", "MT_RPAREN",
301 "MT_LBRACKET", "MT_RBRACKET", "MT_LBRACE", "MT_RBRACE", "MT_COMMA",
302 "MT_CHAR", "MT_INT", "MT_FLOAT", "MT_DOUBLE", "MT_VOID", "MT_ANYTYPE",
303 "MT_INTEGRALTYPE", "MT_UNSIGNEDINTEGRALTYPE", "MT_SIGNEDINTEGRALTYPE",
304 "MT_CONST", "MT_VOLATILE", "MT_RESTRICT", "MT_STRINGLIT", "MT_IDENT",
305 "file", "mtsDeclaration", "declarationNode", "declarationPieces",
306 "declarationPiece", "contextDeclaration", "optContextSelection",
307 "contextSelection", "optType", "typeExpression", "completeType",
308 "completeTypeAux", "optCompleteType", "abstractDecl", "pointers",
309 "innerMods", "innerModsList", "abstractDeclBase", "typeSpecifier",
310 "typeName", "valuesDeclaration", "valuesList", "defaultNode",
311 "defaultsDeclaration", "defaultDeclarationList",
312 "annotationsDeclaration", "annotationsDeclarationList",
313 "annotationDeclaration", "mergeDeclaration", "mergeClauses",
314 "mergeClause", "mergeItem", "preconditionsDeclaration",
315 "postconditionsDeclaration", "transfersDeclaration",
316 "loseReferenceDeclaration", "lostClauses", "lostClause",
317 "transferClauses", "transferClause", "transferAction", "errorAction",
322 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
323 static const short yyr1[] =
325 0, 50, 50, 51, 51, 52, 53, 53, 54, 54,
326 54, 54, 54, 54, 54, 54, 54, 54, 55, 56,
327 56, 57, 57, 57, 57, 57, 57, 58, 58, 59,
328 59, 60, 60, 61, 62, 62, 63, 63, 63, 64,
329 64, 64, 64, 65, 65, 65, 66, 66, 67, 67,
330 67, 68, 68, 68, 68, 68, 68, 68, 68, 68,
331 68, 69, 70, 71, 71, 72, 73, 74, 74, 75,
332 76, 76, 77, 78, 79, 79, 80, 81, 81, 82,
333 83, 84, 85, 86, 86, 87, 88, 88, 89, 90,
337 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
338 static const short yyr2[] =
340 0, 0, 1, 3, 4, 2, 0, 2, 1, 1,
341 1, 1, 1, 1, 1, 1, 1, 1, 2, 0,
342 1, 2, 2, 2, 2, 2, 2, 0, 1, 1,
343 2, 1, 3, 2, 0, 1, 1, 1, 2, 1,
344 2, 2, 3, 1, 1, 1, 1, 2, 3, 2,
345 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
346 1, 1, 2, 1, 3, 2, 2, 3, 4, 2,
347 1, 2, 4, 2, 1, 2, 5, 1, 1, 2,
348 2, 2, 2, 1, 2, 3, 1, 2, 5, 1,
352 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
353 doesn't specify something else to do. Zero means the default is an
355 static const short yydefact[] =
357 1, 0, 0, 2, 6, 0, 0, 0, 0, 0,
358 0, 0, 0, 0, 0, 0, 0, 5, 6, 8,
359 9, 11, 10, 12, 13, 15, 16, 14, 17, 3,
360 0, 27, 27, 27, 27, 27, 27, 18, 63, 62,
361 0, 66, 93, 65, 19, 69, 70, 78, 73, 74,
362 0, 77, 81, 86, 0, 79, 80, 82, 83, 0,
363 7, 4, 51, 52, 53, 54, 55, 56, 57, 58,
364 59, 61, 22, 28, 29, 31, 34, 60, 21, 23,
365 24, 25, 26, 0, 0, 0, 20, 71, 75, 0,
366 87, 0, 84, 0, 39, 0, 0, 0, 30, 36,
367 37, 35, 33, 64, 67, 0, 0, 0, 91, 85,
368 43, 44, 45, 41, 46, 40, 32, 0, 49, 38,
369 0, 68, 72, 0, 0, 92, 42, 47, 48, 50,
370 76, 90, 89, 88, 0, 0, 0
373 static const short yydefgoto[] =
375 134, 3, 5, 17, 18, 19, 85, 40, 72, 73,
376 74, 75, 102, 98, 99, 114, 115, 100, 76, 77,
377 20, 39, 21, 22, 41, 23, 45, 46, 24, 48,
378 49, 50, 25, 26, 27, 28, 57, 58, 52, 53,
382 static const short yypact[] =
384 21, -29, 30,-32768, 2, 33, -29, 52, -9, 52,
385 -8, -3, -19, -8, -8, -8, -8,-32768, 2,-32768,
386 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
387 54, 13, 13, 13, 13, 13, 13,-32768, 24,-32768,
388 43,-32768,-32768,-32768, 52,-32768, -3,-32768,-32768, -19,
389 34,-32768,-32768, -8, 46,-32768,-32768,-32768, -8, 57,
390 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
391 -32768,-32768,-32768,-32768, 16,-32768, 13,-32768,-32768,-32768,
392 -32768,-32768,-32768, -9, -8, 58,-32768,-32768,-32768, -19,
393 -32768, -8,-32768, 47, -14, 13, 42, 45,-32768, 5,
394 49, 50,-32768,-32768, 52, -8, 64, 65, 36,-32768,
395 -32768,-32768,-32768,-32768,-32768, -14,-32768, 55,-32768, 49,
396 56,-32768,-32768, -20, -20,-32768,-32768,-32768,-32768,-32768,
397 -32768,-32768,-32768,-32768, 86, 87,-32768
400 static const short yypgoto[] =
402 -32768,-32768, 83, 72,-32768,-32768,-32768, -6, -18, -4,
403 17,-32768,-32768, -2, -87, -23,-32768, -1,-32768,-32768,
404 -32768, 14,-32768,-32768, -5,-32768, 59,-32768,-32768, 51,
405 -32768, 7,-32768,-32768,-32768,-32768, 44,-32768, -11,-32768,
413 static const short yytable[] =
415 43, 37, 51, 55, 56, 108, 59, 113, 47, 7,
416 8, 9, 10, 94, 78, 79, 80, 81, 82, 11,
417 4, 12, 13, 14, 15, 16, 1, 2, 126, 42,
418 42, 110, 111, 112, 96, 6, 97, 29, 86, 51,
419 38, 42, 90, 94, 95, 96, 44, 97, 59, 62,
420 63, 64, 65, 66, 67, 68, 69, 70, 61, 83,
421 89, 84, 71, 31, 32, 33, 34, 35, 36, 94,
422 91, 96, 108, 97, 104, 93, 105, 118, 95, 51,
423 120, 107, 123, 124, 125, 128, 135, 136, 129, 30,
424 60, 116, 127, 101, 117, 122, 106, 103, 119, 121,
425 88, 109, 92, 133, 0, 87, 0, 0, 0, 0,
429 static const short yycheck[] =
431 10, 7, 12, 14, 15, 25, 16, 94, 27, 7,
432 8, 9, 10, 27, 32, 33, 34, 35, 36, 17,
433 49, 19, 20, 21, 22, 23, 5, 6, 115, 49,
434 49, 45, 46, 47, 29, 5, 31, 4, 44, 49,
435 49, 49, 53, 27, 28, 29, 49, 31, 58, 36,
436 37, 38, 39, 40, 41, 42, 43, 44, 4, 35,
437 26, 18, 49, 11, 12, 13, 14, 15, 16, 27,
438 24, 29, 25, 31, 84, 18, 18, 32, 28, 89,
439 31, 91, 18, 18, 48, 30, 0, 0, 32, 6,
440 18, 95, 115, 76, 96, 105, 89, 83, 99, 104,
441 49, 93, 58, 124, -1, 46, -1, -1, -1, -1,
446 /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
448 /* Skeleton output parser for bison,
450 Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
453 This program is free software; you can redistribute it and/or modify
454 it under the terms of the GNU General Public License as published by
455 the Free Software Foundation; either version 2, or (at your option)
458 This program is distributed in the hope that it will be useful,
459 but WITHOUT ANY WARRANTY; without even the implied warranty of
460 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
461 GNU General Public License for more details.
463 You should have received a copy of the GNU General Public License
464 along with this program; if not, write to the Free Software
465 Foundation, Inc., 59 Temple Place - Suite 330,
466 Boston, MA 02111-1307, USA. */
468 /* As a special exception, when this file is copied by Bison into a
469 Bison output file, you may use that output file without restriction.
470 This special exception was added by the Free Software Foundation
471 in version 1.24 of Bison. */
473 /* This is the parser code that is written into each bison parser when
474 the %semantic_parser declaration is not specified in the grammar.
475 It was written by Richard Stallman by simplifying the hairy parser
476 used when %semantic_parser is specified. */
478 /* All symbols defined below should begin with yy or YY, to avoid
479 infringing on user name space. This should be done even for local
480 variables, as they might otherwise be expanded by user macros.
481 There are some unavoidable exceptions within include files to
482 define necessary library symbols; they are noted "INFRINGES ON
483 USER NAME SPACE" below. */
485 #if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
487 /* The parser invokes alloca or malloc; define the necessary symbols. */
489 # if YYSTACK_USE_ALLOCA
490 # define YYSTACK_ALLOC alloca
492 # ifndef YYSTACK_USE_ALLOCA
493 # if defined (alloca) || defined (_ALLOCA_H)
494 # define YYSTACK_ALLOC alloca
497 # define YYSTACK_ALLOC __builtin_alloca
503 # ifdef YYSTACK_ALLOC
504 /* Pacify GCC's `empty if-body' warning. */
505 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
507 # if defined (__STDC__) || defined (__cplusplus)
508 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
509 # define YYSIZE_T size_t
511 # define YYSTACK_ALLOC malloc
512 # define YYSTACK_FREE free
514 #endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
517 #if (! defined (yyoverflow) \
518 && (! defined (__cplusplus) \
519 || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
521 /* A type that is properly aligned for any stack member. */
531 /* The size of the maximum gap between one aligned stack and the next. */
532 # define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
534 /* The size of an array large to enough to hold all stacks, each with
537 # define YYSTACK_BYTES(N) \
538 ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
539 + 2 * YYSTACK_GAP_MAX)
541 # define YYSTACK_BYTES(N) \
542 ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
546 /* Copy COUNT objects from FROM to TO. The source and destination do
550 # define YYCOPY(To, From, Count) \
551 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
553 # define YYCOPY(To, From, Count) \
556 register YYSIZE_T yyi; \
557 for (yyi = 0; yyi < (Count); yyi++) \
558 (To)[yyi] = (From)[yyi]; \
564 /* Relocate STACK from its old location to the new one. The
565 local variables YYSIZE and YYSTACKSIZE give the old and new number of
566 elements in the stack, and YYPTR gives the new location of the
567 stack. Advance YYPTR to a properly aligned location for the next
569 # define YYSTACK_RELOCATE(Stack) \
572 YYSIZE_T yynewbytes; \
573 YYCOPY (&yyptr->Stack, Stack, yysize); \
574 Stack = &yyptr->Stack; \
575 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX; \
576 yyptr += yynewbytes / sizeof (*yyptr); \
583 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
584 # define YYSIZE_T __SIZE_TYPE__
586 #if ! defined (YYSIZE_T) && defined (size_t)
587 # define YYSIZE_T size_t
589 #if ! defined (YYSIZE_T)
590 # if defined (__STDC__) || defined (__cplusplus)
591 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
592 # define YYSIZE_T size_t
595 #if ! defined (YYSIZE_T)
596 # define YYSIZE_T unsigned int
599 #define yyerrok (yyerrstatus = 0)
600 #define yyclearin (yychar = YYEMPTY)
603 #define YYACCEPT goto yyacceptlab
604 #define YYABORT goto yyabortlab
605 #define YYERROR goto yyerrlab1
606 /* Like YYERROR except do call yyerror. This remains here temporarily
607 to ease the transition to the new meaning of YYERROR, for GCC.
608 Once GCC version 2 has supplanted version 1, this can go. */
609 #define YYFAIL goto yyerrlab
610 #define YYRECOVERING() (!!yyerrstatus)
611 #define YYBACKUP(Token, Value) \
613 if (yychar == YYEMPTY && yylen == 1) \
617 yychar1 = YYTRANSLATE (yychar); \
623 yyerror ("syntax error: cannot back up"); \
629 #define YYERRCODE 256
632 /* YYLLOC_DEFAULT -- Compute the default location (before the actions
635 When YYLLOC_DEFAULT is run, CURRENT is set the location of the
636 first token. By default, to implement support for ranges, extend
637 its range to the last symbol. */
639 #ifndef YYLLOC_DEFAULT
640 # define YYLLOC_DEFAULT(Current, Rhs, N) \
641 Current.last_line = Rhs[N].last_line; \
642 Current.last_column = Rhs[N].last_column;
646 /* YYLEX -- calling `yylex' with the right arguments. */
651 # define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM)
653 # define YYLEX yylex (&yylval, &yylloc)
655 # else /* !YYLSP_NEEDED */
657 # define YYLEX yylex (&yylval, YYLEX_PARAM)
659 # define YYLEX yylex (&yylval)
661 # endif /* !YYLSP_NEEDED */
663 # define YYLEX yylex ()
667 /* Enable debugging if requested. */
671 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
672 # define YYFPRINTF fprintf
675 # define YYDPRINTF(Args) \
680 /* Nonzero means print parse trace. It is left uninitialized so that
681 multiple parsers can coexist. */
684 # define YYDPRINTF(Args)
685 #endif /* !YYDEBUG */
687 /* YYINITDEPTH -- initial size of the parser's stacks. */
689 # define YYINITDEPTH 200
692 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
693 if the built-in stack extension method is used).
695 Do not make this value too large; the results are undefined if
696 SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
697 evaluated with infinite-precision integer arithmetic. */
704 # define YYMAXDEPTH 10000
707 #ifdef YYERROR_VERBOSE
710 # if defined (__GLIBC__) && defined (_STRING_H)
711 # define yystrlen strlen
713 /* Return the length of YYSTR. */
715 # if defined (__STDC__) || defined (__cplusplus)
716 yystrlen (const char *yystr)
722 register const char *yys = yystr;
724 while (*yys++ != '\0')
727 return yys - yystr - 1;
733 # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
734 # define yystpcpy stpcpy
736 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
739 # if defined (__STDC__) || defined (__cplusplus)
740 yystpcpy (char *yydest, const char *yysrc)
742 yystpcpy (yydest, yysrc)
747 register char *yyd = yydest;
748 register const char *yys = yysrc;
750 while ((*yyd++ = *yys++) != '\0')
761 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
762 into yyparse. The argument should have type void *.
763 It should actually point to an object.
764 Grammar actions can access the variable by casting it
765 to the proper pointer type. */
768 # if defined (__STDC__) || defined (__cplusplus)
769 # define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
770 # define YYPARSE_PARAM_DECL
772 # define YYPARSE_PARAM_ARG YYPARSE_PARAM
773 # define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
775 #else /* !YYPARSE_PARAM */
776 # define YYPARSE_PARAM_ARG
777 # define YYPARSE_PARAM_DECL
778 #endif /* !YYPARSE_PARAM */
780 /* Prevent warning if -Wstrict-prototypes. */
782 # ifdef YYPARSE_PARAM
783 int yyparse (void *);
789 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
790 variables are global, or local to YYPARSE. */
792 #define YY_DECL_NON_LSP_VARIABLES \
793 /* The lookahead symbol. */ \
796 /* The semantic value of the lookahead symbol. */ \
799 /* Number of parse errors so far. */ \
803 # define YY_DECL_VARIABLES \
804 YY_DECL_NON_LSP_VARIABLES \
806 /* Location data for the lookahead symbol. */ \
809 # define YY_DECL_VARIABLES \
810 YY_DECL_NON_LSP_VARIABLES
814 /* If nonreentrant, generate the variables here. */
821 yyparse (YYPARSE_PARAM_ARG)
824 /* If reentrant, generate the variables here. */
829 register int yystate;
832 /* Number of tokens to shift before error messages enabled. */
834 /* Lookahead token as an internal (translated) token number. */
837 /* Three stacks and their tools:
838 `yyss': related to states,
839 `yyvs': related to semantic values,
840 `yyls': related to locations.
842 Refer to the stacks thru separate pointers, to allow yyoverflow
843 to reallocate them elsewhere. */
845 /* The state stack. */
846 short yyssa[YYINITDEPTH];
848 register short *yyssp;
850 /* The semantic value stack. */
851 YYSTYPE yyvsa[YYINITDEPTH];
852 YYSTYPE *yyvs = yyvsa;
853 register YYSTYPE *yyvsp;
856 /* The location stack. */
857 YYLTYPE yylsa[YYINITDEPTH];
858 YYLTYPE *yyls = yylsa;
863 # define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
865 # define YYPOPSTACK (yyvsp--, yyssp--)
868 YYSIZE_T yystacksize = YYINITDEPTH;
871 /* The variables used to return semantic value and location from the
878 /* When reducing, the number of symbols on the RHS of the reduced
882 YYDPRINTF ((stderr, "Starting parse\n"));
887 yychar = YYEMPTY; /* Cause a token to be read. */
889 /* Initialize stack pointers.
890 Waste one element of value and location stack
891 so that they stay on the same level as the state stack.
892 The wasted elements are never initialized. */
901 /*------------------------------------------------------------.
902 | yynewstate -- Push a new state, which is found in yystate. |
903 `------------------------------------------------------------*/
905 /* In all cases, when you get here, the value and location stacks
906 have just been pushed. so pushing a state here evens the stacks.
913 if (yyssp >= yyss + yystacksize - 1)
915 /* Get the current used size of the three stacks, in elements. */
916 YYSIZE_T yysize = yyssp - yyss + 1;
920 /* Give user a chance to reallocate the stack. Use copies of
921 these so that the &'s don't force the real ones into
923 YYSTYPE *yyvs1 = yyvs;
926 /* Each stack pointer address is followed by the size of the
927 data in use in that stack, in bytes. */
929 YYLTYPE *yyls1 = yyls;
930 /* This used to be a conditional around just the two extra args,
931 but that might be undefined if yyoverflow is a macro. */
932 yyoverflow ("parser stack overflow",
933 &yyss1, yysize * sizeof (*yyssp),
934 &yyvs1, yysize * sizeof (*yyvsp),
935 &yyls1, yysize * sizeof (*yylsp),
939 yyoverflow ("parser stack overflow",
940 &yyss1, yysize * sizeof (*yyssp),
941 &yyvs1, yysize * sizeof (*yyvsp),
947 #else /* no yyoverflow */
948 # ifndef YYSTACK_RELOCATE
951 /* Extend the stack our own way. */
952 if (yystacksize >= YYMAXDEPTH)
955 if (yystacksize > YYMAXDEPTH)
956 yystacksize = YYMAXDEPTH;
960 union yyalloc *yyptr =
961 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
964 YYSTACK_RELOCATE (yyss);
965 YYSTACK_RELOCATE (yyvs);
967 YYSTACK_RELOCATE (yyls);
969 # undef YYSTACK_RELOCATE
971 YYSTACK_FREE (yyss1);
974 #endif /* no yyoverflow */
976 yyssp = yyss + yysize - 1;
977 yyvsp = yyvs + yysize - 1;
979 yylsp = yyls + yysize - 1;
982 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
983 (unsigned long int) yystacksize));
985 if (yyssp >= yyss + yystacksize - 1)
989 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
999 /* Do appropriate processing given the current state. */
1000 /* Read a lookahead token if we need one and don't already have one. */
1003 /* First try to decide what to do without reference to lookahead token. */
1005 yyn = yypact[yystate];
1009 /* Not known => get a lookahead token if don't already have one. */
1011 /* yychar is either YYEMPTY or YYEOF
1012 or a valid token in external form. */
1014 if (yychar == YYEMPTY)
1016 YYDPRINTF ((stderr, "Reading a token: "));
1020 /* Convert token to internal form (in yychar1) for indexing tables with */
1022 if (yychar <= 0) /* This means end of input. */
1025 yychar = YYEOF; /* Don't call YYLEX any more */
1027 YYDPRINTF ((stderr, "Now at end of input.\n"));
1031 yychar1 = YYTRANSLATE (yychar);
1034 /* We have to keep this `#if YYDEBUG', since we use variables
1035 which are defined only if `YYDEBUG' is set. */
1038 YYFPRINTF (stderr, "Next token is %d (%s",
1039 yychar, yytname[yychar1]);
1040 /* Give the individual parser a way to print the precise
1041 meaning of a token, for further debugging info. */
1043 YYPRINT (stderr, yychar, yylval);
1045 YYFPRINTF (stderr, ")\n");
1051 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
1056 /* yyn is what to do for this token type in this state.
1057 Negative => reduce, -yyn is rule number.
1058 Positive => shift, yyn is new state.
1059 New state is final state => don't bother to shift,
1060 just return success.
1061 0, or most negative number => error. */
1076 /* Shift the lookahead token. */
1077 YYDPRINTF ((stderr, "Shifting token %d (%s), ",
1078 yychar, yytname[yychar1]));
1080 /* Discard the token being shifted unless it is eof. */
1081 if (yychar != YYEOF)
1089 /* Count tokens shifted since error; after three, turn off error
1098 /*-----------------------------------------------------------.
1099 | yydefault -- do the default action for the current state. |
1100 `-----------------------------------------------------------*/
1102 yyn = yydefact[yystate];
1108 /*-----------------------------.
1109 | yyreduce -- Do a reduction. |
1110 `-----------------------------*/
1112 /* yyn is the number of a rule to reduce with. */
1115 /* If YYLEN is nonzero, implement the default value of the action:
1118 Otherwise, the following line sets YYVAL to the semantic value of
1119 the lookahead token. This behavior is undocumented and Bison
1120 users should not rely upon it. Assigning to YYVAL
1121 unconditionally makes the parser a bit smaller, and it avoids a
1122 GCC warning that YYVAL may be used uninitialized. */
1123 yyval = yyvsp[1-yylen];
1126 /* Similarly for the default location. Let the user run additional
1127 commands if for instance locations are ranges. */
1128 yyloc = yylsp[1-yylen];
1129 YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
1133 /* We have to keep this `#if YYDEBUG', since we use variables which
1134 are defined only if `YYDEBUG' is set. */
1139 YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
1142 /* Print the symbols being reduced, and their result. */
1143 for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
1144 YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
1145 YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
1158 { mtreader_processDeclaration (yyvsp[-1].mtdecl); ;
1161 { mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;
1164 { yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;
1167 { yyval.mtpieces = mtDeclarationPieces_create (); ;
1170 { yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;
1173 { yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;
1176 { yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;
1179 { yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;
1182 { yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;
1185 { yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;
1188 { yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;
1191 { yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;
1194 { yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;
1197 { yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;
1200 { yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;
1203 { yyval.mtcontext = yyvsp[0].mtcontext; ;
1206 { yyval.mtcontext = mtContextNode_createAny (); ;
1209 { yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;
1212 { yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;
1215 { yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;
1218 { yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;
1221 { yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;
1224 { yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;
1227 { yyval.ctyp = ctype_unknown; ;
1230 { DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;
1233 { yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
1236 { yyval.qtyp = yyvsp[0].qtyp; ;
1239 { yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
1242 { yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
1245 { yyval.qtyp = qtype_unknown (); ;
1248 { yyval.qtyp = yyvsp[0].qtyp; ;
1251 { yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
1254 { yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
1257 { yyval.pointers = pointers_createMt (yyvsp[0].tok); ;
1260 { yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;
1263 { yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;
1266 { yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;
1269 { yyval.qual = qual_createConst (); ;
1272 { yyval.qual = qual_createVolatile (); ;
1275 { yyval.qual = qual_createRestrict (); ;
1278 { yyval.quals = qualList_single (yyvsp[0].qual); ;
1281 { yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;
1284 { yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
1287 { yyval.ctyp = ctype_makeArray (ctype_unknown); ;
1290 { yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
1293 { yyval.ctyp = ctype_char; ;
1296 { yyval.ctyp = ctype_int; ;
1299 { yyval.ctyp = ctype_float; ;
1302 { yyval.ctyp = ctype_double; ;
1305 { yyval.ctyp = ctype_void; ;
1308 { yyval.ctyp = ctype_unknown; ;
1311 { yyval.ctyp = ctype_anyintegral; ;
1314 { yyval.ctyp = ctype_unsignedintegral; ;
1317 { yyval.ctyp = ctype_signedintegral; ;
1320 { yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
1323 { yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
1326 { yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
1329 { yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
1332 { yyval.tok = yyvsp[0].tok; ;
1335 { yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
1338 { yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
1341 { yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
1344 { yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
1347 { yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
1350 { yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
1353 { yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
1356 { yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
1359 { yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
1362 { yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
1365 { yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
1368 { yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
1371 { yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
1374 { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
1377 { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
1380 { yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
1383 { yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
1386 { yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
1389 { yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
1392 { yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
1395 { yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
1398 { yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
1401 { yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
1404 { yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
1407 { yyval.mttransferaction = yyvsp[0].mttransferaction; ;
1410 { yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
1413 { yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;
1428 short *yyssp1 = yyss - 1;
1429 YYFPRINTF (stderr, "state stack now");
1430 while (yyssp1 != yyssp)
1431 YYFPRINTF (stderr, " %d", *++yyssp1);
1432 YYFPRINTF (stderr, "\n");
1441 /* Now `shift' the result of the reduction. Determine what state
1442 that goes to, based on the state we popped back to and the rule
1443 number reduced by. */
1447 yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
1448 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1449 yystate = yytable[yystate];
1451 yystate = yydefgoto[yyn - YYNTBASE];
1456 /*------------------------------------.
1457 | yyerrlab -- here on detecting error |
1458 `------------------------------------*/
1460 /* If not already recovering from an error, report this error. */
1465 #ifdef YYERROR_VERBOSE
1466 yyn = yypact[yystate];
1468 if (yyn > YYFLAG && yyn < YYLAST)
1470 YYSIZE_T yysize = 0;
1475 /* Start YYX at -YYN if negative to avoid negative indexes in
1477 for (yyx = yyn < 0 ? -yyn : 0;
1478 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
1479 if (yycheck[yyx + yyn] == yyx)
1480 yysize += yystrlen (yytname[yyx]) + 15, yycount++;
1481 yysize += yystrlen ("parse error, unexpected ") + 1;
1482 yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
1483 yymsg = (char *) YYSTACK_ALLOC (yysize);
1486 char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
1487 yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
1492 for (yyx = yyn < 0 ? -yyn : 0;
1493 yyx < (int) (sizeof (yytname) / sizeof (char *));
1495 if (yycheck[yyx + yyn] == yyx)
1497 const char *yyq = ! yycount ? ", expecting " : " or ";
1498 yyp = yystpcpy (yyp, yyq);
1499 yyp = yystpcpy (yyp, yytname[yyx]);
1504 YYSTACK_FREE (yymsg);
1507 yyerror ("parse error; also virtual memory exhausted");
1510 #endif /* defined (YYERROR_VERBOSE) */
1511 yyerror ("parse error");
1516 /*--------------------------------------------------.
1517 | yyerrlab1 -- error raised explicitly by an action |
1518 `--------------------------------------------------*/
1520 if (yyerrstatus == 3)
1522 /* If just tried and failed to reuse lookahead token after an
1523 error, discard it. */
1525 /* return failure if at end of input */
1526 if (yychar == YYEOF)
1528 YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
1529 yychar, yytname[yychar1]));
1533 /* Else will try to reuse lookahead token after shifting the error
1536 yyerrstatus = 3; /* Each real token shifted decrements this */
1541 /*-------------------------------------------------------------------.
1542 | yyerrdefault -- current state does not do anything special for the |
1544 `-------------------------------------------------------------------*/
1547 /* This is wrong; only states that explicitly want error tokens
1548 should shift them. */
1550 /* If its default is to accept any token, ok. Otherwise pop it. */
1551 yyn = yydefact[yystate];
1557 /*---------------------------------------------------------------.
1558 | yyerrpop -- pop the current state because it cannot handle the |
1560 `---------------------------------------------------------------*/
1573 short *yyssp1 = yyss - 1;
1574 YYFPRINTF (stderr, "Error: state stack now");
1575 while (yyssp1 != yyssp)
1576 YYFPRINTF (stderr, " %d", *++yyssp1);
1577 YYFPRINTF (stderr, "\n");
1585 yyn = yypact[yystate];
1590 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
1607 YYDPRINTF ((stderr, "Shifting error token, "));
1618 /*-------------------------------------.
1619 | yyacceptlab -- YYACCEPT comes here. |
1620 `-------------------------------------*/
1625 /*-----------------------------------.
1626 | yyabortlab -- YYABORT comes here. |
1627 `-----------------------------------*/
1632 /*---------------------------------------------.
1633 | yyoverflowab -- parser overflow comes here. |
1634 `---------------------------------------------*/
1636 yyerror ("parser stack overflow");
1643 YYSTACK_FREE (yyss);
1649 # include "bison.reset"
1651 extern char *yytext;
1653 static void mterror (char *s)
1659 (message ("Parse error in meta-state file: %s", cstring_fromChars (s)));
1664 (message ("Parse error in meta-state file"));
1669 static void yyprint (FILE *file, int type, YYSTYPE value)
1671 cstring tname = mttok_unparse (value.tok);
1672 fprintf (file, " (%s)", cstring_toCharsSafe (tname));
1673 cstring_free (tname);
1680 ** Resets all flags in bison.head
1702 /*@=evalorderuncon@*/
1711 /*@=elseifcomplete@*/
1715 /*@=readonlytrans@*/
1718 /*@=systemunrecog@*/
1719 /*@=dependenttrans@*/
1720 /*@=unqualifiedtrans@*/
1724 /*drl added 11/27/2001*/
1727 /*drl added 12/11/2002*/